Входные узлы¶
HTTP¶
- HTTP Method:
POST
- Адрес для отправки:
- Обязательное поле Headers:
«Content-Type: application/json»
- Данные передаются в формате json:
{«temp»:23,»door»:»open»}
- Обязательный параметр query string:
chain=chainName
Пример отправки данных:
curl -k -H "Content-Type: application/json" -X POST -d '{"temp":23,"door":"open"}' http://127.0.0.1:5555/api/pushdata?chain=chainName
Узел ModbusTCP¶
Узел опроса устройств по протоколу Modbus TCP.
Конфигурация узла:
Вкладка
Ручные
:в разработке
Вкладка
Из файла
:загрузка настроек из файла csv
Пример содержимое csv файла с настройками:
ip;port;device-name;period;order;scale;function;type;quantity;address;property-name;source;device-id
10.186.0.205;1502;umg;5000;big;1;FC03;int16;1;0;address0;ABC/adr0;1
10.186.0.205;1502;umg;5000;big;1;FC03;int16;1;1;address1;ABC/adr1;1
10.186.0.205;1502;umg;5000;big;1;FC03;int16;1;2;address2;ABC/adr2;1
Пример создания цепочки с загрузкой конфигурации Modbus устройства из файла:
Добавьте узел
ModbusTCP
, выберите вкладкуFile
, загрузите файл в виде, как указано выше, в форматеCSV
:Добавьте узлы
Debug
иMQTT
, соедините узлы:Настройте узел
MQTT
:Создайте цепочку:
Проверьте результат внутри узла
Debug
или наMQTT брокере
в соответствующем топике:Для эмуляции данных используется ПО Modbus Slave:
Узел ModbusRTU¶
Узел опроса устройств по протоколу Modbus TCP.
Конфигурация узла:
Загрузка настроек из файла csv
Пример файла с настройками:
port;boudrate;byte-size;flow;stop-bit;device-name;device-id;period;name;function;address;quantity;type;scale
/dev/pts/3;115200;8;N;1;pol-467;1;5000;di-1;FC03;0;1;bool;1
/dev/pts/3;115200;8;N;1;pol-467;1;5000;di-2;FC03;1;1;bool;1
/dev/pts/3;115200;8;N;1;pol-467;1;5000;di-3;FC03;2;1;bool;1
/dev/pts/3;115200;8;N;1;pol-467;1;5000;di-4;FC03;3;1;bool;1
/dev/pts/3;115200;8;N;1;pol-467;1;5000;di-5;FC03;4;1;bool;1
/dev/pts/3;115200;8;N;1;pol-467;1;5000;do-1;FC03;5;1;bool;1
/dev/pts/3;115200;8;N;1;pol-467;1;5000;do-2;FC03;6;1;bool;1
/dev/pts/3;115200;8;N;1;pol-467;1;5000;on-do-2;FC03;7;1;bool;1
/dev/pts/3;115200;8;N;1;pol-467;1;5000;ai-2;FC03;0;2;float32;1
/dev/pts/3;115200;8;N;1;pol-467;1;5000;ai-3;FC03;1;2;float32;1
Узел опроса свойства BACnetRP¶
Узел опроса отдельных свойств устройств в сети BACnet.
Формат csv-файла:
ip;port;cmd;period;block;device-instance;device-name;object-type;object-instance;property-name;property;description;source
10.186.0.205;47808;rp;5;50;0;bacserv_demo;2;4;area1;85;Активация ДУ-1;МФК/ARK-5/Активация ДУ-1
10.186.0.205;47808;rp;5;50;0;bacserv_demo;2;5;area2;85;Активация ДУ-2;МФК/ARK-5/Активация ДУ-2
Узел опроса свойств BACnet ReadMultiply¶
Формат csv-файла:
ip;port;cmd;period;block;device-instance;device-name;object-type;object-instance;property-name;property;description;source
10.186.0.205;47808;rpm;5;50;0;bacserv_demo;2;4;area1;85;Активация ДУ-1;МФК/ARK-5/Активация ДУ-1
10.186.0.205;47808;rpm;5;50;0;bacserv_demo;2;5;area2;85;Активация ДУ-2;МФК/ARK-5/Активация ДУ-2
Узел подписки на изменение свойств BACnet COV¶
Формат csv-файла:
Для работы с COV подписками необходимо, начиная со второй строки csv-файла написать в столбец «cmd» команду rp и указать свойства «device-name», «ip», «port», «device-instance», «object-type», «object-instance»,»property»,»property-name». Количество «rp» команд должно быть равным количеству уникальных подписываемых устройств («device-instance»). Далее перечисляются подписки и их свойства.
Команда «rp» (ReadProperty) выполняет опрос каждые 10 секунд, для обнаружения устройств в сети.
Особенности работы COV подписок:
Подписки можно создавать на большое количество времени, их срабатывание происходит когда данные у подписываемого объекта меняются.Возникает вопрос «как отследить работает ли подписка?», вдруг устройство больше не обнаруживается в сети. Для этого случая у каждого устройства опрашивается свойсво «systemStatus».
Ответ каждого устройства записывается в булевый вектор «flag_errors».
Далее к вектору применяется операция логическое «И» (Конъюнкия), результатом которой будет булевая переменная. Она отвечает за перезапуск COV подписки.
Обновлять или создавать цепочку не требуется, все данные о подписке хранятся в json-файле в директории …/chains
Пример получаемых данных:
Узел Меркурий¶
Узел опроса счетчиков электрической энергии Меркурий - 234.
Конфигурация узла:
Addresses
- Адрес счетчика (можно указать несколько адресов через запятую «11,45,44»)Delay, ms
- Задержка между опросами счетчиков, мсекSerialport
- Порт подключенияBoudrate
- Скорость линии RS-485Bytesize
- Количество бит данныхTimeout, ms
- Время ожидания ответа от счетчика, мсек
Узел опрашивает следующие значения:
ток
напряжение
cos(f) по всем фазам
углы между фазными напряжениями
активную и реактивную энергию по всем фазам
накопленную энергию за текущий день, за предыдущий день и нарастающим итогом
Пример вывода блока:
{
"U": {
"p1": 0.35,
"p2": 0.35,
"p3": 226.86
},
"I": {
"p1": 0.00,
"p2": 0.00,
"p3": 0.39
},
"CosF": {
"p1": 0.00,
"p2": 0.00,
"p3": 0.60,
"sum": 0.60
},
"F": 50.00,
"A": {
"p1": 41943.03,
"p2": 41943.03,
"p3": 41943.03
},
"P": {
"p1": 0.00,
"p2": 0.00,
"p3": 53.45,
"sum": 53.45
},
"S": {
"p1": 0.00,
"p2": 0.00,
"p3": 89.83,
"sum": 89.83
},
"PR": {
"ap": 120.51
},
"PR-day": {
"ap": 86.00
},
"PR-night": {
"ap": 34.51
},
"PY": {
"ap": 0.00
},
"PT": {
"ap": 0.04
}
}
Узел SNMP¶
Узел опроса устройств SNMP.
Конфигурация узла:
Settings file (json)
: файл конфигурации опрашиваемых устройств
Узел Рубикон¶
Узел поиска устройств в сети BACnet. Возвращает список найденных устройств.
Конфигурация узла:
Address
: адрес устройстваPort
: порт
Пример получаемых данных на выходе узла:
{"t":642084500,"n":43989340843264,"e":0,"i":423232,"s":8196,"d":"тревога"}
{"t":642084500,"n":70373609601792,"e":0,"i":423296,"s":8196,"d":"проникновение, на охране"}
{"t":642084500,"n":70373609601792,"s":8196,"d":"проникновение, на охране"}
{"t":642084500,"n":43989340843264,"s":8196,"d":"тревога"}
{"t":642084513,"n":70373609601792,"e":1,"i":423360,"u":0,"d":"06 мая 2020г.;12:48:33;1.помещение;Консоль/ППК;сбросадминистратор"}
Интерпретация:
t - time (секунды)
i - уникальный индекс события
d - текстовое описание
n - уникальный идентификатор объекта SNID (serial + id, 48 бит)
e - событие
s - статус (если событие = 0)
u - идентификатор пользователя (0 - администратор)
Если в данных только время, то это тестовый пакет проверки наличия связи.
Узел MQTT¶
- Принимает на вход JSON, и пытается распарсить все его key:value в следующую структуру:
«property-name»: key, «source»: topic, «value»: value
Пример вывода блока:
{
"connection_status": "Ok",
"time": 1697718856699,
"values": [
{
"property-name": "connection_status",
"source": "re_test/dev/modbus",
"value": "Ok"
},
{
"property-name": "device",
"source": "re_test/dev/modbus",
"value": "umg"
},
{
"property-name": "time",
"source": "re_test/dev/modbus",
"value": 1697718856687
},
{
"property-name": "timer",
"source": "re_test/dev/modbus",
"value": 0
},
{
"property-name": "values/0/address",
"source": "re_test/dev/modbus",
"value": 0
},
{
"property-name": "values/0/property-name",
"source": "re_test/dev/modbus",
"value": "address0"
},
{
"property-name": "values/0/source",
"source": "re_test/dev/modbus",
"value": "ABC/adr0"
},
{
"property-name": "values/0/type",
"source": "re_test/dev/modbus",
"value": "int16"
},
{
"property-name": "values/0/value",
"source": "re_test/dev/modbus",
"value": 0
}
]
}
Узел Расписание (Генератор)¶
Узел запускает JSON по цепочке с заданным интервалом
Конфигурация узла:
Режим «Миллисекунды» Загружаем любой JSON из файла и устанавливаем задержку в мс. Блок будет в бесконечном цикле отправлять этот JSON.
Режим «Продвинутые настройки» (Запуск по расписанию)
[
{
"Name": "TestDaily",
"Repeats": true,
"Json":{
"msg": "Test dayli"
},
"RepeatsEvery": "Daily",
"DailyTime": "15:15:00"
},
{
"Name": "TestWeekly",
"When": "06.09.2023 16:00:00",
"Repeats": true,
"Json":{
"msg": "Test weekly"
},
"RepeatsEvery": "Weekly",
"RepeatON": [true, true, true, false, false, true, true]
},
{
"Name": "TestMonthly",
"Repeats": true,
"EndDate": "06.09.2023 16:08:00",
"Json":{
"msg": "Test monthly"
},
"RepeatsEvery": "Monthly",
"MonthlyDate": [1,5,6,7]
},
{
"Name": "TestYearly",
"Repeats": true,
"Json":{
"msg": "Test yearly"
},
"RepeatsEvery": "Yearly",
"YearlyDate": ["05/09", "06/09"]
}
]
Узел Memcached¶
Узел получения данных по ключам из хранилища Memcached.
Конфигурация узла:
Адрес - адрес сервера с развёрнутым Memcached.
Порт - порт сервера по которому доступен Memcached. По умолчанию 11211.
Период - период проверки изменений ключей.
Ключи - значения в Memcached, которые будут проверяться. Для добавления ключа необходимо ввести его имя, после чего нажать кнопку „Добавить“. После добавления внизу появится красная кнопка с именем ключа, нажав на котороу, можно удалить ключ.
Узел Из цепочки¶
Узел поиска получения данных из других цепочек.
Узел Kafka¶
Узел для получения данных из Apach Kafka в форматах Json или Avro.
Адрес - адрес сервера с Apach Kafka.
Порт - порт сервера по которому доступен Apach Kafka. По умолчанию 9092.
Топик - топик из которого будут приниматься сообщения.
Id группы - идентефикатор необходимый для Apach Kafka для разделения слушателей.
Кодек сжатия - deprecated
Формат аериализации - формат сообщения, которое приходит в топик.
Если выбран формат сообщения «Avro», то станут доступны дополнительные настройки:
Адрес хранилища схем - адрес сервера, где хранятся Avro схемы. Формат адреса указан в плейсхолдере.
Имя схемы - имя, с которым схема будет зарегистрирована.
Id схемы - числовой идентефикатор схемы. (Можно создать разные схмы с одинаковыми именами, но их id должны быть разными)
Схема - файл формата avsc с описанием Avro схемы. (Кодировка UTF-8. Избегайте использования Кириллицы)