Helios Binding for Modbus TCP

Hi Schaechi,

the openhab.cfg file has to be put into the /etc/openhab2/services folder. It’s not there from the start so you’ll have to create it yourself.
Hope that helps!

Hi Bernhard, many thanks for that binding. I have set it up on an new openhabian. Had to fix some dependencie-Problems but now it´s working perfect.

Is there a possibility to ad the Sensor-values (eg. VOC, CO2, Temperature + Humidity) as well?

Hi Martin,
yes, actually the binding includes all possible variables specified in the protocol.
Please see the attached file for a list of all variables of the binding (I’m not 100% but I think this should be the latest version of the list):
helios.html.pdf (80.9 KB)

1 Like

I’m happy to report that I’ve now found the time to upgrade the binding to the openHAB2 architecture. :grinning:

The code can be found on GitHub: https://github.com/bern77/openhab-addons/tree/2.5.x/bundles/org.openhab.binding.modbus.helioseasycontrols
I’ve also uploaded the bundle file.

At this point a big “Thank You” to @ssalonen for his great guidance and support to base the new version of the Helios KWL binding on the existing Modbus binding. This means there are no more included external libraries required.

In my openHAB production container the binding runs smoothly…

I hope this might be useful for someone else as well!

3 Likes

Very good job! It works very well!

I tried to get the status of summerWinter:

Switch KWL_SommerWinter					"[MAP(helios_sw.map):%s]"											{channel="modbus:helios-ventilation-easycontrols:modbus-gateway:kwl:summerWinter"}

But i don’t get a update. Could it be updated only once a day?

Thanks, but apparently not good enough :wink:
Thanks for the info - I’ve corrected the bug and committed a new version!

Now it’s working!

2020-04-15 14:22:27.575 [vent.ItemStateChangedEvent] - KWL_SommerWinter changed from NULL to ON


Is it now possible to get the status of the bypass?

As per my last post on the subject, I’m afraid this isn’t something the protocol specification supports…

Actually… this was all bullshit. :astonished:

It made me curious and so I just looked into the device’s Website and its code. There is a variable to indicate the bypass status and I’ve managed to read it.
While at it I’ve included also the variables to read/write the day and month of the time when the bypass should be activated…

Enjoy :grinning:

1 Like
Switch KWL_Bypass						"KWL - Bypass offen"							<switch>		(gKWL, gKWL_Status, gMQTT)	{channel="modbus:helios-ventilation-easycontrols:modbus-gateway:kwl:bypassStatus"}
Number KWL_Bypass_von_Tag				"Bypass von Tag [%d]"							<calendar>		(gKWL)						{channel="modbus:helios-ventilation-easycontrols:modbus-gateway:kwl:bypassFromDay"}
Number KWL_Bypass_von_Monat				"Bypass von Monat [%d]"							<calendar>		(gKWL)						{channel="modbus:helios-ventilation-easycontrols:modbus-gateway:kwl:bypassFromMonth"}
Number KWL_Bypass_bis_Tag				"Bypass bis Tag [%d]"							<calendar>		(gKWL)						{channel="modbus:helios-ventilation-easycontrols:modbus-gateway:kwl:bypassToDay"}
Number KWL_Bypass_bis_Monat				"Bypass bis Monat [%d]"							<calendar>		(gKWL)						{channel="modbus:helios-ventilation-easycontrols:modbus-gateway:kwl:bypassToMonth"}
Number KWL_Bypass_Raum_Temp				"Bypass Raumtemperatur [%d°C]"					<temperature>	(gKWL)						{channel="modbus:helios-ventilation-easycontrols:modbus-gateway:kwl:bypassRoomTemperature"}
Number KWL_Bypass_Min_Aussentemp		"Bypass min. Außentemperatur [%d°C]"			<tempearatur>	(gKWL)						{channel="modbus:helios-ventilation-easycontrols:modbus-gateway:kwl:bypassMinOutsideTemperature"}
1 Like

You make my day. THX :smiley:

I have a new problem.
I cannot operate helios via openhab.
e.g. I don’t get the party mode:

2020-04-16 12:53:16.214 [ome.event.ItemCommandEvent] - Item 'KWL_Partybetrieb_Stufe' received command 4
2020-04-16 12:53:16.252 [nt.ItemStatePredictedEvent] - KWL_Partybetrieb_Stufe predicted to become 4
2020-04-16 12:53:20.723 [ome.event.ItemCommandEvent] - Item 'KWL_Partybetrieb_Dauer' received command 180
2020-04-16 12:53:20.756 [nt.ItemStatePredictedEvent] - KWL_Partybetrieb_Dauer predicted to become 180
2020-04-16 12:53:20.786 [vent.ItemStateChangedEvent] - KWL_Partybetrieb_Dauer changed from 120 to 180
2020-04-16 12:53:31.099 [ome.event.ItemCommandEvent] - Item 'KWL_Partybetrieb' received command ON
2020-04-16 12:53:31.108 [nt.ItemStatePredictedEvent] - KWL_Partybetrieb predicted to become NULL

Items:

Switch KWL_Partybetrieb 				"Partybetrieb" 													(KWL, KWL_save_cha) 											{channel="modbus:helios-ventilation-easycontrols:modbus-gateway:kwl:partyMode"}
Number KWL_Partybetrieb_Dauer 			"Partybetrieb Dauer" 											(KWL) 															{channel="modbus:helios-ventilation-easycontrols:modbus-gateway:kwl:partyModeDuration"}
Number KWL_Partybetrieb_Stufe 			"Partybetrieb Lüfterstufe [Stufe %d]" 							(KWL) 															{channel="modbus:helios-ventilation-easycontrols:modbus-gateway:kwl:partyModeFanStage"}
Number KWL_Partybetrieb_Restdauer 		"Partybetrieb Restdauer [%d min]" 								(KWL) 															{channel="modbus:helios-ventilation-easycontrols:modbus-gateway:kwl:partyModeRemainingTime"}

Sitemap:

Frame label="Party mode" {
        Switch item=KWL_Partybetrieb mappings=[OFF=off, ON=on]
        Selection item=KWL_Partybetrieb_Stufe mappings=[0=off, 1="Stage 1", 2="Stage 2", 3="Stage 3", 4="Stage 4"]
        Selection item=KWL_Partybetrieb_Dauer mappings=[60="60 Minutes", 120="120 Minutes", 180="180 Minutes", 240="240 Minutes"]
        Text item=KWL_Partybetrieb_Restdauer
    }

Who sees the mistake? And can help me.


I found the bug myself. The example at gitHub is wrong. It must be called partyModeStatus and not PartyMode BTW Look very carefully in your table. A letter is missing. :wink:
And the same thing happened at … standbyMode | standbyModeStatus

WRONG:
Switch KWL_Partybetrieb 				"Partybetrieb" 													(KWL, KWL_save_cha) 											{channel="modbus:helios-ventilation-easycontrols:modbus-gateway:kwl:partyMode"}
CORRECTLY:
Switch KWL_Partybetrieb 				"Partybetrieb" 													(KWL, KWL_save_cha) 											{channel="modbus:helios-ventilation-easycontrols:modbus-gateway:kwl:partyModeStatus"}

@bern77 Please adapt your description. :face_with_monocle:

Thanks for the note! I’ve updated the documentation incl. the code sample.
Apparently some remainder from the previous version. I’ve only renamed very few variable names in the binding, those two were affected…

Hi Bernhard,

thank you sharing this binding!

I am running version 2.5.4 of Openhab (Standard Installation) in a docker container. I move your latest version of the .jar files into the /openhab/addons folder. Then I add the IP-adress of the device (helios:host=XXX.XXX.XXX.XX) to /conf/services/openhab.conf (i create this file) and also to /conf/services/addons.cfg.

Items and sitemaps based on your wiki-examples are shown in Paper UI / Basic UI but no data are present on the sitemap. I know there are some differences between the OH1 and OH2 implementation (Things and Channels). Do I have to create a .thing file and channel definition manually?
Should the binding normally appear in Paper UI?

Maybe you can give me a hint what is missing or wrong in my definitions?

Hi Thomas,

with the migration to the OH2 binding the configuration now has to be done in a .things file. Please see https://github.com/bern77/openhab-addons/tree/2.5.x/bundles/org.openhab.binding.modbus.helioseasycontrols for an example. I hope that solves your issue?

Hi Bernhard,

thanks for your fast reply!
Now it works and sorry not realizing this link in the conversation above :flushed:

For me as a new user on openhab it needs some time to understand that in your example .sitemap file „Text“ has to be replaced by „sitemap -name of sitemap file-“. And that your binding is a bridge to the modus-binding available at the official repository. Otherwise it helps me to understand the architecture of openhab-projects a little more :grin:

Thanks for your help and this implementation!

I’m glad it worked now! :slight_smile:

The sitemap example is actually just a snippet you could include in an existing sitemap - but it’s certainly not quite self-explanatory :wink:

Hey,
does the binding no longer work under version 2.5.7?

I’m afraid so, yes. It works fine if you downgrade back to 2.5.6 though.
There were some changes to the underlying Modbus binding which I need to incorporate into a new version… Not sure exactly when I’ll be able to deliver an updated version but I certainly will.

1 Like

@bern77 You could file a pull request to let your binding become part of the official distribution. Then, these changes will be tracked in the dependent bindings.

1 Like