Отправка сообщений из Tulip в Node-RED
  • 20 Feb 2024
  • 3 Минуты для чтения
  • Авторы

Отправка сообщений из Tulip в Node-RED


Вводный текст

Для отправки сообщений из Tulip (например, из триггеров или автоматизаций в приложении) можно использовать коннектор. Это проще всего сделать, установив Connector Host на всех устройствах Tulip Edge.

С устройствами Tulip Edge

Для отправки сообщения из триггера Tulip в Node-RED, запущенный на устройстве Tulip Edge, используется следующий поток:

Communicate with Machines using Edge MC's Connector Host & Node-RED_314676359.png

После завершения работы используйте только что созданный коннектор в любом приложении Tulip App или Automation для отправки сообщений на Node-RED, например, команд устройства или входов потока.

В Tulip: Настройка коннектора и узла коннектора

Примечание: Если вы не знакомы с хостами коннекторов и функциями коннекторов в Tulip, ознакомьтесь с этой статьей.

  1. Создайте новый коннектор на странице " Коннекторы " в вашем экземпляре Tulip.
  2. В появившемся модальном окне заполните информацию, как указано ниже:

Имя: Выберите имя для хоста коннектораОписание: Выберите имя для хоста коннектораТип коннектора: Выберите HTTP

  1. Нажмите "Сохранить".
  2. Чтобы указать детали хоста коннектора, нажмите на кнопку production & testing & development слева. В появившемся модальном окне введите следующую информацию:

Running On: Выберите целевой хост коннектора Edge Device*Примечание: Если хост коннектора Edge Device не удается найти, перейдите на портал Edge Device и убедитесь, что "Хост коннектора" включен.*Хост: Введите localhost Порт: Введите 1880 (это порт, на котором работает Node-RED) TLS: Введите Нет Не нужно добавлять заголовки или сертификаты.

  1. Нажмите кнопку Test и убедитесь, что соединение прошло. Наконец, нажмите Сохранить.

Теперь этот коннектор может взаимодействовать с Node-RED на целевом пограничном устройстве.


В Node-RED: Настройка узла HTTP IN

Примечание: Этот раздел предполагает знакомство с Node-RED.

Для получения сообщения от узла коннектора на устройстве будет использоваться узел HTTP IN.

  1. Нажмите и перетащите, чтобы добавить узел HTTP IN из палитры в левой части редактора Node-RED в поток:

image.png

Введите следующую информацию:
Метод: POST URL: любой заданный пользователем путь, например /nodeRED или /myMachine/0013. Он будет повторно использоваться в Node-RED, поэтому должен быть легко узнаваем и запоминаем. В примере ниже URL настроен как /test:
image.png

  1. Нажмите "Готово", чтобы сохранить изменения.

HTTP-запросы будут завершаться без получения ответа от сервера (в данном случае Tulip).

  1. Перетащите узел HTTP Response.
  2. Соедините узел HTTP Request с узлом HTTP Response. 3. Дважды щелкните узел HTTP Response и введите 200 в качестве кода состояния. Нажмите кнопку Готово.

image.png

:::(Info) (HTTP-ответы и расширенная обратная связь) Измените код состояния и/или используйте кнопку +add в узле HTTP-ответа, чтобы изменить или добавить в ответ коннектора. Эти данные (чаще всего это выходные данные системы или устройства, генерируемые потоком) появятся в ответе коннектора. Настройте выходы коннектора с помощью руководства здесь!!!это правильная формулировка?!!! :::

  1. Наконец, перетащите узел Debug из палитры. Настройте этот узел на вывод**"Полного объекта сообщения** с помощью выпадающего списка msg.:image.png

Теперь этот поток Node-RED будет получать сообщение от Tulip и отображать его в журнале отладки Node-RED.

Завершенный поток может выглядеть так, как показано ниже:image.png

Нажмите Deploy в правом верхнем углу, чтобы зафиксировать все изменения.

В Tulip: Настройка и тестирование функции коннектора

После завершения настройки потока Node-RED вернитесь к коннектору в Tulip.

  1. Создайте новую функцию коннектора.
  2. Измените функцию коннектора с GET на POST.
  3. Введите в URL путь, настроенный в Node-RED (в данном примере /test).
  4. (необязательно) Чтобы добавить содержимое в коннектор (например, сообщение или команду), добавьте к нему вход.
  5. (необязательно) Добавьте Input в тело запроса, сначала изменив тип содержимого на JSON, а затем добавив элемент в root.

На скриншоте ниже показан коннектор, настроенный на конечную точку /test, указанную выше, и включающий вход под названием testValue:image.png

Нажмите кнопку "Запустить", чтобы протестировать функцию коннектора. Появятся два индикатора успеха:

  1. Функция коннектора получит ответ 200 OK, содержащий (если применимо):
  2. Любые входы, сконфигурированные в Коннекторе 2. Любые дополнительные выходы, сконфигурированные в узле HTTP-ответов Node-RED 2. Журнал отладки в Node-RED отобразит сообщение коннектора. *Примечание: В зависимости от текущей версии Node-RED, тело запроса коннектора можно найти либо в:*a. msg.payload, либо b. msg.req.body.

Оба состояния успеха приведены ниже:

Успех коннектора:image.png

Node-RED Success:image.png


Была ли эта статья полезной?