eBUS Binding 3.x

Have already a new problem with heatpump hours.

Ebusd reading: 19960 hours

Hex code reading:

hmu Hours = 3108b51a0405ff3240 / 0aff0827f84d0000000000

My .json attempt:

{
            "label":    "Betriebsstunden",
            "id":       "Hours",
            "command":  "B5 1A",

            "get": {
                "master": [
                    {"type": "static", "default": "05 FF 32 40"}
				],
                "slave": [
                    {"type": "byte"},
					{"type": "byte"},
					{"type": "byte"},
					{"name": "Hours", "type": "byte", "label": "Betriebsstunden", "min": 0, "max": 100000, "format":"%d h"},
					{"type": "byte"},
					{"type": "byte"},
					{"type": "byte"},
					{"type": "byte"},
                    {"type": "byte"},
                    {"type": "byte"}
				]
			}
		}

This results in 249 h instead of 19960 h and a am not able to figure out why? In ebusd the data type is “energy” but i don’t know what it should be in ebus. Thanks for your hints in advance.

You need a longer type like word instead of byte.

1 Like

The column says “datatype/template”. In the Vaillant config folder of John30’s Github, you can find _template.csv explaining what datatype “energy” is: UIN.

So Openhab datatype is “word” (which is two bytes long) AND you have to add the “low byte first” by adding the following:

“reverseByteOrder”: true

And as it is two bytes long, you can skip one of the “byte” entries at the end :wink:

1 Like

Works out, again a repetitive great support. Thank you very much , also @csowada . Recognize, that i am still at the very beginning of ebus learning. That’s all pretty tricky.

Here my final Vaillant hmu08_config.json for other users which might be interested (main author is @Chiuaua79):

{
    "id":           "HMU01",
    "vendor":       "Vaillant",
    "label":        "HMU Main Board",
    "description":  "Aktuelle Kompressor Daten",
    
    "authors":      ["Willi Konrath, willibald.konrath@t-online.de"],
    "identification": ["48 4D 55 30 30"],
    
    "commands":
    [
        {
            "label":    "Current Compressor Utilization",
            "id":       "CurrentCompressorUtil",
            "command":  "B5 1A",

            "get": {
                "master": [
                    {"type": "static", "default": "05 FF 32 25"}
                    ],
                "slave": [
                    {"type": "byte"},
                    {"type": "byte"},
					{"type": "byte"},
					{"name": "CurrentCompressorUtil", "type": "data1b", "label": "Kompressor Auslastung", "min": -150, "max": 150, "format":"%d %%"},
                    {"type": "byte"},
                    {"type": "byte"},
                    {"type": "byte"},
                    {"type": "byte"},
                    {"type": "byte"},
                    {"type": "byte"}					
                ]
			}
		},			
		
		{
            "label":    "Compressor Modulation",
            "id":       "CurrentCompressorMod",
            "command":  "B5 1A",

            "get": {
                "master": [
                    {"type": "static", "default": "05 15 32 25"}
                    ],
                "slave": [
                    {"type": "byte"},
                    {"type": "byte"},
					{"type": "byte"},
					{"name": "CurrentCompressorMod", "type": "data2c", "label": "Kompressor Modulation", "min": 0, "max": 100, "format":"%.1f %%"},
					{"type": "byte"},
                    {"type": "byte"},
                    {"type": "byte"},
                    {"type": "byte"},
                    {"type": "byte"}					
                ]
			}
		},			
		
		{
            "label":    "Energie Integral",
            "id":       "EnergyIntegral",
            "command":  "B5 1A",

            "get": {
                "master": [
                    {"type": "static", "default": "05 4D 32 21"}
                    ],
                "slave": [
                    {"type": "byte"},
                    {"type": "byte"},
					{"type": "byte"},
					{"name": "EnergyIntegral", "type": "data1b", "label": "Energie Integral", "min": -500, "max": 500, "format":"%d °min"},
                    {"type": "byte"},
                    {"type": "byte"},
                    {"type": "byte"},
                    {"type": "byte"},
                    {"type": "byte"},
                    {"type": "byte"}					
                ]
			}
		},			
		
		{
            "label":    "Compressor Hours",
            "id":       "CompressorHours",
            "command":  "B5 1A",

            "get": {
                "master": [
                    {"type": "static", "default": "05 68 34 00"}
                    ],
                "slave": [
                    {"type": "byte"},
                    {"type": "byte"},
					{"type": "byte"},
					{"name": "CompressorHours", "type": "word", "label": "Betriebsstunden Kompressor", "min": 0, "max": 100000, "format":"%d h"},
                    {"type": "byte"},
                    {"type": "byte"},
                    {"type": "byte"},
                    {"type": "byte"},
                    {"type": "byte"}					
                ]
			}
		},			
		
		{
            "label":    "Compressor Starts",
            "id":       "CompressorStarts",
            "command":  "B5 1A",

            "get": {
                "master": [
                    {"type": "static", "default": "05 A1 34 01"}
                    ],
                "slave": [
                    {"type": "byte"},
                    {"type": "byte"},
					{"type": "byte"},
					{"name": "CompressorStarts", "type": "word", "label": "Kompressor Starts", "min": 0, "max": 200000, "format":"%d"},
                    {"type": "byte"},
                    {"type": "byte"},
                    {"type": "byte"},
                    {"type": "byte"},
                    {"type": "byte"}					
                ]
			}
		},			
		
		{
            "label":    "Building Pump Hours",
            "id":       "BuildgPumpHours",
            "command":  "B5 1A",

            "get": {
                "master": [
                    {"type": "static", "default": "05 38 34 02"}
                    ],
                "slave": [
                    {"type": "byte"},
                    {"type": "byte"},
					{"type": "byte"},
					{"name": "BuildgPumpHours", "type": "word", "label": "Betriebsstunden GebÀudepumpe", "min": 0, "max": 200000, "format":"%d h"},
                    {"type": "byte"},
                    {"type": "byte"},
                    {"type": "byte"},
                    {"type": "byte"},
                    {"type": "byte"}					
                ]
			}
		},			
		
		{
            "label":    "Building Pump Starts",
            "id":       "BuildgPumpStarts",
            "command":  "B5 1A",

            "get": {
                "master": [
                    {"type": "static", "default": "05 9D 34 03"}
                    ],
                "slave": [
                    {"type": "byte"},
                    {"type": "byte"},
					{"type": "byte"},
					{"name": "BuildgPumpStarts", "type": "word", "label": "GebÀudepumpe Starts", "min": 0, "max": 200000, "format":"%d"},
                    {"type": "byte"},
                    {"type": "byte"},
                    {"type": "byte"},
                    {"type": "byte"},
                    {"type": "byte"}					
                ]
			}
		},			
		
		{
            "label":    "Hours Fan 1",
            "id":       "HoursFan1",
            "command":  "B5 1A",

            "get": {
                "master": [
                    {"type": "static", "default": "05 B1 34 51"}
                    ],
                "slave": [
                    {"type": "byte"},
                    {"type": "byte"},
					{"type": "byte"},
					{"name": "HoursFan1", "type": "word", "label": "Betriebsstunden LĂŒfter 1", "min": 0, "max": 200000, "format":"%d h"},
                    {"type": "byte"},
                    {"type": "byte"},
                    {"type": "byte"},
                    {"type": "byte"},
                    {"type": "byte"}					
                ]
			}
		},			
		
		{
            "label":    "Starts LĂŒfter 1",
            "id":       "StartsFan1",
            "command":  "B5 1A",

            "get": {
                "master": [
                    {"type": "static", "default": "05 03 34 52"}
                    ],
                "slave": [
                    {"type": "byte"},
                    {"type": "byte"},
					{"type": "byte"},
					{"name": "StartsFan1", "type": "word", "label": "Starts LĂŒfter 1", "min": 0, "max": 200000, "format":"%d"},
                    {"type": "byte"},
                    {"type": "byte"},
                    {"type": "byte"},
                    {"type": "byte"},
                    {"type": "byte"}					
                ]
			}
		},			
		
		{
            "label":    "Hours Fan 2",
            "id":       "HoursFan2",
            "command":  "B5 1A",

            "get": {
                "master": [
                    {"type": "static", "default": "05 C1 34 5E"}
                    ],
                "slave": [
                    {"type": "byte"},
                    {"type": "byte"},
					{"type": "byte"},
					{"name": "HoursFan2", "type": "word", "label": "Betriebsstunden LĂŒfter 2", "min": 0, "max": 200000, "format":"%d h"},
                    {"type": "byte"},
                    {"type": "byte"},
                    {"type": "byte"},
                    {"type": "byte"},
                    {"type": "byte"}					
                ]
			}
		},			
		
		{
            "label":    "Starts LĂŒfter 2",
            "id":       "StartsFan2",
            "command":  "B5 1A",

            "get": {
                "master": [
                    {"type": "static", "default": "05 01 34 5F"}
                    ],
                "slave": [
                    {"type": "byte"},
                    {"type": "byte"},
					{"type": "byte"},
					{"name": "StartsFan2", "type": "word", "label": "Starts LĂŒfter 2", "min": 0, "max": 200000, "format":"%d"},
                    {"type": "byte"},
                    {"type": "byte"},
                    {"type": "byte"},
                    {"type": "byte"},
                    {"type": "byte"}					
                ]
			}
		},			
		
		{
            "label":    "EEV Schritte",
            "id":       "EEVSteps",
            "command":  "B5 1A",

            "get": {
                "master": [
                    {"type": "static", "default": "05 02 34 0D"}
                    ],
                "slave": [
                    {"type": "byte"},
                    {"type": "byte"},
					{"type": "byte"},
					{"name": "EEVSteps", "type": "word", "label": "Schritte Expansionsventil", "min": 0, "max": 500000, "format":"%d"},
                    {"type": "byte"},
                    {"type": "byte"},
                    {"type": "byte"},
                    {"type": "byte"},
                    {"type": "byte"}					
                ]
			}
		},			
		
		{
            "label":    "Aktuelle Stromaufnahme",
            "id":       "CurrentConsumedPower",
            "command":  "B5 1A",

            "get": {
                "master": [
                    {"type": "static", "default": "05 FF 32 24"}
				],
                "slave": [
                    {"type": "byte"},
                    {"type": "byte"},
                    {"type": "byte"},
                    {"name": "CurrentConsumedPower", "type": "data1b", "label": "Aktuelle Stromaufname", "min": 0, "max": 150, "factor": 0.1, "format":"%d kW"},
                    {"type": "byte"},
                    {"type": "byte"},
                    {"type": "byte"},
                    {"type": "byte"},
                    {"type": "byte"},
                    {"type": "byte"}
				]
			}
        },

        {
            "label":    "Aktuelle Leistung aus der Luft",
            "id":       "CurrentYieldPower",
            "command":  "B5 1A",

            "get": {
                "master": [
                    {"type": "static", "default": "05 FF 32 23"}
				],
                "slave": [
                    {"type": "byte"},
                    {"type": "byte"},
                    {"type": "byte"},
					{"name": "CurrentYieldPower", "type": "data1b", "label": "Umweltertrag", "min": 0, "max": 150, "factor": 0.1, "format":"%d kW"},
					{"type": "byte"},
                    {"type": "byte"},
                    {"type": "byte"},
                    {"type": "byte"},
                    {"type": "byte"},
                    {"type": "byte"}
				]
			}
		},
		
		{
            "label":    "Heizwasser Durchflußrate",
            "id":       "WaterThroughput",
            "command":  "B5 14",

            "get": {
                "master": [
                    {"type": "static", "default": "05 2B 03 FF FF"}
				],
                "slave": [
                    {"type": "byte"},
					{"type": "byte"},
					{"name": "WaterThroughput", "type": "word", "label": "Heizwasser Durchflußrate", "min": 0, "max": 10000, "format":"%d l/h"}
				]
			}
		},
			
		{
            "label":    "Betriebsstunden",
            "id":       "Hours",
            "command":  "B5 1A",

            "get": {
                "master": [
                    {"type": "static", "default": "05 FF 32 40"}
				],
                "slave": [
                    {"type": "byte"},
					{"type": "byte"},
					{"type": "byte"},
					{"name": "Hours", "type": "word", "label": "Betriebsstunden", "min": 0, "max": 200000, "format":"%d h"},
					{"type": "byte"},
					{"type": "byte"},
					{"type": "byte"},
					{"type": "byte"},
                    {"type": "byte"}
				]
			}
		},

		{
            "label":    "Betriebsstunden Heizkreis",
            "id":       "HoursHc",
            "command":  "B5 1A",

            "get": {
                "master": [
                    {"type": "static", "default": "05 FF 32 41"}
				],
                "slave": [
                    {"type": "byte"},
					{"type": "byte"},
					{"type": "byte"},
					{"name": "HoursHc", "type": "word", "label": "Betriebsstunden Heizkreis", "min": 0, "max": 200000, "format":"%d h"},
					{"type": "byte"},
					{"type": "byte"},
					{"type": "byte"},
					{"type": "byte"},
                    {"type": "byte"}
				]
			}
		},
		
		{
            "label":    "Betriebsstunden Warmwasser",
            "id":       "HoursHwc",
            "command":  "B5 1A",

            "get": {
                "master": [
                    {"type": "static", "default": "05 FF 32 44"}
				],
                "slave": [
                    {"type": "byte"},
					{"type": "byte"},
					{"type": "byte"},
					{"name": "HoursHwc", "type": "word", "label": "Betriebsstunden Warmwasser", "min": 0, "max": 200000, "format":"%d h"},
					{"type": "byte"},
					{"type": "byte"},
					{"type": "byte"},
					{"type": "byte"},
                    {"type": "byte"}
				]
			}
		},
		
		{
            "label":    "SchaltvorgÀnge VUV Warmwasser",
            "id":       "VUVHwc",
            "command":  "B5 1A",

            "get": {
                "master": [
                    {"type": "static", "default": "05 FF 32 44"}
				],
                "slave": [
                    {"type": "byte"},
					{"type": "byte"},
					{"type": "byte"},
					{"name": "VUVHwc", "type": "word", "label": "SchaltvorgÀnge VUV Warmwasser", "min": 0, "max": 100000, "format":"%d"},
					{"type": "byte"},
					{"type": "byte"},
					{"type": "byte"},
					{"type": "byte"},
                    {"type": "byte"}
				]
			}
		},
		
		{
            "label":    "Betriebsstunden 4-Wege-Ventil",
            "id":       "Hours4WayValve",
            "command":  "B5 1A",

            "get": {
                "master": [
                    {"type": "static", "default": "05 D8 34 06"}
				],
                "slave": [
                    {"type": "byte"},
					{"type": "byte"},
					{"type": "byte"},
					{"name": "Hours4WayValve", "type": "word", "label": "Betriebsstunden 4-Wege-Ventil", "min": 0, "max": 10000, "format":"%d h"},
					{"type": "byte"},
					{"type": "byte"},
					{"type": "byte"},
					{"type": "byte"},
                    {"type": "byte"}
				]
			}
		},
		
		{
            "label":    "SchaltvorgÀnge 4-Wege-Ventil",
            "id":       "4WayValve",
            "command":  "B5 1A",

            "get": {
                "master": [
                    {"type": "static", "default": "05 D8 34 07"}
				],
                "slave": [
                    {"type": "byte"},
					{"type": "byte"},
					{"type": "byte"},
					{"name": "4WayValve", "type": "word", "label": "SchaltvorgÀnge 4-Wege-Ventil", "min": 0, "max": 10000, "format":"%d"},
					{"type": "byte"},
					{"type": "byte"},
					{"type": "byte"},
					{"type": "byte"},
                    {"type": "byte"}
				]
			}
		},
		
		{
            "label":    "Energie Heizkreis am Tag",
            "id":       "EnergyHc",
            "command":  "B5 1A",

            "get": {
                "master": [
                    {"type": "static", "default": "05 FF 32 00"}
				],
                "slave": [
                    {"type": "byte"},
					{"type": "byte"},
					{"type": "byte"},
					{"name": "EnergyHc", "type": "word", "label": "Energie Heizkreis am Tag", "min": 0, "max": 100000, "factor": 0.1, "format":"%d kWh"},
					{"type": "byte"},
					{"type": "byte"},
					{"type": "byte"},
					{"type": "byte"},
                    {"type": "byte"}
				]
			}
		}
	]	
}

Hi Cor. Saw values of e.g. -41% today for the “CurrentCompressorUtil”. Would expect a range of 0
100%. Isn’t it the 3rd byte we are looking for (38 hex) instead of the fourth byte (62 hex) which we looked for initially? If i confugure it like this, i get +56% instead of -41%.

In ebusd i get the negative values as well ??? This lets me doubt. Initially i only checked if i get the same readings in openHAB as in ebusd and this was the case applying your solution.

If the forth byte (62 hex) is right, could it be the data type “data1c” instead of “data1b”? In John’s list D1B is signed integer which is dedicated for -127
+127 while D1C is unsigned integer which is for 0.0
100.0 (would match the desired percent range). If this is the case, John’s 08.hmu.csv would contain a failure for the “CurrentCompressorUtil”?

Hello Willibald. The csv file gives “IGN:3” meaning to ignore the first three bytes of the response. Also, 62 hex equalled 98 when converting it to signed integer (d1b), which was the utilization that you read from ebusd.

You also have the Vaillant app apparently (as you could compare the circulation pump status). The csv file screenshot shows the text “some more statistics from Live Monitor”. Are you able to compare your values with values that are given by a Vaillant controller, app or device?

Hi Willi and Cor,

Thanks for providing this. Works perfectly :slight_smile: , and I didn’t see any negative values for the compressor value so far.

Just as a note to others: I had to add the HMU thing manually after pointing the ebus binding to the .json file, choosing 08 as slave adress.

Cheers, Veit

@Chiuaua79 and @Veitk,

Understood what IGN:3 is now. Then everything seems to be okay. The myVaillant app doesn’t show such parameters. Will dig into the controller and see what i can get there. “Live Monitor” should be a menu point. In the meantime i observed “CurrentCompressorUtil” values between -105% and +122% while “off” is 0%. Interesting that Veit doesn’t see negative values. What type is your pump? I have an aroTherm VML105/6 heatpump.

I have an aroTherm VWL85/2 heatpump. Still no negative values since setting up the HMU thing.

@Veitk and @Chiuaua79 ,

Went through the “Live Monitor” of the controller in expert mode. Beside interesting other parameters like “compressor hours” or “compressor starts” i only found “compressor modulation”. While i saw the desired “CurrentCompressorUtil” at -76% the “compressor modulation” value was +27%.

For the moment i conclude that “CurrentCompressorUtil” is likely not a valid parameter of my heatpump type. If i figure out something new, i will let you know.

Edit:
Will see if i can grab telegrams using “ebusctl grab result decode” while i step through the desired compressor parameters within the Vaillant “Live Monitor”.

Made some progress. Have been able to grab telegrams using “ebusctl grab result decode” while i stepped through the desired compressor parameters within the Vaillant controller. Searched for the appropriate values then. This is at least valid for a Vaillant aroTherm VML105/6 (year 2020).

The value “CurrentCompressorUtil” from John30 is obviously not existing within the controller menu of my heatpump but i left it in the .json file for other users. It worked out at least for Veit (see above). Instead of “compressor utilization” i found “compressor modulation” which makes sense for a modulated inverter heatpump.

Edited on 10.01.2023.
Added the following new parameters to my Vaillant hmu08_config.json and updated the file below:

  • Energy integral
  • Compressor modulation
  • Compressor operation hours
  • Compressor starts
  • Building pump operation hours
  • Building pump starts
  • Fan 1 hours
  • Fan 1 starts
  • Fan 2 hours
  • Fan 2 starts
  • EEV valve steps (electronic expansion valve)
  • Current power consumption
  • Current yield power (power gained out of the air)
  • Heat water flowrate
  • Operation hours total
  • Operation hours heat circuit
  • Operation hours hot water circuit
  • Operation hours 4-way valve
  • Switchings 4-way valve
{
    "id":           "HMU01",
    "vendor":       "Vaillant",
    "label":        "HMU Main Board",
    "description":  "Aktuelle Kompressor Daten",
    
    "authors":      ["Willi Konrath, willibald.konrath@t-online.de"],
    "identification": ["48 4D 55 30 30"],
    
    "commands":
    [
        {
            "label":    "Current Compressor Utilization",
            "id":       "CurrentCompressorUtil",
            "command":  "B5 1A",

            "get": {
                "master": [
                    {"type": "static", "default": "05 FF 32 25"}
                    ],
                "slave": [
                    {"type": "byte"},
                    {"type": "byte"},
					{"type": "byte"},
					{"name": "CurrentCompressorUtil", "type": "data1b", "label": "Kompressor Auslastung", "min": -150, "max": 150, "format":"%d %%"},
                    {"type": "byte"},
                    {"type": "byte"},
                    {"type": "byte"},
                    {"type": "byte"},
                    {"type": "byte"},
                    {"type": "byte"}					
                ]
			}
		},			
		
		{
            "label":    "Compressor Modulation",
            "id":       "CurrentCompressorMod",
            "command":  "B5 1A",

            "get": {
                "master": [
                    {"type": "static", "default": "05 15 32 25"}
                    ],
                "slave": [
                    {"type": "byte"},
                    {"type": "byte"},
					{"type": "byte"},
					{"name": "CurrentCompressorMod", "type": "data2c", "label": "Kompressor Modulation", "min": 0, "max": 100, "format":"%.1f %%"},
					{"type": "byte"},
                    {"type": "byte"},
                    {"type": "byte"},
                    {"type": "byte"},
                    {"type": "byte"}					
                ]
			}
		},			
		
		{
            "label":    "Energie Integral",
            "id":       "EnergyIntegral",
            "command":  "B5 1A",

            "get": {
                "master": [
                    {"type": "static", "default": "05 4D 32 21"}
                    ],
                "slave": [
                    {"type": "byte"},
                    {"type": "byte"},
					{"type": "byte"},
					{"name": "EnergyIntegral", "type": "data1b", "label": "Energie Integral", "min": -500, "max": 500, "format":"%d °min"},
                    {"type": "byte"},
                    {"type": "byte"},
                    {"type": "byte"},
                    {"type": "byte"},
                    {"type": "byte"},
                    {"type": "byte"}					
                ]
			}
		},			
		
		{
            "label":    "Compressor Hours",
            "id":       "CompressorHours",
            "command":  "B5 1A",

            "get": {
                "master": [
                    {"type": "static", "default": "05 68 34 00"}
                    ],
                "slave": [
                    {"type": "byte"},
                    {"type": "byte"},
					{"type": "byte"},
					{"name": "CompressorHours", "type": "word", "label": "Betriebsstunden Kompressor", "min": 0, "max": 100000, "format":"%d h"},
                    {"type": "byte"},
                    {"type": "byte"},
                    {"type": "byte"},
                    {"type": "byte"},
                    {"type": "byte"}					
                ]
			}
		},			
		
		{
            "label":    "Compressor Starts",
            "id":       "CompressorStarts",
            "command":  "B5 1A",

            "get": {
                "master": [
                    {"type": "static", "default": "05 A1 34 01"}
                    ],
                "slave": [
                    {"type": "byte"},
                    {"type": "byte"},
					{"type": "byte"},
					{"name": "CompressorStarts", "type": "word", "label": "Kompressor Starts", "min": 0, "max": 200000, "format":"%d"},
                    {"type": "byte"},
                    {"type": "byte"},
                    {"type": "byte"},
                    {"type": "byte"},
                    {"type": "byte"}					
                ]
			}
		},			
		
		{
            "label":    "Building Pump Hours",
            "id":       "BuildgPumpHours",
            "command":  "B5 1A",

            "get": {
                "master": [
                    {"type": "static", "default": "05 38 34 02"}
                    ],
                "slave": [
                    {"type": "byte"},
                    {"type": "byte"},
					{"type": "byte"},
					{"name": "BuildgPumpHours", "type": "word", "label": "Betriebsstunden GebÀudepumpe", "min": 0, "max": 200000, "format":"%d h"},
                    {"type": "byte"},
                    {"type": "byte"},
                    {"type": "byte"},
                    {"type": "byte"},
                    {"type": "byte"}					
                ]
			}
		},			
		
		{
            "label":    "Building Pump Starts",
            "id":       "BuildgPumpStarts",
            "command":  "B5 1A",

            "get": {
                "master": [
                    {"type": "static", "default": "05 9D 34 03"}
                    ],
                "slave": [
                    {"type": "byte"},
                    {"type": "byte"},
					{"type": "byte"},
					{"name": "BuildgPumpStarts", "type": "word", "label": "GebÀudepumpe Starts", "min": 0, "max": 200000, "format":"%d"},
                    {"type": "byte"},
                    {"type": "byte"},
                    {"type": "byte"},
                    {"type": "byte"},
                    {"type": "byte"}					
                ]
			}
		},			
		
		{
            "label":    "Hours Fan 1",
            "id":       "HoursFan1",
            "command":  "B5 1A",

            "get": {
                "master": [
                    {"type": "static", "default": "05 B1 34 51"}
                    ],
                "slave": [
                    {"type": "byte"},
                    {"type": "byte"},
					{"type": "byte"},
					{"name": "HoursFan1", "type": "word", "label": "Betriebsstunden LĂŒfter 1", "min": 0, "max": 200000, "format":"%d h"},
                    {"type": "byte"},
                    {"type": "byte"},
                    {"type": "byte"},
                    {"type": "byte"},
                    {"type": "byte"}					
                ]
			}
		},			
		
		{
            "label":    "Starts LĂŒfter 1",
            "id":       "StartsFan1",
            "command":  "B5 1A",

            "get": {
                "master": [
                    {"type": "static", "default": "05 03 34 52"}
                    ],
                "slave": [
                    {"type": "byte"},
                    {"type": "byte"},
					{"type": "byte"},
					{"name": "StartsFan1", "type": "word", "label": "Starts LĂŒfter 1", "min": 0, "max": 200000, "format":"%d"},
                    {"type": "byte"},
                    {"type": "byte"},
                    {"type": "byte"},
                    {"type": "byte"},
                    {"type": "byte"}					
                ]
			}
		},			
		
		{
            "label":    "Hours Fan 2",
            "id":       "HoursFan2",
            "command":  "B5 1A",

            "get": {
                "master": [
                    {"type": "static", "default": "05 C1 34 5E"}
                    ],
                "slave": [
                    {"type": "byte"},
                    {"type": "byte"},
					{"type": "byte"},
					{"name": "HoursFan2", "type": "word", "label": "Betriebsstunden LĂŒfter 2", "min": 0, "max": 200000, "format":"%d h"},
                    {"type": "byte"},
                    {"type": "byte"},
                    {"type": "byte"},
                    {"type": "byte"},
                    {"type": "byte"}					
                ]
			}
		},			
		
		{
            "label":    "Starts LĂŒfter 2",
            "id":       "StartsFan2",
            "command":  "B5 1A",

            "get": {
                "master": [
                    {"type": "static", "default": "05 01 34 5F"}
                    ],
                "slave": [
                    {"type": "byte"},
                    {"type": "byte"},
					{"type": "byte"},
					{"name": "StartsFan2", "type": "word", "label": "Starts LĂŒfter 2", "min": 0, "max": 200000, "format":"%d"},
                    {"type": "byte"},
                    {"type": "byte"},
                    {"type": "byte"},
                    {"type": "byte"},
                    {"type": "byte"}					
                ]
			}
		},			
		
		{
            "label":    "EEV Schritte",
            "id":       "EEVSteps",
            "command":  "B5 1A",

            "get": {
                "master": [
                    {"type": "static", "default": "05 02 34 0D"}
                    ],
                "slave": [
                    {"type": "byte"},
                    {"type": "byte"},
					{"type": "byte"},
					{"name": "EEVSteps", "type": "word", "label": "Schritte Expansionsventil", "min": 0, "max": 500000, "format":"%d"},
                    {"type": "byte"},
                    {"type": "byte"},
                    {"type": "byte"},
                    {"type": "byte"},
                    {"type": "byte"}					
                ]
			}
		},			
		
		{
            "label":    "Aktuelle Stromaufnahme",
            "id":       "CurrentConsumedPower",
            "command":  "B5 1A",

            "get": {
                "master": [
                    {"type": "static", "default": "05 FF 32 24"}
				],
                "slave": [
                    {"type": "byte"},
                    {"type": "byte"},
                    {"type": "byte"},
                    {"name": "CurrentConsumedPower", "type": "data1b", "label": "Aktuelle Stromaufname", "min": 0, "max": 150, "factor": 0.1, "format":"%d kW"},
                    {"type": "byte"},
                    {"type": "byte"},
                    {"type": "byte"},
                    {"type": "byte"},
                    {"type": "byte"},
                    {"type": "byte"}
				]
			}
        },

        {
            "label":    "Aktuelle Leistung aus der Luft",
            "id":       "CurrentYieldPower",
            "command":  "B5 1A",

            "get": {
                "master": [
                    {"type": "static", "default": "05 FF 32 23"}
				],
                "slave": [
                    {"type": "byte"},
                    {"type": "byte"},
                    {"type": "byte"},
					{"name": "CurrentYieldPower", "type": "data1b", "label": "Umweltertrag", "min": 0, "max": 150, "factor": 0.1, "format":"%d kW"},
					{"type": "byte"},
                    {"type": "byte"},
                    {"type": "byte"},
                    {"type": "byte"},
                    {"type": "byte"},
                    {"type": "byte"}
				]
			}
		},
		
		{
            "label":    "Heizwasser Durchflußrate",
            "id":       "WaterThroughput",
            "command":  "B5 14",

            "get": {
                "master": [
                    {"type": "static", "default": "05 2B 03 FF FF"}
				],
                "slave": [
                    {"type": "byte"},
					{"type": "byte"},
					{"name": "WaterThroughput", "type": "word", "label": "Heizwasser Durchflußrate", "min": 0, "max": 10000, "format":"%d l/h"}
				]
			}
		},
			
		{
            "label":    "Betriebsstunden",
            "id":       "Hours",
            "command":  "B5 1A",

            "get": {
                "master": [
                    {"type": "static", "default": "05 FF 32 40"}
				],
                "slave": [
                    {"type": "byte"},
					{"type": "byte"},
					{"type": "byte"},
					{"name": "Hours", "type": "word", "label": "Betriebsstunden", "min": 0, "max": 200000, "format":"%d h"},
					{"type": "byte"},
					{"type": "byte"},
					{"type": "byte"},
					{"type": "byte"},
                    {"type": "byte"}
				]
			}
		},

		{
            "label":    "Betriebsstunden Heizkreis",
            "id":       "HoursHc",
            "command":  "B5 1A",

            "get": {
                "master": [
                    {"type": "static", "default": "05 FF 32 41"}
				],
                "slave": [
                    {"type": "byte"},
					{"type": "byte"},
					{"type": "byte"},
					{"name": "HoursHc", "type": "word", "label": "Betriebsstunden Heizkreis", "min": 0, "max": 200000, "format":"%d h"},
					{"type": "byte"},
					{"type": "byte"},
					{"type": "byte"},
					{"type": "byte"},
                    {"type": "byte"}
				]
			}
		},
		
		{
            "label":    "Betriebsstunden Warmwasser",
            "id":       "HoursHwc",
            "command":  "B5 1A",

            "get": {
                "master": [
                    {"type": "static", "default": "05 FF 32 44"}
				],
                "slave": [
                    {"type": "byte"},
					{"type": "byte"},
					{"type": "byte"},
					{"name": "HoursHwc", "type": "word", "label": "Betriebsstunden Warmwasser", "min": 0, "max": 200000, "format":"%d h"},
					{"type": "byte"},
					{"type": "byte"},
					{"type": "byte"},
					{"type": "byte"},
                    {"type": "byte"}
				]
			}
		},
		
		{
            "label":    "Betriebsstunden 4-Wege-Ventil",
            "id":       "Hours4WayValve",
            "command":  "B5 1A",

            "get": {
                "master": [
                    {"type": "static", "default": "05 D8 34 06"}
				],
                "slave": [
                    {"type": "byte"},
					{"type": "byte"},
					{"type": "byte"},
					{"name": "Hours4WayValve", "type": "word", "label": "Betriebsstunden 4-Wege-Ventil", "min": 0, "max": 10000, "format":"%d h"},
					{"type": "byte"},
					{"type": "byte"},
					{"type": "byte"},
					{"type": "byte"},
                    {"type": "byte"}
				]
			}
		},
		
		{
            "label":    "SchaltvorgÀnge 4-Wege-Ventil",
            "id":       "4WayValve",
            "command":  "B5 1A",

            "get": {
                "master": [
                    {"type": "static", "default": "05 D8 34 07"}
				],
                "slave": [
                    {"type": "byte"},
					{"type": "byte"},
					{"type": "byte"},
					{"name": "4WayValve", "type": "word", "label": "SchaltvorgÀnge 4-Wege-Ventil", "min": 0, "max": 10000, "format":"%d"},
					{"type": "byte"},
					{"type": "byte"},
					{"type": "byte"},
					{"type": "byte"},
                    {"type": "byte"}
				]
			}
		},
		
		{
            "label":    "Energie Heizkreis am Tag",
            "id":       "EnergyHc",
            "command":  "B5 1A",

            "get": {
                "master": [
                    {"type": "static", "default": "05 FF 32 00"}
				],
                "slave": [
                    {"type": "byte"},
					{"type": "byte"},
					{"type": "byte"},
					{"name": "EnergyHc", "type": "word", "label": "Energie Heizkreis am Tag", "min": 0, "max": 100000, "factor": 0.1, "format":"%d kWh"},
					{"type": "byte"},
					{"type": "byte"},
					{"type": "byte"},
					{"type": "byte"},
                    {"type": "byte"}
				]
			}
		}
	]	
}

I’m running Openhab 3.4.1 on Windows 11 with EBUS binding 3.2.14.
After a Windows update at the weekend, Openhab always ended itself after 30-60 minutes without an error message.
Assuming it could be Java, I went to Zulu 17. When that didn’t work either, I’m now on 4.0.0 Snapshot. The system runs with that, but I always get the error message from the Ebus binding.

Exception in thread "ebus-receiver-707" java.lang.NoSuchMethodError: 'void org.openhab.core.library.types.DecimalType.<init>(java.math.BigDecimal)'
        at org.openhab.binding.ebus.internal.handler.EBusHandler.assignValueToChannel(EBusHandler.java:204)
        at org.openhab.binding.ebus.internal.handler.EBusHandler.handleReceivedTelegram(EBusHandler.java:415)
        at org.openhab.binding.ebus.internal.handler.EBusBridgeHandler.onTelegramResolved(EBusBridgeHandler.java:294)
        at de.csdev.ebus.service.parser.EBusParserService.fireOnTelegramResolved(EBusParserService.java:127)
        at de.csdev.ebus.service.parser.EBusParserService.onTelegramReceived(EBusParserService.java:102)
        at de.csdev.ebus.core.EBusControllerBase.lambda$fireOnEBusTelegramReceived$1(EBusControllerBase.java:173)
        at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
        at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
        at java.base/java.lang.Thread.run(Thread.java:833)

The funny thing is that the message only appears in the console and does not appear in the log file.
Does anyone know what I’m doing wrong ?

Thx talli

@Jorgensen ,

Hello. Saw that you have detected several ebus commands for the Vaillant “hmu”. Am searching for the “VUV switching cycles” (hot water priority valve). Can you help me on that?

It will not work because openHAB 4.0-SNAPSHOT started to introduce non-compatible changes which affected all bindings. The ebus binding will require update to work with that release. Please go back and stay a bit with 3.4.

Thanks for the tip, thought Java 17 is fully backwards compatible.
I’m back to 3.4.1 and Java 11 updated. That’s it again :grinning:

Java 17 is not an issue, issues are caused by changes in OH 4.x codebase itself. The NoSuchMethodError you saw tells that method with which code was compiled can not be found at runtime. You can run probably OH 3.3 with Java 17.

I will stay with Java 11 for the time being, because with Java 17 Java alone had generated a CPU load of almost 50%, with Java 11 I was at an average of 3 - 5%

Hey Community,
just one thing that was not easy for me to figure out and I’d like to share:
The ebus binding really works like a charm. Great work, really love and appreciate!
I installed the ebus binding via Paper UI and then created all items manually in an item file and added the channel. This is the common way for me cause I’ve a legacy setup with item files since Openhab 1.x and never changed everything. So I remained to use the *.item files for setting up items.
After creating all relevant items and adding the channels, everything seem to be working fine, but I figured out, all items were read only. So i tried lot’s of things but nothing worked to get items to write changes to ebus. Almost drove me nuts :rofl:

The solution for me was, to delete all manual config via item files and to create all items in PaperUI. That solved EVERYTHING and it worked out of the box without any issues. No weird error messages in the log, everything read and write, everything stable and fun.

Just wanted to let you know, that items via PaperUI solved a lot problems and saved a lot of work for me :wink:

And again thanks to @csowada for the really really great plugin.

Cheers
Sebastian

Hi,

thanks for the binding. i got it working:
-docker openhab3.4.1 with 3.2.14 binding on unraid
-docker ebusd latest version
-ebus Adapter 3.1 with LAN

tested one slave with the standard bai08 config profided by the binding, but a lot of informations are missing compared to the possible data values:

so where can i add my custom configuration files? there should be a configurationUrl ? How to use it?

thanks
Maik

Hello, I need some help and namely I have a fresh openhab 3.4.1 installation on a Pi4 with an eBUS Adapter 3 HAT (adapter.ebusd.eu). In OH only the eBUS binding and the MQTT binding is installed. In the “/boot/config.txt” I entered “dtoverlay=pi3-miniuart-bt” because serial0 pointed to ttyS0 and now points to ttyAMA0. The eBUS Bridge goes online, but I can’t find my “VAILLANT package 1.331/5 ecoCOMPACT VSC 146/4-5 150 LL with VRC 700/6” in a scan.

What am I doing wrong or have I forgotten?

I have the following information in addition.

pi@openhabian:~ $ dmesg|grep ttyAMA0
[    1.664016] fe201000.serial: ttyAMA0 at MMIO 0xfe201000 (irq = 32, base_baud = 0) is a PL011 rev2
2023-01-23 19:02:52.164 [WARN ] [internal.things.EBusTypeProviderImpl] - eBUS command boiler.control.setopdata only contains a setter channel!
2023-01-23 19:02:52.685 [INFO ] [ing.ebus.internal.EBusHandlerFactory] - Use eBUS binding 3.2.14 [eBUS core: 1.1.8, eBUS configuration: 1.1.6]
2023-01-23 19:02:52.689 [INFO ] [ing.ebus.internal.EBusHandlerFactory] - eBUS core -> timestamp 202112291704, commit: #768d88c, build-no: #null
2023-01-23 19:02:52.693 [INFO ] [ing.ebus.internal.EBusHandlerFactory] - eBUS configuration -> timestamp 202112291722, commit: #7d79e24, build-no: #null
2023-01-23 19:02:52.889 [WARN ] [s.internal.handler.EBusBridgeHandler] - Enable advanced logging for eBUS commands!
2023-01-23 19:02:53.025 [INFO ] [al.EBusSerialBuildInSerialConnection] - Use openhab build-in serial driver .................................................................
==> /var/log/openhab/events.log <==
2023-01-23 19:02:52.867 [INFO ] [ab.event.ThingStatusInfoChangedEvent] - Thing 'ebus:bridge:5ec478bf3e' changed from UNINITIALIZED (HANDLER_MISSING_ERROR): Handler factory not found to INITIALIZING
2023-01-23 19:02:53.002 [INFO ] [ab.event.ThingStatusInfoChangedEvent] - Thing 'ebus:bridge:5ec478bf3e' changed from INITIALIZING to UNKNOWN: Connecting to eBUS ...
2023-01-23 19:02:53.079 [INFO ] [ab.event.ThingStatusInfoChangedEvent] - Thing 'ebus:bridge:5ec478bf3e' changed from UNKNOWN: Connecting to eBUS ... to ONLINE
2023-01-23 19:02:53.307 [INFO ] [ab.event.ThingStatusInfoChangedEvent] - Thing 'mqtt:broker:mqttbroker' changed from UNINITIALIZED (HANDLER_MISSING_ERROR): Handler factory not found to INITIALIZING
2023-01-23 19:02:53.481 [INFO ] [ab.event.ThingStatusInfoChangedEvent] - Thing 'mqtt:broker:mqttbroker' changed from INITIALIZING to OFFLINE
==> /var/log/openhab/openhab.log <==
2023-01-23 19:02:55.006 [INFO ] [.transport.mqtt.MqttBrokerConnection] - Starting MQTT broker connection to '172.28.1.2' with clientid piheater
==> /var/log/openhab/events.log <==
2023-01-23 19:02:55.324 [INFO ] [ab.event.ThingStatusInfoChangedEvent] - Thing 'mqtt:broker:mqttbroker' changed from OFFLINE to ONLINE
==> /var/log/openhab/openhab.log <==
2023-01-23 19:07:53.074 [WARN ] [dev.ebus.core.EBusLowLevelController] - eBUS Watchdog Timer!
UID: ebus:bridge:5ec478bf3e
label: eBUS Bridge
thingTypeUID: ebus:bridge
configuration:
  masterAddress: FF
  networkDriver: raw
  serialPortDriver: buildin
  serialPort: /dev/ttyAMA0
  advancedLogging: true

If I manually add the a ebus thing, id dont get any item values.

2023-01-23 19:16:51.031 [INFO ] [ab.event.ThingStatusInfoChangedEvent] - Thing 'ebus:bai:5ec478bf3e:2dc6d90559' changed from UNINITIALIZED to INITIALIZING
2023-01-23 19:16:51.040 [INFO ] [ab.event.ThingStatusInfoChangedEvent] - Thing 'ebus:bai:5ec478bf3e:2dc6d90559' changed from INITIALIZING to ONLINE
UID: ebus:bai:5ec478bf3e:2dc6d90559
label: Vaillant BAI00
thingTypeUID: ebus:bai
configuration:
  filterAcceptBroadcasts: true
  filterAcceptSlave: true
  slaveAddress: "1"
  filterAcceptMaster: false
bridgeUID: ebus:bridge:5ec478bf3e

2023-01-23 19:16:51.040 [INFO ] [ng.ebus.internal.handler.EBusHandler] - (Re)Initialize all eBUS pollings for ebus:bai:5ec478bf3e:2dc6d90559 ...
==> /var/log/openhab/events.log <==
2023-01-23 19:16:51.031 [INFO ] [ab.event.ThingStatusInfoChangedEvent] - Thing 'ebus:bai:5ec478bf3e:2dc6d90559' changed from UNINITIALIZED to INITIALIZING
2023-01-23 19:16:51.040 [INFO ] [ab.event.ThingStatusInfoChangedEvent] - Thing 'ebus:bai:5ec478bf3e:2dc6d90559' changed from INITIALIZING to ONLINE