[Announce] node-red-contrib-homie-convention

update to version 0.0.2

Hello,
I released version 0.0.2-beta of a custom node to handle communication over mqtt via the homie convention.

This is my FIRST custom node! Any feedback appreciated.


goals

  • Handling all communication
  • making full use of the discovery functionality of the homie convention
  • easy interfacing with the standard dashboard nodes using ui_control features
  • Node-RED acts as a controller
  • Concept of predicted state of parameters: Changes on actuators should be confirmed by the actuator. The predicted should be visible in the dashboard until the new value is confirmed.
  • basic support of homie extensions $stats, $fw and $implementation
  • ToDo: detecting offline devices
  • ToDo: managing status updates
  • ToDo: managing modified or deleted homie devices, nodes or parameters
  • ToDo: make Node-RED acting like a homie device
  • ToDo: full extensions support
  • ToDo: bugfixes
  • ToDo: code cleanup and streamlining

known issues

  • mqtt security is not implemented yet (need some help to perhaps use the build in mqtt-config-node)
  • sending messages to homie parameters using wildcards is implemented but not tested
  • some config UI issues (lists sometimes not correctly refreshed lists). Close the config and open it again. Tried to limit getHTTP requests ...
  • some format conversions (true/false, ON/OFF and others) might not working correctly
  • make sure that most messages has to be sent as retained messages with QoS=2 according to the homie convention. Some devices can only sent QoS=0 and retained=true. Configure your broker to store these messages on non volatile memory. Keep this in mid if you use tools like the fantastic MQTT Explorer (The Explorer shows the values in the tree structure even if the don`t exists on the broker any more)
  • Now tested and developed with Node-RED 1.0.x
  • perhaps the node is a little bit overloaded ... perhaps split the dashboard part in a separate node? Or get the dashboard to do this naively?

For development I used the several ESP8266 running ESPEasy framework using the C014 & P086 plugins I developed too (all Beta!). I`m using mosquitto with some tweaks in the mosquitto.ini file to store the messages due to the limitation of the pubsub-library on the ESP8266 not able to send QoS=2 messages.

6 Likes

Nice work! :grinning:

As soon as I am done wiring the rest of my new flat, this will be one of next items on the to-do list.
Besides Bart and Steve's (@BartButenaers and @Steve-Mcl) awesome SVG node and Julian's (@TotallyInformation) uibuilder, of course.

(edited by the wish of a single Bart :grinning:)

4 Likes