OpenHAB 2.5 + EnOcean + TCM310 USB + NodOn CWS-2-1-01 Wall Switch


I am writing my experience in setting these things up as it took me 3 days to get it right and I am hoping this post could save all that time for someone trying to do the same thing.

I have my OpenHAB v2.5 running on windows with Zulu JRE. This server is already controlling Z-Wave and Zigbee networks and I wanted to add EnOcean for the obvious reasons of having remotes battery-free.

So I bought EnOcean TCM-310 USB stick and an antenna for it. The stick came with absolutely zero manuals or software. Hence, windows was just sitting there showing a device with missing drivers. Inspecting the hardware IDs I ended up downloading and installing two drivers: FTDI and CDM after which I got USB Serial Converter and USB Serial Port (COM5) in my Device Manager. Adding EnOcean binding to OpenHAB did nothing and contrary to what manual says, did not auto-detect the stick. So I had to add it manually, as EnOcean Bridge on port COM5 (I just typed ‘COM5’ into the address field). That worked.

Then I wanted to add NodOn CWS-2-1-01 Wall Switch to the system. Pressing the rocker switch on the device itself did add a new thing to inbox, type Simple Push Button. This resulted in my switch sending simple ON/OFF commands for each press on any of the buttons, meaning, there was no way for me to detect rocker A versus rocker B and top switch versus bottom switch. It was like someone shortcircut-ed all of the switches and they were now working as one switch. I bought 4 (double rocker) and got 1 (simple push button). After searching high and low and trying all kind of tricks in OpenHAB I finally got the idea to repeat the same thing I did before: add my new thing manually, instead of relying on OpenHAB/Binding to do it for me. First I copy-pasted the EnOceanId from that auto-detected thing (Simple Push Button), then I removed that thing, then I went to Inbox to add a device manually and I chose the type Rocker Switch, pasted the EnOceanId and voila! Finally the device was recognized properly, with two rocker channels and two buttons per channel (A1/A2 + B1/B2). From that moment on, everything is working great.

Hope this can help someone else trying to set this up.

@fruggy83 : as you can see TCM310 was not recognized at all, although it seems to be working when added manually, while CWS-2-1-01 was auto-recognized completely wrong. Even EEPs were wrong.


1 Like

Hi Vladimir,

thanks for sharing your experience and your hints.

have my OpenHAB v2.5 running on windows

Thats the reason why your TCM could not be recognized. There is currently no API in openHAB which could be used to detect USB sticks on Windows OS. The only way to detect USB devices on Windows would be to implement an own logic in the binding. I am not aware of an openhab issue to address this. Maybe you create one.

while CWS-2-1-01 was auto-recognized completely wrong

As already stated in the main thread, simple push buttons and rocker switches can hardly be differentiate, as both just send a simple byte without any hint. However I will check why a rocker switch is not detected per default in this case, as this is the most common device using such a RPS telegram.

Best regards

Hi Vladimir,

I improved the identification of RPS devices during teach in right now. Detection of rocker switches should be reliable now.
Thanks again for your hints.

Best regards

Hi Daniel,

I seem to have a similar issue. I have successfully gotten the gateway (an enoceanpi) to set up, and it is showing online. When I press the rocker button a few times, I end up with a “simple push button” being connected. However, when I change the toggle position of the button, it does not appear to be sending a message that the other side of the system (a wireless relay) will read.

I am attempting to create a smart switch for this: The device showing as a “simple push button” is this:

I am thinking the reason why it may not be working is that the hardswitch had to be “paired” with the relay during setup. I was hoping that merely mimicking it would be sufficient, but it does not appear to be so simple unfortunately (or I am not properly mimicking it with your binding).

Thoughts? Really appreciate your awesome work. If you have a patreon or anything I’d love to donate.

[Update] I can pull a dump of each button press using enoceanspy if helpful to drill down on it. I’m guessing the default button isn’t sending some part of the necessary payload.