[eBUS 2.0] New binding - Release Candidate 7b

Hello,

I’ve also implemented the ebus 2.0 (Alpha 15) binding with success. We use a Vaillant Ecotec plus heater a VR61 module, a VRC470 (HC2) and a VR80 (HC1) thermostate. I saw 5 ebus things appearing in the list : ebus bridge, ebus standard, ebus standard(8), ebus standard(15) and ebus standard(50).

Does it mean that address 50 is used for the VR61 module?

In the control tab of the paperUI i see a set of parameters, but not all the data is coming thru (NaN). I suppose the mapping is not correct? Do i need to adapt some settings in the config.json file?

Thanks in advance,

Tom

Hello!

@csowada thank you for developing this binding and for kindly support!

I am new to OpenHAB, bindings, configurations etc, but somehow got my setup to work. (OpenHAB2 on OrangePI, eBUS 2.0 Alpha 15, Vaillant 306-5/5, eRelax controller, homemade eBUS adapter https://www.mikrocontroller.net/topic/346833)
My problem is many failed telegrams and I couldn’t find any solution in other topics.

First problem is master CRC when polling my boiler. How there could be master CRC error if in this case master is eBUS binding itself??? Why is sixth byte from error log (09) different than sent one(0D)?

12:56:34.380 [INFO ] [hab.binding.ebus.handler.EBusHandler] - Poll command "ebus:bai:bdeee849:08:bai_boiler_temp-outlet#status" with "FF 08 B5 09 03 0D 16 00 C9" ...
12:56:34.461 [DEBUG] [de.csdev.ebus.core.EBusController   ] - Send: FF 08 B5 09 03 0D 16 00 C9 @ 0. attempt
12:56:34.463 [TRACE] [de.csdev.ebus.core.EBusController   ] - Send FF
12:56:34.472 [TRACE] [de.csdev.ebus.core.EBusController   ] - Send 08
12:56:34.474 [TRACE] [de.csdev.ebus.core.EBusController   ] - Send B5
12:56:34.477 [TRACE] [de.csdev.ebus.core.EBusController   ] - Send 09
12:56:34.479 [TRACE] [de.csdev.ebus.core.EBusController   ] - Send 03
12:56:34.481 [TRACE] [de.csdev.ebus.core.EBusController   ] - Send 0D
12:56:34.484 [TRACE] [de.csdev.ebus.core.EBusController   ] - Send 16
12:56:34.486 [TRACE] [de.csdev.ebus.core.EBusController   ] - Send 00
12:56:34.488 [TRACE] [de.csdev.ebus.core.EBusController   ] - Send C9
12:56:34.513 [DEBUG] [nding.ebus.handler.EBusBridgeHandler] - eBUS telegram error; Master CRC invalid! IS:91 SHOULD:C9 [ERROR: MASTER_CRC_INVALID, DATA: FF 08 B5 09 03 09 16 00 C9]
12:56:34.538 [DEBUG] [nding.ebus.handler.EBusBridgeHandler] - eBUS telegram error; Master Data Length too large! [ERROR: INVALID_MASTER_LEN, DATA: 00 03 41 07]
12:56:35.047 [DEBUG] [de.csdev.ebus.core.EBusController   ] - Send: FF 08 B5 09 03 0D 16 00 C9 @ 1. attempt
12:56:35.049 [TRACE] [de.csdev.ebus.core.EBusController   ] - Send FF
12:56:35.058 [TRACE] [de.csdev.ebus.core.EBusController   ] - Send 08
12:56:35.060 [TRACE] [de.csdev.ebus.core.EBusController   ] - Send B5
12:56:35.063 [TRACE] [de.csdev.ebus.core.EBusController   ] - Send 09
12:56:35.065 [TRACE] [de.csdev.ebus.core.EBusController   ] - Send 03
12:56:35.067 [TRACE] [de.csdev.ebus.core.EBusController   ] - Send 0D
12:56:35.069 [TRACE] [de.csdev.ebus.core.EBusController   ] - Send 16
12:56:35.071 [TRACE] [de.csdev.ebus.core.EBusController   ] - Send 00
12:56:35.074 [TRACE] [de.csdev.ebus.core.EBusController   ] - Send C9
12:56:35.095 [TRACE] [de.csdev.ebus.core.EBusController   ] - Waiting for slave answer ...
12:56:35.125 [TRACE] [de.csdev.ebus.core.EBusController   ] - Slave answer received ...
12:56:35.127 [TRACE] [de.csdev.ebus.core.EBusController   ] - Send Master ACK to Slave ...
12:56:35.135 [TRACE] [de.csdev.ebus.core.EBusController   ] - Send SYN to bus ...
12:56:35.152 [DEBUG] [de.csdev.ebus.core.EBusController   ] - Succesful send: FF 08 B5 09 03 0D 16 00 C9 00 03 41 07 55 8C 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
12:56:35.165 [INFO ] [nding.ebus.handler.EBusBridgeHandler] - Received telegram from address FF to 08 with command boiler.temp_outlet
12:56:35.169 [INFO ] [hab.binding.ebus.handler.EBusHandler] - Handle received command by thing Vaillant BAI00 (08) with id ebus:bai:bdeee849:08 ...
12:56:35.171 [DEBUG] [hab.binding.ebus.handler.EBusHandler] - Key temp_outlet with value null

Second problem is this error showing from time to time.

13:24:41.399 [INFO ] [hab.binding.ebus.handler.EBusHandler] - Poll command "ebus:bai:bdeee849:08:bai_boiler_temp-d-dhw#temp-d-dhw" with "FF 08 B5 09 03 0D EA 03 87" ...
13:24:41.448 [DEBUG] [de.csdev.ebus.core.EBusController   ] - Send: FF 08 B5 09 03 0D EA 03 87 @ 0. attempt
13:24:41.450 [TRACE] [de.csdev.ebus.core.EBusController   ] - Send FF
13:24:41.459 [TRACE] [de.csdev.ebus.core.EBusController   ] - Send 08
13:24:41.461 [TRACE] [de.csdev.ebus.core.EBusController   ] - Send B5
13:24:41.462 [TRACE] [de.csdev.ebus.core.EBusController   ] - Send 09
13:24:41.464 [TRACE] [de.csdev.ebus.core.EBusController   ] - Send 03
13:24:41.466 [TRACE] [de.csdev.ebus.core.EBusController   ] - Send 0D
13:24:41.467 [TRACE] [de.csdev.ebus.core.EBusController   ] - Send EA
13:24:41.469 [TRACE] [de.csdev.ebus.core.EBusController   ] - Send 03
13:24:41.471 [TRACE] [de.csdev.ebus.core.EBusController   ] - Send 87
13:24:41.497 [TRACE] [de.csdev.ebus.core.EBusController   ] - Waiting for slave answer ...
13:24:41.517 [TRACE] [de.csdev.ebus.core.EBusController   ] - Slave answer received ...
13:24:41.518 [TRACE] [de.csdev.ebus.core.EBusController   ] - Send Master ACK to Slave ...
13:24:41.521 [TRACE] [de.csdev.ebus.core.EBusController   ] - Send SYN to bus ...
13:24:41.528 [DEBUG] [de.csdev.ebus.core.EBusController   ] - Succesful send: FF 08 B5 09 03 0D EA 03 87 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
13:24:41.535 [ERROR] [e.csdev.ebus.core.EBusControllerBase] - Error while firing onTelegramReceived events!
java.lang.ArrayIndexOutOfBoundsException
        at java.lang.System.arraycopy(Native Method)[:1.8.0_121]
        at de.csdev.ebus.command.EBusCommandUtils.decodeValueList(EBusCommandUtils.java:369)[219:org.openhab.binding.ebus:2.2.0.201711201929]
        at de.csdev.ebus.command.EBusCommandUtils.decodeTelegram(EBusCommandUtils.java:422)[219:org.openhab.binding.ebus:2.2.0.201711201929]
        at de.csdev.ebus.service.parser.EBusParserService.onTelegramReceived(EBusParserService.java:94)[219:org.openhab.binding.ebus:2.2.0.201711201929]
        at de.csdev.ebus.core.EBusControllerBase$2.run(EBusControllerBase.java:101)[219:org.openhab.binding.ebus:2.2.0.201711201929]
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)[:1.8.0_121]
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)[:1.8.0_121]
        at java.lang.Thread.run(Thread.java:745)[:1.8.0_121]
13:24:42.365 [INFO ] [hab.binding.ebus.handler.EBusHandler] - Poll command "ebus:bai:bdeee849:08:bai_boiler_state-pump-ext#state-pump-ext" with "FF 08 B5 09 03 0D 3F 00 2F" ...

Please help, I don’t know where to start. Thank you!

The bus is a shared medium, so if another device sends a byte while the binding is sending it causes wrong bytes. But this is not unusual, this is the reason why this is only available on log level debug.

Yes, definitely a bug. I will fix this with the next release.

Thank you for quick response. I will reply with 3 more questions :slight_smile:
Currently there is 20-30 parameters for polling in 20 sec time slots. Beside boiler and room controller there is no other devices. Is it too frequent?

My boiler is occasionally sending command B5 12 to address 64

14:35:26.817 [DEBUG] [nding.ebus.handler.EBusBridgeHandler] - eBUS telegram error; No response from slave! AA [ERROR: NO_SLAVE_RESPONSE, DATA: 03 64 B5 12 02 02 FE 98]

It is sending internal pump status to external pump and that command doesn’t need slave response, ACK only.
I tried to make custom configuration to solve those telegrams, but binding is seeking for slave response (data?). Is it possible to configure binding to send slave ACK only?
This is my custom .json:

{
    "id": "custom-pump",
    "vendor": "Vaillant",
    "label": "Vaillant internal pump",
    "description": "Burber unit to pump (status)",

    "authors":      ["Author"],    

    "commands":
    [
        {
            "label": "Burner to Pump",
            "id": "internal.pump",
            "command": "B5 12",

            "get": {
                    "master": [
                        {"name": "pump_enabled", "type": "uchar", "label": "Pump enabled", 
                        "mapping": {"2":"enabled", "3":"disabled"}},
						{"name": "pump_mode", "type": "uchar", "label": "Pump mode", 
                        "mapping": {"0":"off", "100":"DHW", "254":"CH"}}
                    ]                   
            }
        }		
    ]
}

I can add a thing, but there is no telegram handling. There is “there is no slave response” error.

ebus-wiki.org is down last several days. Is there another source of information about aplication layer of protocol? I would like to contribute and make a configuration file for Vaillant E-Relax controller.

Hi mikulaos

Using archive.org service you can get the last visible version,
for exemple:
ebus:serviceb510 [eBus WIKI]
ebus:serviceb509 [eBus WIKI]

Hello.

Sorry, but I’m new in OH2 and Bindings.
I have OH2, with ebus2.0 Binding on a Vaillant VR630 Heating-System.
When I added the ebus-Things in simple Mode there are no values in the items.
The Log shows me a lot of unhandled telegrams.
What can I do, that I get the values in OH?

2018-01-04 18:19:41.546 [INFO ] [nding.ebus.handler.EBusBridgeHandler] - Received telegram from address 10 to 26 with command boiler.control.datetime

2018-01-04 18:19:41.547 [INFO ] [nding.ebus.handler.EBusBridgeHandler] - No handler has accepted the command boiler.control.datetime from 10 to 26 …

2018-01-04 18:19:41.912 [INFO ] [nding.ebus.handler.EBusBridgeHandler] - Received telegram from address 10 to 26 with command boiler.temp_d_cylinder

2018-01-04 18:19:41.914 [INFO ] [nding.ebus.handler.EBusBridgeHandler] - No handler has accepted the command boiler.temp_d_cylinder from 10 to 26 …

2018-01-04 18:19:43.529 [INFO ] [nding.ebus.handler.EBusBridgeHandler] - Received telegram from address 10 to 08 with command boiler.control.getopdata

2018-01-04 18:19:43.532 [INFO ] [nding.ebus.handler.EBusBridgeHandler] - No handler has accepted the command boiler.control.getopdata from 10 to 08 …

2018-01-04 18:19:52.026 [INFO ] [nding.ebus.handler.EBusBridgeHandler] - Received telegram from address 10 to 26 with command boiler.temp_d_cylinder

2018-01-04 18:19:52.028 [INFO ] [nding.ebus.handler.EBusBridgeHandler] - No handler has accepted the command boiler.temp_d_cylinder from 10 to 26 …

2018-01-04 18:19:53.579 [INFO ] [nding.ebus.handler.EBusBridgeHandler] - Received telegram from address 10 to 08 with command boiler.control.getopdata

2018-01-04 18:19:53.583 [INFO ] [nding.ebus.handler.EBusBridgeHandler] - No handler has accepted the command boiler.control.getopdata from 10 to 08 …

Now, I tried to poll the channels. That works for the most of values. I’ll monitoring the results and try out.

Hello @Roman_E,

This a not really a problem, the ebus parser was able to resolve a telegram but there was no openhab ebus thing registered to use this result. This is not a really a INFO message, more a TRACE message.

Hallo zusammen,

ich habe eine kurze Frage zu meiner Vaillant VWL Wärmepumpe. Ich habe mit dem Binding folgende Geräte erkannt:

MA | SA | Identifier     | Device         | Manufacture               | ID | Firmware   | Hardware   | Last Activity       
---+----+----------------+----------------+----------------------+----+------------+------------+---------------------
FF | 04 |                | <interface>    | eBUS Library              |    | null       | null       | ---                 
   | 50 | 45 48 50 30 30 | ---            | Joh. Vaillant GmbH & Co.  | B5 | 4.19       | 72.01      | Mon Jan 08 21:51:00 CET 2018
   | 23 | 45 48 50 30 30 | ---            | Joh. Vaillant GmbH & Co.  | B5 | 4.19       | 72.01      | Mon Jan 08 21:50:38 CET 2018
10 | 15 | 55 49 48 30 30 | ---            | Joh. Vaillant GmbH & Co.  | B5 | 3.74       | 69.01      | Mon Jan 08 21:51:05 CET 2018
70 | 75 | 52 43 20 43 20 | vaillant_rcc   | Joh. Vaillant GmbH & Co.  | B5 | 5.07       | 62.01      | Mon Jan 08 21:51:05 CET 2018
   | 25 | 45 48 50 30 30 | ---            | Joh. Vaillant GmbH & Co.  | B5 | 4.19       | 72.01      | Mon Jan 08 21:51:03 CET 2018
03 | 08 | 45 48 50 30 30 | ---            | Joh. Vaillant GmbH & Co.  | B5 | 4.19       | 72.01      | Mon Jan 08 21:51:05 CET 2018
   | 0A | 50 4D 57 30 30 | ---            | Joh. Vaillant GmbH & Co.  | B5 | 1.17       | 44.02      | Mon Jan 08 21:50:53 CET 2018
   | E0 | 4F 4D 55 30 30 | ---            | Joh. Vaillant GmbH & Co.  | B5 | 1.18       | 52.02      | Mon Jan 08 21:51:05 CET 2018
----------------------------------------------------------------------------------------------------------------------
MA = Master Address / SA = Slave Address / ID = Manufacture ID

Über die Software-Versionen konnte ich die Geräte zuordnen.

OMU1 	= 	Außeneinheit		Address: E0
VR90 	= 	VR90 Remote		    Address: 75
VPM-W	=	FriWa			    Address: 0A
UI000	=	UserInterface		Address: 15
EHP00	= 	i/o-Karte			Address: 50, 23, 25, 08

Nur taucht in der Liste oben aber öfters ein Gerät mit der Software-Version 4.19 auf.

Kann es sein dass die Vaillant i/o-Karte unter mehreren Adressen ansprechbar ist?

Noch eine Frage,

kann ich vorhandene “Things” aktualisieren, nachdem ich die JSON-Config geändert habe oder muss ich diese jedes mal neu Konfigurieren?

Hi, what kind of Heatpipe is your VWL? Geotherm VWL 61/3 or greater?

Hi,
It‘s a VWL 81/3

Hello @csowada ,

thank you, for your information.
Is there a standard-thing, what i can use for show the value or a way to build a thing ?

You could try to add a VRC430 thing with source address 0x26, it looks like that some commands are compatible with vrc430. But I will change the log level for this information to debug on release.

I know this problem, but I have not found a good solution to refresh the things. I thing in your case the best is to recreate the thing. Sorry

Yes, this is not unusual. I have the same here with my Wolf unit.

Hi! to everyone here in this great thread.
I’m tried to get this binding running with my configuration:

Vaillant felxoTHERM exclusive  / VWF 117/4 
multiMATIC 700 / VRC700/1
Internetkommunikationsmodul VR900

openhab> smarthome:ebus  devices
MA | SA | Identifier     | Device         | Manufacture               | ID | Firmware   | Hardware   | Last Activity
---+----+----------------+----------------+----------------------+----+------------+------------+---------------------
FF | 04 |                | <interface>    | eBUS Library              |    | null       | null       | ---
10 | 15 | 37 30 30 30 30 | ---            | Joh. Vaillant GmbH & Co.  | B5 | 1.1        | 21.03      | Thu Jan 11 17:39:21 CET 2018
00 | 05 |                | ---            | null                      |    | null       | null       | Thu Jan 11 17:24:10 CET 2018
01 | 06 |                | ---            | null                      |    | null       | null       | Thu Jan 11 17:38:20 CET 2018
   | E1 |                | ---            | null                      |    | null       | null       | Thu Jan 11 17:30:23 CET 2018
   | E0 |                | ---            | null                      |    | null       | null       | Thu Jan 11 17:38:31 CET 2018
----------------------------------------------------------------------------------------------------------------------

I use the esera ebus ethernet interface, with the recommended settings: 2400/8/n/1, no flow control, serial data packing conditions: timer:0 size:0 char: 00

currently with my first steps i only check the broadcasts and don’t poll any values.
i can read the date/time and the outside temperature without any problems:

2018-01-13 20:01:15.987 [INFO ] [nding.ebus.handler.EBusBridgeHandler] - Received telegram from address 10 to FE with command controller.bc.datetime
2018-01-13 20:01:15.994 [INFO ] [hab.binding.ebus.handler.EBusHandler] - Handle received command by thing Vaillant VRC 430(f)/470(f) with id ebus:vrc430:a916041f ...
2018-01-13 20:01:16.031 [vent.ItemStateChangedEvent] - ebus_vrc430_a916041f_vrc430_controller_bc_datetime_datetime changed from 2018-01-13T19:59:16.528+0100 to 2018-01-13T20:01:16.986+0100

2018-01-13 20:27:24.973 [INFO ] [nding.ebus.handler.EBusBridgeHandler] - Received telegram from address 10 to FE with command controller.bc.temp_outside
2018-01-13 20:27:24.978 [INFO ] [hab.binding.ebus.handler.EBusHandler] - Handle received command by thing Vaillant VRC 430(f)/470(f) with id ebus:vrc430:a916041f ...
2018-01-13 20:27:25.007 [vent.ItemStateChangedEvent] - ebus_vrc430_a916041f_vrc430_controller_bc_temp_outside_temp_outside changed from 2.5625 to 2.75

but i’m getting a lot of errors all the time (failed ratio: 92%; unresolved ratio: 78%)

2018-01-13 19:59:25.323 [DEBUG] [nding.ebus.handler.EBusBridgeHandler] - eBUS telegram error; Received SYN byte while receiving telegram! [ERROR: INVALID_SYN, DATA: 10 76 B5 11 01 01 16 00 AA]
2018-01-13 19:59:25.868 [DEBUG] [nding.ebus.handler.EBusBridgeHandler] - eBUS telegram error; Received SYN byte while receiving telegram! [ERROR: INVALID_SYN, DATA: 10 08 B5 10 09 00 00 38 FF FF FF 06 00 00 19 00 AA]
2018-01-13 19:59:35.065 [DEBUG] [nding.ebus.handler.EBusBridgeHandler] - eBUS telegram error; Received SYN byte while receiving telegram! [ERROR: INVALID_SYN, DATA: 10 08 B5 11 01 01 89 00 AA]
2018-01-13 19:59:35.603 [DEBUG] [nding.ebus.handler.EBusBridgeHandler] - eBUS telegram error; Received SYN byte while receiving telegram! [ERROR: INVALID_SYN, DATA: 10 76 B5 12 03 0F 00 01 FC 00 AA]
2018-01-13 19:59:36.149 [DEBUG] [nding.ebus.handler.EBusBridgeHandler] - eBUS telegram error; Received SYN byte while receiving telegram! [ERROR: INVALID_SYN, DATA: 10 76 B5 10 09 00 00 00 FF FF FF 01 00 00 85 00 AA]
2018-01-13 19:59:45.388 [DEBUG] [nding.ebus.handler.EBusBridgeHandler] - eBUS telegram error; Received SYN byte while receiving telegram! [ERROR: INVALID_SYN, DATA: 10 76 B5 11 01 01 16 00 AA]
2018-01-13 19:59:45.933 [DEBUG] [nding.ebus.handler.EBusBridgeHandler] - eBUS telegram error; Received SYN byte while receiving telegram! [ERROR: INVALID_SYN, DATA: 10 08 B5 10 09 00 00 38 FF FF FF 06 00 00 19 00 AA]

now i’m struggeling since days to clean this errors maybe someone could help. :frowning:

Hello!
Configuration file for VRC 700 will be available in couple days.
You can check for progress here. ([eBUS 2.0] Configuration support/contribution)

great to know there are others with a vrc700!
i will spend some time in learing about creation of jsons files and telegram analysis.
hope to be able to help soon.
if you have anything to test or double check - i will give my best.

Did anyone tried to implement Wolf CWL300/400. I have a running version with ebusd.
How simple is it to move this working version from ebusd to this ebus binding (ebusd config → binding config)?