Node-RED:Введение/Создание первого потока: различия между версиями
Myagkij (обсуждение | вклад) |
Нет описания правки |
||
(не показана 1 промежуточная версия этого же участника) | |||
Строка 3: | Строка 3: | ||
{{Myagkij-редактор}} | {{Myagkij-редактор}} | ||
=Создание первого потока<ref>[https://nodered.org/docs/getting-started/first-flow nodered.org - Creating your first flow]</ref>= | =Создание первого потока<ref>[https://nodered.org/docs/getting-started/first-flow nodered.org - Creating your first flow]</ref>= | ||
Строка 43: | Строка 43: | ||
Сделайте двойной клик по ноде '''«function»''', чтобы открыть меню ее редактирования. Скопируйте туда вот этот код: | Сделайте двойной клик по ноде '''«function»''', чтобы открыть меню ее редактирования. Скопируйте туда вот этот код: | ||
<syntaxhighlight lang="javascript | <syntaxhighlight lang="javascript"> | ||
// Создаем объект «date», используя данные полезной нагрузки: | // Создаем объект «date», используя данные полезной нагрузки: | ||
var date = new Date(msg.payload); | var date = new Date(msg.payload); | ||
Строка 60: | Строка 60: | ||
Весь поток, созданный в этой статье, представлен в [[JSON]]-объекте ниже. Вы можете импортировать его прямо в редактор – для этого кликните на кнопку настроек справа вверху (кнопка с тремя вертикальными полосками), затем на '''«Import» > «Clipboard»''', вставьте этот код в поле посередине и нажмите на '''«Import»'''. Меню импорта также можно открыть, просто кликнув на горячие клавиши {{клавиша|Ctrl}}+{{клавиша|I}}. | Весь поток, созданный в этой статье, представлен в [[JSON]]-объекте ниже. Вы можете импортировать его прямо в редактор – для этого кликните на кнопку настроек справа вверху (кнопка с тремя вертикальными полосками), затем на '''«Import» > «Clipboard»''', вставьте этот код в поле посередине и нажмите на '''«Import»'''. Меню импорта также можно открыть, просто кликнув на горячие клавиши {{клавиша|Ctrl}}+{{клавиша|I}}. | ||
<syntaxhighlight lang="javascript | <syntaxhighlight lang="javascript"> | ||
[{"id":"58ffae9d.a7005","type":"debug","name":"","active":true,"complete":false,"x":640,"y":200,"wires":[]}, | [{"id":"58ffae9d.a7005","type":"debug","name":"","active":true,"complete":false,"x":640,"y":200,"wires":[]}, | ||
{"id":"17626462.e89d9c","type":"inject","name":"","topic":"","payload":"","repeat":"","once":false,"x":240,"y":200,"wires":[["2921667d.d6de9a"]]}, | {"id":"17626462.e89d9c","type":"inject","name":"","topic":"","payload":"","repeat":"","once":false,"x":240,"y":200,"wires":[["2921667d.d6de9a"]]}, |
Текущая версия от 13:13, 18 июня 2023
Создание первого потока[1]
Запустив Node-RED, введите в адресную строку браузера «http://localhost:1880» и нажмите на ↵ Enter . Если вы знаете IP-адрес или название экземпляра Node-RED, то вы также можете запустить его с другого устройства с помощью ссылки «http://{ip-адрес-устройства-Node-RED}:1880.
Добавляем ноду «inject»
Нода «inject» (находится в списке «input») позволяет отправлять в поток сообщения. Отправка сообщений запускается либо вручную с помощью клика по кнопке ноды, либо автоматически по прошествии установленных интервалов времени.
Перетяните ноду «inject» из панели слева в рабочую область.
Откройте правую панель. Это можно сделать, во-первых, нажав на Ctrl + Пробел или, во-вторых, нажав на кнопку настроек (с иконкой с тремя вертикальными полосками справа вверху), а затем на «View» > «Show sidebar». Затем выберите в правой панели вкладку «Info».
Выберите только что добавленную ноду «inject». В результате в правой панели должна появиться информация о ее свойствах, а также описание того, что она делает.
Добавляем ноду «debug»
Если добавить в поток ноду «debug» (находится в списке «output»), то это будет показывать все сообщения потока справа на вкладке «Debug» (с иконкой жука). По умолчанию он показывает лишь полезную нагрузку сообщения, но может показывать и весь объект сообщения.
Соединяем созданные ноды
Подсоедините ноды «inject» и «debug» друг с другом, протянув «проводок» от выходного «контакта» одной ноды к выходному «контакту» другой.
Делаем развертку
В данный момент ноды существуют только в редакторе, поэтому нам нужно выполнить их развертку на сервере.
Для этого просто кликните на кнопку «Deploy», которая находится в правом верхнем углу.
Выберите вкладку «Debug» и кликните на «inject». В правой панели должны появиться цифры. По умолчанию в ноде «inject» в виде полезной нагрузки используется количество миллисекунд, прошедших с 1 января 1970 года. Давайте поменяем их на что-то более удобоваримое.
Добавляем ноду «function»
Нода «function» (находится в списке «function») позволяет отправлять сообщения при помощи Javascript-функции.
Поместите ноду «function» между «inject» и «debug» и соедините их друг с другом. Для этого вам понадобится удалить уже существующий «проводок», соединяющий ноды «inject» и «debug» (просто выберите его и нажмите на Delete на клавиатуре).
Сделайте двойной клик по ноде «function», чтобы открыть меню ее редактирования. Скопируйте туда вот этот код:
// Создаем объект «date», используя данные полезной нагрузки:
var date = new Date(msg.payload);
// Конвертируем полезную нагрузку в строку объекта «date»:
msg.payload = date.toString();
// Возвращаем сообщение, чтобы его можно было отправить:
return msg;
Кликните на «Done», чтобы закрыть меню редактирования, а затем кликните на кнопку «Deploy».
Теперь, когда вы будете кликать на кнопку «inject», в панели «debug» справа будут появляться более удобочитаемые сообщения в виде пометок времени.
Прямой импорт потока
Весь поток, созданный в этой статье, представлен в JSON-объекте ниже. Вы можете импортировать его прямо в редактор – для этого кликните на кнопку настроек справа вверху (кнопка с тремя вертикальными полосками), затем на «Import» > «Clipboard», вставьте этот код в поле посередине и нажмите на «Import». Меню импорта также можно открыть, просто кликнув на горячие клавиши Ctrl + I .
[{"id":"58ffae9d.a7005","type":"debug","name":"","active":true,"complete":false,"x":640,"y":200,"wires":[]},
{"id":"17626462.e89d9c","type":"inject","name":"","topic":"","payload":"","repeat":"","once":false,"x":240,"y":200,"wires":[["2921667d.d6de9a"]]},
{"id":"2921667d.d6de9a","type":"function","name":"Format timestamp","func":"// Create a Date object from the payload\nvar date = new Date(msg.payload);\n// Change the payload to be a formatted Date string\nmsg.payload = date.toString();\n// Return the message so it can be sent on\nreturn msg;","outputs":1,"x":440,"y":200,"wires":[["58ffae9d.a7005"]]}]
См.также
Внешние ссылки