Ebusd configuration converter for eBus binding

Hello,

this evening I have started my work on a conversation tool to convert the ebusd CSV configuration files. This should help to use the awesome configurations. I think this was a showstopper for Vaillant devices at the moment.

Here is the first generated file BIA for Vaillant devices bai.json (18.6 KB). This file only contains a subset of all telegrams. You can use the ebus:parserUrl and ebus:parser in your ebus.cfg to add this test telegrams. (See wiki)

P.S. The file is not tested, I own a “Wolf” heating system!

https://github.com/csowada/openhab/blob/ebus-ebusd-csv/bundles/binding/org.openhab.binding.ebus/src/main/java/org/openhab/binding/ebus/tools/EBusEbusdCsvReader.java

So, I have updated the converter and need some testers. Here two files attached.

470.json (42.9 KB)
bai.json (52.1 KB)

Hi,

I promise I’ll do some tests for you, but I’ll only be able to do it in January… Sorry and thanks for all your work!

Hi there,

I have the ebusd running on my vaillant auromatic 560.
the ebus.binding is also installed on openhab 2.0. Can you let me know where I need to place the json files?

thanks
Sebastian

You should copy the file to your openhab server and use this parameters

ebus:parserUrl=platform:/base/../configurations/ebus-config.json
ebus:parsers=custom,....

See the configuration https://github.com/openhab/openhab/wiki/eBUS-Binding#binding-configuration-in-openhabcfg in the wiki.

Then restart your server to reload the configurations.

Hi ,

I just start with ebus binding and one point which is missing is how to setup item for this file

solved

Hello csowada,

could you please translate with your tool my ebusd csv file into the openHAB JSON syntax?
I use this file to control my Vaillant devices auroMATIC VRS 620/3, VPM W, VPM S and ecoTEC plus VC 196/3-5. My goal is to migrate from an ebusd based solution to openHAB.

The csv file is available here:
https://drive.google.com/open?id=0B0KIxqFL1JisZlBHNWs2WTRkYms

Thanks,
Peter

I started doing a manual translation from ebusd to the bus binding. Polling is already working for several values. However, with writing I have an issue.

These are my command definitions

	{
		"comment":	"Fussbodenheizung - Soll-Raumtemperatur",
		"id":		"soll_raum_temp",
		"class":	"fbh",
		"command":	"B5 04",
		"data": 	"0D 32 00",
		"dst":		"50",
		"values": {
			"value": { "type": "byte", "pos": 12, "factor": 0.5 }
		}
	},
	{
		"comment":	"Fussbodenheizung - Soll-Raumtemperatur",
		"id":		"set_soll_raum_temp",
		"class":	"fbh",
		"command":	"B5 04",
		"data": 	"0E 32 00 00",
		"dst":		"50",
		"values": {
			"value": { "type": "byte", "pos": 9, "factor": 0.5 }
		}
	},

and this is the item definition

Number FBH_Raum_Solltemperatur		"Heizkurvenversatz [%.0f °C]"			<temperature>	(FBH, Temperatur) 				{ ebus="id:fbh.soll_raum_temp, refresh:60, dst:50, set:fbh.set_soll_raum_temp" }

Updates done to FBH_Raum_Solltemperatur have no effect. Nothing is sent on the ebus.

Other minor issue: Although dst is defined in my JSON file I get an error if I do not have dst in the items definition:

2017-01-08 22:58:51.837 [ERROR] [o.b.e.i.c.EBusCommandProcessor] - Unable to send command, destination adress is missing. Set "dst" in item.cfg ...

I forgot to mention that I am using openHAB 1.8.3.

Could you try set:fbh.set_soll_raum_temp.value instead of set:fbh.set_soll_raum_temp.

Concerning your question to translate your files. I’m busy at the moment, so I can’t help in time. But the translator is a simple java application. Maybe you have the possibility to run it by yourself.

Many thanks to you csowada. I can now successfully write the item mentioned above.

With another item I have some other problem. I can read the value successfully but when writing it it gets scrambled (my Vaillant controller is displaying some garbage). This is the parser definition:

	{
		"comment":	"Fussbodenheizung - Heizkurve",
		"class":	"fbh",
		"id":		"heizkurve",
		"dst":		"50",
		"command":	"B5 09",
		"data": 	"0D 35 00",
		"values": {
			"value": { "type": "uint", "pos": 12, "factor" : 0.01 }
		}
	},
	{
		"comment":	"Fussbodenheizung - Heizkurve",
		"class":	"fbh",
		"id":		"set_heizkurve",
		"dst":		"50",
		"command":	"B5 09",
		"data": 	"0E 35 00 00 00",
		"values": {
			"value": { "type": "uint", "pos": 9, "factor" : 0.01 }
		}
	},

Maybe there is an issue when encoding the uint. I will check the sources.

This could be true, I currently extract a eBUS library from the binding and I found some bugs in the current sources. You can compare the versions if you want.

When I’m ready with the library I will create a binding update for 1.x and a new one for 2.x

Hello Peter,

i have the same Vaillant Components. Can you post your current JSON File?

Thanks,
Benjamin

Here my JSON file. I did not finish the conversion yet and what I have converted is not completely tested (especially write access).

[
	{
		"comment":	"Aussentemperatur",
		"class":	"aussen_fuehler",
		"id":		"temp",
		"command":	"B5 16",
		"data":		"01",
		"values": {
			"value": { "type": "data2b", "pos": 7 }
		}
	},
	{
		"comment":	"Puffer - SP1, oberer Speicherfühler",
		"class":	"puffer",
		"id":		"sp1_fuehler",
		"dst":		"EC",
		"command":	"B5 09",
		"data": 	"0D 00 00",
		"values": {
			"temp":	{ "type": "data2c", "pos": 12, "label": "Temperatur" },
			"ok":	{ "type": "byte", "pos": 14, "label": "Fühler vorhanden?" }
		}
	},
	{
		"comment":	"Puffer - SP2, unterer Speicherfühler",
		"class":	"puffer",
		"id":		"sp2_fuehler",
		"dst":		"EC",
		"command":	"B5 09",
		"data": 	"0D 02 00",
		"values": {
			"temp":	{ "type": "data2c", "pos": 12, "label": "Temperatur" },
			"ok":	{ "type": "byte", "pos": 14, "label": "Fühler vorhanden?" }
		}
	},
	{
		"comment":	"Puffer - TD2, mittlerer Speicherfühler",
		"class":	"puffer",
		"id":		"td2_fuehler",
		"dst":		"EC",
		"command":	"B5 09",
		"data": 	"0D 07 00",
		"values": {
			"temp":	{ "type": "data2c", "pos": 12, "label": "Temperatur" },
			"ok":	{ "type": "byte", "pos": 14, "label": "Fühler vorhanden?" }
		}
	},
	{
		"comment":	"Fussbodenheizung - Abschaltaussentemperatur",
		"class":	"fbh",
		"id":		"abschalt_aussen_temp",
		"dst":		"50",
		"command":	"B5 09",
		"data": 	"0D 36 00",
		"values": {
			"value": { "type": "byte", "pos": 12 }
		}
	},
	{
		"comment":	"Fussbodenheizung - Abschaltaussentemperatur",
		"class":	"fbh",
		"id":		"set_abschalt_aussen_temp",
		"dst":		"50",
		"command":	"B5 09",
		"data": 	"0E 36 00 00",
		"values": {
			"value": { "type": "byte", "pos": 9 }
		}
	},
	{
		"comment":	"Fussbodenheizung - Temperaturüberhöhung",
		"class":	"fbh",
		"id":		"temp_ueberhoehung",
		"dst":		"15",
		"command":	"B5 09",
		"data": 	"0D 2F 00",
		"values": {
			"value": { "type": "bcd", "pos": 12 }
		}
	},
	{
		"comment":	"Fussbodenheizung - Temperaturüberhöhung",
		"class":	"fbh",
		"id":		"set_temp_ueberhoehung",
		"dst":		"15",
		"command":	"B5 09",
		"data": 	"0E 2F 00 00",
		"values": {
			"value": { "type": "bcd", "pos": 9 }
		}
	},
	{
		"comment":	"Fussbodenheizung - Soll-Raumabsenktemperatur",
		"class":	"fbh",
		"id":		"soll_raum_absenk_temp",
		"dst":		"50",
		"command":	"B5 09",
		"data": 	"0D 33 00",
		"values": {
			"value": { "type": "byte", "pos": 12, "factor" : 0.5 }
		}
	},
	{
		"comment":	"Fussbodenheizung - Soll-Raumabsenktemperatur",
		"class":	"fbh",
		"id":		"set_soll_raum_absenk_temp",
		"dst":		"50",
		"command":	"B5 09",
		"data": 	"0E 33 00 00",
		"values": {
			"value": { "type": "byte", "pos": 9, "factor" : 0.5 }
		}
	},
	{
		"comment":	"Fussbodenheizung - Soll-Vorlauftemperatur",
		"class":	"fbh",
		"id":		"soll_vorlauf_temp",
		"dst":		"50",
		"command":	"B5 09",
		"data": 	"0D 46 00",
		"values": {
			"value": { "type": "byte", "pos": 12, "factor" : 0.5 }
		}
	},
	{
		"comment":	"Fussbodenheizung - Ist-Vorlauffühler",
		"class":	"fbh",
		"id":		"ist_vorlauf_fuehler",
		"dst":		"EC",
		"command":	"B5 09",
		"data": 	"0D 01 00",
		"values": {
			"temp":	{ "type": "data2c", "pos": 12, "label": "Temperatur" },
			"ok":	{ "type": "byte", "pos": 14, "label": "Fühler vorhanden?" }
		}
	},
	{
		"comment":	"Fussbodenheizung - Puffer-Vorlauffühler",
		"class":	"fbh",
		"id":		"puffer_vorlauf_fuehler",
		"dst":		"EC",
		"command":	"B5 09",
		"data": 	"0D 04 00",
		"values": {
			"temp":	{ "type": "data2c", "pos": 12, "label": "Temperatur" },
			"ok":	{ "type": "byte", "pos": 14, "label": "Fühler vorhanden?" }
		}
	},
	{
		"comment":	"Fussbodenheizung - Heizkurve",
		"class":	"fbh",
		"id":		"heizkurve",
		"dst":		"50",
		"command":	"B5 09",
		"data": 	"0D 35 00",
		"values": {
			"value": { "type": "uint", "pos": 12, "factor" : 0.01 }
		}
	},
	{
		"comment":	"Fussbodenheizung - Heizkurve",
		"class":	"fbh",
		"id":		"set_heizkurve",
		"dst":		"50",
		"command":	"B5 09",
		"data": 	"0E 35 00 00 00",
		"values": {
			"value": { "type": "uint", "pos": 9, "factor" : 0.01 }
		}
	},
	{
		"comment":	"Fussbodenheizung - Soll-Raumtemperatur",
		"class":	"fbh",
		"id":		"soll_raum_temp",
		"dst":		"50",
		"command":	"B5 09",
		"data": 	"0D 32 00",
		"values": {
			"value": { "type": "byte", "pos": 12, "factor": 0.5 }
		}
	},
	{
		"comment":	"Fussbodenheizung - Soll-Raumtemperatur",
		"class":	"fbh",
		"id":		"set_soll_raum_temp",
		"dst":		"50",
		"command":	"B5 09",
		"data": 	"0E 32 00 00",
		"values": {
			"value": { "type": "byte", "pos": 9, "factor": 0.5 }
		}
	},
	{
		"comment":	"Fussbodenheizung - Betriebsart",
		"class":	"fbh",
		"id":		"betriebsart",
		"dst":		"50",
		"command":	"B5 09",
		"data": 	"0D 2B 00",
		"values": {
			"value": { "type": "bcd", "pos": 12, "label": "1=Heizen,2=Aus,3=Auto,4=Eco,5=Absenken" }
		}
	},
	{
		"comment":	"Fussbodenheizung - Betriebsart",
		"class":	"fbh",
		"id":		"set_betriebsart",
		"dst":		"50",
		"command":	"B5 09",
		"data": 	"0E 2B 00 00",
		"values": {
			"value": { "type": "bcd", "pos": 9, "label": "1=Heizen,2=Aus,3=Auto,4=Eco,5=Absenken" }
		}
	}
]

Any help re. compilation of the converter?
https://github.com/csowada/openhab/blob/ebus-ebusd-csv/bundles/binding/org.openhab.binding.ebus/src/main/java/org/openhab/binding/ebus/tools/EBusEbusdCsvReader.java

I have never worked with java and do not have any IDE installed. I can see javac EBusJsonConfTool.java complains about missing classes/files to be imported - org.apache.commons … etc.

Is there a relative easy way to get this compiled on Linux? (E.g. download all the classes to a tmp dir, set CLASSPATH, and here we go…)

P.S. Getting a jar file might be easier, though :wink:

Same configuration try to find code …
VRS 620, AuroFLOW, aguaFLOW VPM 30/35/2,
I try to decode …

FF 00 78 3E
FF 80 78 1E 00 F8 3C
FF 80 78 1E 00 F8 3C
FF 80 78 3E
FF 00 7C 1E 00 00 00 00 00 7C 1E FC 78 C0 00 00 00 00 00 00 00 00 00 78 C0 00 00 00 00 00 80 F8 3E
FF 00 78 3E
FF 80 78 3E
00 78 3E
FF 80 78 1E 00 F8 3C
FF 00 78 3E
FF 80 78 1E 00 F8 3C
FF 80 78 1E 00 F8 3C
FF 00 00 00 00 80 7C 3E
FC 78 C0 00 F8 00 F8 FE 00 00 00 00 00 00 00 F8 00 78 00 80 F8 78 C0 F8 FC 78 00 00 80 00 80 7C 3E

help !