[Announce] node-red-contrib-enocean

i finally found the time to work on the node-red-contrib-enocean project.
It's coming along nicely. Features implemented:

  • listen to and decode incoming telegrams. most EEPs should work out of the box.
  • automatic and manually teach in
  • telegram meta data like RSSI and timestamp
  • sending telegrams (basic implementations)
  • dedicated button encoder/sender

i would really like some feedback, and possibly some help for the documentation.

if you have any question, you can ask here, or over at github



Is there a readme for it ? What hardware does it require ? What pre-refs are there ?

just pushed the new readme. currently only the enocean-input node is documented.
hardware wise you would need any TCM 300, TCM310 or TCM320 device like the USB 300 or the enocean pi


what are pre-refs?

in node help/description still to do though...

Sorry. Pre-reqs

1 Like

oh sorry, should have known that :wink: i'm quite new to node-red...

no, no other requirements, you just need the enocean->serial hardware, and probably at least one other enocean iot device to play with...

This sounds interesting ... I will give a try when I get the chance.
Is the source code on github ? All I could find was enocean-js and two-year old node-red-contrib-enocean repo ....

yes, i switch to a monorepo like structure, so all source code is now in the enocean-js repo...

i know the documentation is still lacking, sorry :wink:

To cut a long story short, the source is here: https://github.com/enocean-js/enocean-js/tree/master/packages/node-red-contrib-enocean

the bugs and issues are here: https://github.com/enocean-js/enocean-js/issues?q=is%3Aopen+is%3Aissue+project%3Aenocean-js%2Fenocean-js%2F1


new version 0.4.9

  • enocean-btn now encodes a 4-Rocker switch. so you can encode 128 switches = 512 Rockers = 1024 Buttons with one USB Stick.
  • new generalized enocean-out behavior (no documentation yet). one enocean-out for all outgoing telegrams.
  • support for sending (simple) UTE teach-in telegrams

this version break compatibility with previous versions of enocean-out.

please be aware that the API and behavior will still change, and things will break

i'm planing to freez the api and behavior with v0.5.0 and then following a more strict semVer versioning...

1 Like

v 0.4.12 fixes some issues with teach-in...

there is now an example flow you can work of... https://flows.nodered.org/flow/992eede05f4f4097a00711aa4e73ce8b


just published a first draft of 0.5.0 (0.5.0-alpha.0)

when 0.5.0 is finalized I will freeze the API and follow semVer more strictly.
The new version has some significant changes:

  • separated the input node from the actor node.
  • an actor node can learn more that one sensor
  • an actor node can learn more than one EEP per sensor
  • teach in mode is now triggered by a message instead of a button
  • sensors are saved in node context exclusively preventing some bugs I had when using concurrent memory mechanisms
  • the separation should make debugging much easier now because you can log all unknown raw packets.
  • there will be fewer event handlers registered.
  • triggering teach-in by message enables the complete teach-in procedure to be used from dashboards...
  • and much more...

beware though because it's the first alpha :wink:


Version 0.5.0-alpha.1 is here.

with this release teach in and deletion should be stable manually, automatic or via the ui.
i'm quite pleased with the structure and API now.
from now on i will do code clean up and optimizations, as well as documentation and localisation... and bug fixes! please share your thoughts, feature request and bugs so i can get them in to 0.5.0 final.

1 Like

a rough screencast showing how things should work: https://youtu.be/3p3hWlNsAvo

1 Like

just published v0.5.0

It is the first stable API. You can now start using it and expect your flows to work with future versions as well.
Notable changes to the last beta:

  • better error handling when opening ports
  • list available serial devices in config-node
1 Like

Hi Holger,
Thanks a lot for your dev extending our Rasp with all enconean devices.
I use an USB300 with some raspberry

I didn't get the reading data from "enocean in" node, nevertheless i have the green light indicating that is connected.
I test the connexion and data using the command line ("lsusb" and " sudo hexdump < /dev/ttyUSB0")
I tested it with a rocker device (the led on USB dongle is blinking)

I saw your implementation video, and the green ligth (status node) is blinking when data are received, wich is not my case, it's allways stay green and solid.

The output node is working well.

Let me know if you think something ?

Thanks a lot again.
Best regards

PS : Sorry to post in this topic, i didn't konw how to be sure that you get my message

can you send me an example flow, please. I'll have a look.

sending telegrams working, suggests that the USB300 is configured correctly...

it migth be connected to this: https://github.com/enocean-js/enocean-js/issues/168#issuecomment-592165917

or you have multiple config nodes... idk

Thanks for your reply.

  I'm not in front of my device, i'll send you more details when

i'm going back home.

I use the same example
that you provided

Fyi, i tested with 2 differents raspberry 4 (debian and raspbian)

  --> If i connect directly "Enocean IN" to a debug node should

i see normally the data (and the under led blinking) ?

Thanks again !



  Here the image of the environnement, let me know if you can see

why i don't see something in the actor or in debug window ?

Good night



why i don't see something in the actor or in debug window ?

mmhh... just a wild guess, but i see you use sudo for the hexdump...

can you post the output of ls -al /dev/ttyUSB* it should read something like

crw-rw---- 1 root dialout 188, 0 Feb 25 08:11 /dev/ttyUSB0


No need to have an elevation.

All hardware interface seems OK.