The last few weeks I’ve been busy building an add-on for Home Assistant to add support for Easywave devices. Easywave is a proprietary protocol for RF devices, developed by Niko & Eldat Eldat.
The add-on requires an Eldat RX09 USB Transceiver to listen to Easywave traffic and transforms it to MQTT messages that the Home Assistant MQTT discovery can understand. It also allows you to send Easywave messages from Home Assistant to control Easywave devices.
Although the current version of the add-on is not ready for the big public, it is already usable for tech-savvy people that know how to build and run .NET 6 code. Instructions on how to install it as an Home Assistant add-on are available, but it can also be installed as a service on another Windows or Linux systems, although that is not tested yet.
I fixed mine by using a rtl-sdr setup. I also don’t get feedback if it’s on or off.
I only have one switch that uses this protocol, so I probally won’t use it because I already have an alternative way
No problem. I did this project mostly for myself .
I have a lot of Niko switches to control my lights. When we bought this place it had way to few light switches and often they were in the most unfriendly places. For example: when entering the house, you had to walk 3m in the dark to get to a light switch. These switches can be placed anywhere, so that problem was easily fixed without any new wiring.
We really like the Niko switches. They are a bit expensive but look really nice, which was a prerequisite for the wife . They only had Easywave switches at that time, but now (due to the huge success of Hue) they also have Zigbee switches.
Unfortunately their Easywave dimmers suck. Within 4 years time I had to replace all of them, and now I had another one that suddenly stopped working. So I now bought a new Zigbee dimmer from another company instead, but I wanted to keep my existing Easywave switches. While doing some investigations I came across Home Assistant that had built-in Zigbee support, and that is how this project started
@marcselis what you made is amazing and perfect for my use case. I have been trying for months to obtain a “Eldat RX09 USB” stick. Any tips on anywhere that has it in stock?
Today I released version 0.4. Changes since previous version:
Updated addon configuration to automatically add all serial devices in the addon container, removing the need to alter the dockerfile configuration when your receiver is plugged-in in another port.
Added configuration options for serial device, mqtt & log level, making it possible to change certain settings & increase logging for debugging purposes without needing to reinstall the addon.
Switched to SeriLog for logging.
Added test project to simulate a local Eldat RX09 device. This test project requires on the com0com Null-modem emulator and an MQTT server where the Easywave2Mqtt process is connected to.
Simplified addon building & faster startup:
removed the .tar.gz file and made the addon binaries & config file are directly available in the repo, making it easier for non-developers to alter the configuration and to deploy the addon in Home Assistant.
Switched to .NET 7.0 to improve the performance.
Configuration options are directly read from data subfolder (if available), removing the need for the startup.sh script to copy it to the correct location.
Lowered logging level for a few MessagingService messages that were logged twice, but in a different way.
I could use some help with the following topics:
I’m still struggling to make it possible to do the device configuration directly in Home Assistant. The option & schema configuration in the config.yaml file seems to be too limited for what I need.
Since some time, when upgrading Home Assistant, the addon stops responding and needs to be restarted. I’ve tried to use a managed MQTT client to automatically reconnect to MQTT when that goes down, but that doesn’t seem to help.
Thank you for the work you are doing here! I am sorry that I don’t have enough knowledge to help you with the open topics. Instead I have a question: do you know any other sources to buy the Eldat RX09 stick? Or are there other USB sticks that can be used, too? The only one I found is almost 70 EUR (link: ELDAT RX09E5031-02-01K USB Stick 128-Kanal, weiß Elektroshop Wagner) and that seems quite a big investment as we only have one Eldat Easywave-controlled roller shutter in the house. Happy for any German shop links if you know any, we live in Germany :-). Thanks and all the best!
Yes, this stuff is expensive, as they prefer you to use their proprietary system.
Niko also offers an usb stick (seems to be exactly the same thing, but labeled Niko, instead of Eldat), but prices vary from 77 to 130€
Eldat makes the sticks in 2 variants: 64- & 128 channels. The 64 channel is usually cheaper.
Hi Marc, I installed the add-on and started it even though I do not have a stick yet (to see whether it generally works). It started up just fine, obviously threw a few errors as it couldn’t find a stick. What I noticed is that the “Add-on CPU Usage” was between 25% and 50%, which is very high for an add-on. Of course could be the result of the errors. But I am curious: what “Add-on CPU Usage” does the addon show on your system?
Mine has a cpu usage of 6-7%.
See my screenshot below.
When the serial port specified in the config is not found, the service that communicates with the Eldat receiver throws an exception and the program stops. If you configured the addon to automatically restart, home assistant is constantly restarting it and that could cause the high cpu usage.
I dont see my buttons with this.
I’m Using a Niko usb stick. Do I need a extra driver on my homeassistant?
It’s a NUC running HassOS
Where can I find the log for the received id’s
I have an empty device list now.
Is your usb stick detected? The addon logs should mention something like HH:MM:SS.mmm INF Easywave2Mqtt.Easywave.EldatRx09Transceiver] Eldat Transceiver detected with identifier XXXX:YYYY.
If the logs do not mention this line, then your stick is either connected to another port, or the stick is not compatible.
If it is detected, and you press a button that is not declared in the device list, the logs will contain a warning mesage that says HH:MM:SS.mmm WRN Ignored incoming easywave message for unknown device {Address}
If you increase the loglevel in the configuration to Debug or even Verbose, the addon will also log all serial messages it sends and receives.
Just published version 0.5. This version shouldn’t crash when the configured serial port is not found and will list the available ports in the log instead.
It seems like the Niko usb stick is not compatible with the Eldat RX09
Or it is linked to another serial port.
Can you increase the loglevel to “Verbose” and show what is logged then?