Node-RED:Рецепты/Как игнорировать сообщения, значения которых не поменялись: различия между версиями

Материал из Онлайн справочника
Перейти к навигацииПерейти к поиску
 
Строка 37: Строка 37:
[[Категория:Рецепты Node-RED]]
[[Категория:Рецепты Node-RED]]
[[Категория:Рецепты]]
[[Категория:Рецепты]]
{{Навигационная таблица/Node-RED библиотеки}}
{{Навигационная таблица/Телепорт}}

Версия от 18:09, 6 мая 2022

Перевод: Максим Кузьмин
Проверка/Оформление/Редактирование: Мякишев Е.А.


Черновик


Как игнорировать сообщения, значения которых не поменялись[1]

Проблема

Вам нужно игнорировать сообщение, если его значение в свойстве «payload» осталось таким же, как и у предыдущего сообщения. К примеру, у вас есть переключатель «вкл/выкл», отправляющий свои значения через равные промежутки времени, но вам это значение нужно знать только тогда, когда оно изменилось.

Решение

Воспользуйтесь нодой «RBE» («Report by Exception»), которая умеет блокировать сообщения, значения которых остались без изменений.

Пример

[{"id":"6079638d.df403c","type":"inject","z":"ac14500e.2c57d","name":"","topic":"","payload":"0","payloadType":"num","repeat":"","crontab":"","once":false,"onceDelay":0.1,"x":90,"y":1500,"wires":[["87129503.c7b358"]]},{"id":"87129503.c7b358","type":"rbe","z":"ac14500e.2c57d","name":"report-by-exception","func":"deadband","gap":"","start":"","inout":"out","property":"payload","x":300,"y":1520,"wires":[["5e2ffc27.c61dd4"]]},{"id":"5e2ffc27.c61dd4","type":"debug","z":"ac14500e.2c57d","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","x":510,"y":1520,"wires":[]},{"id":"2dc49f96.3070c","type":"inject","z":"ac14500e.2c57d","name":"","topic":"","payload":"1","payloadType":"num","repeat":"","crontab":"","once":false,"onceDelay":0.1,"x":90,"y":1540,"wires":[["87129503.c7b358"]]}]

Разбор

Нода «RBE» позволяет игнорировать сообщения, если их значения остались без изменений. Это очень полезно для определения изменений (как в нашем случае).

Если проверяемое значение – это число, в ноде также можно задать порог того, насколько сильно должно измениться значение, чтобы сообщение прошло дальше.

См.также

Внешние ссылки