Helios EasyControl 3.0 to HomeAssistant MQTT

Just wanted to share - I have Helios device with the EasyControl 3.0 controller.

The controller does not provide ModBus data over TCP as the older versions did, only through WebSocket.

I reverse-engineered the protocol from the javascript sources and created small utility in nodeJS that creates unique HomeAssistant MQTT device for the Helios (based on its serial number) and supplies it with key parameters every 60 seconds.

The sources are here: GitHub - sanchosk/helios2mqtt

At the moment I am running the code on another machine in my network that is permanently on, using GNU screen to keep it in the background with auto-start using cron. However, for future, I’ll look into how to write own integration (possibly using HACS) and I might transform it.

Should anyone be willing to help with the effort or just to provide general suggestions, I am more than happy to receive inputs!

@sanchosk : Thank you for your effort! Very cool! What a weird protocol…
Based on your work I am planning on creating a homebridge/homekit integration. Have you figured out how to change the device state? I am guessing that we have to set VlxDevConstants.EXT_CYC_ACTIVE_PROFILE?

1 Like

To be honest, I did not even try, I was aiming at read-only thing, but I can take a look, should not be that difficult to reverse-engineer that part of code :slight_smile:

I did some debugging and figured out the commands:


    // set home:
    // const data = new Uint16Array(9);
    // data[0] = 8, data[1] = 249, data[2] = 4609, data[3] = 0, data[4] = 4612, data[5] = 0, data[6] = 4613, data[7] = 0, data[8] = 14091;
    // set away:
    // const data = new Uint16Array(9);
    // data[0] = 8, data[1] = 249, data[2] = 4609, data[3] = 1, data[4] = 4612, data[5] = 0, data[6] = 4613, data[7] = 0, data[8] = 14092;
    // set boost:
    // const data = new Uint16Array(7);
    // data[0] = 6, data[1] = 249, data[2] = 4612, data[3] = 30, data[4] = 4613, data[5] = 0, data[6] = 9510;

That was faster than I even managed to fetch the repo on new computer :slight_smile:
Congrats!

@sanchosk I have plugin creating experience under HACS. If you intrested in I can contribute to finalize your code in this format. What do you think?

1 Like

Absolutely!
If you can, any contribution is welcomed!

Ok. How can we do that? Is there any develompent roadmap, or any planning where I can connect?

As I don’t know how to integrate, my dev roadmap is more or less at the end for now. The git repo is linked in the first post - feel free to provide some PR, I’ll be happy to test and help as much as I can…

1 Like

@csula I`m also interested in such a plugin. And can help with testing on KWL 360 W device. What is your plan?