eBus 2.0 new binding - cannot access Vaillant VR61 module with external .json

Hello @csowada,

I started experimenting with your ebus 2 binding. It is great.
Thank you for all your work end efforts.:+1:

I have a question on the integration of external json configuration files.

In my setup I run a Vaillant ecoCOMPACT VSC 196 with an external VR61 mixer module to drive a sendoc heating circuit for a low temperature underfloor heating.

I am connected to the eBus via Esera USB coupler. I can successfully get and control the Vaillant VRC 430 and the BAI00 standard parameter.

What is completely missing is the VR61 part and all my attempts to include were unfortunately without success.

From my understanding VR61 is not provided in the standard config scope of your latest binding.

So I downloaded the VR61 config which I felt appropriate from you github store:

and linked the file in the config in the binding configuration:

This is my installed version:

openhab> feature:list | grep eBUS
ebus-binding                                x 2.4.0.RC4        x x        x Started     x ebus-distro-2.4.0.RC4   x eBUS 2.0 binding incl. eBUS core libs

My edvices:

openhab> smarthome:ebus devices
MA | SA | Identifier     | Device         | Manufacture               | ID | Firmware   | Hardware   | Last Activity
---+----+----------------+----------------+----------------------+----+------------+------------+---------------------
FF | 04 |                | <interface>    | eBUS Library              |    | null       | null       | ---
   | 50 | 56 36 31 30 30 | ---            | Joh. Vaillant GmbH & Co.  | B5 | 1.19       | 19.02      | Mon Mar 18 20:17:14 CET 2019
3F | 44 |                | ---            | null                      |    | null       | null       | Mon Mar 18 18:17:57 CET 2019
10 | 15 | 34 33 30 30 30 | vrc430         | Joh. Vaillant GmbH & Co.  | B5 | 2.15       | 20.02      | Mon Mar 18 20:17:14 CET 2019
03 | 08 | 42 41 49 30 30 | bai            | Joh. Vaillant GmbH & Co.  | B5 | 5.18       | 74.01      | Mon Mar 18 20:17:11 CET 2019
----------------------------------------------------------------------------------------------------------------------
MA = Master Address / SA = Slave Address / ID = Manufacture ID

The bridge statistics:

an the last portion of the ebus-unresolved.csv file from today:

2019-03-18 20:14:24;"10";"50";"B5 05";"02 18 00 34 00 00 00";
2019-03-18 20:14:25;"10";"50";"B5 05";"02 30 01 48 00 01 01 9A 00";
2019-03-18 20:14:27;"10";"50";"B5 03";"02 00 01 41 00 0A FF FF FF FF FF FF FF FF FF FF 0F 00";
2019-03-18 20:14:31;"10";"50";"B5 04";"01 18 E7 00 06 31 31 00 99 02 18 C1 00";
2019-03-18 20:14:33;"10";"50";"B5 04";"01 26 D9 00 07 02 02 00 30 01 CB 01 11 00";
2019-03-18 20:14:34;"10";"50";"B5 03";"02 00 03 43 00 0A FF FF FF FF FF FF FF FF FF FF 0F 00";
2019-03-18 20:14:34;"10";"50";"B5 09";"04 0E 01 00 01 55 00 00 00";
2019-03-18 20:14:34;"10";"50";"B5 09";"04 0E 20 00 01 2E 00 00 00";
2019-03-18 20:14:34;"10";"08";"B5 10";"09 00 00 62 46 FF FF 00 FF 00 48 00 01 01 9A 00";
2019-03-18 20:14:35;"10";"50";"B5 05";"02 18 00 34 00 00 00";
2019-03-18 20:14:35;"10";"50";"B5 05";"02 30 01 48 00 01 01 9A 00";
2019-03-18 20:14:37;"10";"50";"B5 03";"02 00 01 41 00 0A FF FF FF FF FF FF FF FF FF FF 0F 00";
2019-03-18 20:14:41;"10";"50";"B5 04";"01 18 E7 00 06 31 31 00 99 02 18 C1 00";
2019-03-18 20:14:43;"10";"50";"B5 03";"02 00 03 43 00 0A FF FF FF FF FF FF FF FF FF FF 0F 00";
2019-03-18 20:14:44;"10";"50";"B5 09";"04 0E 01 00 01 55 00 00 00";
2019-03-18 20:14:44;"10";"50";"B5 09";"04 0E 20 00 01 2E 00 00 00";
2019-03-18 20:14:44;"10";"08";"B5 10";"09 00 00 62 46 FF FF 00 FF 00 48 00 01 01 9A 00";
2019-03-18 20:14:44;"10";"50";"B5 05";"02 18 00 34 00 00 00";
2019-03-18 20:14:45;"10";"50";"B5 05";"02 30 01 48 00 01 01 9A 00";
2019-03-18 20:14:47;"10";"50";"B5 03";"02 00 01 41 00 0A FF FF FF FF FF FF FF FF FF FF 0F 00";
2019-03-18 20:14:50;"10";"FE";"B5 05";"02 04 00 0B AA";
2019-03-18 20:14:51;"10";"50";"B5 04";"01 18 E7 00 06 31 31 00 99 02 18 C1 00";
2019-03-18 20:14:53;"10";"50";"B5 03";"02 00 03 43 00 0A FF FF FF FF FF FF FF FF FF FF 0F 00";
2019-03-18 20:14:54;"10";"50";"B5 09";"04 0E 01 00 01 55 00 00 00";
2019-03-18 20:14:54;"10";"50";"B5 09";"04 0E 20 00 01 2E 00 00 00";
2019-03-18 20:14:54;"10";"08";"B5 10";"09 00 00 62 46 FF FF 00 FF 00 48 00 01 01 9A 00";
2019-03-18 20:14:54;"10";"50";"B5 05";"02 18 00 34 00 00 00";
2019-03-18 20:14:55;"10";"50";"B5 04";"01 26 D9 00 07 02 02 00 30 01 CB 01 11 00";
2019-03-18 20:14:55;"10";"50";"B5 05";"02 30 01 48 00 01 01 9A 00";
2019-03-18 20:14:57;"10";"50";"B5 03";"02 00 01 41 00 0A FF FF FF FF FF FF FF FF FF FF 0F 00";
2019-03-18 20:14:59;"10";"50";"B5 05";"05 3C CB 01 CB 01 F3 00 00 00";
2019-03-18 20:15:01;"10";"50";"B5 09";"04 0E 01 00 01 55 00 00 00";
2019-03-18 20:15:02;"10";"50";"B5 09";"04 0E 20 00 01 2E 00 00 00";
2019-03-18 20:15:02;"10";"50";"B5 04";"01 18 E7 00 06 31 31 00 9B 02 18 ED 00";
2019-03-18 20:15:02;"10";"08";"B5 10";"09 00 00 62 46 FF FF 00 FF 00 48 00 01 01 9A 00";
2019-03-18 20:15:03;"10";"50";"B5 03";"02 00 03 43 00 0A FF FF FF FF FF FF FF FF FF FF 0F 00";
2019-03-18 20:15:04;"10";"50";"B5 05";"02 18 00 34 00 00 00";
2019-03-18 20:15:05;"10";"50";"B5 05";"02 30 01 48 00 01 01 9A 00";
2019-03-18 20:15:07;"10";"50";"B5 03";"02 00 01 41 00 0A FF FF FF FF FF FF FF FF FF FF 0F 00";
2019-03-18 20:15:10;"10";"08";"B5 12";"02 00 64 AE 00 00 00";
2019-03-18 20:15:11;"10";"50";"B5 09";"04 0E 01 00 01 55 00 00 00";
2019-03-18 20:15:12;"10";"50";"B5 09";"04 0E 20 00 01 2E 00 00 00";
2019-03-18 20:15:12;"10";"50";"B5 04";"01 18 E7 00 06 31 31 00 9B 02 18 ED 00";
2019-03-18 20:15:12;"10";"08";"B5 10";"09 00 00 62 46 FF FF 00 FF 00 48 00 01 01 9A 00";
2019-03-18 20:15:13;"10";"50";"B5 03";"02 00 03 43 00 0A FF FF FF FF FF FF FF FF FF FF 0F 00";
2019-03-18 20:15:14;"10";"50";"B5 05";"02 18 00 34 00 00 00";
2019-03-18 20:15:15;"10";"50";"B5 04";"01 26 D9 00 07 02 02 00 30 01 CB 01 11 00";
2019-03-18 20:15:15;"10";"50";"B5 05";"02 30 01 48 00 01 01 9A 00";
2019-03-18 20:15:18;"10";"50";"B5 03";"02 00 01 41 00 0A FF FF FF FF FF FF FF FF FF FF 0F 00";

Do you have any hint for me?

With best regards,
Martin

Hello @MWerk,

have you already solved your problem?
I was able to include the configuration file, but I have some problems to define the right ebus master and slave adresses. Do you know the right ones?

How do you solve the binding problem.
I also try to add my *.json file but it didn’t show me in my paper ui/Binding/ebus

Hi @Trainer, the deskription from @MWerk has helped me to find the right way. You must download the config files ([VR61 Config](https://github.com/csowada/ebus-ebusd-configuration/blob/master/vaillant/V6100.50.v61.mc_configuration.json and the template config template config)

Both file are you add to the ebus binding.

Hello @John_Doe,
unfortunately I can not report much prgress here. I am still stuck with the problem described in my initial post.
A new heating season is starting and I still don’t have my 2nd heating circuit under openHAB control.

When I try to load the VR61 specific .json file I get the following error in the log.
I am thinking about a test with the experimental ebusd connector.
https://community.openhab.org/t/experimental-ebus-2-0-ebusd-connector/71167
I successfully used ebusd before with FHEM.

Maybe @csowada has a helpful hint for us…

[ERROR] [dev.ebus.command.EBusCommandRegistry] - error!de.csdev.ebus.cfg.EBusConfigurationReaderException: Unable to find a template for id vaillant.templ.temp1!

at de.csdev.ebus.cfg.std.EBusConfigurationReader.parseValueConfiguration(EBusConfigurationReader.java:380) ~[206:de.cs-dev.ebus.ebus-core:0.9.20.SNAPSHOT]

at de.csdev.ebus.cfg.std.EBusConfigurationReader.parseTelegramConfiguration(EBusConfigurationReader.java:217) ~[206:de.cs-dev.ebus.ebus-core:0.9.20.SNAPSHOT]

at de.csdev.ebus.cfg.std.EBusConfigurationReader.loadConfigurationCollection(EBusConfigurationReader.java:139) ~[206:de.cs-dev.ebus.ebus-core:0.9.20.SNAPSHOT]

at de.csdev.ebus.cfg.std.EBusConfigurationReader.loadConfigurationCollection(EBusConfigurationReader.java:114) ~[206:de.cs-dev.ebus.ebus-core:0.9.20.SNAPSHOT]

at de.csdev.ebus.command.EBusCommandRegistry.loadCommandCollection(EBusCommandRegistry.java:98) [206:de.cs-dev.ebus.ebus-core:0.9.20.SNAPSHOT]

at org.openhab.binding.ebus.thing.EBusTypeProviderImpl.loadConfigurationByUrl(EBusTypeProviderImpl.java:316) [208:org.openhab.binding.ebus:2.4.0.201905251729]

at org.openhab.binding.ebus.thing.EBusTypeProviderImpl.updateConfiguration(EBusTypeProviderImpl.java:469) [208:org.openhab.binding.ebus:2.4.0.201905251729]

at org.openhab.binding.ebus.thing.EBusTypeProviderImpl.updated(EBusTypeProviderImpl.java:501) [208:org.openhab.binding.ebus:2.4.0.201905251729]

at org.apache.felix.cm.impl.helper.ManagedServiceTracker.updated(ManagedServiceTracker.java:189) [9:org.apache.felix.configadmin:1.9.14]

at org.apache.felix.cm.impl.helper.ManagedServiceTracker.updateService(ManagedServiceTracker.java:152) [9:org.apache.felix.configadmin:1.9.14]

at org.apache.felix.cm.impl.helper.ManagedServiceTracker.provideConfiguration(ManagedServiceTracker.java:85) [9:org.apache.felix.configadmin:1.9.14]

at org.apache.felix.cm.impl.ConfigurationManager$UpdateConfiguration.run(ConfigurationManager.java:1400) [9:org.apache.felix.configadmin:1.9.14]

at org.apache.felix.cm.impl.UpdateThread.run0(UpdateThread.java:138) [9:org.apache.felix.configadmin:1.9.14]

at org.apache.felix.cm.impl.UpdateThread.run(UpdateThread.java:105) [9:org.apache.felix.configadmin:1.9.14]

at java.lang.Thread.run(Thread.java:748) [?:?]

Hi,

i have tryed some settings from the VR61 config file and found the following working setting:

{
“id”: “custom-vr61”,
“vendor”: “Vaillant”,
“label”: “Vaillant VR61”,
“description”: "Vaillant VR61 ",

    "authors":      ["Name, mail@mail"],

    "identification":       ["56 36 31 30 29"],

    "commands":
    [    
		
		{
			"label":    "HC2 Heating curve",
			"id":       "HeatingCurve2",
			"command":  "B5 09",
			"template": 
			[
				{"name": "HeatingCurve2", "type": "uint", "label": "HC2 Heating curve", "divider":100,"factor":0.010}
			], 
			
			"get": 
			{
				"master": [
					{"type": "static", "default": "0D 15 00"}
				],
				"slave": [
					{"type": "template-block"}
				]
			},
				"set": 
					{
				"master": [
					{"type": "static", "default": "0E 15 00"},
					{"type": "template-block"}
				]
			}
		},
		
		{
			"label":    "HC1 Pump Status",
			"id":       "HC1PumpStatus",
			"command":  "B5 09",
			
			"get": 
			{
				"master": [
					{"type": "static", "default": "0D 42 00"}
				],
					"slave": [
                {"name": "HC1PumpStatus", "type": "uchar", "label": "HC1 Pump Status", "min": 0, "max": 1, "mapping": {"1":"on", "0":"off"}}
				]
			}
		},
		
		{
			"label":    "HC2 Pump Status",
			"id":       "HC2PumpStatus",
			"command":  "B5 09",
			
			"get": 
			{
				"master": [
					{"type": "static", "default": "0D 43 00"}
				],
					"slave": [
                {"name": "HC2PumpStatus", "type": "uchar", "label": "HC2 Pump Status", "min": 0, "max": 1, "mapping": {"1":"on", "0":"off"}}
				]
			}
		},
		{
			"label":    "VF2 flow sensor temperature",
			"id":       "vf2_sensor_hc2",
			"command":  "B5 09",

			"get": 
			{
				"master": 
				[
					{"type": "static", "default": "0D 00 00"}
				],
				"slave": 
				[
					{"name": "temp_room", "type": "data2c", "label": "Flow temperature", "min": 0, "max": 60, "format":"%.1f°C"},
					{"name": "status", "type": "uchar", "label": "Flow temperature status",
						"mapping": {"0":"Ok", "85":"Circuit", "170":"Cutoff"}}
				]
			}
		},
		{
        "label":    "HC2 Operation mode",
        "id":       "HC2.heating.program_heating_circuit",
        "command":  "B5 09",

        "template": [
            {"name": "program", "type": "uchar", "label": "HC2 Operation mode", "format":"%d",
                "mapping": {"0":"Off", "1":"Manual", "2":"Auto", "3":"Day", "4":"Night", "5":"Summer"}}
        ],

        "get": {
            "master": [
                {"type": "static", "default": "0D 31 00"}
            ],
            "slave": [
                {"type": "template-block"}
            ]
        },
	{
		"label": "HC2_ManualOPRoomSetpoint",
		"id": "Hc2ManualOPRoomTempDesired",
		"command": "B5 09",
		"template": [
			{"name":"Hc2ManualOPRoomTempDesired","type":"data1c","label":"room setpoint in operation mode manual of the second heating circuit","format":"%.1f°C"}
		],
		"get": {
			"master": [
				{"type":"static","_default":"0D 34 00"}
			],
			"slave": [
				{"type":"template-block"}
			]
		},
		"set": {
			"command": "B5 09",
			"master": [
				{"type":"static","_default":"0E 34 00"},
				{"type":"template-block"}
			]
		}
	}
	
		
		
	]

}

Hello @John_Doe,

thanks for the hint with this configuration and the new binding version I was successful.
Finally I’m also able to get the readings from my Vaillant VR61 mixer module.

Thanks @csowada for the continuous efforts and improvements of the binding.

Hi @John_Doe .
Thank you for your hint.

your link didn’t work :frowning:

i also add my Vaillant_tamplet.json but i got this error message:

1:02:23.674 [INFO ] [.internal.things.EBusTypeProviderImpl] - Load custom 'url' configuration file 'file:///etc/openhab/ebus-new/vaillant/vaillant_template.json' ...
21:02:23.720 [ERROR] [.internal.things.EBusTypeProviderImpl] - Error on loading configuration by url: The property 'label' is missing for the configuration! [ URL: file:/etc/openhab/ebus-new/vaillant/vaillant_template.json ]
21:02:23.742 [INFO ] [.internal.things.EBusTypeProviderImpl] - Load custom 'url1' configuration file 'file:///etc/openhab/ebus-new/vaillant/39200.15.392_configuration.json' ...
21:02:23.811 [ERROR] [.internal.things.EBusTypeProviderImpl] - Error on loading configuration by url: Unable to find a template for id vaillant.templ.temp! [ URL: file:/etc/openhab/ebus-new/vaillant/39200.15.392_configuration.json ]
21:02:23.941 [WARN ] [.internal.things.EBusTypeProviderImpl] - eBUS command boiler.control.setopdata only contains a setter channel!

Can you please help me