Ebus binding


This is a follow up of this topic:

Has someone managed to set a value on vaillant with this binding?

I tried the following config (just an example item that would be useful) with pos on 8, 9 or 12, but none of them seem to work.

	"comment":	"VRC 470 HC1 Operation mode",
	"id":		"set_hc1opmode",
	"class":	"vrc470",
	"command":	"B5 09",
	"data": 	"0E 2F 00",
	"dst":		"15",
	"values": {
		"hc1opmode":		{"type": "uchar", "pos": 8, "label": "HC1 Operation mode (0 = off, 1 = manual, 2 = auto, 3 = on, 4 = night, 5 = summer)"}
1 Like

Hello nikores,

I’m currently working on an update for this binding that should help with different commands for one item. But you have still problems with this command?

Have you loaded your custom configuration with the property “ebus:parsers=…,custom” and “ebus:parserUrl=platform:/base/…/configurations/ebus-config.json” from openhab.cfg? There should be message in you log file.

Could you increase the log level for the binding and then send me you log?

Which version of the binding do you use?

I’m very happy to see a vaillant owner tries to help. :grinning:

Here an example of the new configuration syntax. I’ll release a new version this evening.

Number	CVHC1OpMode	"Bedrijfsmodus"	(CV)	{ ebus="id:vrc470.hc1opmode, dst:15, refresh:300, set:vrc470.set_hc1opmode.hc1opmode" }

So, the new release is finish. If you are interest you can download it directly from https://github.com/csowada/openhab/releases/download/1.8.0beta2/org.openhab.binding.ebus-1.8.0-SNAPSHOT.jar

And here is the updated readme file with all information to this binding.

Thank you!

I’m testing as we speak.
Everything works for reading (polling). Had some work to adjust all my items file but its clearer now.

I’m now using the following item definition (needed to add the cmd for polling I believe)
Number CVHC1OpMode “Bedrijfsmodus” (CV) { ebus=“id:vrc470.hc1opmode, cmd:vrc470.hc1opmode, dst:15, refresh:300, set:vrc470.set_hc1opmode.hc1opmode” }

Setting the value still doesn’t work though.
When I change the value I get the the following in my log:

2015-10-19 20:39:49.192 [DEBUG] [.ebus.internal.utils.EBusUtils] - No answer from slave, skip data!
2015-10-19 20:39:49.202 [TRACE] [.ebus.internal.utils.EBusUtils] -  -> DATA: 03 64 B5 12 02 02 FE 98 AA

At least I think this is related. It seems I can’t see what is being sent.
I have the following in my logback.xml

	<logger name="org.openhab.binding.ebus.parser.EBusTelegramParser" level="TRACE" />
	<logger name="org.openhab.binding.ebus.internal.parser.Analyses" level="TRACE" />
	<logger name="org.openhab.binding.ebus.internal.utils.EBusUtils" level="TRACE" />

I will try with different positions in the config file now and I’ll see what happens.

Just for completeness, here my config for this item:

	"comment":	"VRC 470 HC1 Operation mode",
	"id":		"hc1opmode",
	"class":	"vrc470",
	"command":	"B5 09",
	"data": 	"0D 2F 00",
	"dst":		"15",
	"values": {
		"hc1opmode":		{"type": "uchar", "pos": 12, "label": "HC1 Operation mode (0 = off, 1 = manual, 2 = auto, 3 = on, 4 = night, 5 = summer)"}
	"comment":	"VRC 470 Set HC1 Operation mode",
	"id":		"set_hc1opmode",
	"class":	"vrc470",
	"command":	"B5 09",
	"data": 	"0E 2F 00",
	"dst":		"15",
	"values": {
		"hc1opmode":		{"type": "uchar", "pos": 8, "label": "HC1 Operation mode (0 = off, 1 = manual, 2 = auto, 3 = on, 4 = night, 5 = summer)"}

I’ve tried with pos as 8, 9 and 12 (and restarted openhab each time to reload the config), but I always get the same error.
From the ebusd documention I also can’t figure out which position it should be.

2015-10-19 21:12:31.370 [DEBUG] [.ebus.internal.utils.EBusUtils] - No answer from slave, skip data!
2015-10-19 21:12:31.381 [TRACE] [.ebus.internal.utils.EBusUtils] -  -> DATA: 03 64 B5 12 02 02 FE 98 AA

I updated the jar file to show more information on message “No answer from slave…”. You can download it from the same source.
I tried your configuration and it looks like it generates a valid telegram with pos 8, but please try the new version.

Uh, new idea, could try the block below. I also modified the release version again. The new version already includes this command in package vrc470.

{ "comment": "VRC 470 Set HC1 Operation mode", "id": "set_hc1opmode", "class": "vrc470", "command": "B5 09", "data": "0E 2F 00 00", "dst": "15", "values": { "hc1opmode": {"type": "uchar", "pos": 9, "label": "HC1 Operation mode (0 = off, 1 = manual, 2 = auto, 3 = on, 4 = night, 5 = summer)"} } },

Thank you.

It works!!! Your latest suggestion did the trick.

I included the change in my ebus-config.json for all my current set items. I still need to test if they work though (the SFmode for example is a read-only parameter in ebusd, so it might not be possible to set this remotely).

A few others items also seem to be something different than what I thought or don’t really work, so the file still needs some work.

  • vrc470.displayedhc1roomtempdesired is rounded to decimal, which is annoying
  • bai.partloadhckw: D000 is not the current modulation in kW, but a setpoint to limit the maximum capacity
  • bai.fanspeed doesn’t work in my case
  • I should probably use the mapping feature instead of the description, altough the added value isn’t really clear to me.

There are many many more items available in the ebusd configs. If I have some time I’ll try to add a few more.
I’ll also copy you naming scheme in my file, because I notice it’s a bit different which probably makes it more difficult to combine everything.

ebus-config.json (9.4 KB)

Thank you for your feedback.

The binding already contains vaillant configurations. If you like to help it would be great if you could uses the syntaxt in this files and use the wolf files as a template.


I reworked the file to align more to your naming scheme.
I still use my own file because it’s easier to change stuff.

ebus-config.json (10.9 KB)

This is my items file. I translated it so its easier to use in the readme

Number	Temp_Outside	"Outside temperature [%.1f °C]"	{ ebus="id:controller.temp_outside.temp_outside, cmd:controller.temp_outside, dst:15, refresh:300" }
Number	Temp_Room	"Room temperature [%.1f °C]"	(Temperatuur,CV,Persistence)	{ ebus="id:controller.temp_room.temp_room, cmd:controller.temp_room, dst:15, refresh:300" }
Number	Temp_D_Room "Desired room temperature [%.1f °C]" { ebus="id:controller.temp_d_room_1, cmd:controller.temp_d_room_1, dst:15, refresh:300" }
Number	HC1_Program	"Heating program HC1" { ebus="id:controller.heating_circuit_1_program, cmd:controller.heating_circuit_1_program, dst:15, refresh:300, set:controller.set_heating_circuit_1_program.program" }
Number	HC1_Special_Program	"Special program HC1"	{ ebus="id:controller.heating_circuit_1_special_program, cmd:controller.heating_circuit_1_special_program, dst:15, refresh:300, set:controller.set_heating_circuit_1_special_program.program" }
Number	Temp_Day_Set	"Day setpoint [%.1f °C]"	{ ebus="id:controller.temp_1_day, cmd:controller.temp_1_day, dst:15, refresh:300, set:controller.set_temp_1_day.temp_1_day" }
Number	Temp_Night_Set	"Night setpoint [%.1f °C]"	{ ebus="id:controller.temp_1_night, cmd:controller.temp_1_night, dst:15, refresh:300, set:controller.set_temp_1_night.temp_1_night" }
Number	Temp_DHW_Set	"DHW [%.1f °C]"	{ ebus="id:controller.dhw_temp_set, cmd:controller.dhw_temp_set, dst:15, refresh:300, set:controller.set_dhw_temp_set.dhw_temp_set" }
Number	Temp_D_DHW	"Actual desired DHW temp [%.1f °C]"	{ ebus="id:controller.dhw_temp_d, cmd:controller.dhw_temp_d, dst:08, refresh:60" }
Number	Heating_Curve	"Heating curve [%.1f]"	{ ebus="id:controller.hc1heatcurve, cmd:controller.hc1heatcurve, dst:15, refresh:300, set:controller.set_hc1heatcurve.hc1heatcurve" }

Number	Temp_DHW_Cylinder	"DHW cylinder temperature [%.1f °C]"	{ ebus="id:dhw.temp_cylinder, cmd:dhw.temp_cylinder, dst:08, refresh:60" }
Number	Temp_D_Flow	"Desired flow temperature [%.1f °C]"	{ ebus="id:heating.temp_d_flow, cmd:heating.temp_d_flow, dst:08, refresh:60" }
Number	Temp_Flow	"Flow temperature [%.1f °C]"	{ ebus="id:heating.temp_flow.temp_flow, cmd:heating.temp_flow, dst:08, refresh:60" }
Number	Temp_Return	"Return temperature[%.1f °C]"	{ ebus="id:heating.temp_return.temp_return, cmd:heating.temp_return, dst:08, refresh:60" }
Number	Level_modulation	"Modulation level [%d %%]"	{ ebus="id:heating.level_modulation, cmd:heating.level_modulation, dst:08, refresh:60" }
Number	Water_Pressure	"Water pressure [%.2f bar]"	{ ebus="id:heating.pressure.pressure, cmd:heating.pressure, dst:08, refresh:300"}
Number	Ionization	"Ionization [%d µA]"	{ ebus="id:heating.value_io, cmd:heating.value_io, dst:08, refresh:300"}

Maybe another small remark. When openhab is started it always produces a lot of errors: “No data to send for item …” I believe the binding is trying to send data for all polling items (and they are all still uninitialized).

1 Like

Before you copy anything, there’s an error or typo somewhere in the config. I’ll check this evening.

Wow, thank you, that’s great work.

Yes, I found the issue, there where two commas missing, my editor showed me that.

I will review your file this evening and then I can put your commands into the master.
I’m very happy to see progress with vaillant heating untits.

I should get another editor …

I added a few new ones for the boiler as well.

ebus-config.json (13.8 KB)


you does a great work. Other Vaillant users will be very happy to see the extended support of there devices.

I rewrote your files a bit to meet a common syntax.

I differentiate between this classes:

heating - Everything that is only releated to heating
dhw - Everything that is only releated to heating
boiler - Everything that
controller - A remote control etc.
solar - Solar

By this class schema we can use id more often. I’ve also remove numbers from ids, if an additional unit are not usual like “heat cuicuit 1”. Most users only have one. For additional units we will use numbers to count.

If would be nice if you could check the modified files reated to the classes and ids.



You can see the generated ids for the wiki in this lists:

Hi all
I’am going to connect vaillant vrc 430 to openhab through eBus Coupler to Ethernet.
Can I use vaillant-vrc470-configuration.json ???
The most important thing for me is DHW Operation mode

I mean HC1 Operation mode of course :slight_smile:

I am testing with a USB eBus coupler (on RPi) and a vrc470f. I believe the binding also works with a ethernet coupler.
The config for a vrc430 is different. So you probably won’t be able to use the vrc470 config for everything (but operation mode seems to be the same). However, it’s very easy to make a new config based on the ebusd config files (https://github.com/john30/ebusd-configuration/blob/master/ebusd-1.x.x/vaillant_de/430.csv). Only very time consuming…

I only made a few changes and added a few items.
I also made something for the most important items for the VRC430, but I’m not able to test this.

vaillant-vrc430-configuration.json (7.1 KB)vaillant-vrc470-configuration.json (9.2 KB)vaillant-bai00-configuration.json (5.8 KB)

1 Like