Ebus integration?

Hi Andrej,

Many thanks for the pointers! Meanwhile I have gotten the system running (using this adapter (ebuzzz adapter), and a virtual machine running linux).

this is my overview of vaillant stuff:

• L/W Cv Aroth.Vail.Vwl155 230V
• Vwz Meh 61 Vaillant
• Multimat.Vrc700 Vail.

However i fear that with the current setup (i.e. the configuration files that are now available) i can only read out my VRC700 heating controller and the HMU (i suppose this is a mixing unit). there are two Vaillant devices still in the list that dont have any configuration files availalbe (i.e. my heater, VWZ MEH 61) and my heatpump itself (i.e. arotherm VWL 155/2).

ebusctl info readout:

ebusctl info
version: ebusd 21.2.v21.2-36-gfb5ab14
update check: revision v21.2 available, broadcast.csv: different version available, memory.csv: different version available, vaillant/08.hmu.csv: different version available, vaillant/15.700.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
signal: acquired
symbol rate: 23
max symbol rate: 140
min arbitration micros: 121
max arbitration micros: 705
min symbol latency: 5
max symbol latency: 8
reconnects: 0
masters: 4
messages: 485
conditional: 0
poll: 81
update: 10
address 03: master #11
address 08: slave #11, scanned "MF=Vaillant;ID=HMU01;SW=0305;HW=8802", loaded "vaillant/08.hmu.csv"
address 10: master #2
address 15: slave #2, scanned "MF=Vaillant;ID=70000;SW=0613;HW=6903", loaded "vaillant/15.700.csv"
address 31: master #8, ebusd
address 36: slave #8, ebusd
address 71: master #9
address 76: slave #9, scanned "MF=Vaillant;ID=VWZIO;SW=0111;HW=0103"
address e8: slave, scanned "MF=Vaillant;ID=FMU00;SW=0204;HW=6502"

Reason is that in the current VRC700 readout with the existing configuration files, i cannot see any legionella configurations (it is definitely on my physical controller device on the wall). And therefore it will become difficult to mimick your approach. Do you have any other suggestion I could try out to get this legionella information out of my system? I do see some unknown fields in the configuration file for the vrc700, alternatively i could also try to make configuration files for the two missing devices, but truth be told, this seems quite difficult if i read the ebusd thread…

Thank you and kind regards,

Ben

Hi Ben,

try:

ebusctl find -v legio

or any other massage from your circuit…load, temp, etc…

I see you have 2 cvs files listed, I don’t have any of them in my scan… ebusctl find -v was for my the most “groundbreaking” discoveries :slight_smile:

Hi Andrej,

No unfortunately not, i have spend quite a lot of time in the configuration files, and i dont see any reference to legionella in the ones that I use.

I guess you have other equipment from vaillant, that uses other configuration files?

I would really love to read out any unknown values from the VRC700 (i know you have to use GRAB and decode, but it’s quite difficutl to get started) or try to read out the two other devices (the heatpump L/W Cv Aroth.Vail.Vwl155 230V and the boiler unit Vwz Meh 61 Vaillant) as the legionella data might be stored there, but as said, i don’t know how to get started on this (there are 1 or 2 other topics on this forum that list the exaxt same models, but alas, no feedback on those yet)… i guess i’ll just start a climate module with the data i alrady have now!

Below the output of the ebusctl find -v:

ebusctl find -v
700 AdaptHeatCurve = yesno=no
700 BankHolidayEndPeriod = no data stored
700 BankHolidayStartPeriod = no data stored
700 ccTimer.Friday = no data stored
700 ccTimer.Monday = no data stored
700 ccTimer.Saturday = no data stored
700 ccTimer.Sunday = no data stored
700 ccTimer.Thursday = no data stored
700 ccTimer.Tuesday = no data stored
700 ccTimer.Wednesday = no data stored
700 ContinuosHeating = tempv=-26
700 currenterror = no data stored
700 CylinderChargeHyst = calibrationv=5
700 CylinderChargeOffset = calibrationv=5
700 Date = no data stored
700 DisplayedOutsideTemp = tempv=15
700 errorhistory = no data stored
700 FrostOverRideTime = hoursum2=4
700 Hc1ActualFlowTempDesired = tempv=0.0
700 Hc1AutoOffMode = offmode=night
700 Hc1CircuitType = no data stored
700 Hc1ExcessTemp = calibrationv=0.0
700 Hc1FlowTemp = tempv=56.0
700 Hc1HeatCurve = =0.7
700 Hc1HeatCurveAdaption = =0.0
700 Hc1MaxFlowTempDesired = tempv=42.0
700 Hc1MinFlowTempDesired = tempv=20.0
700 Hc1MixerMovement = =0.0
700 Hc1PumpStatus = =0
700 Hc1RoomTempSwitchOn = rcmode=thermostat
700 Hc1Status = =0
700 Hc1SummerTempLimit = tempv=20.0
700 Hc2ActualFlowTempDesired = no data stored
700 Hc2AutoOffMode = no data stored
700 Hc2CircuitType = no data stored
700 Hc2ExcessTemp = no data stored
700 Hc2FlowTemp = no data stored
700 Hc2HeatCurve = no data stored
700 Hc2HeatCurveAdaption = no data stored
700 Hc2MaxFlowTempDesired = no data stored
700 Hc2MinFlowTempDesired = no data stored
700 Hc2MixerMovement = no data stored
700 Hc2PumpStatus = no data stored
700 Hc2RoomTempSwitchOn = no data stored
700 Hc2Status = no data stored
700 Hc2SummerTempLimit = no data stored
700 Hc3ActualFlowTempDesired = no data stored
700 Hc3AutoOffMode = no data stored
700 Hc3CircuitType = no data stored
700 Hc3ExcessTemp = no data stored
700 Hc3FlowTemp = no data stored
700 Hc3HeatCurve = no data stored
700 Hc3HeatCurveAdaption = no data stored
700 Hc3MaxFlowTempDesired = no data stored
700 Hc3MinFlowTempDesired = no data stored
700 Hc3MixerMovement = no data stored
700 Hc3PumpStatus = no data stored
700 Hc3RoomTempSwitchOn = no data stored
700 Hc3Status = no data stored
700 Hc3SummerTempLimit = no data stored
700 HcStorageTempBottom = tempv=-
700 HcStorageTempTop = tempv=-
700 HolidayEndPeriod = no data stored
700 HolidayStartPeriod = no data stored
700 HolidayTemp = tempv=15.0
700 HwcBankHolidayEndPeriod = no data stored
700 HwcBankHolidayStartPeriod = no data stored
700 HwcFlowTemp = tempv=65.0
700 HwcHolidayEndPeriod = no data stored
700 HwcHolidayStartPeriod = no data stored
700 HwcLockTime = minutes2=30
700 HwcMaxFlowTempDesired = tempv=80.0
700 HwcOpMode = opmode=auto
700 HwcParallelLoading = onoff=off
700 HwcSFMode = sfmode=auto
700 HwcStorageTemp = tempv=40.0
700 HwcStorageTempBottom = tempv=-
700 HwcStorageTempTop = tempv=-
700 HwcTempDesired = tempv=60.0
700 hwcTimer.Friday = from=13:20;to=19:00;from=-:-;to=-:-;from=-:-;to=-:-
700 hwcTimer.Monday = from=13:00;to=18:40;from=-:-;to=-:-;from=-:-;to=-:-
700 hwcTimer.Saturday = from=13:20;to=19:10;from=-:-;to=-:-;from=-:-;to=-:-
700 hwcTimer.Sunday = from=12:00;to=18:50;from=-:-;to=-:-;from=-:-;to=-:-
700 hwcTimer.Thursday = from=12:30;to=18:50;from=-:-;to=-:-;from=-:-;to=-:-
700 hwcTimer.Tuesday = from=13:30;to=18:50;from=-:-;to=-:-;from=-:-;to=-:-
700 hwcTimer.Wednesday = from=13:10;to=18:40;from=-:-;to=-:-;from=-:-;to=-:-
700 HydraulicScheme = =8
700 Installer1 = no data stored
700 Installer2 = no data stored
700 KeyCodeforConfigMenu = =0
700 MaintenanceDate = no data stored
700 MaintenanceDue = no data stored
700 MaxCylinderChargeTime = minutes2=70
700 MaxRoomHumidity = =40
700 MultiRelaySetting = mamode=circulation
700 noiseReductionTimer.Friday = no data stored
700 noiseReductionTimer.Monday = no data stored
700 noiseReductionTimer.Saturday = no data stored
700 noiseReductionTimer.Sunday = no data stored
700 noiseReductionTimer.Thursday = no data stored
700 noiseReductionTimer.Tuesday = no data stored
700 noiseReductionTimer.Wednesday = no data stored
700 OpMode = opmode=auto
700 OpModeEffect = zonesel=alle
700 OutsideTempAvg = tempv=13.2
700 PhoneNumber1 = no data stored
700 PhoneNumber2 = no data stored
700 PrEnergySum = energy4=8904
700 PrEnergySumHc = energy4=6322
700 PrEnergySumHcLastMonth = energy4=535
700 PrEnergySumHcThisMonth = energy4=161
700 PrEnergySumHwc = energy4=2426
700 PrEnergySumHwcLastMonth = energy4=175
700 PrEnergySumHwcThisMonth = energy4=82
700 PrFuelSum = no data stored
700 PrFuelSumHc = no data stored
700 PrFuelSumHcLastMonth = no data stored
700 PrFuelSumHcThisMonth = no data stored
700 PrFuelSumHwc = no data stored
700 PrFuelSumHwcLastMonth = no data stored
700 PrFuelSumHwcThisMonth = no data stored
700 PumpAdditionalTime = minutes2=1
700 SFMode = sfmode=auto
700 SolarYieldTotal = no data stored
700 SystemFlowTemp = tempv=55.5
700 tariffTimer.Friday = no data stored
700 tariffTimer.Monday = no data stored
700 tariffTimer.Saturday = no data stored
700 tariffTimer.Sunday = no data stored
700 tariffTimer.Thursday = no data stored
700 tariffTimer.Tuesday = no data stored
700 tariffTimer.Wednesday = no data stored
700 Time = no data stored
700 ventilationTimer.Friday = no data stored
700 ventilationTimer.Monday = no data stored
700 ventilationTimer.Saturday = no data stored
700 ventilationTimer.Sunday = no data stored
700 ventilationTimer.Thursday = no data stored
700 ventilationTimer.Tuesday = no data stored
700 ventilationTimer.Wednesday = no data stored
700 WaterPressure = pressv=2.3
700 YieldTotal = energy4=999999
700 z1ActualRoomTempDesired = tempv=22.0
700 z1BankHolidayEndPeriod = no data stored
700 z1BankHolidayStartPeriod = no data stored
700 z1CoolingTemp = tempv=24.0
700 z1CoolingTimer.Friday = no data stored
700 z1CoolingTimer.Monday = no data stored
700 z1CoolingTimer.Saturday = no data stored
700 z1CoolingTimer.Sunday = no data stored
700 z1CoolingTimer.Thursday = no data stored
700 z1CoolingTimer.Tuesday = no data stored
700 z1CoolingTimer.Wednesday = no data stored
700 z1DayTemp = tempv=22.0
700 z1HolidayEndPeriod = hto=01.01.2015
700 z1HolidayStartPeriod = hfrom=01.01.2015
700 z1HolidayTemp = tempv=15.0
700 z1Name1 = zname=VLOER
700 z1Name2 = no data stored
700 z1NightTemp = tempv=18.0
700 z1OpMode = opmode=auto
700 z1QuickVetoTemp = tempv=18.5
700 z1RoomTemp = tempv=22.4
700 z1RoomZoneMapping = zmapping=VRC700
700 z1SFMode = sfmode=auto
700 z1Shortname = no data stored
700 z1Timer.Friday = no data stored
700 z1Timer.Monday = no data stored
700 z1Timer.Saturday = no data stored
700 z1Timer.Sunday = no data stored
700 z1Timer.Thursday = no data stored
700 z1Timer.Tuesday = no data stored
700 z1Timer.Wednesday = no data stored
700 z1ValveStatus = =0
700 z2ActualRoomTempDesired = no data stored
700 z2BankHolidayEndPeriod = no data stored
700 z2BankHolidayStartPeriod = no data stored
700 z2CoolingTemp = no data stored
700 z2CoolingTimer.Friday = no data stored
700 z2CoolingTimer.Monday = no data stored
700 z2CoolingTimer.Saturday = no data stored
700 z2CoolingTimer.Sunday = no data stored
700 z2CoolingTimer.Thursday = no data stored
700 z2CoolingTimer.Tuesday = no data stored
700 z2CoolingTimer.Wednesday = no data stored
700 z2DayTemp = no data stored
700 z2HolidayEndPeriod = no data stored
700 z2HolidayStartPeriod = no data stored
700 z2HolidayTemp = no data stored
700 z2Name1 = no data stored
700 z2Name2 = no data stored
700 z2NightTemp = no data stored
700 z2OpMode = no data stored
700 z2QuickVetoTemp = no data stored
700 z2RoomTemp = no data stored
700 z2RoomZoneMapping = no data stored
700 z2SFMode = no data stored
700 z2Shortname = no data stored
700 z2Timer.Friday = no data stored
700 z2Timer.Monday = no data stored
700 z2Timer.Saturday = no data stored
700 z2Timer.Sunday = no data stored
700 z2Timer.Thursday = no data stored
700 z2Timer.Tuesday = no data stored
700 z2Timer.Wednesday = no data stored
700 z2ValveStatus = no data stored
700 z3ActualRoomTempDesired = no data stored
700 z3BankHolidayEndPeriod = no data stored
700 z3BankHolidayStartPeriod = no data stored
700 z3DayTemp = no data stored
700 z3HolidayEndPeriod = no data stored
700 z3HolidayStartPeriod = no data stored
700 z3HolidayTemp = no data stored
700 z3Name1 = no data stored
700 z3Name2 = no data stored
700 z3NightTemp = no data stored
700 z3OpMode = no data stored
700 z3QuickVetoTemp = no data stored
700 z3RoomTemp = no data stored
700 z3RoomZoneMapping = no data stored
700 z3SFMode = no data stored
700 z3Shortname = no data stored
700 z3ValveStatus = no data stored
broadcast datetime = no data stored
broadcast error = no data stored
broadcast hwcStatus = no data stored
broadcast id = no data stored
broadcast id = no data stored
broadcast load = no data stored
broadcast outsidetemp = temp2=15.000
broadcast signoflife = no data stored
broadcast vdatetime = time=15:54:25;date=17.05.2021
general valuerange = no data stored
hmu ConsumptionThisYear10 = no data stored
hmu ConsumptionThisYear11 = no data stored
hmu ConsumptionThisYear12 = no data stored
hmu ConsumptionThisYear1 = no data stored
hmu ConsumptionThisYear2 = no data stored
hmu ConsumptionThisYear3 = no data stored
hmu ConsumptionThisYear4 = no data stored
hmu ConsumptionThisYear5 = no data stored
hmu ConsumptionThisYear6 = no data stored
hmu ConsumptionThisYear7 = no data stored
hmu ConsumptionThisYear8 = no data stored
hmu ConsumptionThisYear9 = no data stored
hmu ConsumptionTotal = energy=8830
hmu currenterror = no data stored
hmu DateTime = no data stored
hmu EnergyCool = energy=0
hmu EnergyHc = energy=252
hmu errorhistory = no data stored
hmu Hours = energy=13343
hmu HoursCool = energy=0
hmu HoursHc = energy=3054
hmu SetMode = hcmode=off;flowtempdesired=0.0;hwctempdesired=-;hwcflowtempdesired=-;disablehc=0;disablehwctapping=1;disablehwcload=1;remoteControlHcPump=1;releaseBackup=0;releaseCooling=0
hmu State = energy=0;energy=252;onoff=on;state=ready
hmu Status01 = temp1=55.0;temp1=55.0;temp2=-;temp1=-;temp1=-;pumpstate=off
hmu Status02 = no data stored
hmu Status16 = no data stored
hmu Status = no data stored
hmu StatusCirPump = =on
hmu YieldThisYear10 = no data stored
hmu YieldThisYear11 = no data stored
hmu YieldThisYear12 = no data stored
hmu YieldThisYear1 = no data stored
hmu YieldThisYear2 = no data stored
hmu YieldThisYear3 = no data stored
hmu YieldThisYear4 = no data stored
hmu YieldThisYear5 = no data stored
hmu YieldThisYear6 = no data stored
hmu YieldThisYear7 = no data stored
hmu YieldThisYear8 = no data stored
hmu YieldThisYear9 = no data stored
hmu YieldTotal = energy=16792
memory eeprom = no data stored
memory ram = no data stored
scan id = no data stored
scan.08  = MF=Vaillant;ID=HMU01;SW=0305;HW=8802
scan.08 id = prefix=??;year=??;week=??;product=??????????;supplier=????;counter=??????;suffix=??
scan.15  = MF=Vaillant;ID=70000;SW=0613;HW=6903
scan.15 id = prefix=21;year=19;week=33;product=0020171315;supplier=0082;counter=020946;suffix=N5
scan.76  = MF=Vaillant;ID=VWZIO;SW=0111;HW=0103
scan.76 id = prefix=21;year=19;week=01;product=0020180703;supplier=1610;counter=005045;suffix=N7

What is result of:
ebusctl find -w load

For heating hot water I use load command…to load water tank with hot water:

ebusctl w -c hwc load on

and then heat pump loads water tank with hot water. But circuit is different in your case.
Did you check any of cvs files on GitHub - john30/ebusd-configuration: ebusd configuration files for your device?

Hi Andrej,

result is as follows:

ebusctl find -w load
700 HwcParallelLoading = no data stored

Currently parallel heating of warm water and heating is off for our heat pump, i think the installer advised against that… no idea why though…

using your command for a full load would use the heatpump though, and not the “pure electric emergency heater” right?

thanks!

Ben

It depends how the backup is set. I use:

  • backup mode hwc → only backup
  • backup type - > internal heat and water
  • storage temp desired stop - > 75°C or 65°C or 55°C
  • storage temp desired start - > above current hot water temperature

How did you configure path for cvs files in ebusd? Configpath=?
Maybe try asking here: Discussion – ebusd or Issues · john30/ebusd-configuration · GitHub

Hi all… I want use ebus adapter 3 on wifi with my boiler GAS Vaillant VSC206 4-5. Is any user which use it with Vaillant Boiler ? I have with my vaillant VRC700 Multimatic and it show gas and energy consuption.
But i have also Vaillant Gateway VR920 but in app Android Vaillant not show consuption… only show in Multimatic VRC700. Is any chance to read consuption by ebus adapter 3 ? Please help me thanks.

Hi. Anybody know where i can download and print 3D case for this adapter ? IS any case available for it…?

I had a mini project, designing a case + integrating a gas detector connected to the EBUSD. I have it printed, it works, incl. internal gas detector fitting. If you like you can have the STL’s for this…


Not the best design I ever made (I hardly knew how Fusion360 worked), but workable to print&build. Next version I was going to make extra space for a relay (to decouple the OEM WIFI ebus thermostat and make the EBUSD the ‘boss’ on the ebus, controlling the boiler). But then I got sidetracked into building my Voron 3d printer :).

inside view, gas sensor mounted to the lid, upside down, lid hidden: Hole in the top to adjust the sensitivity for the gas sensor.

I need only fort this adapter with wifi
It is for this ?

yes, it has space for the real EBUSD V3 PCB + the Wemos D1 module plugged in. It also has space for the gas sensor but you don’t have to put that one in, it’s optional.
Anyway, Google is your friend if you want less feature-rich printable boxes: "ebus adapter 3 geh xc3 xa4use mini by" 3D Models to Print - yeggi

i found this:

good luck. Enjoy printing. Honestly, the ebusd is a beast of an ecosystem by itself. To get the most out of it one needs to learn a lot, experiment a lot, put LOTS of time in it. And as the ebus is rather German/French solution, the community in HomeAssistant (Dutch origin) is not that big. So more users in German origin homeautomation software such as FHEIM. I got it somehow working in HA but the real stuff, controlling the boiler intelligently (flow temp) based on individual planned & actual room temperatures, was not 1 but 10 steps too far. The true multi zoning and corresponding intelligent boiler control is a headache by itself.

2 Likes

Hi. I start with my adapter ebus 3. I have connected it to wifi and configure it by jumper J1 as RPI and J4 open. To wifi connected is ok. Write to wemos latest firmware john30. Then i connected to ebus in vaillant but to ebus in Vaillant Gateway VR920. POarraller connection. WHen run adapter on http show me info as show on screen. Then add configuration to my Home Assisnat as

ebusd:
  host: 192.168.xx.xx
  circuit: "700"
  port: 9999
  name: Vaillant_ebus

Ofcourse with change ip to my ip adapter…
But in HA i not found any new entity…
Please help me how i can run this adapter with my Vaillant. TO my boiler i have connected controller Multimatic VRC700. In apater only show me ebusd initial signal : YES.

Good news will be if ebusd daemon will be write as addon to Supervisor Home Assistant. It will be easiest for user whish use HassOS system… and wifi Adapter Ebus 3

there is no ‘generic’ integration possible, as far as I know, as every situation (equipment, brand, even firmware versions) can provide different attributes (and actions) based on the provided csv files which might (or not) correspond to the real devices. As long as the OEMs are not supplying all EBUS endpoints + attributes or the EBUSD end users are not reverse enigneering the missing attributes, it will always be a best-effort only.

Some attributes might match, some not, some will be missing.
There is no way that a generic integration can expose all these values (both read and write) transparantly.as native (smart) HA objects.
So you’ll have to do the hard work of picking which ones you want and write MQTT templates to pick them up/request them and expose them.

On the HA add-on, someone was indeed working on creating an HA add-on (again, not integration) but that’s just to allow the EBUSD docker container to technically run inside HA OS. It can save an extra RasPi box in certain installations (as in mine). But in a Managed HA install, one can already install the EBUSD container next to the HA Core container. It doesn’t help the integration part though.

With hindsight, I would not have gone the EBUSD route, because with ultimate power (which is EBUSD), you get lots of complexities and a small community using it HA.

The EBUSD HW module+ firmware is fine, it does it’s job very well, The subsequent handling is the problem. It’s impossible to do for 1 developer to help every person out there, figure out what kind of devices he has, try to reverse engineer the missing/wrong attributes and support all of that forever, then get them all exposed into HA as native objects. All for free and still having a life???

To a degree, this is exactly what the developer for Zigbee2MQTT is doing. But I don’t know how he does that. That’s not sustainable for 1 person.

Anyway, to get you started, below some examples how you get the EBUSD attribute values in HA:

###Bulex Thema Condens F 30/35 info via MQTT    

## HC count sensors
# absolute value in m3
  - platform: mqtt
    state_class: measurement
    name: 'bul_CountHc_m3'
    unit_of_measurement: 'm3'
    state_topic: 'ebusd/bai/PrEnergyCountHc1'
    payload_available: 'true'
    payload_not_available: 'false'
    icon: mdi:pipe
    qos: 2
    value_template: >
      {{ ((value.split(';')[0]|int) / 5434.0 )|round(3) }} 

## HWc count sensors
# absolute value in m3
  - platform: mqtt
    state_class: measurement
    name: 'bul_CountHWc_m3'
    unit_of_measurement: 'm3'
    state_topic: 'ebusd/bai/PrEnergyCountHwc1'
    payload_available: 'true'
    payload_not_available: 'false'
    icon: mdi:pipe
    qos: 2
    value_template: >
      {{ ((value.split(';')[0]|int) / 5434.0 )|round(3) }} 

###################################################################################################################
# SUM sensors   
# m3 value for utility meter usage      
  - platform: mqtt
    state_class: measurement 
    name: 'bul_SumHc_m3'
    unit_of_measurement: 'm3'
    state_topic: 'ebusd/bai/PrEnergySumHc1'
    payload_available: 'true'
    payload_not_available: 'false'
    icon: mdi:pipe
    qos: 2
    value_template: >
      {{ ((value.split(';')[0]|int) / 671809.0 )|round(3) }} 
      
  - platform: mqtt
    name: 'bul_SumHWc_m3'
    state_class: measurement 
    unit_of_measurement: 'm3'
    state_topic: 'ebusd/bai/PrEnergySumHwc1'
    payload_available: 'true'
    payload_not_available: 'false'
    icon: mdi:pipe
    qos: 2
    value_template: >
      {{ ((value.split(';')[0]|int) / 671809.0 )|round(3) }}       

###################################################################################################################

  - platform: mqtt
    name: 'bulextcf30_hchours'
    state_class: measurement
    unit_of_measurement: 'hr'
    state_topic: 'ebusd/bai/HcHours'
#    availability_topic: 'ebusd/global/signal'
    payload_available: 'true'
    payload_not_available: 'false'
    icon: mdi:pipe
    qos: 2
    value_template: >
      {{ value.split(';')[0] }}   
      
  - platform: mqtt
    name: 'bulextcf30_waterpressure'
    unit_of_measurement: 'bar'
    state_topic: 'ebusd/bai/WaterPressure'
#    availability_topic: 'ebusd/global/signal'
    payload_available: 'true'
    payload_not_available: 'false'
    icon: mdi:pipe
    qos: 2
    value_template: >
      {{ value.split(';')[0] }}  
      
  - platform: mqtt
    name: 'bulextcf30_waterpressureOK'
    state_topic: 'ebusd/bai/WaterPressure'
#    availability_topic: 'ebusd/global/signal'
    payload_available: 'true'
    payload_not_available: 'false'
    icon: mdi:pipe
    qos: 2
    value_template: >
      {{ value.split(';')[1] }}
1 Like

But how works integration for serial USB connection ?

I try to integrated my eBusd into HA via Climate integration (MQTT HVAC), but when I try to control my heater it did not response. No changes are populated to heater. I see message in MQTT Explorer but that is it.

- platform: mqtt
  name: Heat circuite
  entity_category: config
  max_temp: 30
  min_temp: 7
  precision: 0.1
  temp_step: 0.5
  temperature_unit: "C"
  modes:
    - auto
    - heat
    - cool
    - 'off'
  mode_state_template: >-
    {% set values = {
      'auto':'auto',
      'on':'heat',
      'night':'cool',
      'summer':'off'} %}
    {% set state = value_json['0']['value'] %}
    {{ values[state] if state in values.keys() else 'off' }}
  mode_state_topic:  "ebusd/470/Hc2OPMode"
  mode_state_topic:  "ebusd/470/Hc1OPMode"
  mode_command_template: >-
    {% set values = {
      'auto':'auto',
      'heat':'on',
      'cool':'night',
      'off':'summer'} %}
    {{ values[value] if value in values.keys() else 'auto' }}
  mode_command_topic: "ebusd/470/Hc1OPMode/set"
  temperature_state_topic: "ebusd/470/DisplayedHc1RoomTempDesired"
  temperature_state_template: "{{ value_json.temp1.value }}"
  temperature_low_state_topic: "ebusd/470/Hc1NightTemp"
  temperature_low_state_template: "{{ value_json.temp1.value }}"
  temperature_high_state_topic: "ebusd/470/Hc1DayTemp"
  temperature_high_state_template: "{{ value_json.temp1.value }}"
  temperature_low_command_topic: "ebusd/470/Hc1NightTemp/set"
  temperature_high_command_topic: "ebusd/470/Hc1DayTemp/set"
  current_temperature_topic: "ebusd/470/VF1"
  current_temperature_template: "{{ (value_json.temp.value | float(0)) - 4 }}"
  qos: 2
1 Like

Did you enable ebus write access in ebusd? By default that’s disabled, I read that in one of John’s comments, done to protect the users against themselves. Don’t ask me where to do, I think the ebusd wiki will have something for it.

1 Like

This is everything I could found about it in Wiki

  • /set: allows to send a write message to the eBUS (if the access level allows it, see above).

And yes I start eBus Deamon with accesslevel=* to allow any operations.