Enocean switch

Thank you for the reply :slight_smile:.

I would like to have only one Raspberry. Do you have any idea how to run the script on Hassio ? When I tried to use it with Hassio native Python integration, it does not work and shows the following error in the log:

Logger: homeassistant.components.python_script.enohag.py
Source: components/python_script/__init__.py:218
Integration: python_script (documentation, issues)
First occurred: 14:30:56 (1 occurrences)
Last logged: 14:30:56

Error executing script: __import__ not found
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/components/python_script/__init__.py", line 218, in execute
    exec(compiled.code, restricted_globals)
  File "enohag.py", line 3, in <module>
ImportError: __import__ not found

After reading info o nthe forum, it seems that some functions are not usable for Python in the native integration, it is therefore very limited. Would you recommand any add-on to use your script ?

pyscript seems best suited, but there is also apdeamon


I tried to use your script on a dedicated raspberry pi. I have: A raspberry pi 3b, with an EnOcean dongle USB300, an MQTT broker installed (mosquitto) and Home assistant running in a docker container with MQTT integration installed.

I run your script, and it worked quiet well. I get feedback from the roller shutter when I move it, and it also created automatically an entity in Home Assistant as roller shutter with the proper name.

EDIT: I thought I was stuck, but I tried something new and it worked. I was actually using the ID that I get from the dongle feedback, and it did not work. It worked when I used the ID that domoticz gave to the shutter when it was paired. I can now command the roller shutter from the installation described above, thank you very much ! I will try to implement in Hassio now.

Great that it works!

In my case, the script is running ok ( thanks @cgrueter, problem was nodeRed using the usb300) but i cannt find the correct ids and teach in script was als not working. Perhaps i try it some time later again…

@RCasa did nodeRed work for you?

For the ID, I used the one that I found in Domoticz. I also tried OpenHab for a few weeks, and you should be able to find the ID of the devices inside (If you still have the save).

For NodeRed, unfortunately, I stopped the research. I was able to receive the feedback, but not able to send any command to the roller shutter. I will try again with the proper IDs, and let you know if there is any progress.

Regarding the python script, it did work on a dedicated Raspberry, but not on my Hassio installation. When I put the script in the pyscript folder, my Hassio interface does not answer anymore. I have to manually delete the script using ssh access, because I cannot load the Hassio UI ! I did not look at the log yet, I will also let you know if there is any progress on this side.

i had the same experience with node red…
good luck with the script, i think i will switch to FHEM, the enocean support is much better there…(and hopefully i can controll it via mqtt from within Homeassistant)

I finally made it with NodeRed !!
Here is the flow that I used in NodeRed. You can load it using the menu > import by copy/paste.

[{"id":"488a984b.8f7fc8","type":"tab","label":"Flow 1","disabled":false,"info":""},{"id":"a70473f6.16d65","type":"debug","z":"488a984b.8f7fc8","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","x":630,"y":200,"wires":[]},{"id":"eef16e03.10f33","type":"enocean-out","z":"488a984b.8f7fc8","serialport":"a5a049a1.cadec8","name":"","logOutput":false,"x":610,"y":240,"wires":[[]]},{"id":"6423065c.485bc8","type":"enocean-btn","z":"488a984b.8f7fc8","name":"","encoding":"f6-02-02","delay":"","x":420,"y":220,"wires":[["eef16e03.10f33","a70473f6.16d65"]]},{"id":"cd1a0a8f.c33538","type":"inject","z":"488a984b.8f7fc8","name":"OUVRIR_CUISINE","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"{\"button\":0,\"channel\":2,\"event\":\"click\"}","payloadType":"json","x":170,"y":140,"wires":[["6423065c.485bc8"]]},{"id":"23735f15.709b7","type":"inject","z":"488a984b.8f7fc8","name":"FERMER_CUISINE","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"{\"button\":1,\"channel\":2,\"event\":\"click\"}","payloadType":"json","x":170,"y":180,"wires":[["6423065c.485bc8"]]},{"id":"b6bdf1c3.1eba8","type":"inject","z":"488a984b.8f7fc8","name":"OUVRIR_SALON","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"{\"button\":0,\"channel\":1,\"event\":\"click\"}","payloadType":"json","x":160,"y":240,"wires":[["6423065c.485bc8"]]},{"id":"cd02577c.7e0078","type":"inject","z":"488a984b.8f7fc8","name":"FERMER_SALON","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"{\"button\":1,\"channel\":1,\"event\":\"click\"}","payloadType":"json","x":170,"y":280,"wires":[["6423065c.485bc8"]]},{"id":"a5a049a1.cadec8","type":"enocean-config-node","serialport":"/dev/serial/by-id/usb-FTDI_FT232R_USB_UART_A908OSA3-if00-port0"}]

If you import it, please check the “output” node, and correct the Serialport with your stick location if needed.

I found this thanks to the script actually. As cgueter’s script is sending message with EEP F6-02-02 (4-rocker device), and as it worked with my modules, I tried the same in NodeRed. It worked only because the module were already paired with the stick (if you load the NodeRed flow, you will see that it does now call any ID, it uses the channel of the stick).
I can command the shutter only from NodeRed, I did not investigate on how to command from Hassio UI directly.
Good luck with FHEM !


Hi again,

That’s it, now I can control the shutter from Hassio directly.
For those who wish to do the same. The steps I followed:

  • Install NodeRed Add-on from the store. For enocean support, go to my previous message (LINK HERE) for NodeRed add-on configuration;
  • Once in NodeRed, you can use the flow I have written in my previous post to see if you can command the shutter from NodeRed first;
    NOTE: Your shutters needs to be paired with your controller first. I did it with Domoticz, but it can be done in another way. Solutions are available on internet;
  • If this step is passed, then you can use the final flow I use to command the shutter from Hassio:
[{"id":"488a984b.8f7fc8","type":"tab","label":"Flow 1","disabled":false,"info":""},{"id":"eef16e03.10f33","type":"enocean-out","z":"488a984b.8f7fc8","serialport":"a5a049a1.cadec8","name":"","logOutput":false,"x":870,"y":420,"wires":[[]]},{"id":"6423065c.485bc8","type":"enocean-btn","z":"488a984b.8f7fc8","name":"","encoding":"f6-02-02","delay":"","x":700,"y":400,"wires":[["eef16e03.10f33"]]},{"id":"cd1a0a8f.c33538","type":"inject","z":"488a984b.8f7fc8","name":"OUVRIR_CUISINE","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"{\"button\":0,\"channel\":2,\"event\":\"click\"}","payloadType":"json","x":150,"y":20,"wires":[[]]},{"id":"23735f15.709b7","type":"inject","z":"488a984b.8f7fc8","name":"FERMER_CUISINE","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"{\"button\":1,\"channel\":2,\"event\":\"click\"}","payloadType":"json","x":150,"y":60,"wires":[[]]},{"id":"b6bdf1c3.1eba8","type":"inject","z":"488a984b.8f7fc8","name":"OUVRIR_SALON","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"{\"button\":0,\"channel\":1,\"event\":\"click\"}","payloadType":"json","x":140,"y":100,"wires":[[]]},{"id":"cd02577c.7e0078","type":"inject","z":"488a984b.8f7fc8","name":"FERMER_SALON","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"{\"button\":1,\"channel\":1,\"event\":\"click\"}","payloadType":"json","x":150,"y":140,"wires":[[]]},{"id":"8e5efc85.3614d","type":"template","z":"488a984b.8f7fc8","name":"Ouverture Salon","field":"payload","fieldType":"msg","format":"json","syntax":"mustache","template":"{\"button\":0,\"channel\":1,\"event\":\"click\"}","output":"json","x":460,"y":320,"wires":[["6423065c.485bc8"]]},{"id":"10d3894e.fa4a37","type":"server-state-changed","z":"488a984b.8f7fc8","name":"","server":"87ac2dac.6d295","version":1,"exposeToHomeAssistant":false,"haConfig":[{"property":"name","value":""},{"property":"icon","value":""}],"entityidfilter":"cover.volet_salon","entityidfiltertype":"exact","outputinitially":false,"state_type":"str","haltifstate":"open","halt_if_type":"str","halt_if_compare":"is","outputs":2,"output_only_on_state_change":false,"for":0,"forType":"num","forUnits":"minutes","ignorePrevStateNull":false,"ignorePrevStateUnknown":false,"ignorePrevStateUnavailable":false,"ignoreCurrentStateUnknown":false,"ignoreCurrentStateUnavailable":false,"x":170,"y":180,"wires":[[],[]]},{"id":"390dce3e.ca60f2","type":"template","z":"488a984b.8f7fc8","name":"Fermeture Salon","field":"payload","fieldType":"msg","format":"json","syntax":"mustache","template":"{\"button\":1,\"channel\":1,\"event\":\"click\"}","output":"json","x":470,"y":380,"wires":[["6423065c.485bc8"]]},{"id":"e9697f4f.4dcde","type":"template","z":"488a984b.8f7fc8","name":"Ouverture Cuisine","field":"payload","fieldType":"msg","format":"json","syntax":"mustache","template":"{\"button\":0,\"channel\":2,\"event\":\"click\"}","output":"json","x":470,"y":440,"wires":[["6423065c.485bc8"]]},{"id":"7f83caa5.234b74","type":"server-state-changed","z":"488a984b.8f7fc8","name":"","server":"87ac2dac.6d295","version":1,"exposeToHomeAssistant":false,"haConfig":[{"property":"name","value":""},{"property":"icon","value":""}],"entityidfilter":"cover.volet_cuisine","entityidfiltertype":"exact","outputinitially":false,"state_type":"str","haltifstate":"open","halt_if_type":"str","halt_if_compare":"is","outputs":2,"output_only_on_state_change":false,"for":0,"forType":"num","forUnits":"minutes","ignorePrevStateNull":false,"ignorePrevStateUnknown":false,"ignorePrevStateUnavailable":false,"ignoreCurrentStateUnknown":false,"ignoreCurrentStateUnavailable":false,"x":460,"y":180,"wires":[[],[]]},{"id":"5516db88.a33324","type":"template","z":"488a984b.8f7fc8","name":"Fermeture Cuisine","field":"payload","fieldType":"msg","format":"json","syntax":"mustache","template":"{\"button\":1,\"channel\":2,\"event\":\"click\"}","output":"json","x":470,"y":500,"wires":[["6423065c.485bc8"]]},{"id":"a70473f6.16d65","type":"debug","z":"488a984b.8f7fc8","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","statusVal":"","statusType":"auto","x":890,"y":380,"wires":[]},{"id":"6ec0635c.674d2c","type":"server-state-changed","z":"488a984b.8f7fc8","name":"","server":"87ac2dac.6d295","version":1,"exposeToHomeAssistant":false,"haConfig":[{"property":"name","value":""},{"property":"icon","value":""}],"entityidfilter":"script.close_volet_salon","entityidfiltertype":"exact","outputinitially":false,"state_type":"str","haltifstate":"true","halt_if_type":"bool","halt_if_compare":"is","outputs":2,"output_only_on_state_change":false,"for":0,"forType":"num","forUnits":"minutes","ignorePrevStateNull":false,"ignorePrevStateUnknown":false,"ignorePrevStateUnavailable":false,"ignoreCurrentStateUnknown":false,"ignoreCurrentStateUnavailable":false,"x":170,"y":380,"wires":[[],["390dce3e.ca60f2"]]},{"id":"6560ff54.6b0c2","type":"server-state-changed","z":"488a984b.8f7fc8","name":"","server":"87ac2dac.6d295","version":1,"exposeToHomeAssistant":false,"haConfig":[{"property":"name","value":""},{"property":"icon","value":""}],"entityidfilter":"script.open_volet_salon","entityidfiltertype":"exact","outputinitially":false,"state_type":"str","haltifstate":"true","halt_if_type":"bool","halt_if_compare":"is","outputs":2,"output_only_on_state_change":false,"for":0,"forType":"num","forUnits":"minutes","ignorePrevStateNull":false,"ignorePrevStateUnknown":false,"ignorePrevStateUnavailable":false,"ignoreCurrentStateUnknown":false,"ignoreCurrentStateUnavailable":false,"x":170,"y":320,"wires":[[],["8e5efc85.3614d"]]},{"id":"97258cd9.75ffc","type":"server-state-changed","z":"488a984b.8f7fc8","name":"","server":"87ac2dac.6d295","version":1,"exposeToHomeAssistant":false,"haConfig":[{"property":"name","value":""},{"property":"icon","value":""}],"entityidfilter":"script.close_volet_cuisine","entityidfiltertype":"exact","outputinitially":false,"state_type":"str","haltifstate":"true","halt_if_type":"bool","halt_if_compare":"is","outputs":2,"output_only_on_state_change":false,"for":0,"forType":"num","forUnits":"minutes","ignorePrevStateNull":false,"ignorePrevStateUnknown":false,"ignorePrevStateUnavailable":false,"ignoreCurrentStateUnknown":false,"ignoreCurrentStateUnavailable":false,"x":180,"y":500,"wires":[[],["5516db88.a33324"]]},{"id":"fabf276d.b4c738","type":"server-state-changed","z":"488a984b.8f7fc8","name":"","server":"87ac2dac.6d295","version":1,"exposeToHomeAssistant":false,"haConfig":[{"property":"name","value":""},{"property":"icon","value":""}],"entityidfilter":"script.open_volet_cuisine","entityidfiltertype":"exact","outputinitially":false,"state_type":"str","haltifstate":"true","halt_if_type":"bool","halt_if_compare":"is","outputs":2,"output_only_on_state_change":false,"for":0,"forType":"num","forUnits":"minutes","ignorePrevStateNull":false,"ignorePrevStateUnknown":false,"ignorePrevStateUnavailable":false,"ignoreCurrentStateUnknown":false,"ignoreCurrentStateUnavailable":false,"x":180,"y":440,"wires":[[],["e9697f4f.4dcde"]]},{"id":"a5a049a1.cadec8","type":"enocean-config-node","serialport":"/dev/serial/by-id/usb-FTDI_FT232R_USB_UART_A908OSA3-if00-port0"},{"id":"87ac2dac.6d295","type":"server","name":"Home Assistant","addon":true}]

NOTE: There is useless nodes in my example, you can remove it;

  • Next step is to configure the devices in Hassio in your configuration.yaml. Here is what I used (sorry, names are in French):
#Volet du Salon
        friendly_name: "Volet_Salon"
        unique_id: cover.volet_salon
          service: script.open_volet_salon
          service: script.close_volet_salon
#Volet de la Cuisine
        friendly_name: "Volet_Cuisine"
        unique_id: cover.volet_cuisine
          service: script.open_volet_cuisine
          service: script.close_volet_cuisine

#To get all button displayed all the time for covers
      assumed_state: true
  • Create the associated script in Hassio (such as script.open_volet_cuisine in my case) without any action inside. When you will click in Hassio, it will call the script, and NodeRed will launch the associated flow. It works without scripts, but in my case I cannot stop the shutter once I launch open or close action. By using script, if you call the same twice, it stops the shutter.
    NOTE: The final parameter “customize_glob” is optional. It allows to have the two arrows available all the time in Hassio.

I hope it helps some other people trying to find a way to command EnOcean shutters with Home Assistant !
I will work in a way to get the feedback from the shutter (if I use the wall switches), and I will let you know if I have any success !


I really wanted to try your solution, but i failed at the beginning. I can’t install the node-red-contrib-enocean.
I also using Hassio and i also can install other nodes.
The Protocol says

2021-10-19T10:26:47.645Z Installieren : node-red-contrib-enocean 0.8.5
2021-10-19T10:26:48.827Z npm install --no-audit --no-update-notifier --no-fund --save --save-prefix=~ --production --engine-strict [email protected]
2021-10-19T10:26:59.965Z [err] npm
2021-10-19T10:26:59.965Z [err]  
2021-10-19T10:26:59.965Z [err] ERR!
2021-10-19T10:26:59.965Z [err]  
2021-10-19T10:26:59.965Z [err] code
2021-10-19T10:26:59.965Z [err]  1
2021-10-19T10:26:59.965Z [err] npm
2021-10-19T10:26:59.965Z [err]  
2021-10-19T10:26:59.965Z [err] ERR!
2021-10-19T10:26:59.966Z [err]  
2021-10-19T10:26:59.966Z [err] path
2021-10-19T10:26:59.966Z [err]  /config/node-red/node_modules/@serialport/bindings
2021-10-19T10:26:59.967Z [err] npm
2021-10-19T10:26:59.968Z [err]  
2021-10-19T10:26:59.968Z [err] ERR!
2021-10-19T10:26:59.968Z [err]  command failed
2021-10-19T10:26:59.968Z [err] npm
2021-10-19T10:26:59.968Z [err]  
2021-10-19T10:26:59.968Z [err] ERR!
2021-10-19T10:26:59.968Z [err]  
2021-10-19T10:26:59.968Z [err] command
2021-10-19T10:26:59.968Z [err]  sh -c prebuild-install --tag-prefix @serialport/bindings@ || node-gyp rebuild
2021-10-19T10:26:59.968Z [err] npm
2021-10-19T10:26:59.968Z [err]  
2021-10-19T10:26:59.969Z [err] ERR!
2021-10-19T10:26:59.969Z [err]  gyp info it worked if it ends with ok
2021-10-19T10:26:59.969Z [err] npm
2021-10-19T10:26:59.969Z [err]  
2021-10-19T10:26:59.969Z [err] ERR!
2021-10-19T10:26:59.969Z [err]  gyp info using [email protected]
2021-10-19T10:26:59.969Z [err] npm
2021-10-19T10:26:59.969Z [err]  
2021-10-19T10:26:59.969Z [err] ERR!
2021-10-19T10:26:59.969Z [err]  gyp info using [email protected] | linux | x64
2021-10-19T10:26:59.969Z [err] npm
2021-10-19T10:26:59.969Z [err]  
2021-10-19T10:26:59.970Z [err] ERR!
2021-10-19T10:26:59.970Z [err]  gyp info find Python using Python version 3.9.5 found at "/usr/bin/python3"
2021-10-19T10:26:59.970Z [err] npm
2021-10-19T10:26:59.970Z [err]  
2021-10-19T10:26:59.970Z [err] ERR!
2021-10-19T10:26:59.970Z [err]  gyp info spawn /usr/bin/python3
2021-10-19T10:26:59.970Z [err] npm
2021-10-19T10:26:59.970Z [err]  
2021-10-19T10:26:59.970Z [err] ERR!
2021-10-19T10:26:59.970Z [err]  gyp info spawn args [
2021-10-19T10:26:59.970Z [err] npm
2021-10-19T10:26:59.970Z [err]  
2021-10-19T10:26:59.970Z [err] ERR!
2021-10-19T10:26:59.971Z [err]  gyp info spawn args   '/usr/lib/node_modules/npm/node_modules/node-gyp/gyp/gyp_main.py',
2021-10-19T10:26:59.971Z [err] npm
2021-10-19T10:26:59.971Z [err]  
2021-10-19T10:26:59.971Z [err] ERR!
2021-10-19T10:26:59.971Z [err]  gyp info spawn args   'binding.gyp',
2021-10-19T10:26:59.971Z [err] npm
2021-10-19T10:26:59.971Z [err]  
2021-10-19T10:26:59.971Z [err] ERR!
2021-10-19T10:26:59.971Z [err]  gyp info spawn args   '-f',
2021-10-19T10:26:59.974Z [err] npm ERR! gyp info spawn args   'make',
2021-10-19T10:26:59.974Z [err] npm ERR! gyp info spawn args   '-I',
2021-10-19T10:26:59.974Z [err] npm ERR! gyp info spawn args   '/config/node-red/node_modules/@serialport/bindings/build/config.gypi',
2021-10-19T10:26:59.974Z [err] npm ERR! gyp info spawn args   '-I',
2021-10-19T10:26:59.974Z [err] npm ERR! gyp info spawn args   '/usr/lib/node_modules/npm/node_modules/node-gyp/addon.gypi',
2021-10-19T10:26:59.974Z [err] npm ERR! gyp info spawn args   '-I',
2021-10-19T10:26:59.974Z [err] npm ERR! gyp info spawn args   '/root/.cache/node-gyp/14.17.6/include/node/common.gypi',
2021-10-19T10:26:59.974Z [err] npm ERR! gyp info spawn args   '-Dlibrary=shared_library',
2021-10-19T10:26:59.974Z [err] npm ERR! gyp info spawn args   '-Dvisibility=default',
2021-10-19T10:26:59.974Z [err] npm ERR! gyp info spawn args   '-Dnode_root_dir=/root/.cache/node-gyp/14.17.6',
2021-10-19T10:26:59.974Z [err] npm ERR! gyp info spawn args   '-Dnode_gyp_dir=/usr/lib/node_modules/npm/node_modules/node-gyp',
2021-10-19T10:26:59.974Z [err] npm ERR! gyp info spawn args   '-Dnode_lib_file=/root/.cache/node-gyp/14.17.6/<(target_arch)/node.lib',
2021-10-19T10:26:59.974Z [err] npm ERR! gyp info spawn args   '-Dmodule_root_dir=/config/node-red/node_modules/@serialport/bindings',
2021-10-19T10:26:59.974Z [err] npm ERR! gyp info spawn args   '-Dnode_engine=v8',
2021-10-19T10:26:59.974Z [err] npm ERR! gyp info spawn args   '--depth=.',
2021-10-19T10:26:59.974Z [err] npm ERR! gyp info spawn args   '--no-parallel',
2021-10-19T10:26:59.974Z [err] npm ERR! gyp info spawn args   '--generator-output',
2021-10-19T10:26:59.974Z [err] npm ERR! gyp info spawn args   'build',
2021-10-19T10:26:59.974Z [err] npm ERR! gyp info spawn args   '-Goutput_dir=.'
2021-10-19T10:26:59.974Z [err] npm ERR! gyp info spawn args ]
2021-10-19T10:26:59.974Z [err] npm ERR! gyp ERR! build error 
2021-10-19T10:26:59.974Z [err] npm ERR! gyp ERR! stack Error: not found: make
2021-10-19T10:26:59.974Z [err] npm ERR! gyp ERR! stack     at getNotFoundError (/usr/lib/node_modules/npm/node_modules/which/which.js:10:17)
2021-10-19T10:26:59.974Z [err] npm ERR! gyp ERR! stack     at /usr/lib/node_modules/npm/node_modules/which/which.js:57:18
2021-10-19T10:26:59.974Z [err] npm ERR! gyp ERR! stack     at new Promise (<anonymous>)
2021-10-19T10:26:59.974Z [err] npm ERR! gyp ERR! stack     at step (/usr/lib/node_modules/npm/node_modules/which/which.js:54:21)
2021-10-19T10:26:59.974Z [err] npm ERR! gyp ERR! stack     at /usr/lib/node_modules/npm/node_modules/which/which.js:71:22
2021-10-19T10:26:59.974Z [err] npm ERR! gyp ERR! stack     at new Promise (<anonymous>)
2021-10-19T10:26:59.974Z [err] npm ERR! gyp ERR! stack     at subStep (/usr/lib/node_modules/npm/node_modules/which/which.js:69:33)
2021-10-19T10:26:59.974Z [err] npm ERR! gyp ERR! stack     at /usr/lib/node_modules/npm/node_modules/which/which.js:80:22
2021-10-19T10:26:59.974Z [err] npm ERR! gyp ERR! stack     at /usr/lib/node_modules/npm/node_modules/isexe/index.js:42:5
2021-10-19T10:26:59.974Z [err] npm ERR! gyp ERR! stack     at /usr/lib/node_modules/npm/node_modules/isexe/mode.js:8:5
2021-10-19T10:26:59.974Z [err] npm ERR! gyp ERR! System Linux 5.10.70
2021-10-19T10:26:59.974Z [err] npm ERR! gyp ERR! command "/usr/bin/node" "/usr/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild"
2021-10-19T10:26:59.974Z [err] npm ERR! gyp ERR! cwd /config/node-red/node_modules/@serialport/bindings
2021-10-19T10:26:59.974Z [err] npm ERR! gyp ERR! node -v v14.17.6
2021-10-19T10:26:59.974Z [err] npm ERR! gyp ERR! node-gyp -v v7.1.2
2021-10-19T10:26:59.974Z [err] npm ERR! gyp ERR! not ok
2021-10-19T10:26:59.982Z [err] 
2021-10-19T10:26:59.982Z [err] npm
2021-10-19T10:26:59.982Z [err]  
2021-10-19T10:26:59.982Z [err] ERR!
2021-10-19T10:26:59.983Z [err]  A complete log of this run can be found in:
2021-10-19T10:26:59.983Z [err] npm
2021-10-19T10:26:59.983Z [err]  
2021-10-19T10:26:59.983Z [err] ERR!
2021-10-19T10:26:59.983Z [err]      /root/.npm/_logs/2021-10-19T10_26_59_975Z-debug.log
2021-10-19T10:26:59.989Z rc=1


i have the same issue like CSB


Hello Micha,

i have the solution for installing that node.

You have to add system packages in the node-red installation (at supervisor)
I added the following packages and after that i could use the enocean-nodes:
linux-headers, gcc, g++, make, build-base

Greetings CSB


thanks for the info.
I’m still stuck.

Could you give me a detailed description of how to?


Hi CBS, hi Micha82,

I am very sorry for not answering earlier !
To avoid having any error with node-red and enocean, I recommand using the configuration file I put here:
Enocean switch - #32 by RCasa

In the “system_packages” section, you have the details of minimum necessary packages to support enocean in Node-red. I do not remember all the error messages I faced, but I know most of it was solved thanks to a proper configuration file.

Please let me know if it solves your issue.

Best Regards,
Romain C.

Hi RCasa,

thanks it works now
(not checked on the function but the nodes are there)

For all the others who try also.
Even if the CPU usage of the addon goes up, it dose not man it is completely loaded !!
In my case (Raspi) it needs at least 2 min until everything is up (more than once the CPU usage does up)

@RCasa is Node Red loading the additional down plugins each time during starup or are they downloaded and just starting uP

Best regards

Hi Micha82,

As far as I remember when I was testing this solution, it dowloaded the packages only the first time I added it in the configuration file. So normally, next startup of the plugin should be quicker.

I am still using this solution for my Enocean roller shutter (Ubiwizz), and the startup is quiet fast.

Romain C.


I tried now also the Setup like discribed in the Video.
I get some Messages but the teach in does not work.

Also i have the issue, that the standard HASS automation for EnOcean stops working after creating a First Flow in Node Red.

I‘m not sure what is happening.

So first of all i would like to know of there is any way to see everyrhing (inbound and outbound) messages of the EnOcean device Even of they are not configured in any HASS config.

Then ist would be possible to rule out some possible issues.

So is there any way to get something like an entety were i can See all the messages ?

If this is possible it would be easier to do a Troubleshooting.
Best would be directly in HASS to ruleout also addon issues.

If this works ist would be nice to have something like a translator addon to this List
I would imagine something like select a EEP ang get the Message structured by the Profile.

Then also a Message Generator be EEP would be possible maybe also a usage of a helper for gering a overview about used ID (base+unique) to have a easy teach in

Just some Idea

But First i would like to be no longer blind in the messages the device gets and sends.


I was about to order a USB 300 dongle today and integrate into hassio to be able to add Lovelace buttons to control some of my EnOcean equipment.
But reading this thread I understand it as if the Enocean HA plugin itself does not support sending data as emulated button/wall switch without extra scripts and plugins? Is this correct?

Currently I am only able to view the status of an enocean switch. Now I am using node red with my former smart home controler to integrate the enocean switches to home assistant.
In the next days I will try to integrate some Eltako FT55 and cover relays but I guess it will be the same issue.

Hi all,

To reply to Micha82: I read somewhere that the USB stick cannot be used by two sources in the same time (Hassio AND NodeRed). That is why once you use the stick from NodeRed, it does not work in Hassio integration. To read the messages, the best solution I found was to use an “msg.payload” node, directly connected to an “input” enocean node (for any incoming message).

To reply to ValleOne: it depends on what you would like to do. The integration seems to work well with some sensors, lights and switches. But for roller shutter, there is no direct solution. The only I found in March 2021 was using NodeRed.

To reply to andictix: I guess you can use NodeRed with Enocean module to control your cover relays in Home Assistant.

Best Regards,
Romain C.


Thanks for the reply

For me the light works with NodeRed

On / Off via HA incl. Backchannel if i used a FT55
Also the dimmer works but Till now only on / off
Also use the FT55 for Hue lights
Also all Actions via Alexa

Dimming and adding the Temp. Sensor will be the next