Vaillant eBUS hardware adapter (ebusd software) Thread

To throw another language at you, this is the portal in German: https://www.myvaillantpro.de/. Pretty sure it must also exist in other languages.

1 Like

… in HA yes… ok, I’ll try to install MQTT Explorer…

MQTT Explorer :

core-mosquitto.local.hass.io

▼ebusd

▼global

version = “ebusd 23.2.p20230716”

running = true

scan = “finished”

signal = true

updatecheck = “version 23.3 available, broadcast.csv: different version available, memory.csv: different version available, vaillant/08.hmu.csv: different version available, vaillant/broadcast.csv: different version available, vaillant/errors.inc: different version available, vaillant/general.csv: different version available, vaillant/hcmode.inc: different version available”

uptime = 400

▼hmu

State07 = { “0”: {“name”: “power”, “value”: 0}, “1”: {“name”: “energy”, “value”: 20.7}, “2”: {“name”: “state”, “value”: “Normal mode HP off”}, “3”: {“name”: “state”, “value”: “ready”}}

YieldHcDay = { “energy”: {“value”: 20.7}}

SetMode = { “hcmode”: {“value”: “auto”}, “flowtempdesired”: {“value”: 0.0}, “hwctempdesired”: {“value”: null}, “hwcflowtempdesired”: {“value”: null}, “disablehc”: {“value”: 1}, “disablehwctapping”: {“value”: 1}, “disablehwcload”: {“value”: 1}, “remoteControlHcPump”: {“value”: 0}, “releaseBackup”: {“value”: 0}, “releaseCooling”: {“value”: 0}}

State01 = { “0”: {“name”: “temp1”, “value”: 21.0}, “1”: {“name”: “temp1”, “value”: 19.5}, “2”: {“name”: “temp2”, “value”: null}, “3”: {“name”: “temp1”, “value”: null}, “4”: {“name”: “temp1”, “value”: null}, “5”: {“name”: “pumpstate”, “value”: “off”}}

unknownMPoll60sB507h = { “0”: {“name”: “”, “value”: “27 04”}}

State00 = { “S00_SupplyTemp”: {“value”: 21.06}, “field2”: {“value”: 11}, “S00_CompressorModulation”: {“value”: 0.0}, “CompressorState”: {“value”: “off”}, “HeatingState”: {“value”: 0}, “field6”: {“value”: 0}, “Defrost”: {“value”: “inactive”}, “S00_CompressorPower”: {“value”: 0.0}}

YieldHwcDay = { “energy”: {“value”: 0.0}}

unknownMB509h2802 = { “0”: {“name”: “”, “value”: “02 00 09 01 5f 01 00 48 4d 55 30 33”}}

StatusCirPump = { “0”: {“name”: “”, “value”: “off”}}

unknownMB513h0528 = { “0”: {“name”: “”, “value”: “01”}}

4PortValveHours = { “0”: {“name”: “”, “value”: 199}}

AirInletTemp = { “temps2”: {“value”: 14.2}}

AirIntakeTemp = { “0”: {“name”: “”, “value”: 14.31}}

BuildingCircuitPumpPower = { “0”: {“name”: “”, “value”: 0}}

BuildingPumpStarts = { “0”: {“name”: “”, “value”: 105}}

CompressorHours = { “0”: {“name”: “”, “value”: 381}}

CompressorInletTemp = { “temps2”: {“value”: 17.5}}

CompressorOutletTemp = { “temps2”: {“value”: 19.7}}

CondensationTemp = { “temps2”: {“value”: 12.8}}

CondensorOutletTemp = { “temps2”: {“value”: 18.6}}

CoolingHours = { “0”: {“name”: “”, “value”: 229}}

CurrentConsumedPower = { “0”: {“name”: “”, “value”: 0.0}}

CurrentYieldPower = { “0”: {“name”: “”, “value”: 0.0}}

EEVOutletTemp = { “temps2”: {“value”: 16.1}}

EnergyIntegral = { “integral”: {“value”: -45}}

EnergyIntegralStartHeating = { “integral”: {“value”: -60}}

EvaporationTemp = { “temps2”: {“value”: 14.6}}

Fan1Hours = { “0”: {“name”: “”, “value”: 389}}

Fan1Starts = { “0”: {“name”: “”, “value”: 207}}

FlowTemp = { “0”: {“name”: “”, “value”: 21.19}}

HcHours = { “0”: {“name”: “”, “value”: 308}}

HwcMode = { “0”: {“name”: “”, “value”: “normal”}}

HwcTemp = { “temps2”: {“value”: -99.0}}

OutdoorTemp = { “temps2”: {“value”: -99.0}}

ReturnTemp = { “temps2”: {“value”: 19.9}}

RunDataAirIntakeTemp = { “tempv”: {“value”: 15.5342}}

RunDataCompressorInletTemp = { “tempv”: {“value”: 17.6282}}

RunDataCompressorOutletTemp = { “tempv”: {“value”: 19.7458}}

RunDataCurrentConsumedPower = { “powerv”: {“value”: 6.5}}

RunDataEEVOutletTemp = { “tempv”: {“value”: 15.9655}}

RunStats4PortValveHours = { “0”: {“name”: “”, “value”: 199}}

RunStatsBuildingPumpHours = { “0”: {“name”: “”, “value”: 538}}

RunStatsCompressorHours = { “0”: {“name”: “”, “value”: 381}}

RunStatsCompressorStarts = { “cntstarts2”: {“value”: 203}}

RunStatsFan1Starts = { “cntstarts2”: {“value”: 207}}

RunStatsFan2Hours = { “0”: {“name”: “”, “value”: 0}}

RunStatsHcHours = { “0”: {“name”: “”, “value”: 308}}

RunStatsHMUHours = { “0”: {“name”: “”, “value”: 2012}}

Statuscode = { “scode”: {“value”: “Standby”}}

SupplyTemp = { “temps2”: {“value”: 21.2}}

SystemTemp = { “temps2”: {“value”: -99.0}}

TemperatureSwitchCompressorOutlet = { “0”: {“name”: “”, “value”: “closed”}}

TotalEnergyUsage = { “energy”: {“value”: 179}}

TotalHours = { “0”: {“name”: “”, “value”: 2012}}

YieldCooling = { “energy”: {“value”: 0.0}}

YieldCoolingDay = { “energy”: {“value”: 0.0}}

YieldCoolingMonth = { “energy”: {“value”: 0.0}}

YieldHc = { “energy”: {“value”: 442}}

YieldHcMonth = { “energy”: {“value”: 140.9}}

YieldHwc = { “energy”: {“value”: 0}}

YieldHwcMonth = { “energy”: {“value”: 0.0}}

BuildingPumpHours = { “0”: {“name”: “”, “value”: 538}}

CompressorStarts = { “0”: {“name”: “”, “value”: 203}}

CondensorInletTemp = { “temps2”: {“value”: -99.0}}

EnergyIntegralStartCooling = { “integral”: {“value”: 60}}

RunDataBuildingCPumpPower = { “0”: {“name”: “”, “value”: 0.0}}

RunDataStatuscode = { “scode”: {“value”: “Standby”}}

▼broadcast

unknownBCb505h5c = { “0”: {“name”: “”, “value”: “00”}}

vdatetime = { “time”: {“value”: “12:08:14”}, “date”: {“value”: “05.10.2024”}}

OutsideTemp = { “temp2”: {“value”: 7.430}}

unknownBCb508h09 = { “0”: {“name”: “”, “value”: “00”}}

unknownBCb510h06 = { “0”: {“name”: “”, “value”: “00”}}

▼scan.15

= { “MF”: {“value”: “Vaillant”}, “ID”: {“value”: “B7V00”}, “SW”: {“value”: “0422”}, “HW”: {“value”: “5503”}}

▼scan.18

= { “MF”: {“value”: “Vaillant”}, “ID”: {“value”: “V32”}, “SW”: {“value”: “0121”}, “HW”: {“value”: “9802”}}

▼scan.76

= { “MF”: {“value”: “Vaillant”}, “ID”: {“value”: “VWZIO”}, “SW”: {“value”: “0202”}, “HW”: {“value”: “0103”}}

▼scan.08

= { “MF”: {“value”: “Vaillant”}, “ID”: {“value”: “HMU00”}, “SW”: {“value”: “0901”}, “HW”: {“value”: “5103”}}

… looks like the csv for b7v and vwzio aren’t found… but they’re , pointing respectively to 700 and VWZ. So did copy of them and renamed them to b7v and vwzio… and this worked ! :partying_face:

1 Like

Are you getting flow rates now?

still not with the latest 08.hmu.csv…

Also not from the VWZIO?

nope

vwzio

SupplyTemp = { “temps2”: {“value”: -0.1}}

State01 = { “0”: {“name”: “temp1”, “value”: null}, “1”: {“name”: “temp1”, “value”: null}, “2”: {“name”: “temp2”, “value”: null}, “3”: {“name”: “temp1”, “value”: null}, “4”: {“name”: “temp1”, “value”: null}, “5”: {“name”: “pumpstate”, “value”: “off”}}

TemperatureSwitchElectricHeater = { “0”: {“name”: “”, “value”: null}}

BuildingCircuitPumpPower = { “0”: {“name”: “”, “value”: null}}

CondensorInletTemp = { “temps2”: {“value”: -0.1}}

HwcTemp = { “temps2”: {“value”: -99.0}}

ReturnTemp = { “temps2”: {“value”: -0.1}}

Statuscode = { “scode”: {“value”: null}}

SupplyTempImmersionHeater = { “temps2”: {“value”: -0.1}}

▼vwz

unknownMPoll10sB512h = { “0”: {“name”: “”, “value”: “00 80 00 00 80 ff 00”}}

and on the HMU side there are 2 unknowns :

hmu

State07 = { “0”: {“name”: “power”, “value”: 0}, “1”: {“name”: “energy”, “value”: 0.8}, “2”: {“name”: “state”, “value”: “Normal mode HP on”}, “3”: {“name”: “state”, “value”: “ready”}}

SetMode = { “hcmode”: {“value”: “auto”}, “flowtempdesired”: {“value”: 29.0}, “hwctempdesired”: {“value”: null}, “hwcflowtempdesired”: {“value”: null}, “disablehc”: {“value”: 0}, “disablehwctapping”: {“value”: 1}, “disablehwcload”: {“value”: 1}, “remoteControlHcPump”: {“value”: 0}, “releaseBackup”: {“value”: 0}, “releaseCooling”: {“value”: 0}}

State01 = { “0”: {“name”: “temp1”, “value”: 23.0}, “1”: {“name”: “temp1”, “value”: 22.5}, “2”: {“name”: “temp2”, “value”: null}, “3”: {“name”: “temp1”, “value”: null}, “4”: {“name”: “temp1”, “value”: null}, “5”: {“name”: “pumpstate”, “value”: “off”}}

State00 = { “S00_SupplyTemp”: {“value”: 23.00}, “field2”: {“value”: 11}, “S00_CompressorModulation”: {“value”: 0.0}, “CompressorState”: {“value”: 8}, “HeatingState”: {“value”: “off”}, “field6”: {“value”: 0}, “Defrost”: {“value”: “inactive”}, “S00_CompressorPower”: {“value”: 0.0}}

StatusCirPump = { “0”: {“name”: “”, “value”: “off”}}

unknownMB513h0528 = { “0”: {“name”: “”, “value”: “01”}}

unknownMB509h2802 = { “0”: {“name”: “”, “value”: “02 00 09 01 5f 01 00 48 4d 55 30 33”}}

4PortValveHours = { “0”: {“name”: “”, “value”: 199}}

AirInletTemp = { “temps2”: {“value”: 12.7}}

AirIntakeTemp = { “0”: {“name”: “”, “value”: 12.69}}

BuildingCircuitPumpPower = { “0”: {“name”: “”, “value”: 52}}

BuildingPumpHours = { “0”: {“name”: “”, “value”: 539}}

BuildingPumpStarts = { “0”: {“name”: “”, “value”: 107}}

CompressorHours = { “0”: {“name”: “”, “value”: 381}}

CompressorInletTemp = { “temps2”: {“value”: 2.5}}

CompressorOutletTemp = { “temps2”: {“value”: 25.3}}

CompressorStarts = { “0”: {“name”: “”, “value”: 205}}

CondensationTemp = { “temps2”: {“value”: 24.7}}

CondensorInletTemp = { “temps2”: {“value”: -99.0}}

CondensorOutletTemp = { “temps2”: {“value”: 22.5}}

CoolingHours = { “0”: {“name”: “”, “value”: 229}}

CurrentConsumedPower = { “0”: {“name”: “”, “value”: 0.5}}

CurrentYieldPower = { “0”: {“name”: “”, “value”: 3.2}}

EEVOutletTemp = { “temps2”: {“value”: 3.8}}

EnergyIntegral = { “integral”: {“value”: -165}}

EnergyIntegralStartHeating = { “integral”: {“value”: -60}}

EvaporationTemp = { “temps2”: {“value”: 2.6}}

Fan1Hours = { “0”: {“name”: “”, “value”: 389}}

Fan1Starts = { “0”: {“name”: “”, “value”: 209}}

FlowTemp = { “0”: {“name”: “”, “value”: 25.56}}

HcHours = { “0”: {“name”: “”, “value”: 308}}

HwcHours = { “0”: {“name”: “”, “value”: 0}}

HwcMode = { “0”: {“name”: “”, “value”: “normal”}}

HwcTemp = { “temps2”: {“value”: -99.0}}

OutdoorTemp = { “temps2”: {“value”: -99.0}}

ReturnTemp = { “temps2”: {“value”: 21.5}}

RunDataAirIntakeTemp = { “tempv”: {“value”: 12.0293}}

RunDataBuildingCPumpPower = { “0”: {“name”: “”, “value”: 53.0969}}

RunDataCompressorInletTemp = { “tempv”: {“value”: 3.18182}}

RunDataCompressorOutletTemp = { “tempv”: {“value”: 28.4375}}

RunDataCurrentConsumedPower = { “powerv”: {“value”: 733.169}}

RunDataEEVOutletTemp = { “tempv”: {“value”: 5.63063}}

RunDataStatuscode = { “scode”: {“value”: “Heating: Compressor active”}}

RunStats4PortValveHours = { “0”: {“name”: “”, “value”: 199}}

RunStatsBuildingPumpHours = { “0”: {“name”: “”, “value”: 539}}

RunStatsCompressorHours = { “0”: {“name”: “”, “value”: 381}}

RunStatsCompressorStarts = { “cntstarts2”: {“value”: 205}}

RunStatsFan1Starts = { “cntstarts2”: {“value”: 209}}

RunStatsFan2Hours = { “0”: {“name”: “”, “value”: 0}}

RunStatsFan2Starts = { “cntstarts2”: {“value”: 0}}

RunStatsHcHours = { “0”: {“name”: “”, “value”: 308}}

Statuscode = { “scode”: {“value”: “Heating: Compressor active”}}

SupplyTemp = { “temps2”: {“value”: 26.8}}

SupplyTempWeighted = { “0”: {“name”: “”, “value”: 2.900}}

TemperatureSwitchCompressorOutlet = { “0”: {“name”: “”, “value”: “closed”}}

TotalEnergyUsage = { “energy”: {“value”: 179}}

TotalHours = { “0”: {“name”: “”, “value”: 2035}}

YieldCoolingDay = { “energy”: {“value”: 0.0}}

YieldCoolingMonth = { “energy”: {“value”: 0.0}}

YieldHc = { “energy”: {“value”: 443}}

YieldHcDay = { “energy”: {“value”: 0.5}}

YieldHcMonth = { “energy”: {“value”: 141.5}}

YieldHwc = { “energy”: {“value”: 0}}

YieldHwcDay = { “energy”: {“value”: 0.0}}

YieldHwcMonth = { “energy”: {“value”: 0.0}}

Maybe you have to query it - thats what I’m doing regularly in NodeRED.

Can you try in the console with ebusd

ebusctl read -f BuildingCircuitFlow

or alternatively via MQTT send an empty message using MQTT explorer to

/ebusd/hmu/BuildingCircuitFlow/get

You should be able to attach to the running docker container using the Web Terminal Add-On as long as you disable “Protection Mode” on the info tab of the add-on. Then, in the terminal you can find the running container using:

docker container ls

and using the name or id of the ebusd container, run the following command:

docker exec -it <insert name/id here> /bin/bash

then you can use ebusctl for example.

I have just got my ebus adapter up and running (Willkommen zum eBUS Adapter Shield - eBUS Adapter Shield C6 using WiFi to connect to my Raspberry Pi running Home Assistant and using the docker add-on to run ebusd and connect to MQTT using auto-discovery). Thanks to advice on this forum, I have got it basically working, but can’t find all the data I want. The main two things are return temperature and flow rate. However, @Ulric, I did find that

ebusctl read -f WaterThroughput

seems to be giving me reasonable flow-rate numbers. I do not see this in Home Assistant, but I am guessing, I need to explicitly poll for this. I must admit that I don’t understand why I get a lot of values coming through but not this one, when the configuration in the csv files (JonesPD) looks the same. It is because some messages are being polled by other devices on the bus or being broadcast and ebusd just intercepts them?

There is an additional Home Assistant config file in ebusd that generates the autodiscovery data so that HA picks up the MQTT data. This is independent of the csv files. It contains a number of filters to decide which topics to send to HA and which units to attach etc. I have modified the default one and attached it. Rename to mqtt-hassio.cfg (I cannot attach .cfg files…) and put it in /etc/ebusd/ (make a backup copy of the file already there). Hopefully, everything should be picked up then.

mqtt-hassio.cfg.txt (20.4 KB)

3 Likes

Thanks, that worked a treat :slight_smile: I see everything in HA now. I had attempted to remove filtering from the mqtt config file before and I saw extra things appear, but not everything; I had clearly missed something.

1 Like

Thanks a million !
Finally there :sweat_smile:
image

1 Like

Mmmm, it now interfere the HP

image

Ah, I remember that this was an issue at some point. Maybe you can look through my file to adapt the filters into yours. There was some polling issue with Home Assistant and my file is quite old.

I remember a thread about this indeed, let’s find it

…well , I’m not home and these are power cut from the grid :joy:
The all “data center” is on UPS so the monitoring was still running… this mean I need an alert on power loss :wink:

1 Like

Hi Zarch
I have these also install into home assistant, but there not to be seen in any mqtt software.
my question is how do i get these results publish in HA

here is my mqtt.yaml

# mqtt:
sensor:
###   Topic	                                             ###    Type	###    Description ###

- name: "ebusd hmu CopHc"
  unit_of_measurement: ''
  value_template: "{{value_json[\"0\"].value}}"
  state_topic: "ebusd/hmu/CopHc"
  state_class: measurement

- name: "ebusd hmu CopHcMonth"
  unit_of_measurement: ''
  value_template: "{{value_json[\"0\"].value}}"
  state_topic: "ebusd/hmu/CopHcMonth"
  state_class: measurement

- name: "ebusd hmu CopHwc"
  unit_of_measurement: ''
  value_template: "{{value_json[\"0\"].value}}"
  state_topic: "ebusd/hmu/CopHwc"
  state_class: measurement

- name: "ebusd hmu CopHwcMonth"
  unit_of_measurement: ''
  value_template: "{{value_json[\"0\"].value}}"
  state_topic: "ebusd/hmu/CopHwcMonth"
  state_class: measurement

- name: "ebusd hmu WaterThroughput"
  unit_of_measurement: 'l/h'
  value_template: "{{value_json[\"0\"].value}}"
  state_topic: "ebusd/hmu/WaterThroughput"
  state_class: measurement

- name: "ebusd hmu FlowPressure"
  unit_of_measurement: 'bar'
  value_template: "{{value_json[\"0\"].value}}"
  state_topic: "ebusd/hmu/FlowPressure"
  state_class: measurement

- name: "ebusd hmu SourcePressure"
  unit_of_measurement: 'bar'
  value_template: "{{value_json[\"0\"].value}}"
  state_topic: "ebusd/hmu/SourcePressure"
  state_class: measurement

- name: "ebusd hmu BuildingCircuitWaterPressure"
  unit_of_measurement: 'bar'
  value_template: "{{value_json[\"0\"].value}}"
  state_topic: "ebusd/hmu/BuildingCircuitWaterPressure"
  state_class: measurement

- name: "ebusd hmu LowPressure"
  unit_of_measurement: 'bar'
  value_template: "{{value_json[\"0\"].value}}"
  state_topic: "ebusd/hmu/LowPressure"
  state_class: measurement

- name: "ebusd hmu HighPressure"
  unit_of_measurement: 'bar'
  value_template: "{{value_json[\"0\"].value}}"
  state_topic: "ebusd/hmu/HighPressure"
  state_class: measurement