Переменная для изменения метки на доске - PullRequest
1 голос
/ 05 мая 2020

Я хотел бы посмотреть, могут ли они помочь мне с созданием переменной, в которой я могу изменить метки сообщения MQTT, отправляемого с моих устройств IoT, чтобы упростить его и выбрать правильные параметры при создании дашборда. .

Пример:

Это сообщение, полученное на мой сервер.

[{"n": "model", "d": "iot-zigbee1783"}, {"n": "Relay", "ap": true}, {"t": "gateway", "ma": "0035DDf45VAIoT215"}]

Я хочу изменить метку «d» на «deviceIoT» и « ap "для" дверного датчика "также, если есть возможность изменить истинное или ложное значение дверного датчика на открытие и закрытие.

1 Ответ

0 голосов
/ 08 мая 2020

Вы можете сделать это с помощью цепочки правил Thingsboards.

Для этого также есть официальное руководство:

https://thingsboard.io/docs/user-guide/rule-engine-2-0/tutorials/transform-incoming-telemetry/

Они используют узел правила преобразования, называемый script , для преобразования температур из [ ° F ] в [ ° C]. Хотя это не ваш вариант использования, он показывает вам, как обрабатывать входящую телеметрию до того, как она будет сохранена в базе данных.

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

var theCustomizedMessage = {};

theCustomizedMessage['customizedKey'] = msg['originalIncomingKey'];

return {msg: theCustomizedMessage, metadata: metadata, msgType: msgType};

Имейте в виду, что это может быть контрпродуктивным, так как вам нужно обновить сценарии узла правил, когда что-то изменится.

В качестве альтернативы вы можете переименовать ключевые метки в конфигурации виджета. Это не поможет разработчикам вашей панели инструментов. Но документ с документацией подойдет:)

Я настоятельно не рекомендую заменять логические значения строками ('закрыто', 'открыто'). Это работа для виджетов (например, их функций форматирования значений).

...