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

Материал из Онлайн справочника
Перейти к навигацииПерейти к поиску
Нет описания правки
Нет описания правки
Строка 6: Строка 6:
=Модуль «node-red-node-rbe»<ref>[https://flows.nodered.org/node/node-red-node-rbe flows.nodered.org - node-red-node-rbe]</ref>=
=Модуль «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]] возможность пропускать или не пропускать дальше в поток сообщения в зависимости от того, отличается ли новое значение от предыдущего ([[RBE-режим]]), и от того, попадает ли новое значение в заданный диапазон ([[deadband]]- и [[narrowband-режим]]ы).


== Установка ==
== Установка ==


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


<syntaxhighlight lang="bash" enclose="div">
npm i node-red-node-rbe
npm i node-red-node-rbe
</syntaxhighlight>


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


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


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


== RBE-режимы ==
== RBE-режимы ==


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


Этот режим полезен для фильтрации повторяющихся сообщений (имеющих одно и то же значение), что позволяет, например, снизить нагрузку на канал связи и т.д.
Этот режим полезен для фильтрации повторяющихся сообщений (имеющих одно и то же значение), что позволяет, например, снизить нагрузку на канал связи и т.д.
Строка 28: Строка 30:
== Deadband- и narrowband-режимы ==
== Deadband- и narrowband-режимы ==


В deadband-режимах – «block unless value change is greater or equal to» («пропустить, если новое значение больше или равно...») и «block unless value change is greater than» («пропустить, если новое значение больше, чем...») – для пропуска сообщения дальше в поток в «msg.payload» входящего сообщения должно содержаться число, находящееся за пределами диапазона, который рассчитывается относительно предыдущего значения.
В [[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», наоборот, будет пропускать дальше только те сообщения, значения которых попадают в диапазон, рассчитываемый относительно предыдущего значения. Это можно использовать, например, чтобы игнорировать случайные данные и прочие значения, выходящие за пределы нужного диапазона.
В [[narrowband-режим]]ах '''«block if value change is greater or equal to»''' (''«блокировать, если новое значение больше или равно...»'') и '''«block if value change is greater than»''' (''«блокировать, если новое значение больше, чем...»'') – нода '''«RBE»''', наоборот, будет пропускать дальше только те сообщения, значения которых попадают в диапазон, рассчитываемый относительно предыдущего значения. Это можно использовать, например, чтобы игнорировать случайные данные и прочие значения, выходящие за пределы нужного диапазона.


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


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


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


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


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


==Ноды==
==Ноды==

Версия от 19:00, 7 июня 2019

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


Модуль «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»).

Ноды

Функция

См.также

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