[eBUS 2.0] New binding - Release Candidate 7b

You can’t modify the build-in configurations, but you can create a complete copy with a different id and name. Auto discovery etc. works the same way as the build-in command. Later on, I can cherry-pick the changes that are new to the binding :slight_smile: .
Do you have a registered a device with the slave address 15 (10 is the master address) with your configuration Test Vaillant VRC 430(f)/470(f). You should also change the label or you could mix-up it with the build-in version.

If you add the identification block, auto discovery should also show your custom configuration.

Here an example

{
    "id":           "custom",
    "vendor":       "Vaillant",
    "label":        "Vaillant Custom VRC430/470(f)",
    "description":  "Vaillant Custom VRC430/470(f)",

    "authors":      [
                    "Christian Sowada, opensource@cs-dev.de",
                    "Christophe P @ openhab community"
                    ],

    "identification": [
                    "34 33 30 30 30",
                    "34 37 30 30 30",
                    "46 34 37 30 30",
                    "46 34 33 30 30"
                    ],

    "commands":
    [
        {
            "label":    "Outside temperature",
            "id":       "controller.broadcast.temp_outside",
            "command":  "B5 16",
    
            "broadcast": {
                "master": [
                    {"type": "static", "default": "01"},
                    {"name":"temp_outside", "type": "data2b", "label": "Outside Temperature", "min": -50, "max": 50, "format":"%.1f°C"}
                ]
            }
        },
        
        {
            "label":    "Outside temperature",
            "id":       "controller.broadcast.datetime",
            "command":  "B5 16",
    
            "broadcast": {
                "master": [
                    {"type": "static", "default": "00"},
                    {"name": "datetime", "type":"datetime"}
                ]
            }
        }
    ]
}

Ok, with your help now I think I get it, so I made a custom version of VRC json file, and the additionnal definition are included.

Outside temperature broadcast messages are properly interpretated:

2017-11-07 17:29:42.840 [INFO ] [nding.ebus.handler.EBusBridgeHandler] - Received telegram from address 10 to FE with command controller.broadcast.temp_outside
2017-11-07 17:29:42.844 [INFO ] [hab.binding.ebus.handler.EBusHandler] - Handle received command by thing Vaillant Custom VRC430/470(f) with id ebus:custom:c5c0e30e ...
2017-11-07 17:29:42.848 [DEBUG] [hab.binding.ebus.handler.EBusHandler] - Key temp_outside with value 7
2017-11-07 17:29:42.866 [ItemStateChangedEvent     ] - ebus_custom_c5c0e30e_custom_controller_broadcast_temp_outside_temp_outside changed from NULL to 7

Datetime is working too:

2017-11-07 17:30:22.441 [INFO ] [nding.ebus.handler.EBusBridgeHandler] - Received telegram from address 10 to FE with command controller.broadcast.datetime
2017-11-07 17:30:22.444 [INFO ] [hab.binding.ebus.handler.EBusHandler] - Handle received command by thing Vaillant Custom VRC430/470(f) with id ebus:custom:c5c0e30e ...
2017-11-07 17:30:22.448 [DEBUG] [hab.binding.ebus.handler.EBusHandler] - Key datetime with value 07.11.2017 17:30:25
2017-11-07 17:30:22.473 [ItemStateChangedEvent     ] - ebus_custom_c5c0e30e_custom_controller_broadcast_datetime_datetime changed from NULL to 2017-11-07T17:30:25.440+0100

The full json file is now:

{
	"id":           "custom",
    "vendor":       "Vaillant",
    "label":        "Vaillant Custom VRC430/470(f)",
    "description":  "Vaillant Custom VRC430/470(f)",

    "authors":      [
                    "Christian Sowada, opensource@cs-dev.de",
                    "Christophe P @ openhab community"
                    ],

    "identification": [
                    "34 33 30 30 30",
                    "34 37 30 30 30",
                    "46 34 37 30 30",
                    "46 34 33 30 30"
                    ],
    
    "commands":
    [
    
        {
            "label":    "Broadcast Outside temperature",
            "id":       "controller.broadcast.temp_outside",
            "command":  "B5 16",
    
            "broadcast": {
                "master": [
                    {"type": "static", "default": "01"},
                    {"name":"temp_outside", "type": "data2b", "label": "Outside Temperature", "min": -50, "max": 50, "format":"%.1f°C"}
                ]
            }
        },
		
        {
            "label":    "Broadcast DateTime",
            "id":       "controller.broadcast.datetime",
            "command":  "B5 16",
    
            "broadcast": {
                "master": [
                    {"type": "static", "default": "00"},
                    {"name": "datetime", "type":"datetime"}
                ]
            }
        },
		
        {
            "label":    "Raw room temperature",
            "id":       "controller.temp_room",
            "command":  "B5 09",

            "get": {
                "master": [
                    {"type": "static", "default": "0D 00 00"}
                ],
                "slave": [
                    {"name": "temp_room", "type": "data2c", "label": "Room temperature", "min": -30, "max": 60, "format":"%.1f°C"},
                    {"name": "status", "type": "uchar", "label": "Room temperature status",
                        "mapping": {"0":"Ok", "85":"Circuit", "170":"Cutoff"}}
                ]
            }
        },

        {
            "label":    "Global system off",
            "id":       "heating.status_global_system_off",
            "command":  "B5 09",

            "get": {
                "master": [
                    {"type": "static", "default": "0D 01 00"}
                ],
                "slave": [
                    {"name": "status_global_system_off", "type": "uchar", "label": "Activation of operation mode system off", "min": 0, "max": 1, "format":"%d",
                        "mapping": {"0":"Off", "1":"On"}}
                ]
            }
        },

        {
            "label":    "Holiday Setpoint",
            "id":       "dhw.temp_d_holiday",
            "command":  "B5 09",

            "template": [
                {"name": "temp_d_holiday", "type": "data2c", "label": "Holiday setpoint", "format":"%.1f°C"}
            ],

            "get": {
                "master": [
                    {"type": "static", "default": "0D 22 00"}
                ],
                "slave": [
                    {"type": "template-block"}
                ]
            },

            "set": {
                "master": [
                    {"type": "static", "default": "0E 22 00"},
                    {"type": "template-block"}
                ]
            }
        },

        {
            "label":    "HC1 Day Setpoint",
            "id":       "heating.temp_d_day",
            "command":  "B5 09",

            "template": [
                {"name": "temp_d_day", "type": "data1c", "label": "HC1 Day setpoint", "min": 0, "max": 100, "format":"%.1f°C"}
            ],

            "get": {
                "master": [
                    {"type": "static", "default": "0D 27 00"}
                ],
                "slave": [
                    {"type": "template-block"}
                ]
            },

            "set": {
                "master": [
                    {"type": "static", "default": "0E 27 00"},
                    {"type": "template-block"}
                ]
            }
        },

        {
            "label":    "HC1 Operation mode",
            "id":       "heating.program_heating_circuit",
            "command":  "B5 09",

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

            "get": {
                "master": [
                    {"type": "static", "default": "0D 2F 00"}
                ],
                "slave": [
                    {"type": "template-block"}
                ]
            },

            "set": {
                "master": [
                    {"type": "static", "default": "0E 2F 00"},
                    {"type": "template-block"}
                ]
            }
        },

        {
            "label":    "HC1 Night Setpoint",
            "id":       "heating.temp_d_night",
            "command":  "B5 09",

            "template": [
                {"name": "temp_d_night", "type": "data1c", "label": "HC1 Night setpoint", "min": 0, "max": 100, "format":"%.1f°C"}
            ],

            "get": {
                "master": [
                    {"type": "static", "default": "0D 30 00"}
                ],
                "slave": [
                    {"type": "template-block"}
                ]
            },

            "set": {
                "master": [
                    {"type": "static", "default": "0E 30 00"},
                    {"type": "template-block"}
                ]
            }
        },

        {
            "label":    "HC1 Heating curve",
            "id":       "heating.temp_hcurve",
            "command":  "B5 09",

            "template": [
                {"name": "temp_hcurve", "type": "uint", "label": "HC1 Heating curve", "factor": 0.01, "format":"%.1f"}
            ],

            "get": {
                "master": [
                    {"type": "static", "default": "0D 31 00"}
                ],
                "slave": [
                    {"type": "template-block"}
                ]
            },

            "set": {
                "master": [
                    {"type": "static", "default": "0E 31 00"},
                    {"type": "template-block"}
                ]
            }
        },

        {
            "label":    "HC1 Manual Setpoint",
            "id":       "heating.temp_d_man",
            "command":  "B5 09",

            "template": [
                {"name": "temp_d_man", "type": "data1c", "label": "HC1 Day setpoint", "min": 0, "max": 100, "format":"%.1f°C"}
            ],

            "get": {
                "master": [
                    {"type": "static", "default": "0D 32 00"}
                ],
                "slave": [
                    {"type": "template-block"}
                ]
            },

            "set": {
                "master": [
                    {"type": "static", "default": "0E 32 00"},
                    {"type": "template-block"}
                ]
            }
        },

        {
            "label":    "HC1 Manual override setpoint",
            "id":       "heating.temp_d_room_override",
            "command":  "B5 09",

            "get": {
                "master": [
                    {"type": "static", "default": "0D 3C 00"}
                ],
                "slave": [
                    {"name": "temp_d_room_override", "type": "data1c", "label": "HC1 Manual override setpoint", "min": 0, "max": 100, "format":"%.1f°C"}
                ]
            }
        },

        {
            "label":    "DHW Operation mode",
            "id":       "dhw.program_dhw_circuit",
            "command":  "B5 09",

            "template": [
                {"name": "program", "type": "uchar", "label": "DHW Operation mode", "min": 0, "max": 2, "format":"%d",
                        "mapping": {"0":"Off", "1":"Manual", "2":"Auto"}}
            ],

            "get": {
                "master": [
                    {"type": "static", "default": "0D 42 00"}
                ],
                "slave": [
                    {"type": "template-block"}
                ]
            },

            "set": {
                "master": [
                    {"type": "static", "default": "0E 42 00"},
                    {"type": "template-block"}
                ]
            }
        },

        {
            "label":    "Domestic Hot Water Setpoint",
            "id":       "dhw.temp_d_dhw",
            "command":  "B5 09",

            "template": [
                {"name": "temp_d_dhw", "type": "data1c", "label": "DHW setpoint", "format":"%.1f°C"}
            ],

            "get": {
                "master": [
                    {"type": "static", "default": "0D 44 00"}
                ],
                "slave": [
                    {"type": "template-block"}
                ]
            },

            "set": {
                "master": [
                    {"type": "static", "default": "0E 44 00"},
                    {"type": "template-block"}
                ]
            }
        },

        {
            "label":    "Set HC1 Special operation mode",
            "id":       "heating.program_heating_circuit_special",
            "command":  "B5 09",

            "template": [
                {"name": "program", "type": "uchar", "label": "HC1 Operation mode", "format":"%d",
                    "mapping": {"0":"Nothing", "1":"Party", "2":"OneDayHome", "3":"OneDayNotHome", "4":"Holiday", "5":"Home", "6":"QuickVeto", "7":"OneTimeVentilation", "8":"WhisperMode", "9":"LoadDHW"}}
            ],

            "get": {
                "master": [
                    {"type": "static", "default": "0D 5D 00"}
                ],
                "slave": [
                    {"type": "template-block"}
                ]
            },

            "set": {
                "master": [
                    {"type": "static", "default": "0E 5D 00"},
                    {"type": "template-block"}
                ]
            }
        },
        
        {
            "label":    "Controller time",
            "id":       "controller.time",
            "command":  "B5 09",

            "template": [
                {"name": "time", "type": "time", "variant": "hex_short", "label": "Controller time"}
            ],
    
            "get": {
                "master": [
                    {"type": "static", "default": "0D 60 00"}
                ],
                "slave": [
                    {"type": "template-block"}
                ]
            },
            "set": {
                "master": [
                    {"type": "static", "default": "0E 60 00"},
                    {"type": "template-block"}
                ]
            }
        },
        
        {
            "label":    "Controller date",
            "id":       "controller.date",
            "command":  "B5 09",

            "template": [
                {"name": "date", "type": "date", "variant": "hex_short", "label": "Controller date"}
            ],
    
            "get": {
                "master": [
                    {"type": "static", "default": "0D 60 00"}
                ],
                "slave": [
                    {"type": "template-block"}
                ]
            },
            "set": {
                "master": [
                    {"type": "static", "default": "0E 60 00"},
                    {"type": "template-block"}
                ]
            }
        },
        
        {
            "label":    "Outside temperature",
            "id":       "controller.temp_outside",
            "command":  "B5 09",

            "get": {
                "master": [
                    {"type": "static", "default": "0D 62 00"}
                ],
                "slave": [
                    {"name": "temp_outside", "type": "data2c", "label": "Outside temperature", "min": -60, "max": 80, "format":"%.1f°C"},
                    {"name": "status", "type": "uchar", "label": "Outside temperature status",
                        "mapping": {"0":"Ok", "85":"Circuit", "170":"Cutoff"}}
                ]
            }
        },

        {
            "label":    "Displayed room temperature",
            "id":       "controller.temp_room_disp",
            "command":  "B5 09",

            "get": {
                "master": [
                    {"type": "static", "default": "0D 80 00"}
                ],
                "slave": [
                    {"name": "temp_room_disp", "type": "data2c", "label": "Room temperature", "min": -30, "max": 60, "format":"%.1f°C"}
                ]
            }
        },

        {
            "label":    "Domestic Hot Water actual desired temperature",
            "id":       "controller.temp_d_actual_dhw",
            "command":  "B5 09",

            "get": {
                "master": [
                    {"type": "static", "default": "0D 86 00"}
                ],
                "slave": [
                    {"name": "temp_d_actual_dhw", "type": "data1c", "label": "DHW actual desired temperature", "min": 0, "max": 100, "format":"%.1f°C"}
                ]
            }
        }
	
    ]
}

Next step: get the B5 10 and B5 11 messages !

1 Like

Hi @ all, sorry for the late answer. With my rpi with raspbian it works without the error. At the moment i work on a parser for the 620/3 controller

I have what seems to be a difference in the ebus messages between the last alpha and the version org.openhab.binding.ebus-1.9.0-FIX-001.jar I played with to collect a lot of messages in the csv, especially for the B9 10 messages.

In log of the Alpha, I get always this messages in the logs for this sequence (as well as many others):
2017-11-07 19:59:33.273 [DEBUG] [nding.ebus.handler.EBusBridgeHandler] - eBUS telegram error; Slave answered with 01 [ERROR: UNEXPECTED_RESPONSE, DATA: 10 08 B5 10 09 00 00 60 64 FF FF 00 00 00 49 01]

But on the csv file of the 1.9, the messages seems completly captured. I found the exact same content, marked as unkown:

2017-11-06 05:35:49;"02";"10";"08";B5 10;"09";00 00 60 64 FF FF 00 00 00;"49";"00";"01";01;"9A";<unknown>

That’s the sequence I try to implement in the vrc json file

could a fix not be implemented in the alpha 2.x ?

Yes, I can check this.
In general, a big compliment for your detailed error messages. It’s much easier for me. :+1:

1 Like

Hello all configuration editors,

I’ve started a new thread and Github repository to share your configuration files.
Unfortunately, in the old 1.x binding thread, many configurations have gone down because of the length of the thread. Therefore, I would like to provide all interested parties with a platform where we can share and complete new configurations.

With the next release, this repository can also be used directly in openHAB as an online source.

Here is the new topic [eBUS 2.0] Configuration support/contribution

and here is the git repository https://github.com/csowada/ebus-configuration

I hope I find some interested community members that can help to improve the binding.

I believe there’s a typo here, should be [eBUS 2.0] Configuration support/contribution :wink:

Sorry to ask again, but do you plan to implement csv report in the
2.x binding as well ? Because for me it’s the best tool to identify the unkown messages, then to improve json configuration files.
I use it to import messages in Excel and by using pivot table and filtering, I can have extensive list of messages in a very comprehensive way.

You are right, wrong link.

The new version has it’s own logger. So you can write all raw telegrams to a self defined output file.

Hi,

did you get time to have a look to telegram seen as error ? Not that I want to put pressure, it’s just that for now I’m stuck on that to continue to improve the vrc configuration.

Yes I started a modified version. But my new productive server is not stable and I have to fix this first. Sorry.
I hope I find time before weekend.

No worry, I was just a bit suprised that you was so quiet after creating the configuration repository :wink:

During this time I’m playing with RFLink integration through MQTT.

For those who need a Hardware Bridge, this thread at FHEM Board might be interesting:

FHEM EBUS Platine Sammelbestellung

@ChrisPe,

I build a special Pre-Alpha version that could maybe fix your reading issue. It also contains the latest enhancements like your csv logger. You can find the option under your ebus bridge thing. You find the logs in openhab logs directory.

Also the bundle url loader is within this version, but still untested.

This version is also NOT available via the market place!

Download:
https://drive.google.com/uc?export=download&id=1G8OjoYetT6IJCCZdE2wLXAAj1vsqyzOJ

Hi Christian, just went home late, so these are very quick check, but I can note:
Very (very) quick detection of eBus Standard device on 08, 15 and … 04 (no idea why, there should be no device here).

openhab> smarthome:ebus list
Thing UID                                | Label                                    | Type
-----------------------------------------+------------------------------------------+-----------
ebus:bridge:a592e2b1                     | eBUS Bridge                              | bridge
ebus:custom:a592e2b1:15                  | Vaillant Custom VRC430/470(f) (15)       | node
ebus:std:a592e2b1:15                     | eBUS Standard (15)                       | node
ebus:std:a592e2b1:08                     | eBUS Standard (08)                       | node
ebus:std:a592e2b1:04                     | eBUS Standard (04)                       | node

I still have the “Slave answered” error messages:

2017-11-16 00:25:40.937 [DEBUG] [nding.ebus.handler.EBusBridgeHandler] - eBUS telegram error; Slave answered with 01 [ERROR: UNEXPECTED_RESPONSE, DATA: 10 08 B5 10 09 00 00 00 64 FF FF 05 00 00 83 01]
2017-11-16 00:25:47.015 [DEBUG] [nding.ebus.handler.EBusBridgeHandler] - eBUS telegram error; Slave answered with 0A [ERROR: UNEXPECTED_RESPONSE, DATA: 10 08 B5 04 01 00 3D 0A]
2017-11-16 00:25:47.282 [DEBUG] [nding.ebus.handler.EBusBridgeHandler] - eBUS telegram error; Slave answered with 05 [ERROR: UNEXPECTED_RESPONSE, DATA: 10 08 B5 11 01 02 8A 05]
2017-11-16 00:25:50.883 [DEBUG] [nding.ebus.handler.EBusBridgeHandler] - eBUS telegram error; Slave answered with 01 [ERROR: UNEXPECTED_RESPONSE, DATA: 10 08 B5 10 09 00 00 00 64 FF FF 05 00 00 83 01]
2017-11-16 00:25:56.987 [DEBUG] [nding.ebus.handler.EBusBridgeHandler] - eBUS telegram error; Slave answered with 08 [ERROR: UNEXPECTED_RESPONSE, DATA: 10 08 B5 11 01 00 88 08]'''

I need to dig a bit in the csv file I activated. Found them in /srv/openhab2-logs/:
ebus-resolved.csv and ebus-unresolved.csv, that’s going to help :slight_smile:

Is there a way to set directly the polling period for all channel of a thing without going to edit all of them one by one ?

I think the difference to the 1.8 binding is, that you not have seen the error. The new binding shows more details. This telegrams are always wrong or only sometimes?
And the 04 device is the binding it self. As already said, the binding was not final.
Can you send me a larger log and the CSV files to get an overview of your setup? You can send it via PM or email at openhab (at) cs-dev (dot) de

I just sent you the log files by mail.

What is strange is that these telegram are marked as error in this Alpha, and seems to be the case for every of these telegram.
They are listed as unknown in the csv file on 1.9-FIX001.

I’m creating full log on the 1.9-FIX001 again (openhab.log history is not complete).
Just to be sure, how should I activate the appropriate log level ?

Hello @ChrisPe,

thank you for your log files. I have quickly checked your errors. And I can see that you have the same behavior in 1.x binding. But you can’t the the issue there. The 2.x binding is more detailed.

Here an example telegram I’ve checked, it looks like it is send every 10 seconds.

10 08 B5 10 09 00 00 56 64 FF FF 00 00 00 A8 00 01 01 9A 00

Half of the telegram is received correct, the rest is received invalid. You can see that you only receive some of the telegram in 1.x binding.

I would suggest to check the input of your adapter on a lower level. You could use a terminal program like hterm and use the symbol “AA” as new line delimiter. Then you can compare the received data and search for the telegram above. You can send me a log of this raw data if you want.

A new Alpha release is available, maybe the last Alpha before switch to a more code stable beta release.

With this release you can use the new online repository for configuration files. This allows us to update the configuration files without a new binding release.

Use this URL if you want to use the online version

https://raw.githubusercontent.com/csowada/ebus-configuration/master/index-configuration.json

Alpha 0.0.14 (2017-11-20)

Features:

  • add support to load complete configuration bundles via URL
  • add device scan function, rename inquire function
  • add CSV writer for resolved and unresolved telegrams
  • add metrics service to collect eBUS data

Bugfixes:

  • also use master addresses for device table
  • activate unused resolve failed events
  • delete unused projects from source
  • remove closed connection streams on close

Configurations:

  • add identification for Wolf MM
  • add outside temperature and datetime to Vaillant VRC 4307470

Alpha 0.0.14 (2017-11-20)

Features:

  • Update to eBUS library 0.0.14, github
  • Add advance CSV file logging to eBUS binding configuration
  • Add configuration bundle URL to eBUS binding configuration
  • Add polling per thing

Hi @csowada

Thanks. Version A.14 is working but:
there is error in log after “bai_boiler_temp-d-flow-ext”:

2017-11-21 10:43:08.865 [INFO ] [hab.binding.ebus.handler.EBusHandler] - Poll command "ebus:bai:ee4561f6:08:bai_boiler_temp-d-flow-ext#temp-d-flow-ext" with "FF 08 B5 09 03 0D 6E 04 4A" ...
2017-11-21 10:43:09.755 [ERROR] [e.csdev.ebus.core.EBusControllerBase] - Error while firing onTelegramReceived events!
java.lang.ArrayIndexOutOfBoundsException: null
     at java.lang.System.arraycopy(Native Method) ~[?:?]                                                                                                                                              
     at de.csdev.ebus.command.EBusCommandUtils.decodeValueList(EBusCommandUtils.java:369 [12:org.openhab.binding.ebus:2.2.0.201711201929]                                                          
     at de.csdev.ebus.command.EBusCommandUtils.decodeTelegram(EBusCommandUtils.java:422) [12:org.openhab.binding.ebus:2.2.0.201711201929]                                                             
     at de.csdev.ebus.service.parser.EBusParserService.onTelegramReceived(EBusParserService.java:94) [12:org.openhab.binding.ebus:2.2.0.201711201929]                                                 
     at de.csdev.ebus.core.EBusControllerBase$2.run(EBusControllerBase.java:101) [12:org.openhab.binding.ebus:2.2.0.201711201929]                                                                     
     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [?:?]                                                                                                         
     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [?:?]                                                                                                         
     at java.lang.Thread.run(Thread.java:748) [?:?]

and I have two requests/questions:

1, I’m missing “sdflame” from ebusd

2, Can you help me understand how to implement this from ebus1.x to ebus 2.0:

[
    {
    "comment":  "Vaillant - Operational Data from Room Controller to Burner Control Unit",
    "device":   "Vaillant",
    "id":       "set_custom_values",
    "class":    "protherm",
    "command":  "B5 10",
    "data":     "00 00 FF FF FF FF 00 FF 00",
    "dst":      "08",
    "debug":    1,

    "values": {
        "heating_water_target_temp": {"type": "data1c", "pos": 8, "label": "Lead water target temperature", "min": 0,"max": 100},
        "hot_water_target_temp": {"type": "data1c", "pos": 9, "label": "Service water target temperature", "min": 0,"max": 100},
        "turn_off_heating": {"type": "byte", "pos": 12, "label": "TURN OFF heating", "min": 0, "max": 5},
        "turn_off_hot_water": {"type": "bit", "pos": 12, "bit": 2, "label": "TURN OFF hot water"}
    }
}

]

I need to set Heating Water Target Temp

Just installed the .14 version, and it’s working pretty well, detection of every devices is fast, and the statistic on the ebus metrics are really useful (now I can see that my failed telegram rate is ~70% as discussed :wink: ).

However, waiting for some answer from esera support, which complete lack of answer is really despising me now, I start again to code unresolved messages, knowing that I need to ignore the missed ack from the boiler.

So I added some telegram definitions in the bai configuration file:

        {
            "label":    "Operational Data from Room Controller to Burner Control Unit",
            "id":       "boiler.control.setopdata",
            "command":  "B5 10",

            "broadcast": {
                "master": [
                    {"type": "static", "default": "00 00"},
					{"name": "lead_water_target_temp", "type": "data1c", "label": "Lead water target temperature", "min": 0, "max": 100, "format":"%.1f°C"},
					{"name": "srv_water_target_temp", "type": "data1c", "label": "Service water target temperature", "min": 0, "max": 100, "format":"%.1f°C"},
                    {"type": "static", "default": "FF FF"},
                    {"type": "byte", "children": [
						{"name": "turnoff_water_heating", "type": "bit", "label": "Turn off water heating"},
						{"type": "bit"},
						{"name": "turnoffservice_water_heating", "type": "bit", "label": "Turn off service water heating"},
						{"type": "bit"},
						{"type": "bit"},
						{"type": "bit"},
						{"name": "unknown", "type": "bit", "label": "unknown"},
						{"type": "bit"}
					]},
                    {"type": "static", "default": "00 00"}
				],
                "slave": [
                    {"type": "static", "default": "01"}
                ]
            }
        },

Which seems properly interpreted:

2017-11-25 00:48:31.128 [INFO ] [nding.ebus.handler.EBusBridgeHandler] - Received telegram from address 10 to 08 with command boiler.control.setopdata
2017-11-25 00:48:31.132 [INFO ] [hab.binding.ebus.handler.EBusHandler] - Handle received command by thing Vaillant Custom BAI00 with id ebus:custombai:73dcff5d ...
2017-11-25 00:48:31.135 [DEBUG] [hab.binding.ebus.handler.EBusHandler] - Key turnoffservice_water_heating with value true
2017-11-25 00:48:31.141 [DEBUG] [hab.binding.ebus.handler.EBusHandler] - Key srv_water_target_temp with value 50
2017-11-25 00:48:31.147 [DEBUG] [hab.binding.ebus.handler.EBusHandler] - Key lead_water_target_temp with value 40.5
2017-11-25 00:48:31.152 [DEBUG] [hab.binding.ebus.handler.EBusHandler] - Key turnoff_water_heating with value false
2017-11-25 00:48:31.157 [DEBUG] [hab.binding.ebus.handler.EBusHandler] - Key unknown with value false

Then the long possible answer:

        {
            "label":    "Operational Data of Burner Control Unit to Room Control Unit",
            "id":       "boiler.control.getopdata",
            "command":  "B5 11",

            "broadcast": {
                "master": [
                    {"type": "static", "default": "01"}
				],
                "slave": [
					{"name": "lead_water_temp", "type": "data1c", "label": "Lead water temperature", "min": 0, "max": 100, "format":"%.1f°C"},
					{"name": "lead_water_return_temp", "type": "data1c", "label": "Lead water return temperature", "min": 0, "max": 100, "format":"%.1f°C"},
                    {"name": "get_temp_outside", "type": "data2b", "label": "Outside Temperature", "min": -50, "max": 50, "format":"%.1f°C"},
					{"name": "srv_water_temp", "type": "data1c", "label": "Service water temperature", "min": 0, "max": 100, "format":"%.1f°C"},
					{"name": "srv_water_return_temp", "type": "data1c", "label": "Service water return temperature", "min": 0, "max": 100, "format":"%.1f°C"},
                    {"type": "byte", "children": [
						{"name": "lead_heating", "type": "bit", "label": "Lead water heating", "mapping": {"0":"Off", "1":"On"}},
						{"name": "servicewater_heating", "type": "bit", "label": "Service water heating", "mapping": {"0":"Off", "1":"On"}}
					]},
                    {"type": "static", "default": "00 FF"}
                ]
            }
        },

Seen as:

2017-11-25 00:52:33.696 [INFO ] [nding.ebus.handler.EBusBridgeHandler] - Received telegram from address 10 to 08 with command boiler.control.getopdata
2017-11-25 00:52:33.700 [INFO ] [hab.binding.ebus.handler.EBusHandler] - Handle received command by thing Vaillant Custom BAI00 with id ebus:custombai:73dcff5d ...
2017-11-25 00:52:33.703 [DEBUG] [hab.binding.ebus.handler.EBusHandler] - Key get_temp_outside with value 11.625
2017-11-25 00:52:33.710 [DEBUG] [hab.binding.ebus.handler.EBusHandler] - Key servicewater_heating with value false
2017-11-25 00:52:33.717 [DEBUG] [hab.binding.ebus.handler.EBusHandler] - Key lead_water_return_temp with value 33
2017-11-25 00:52:33.724 [DEBUG] [hab.binding.ebus.handler.EBusHandler] - Key lead_heating with value true
2017-11-25 00:52:33.730 [DEBUG] [hab.binding.ebus.handler.EBusHandler] - Key srv_water_temp with value 36
2017-11-25 00:52:33.738 [DEBUG] [hab.binding.ebus.handler.EBusHandler] - Key srv_water_return_temp with value 40
2017-11-25 00:52:33.743 [DEBUG] [hab.binding.ebus.handler.EBusHandler] - Key lead_water_temp with value 41

, a shorter version telegram:

        {
            "label":    "Short Operational Data of Burner Control Unit to Room Control Unit",
            "id":       "boiler.control.getshortopdata",
            "command":  "B5 11",

            "broadcast": {
                "master": [
                    {"type": "static", "default": "02"}
				],
                "slave": [
                    {"type": "static", "default": "03 3C 96 50"},
					{"name": "srv_target_water_temp", "type": "data1c", "label": "Service water target temperature", "min": 0, "max": 100, "format":"%.1f°C"}
                ]
            }
        },

Note that the sequence have been described as “03 3C 96 46” instead of the 03 3C 96 50 I can see on my telegrams on the ebus wiki here http://ebus-wiki.org/doku.php/ebus/serviceb511
.
Seen as:

2017-11-25 01:05:04.268 [INFO ] [nding.ebus.handler.EBusBridgeHandler] - Received telegram from address 10 to 08 with command boiler.control.getshortopdata
2017-11-25 01:05:04.271 [INFO ] [hab.binding.ebus.handler.EBusHandler] - Handle received command by thing Vaillant Custom BAI00 (08) with id ebus:custombai:80ca8c44:08 ...
2017-11-25 01:05:04.273 [DEBUG] [hab.binding.ebus.handler.EBusHandler] - Key srv_target_water_temp with value 45
2017-11-25 01:05:04.282 [ItemStateChangedEvent     ] - ebus_custombai_80ca8c44_08_custombai_boiler_control_getshortopdata_srv_target_water_temp changed from NULL to 45

And finally:

        {
            "label":    "Get DateTime",
            "id":       "boiler.control.getdatetime",
            "command":  "B5 04",
    
            "broadcast": {
                "master": [
                    {"type": "static", "default": "00"}
                ],
                "slave": [
                    {"name":"get_status", "type": "byte", "label":"status", "format":"%d",
                        "mapping": {"0":"NoReception", "01":"Reception", "02":"Synchronized", "03":"DataValid"}},
                    {"name": "get_datetime", "type":"datetime"},
                    {"name":"get_temp_outside", "type": "data2b", "label": "Outside Temperature", "min": -50, "max": 50, "format":"%.1f°C"}
                ]
            }
        },

Which seems properly interpreted as well, but the mapping result is not what I would like:

2017-11-25 00:16:59.583 [INFO ] [nding.ebus.handler.EBusBridgeHandler] - Received telegram from address 10 to 08 with command boiler.control.getdatetime
2017-11-25 00:16:59.586 [INFO ] [hab.binding.ebus.handler.EBusHandler] - Handle received command by thing Vaillant Custom BAI00 (08) with id ebus:custombai:80ca8c44:08 ...
2017-11-25 00:16:59.589 [DEBUG] [hab.binding.ebus.handler.EBusHandler] - Key get_temp_outside with value 11.875
2017-11-25 00:16:59.595 [DEBUG] [hab.binding.ebus.handler.EBusHandler] - Key get_status with value 3
2017-11-25 00:16:59.601 [DEBUG] [hab.binding.ebus.handler.EBusHandler] - Key get_datetime with value 25.11.2017 00:17:02

For the record, the “Unresolved telegrams ratio” seems to calculate the "“Resolved telegrams ratio” instead, I have 73 Resolved telegrams , 47 Unresolved telegrams and “Unresolved telegrams ratio” is displaying with 60.8%.

And regarding the modified VRC configuration, the label for the datetime broadcast have a copy paste issue, it should be related to the date :slight_smile:

1 Like