Node-RED:Введение/Создание первого потока

Материал из Онлайн справочника
Версия от 12:14, 30 марта 2019; Myagkij (обсуждение | вклад)
(разн.) ← Предыдущая версия | Текущая версия (разн.) | Следующая версия → (разн.)
Перейти к навигацииПерейти к поиску

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


Черновик


Создание первого потока[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"]]}]

См.также

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