[eBUS 2.0] New binding - Release Candidate 7b

A new Alpha version is available. It brings many smaller changes.

  • new/updated configuration files
  • many smaller fixes
  • Console commands
  • Update handling for things if configuration files are changed
  • New data type version, new configuration property reverseByteOrder.
  • etc …

Console

For debugging purpose I’ve added three console commands.

Lists all eBUS nodes and bridges

smarthome:ebus list

Sends a raw telegram as hex string via a bridge

smarthome:ebus send <bridgeUID> "XX XX XX"

Resolves a raw telegram an returns the result

smarthome:ebus resolve <bridgeUID> "XX XX XX"
1 Like

Hi @csowada

Could you please take a look why i don’t get any reading :
my log

Poll command “ebus:VR68:home:VR68_vr68_temp-SP1#runtime” with "FF EC B5 09 02 00 80 2E <

custom file :


{
        "label": "<VR 68> SP1 temperature (°C)",
        "id":      "vr68.temp_SP1",
        "command": "B5 09",

        "get": {
                "master": [
                        {"type": "data2c", "default": "0D 00 00"}
                ],
                "slave": [
                          {"name": "runtime", "type": "data2c", "label": "SP1", "format":"%.2f °C"}
                ]

        }
    },

Hello @Kristo,

sorry but I need much more details. Could you please set the logging to debug and restart openhab and send me the log from start until your polling command +10 seconds. And you configuration file is not complete, could also add the complete file.

Another question, the binding is working fine with the build-in configuration ?

You can send the file via PM or email to
oh (-@-) cs-dev . de

Set logging

log:set DEBUG org.openhab.binding.ebus
log:set DEBUG de.csdev.ebus

to reset to normal use

log:set INFO org.openhab.binding.ebus
log:set INFO de.csdev.ebus

I have seen that you master type is wrong. It should be static instead of data2c.

@csowada
Now is working with static without issues, Thanks

Bulid in configuration is working ok i need to add all channels to review more

I will try to prepare all funcitons for VR68 and then we will see if any issues

1 Like

@csowada

Could you please explain how to use SET function i do not see any example,

  {
          "label": "Kick Function",
          "id":      "KickF",
          "command": "B5 09",
  
          "set": {
                  "master": [
                          {"???????", "default": "0E 32 00"}
                  ]
          },
           
          "get": {
                  "master": [
                          {"type": "static", "default": "0D 32 00"}
                  ],
                  "slave": [
                            {"name": "KickF", "type": "bit", "label": "Kick Function"}
                  ]
          }
  },

@Kristo

You can see it in the BAI file, in this case I use the optional template block to not repeat the value block. But you can work without it.

https://github.com/csowada/ebus/blob/master/de.csdev.ebus/src/main/resources/commands/vaillant-bai00-configuration.json#L30

1 Like

HIi @csowada,

Small progress on my site with testing.
few questions/ notes from testing:
1)when i’m using items like in Openhab 1.x how i can call to make pooling

{channel="ebus:bai:home:bai_boiler_temp-cylinder#temp-cylinder"}
  1. I detected some very specific issue with formating of data for one data
  {
        "label": "SP1 temperature",
        "id":      "SP1",
        "command": "B5 09",

        "get": {
                "master": [
                        {"type": "static", "default": "0D 00 00"}
                ],
                "slave": [
                          {"name": "SP1", "type": "data2c", "label": "SP1", "format": "%.1f°C"}
                ]

        }
  },

%.1f°C is not giving results like 21,1°C but 21,245 and no units notificaiton. This is only issue with one temperature SP1 from VR68
Same formula in SP2 is giving proper value

  1. With custom file “automatic inbox detection is not working”

You can only set this in paper ui at the moment. If you edit a thing you see some edit icons on some value. You can set the polling there. All values of a group will be refreshed on polling. So only one polling per group is required.

I thing this is a standard behavior of openhab 2.x. It looks like the formatter is only for paper ui and not for basic ui.

I’m sure that the the identification byte array is wrong. You can now check this with the new console command smarthome:ebus devices <bridgeId> . It should show you all devices with the device id.

console like

 smarthome:ebus devices ebus:bridge:home

is not working
same with

smarthome:ebus devices ebus bridge home

Do you work with alpha 10? Can you see the command if you enter help ? Is smarthome:ebus list working?
Maybe the syntax is smarthome ebus ... if you not use the Karaf console. This happend here in my development environment.

Ups, sorry. It is not included in Alpha 10. This is for the next release.

Yes Alpha 10

openhab> smarthome:ebus list
Thing UID                                | Label                                    | Type
-----------------------------------------+------------------------------------------+-----------
ebus:bridge:home                         | eBUS Bridge                              | bridge
ebus:VR68:home                           | Vaillant VR 68                           | node
ebus::vrc430_15                          | Vaillant VRC 470 15                      | node
ebus:bai:home   

I started tests with Alpha 10 just recently and it seems it fixed (at least partially) my problem with own parsers.
Why I say partially because e.g. heating hours are read but time or system pressure is not (and I don’t know if it’s formatting issue or binding issue). Since csowada checked it at home (without the real device) and it worked this suggests format of parsers to be correct but I don’t know.

second question - how to find 5 magic bytes for VR68/4 ? from ebusd it seems address if 50 (I guess slave, then master should be 45 following the ‘difference pattern’). I want to add parser for it and see whether that would work and then collect debug and send all together to understand what’s wrong with my parsers

@witek_1308,

I get it form @csowada but looking NOK (not working automatic discovery) but paraser is working properly

Unfortunatelly you are not able to check it as console command is not implemented in Alpha10.

@Kristo do I get properly that this magic is for autodiscovery only, in other words if I know addresses and enter them manually, I can skip these bytes in the json file?

Normally you should see lines like below in your log. deviceId is the searched identification.

2017-09-28 12:59:45.192 [INFO ] [ervice.device.EBusDeviceTableService] - DATA TABLE UPDATE EBusDevice [masterAddress=0x70, slaveAddress=0x75, lastActivity=1506596379432, manufacturer=-75(null), deviceId=56 38 31 30 30, softwareVersion=null, hardwareVersion=null]

Yes, if you know which device uses which target address. The discovery can do this automatically by the identification.

If you have a complete telegram from any log or your own device you can use the command line to test you custom parser without sending it. It’s a small tool to analyze telegrams.

smarthome:ebus resolve <bridgeUID> "XX XX XX"

can you help me to start with VR61 parsers? I tried to get Heating Curve 2 from it (it should be there as I have 2 circuits and it’s visible via VRC) but getting 0.0

I simply copied curve parser from HC1 prepared by @csowada for VRC, so should be good. Address I used is 50 for slave (and so far it was a rule that master=slave -5 so I took 50/45). I also took command 0D 15 00 or 0E respectively. Polling works but don’t get results into my items


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

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

        "commands":
        [
                   {
            "label":    "HC2 Heating curve",
            "id":       "heating.temp_hcurve2",
            "command":  "B5 09",

            "template": [
                {"name": "temp_hcurve", "type": "uint", "label": "HC2 Heating curve", "factor": 0.05, "f
ormat":"%.1f"}
            ],

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

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

@witek_1308

try to put some ID not empty it’s works in my file

"identification": [],