Node-RED:Библиотеки/node-red-node-rbe: различия между версиями

Материал из Онлайн справочника
Перейти к навигацииПерейти к поиску
(Новая страница: «{{Node-RED/Панель перехода}} {{Перевод от Сubewriter}} {{Myagkij-редактор}} =node-red-node-rbe= ==Функция== * Node-RE…»)
 
Нет описания правки
 
(не показаны 4 промежуточные версии 1 участника)
Строка 4: Строка 4:
{{Myagkij-редактор}}
{{Myagkij-редактор}}


=node-red-node-rbe=
=Модуль «node-red-node-rbe»<ref>[https://flows.nodered.org/node/node-red-node-rbe flows.nodered.org - node-red-node-rbe]</ref>=


==Функция==
Эта нода добавляет в [[Node-RED]] возможность пропускать или не пропускать дальше в поток сообщения в зависимости от того, отличается ли новое значение от предыдущего ([[RBE-режим]]), и от того, попадает ли новое значение в заданный диапазон ([[deadband]]- и [[narrowband-режим]]ы).


* [[Node-RED:Библиотеки/node-red-node-rbe/RBE|RBE]]
== Установка ==


Запустите в пользовательской директории [[Node-RED]] (обычно это '''«~/.node-red»''') команду ниже:
<syntaxhighlight lang="bash">
npm i node-red-node-rbe
</syntaxhighlight>
== Использование ==
Нода '''«RBE»''' работает '''«потопиково»'''. То есть одна нода '''«RBE»''' может одновременно обрабатывать разные серии сообщений отдельно друг от друга – согласно их значениям в свойстве '''«msg.topic»'''. Допустим, у вас есть сообщения, в '''«msg.topic»''' которых хранится '''«humidity»''' – они будут обрабатывать как один поток сообщений, и есть сообщения, в '''«msg.topic»''' которых хранится '''«light»''' – они будут обрабатываться как другой поток сообщений.
Режим работы ноды '''«RBE»''' задается в поле '''«Mode»'''.
== RBE-режимы ==
В этих режимах – '''«block unless value changes»''' (''«пропустить, если значение изменилось»'') и '''«block unless value changes (ignore initial value)»''' (''«пропустить, если значение изменилось, но игнорировать начальное значение»'') – нода не будет пропускать сообщения дальше в поток, если новое значение в '''«msg.payload»''' будет аналогично предыдущему. Работает с числами и строками.
Этот режим полезен для фильтрации повторяющихся сообщений (имеющих одно и то же значение), что позволяет, например, снизить нагрузку на канал связи и т.д.
== Deadband- и narrowband-режимы ==
В [[deadband-режим]]ах – '''«block unless value change is greater or equal to»''' (''«пропустить, если новое значение больше или равно...»'') и '''«block unless value change is greater than»''' (''«пропустить, если новое значение больше, чем...»'') – для пропуска сообщения дальше в поток в '''«msg.payload»''' входящего сообщения должно содержаться число, находящееся за пределами диапазона, который рассчитывается относительно предыдущего значения.
В [[narrowband-режим]]ах – '''«block if value change is greater or equal to»''' (''«блокировать, если новое значение больше или равно...»'') и '''«block if value change is greater than»''' (''«блокировать, если новое значение больше, чем...»'') – нода '''«RBE»''', наоборот, будет пропускать дальше только те сообщения, значения которых попадают в диапазон, рассчитываемый относительно предыдущего значения. Это можно использовать, например, чтобы игнорировать случайные данные и прочие значения, выходящие за пределы нужного диапазона.
В поле, которое находится ниже, можно задать, по какому значению будет выполняться сравнение – по выходящему или входящему. В первом случае значения будут примерно держаться заданного диапазона, тогда как во втором будет достаточно двух ''«плохих»'' значений подряд, чтобы с их помощью серьезно сместить диапазон в какую-либо сторону. Второй вариант может пригодиться, например, для равномерного увеличения или уменьшения значения.
Диапазон для [[deadband]]- и [[narrowband-режим]]ов можно задать с помощью обычного числа (вроде '''«10»''') или процентов (вроде '''«5%»''').
К примеру, если у вас выставлен режим '''«block unless value change is greater or equal to»''', предыдущим значением было '''«100»''', а диапазон составляет '''10%''', то значение '''«110»''' пройдет, а '''«109»''' – нет. Следующим значением, которое пройдет, будет '''«121» (110 + 10% = 121)'''.
Нода '''«RBE»''' полезна главным образом при работе с разными потоками сообщений. Т.е. одна такая нода позволяет одновременно работать, например, с сообщениями, присылаемыми от датчика температуры, и сообщениями из интернет-источника о курсе какой-то валюты.
Нода '''«RBE»''' принимает только числа и строки, значения в которых можно пропарсить (вроде '''«18.4 C»''' или '''«$500»''').
==Ноды==
{{Node-RED/Библиотеки/node-red-node-rbe}}


=См.также=
=См.также=
Строка 17: Строка 54:
<references />
<references />
{{Навигационная таблица/Node-RED библиотеки}}
{{Навигационная таблица/Node-RED библиотеки}}
{{Навигационная таблица/Телепорт}}
[[Категория:Модуль]]
[[Категория:Модуль]]
[[Категория:Модуль Node-RED]]
[[Категория:Модуль Node-RED]]
[[Категория:Node-RED модуль]]
[[Категория:Node-RED модуль]]
[[Категория:Модуль node-red-node-rbe]]
[[Категория:Модуль node-red-node-rbe]]

Текущая версия от 18:14, 14 мая 2023

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


Модуль «node-red-node-rbe»[1]

Эта нода добавляет в Node-RED возможность пропускать или не пропускать дальше в поток сообщения в зависимости от того, отличается ли новое значение от предыдущего (RBE-режим), и от того, попадает ли новое значение в заданный диапазон (deadband- и narrowband-режимы).

Установка

Запустите в пользовательской директории Node-RED (обычно это «~/.node-red») команду ниже:

npm i node-red-node-rbe

Использование

Нода «RBE» работает «потопиково». То есть одна нода «RBE» может одновременно обрабатывать разные серии сообщений отдельно друг от друга – согласно их значениям в свойстве «msg.topic». Допустим, у вас есть сообщения, в «msg.topic» которых хранится «humidity» – они будут обрабатывать как один поток сообщений, и есть сообщения, в «msg.topic» которых хранится «light» – они будут обрабатываться как другой поток сообщений.

Режим работы ноды «RBE» задается в поле «Mode».

RBE-режимы

В этих режимах – «block unless value changes» («пропустить, если значение изменилось») и «block unless value changes (ignore initial value)» («пропустить, если значение изменилось, но игнорировать начальное значение») – нода не будет пропускать сообщения дальше в поток, если новое значение в «msg.payload» будет аналогично предыдущему. Работает с числами и строками.

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

Deadband- и narrowband-режимы

В deadband-режимах«block unless value change is greater or equal to» («пропустить, если новое значение больше или равно...») и «block unless value change is greater than» («пропустить, если новое значение больше, чем...») – для пропуска сообщения дальше в поток в «msg.payload» входящего сообщения должно содержаться число, находящееся за пределами диапазона, который рассчитывается относительно предыдущего значения.

В narrowband-режимах«block if value change is greater or equal to» («блокировать, если новое значение больше или равно...») и «block if value change is greater than» («блокировать, если новое значение больше, чем...») – нода «RBE», наоборот, будет пропускать дальше только те сообщения, значения которых попадают в диапазон, рассчитываемый относительно предыдущего значения. Это можно использовать, например, чтобы игнорировать случайные данные и прочие значения, выходящие за пределы нужного диапазона.

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

Диапазон для deadband- и narrowband-режимов можно задать с помощью обычного числа (вроде «10») или процентов (вроде «5%»).

К примеру, если у вас выставлен режим «block unless value change is greater or equal to», предыдущим значением было «100», а диапазон составляет 10%, то значение «110» пройдет, а «109» – нет. Следующим значением, которое пройдет, будет «121» (110 + 10% = 121).

Нода «RBE» полезна главным образом при работе с разными потоками сообщений. Т.е. одна такая нода позволяет одновременно работать, например, с сообщениями, присылаемыми от датчика температуры, и сообщениями из интернет-источника о курсе какой-то валюты.

Нода «RBE» принимает только числа и строки, значения в которых можно пропарсить (вроде «18.4 C» или «$500»).

Ноды

Функция

См.также

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