Helios EasyControl 3.0 to HomeAssistant custom integration

After I got my KWL360, I couldn’t find anything to bring my KWL into home assistant like I expected and wanted it.

But I found the groundwork of sanchosk.

This I transferred to python and extended it. I also put it into a custom integration which could be installed via hacs (at least via custom repo for the moment :wink:)

The integration can read all the sensors that I find useful at the moment:

grafik

It also can change the KWL mode via a select:
grafik

And finally it also can change the time and fan speed for the intensive mode:
grafik

The integration should work with the new Helios EasyControl 3.0 controller, which communicates via WebSocket, not like the old ones via ModBus over TCP.

The logic is calling the websocket every 60s to read the current data and uses the serial number of the device to generate unique ids.

The sources are here: github

If anyone has a picture we could use for the integration, I would be happy to add it.

If there are any additional wishes or problems :fearful: let me know, and I will see what I can do.

Great to see this! I was just thinking about finally integrating my helios. I will try this as soon as I get home!

Thanks for the work!

As discussed, what information do you need to integrate the original Helios Co2 sensor?
Thanks for the great work.

Works like a charm! Thanks!

1 Like

are you still working on this?
I am working on the same for openhab and did some further deconding of the messages, which might help.

The messages to set variables are all structured the same:
split them into words (2byte) in little endian.

example message (everything in hex):
0400 f900 1550 3d00 4f51

0400 → 0004 → 4 words long message
f900 → 00f9 → no idea. same for all messages that set variables
1550 → 5015 → id of the variable to set (this e.g. is the fan speed for away)
3d00 → 003d → 61 decimal → value of the variable
4f51 → 514f → checksum

The checksum is basically the sum of all previous words. For the example above:
0004+00f9+5015+003d = 514f

The example above sets the fan speed for away to 61%.

Below all variables i figured out so far (already in little endian):

rel. hum. away 1350 (0 or 1)
fan away 1550 (0-100)
temp away 1650 (strange temp. value)

rel. hum. home 1950
fan home 1b50
temp home 1c50

rel. hum. intense 1f50
fan intense 2150
temp intense 2250
time intense 4050 (in minutes)
timer (on/off) intense 0655

Fan in individ. 0850
Fan out individ. 0750
temp individ. 1150
time individ. 5041
timer (on/off) individ. 0755

bypass on/off 4850

filterinterval 3950 (in days)
filter exchange date 4250/4350/4450 (Y/M/D)
0800 f900 4250 1900 4350 0400 4450 1900 00f2
→ 8 words long. 3 times variable + value

Setting the mode is a bit strange
0112 set to 1 is away, set to 0 is home. Further the timers for individual (0512) and intensive (0412) are set to 0:
e.g.
0800 f900 0112 0100 0412 0000 0512 0000 0c37

To set individual or intensive, the timers are set to the respective value (the other one is set to 0):
Timer Int: 0412 (in minutes)
Timer Ind: 0512 (in minutes)
0600 f900 0412 3c00 0512 0000 4425
→ this one sets Intensive (0412) to 3c00 → 003c → 60 minutes and individual (0512) to 0 minutes

Yes, I will continue to work on it once I find more time :smiley:

Thank you for your input, I will use it to extend the other properties.