Это старая версия документа!
Это нативный для Node-RED вариант передачи данных в проект «Народный мониторинг», т.к. для его реализации не требуются дополнительные узлы. Однако, с виду он немного более туманный, ибо в официальной инструкции написано что-то не до конца понятное… Но это только так кажется… если разобраться, что к чему.
Пример использования специального узла и более подробное описание цепочки узлов тут. В этой же статье рассмотрены только изменения относительно первого варианта.
Относительно вышеуказанного варианта, изменились узлы «Подготовка данных» и «Отправка данных».
Теперь в поле «Шаблон» сообщение отформатировано в виде JSON-строки, тогда как раньше был простой текст, а параметр «Вывести как», соответственно, изменен на JSON
.
Теперь, вместо «node-red-narodmon», используется родной узел «mqtt out» со следующими настройками:
Путь до параметра | Значение | ||
---|---|---|---|
Сервер → | Соединение → | Сервер: | narodmon.ru |
ID клиента: | XX:XX:XX:XX:XX:XX1) | ||
Безопасность → | Имя пользователя: | <логин в проекте> | |
Пароль: | <личный код>2) | ||
Тема: | <логин в проекте>/<название устройства>/json3) |
Никаких других обязательных данных указывать или менять не нужно! Не знаю, почему такое расхождение с инструкцией на сайте проекта…
Если до этого использовали какой-либо другой вариант передачи данных на сервер, то после внесения изменений в поток, необходимо на сайте в свойствах устройства изменить протокол на MQTT, иначе данные будут игнорироваться!
[ { "id": "f279413e.d2c8e", "type": "delay", "z": "551f568e.e62c18", "name": "Ограничение 5 минут", "pauseType": "rate", "timeout": "5", "timeoutUnits": "seconds", "rate": "1", "nbRateUnits": "5", "rateUnits": "minute", "randomFirst": "1", "randomLast": "5", "randomUnits": "seconds", "drop": true, "x": 160, "y": 580, "wires": [ [ "ef5cb94a.abad08", "15515561.bf4ccb" ] ] }, { "id": "ef5cb94a.abad08", "type": "template", "z": "551f568e.e62c18", "name": "Подготовка данных", "field": "payload", "fieldType": "msg", "format": "handlebars", "syntax": "mustache", "template": "{ \"T1\": {{{payload.temperature}}}, \"H1\": {{{payload.humidity}}} }", "output": "json", "x": 440, "y": 580, "wires": [ [ "8332b0ad.531ea" ] ] }, { "id": "d8544fd0.c205f", "type": "link in", "z": "551f568e.e62c18", "name": "С MQTT", "links": [ "c8c40256.0249b" ], "x": 75, "y": 640, "wires": [ [ "f279413e.d2c8e" ] ] }, { "id": "15515561.bf4ccb", "type": "trigger", "z": "551f568e.e62c18", "name": "Вброс последнего сообщения", "op1": "", "op2": "", "op1type": "nul", "op2type": "payl", "duration": "28", "extend": true, "overrideDelay": false, "units": "min", "reset": "", "bytopic": "all", "topic": "topic", "outputs": 1, "x": 290, "y": 640, "wires": [ [ "ef5cb94a.abad08", "c54dc60b.a15a28" ] ], "info": "Народный мониторинг требует передачи данных не реже раза в 30 мин, иначе выставляет санкции!.. а Sonoff SNZB-02, почему-то, периодически не передает данные дольше... Тут, либо у меня косяк какой-то, либо реально данные не меняются и он молчит.\n\nПоэтому был добавлен этот триггер - если данные не отправляются больше установленной задержки (меньше 30 мин), он вбрасывает последнее поступившее сообщение.\n\nПока данные периодические передаются, он постоянно продлевает таймер." }, { "id": "c54dc60b.a15a28", "type": "change", "z": "551f568e.e62c18", "name": "Подготовка письма", "rules": [ { "t": "set", "p": "topic", "pt": "msg", "to": "\"Данные телеметрии были вброшены в \" & $now('[H01]:[m01]:[s01] [D01].[M01].[Y0001]', '+1000') & \"!\"", "tot": "jsonata" }, { "t": "set", "p": "payload", "pt": "msg", "to": "\"Для соответствия правилам портала \\\"Народный мониторинг\\\", были вброшены следующие данные из последнего сообщения:\\n\\n1) температура: \" & payload.temperature & \";\\n2) влажность: \" & payload.humidity & \".\"", "tot": "jsonata" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 600, "y": 640, "wires": [ [ "63bb51cd.8a1fc" ] ] }, { "id": "63bb51cd.8a1fc", "type": "link out", "z": "551f568e.e62c18", "name": "Отправка почты", "links": [ "7c896fde.621af" ], "x": 775, "y": 640, "wires": [] }, { "id": "8332b0ad.531ea", "type": "mqtt out", "z": "551f568e.e62c18", "name": "Передача данных", "topic": "user/device/json", "qos": "", "retain": "", "broker": "72c3b2f6.2ae94c", "x": 710, "y": 580, "wires": [] }, { "id": "72c3b2f6.2ae94c", "type": "mqtt-broker", "name": "narodmon", "broker": "narodmon.ru", "port": "1883", "clientid": "XX:XX:XX:XX:XX:XX", "usetls": false, "compatmode": false, "keepalive": "60", "cleansession": true, "birthTopic": "", "birthQos": "0", "birthPayload": "", "closeTopic": "", "closeQos": "0", "closePayload": "", "willTopic": "", "willQos": "0", "willPayload": "" } ]
Обсуждение