Node-red вызывает функцию или обновляет переменную в шаблоне

Node-red вызывает функцию или обновляет переменную в шаблоне

У меня есть шаблон html, и у меня есть несколько ползунков jqueryui, когда я перемещаюсь, я бы хотел, чтобы они обновляли переменную красного узла.

Можно ли это сделать без почтового запроса?

Спасибо


person zevensuy rodriguez    schedule 27.02.2016    source источник


Ответы (2)


Вам нужно каким-то образом связаться со страницы обратно в Node-RED, у вас есть 3 реальных варианта.

  1. HTTP GET/POST для узла HTTP IN
  2. Откройте подключение Websocket со страницы к узлу Websocket IN.
  3. Используйте MQTT через веб-сокеты, чтобы опубликовать изменения в брокере, а затем создать узел MQTT IN.

Любой из них может затем перейти в функциональный узел для изменения потоковой/глобальной переменной, которая может быть получена узлом шаблона в следующий раз, когда он будет вызван.

person hardillb    schedule 27.02.2016

Потенциальный вариант, который стоит изучить, — это использование пакета node-red-contrib-ui, о котором можно прочитать на веб-сайте npm здесь:

https://www.npmjs.com/package/node-red-contrib-ui

Что делает этот пакет, так это предоставляет очень элегантный механизм для потока Node-RED для описания самого макета экрана браузера. Это могут быть кнопки, ввод текста, датчики, диаграммы и... в вашем случае... ползунки. Когда пользователь взаимодействует со страницей, эти взаимодействия сами по себе вызывают создание экземпляров потока. Это означает, что нет связи между отдельной веб-страницей и Node-RED, поскольку Node-RED сам создает страницу. Также кажется, что можно вставить произвольный HTML, который может быть применим для использования пользовательского интерфейса jQuery и других технологий браузера пользовательского интерфейса.

Эта технология переворачивает историю, фокусируясь на Node-RED и второстепенном пользовательском интерфейсе, но она по-прежнему достойна внимания, даже если вы решите, что это не то, что вам нужно для вашего текущего проекта.

person Kolban    schedule 28.02.2016