Как обновить значение ключа в виджете?

Мне интересно, пытался ли кто-нибудь из разработчиков Thingsboard обновить ключ / значение телеметрии устройства из виджета. Если да, то как бы вы это сделали?

В основном у меня есть виджет, в который конечный пользователь вводит значение, и я хотел бы обновить конкретное значение, связанное с ключом для устройства с вводом пользователя.

Я знаю, что вы можете выполнить пользовательскую команду POST на javascript, но если это так, как вы читаете токен доступа устройства из виджета?


person sam    schedule 02.11.2018    source источник


Ответы (2)


Для сохранения / обновления телеметрии из виджета вам необходимо сделать POST-запрос к этому REST API:

https://tb_address/api/plugins/telemetry/ {entityType} / {entityId} / timeseries

entityType - УСТРОЙСТВО или АКТИВ

entityId - deviceId или assetId

Ссылка Swagger: https://cloud.thingsboard.io/swagger-ui.html#!/telemetry-controller/saveEntityTelemetryUsingPOST


Body (в случае, если нужно использовать текущее системное время):

{
  "key1": "value1"
}

В случаях, когда вы хотите обновить (переопределить) существующее значение телеметрии. Вы можете использовать это тело (идея заключается в том, что метка времени является частью составного ключа, поэтому вставка с тем же ключом переопределит предыдущее значение)

{
  "ts": 1451649600512,
  "values": {
    "key1": "value1"
  }
}
person Vitaliy Paromskiy    schedule 06.11.2018
comment
Спасибо, Виталий, я понимаю, что могу выполнить POst-запрос из пользовательского виджета, но как мне прочитать entityID из кода Javascript виджета? Например, к некоторым данным можно получить доступ с помощью $ {1}, но как получить текущий entityID? - person sam; 06.11.2018
comment
Вы можете найти entityId в объекте подписки (self.ctx.defaultSubscription). thingsboard.io/docs/user-guide/contribution / widgets-development / - person Vitaliy Paromskiy; 07.11.2018

Я нашел способ сделать это без необходимости выполнять команду POST. Из этого сообщения здесь: Виджет изменения числового ввода Github В основном виджет обновляет ключ данных напрямую через Javascript и общий атрибут устройства или объекта.

person sam    schedule 08.11.2018