Ebus integration?

The values in the templates come from ebusctl scan result:

08;Vaillant;BAI00;0104;7803;21;18;23;0010021961;0001;005167;N4
15;Vaillant;B7V00;0422;5503;21;18;36;0020197207;0082;013759;N6

So, 0010021961 and 0020197207 are those numbers you have to replace in your setup to the corresponding values of your equipment. In my case I can also use BAI00 and B7V00 as unique identifiers as well: basically any value which allows you to uniquely identify the HW can be used here.

No, for that I have an automation which sets up ebusd to poll for me, e.g. for BAI:

    - service: mqtt.publish
      data_template:
        topic: ebusd/bai/FlowTemp/get
        payload: '?1'

This piece will run once we have scan result from ebusd meaning that ebusd can now send/receive commands to/from BAI. By this automation I instruct ebusd to set polling priority to 1 for BAI’s FlowTemp. Sending this before ebusd has scanned BAI will do nothing as bai/FlowTemp is not yet known to ebusd. This can happen when HA starts before ebusd or if ebusd restarts - for that reason we have to maintain ebusd connection/signal status changes at run time.

Well, we can have number of states here to define our state machine:

  1. ebusd started before HA and has scanned the equipment
  2. ebusd and HA started, but ebusd has not yet scanned the HW
  3. ebusd has restarted, but HA not
  4. etc.
    I have this trigger to start scanning:
- alias: 'ebusd force ebusd scanning'
  trigger:
    - platform: mqtt
      topic: "ebusd/global/signal"
      payload: 'true'
  action:
    - service: mqtt.publish
      data_template:
        topic: ebusd/scan.08/id/get
        payload: '?'
    - service: mqtt.publish
      data_template:
        topic: ebusd/scan.15/id/get
        payload: '?'

but it is not immediately correct as per my understanding ebusd/global/signal just shows that it has acquired the signal on the bus and it doesn’t mean it has scanned the equipment. So, the best is to have yet another trigger to start generic scanning, but for that there is no means at ebusd MQTT, e.g. you cannot request ebusd/scan/get or something. So, this is a trade off I took, but I do realize it leads to race conditions and might not work all the time…

WRT polling intervals. In my experiments I see that ebusd does poll the values for me: those with priority 1 are placed in the corresponding message queue and are polled in round-robin fashion one parameter at --pollinginterval seconds, e.g. if you have a single FlowTemp with priority 1 then every --pollinterval seconds, if you have 2 parameters with priority 1 then every param will be polled every 2 * (–pollinterval) seconds and so on.


  # Current action/status: expects idle, cooling, heating, drying, or off.
  action_topic: "ebusd/b7v/Hc1Status"
  action_template: >
    {% set values = { '0':'idle', '1':'heating' } %}
    {{ values[value] if value in values.keys() else 'idle' }}
  # Mode control: expects auto, off, cool, heat, dry, fan_only
  # but VRC has 0=off;1=modulating;2=thermostat
  # Map off->off, auto->modulating, heat->thermostat
  mode_state_topic: "ebusd/b7v/Hc1RoomTempSwitchOn"
  mode_state_template: >
    {% set values = { 'off':'off', 'modulating':'auto', 'thermostat':'heat' } %}
    {{ values[value] if value in values.keys() else 'idle' }}
  # FIXME: mode_command_topic has no value template, so climate control
  # will send mode as a string "modes[i]" to the MQTT topic, which
  # results in "auto" instead of "modulating" and "heat" instead of termostat
  # Work this around as described https://community.home-assistant.io/t/enhanced-version-of-mqtt-hvac-climate-platform-with-proper-history-chart/75304/31
  mode_command_topic: "quirk_ebusd_b7v_Hc1RoomTempSwitchOn_set"
  # FIXME: off requires quotes for some reason to be displayed in the card
  modes:
    - 'off'
    - auto
    - heat

Hello all

Where are we with this integration?

I’m about to jump on this ship with a Vaillant EcoTec Plus boiler, so I’m gonna need all the help in the world!

Hello!

Can someone provide the Gerber files and the components for that board?

I´ve been looking into it, but all the designs I´ve found are incomplete. I’m not sure if they are open source though…

For me MQTT based integration works for now, but it has number of flaws.
I would then recommend looking at the following promising work (WIP ATM):

https://github.com/c0fec0de/ebus

I do think this is what it should look like when we talk about ebusd integration into HA.
Let’s support @c0fec0de and his great work :wink:

@andr2000
@luci84tm
i try to figure how to configure ebus using your method.

automation:
################################################################################
# Setup ebusd messages to poll
################################################################################
  - alias: 'ebusd setup f47 polling priorities'
    trigger:
      platform: state
      entity_id: binary_sensor.ebusd_f47_connected
      to: 'on'
    action:
      # Set priority to 1 polling interval: ebusd will add all the below
      # into its message queue and will query one of the parameters per
      # polling interval
      - service: mqtt.publish
        data_template:
          topic: ebusd/f47/z1RoomTemp/get
          payload: '?1'
      # set priority to 2 polling intervals
      - service: mqtt.publish
        data_template:
          topic: ebusd/f47/z1DayTemp/get
          payload: '?2'

  - alias: 'ebusd force ebusd scanning'
    trigger:
      - platform: mqtt
        topic: "ebusd/global/signal"
        payload: 'true'
    action:
      - service: mqtt.publish
        data_template:
          topic: ebusd/scan.08/id/get
          payload: '?'
      - service: mqtt.publish
        data_template:
          topic: ebusd/scan.15/id/get
          payload: '?'

it must by in automation ?
how to know what value to fill in the field entity ?

i diden’t find the section where to put the following?

action_topic: "ebusd/b7v/Hc1Status"
  action_template: >
    {% set values = { '0':'idle', '1':'heating' } %}
    {{ values[value] if value in values.keys() else 'idle' }}
  # Mode control: expects auto, off, cool, heat, dry, fan_only
  # but VRC has 0=off;1=modulating;2=thermostat
  # Map off->off, auto->modulating, heat->thermostat
  mode_state_topic: "ebusd/b7v/Hc1RoomTempSwitchOn"
  mode_state_template: >
    {% set values = { 'off':'off', 'modulating':'auto', 'thermostat':'heat' } %}
    {{ values[value] if value in values.keys() else 'idle' }}
  # FIXME: mode_command_topic has no value template, so climate control
  # will send mode as a string "modes[i]" to the MQTT topic, which
  # results in "auto" instead of "modulating" and "heat" instead of termostat
  # Work this around as described https://community.home-assistant.io/t/enhanced-version-of-mqtt-hvac-climate-platform-with-proper-history-chart/75304/31
  mode_command_topic: "quirk_ebusd_b7v_Hc1RoomTempSwitchOn_set"
  # FIXME: off requires quotes for some reason to be displayed in the card
  modes:
    - 'off'
    - auto
    - heat
  - platform: mqtt
    name: "ebusd BAI connected"
    device_class: connectivity
    state_topic: "ebusd/scan.08/id"
    availability_topic: "ebusd/global/signal"
    payload_available: "true"
    payload_not_available: "false"
    qos: 2
    value_template: >
      {% if "0010003211" in value %}
        ON
      {% else %}
        OFF
      {% endif %}

  - platform: mqtt
    name: "ebusd f47 connected"
    device_class: connectivity
    state_topic: "ebusd/scan.15/id"
    availability_topic: "ebusd/global/signal"
    payload_available: "true"
    payload_not_available: "false"
    qos: 2
    value_template: >
      {% if "0020108135" in value %}
        ON
      {% else %}
        OFF
      {% endif %}

could you help?

You can see how it is implemented in my case here
Please read carefully all the above in this thread and pay attention to the way scan results are handled

Not sure what do you mean here. Could you please give an example?

I hope that my sample HA config answers the question what goes where, e.g. where and what the automations are etc.

thanks for your help i will check this tomorow

This seems very interesting project!


https://fromeijn.nl/connected-vaillant-to-home-assistant/

Here’s my ebus config (although im not using the integration), hopefully it will help someone (or get improved;)

sensor:
  - platform: mqtt
    name: Central Heating Pressure
    state_topic: "ebusd/bai/WaterPressure"
    value_template: "{{ value.split(';')[0] }}"
    unit_of_measurement: Bar
  - platform: mqtt
    name: Central Heating Flow Temperature
    state_topic: "ebusd/bai/FlowTemp"
    value_template: "{{ value.split(';')[0] }}"
    unit_of_measurement: "°C"
  - platform: mqtt
    name: Central Heating Desired Flow Temperature
    state_topic: "ebusd/bai/FlowTempDesired"
    value_template: "{{ value.split(';')[0] }}"
    unit_of_measurement: "°C"
  - platform: mqtt
    name: Central Heating Return Temperature
    state_topic: "ebusd/bai/ReturnTemp"
    value_template: "{{ value.split(';')[0] }}"
    unit_of_measurement: "°C"
  - platform: mqtt
    name: Central Heating Return Temperature difference
    state_topic: "ebusd/bai/ReturnTempExternal"
    value_template: "{{ value.split(';')[0] }}"
    unit_of_measurement: "°C"
  - platform: mqtt
    name: Central Heating Return Cutoff
    state_topic: "ebusd/bai/ReturnTempExternal"
    value_template: "{{ value.split(';')[1] }}"
  - platform: mqtt
    name: Hot Water Temperature
    state_topic: "ebusd/bai/HwcTemp"
    value_template: "{{ value.split(';')[0] }}"
    unit_of_measurement: "°C"
  - platform: mqtt
    name: Hot Water Max Temperature
    state_topic: "ebusd/bai/HwcTempMax"
    value_template: "{{ value.split(';')[0] }}"
    unit_of_measurement: "°C"    
  - platform: mqtt
    name: Hot Water Actual Temp Desired
    state_topic: "ebusd/f47/HwcActualTempDesired"
    unit_of_measurement: "°C"
  - platform: mqtt
    name: Hot Water Storage Temperature
    state_topic: "ebusd/bai/StorageTemp"
    value_template: "{{ value.split(';')[0] }}"
    unit_of_measurement: "°C"  
  - platform: mqtt
    name: Hot Water maximum flow
    state_topic: "ebusd/bai/HwcWaterflowMax"
    value_template: "{{ value.split(';')[0] }}"
  - platform: mqtt
    name: Central Heating 3-Way Valve Position
    state_topic: "ebusd/bai/PositionValveSet"
    value_template: "{{ value.split(';')[0] }}"
  - platform: mqtt
    name: Central Heating Partial Load
    state_topic: "ebusd/bai/PartloadHcKW"
    value_template: "{{ value.split(';')[0] }}"
    unit_of_measurement: "kW"
  - platform: mqtt
    name: Central Heating Current Power
    state_topic: "ebusd/bai/ModulationTempDesired"
    unit_of_measurement: "%"
  - platform: mqtt
    name: Central Heating Pump Power
    state_topic: "ebusd/bai/PumpPower"
    unit_of_measurement: "W"
  - platform: mqtt
    name: Central Heating energy usage
    state_topic: "ebusd/bai/PrEnergyCountHc1"
  - platform: mqtt
    name: Hot Water energy usage
    state_topic: "ebusd/bai/PrEnergyCountHwc1"
  - platform: mqtt
    name: Central Heating Average Ignition time
    state_topic: "ebusd/bai/averageIgnitiontime"
    unit_of_measurement: "s"
  - platform: mqtt
    name: Central Heating Fan Speed
    state_topic: "ebusd/bai/FanSpeed" 
    unit_of_measurement: RPM
  - platform: mqtt
    name: Central Heating Target Fan Speed
    state_topic: "ebusd/bai/TargetFanSpeed" 
    unit_of_measurement: RPM
  - platform: mqtt
    name: Central Heating Target Fan Speed Output
    state_topic: "ebusd/bai/TargetFanSpeedOutput"
    unit_of_measurement: RPM
  - platform: mqtt
    name: Central Heating Current Error
    state_topic: "ebusd/bai/currenterror"
  - platform: mqtt
    name: Central Heating Current Room Temperature
    state_topic: "ebusd/f47/RoomTemp"
    value_template: "{{ value.split(';')[0] }}"
    unit_of_measurement: "°C"
  - platform: mqtt
    name: Central Heating Outside Temperature
    state_topic: "ebusd/f47/OutsideTemp"
    value_template: "{{ value.split(';')[0] }}"
    unit_of_measurement: "°C"
  - platform: mqtt
    name: Central Heating Actual Flow Temperature Desired
    state_topic: "ebusd/f47/Hc1ActualFlowTempDesired"
    unit_of_measurement: "°C"
  - platform: mqtt
    name: Central Heating Actual Room Temperature Desired
    state_topic: "ebusd/f47/ActualRoomTempDesiredHc1"
    unit_of_measurement: "°C"

binary_sensor:
  - platform: mqtt
    name: "Central Heating Flame"
    state_topic: "ebusd/bai/Flame"
    payload_on: "on"
    payload_off: "off"
  - platform: mqtt
    name: "Central Heating Ignitor"
    state_topic: "ebusd/bai/Ignitor"
    payload_on: "on"
    payload_off: "off"
  - platform: mqtt
    name: "Central Heating Water pump state"
    state_topic: "ebusd/bai/WP"
    payload_on: "on"
    payload_off: "off"
  - platform: mqtt
    name: "Hot Water Demand"
    state_topic: "ebusd/bai/HwcDemand"
    payload_on: "yes"
    payload_off: "no"
  - platform: mqtt
    name: Central Heating Pre Cutoff active
    state_topic: "ebusd/f47/Hc1PreCutOffActive"
    payload_on: "yes"
    payload_off: "no"
  - platform: mqtt
    name: Central Heating Continuos Mode
    state_topic: "ebusd/f47/Hc1PreOrContinuosHeatingActive"
    payload_on: "yes"
    payload_off: "no"

switch:
  - platform: mqtt 
    name: 'Hot Water Switch'
    state_topic: 'ebusd/bai/HwcSwitch'
    command_topic: 'ebusd/bai/HwcSwitch/set'
    state_on: 'on'
    state_off: 'off'
    payload_on: 'on'
    payload_off: 'off'

  - platform: mqtt 
    name: 'Central Heating Switch'
    state_topic: 'ebusd/bai/HeatingSwitch'
    command_topic: 'ebusd/bai/HeatingSwitch/set'
    state_on: 'on'
    state_off: 'off'
    payload_on: 'on'
    payload_off: 'off'

input_select:
  central_heating_operation_mode:
    name: Central Heating Operation Mode
    options:
    - "Automatic"
    - "Night"
    - "Comfort"
    - "Summer"
  central_heating_temporary_mode:
    name: Central Heating Temporary Mode
    options:
    - "None"
    - "Party"
    - "Day in"
    - "Day away"

input_number:
  central_heating_heat_curve:
    name: Central Heating Heat Curve
    min: 0.20
    max: 4.00
    step: 0.05
    mode: box
  central_heating_set_day_temp:
    name: Central Heating Set Day Temperature
    min: 10
    max: 30
    step: 0.5
    unit_of_measurement: '°C'
  central_heating_set_night_temp:
    name: Central Heating Set Night Temperature
    min: 10
    max: 30
    step: 0.5
    unit_of_measurement: '°C'
  hot_water_temp_desired:
    name: Hot Water Temperature Desired
    min: 30
    max: 65
    step: 0.5
    mode: slider
    unit_of_measurement: '°C'

automation:
  - alias: ebusd_time_update
    initial_state: 'on'
    trigger:
      - platform: time
        at: '00:00:00'
    action:
      - service: mqtt.publish
        data:
          topic: 'ebusd/f47/Date/set'
          payload_template: "{{ now().strftime('%d.%m.%Y') }}"
      - service: mqtt.publish
        data:
          topic: 'ebusd/f47/Time/set'
          payload_template: "{{ now().strftime('%H:%M:%S') }}"

  - alias: Set Central Heating Operation Mode
    initial_state: 'on'
    trigger:
      - platform: state
        entity_id: input_select.central_heating_operation_mode
    action:
      service: mqtt.publish
      data_template:
        topic: 'ebusd/f47/Hc1OPMode/set'
        payload: >
          {% if is_state('input_select.central_heating_operation_mode','Automatic') %}
          auto
          {% elif is_state('input_select.central_heating_operation_mode','Night') %}
          night
          {% elif is_state('input_select.central_heating_operation_mode','Comfort') %}
          comfort
          {% elif is_state('input_select.central_heating_operation_mode','Summer') %}
          summer
          {% endif %}

  - alias: Get Central Heating Operation Mode
    initial_state: 'on'
    trigger:
      - platform: mqtt
        topic: 'ebusd/f47/Hc1OPMode'
    action:
      service: input_select.select_option
      data_template:
        entity_id: input_select.central_heating_operation_mode
        option: >
          {% set opmode = {
            'auto': 'Automatic',
            'night': 'Night',
            'comfort': 'Comfort',
            'summer': 'Summer' } %}
          {{ opmode.get('trigger.payload','Automatic') }}

  - alias: Set Central Heating Temporary Mode
    initial_state: 'on'
    trigger:
      - platform: state
        entity_id: input_select.central_heating_temporary_mode
    action:
      service: mqtt.publish
      data_template:
        topic: 'ebusd/f47/Hc1OPMode/set'
        payload: >
          {% if is_state('input_select.central_heating_temporary_mode','None') %}
          none
          {% elif is_state('input_select.central_heating_temporary_mode','Day away') %}
          onedayholiday
          {% elif is_state('input_select.central_heating_temporary_mode','Day in') %}
          onedaybankholiday
          {% elif is_state('input_select.central_heating_temporary_mode','Party') %}
          party
          {% endif %}

  - alias: Get Central Heating Temporary Mode
    initial_state: 'on'
    trigger:
      - platform: mqtt
        topic: 'ebusd/f47/Hc1OPMode'
    action:
      service: input_select.select_option
      data_template:
        entity_id: input_select.central_heating_temporary_mode
        option: >
          {% set opmode = {
            'none': 'None',
            'onedayholiday': 'Day away',
            'onedaybankholiday': 'Day in',
            'party': 'Party' } %}
          {{ opmode.get('trigger.payload','None') }}

  - alias: Set Central Heating Heat Curve
    initial_state: 'on'
    trigger:
      - platform: state
        entity_id: input_number.central_heating_heat_curve
    action: 
      service: mqtt.publish
      data_template:
        topic: 'ebusd/f47/Hc1HeatCurve/set'
        payload: '{{ states.input_number.central_heating_heat_curve.state | float }}'

  - alias: Get Central Heating Heat Curve
    initial_state: 'on'
    trigger:
      - platform: mqtt
        topic: 'ebusd/f47/Hc1HeatCurve'
    action:
      service: input_number.set_value
      data_template:
        entity_id: input_number.central_heating_heat_curve
        value: '{{ trigger.payload | float }}'

  - alias: Set Central Heating Set Day Temperature
    initial_state: 'on'
    trigger:
      - platform: state
        entity_id: input_number.central_heating_set_day_temp
    action: 
      service: mqtt.publish
      data_template:
        topic: 'ebusd/f47/Hc1DayTemp/set'
        payload: '{{ states.input_number.central_heating_set_day_temp.state | int }}'

  - alias: Get Central Heating Set Day Temperature
    initial_state: 'on'
    trigger:
      - platform: mqtt
        topic: 'ebusd/f47/Hc1DayTemp'
    action:
      service: input_number.set_value
      data_template:
        entity_id: input_number.central_heating_set_day_temp
        value: '{{ trigger.payload | int }}'

  - alias: Set Central Heating Set Night Temperature
    initial_state: 'on'
    trigger:
      - platform: state
        entity_id: input_number.central_heating_set_night_temp
    action: 
      service: mqtt.publish
      data_template:
        topic: 'ebusd/f47/Hc1NightTemp/set'
        payload: '{{ states.input_number.heating_set_night_temp.state | int }}'

  - alias: Get Central Heating Set Night Temperature
    initial_state: 'on'
    trigger:
      - platform: mqtt
        topic: 'ebusd/f47/Hc1DayTemp'
    action:
      service: input_number.set_value
      data_template:
        entity_id: input_number.heating_set_night_temp
        value: '{{ trigger.payload | int }}'

  - alias: Set Hot Water Temperature Desired
    initial_state: 'on'
    trigger:
      - platform: state
        entity_id: input_number.hot_water_temp_desired
    action: 
      service: mqtt.publish
      data_template:
        topic: 'ebusd/f47/HwcTempDesired/set'
        payload: '{{ states.input_number.hot_water_temp_desired.state | int }}'

  - alias: Get Hot Water Temperature Desired
    initial_state: 'on'
    trigger:
      - platform: mqtt
        topic: 'ebusd/f47/HwcTempDesired'
    action:
      service: input_number.set_value
      data_template:
        entity_id: input_number.hot_water_temp_desired
        value: '{{ trigger.payload | int }}'

  - alias: ebusd_mqtt_update
    initial_state: 'on'
    trigger:
      - platform: time_pattern
        minutes: '/2'
    action:
      - service: mqtt.publish
        data:
          topic: 'ebusd/bai/ReturnTemp/get'
          payload: '1'
      - service: mqtt.publish
        data:
          topic: 'ebusd/bai/ReturnTempExternal/get'
          payload: '1'
      - service: mqtt.publish
        data:
          topic: 'ebusd/bai/WaterPressure/get'
          payload: '1'
      - service: mqtt.publish
        data:
          topic: 'ebusd/bai/FlowTemp/get'
          payload: '1'
      - service: mqtt.publish
        data:
          topic: 'ebusd/bai/FlowTempDesired/get'
          payload: '1'
      - service: mqtt.publish
        data:
          topic: 'ebusd/bai/HwcTemp/get'
          payload: '1' 
      - service: mqtt.publish
        data:
          topic: 'ebusd/bai/HwcTempMax/get'
          payload: '1' 
      - service: mqtt.publish
        data:
          topic: 'ebusd/bai/HwcWaterflowMax/get'
          payload: '1' 
      - service: mqtt.publish
        data:
          topic: 'ebusd/f47/HwcTempDesired/get'
          payload: '1' 
      - service: mqtt.publish
        data:
          topic: 'ebusd/f47/HwcActualTempDesired/get'
          payload: '1'
      - service: mqtt.publish
        data:
          topic: 'ebusd/f47/HwcOPMode/get'
          payload: '1'
      - service: mqtt.publish
        data:
          topic: 'ebusd/bai/StorageTemp/get'
          payload: '1' 
      - service: mqtt.publish
        data:
          topic: 'ebusd/bai/PositionValveSet/get'
          payload: '1'    
      - service: mqtt.publish
        data:
          topic: 'ebusd/bai/PartloadHcKW/get'
          payload: '1'
      - service: mqtt.publish
        data:
          topic: 'ebusd/bai/ModulationTempDesired/get'
          payload: '1'
      - service: mqtt.publish
        data:
          topic: 'ebusd/bai/PumpPower/get'
          payload: '1'
      - service: mqtt.publish
        data:
          topic: 'ebusd/bai/PrEnergyCountHc1/get'
          payload: '1'
      - service: mqtt.publish
        data:
          topic: 'ebusd/bai/PrEnergyCountHwc1/get'
          payload: '1'
      - service: mqtt.publish
        data:
          topic: 'ebusd/bai/averageIgnitionTime/get'
          payload: '1'
      - service: mqtt.publish
        data:
          topic: 'ebusd/bai/FanSpeed/get'
          payload: '1'
      - service: mqtt.publish
        data:
          topic: 'ebusd/bai/TargetFanSpeed/get'
          payload: '1'
      - service: mqtt.publish
        data:
          topic: 'ebusd/bai/TargetFanSpeedOutput/get'
          payload: '1'
      - service: mqtt.publish
        data:
          topic: 'ebusd/bai/currenterror/get'
          payload: '1'
      - service: mqtt.publish
        data:
          topic: 'ebusd/bai/HeatingSwitch/get'
          payload: '1'
      - service: mqtt.publish
        data:
          topic: 'ebusd/bai/Flame/get'
          payload: '1'
      - service: mqtt.publish
        data:
          topic: 'ebusd/bai/Ignitor/get'
          payload: '1'
      - service: mqtt.publish
        data:
          topic: 'ebusd/bai/WP/get'
          payload: '1'
      - service: mqtt.publish
        data:
          topic: 'ebusd/bai/HwcSwitch/get'
          payload: '1'
      - service: mqtt.publish
        data:
          topic: 'ebusd/bai/HwcDemand/get'
          payload: '1'
      - service: mqtt.publish
        data:
          topic: 'ebusd/bai/HeatingSwitch/get'
          payload: '1'
      - service: mqtt.publish
        data:
          topic: 'ebusd/f47/Hc1PreCutOffActive/get'
          payload: '1'
      - service: mqtt.publish
        data:
          topic: 'ebusd/f47/Hc1OPMode/get'
          payload: '1'
      - service: mqtt.publish
        data:
          topic: 'ebusd/f47/Hc1SFMode/get'
          payload: '1'
      - service: mqtt.publish
        data:
          topic: 'ebusd/f47/Hc1DayTemp/get'
          payload: '1'
      - service: mqtt.publish
        data:
          topic: 'ebusd/f47/Hc1NightTemp/get'
          payload: '1'
      - service: mqtt.publish
        data:
          topic: 'ebusd/f47/Hc1HeatCurve/get'
          payload: '1'
      - service: mqtt.publish
        data:
          topic: 'ebusd/f47/Hc1ActualFlowTempDesired/get'
          payload: '1'
      - service: mqtt.publish
        data:
          topic: 'ebusd/f47/ActualRoomTempDesiredHc1/get'
          payload: '1'
      - service: mqtt.publish
        data:
          topic: 'ebusd/f47/Hc1PreOrContinuosHeatingActive/get'
          payload: '1'
3 Likes

Hi @dinth
I’d just used your ebusd-configuration and “everything” started working! Thank you for sharing your config.
Do you have made any improvements since posting? Are you willing to share your definitiion of your “climate” entity?
Thanks!

Welcome on the forum @GrumpyMeow
The main improvement on my todo list is updating ebusd to dev version. Im not sure if its possible or make sense to create a climate component out of it. Unfortunately with VRC470 (or other controller) the control over the boiler is very limited - just target temperatures, modes and heat curve.
It should be possible to control the boiler directly with VRC470 disconnected, but would require very complex logic.

ATM I can only add my lovelace config here:

entities:
  - entity: switch.central_heating_switch
  - entity: input_select.central_heating_operation_mode
  - entity: input_select.central_heating_temporary_mode
  - entity: input_number.central_heating_set_day_temp
  - entity: input_number.central_heating_set_night_temp
  - entity: input_number.central_heating_heat_curve
  - entity: binary_sensor.central_heating_ignitor
  - entity: binary_sensor.central_heating_flame
  - entity: sensor.central_heating_partial_load
  - entity: sensor.central_heating_current_power
  - entity: sensor.central_heating_3_way_valve_position
  - entity: sensor.central_heating_pressure
  - entity: binary_sensor.central_heating_water_pump_state
  - entity: sensor.central_heating_current_power
  - entity: sensor.central_heating_flow_temperature
  - entity: sensor.central_heating_desired_flow_temperature
  - entity: sensor.central_heating_actual_flow_temperature_desired
  - entity: sensor.central_heating_actual_room_temperature_desired
  - entity: sensor.central_heating_current_room_temperature
  - entity: sensor.central_heating_outside_temperature
  - entity: sensor.central_heating_return_temperature
  - entity: sensor.central_heating_return_temperature_difference
  - entity: sensor.central_heating_return_cutoff
  - entity: sensor.central_heating_pump_power
  - entity: sensor.central_heating_fan_speed
  - entity: sensor.central_heating_target_fan_speed
  - entity: sensor.central_heating_target_fan_speed_output
  - entity: sensor.central_heating_energy_usage
  - entity: sensor.central_heating_current_error
  - entity: sensor.central_heating_average_ignition_time
  - entity: binary_sensor.central_heating_continuos_mode
  - entity: binary_sensor.central_heating_pre_cutoff_active
  - entity: sensor.central_heating_average_ignition_time
show_header_toggle: false
type: entities

Aha. i see what you did there. Interesting.
For now i’ll stick to Climate as i can expose that entity to Google Home/Assistant.
Thanks again!

My previous code was severly bugged and lack important functionalities. Here’s a better version:

sensor:
  - platform: mqtt
    name: Central Heating Pressure
    unique_id: ebusd_central_heating_pressure
    device:
      identifiers: "ebusd_bai"
      via_device: "ebusd"
    state_topic: "ebusd/bai/WaterPressure"
    value_template: "{{ value.split(';')[0] }}"
    unit_of_measurement: Bar
  - platform: mqtt
    name: Central Heating Flow Temperature
    state_topic: "ebusd/bai/FlowTemp"
    unique_id: ebusd_central_heating_flow_temperature
    device:
      identifiers: "ebusd_bai"
      via_device: "ebusd"
    value_template: "{{ value.split(';')[0] }}"
    unit_of_measurement: "°C"
  - platform: mqtt
    name: Central Heating Desired Flow Temperature
    unique_id: ebusd_central_heating_desired_flow_temperature
    device:
      identifiers: "ebusd_bai"
      via_device: "ebusd"
    state_topic: "ebusd/bai/FlowTempDesired"
    value_template: "{{ value.split(';')[0] }}"
    unit_of_measurement: "°C"
  - platform: mqtt
    name: Central Heating Return Temperature
    unique_id: ebusd_central_return_temperature
    device:
      identifiers: "ebusd_bai"
      via_device: "ebusd"
    state_topic: "ebusd/bai/ReturnTemp"
    value_template: "{{ value.split(';')[0] }}"
    unit_of_measurement: "°C"
  - platform: mqtt
    name: Central Heating Return Temperature difference
    unique_id: ebusd_central_heating_return_temperature_difference
    device:
      identifiers: "ebusd_bai"
      via_device: "ebusd"
    state_topic: "ebusd/bai/ReturnTempExternal"
    value_template: "{{ value.split(';')[0] }}"
    unit_of_measurement: "°C"
  - platform: mqtt
    name: Central Heating Return Cutoff
    unique_id: ebusd_central_heating_return_cutoff
    device:
      identifiers: "ebusd_bai"
      via_device: "ebusd"
    state_topic: "ebusd/bai/ReturnTempExternal"
    value_template: "{{ value.split(';')[1] }}"
  - platform: mqtt
    name: Hot Water Temperature
    unique_id: ebusd_hot_water_temperature
    device:
      identifiers: "ebusd_bai"
      via_device: "ebusd"
    state_topic: "ebusd/bai/HwcTemp"
    value_template: "{{ value.split(';')[0] }}"
    unit_of_measurement: "°C"
  - platform: mqtt
    name: Hot Water Max Temperature
    unique_id: ebusd_hot_water_temperature
    device:
      identifiers: "ebusd_bai"
      via_device: "ebusd"
    state_topic: "ebusd/bai/HwcTempMax"
    value_template: "{{ value.split(';')[0] }}"
    unit_of_measurement: "°C"
  - platform: mqtt
    name: Hot Water Actual Temp Desired
    unique_id: ebusd_hot_water_actual_temp_desired
    device:
      identifiers: "ebusd_f47"
      via_device: "ebusd"
    state_topic: "ebusd/f47/HwcActualTempDesired"
    unit_of_measurement: "°C"
  - platform: mqtt
    name: Hot Water Storage Temperature
    unique_id: ebusd_hot_water_storage_temperature
    device:
      identifiers: "ebusd_bai"
      via_device: "ebusd"
    state_topic: "ebusd/bai/StorageTemp"
    value_template: "{{ value.split(';')[0] }}"
    unit_of_measurement: "°C"
  - platform: mqtt
    name: Hot Water maximum flow
    unique_id: ebusd_hot_water_maximum_flow
    device:
      identifiers: "ebusd_bai"
      via_device: "ebusd"
    state_topic: "ebusd/bai/HwcWaterflowMax"
    value_template: "{{ value.split(';')[0] }}"
  - platform: mqtt
    name: Central Heating 3-Way Valve Position
    unique_id: ebusd_central_heating_3_way_valve_position
    device:
      identifiers: "ebusd_bai"
      via_device: "ebusd"
    state_topic: "ebusd/bai/PositionValveSet"
    value_template: "{{ value.split(';')[0] }}"
  - platform: mqtt
    name: Central Heating Partial Load
    unique_id: ebusd_central_heating_partial_load
    device:
      identifiers: "ebusd_bai"
      via_device: "ebusd"
    state_topic: "ebusd/bai/PartloadHcKW"
    value_template: "{{ value.split(';')[0] }}"
    unit_of_measurement: "kW"
  - platform: mqtt
    name: Central Heating Current Power
    unique_id: ebusd_central_current_power
    device:
      identifiers: "ebusd_bai"
      via_device: "ebusd"
    state_topic: "ebusd/bai/ModulationTempDesired"
    unit_of_measurement: "%"
  - platform: mqtt
    name: Central Heating Pump Power
    unique_id: ebusd_central_heating_pump_power
    device:
      identifiers: "ebusd_bai"
      via_device: "ebusd"
    state_topic: "ebusd/bai/PumpPower"
    unit_of_measurement: "W"
  - platform: mqtt
    name: Central Heating energy usage
    unique_id: ebusd_central_heating_energy_usage
    device:
      identifiers: "ebusd_bai"
      via_device: "ebusd"
    state_topic: "ebusd/bai/PrEnergyCountHc1"
  - platform: mqtt
    name: Hot Water energy usage
    unique_id: ebusd_hot_water_energy_usage
    device:
      identifiers: "ebusd_bai"
      via_device: "ebusd"
    state_topic: "ebusd/bai/PrEnergyCountHwc1"
  - platform: mqtt
    name: Central Heating Average Ignition time
    unique_id: ebusd_central_heating_average_ignition_time
    device:
      identifiers: "ebusd_bai"
      via_device: "ebusd"
    state_topic: "ebusd/bai/averageIgnitiontime"
    unit_of_measurement: "s"
  - platform: mqtt
    name: Central Heating Fan Speed
    unique_id: ebusd_central_heating_fan_speed
    device:
      identifiers: "ebusd_bai"
      via_device: "ebusd"
    state_topic: "ebusd/bai/FanSpeed"
    unit_of_measurement: RPM
  - platform: mqtt
    name: Central Heating Target Fan Speed
    unique_id: ebusd_central_heating_target_fan_speed
    device:
      identifiers: "ebusd_bai"
      via_device: "ebusd"
    state_topic: "ebusd/bai/TargetFanSpeed"
    unit_of_measurement: RPM
  - platform: mqtt
    name: Central Heating Target Fan Speed Output
    unique_id: ebusd_central_heating_target_fan_speed_output
    device:
      identifiers: "ebusd_bai"
      via_device: "ebusd"
    state_topic: "ebusd/bai/TargetFanSpeedOutput"
    unit_of_measurement: RPM
  - platform: mqtt
    name: Central Heating Current Error
    unique_id: ebusd_central_heating_current_error
    device:
      identifiers: "ebusd_bai"
      via_device: "ebusd"
    state_topic: "ebusd/bai/currenterror"
  - platform: mqtt
    name: Central Heating Current Room Temperature
    unique_id: ebusd_central_heating_current_room_temperature
    device:
      identifiers: "ebusd_f47"
      via_device: "ebusd"
    state_topic: "ebusd/f47/RoomTemp"
    value_template: "{{ value.split(';')[0] }}"
    unit_of_measurement: "°C"
  - platform: mqtt
    name: Central Heating Outside Temperature
    unique_id: ebusd_central_heating_outside_temperature
    device:
      identifiers: "ebusd_f47"
      via_device: "ebusd"
    state_topic: "ebusd/f47/OutsideTemp"
    value_template: "{{ value.split(';')[0] }}"
    unit_of_measurement: "°C"
  - platform: mqtt
    name: Central Heating Actual Flow Temperature Desired
    unique_id: ebusd_central_heating_actual_flow_temperature_desired
    device:
      identifiers: "ebusd_f47"
      via_device: "ebusd"
    state_topic: "ebusd/f47/Hc1ActualFlowTempDesired"
    unit_of_measurement: "°C"
  - platform: mqtt
    name: Central Heating Actual Room Temperature Desired
    unique_id: ebusd_central_heating_actual_room_temperature_desired
    device:
      identifiers: "ebusd_f47"
      via_device: "ebusd"
    state_topic: "ebusd/f47/ActualRoomTempDesiredHc1"
    unit_of_measurement: "°C"

binary_sensor:
  - platform: mqtt
    name: "Central Heating Flame"
    unique_id: ebusd_central_heating_flame
    device:
      identifiers: "ebusd_bai"
      via_device: "ebusd"
    state_topic: "ebusd/bai/Flame"
    payload_on: "on"
    payload_off: "off"
  - platform: mqtt
    name: "Central Heating Ignitor"
    unique_id: ebusd_central_heating_ignitor
    device:
      identifiers: "ebusd_bai"
      via_device: "ebusd"
    state_topic: "ebusd/bai/Ignitor"
    payload_on: "on"
    payload_off: "off"
  - platform: mqtt
    name: "Central Heating Water pump state"
    unique_id: ebusd_central_heating_water_pump_state
    device:
      identifiers: "ebusd_bai"
      via_device: "ebusd"
    state_topic: "ebusd/bai/WP"
    payload_on: "on"
    payload_off: "off"
  - platform: mqtt
    name: "Hot Water Demand"
    unique_id: ebusd_central_heating_hot_water_demand
    device:
      identifiers: "ebusd_bai"
      via_device: "ebusd"
    state_topic: "ebusd/bai/HwcDemand"
    payload_on: "yes"
    payload_off: "no"
  - platform: mqtt
    name: Central Heating Pre Cutoff active
    unique_id: ebusd_central_heating_pre_cutoff_active
    device:
      identifiers: "ebusd_f47"
      via_device: "ebusd"
    state_topic: "ebusd/f47/Hc1PreCutOffActive"
    payload_on: "yes"
    payload_off: "no"
  - platform: mqtt
    name: Central Heating Continuos Mode
    unique_id: ebusd_central_heating_continuos_mode
    device:
      identifiers: "ebusd_f47"
      via_device: "ebusd"
    state_topic: "ebusd/f47/Hc1PreOrContinuosHeatingActive"
    payload_on: "yes"
    payload_off: "no"

switch:
  - platform: mqtt
    name: "Hot Water Switch"
    unique_id: ebusd_hot_water_switch
    device:
      identifiers: "ebusd_bai"
      via_device: "ebusd"
    state_topic: "ebusd/bai/HwcSwitch"
    command_topic: "ebusd/bai/HwcSwitch/set"
    state_on: "on"
    state_off: "off"
    payload_on: "on"
    payload_off: "off"

  - platform: mqtt
    name: "Central Heating Switch"
    unique_id: ebusd_central_heating_switch
    device:
      identifiers: "ebusd_bai"
      via_device: "ebusd"
    state_topic: "ebusd/bai/HeatingSwitch"
    command_topic: "ebusd/bai/HeatingSwitch/set"
    state_on: "on"
    state_off: "off"
    payload_on: "on"
    payload_off: "off"

input_select:
  central_heating_operation_mode:
    name: Central Heating Operation Mode
    options:
      - "Automatic"
      - "Night"
      - "Comfort"
      - "Summer"
  central_heating_temporary_mode:
    name: Central Heating Temporary Mode
    options:
      - "None"
      - "Party"
      - "Day in"
      - "Day away"

input_number:
  central_heating_heat_curve:
    name: Central Heating Heat Curve
    min: 0.20
    max: 4.00
    step: 0.05
    mode: box
  central_heating_actual_room_temp_desired:
    min: 5
    max: 30
    step: 0.5
    unit_of_measurement: "°C"
  central_heating_set_day_temp:
    name: Central Heating Set Day Temperature
    min: 5
    max: 30
    step: 0.5
    unit_of_measurement: "°C"
  central_heating_set_night_temp:
    name: Central Heating Set Night Temperature
    min: 5
    max: 30
    step: 0.5
    unit_of_measurement: "°C"
  hot_water_temp_desired:
    name: Hot Water Temperature Desired
    min: 30
    max: 65
    step: 0.5
    mode: slider
    unit_of_measurement: "°C"

automation:
  - alias: ebusd_time_update
    initial_state: on
    trigger:
      - platform: time
        at: "00:00:00"
    action:
      - service: mqtt.publish
        data:
          topic: "ebusd/f47/Date/set"
          payload_template: "{{ now().strftime('%d.%m.%Y') }}"
      - service: mqtt.publish
        data:
          topic: "ebusd/f47/Time/set"
          payload_template: "{{ now().strftime('%H:%M:%S') }}"

  - id: ebus-error-notification-on
    alias: Ebus error notification on
    initial_state: on
    trigger:
      - platform: state
        entity_id: sensor.ebus_central_heating_current_error
        from: "-;-;-;-;-"
    action:
      - service: notify.notifier_kodi_living_room
        data:
          title: "Boiler ebus"
          message: 'Boiler error detected! Error code: {{ states("sensor.ebus_central_heating_current_error") }}'
      - service: notify.notifier_kodi_guest_bedroom
        data:
          title: "Boiler ebus"
          message: 'Boiler error detected! Error code: {{ states("sensor.ebus_central_heating_current_error") }}'
      - service: notify.notifier_telegram
        data:
          title: "Boiler ebus"
          message: 'Boiler error detected! Error code: {{ states("sensor.ebus_central_heating_current_error") }}'

  - id: ebus-error-notification-off
    alias: Ebus error notification off
    initial_state: on
    trigger:
      - platform: state
        entity_id: sensor.ebus_central_heating_current_error
        to: "-;-;-;-;-"
    action:
      - service: notify.notifier_telegram
        data:
          title: "Boiler ebus"
          message: "Boiler error cleared!"

  - alias: Set Central Heating Operation Mode
    initial_state: on
    trigger:
      - platform: state
        entity_id: input_select.central_heating_operation_mode
    action:
      - service: automation.turn_off
        entity_id: automation.get_central_heating_operation_mode
      - service: mqtt.publish
        data_template:
          topic: "ebusd/f47/Hc1OPMode/set"
          payload: >
            {% set opmode = {
              'Automatic': 'auto',
              'Night': 'night',
              'Comfort': 'on',
              'Summer': 'summer' } %}
            {{ opmode.get(trigger.to_state.state,'Automatic') }}
      - delay: 00:00:05
      - service: automation.turn_on
        entity_id: automation.get_central_heating_operation_mode

  - alias: Get Central Heating Operation Mode
    initial_state: on
    trigger:
      - platform: mqtt
        topic: "ebusd/f47/Hc1OPMode"
    action:
      service: input_select.select_option
      data_template:
        entity_id: input_select.central_heating_operation_mode
        option: >
          {% set opmode = {
            'auto': 'Automatic',
            'night': 'Night',
            'on': 'Comfort',
            'summer': 'Summer' } %}
          {{ opmode.get('trigger.payload','auto') }}

  - alias: Set Central Heating Temporary Mode
    initial_state: on
    trigger:
      - platform: state
        entity_id: input_select.central_heating_temporary_mode
    action:
      - service: automation.turn_off
        entity_id: automation.get_central_heating_temporary_mode
      - service: mqtt.publish
        data_template:
          topic: "ebusd/f47/Hc1SFMode/set"
          payload: >
            {% set tpmode = {
              'None': 'none',
              'Day away': 'onedayholiday',
              'Day in': 'onedaybankholiday',
              'Party': 'party' } %}
            {{ tpmode.get(trigger.to_state.state,'None') }}
      - delay: 00:00:05
      - service: automation.turn_on
        entity_id: automation.get_central_heating_temporary_mode

  - alias: Get Central Heating Temporary Mode
    initial_state: on
    trigger:
      - platform: mqtt
        topic: "ebusd/f47/Hc1SFMode"
    action:
      service: input_select.select_option
      data_template:
        entity_id: input_select.central_heating_temporary_mode
        option: >
          {% set tpmode = {
            'none': 'None',
            'onedayholiday': 'Day away',
            'onedaybankholiday': 'Day in',
            'party': 'Party' } %}
          {{ tpmode.get('trigger.payload','none') }}

  - alias: Set Central Heating Heat Curve
    initial_state: on
    trigger:
      - platform: state
        entity_id: input_number.central_heating_heat_curve
    action:
      service: mqtt.publish
      data_template:
        topic: "ebusd/f47/Hc1HeatCurve/set"
        payload: "{{ states.input_number.central_heating_heat_curve.state | float }}"

  - alias: Get Central Heating Heat Curve
    initial_state: on
    trigger:
      - platform: mqtt
        topic: "ebusd/f47/Hc1HeatCurve"
    action:
      service: input_number.set_value
      data_template:
        entity_id: input_number.central_heating_heat_curve
        value: "{{ trigger.payload | float }}"

  - alias: Set Central Heating Set Day Temperature
    initial_state: on
    trigger:
      - platform: state
        entity_id: input_number.central_heating_set_day_temp
    action:
      service: mqtt.publish
      data_template:
        topic: "ebusd/f47/Hc1DayTemp/set"
        payload: "{{ states.input_number.central_heating_set_day_temp.state | int }}"

  - alias: Get Central Heating Set Day Temperature
    initial_state: on
    trigger:
      - platform: mqtt
        topic: "ebusd/f47/Hc1DayTemp"
    action:
      service: input_number.set_value
      data_template:
        entity_id: input_number.central_heating_set_day_temp
        value: "{{ trigger.payload | int }}"

  - alias: Set Central Heating Actual Room Temp Desired
    initial_state: on
    trigger:
      - platform: state
        entity_id: input_number.central_heating_actual_room_temp_desired
    action:
      service: mqtt.publish
      data_template:
        topic: "ebusd/f47/ActualRoomTempDesiredHc1/set"
        payload: "{{ states.input_number.central_heating_actual_room_temp_desired | int }}"

  - alias: Get Central Heating Actual Room Temp Desired
    initial_state: on
    trigger:
      - platform: mqtt
        topic: "ebusd/f47/ActualRoomTempDesiredHc1"
    action:
      service: input_number.set_value
      data_template:
        entity_id: input_number.central_heating_actual_room_temp_desired
        value: "{{ trigger.payload | int }}"

  - alias: Set Central Heating Set Night Temperature
    initial_state: on
    trigger:
      - platform: state
        entity_id: input_number.central_heating_set_night_temp
    action:
      service: mqtt.publish
      data_template:
        topic: "ebusd/f47/Hc1NightTemp/set"
        payload: "{{ states.input_number.central_heating_set_night_temp.state | int }}"

  - alias: Get Central Heating Set Night Temperature
    initial_state: on
    trigger:
      - platform: mqtt
        topic: "ebusd/f47/Hc1NightTemp"
    action:
      service: input_number.set_value
      data_template:
        entity_id: input_number.central_heating_set_night_temp
        value: "{{ trigger.payload | int }}"

  - alias: Set Hot Water Temperature Desired
    initial_state: on
    trigger:
      - platform: state
        entity_id: input_number.hot_water_temp_desired
    action:
      service: mqtt.publish
      data_template:
        topic: "ebusd/f47/HwcTempDesired/set"
        payload: "{{ states.input_number.hot_water_temp_desired.state | int }}"

  - alias: Get Hot Water Temperature Desired
    initial_state: on
    trigger:
      - platform: mqtt
        topic: "ebusd/f47/HwcTempDesired"
    action:
      service: input_number.set_value
      data_template:
        entity_id: input_number.hot_water_temp_desired
        value: "{{ trigger.payload | int }}"

  - alias: ebusd_mqtt_update
    initial_state: on
    trigger:
      - platform: time_pattern
        minutes: "/2"
    action:
      - service: mqtt.publish
        data:
          topic: "ebusd/bai/ReturnTemp/get"
          payload: "1"
      - service: mqtt.publish
        data:
          topic: "ebusd/bai/ReturnTempExternal/get"
          payload: "1"
      - service: mqtt.publish
        data:
          topic: "ebusd/bai/WaterPressure/get"
          payload: "1"
      - service: mqtt.publish
        data:
          topic: "ebusd/bai/FlowTemp/get"
          payload: "1"
      - service: mqtt.publish
        data:
          topic: "ebusd/bai/FlowTempDesired/get"
          payload: "1"
      - service: mqtt.publish
        data:
          topic: "ebusd/bai/HwcTemp/get"
          payload: "1"
      - service: mqtt.publish
        data:
          topic: "ebusd/bai/HwcTempMax/get"
          payload: "1"
      - service: mqtt.publish
        data:
          topic: "ebusd/bai/HwcWaterflowMax/get"
          payload: "1"
      - service: mqtt.publish
        data:
          topic: "ebusd/f47/HwcTempDesired/get"
          payload: "1"
      - service: mqtt.publish
        data:
          topic: "ebusd/f47/HwcActualTempDesired/get"
          payload: "1"
      - service: mqtt.publish
        data:
          topic: "ebusd/f47/HwcOPMode/get"
          payload: "1"
      - service: mqtt.publish
        data:
          topic: "ebusd/bai/StorageTemp/get"
          payload: "1"
      - service: mqtt.publish
        data:
          topic: "ebusd/bai/PositionValveSet/get"
          payload: "1"
      - service: mqtt.publish
        data:
          topic: "ebusd/bai/PartloadHcKW/get"
          payload: "1"
      - service: mqtt.publish
        data:
          topic: "ebusd/bai/ModulationTempDesired/get"
          payload: "1"
      - service: mqtt.publish
        data:
          topic: "ebusd/bai/PumpPower/get"
          payload: "1"
      - service: mqtt.publish
        data:
          topic: "ebusd/bai/PrEnergyCountHc1/get"
          payload: "1"
      - service: mqtt.publish
        data:
          topic: "ebusd/bai/PrEnergyCountHwc1/get"
          payload: "1"
      - service: mqtt.publish
        data:
          topic: "ebusd/bai/averageIgnitionTime/get"
          payload: "1"
      - service: mqtt.publish
        data:
          topic: "ebusd/bai/FanSpeed/get"
          payload: "1"
      - service: mqtt.publish
        data:
          topic: "ebusd/bai/TargetFanSpeed/get"
          payload: "1"
      - service: mqtt.publish
        data:
          topic: "ebusd/bai/TargetFanSpeedOutput/get"
          payload: "1"
      - service: mqtt.publish
        data:
          topic: "ebusd/bai/currenterror/get"
          payload: "1"
      - service: mqtt.publish
        data:
          topic: "ebusd/bai/HeatingSwitch/get"
          payload: "1"
      - service: mqtt.publish
        data:
          topic: "ebusd/bai/Flame/get"
          payload: "1"
      - service: mqtt.publish
        data:
          topic: "ebusd/bai/Ignitor/get"
          payload: "1"
      - service: mqtt.publish
        data:
          topic: "ebusd/bai/WP/get"
          payload: "1"
      - service: mqtt.publish
        data:
          topic: "ebusd/bai/HwcSwitch/get"
          payload: "1"
      - service: mqtt.publish
        data:
          topic: "ebusd/bai/HwcDemand/get"
          payload: "1"
      - service: mqtt.publish
        data:
          topic: "ebusd/bai/HeatingSwitch/get"
          payload: "1"
      - service: mqtt.publish
        data:
          topic: "ebusd/f47/Hc1PreCutOffActive/get"
          payload: "1"
      - service: mqtt.publish
        data:
          topic: "ebusd/f47/Hc1OPMode/get"
          payload: "1"
      - service: mqtt.publish
        data:
          topic: "ebusd/f47/Hc1SFMode/get"
          payload: "1"
      - service: mqtt.publish
        data:
          topic: "ebusd/f47/Hc1DayTemp/get"
          payload: "1"
      - service: mqtt.publish
        data:
          topic: "ebusd/f47/Hc1NightTemp/get"
          payload: "1"
      - service: mqtt.publish
        data:
          topic: "ebusd/f47/Hc1HeatCurve/get"
          payload: "1"
      - service: mqtt.publish
        data:
          topic: "ebusd/f47/Hc1ActualFlowTempDesired/get"
          payload: "1"
      - service: mqtt.publish
        data:
          topic: "ebusd/f47/ActualRoomTempDesiredHc1/get"
          payload: "1"
      - service: mqtt.publish
        data:
          topic: "ebusd/f47/Hc1PreOrContinuosHeatingActive/get"
          payload: "1"
1 Like

Thanks @dinth! This helped me a lot to get started with ebusd and MQTT.
I would suggest using the regular status broadcasts for some of these values. From the file hcmode.inc contained in the ebusd-configuration: r,,Status01,Vorlauftemperatur/Rücklauftemperatur/Aussentemperatur/WW Temperatur/Speichertemperatur/Pumpenstatus,,,,01,,,temp1;temp1;temp2;temp1;temp1;pumpstate,,,

This would translate to r,,Status01,Flow Temperature/Return Flow Temperature/Outside Temperature/Warm Water Temperature/Warm Water Storage Temperature/Pump Status,,,,01,,,temp1;temp1;temp2;temp1;temp1;pumpstate,,,

Status01 seems to be broadcast approximately every 10s.

Also I am using --mqttjson which simplifies parsing:

sensor:
  - platform: mqtt
    name: Central Heating Actual Flow Temperature
    unique_id: bai_actual_flow_temperature
    state_topic: "ebusd/bai/Status01"
    device:
      identifiers: "ebusd_bai"
      via_device: "ebusd"
    value_template: "{{ value_json['0']['value'] }}"
    unit_of_measurement: "°C"
  
  - platform: mqtt
    name: Central Heating Return Flow Temperature
    unique_id: bai_actual_return_flow_temperature
    state_topic: "ebusd/bai/Status01"
    device:
      identifiers: "ebusd_bai"
      via_device: "ebusd"
    value_template: "{{ value_json['1']['value'] }}"
    unit_of_measurement: "°C"
  
  - platform: mqtt
    name: Central Heating Actual Warm Water Temperature
    unique_id: bai_actual_warm_water_temperature
    state_topic: "ebusd/bai/Status01"
    device:
      identifiers: "ebusd_bai"
      via_device: "ebusd"
    value_template: "{{ value_json['3']['value'] }}"
    unit_of_measurement: "°C"
  
  - platform: mqtt
    name: Central Heating Actual Warm Water Storage Temperature
    unique_id: bai_actual_warm_water_storage_temperature
    state_topic: "ebusd/bai/Status01"
    device:
      identifiers: "ebusd_bai"
      via_device: "ebusd"
    value_template: "{{ value_json['4']['value'] }}"
    unit_of_measurement: "°C"
  
binary_sensor:
  - platform: mqtt
    name: Central Heating Pump Status
    unique_id: bai_pump_status
    state_topic: "ebusd/bai/Status01"
    device:
      identifiers: "ebusd_bai"
      via_device: "ebusd"
    value_template: "{{ value_json['5']['value'] == 'on' }}"

I had some errors in the binary sensors, removed some not so useful values and added a few interesting ones. Also the required mqtt-polls can be found in the code snippet.
Some values do not change much throughout the day. Therefore these are polled just once a day.

One of these is the water pressure sensor. As long as I get an OK everything is fine.
The central_heating_water_pressure sensor is grouped with a few other (meta)sensors as a notification-area in the Lovelace badges:

    badges:
      - type: entity-filter
        entities:
          - binary_sensor.updater
          - binary_sensor.low_bat
          - binary_sensor.central_heating_water_pressure
        state_filter:
          - 'on'
        show_empty: false

Automation and sensor configuration:

automation:
  - id: '1617654026117'
    alias: ebusd_mqtt_update_1min
    description: ''
    trigger:
    - platform: time_pattern
      minutes: /1
    condition: []
    action:
    - service: mqtt.publish
      data:
        topic: ebusd/bai/ModulationTempDesired/get
        payload: '1'
    - service: mqtt.publish
      data:
        topic: ebusd/bai/Flame/get
        payload: '1'
    - service: mqtt.publish
      data:
        topic: ebusd/bai/FlowTempDesired/get
        payload: '1'
    - service: mqtt.publish
      data:
        topic: ebusd/bai/PumpPower/get
        payload: '1'
    - service: mqtt.publish
      data:
        topic: ebusd/bai/PrimaryCircuitFlowrate/get
        payload: '1'
    mode: single

  - id: '1617814925244'
    alias: ebusd_mqtt_update_1d
    description: ''
    trigger:
    - platform: time
      at: 00:00:00
    - platform: homeassistant
      event: start
    condition: []
    action:
    - service: mqtt.publish
      data:
        topic: ebusd/bai/WaterPressure/get
        payload: '1'
    - service: mqtt.publish
      data:
        topic: ebusd/bai/StorageTempDesired/get
        payload: '1'
    - service: mqtt.publish
      data:
        topic: ebusd/bai/PrEnergySumHwc1/get
        payload: '1'
    - service: mqtt.publish
      data:
        topic: ebusd/bai/PrEnergyCountHwc1/get
        payload: '1'
    - service: mqtt.publish
      data:
        topic: ebusd/bai/PrEnergySumHc1/get
        payload: '1'
    - service: mqtt.publish
      data:
        topic: ebusd/bai/PrEnergyCountHc1/get
        payload: '1'
    mode: single

sensor:
  - platform: mqtt
    name: Central Heating Set Flow Temperature
    unique_id: bai_set_flow_temperature
    state_topic: "ebusd/bai/FlowTempDesired"
    device:
      identifiers: "ebusd_bai"
      via_device: "ebusd"
    value_template: "{{ value_json['temp']['value'] }}"
    unit_of_measurement: "°C"
  
  - platform: mqtt
    name: Central Heating Actual Burner Modulation
    unique_id: bai_actual_burner_modulation
    state_topic: "ebusd/bai/ModulationTempDesired"
    device:
      identifiers: "ebusd_bai"
      via_device: "ebusd"
    value_template: "{{ value_json['0']['value'] }}"
    unit_of_measurement: "%"

  - platform: mqtt
    name: Central Heating Actual Flow Temperature
    unique_id: bai_actual_flow_temperature
    state_topic: "ebusd/bai/Status01"
    device:
      identifiers: "ebusd_bai"
      via_device: "ebusd"
    value_template: "{{ value_json['0']['value'] }}"
    unit_of_measurement: "°C"
  
  - platform: mqtt
    name: Central Heating Return Flow Temperature
    unique_id: bai_actual_return_flow_temperature
    state_topic: "ebusd/bai/Status01"
    device:
      identifiers: "ebusd_bai"
      via_device: "ebusd"
    value_template: "{{ value_json['1']['value'] }}"
    unit_of_measurement: "°C"
  
  - platform: mqtt
    name: Central Heating Set Warm Water Storage Temperature
    unique_id: bai_set_warm_water_storage_temperature
    state_topic: "ebusd/bai/StorageTempDesired"
    device:
      identifiers: "ebusd_bai"
      via_device: "ebusd"
    value_template: "{{ value_json['temp']['value'] }}"
    unit_of_measurement: "°C"
  
  - platform: mqtt
    name: Central Heating Actual Warm Water Temperature
    unique_id: bai_actual_warm_water_temperature
    state_topic: "ebusd/bai/Status01"
    device:
      identifiers: "ebusd_bai"
      via_device: "ebusd"
    value_template: "{{ value_json['3']['value'] }}"
    unit_of_measurement: "°C"
  
  - platform: mqtt
    name: Central Heating Actual Warm Water Storage Temperature
    unique_id: bai_actual_warm_water_storage_temperature
    state_topic: "ebusd/bai/Status01"
    device:
      identifiers: "ebusd_bai"
      via_device: "ebusd"
    value_template: "{{ value_json['4']['value'] }}"
    unit_of_measurement: "°C"
  
  - platform: mqtt
    name: Central Heating Pump Power
    unique_id: bai_pump_power
    state_topic: "ebusd/bai/PumpPower"
    device:
      identifiers: "ebusd_bai"
      via_device: "ebusd"
    value_template: "{{ value_json['0']['value'] }}"
    unit_of_measurement: "%"
  
  - platform: mqtt
    name: Central Heating Circuit Flow Rate
    unique_id: bai_circuit_flow_rate
    state_topic: "ebusd/bai/PrimaryCircuitFlowrate"
    device:
      identifiers: "ebusd_bai"
      via_device: "ebusd"
    value_template: "{{ value_json['uin100']['value'] }}"
    unit_of_measurement: "l/min"

  - platform: template
    sensors:
      # The burner modulation is not 0 when the burner is off. This burner modulation sensor
      # generates a more truthful value by returning 0 when no flame is present.
      central_heating_burner_modulation:
        friendly_name: Burner Modulation
        unit_of_measurement: "%"
        value_template: >
          {% if states('binary_sensor.central_heating_flame_status') == 'on' -%}
            {{states('sensor.central_heating_actual_burner_modulation')}}
          {%- else -%}
            {{ 0 }}
          {%- endif %}

binary_sensor:
  - platform: mqtt
    name: Central Heating Water Pressure
    unique_id: bai_water_pressure
    state_topic: "ebusd/bai/WaterPressure"
    device:
      identifiers: "ebusd_bai"
      via_device: "ebusd"
    value_template: "{{ value_json['sensor']['value'] }}"
    payload_off: "ok"
    payload_on: "error"
    device_class: problem
  
  - platform: mqtt
    name: Central Heating Pump Status
    unique_id: bai_pump_status
    state_topic: "ebusd/bai/Status01"
    device:
      identifiers: "ebusd_bai"
      via_device: "ebusd"
    value_template: "{{ value_json['5']['value'] }}"
    payload_on: "on"
    payload_off: "off"
  
  - platform: mqtt
    name: Central Heating Flame Status
    unique_id: bai_flame_status
    state_topic: "ebusd/bai/Flame"
    device:
      identifiers: "ebusd_bai"
      via_device: "ebusd"
    value_template: "{{ value_json['0']['value'] }}"
    payload_on: "on"
    payload_off: "off"
1 Like

I managed to get almost all relevant and interesting values and topics from my vaillant heat pump and also to set the values and send commands, so I can manage my heat pump via HA.
I’m trying to put automations together when I press designated button/switch/toggle in HA (no need for physical button) this automation will: 1. set to heat water with backup heaters only, 2. set the desired temp higher than normal (ie 75°C), 3. load hot water tank. When the 75°C is reached the backup heaters will be set to default setting (“with backup”), set desired temo in water tank will be reduced to normal (55°C).
I can set all these command via lovelace manually over mqtt to ebusd, I just want to automate it when my PV system is producing enough electricity.

Has anyone done similar automation, so I can use as example?

I’m quite new to HA and not programmer or any near, but managed to put some automations togehter on some shared examples in this topic…
Thank you guys!!

EDIT: I managed to set up automation using input select, and making trigger when state of input select switch changes to desired option :slight_smile: and it works!

1 Like

Hi Andrej,

Long time lurker on this topic, i’m trying to do exactly the same as you (i suppose you want to use your unused solar energy to the max) by dumping it in heating water pure electrically. In contrast to you however, I am completely at the beginning of this (i have a working HA installation with automations, but at the moment no connection to my vaillant heatpump/boiler). Would you be able to share some details on your setup (eg, which ebus adapter you use, where you connected this adapter inside your installation, which installation you have etc…). I am also very much interested on how you send the commands for the backup heaters etc… (i suppose these are all also exposed to HA via ebusd?)

Many thanks for some input!

Kind regards,

Ben

Hi!
Do you have already ebus adapter?
I’m using this: Welcome to eBUS Adapter 3! ver 3
As far as I know ebusd quite good supports Vaillant products. It is quite necessary to study ebusd wiki, there you can find all infos about working principle.

My installation is vaillant heat pump geotherm, ebus adapter is on wemos d1, connected to ebus port on main board of heat pump. Ebusd is running on separate RPi4 which I use for other purposes. Ebusd is configured for mqtt. In HA I use MQTT Mosquitto broker to send/listen to mqtt topics from ebusd.
I don’t know how familiar are you with ebusd commands, but first they were quite complicated for me, but after some experimenting I’m able to controll almost everyting like on heatpump via user plate with two knobs :slight_smile:

For config I used code from Michal @dinth using cicuit names and CVS for my heat pump (see here: ebusd-configuration/ebusd-2.1.x/en/vaillant at master · john30/ebusd-configuration · GitHub). For regular refresing of mqtt values and states I use cronjob and and ebusd script every 5 mins.

In config file I setup sensors from mqtt topics, automations are made for changing for example desired temperatures for heating and hot water, switching hot water and heating on and off, use of backup heaters, etc. See my config:

switch:
  - platform: mqtt
    name: "Polnjenje zalogovnika tople vode"
    unique_id: ebusd_storage_load
    device:
      identifiers: "ebusd_hwc"
      via_device: "ebusd"
    state_topic: "ebusd/hwc/load"
    command_topic: "ebusd/hwc/load/set"
    state_on: "on"
    state_off: "off"
    payload_on: "on"
    payload_off: "off"

  - platform: mqtt
    name: "Backup Mode Hot Water"
    unique_id: ebusd_backup_mode_hwc_set
    device:
      identifiers: "ebusd_backup_mode_hwc_set"
      via_device: "ebusd"
    state_topic: "ebusd/ehp/BackupModeHwc"
    command_topic: "ebusd/ehp/BackupModeHwc/set"
    state_on: "withbackup"
    state_off: "no backup"
    payload_on: "1"
    payload_off: "0"
  - platform: mqtt
    name: "Zaščita pred legionelo"
    unique_id: ebusd_legio_protection_enabled
    device:
      identifiers: "ebusd_hwc_legio_enabled"
      via_device: "ebusd"
    state_topic: "ebusd/hwc/LegioProtectionEnabled"
    command_topic: "ebusd/hwc/LegioProtectionEnabled/set"
    state_on: "yes"
    state_off: "no"
    payload_on: "yes"
    payload_off: "no"

sensor:
  - platform: mqtt
    state_topic: "ebusd/ehp/HcFlowTemp"
    name: "Temperatura dvižnega voda ogrevanja VF"
    unique_id: ebusd_hc_flow_temp
    unit_of_measurement: "°C"
  - platform: mqtt
    state_topic: "ebusd/ehp/HcReturnTemp"
    name: "Temperatura povratnega voda ogravanja RF"
    unique_id: ebusd_hc_return_temp
    unit_of_measurement: "°C"
  - platform: mqtt
    name: "Najvišja temperatura povratnega voda ogrevanja"
    unique_id: ebusd_return_temp_max
    unit_of_measurement: "°C"
    state_topic: "ebusd/ehp/ReturnTempMax"

  - platform: mqtt
    state_topic: "ebusd/mc/TempDesired"
    name: "OK2 - Željena temperatura"
    unique_id: ebusd_temp_desired_2
    unit_of_measurement: "°C"
  - platform: mqtt
    state_topic: "ebusd/mc/TempDesiredLow"
    name: "OK2 - Znižana temperatura"
    unique_id: ebusd_temp_desired_low_2
    unit_of_measurement: "°C"
  - platform: mqtt
    state_topic: "ebusd/mc.4/TempDesired"
    unique_id: ebusd_temp_desired_4
    name: "OK4 - Željena temperatura"
    unit_of_measurement: "°C"
  - platform: mqtt
    state_topic: "ebusd/mc.4/TempDesiredLow"
    name: "OK4 - Znižana temperatura"
    unique_id: ebusd_temp_desired_low_4
    unit_of_measurement: "°C"
  - platform: mqtt
    state_topic: "ebusd/mc/OperatingMode"
    name: "OK2 - način"
    unique_id: ebusd_operating_mode_2
  - platform: mqtt
    state_topic: "ebusd/mc.4/OperatingMode"
    name: "OK4 - način"
    unique_id: ebusd_operating_mode_4
  - platform: mqtt
    state_topic: "ebusd/hwc/OperatingMode"
    name: "Topla voda - način"
    unique_id: ebusd_operating_mode_hwc
  - platform: mqtt
    state_topic: "ebusd/hwc/StorageTempDesiredStart"
    name: "Topla voda - min temp zalogovnika"
    unique_id: ebusd_storage_temp_desired_start
    unit_of_measurement: "°C"
  - platform: mqtt
    state_topic: "ebusd/hwc/StorageTempDesiredStop"
    name: "Topla voda - StorageTempDesiredStop"
    unique_id: ebusd_storage_temp_desired_stop
    unit_of_measurement: "°C"
  - platform: mqtt
    state_topic: "ebusd/hwc/LegioProtectionEnabled"
    name: "Topla voda - Zaščita pred legionelo"
    unique_id: ebusd_legio_protection_enabled
  - platform: mqtt
    state_topic: "ebusd/hwc/LegioProtectionDay"
    name: "Topla voda - Zaščita pred legionelo"
    unique_id: ebusd_legio_protection_day
  - platform: mqtt
    state_topic: "ebusd/hwc/LegionellaStartTime"
    name: "Topla voda - Zaščita pred legionelo"
    unique_id: ebusd_legio_start_time
  - platform: mqtt
    state_topic: "ebusd/mc.4/IsInStorageFilling"
    name: "Enkratno polnjenje zalogovnika tople vode"
    unique_id: ebusd_is_in_storage_filling
  - platform: mqtt
    state_topic: "ebusd/ehp/OutsideTemp"
    value_template: "{{ value.split(';')[0] }}"
    name: "Zunanja temperatura"
    unique_id: ebusd_outside_temp
    unit_of_measurement: "°C"
  - platform: mqtt
    name: Central Heating Pressure
    unique_id: ebusd_central_heating_pressure
    state_topic: "ebusd/ehp/HcPress"
    unit_of_measurement: "Bar"
  - platform: mqtt
    name: Source Pressure
    unique_id: ebusd_source_pressure
    state_topic: "ebusd/ehp/SourcePress"
    unit_of_measurement: "Bar"
  - platform: mqtt
    name: Central Heating Flow Temperature
    state_topic: "ebusd/ehp/FlowTemp"
    unique_id: ebusd_central_heating_flow_temperature
    value_template: "{{ value.split(';')[0] }}"
    unit_of_measurement: "°C"
  - platform: mqtt
    name: Central Heating Desired Flow Temperature
    unique_id: ebusd_central_heating_desired_flow_temperature
    state_topic: "ebusd/mc/FlowTempDesired"
    value_template: "{{ value.split(';')[0] }}"
    unit_of_measurement: "°C"
  - platform: mqtt
    name: Central Heating Return Temperature
    unique_id: ebusd_central_return_temperature
    state_topic: "ebusd/ehp/HcReturnTemp"
    value_template: "{{ value.split(';')[0] }}"
    unit_of_measurement: "°C"
  - platform: mqtt
    name: Central Heating Return Temperature Offset
    unique_id: ebusd_central_heating_return_temperature_offset
    state_topic: "ebusd/ehp/HcReturnTempOffset"
    value_template: "{{ value.split(';')[0] }}"
    unit_of_measurement: "°C"
  - platform: mqtt
    name: Hot Water Temperature
    unique_id: ebusd_hot_water_temperature
    state_topic: "ebusd/ehp/HwcTemp"
    value_template: "{{ value.split(';')[0] }}"
    unit_of_measurement: "°C"
  - platform: mqtt
    name: Flow Temp Max OK2
    unique_id: ebusd_flow_temp_max_2
    state_topic: "ebusd/mc/FlowTempMax"
    value_template: "{{ value.split(';')[0] }}"
    unit_of_measurement: "°C"
  - platform: mqtt
    name: Compressor
    unique_id: ebusd_compressor
    state_topic: "ebusd/ehp/Comp"
  - platform: mqtt
    name: Compressor Active
    unique_id: ebusd_comp_active
    state_topic: "ebusd/omu/CompActive"
  - platform: mqtt
    name: Storage Temperature Desired Start
    unique_id: ebusd_storage_temp_desired_start
    state_topic: "ebusd/hwc/StorageTempDesiredStart"
    unit_of_measurement: "°C"
  - platform: mqtt
    name: Storage Temperature Desired Stop
    unique_id: ebusd_storage_temp_desired_stop
    state_topic: "ebusd/hwc/StorageTempDesiredStop"
    unit_of_measurement: "°C"
  - platform: mqtt
    name: Backup Hot Water
    unique_id: ebusd_backup_mode_hwc
    state_topic: "ebusd/ehp/BackupModeHwc"
  - platform: mqtt
    name: Backup
    unique_id: ebusd_backup
    state_topic: "ebusd/ehp/Backup"
  - platform: mqtt
    name: Bivalent Temperature
    unique_id: ebusd_bivalent_temp
    state_topic: "ebusd/ehp/BivalentTemp"
  - platform: mqtt
    name: Bivalent Mode
    unique_id: ebusd_bivalent_mode
    state_topic: "ebusd/ehp/BivalentMode"
  - platform: mqtt
    name: Bivalent Point 2 Temp
    unique_id: ebusd_bivalent_point_2_temp
    state_topic: "ebusd/ehp/BivalentPoint2Temp"
  - platform: mqtt
    name: Backup Heater Release
    unique_id: ebusd_backup_heater_release
    state_topic: "ebusd/uih/EhpBackupRelease"
  - platform: mqtt
    name: Compressor Starts Hwc
    unique_id: ebusd_comp_starts_hwc
    state_topic: "ebusd/ehp/CompStartsHwc"
  - platform: mqtt
    name: Compressor Starts Hc
    unique_id: ebusd_comp_starts_hc
    state_topic: "ebusd/ehp/CompStartsHc"
  - platform: mqtt
    name: Compressor Starts
    unique_id: ebusd_comp_starts
    state_topic: "ebusd/ehp/CompStarts"
  - platform: mqtt
    name: Compressor
    unique_id: ebusd_comp
    state_topic: "ebusd/ehp/Comp"
  - platform: mqtt
    name: "Vhodna temperatura izvora T3"
    unique_id: ebusd_souce_temp_input
    state_topic: "ebusd/ehp/SourceTempInput"
    value_template: "{{ value.split(';')[0] }}"
    unit_of_measurement: "°C"
  - platform: mqtt
    name: "Temperatura pri izhodu T8"
    unique_id: ebusd_souce_temp_output
    state_topic: "ebusd/ehp/SourceTempOutput"
    value_template: "{{ value.split(';')[0] }}"
    unit_of_measurement: "°C"
  - platform: mqtt
    name: Current error
    unique_id: ebusd_current_error
    state_topic: "ebusd/omu/currenterror"
  - platform: mqtt
    name: "Vhodna temperatura kompresorja T1"
    unique_id: ebusd_ehp_temp_input
    state_topic: "ebusd/ehp/TempInput"
    unit_of_measurement: "°C"
  - platform: mqtt
    name: "Izhodna temperatura kompresorja T2"
    unique_id: ebusd_temp_output
    state_topic: "ebusd/ehp/TempOutput"
    unit_of_measurement: "°C"
  - platform: mqtt
    name: 24h average temp
    unique_id: ebusd_tot_24h_hc2
    state_topic: "ebusd/mc/ToT24hHc2"
  - platform: mqtt
    name: 24 average temp mc4
    unique_id: ebusd_tot_24h
    state_topic: "ebusd/mc.4/tot24h"

  - platform: mqtt
    name: Fan Speed Is
    unique_id: ebusd_fan_speed_is
    state_topic: "ebusd/omu/FanSpeedIs"
    unit_of_measurement: RPM

  - platform: mqtt
    name: Backup Starts
    unique_id: ebusd_backup_starts
    state_topic: "ebusd/ehp/BackupStarts"
  - platform: mqtt
    name: Backup Starts HWc
    unique_id: ebusd_backup_starts_hwc
    state_topic: "ebusd/ehp/BackupStartsHwc"
  - platform: mqtt
    name: Backup Starts Hc
    unique_id: ebusd_backup_starts_hc
    state_topic: "ebusd/ehp/BackupStartsHc"
  - platform: mqtt
    name: Yield Total
    unique_id: ebusd_yield_total
    state_topic: "ebusd/ehp/YieldTotal"
    unit_of_measurement: "kWh"
  - platform: mqtt
    name: Actual Power
    unique_id: ebusd_actual_power
    state_topic: "ebusd/ehp/ActualEnvironmentPower"
    unit_of_measurement: "kW"
  - platform: mqtt
    name: Actual Power Fine
    unique_id: ebusd_actual_power_fine
    state_topic: "ebusd/ehp/ActualEnvironmentPowerFine"
    unit_of_measurement: "W"
  - platform: mqtt
    name: Actual Environment Power Percentage
    unique_id: ebusd_actual_power_percentage
    state_topic: "ebusd/ehp/ActualEnvironmentPowerPercentage"
    unit_of_measurement: "%"
  - platform: mqtt
    name: "Krivulja ogrevanja OK2"
    unique_id: ebusd_heating_curve_2
    state_topic: "ebusd/mc/HeatingCurve"
  - platform: mqtt
    name: "Krivulja ogrevanja OK4"
    unique_id: ebusd_heating_curve_4
    state_topic: "ebusd/mc.4/HeatingCurve"
  - platform: mqtt
    name: "Dodatno ogrevanje načini"
    unique_id: ebusd_backup_type
    state_topic: "ebusd/ehp/BackupType"
  - platform: mqtt
    name: "Dodatno ogrevanje Hwc Mode"
    unique_id: ebusd/backup_mode_hwc
    state_topic: "ebusd/ehp/BackupModeHwc"
  - platform: mqtt
    name: "Dodatno ogrevanje HC Mode"
    unique_id: ebusd_backup_mode_hc
    state_topic: "ebusd/ehp/BackupModeHc"
  - platform: mqtt
    name: "Status TČ"
    unique_id: ebusd_heat_pump_status
    state_topic: ebusd/ehp/HeatPumpStatus
  - platform: mqtt
    name: "Temperatura dvižnega voda VF1"
    unique_id: ebusd_storage_temp_top
    state_topic: ebusd/ehp/StorageTempTop
  - platform: mqtt
    name: "Temperatura povratnega voda RF1"
    unique_id: ebusd_storage_temp_bottom
    state_topic: ebusd/ehp/StorageTempBottom
  - platform: mqtt
    name: "Temperatura na vstopu termičnega ekspanzijskega ventila"
    unique_id: ebusd_condensor_temp
    state_topic: ebusd/ehp/CondensorTemp
    unit_of_measurement: "°C"

binary_sensor:
  - platform: mqtt
    name: "Enkratno polnjenje zalogovnika tople vode"
    unique_id: ebusd_is_in_storage_filling
    state_topic: "ebusd/mc.4/IsInStorageFilling"
    payload_on: "on"
    payload_off: "off"

  - platform: mqtt
    name: "Enkratno polnjenje zalogovnika poteka"
    unique_id: ebusd_storage_load
    state_topic: "ebusd/hwc/load"
    payload_on: "yes"
    payload_off: "no"

  - platform: mqtt
    name: Fan Is Running
    unique_id: ebusd_fan_is_running
    state_topic: "ebusd/omu/FanIsRunning"
    payload_on: "yes"
    payload_off: "no"

input_select:
  central_heating_operation_mode_2:
    name: Operating Mode HC OK2
    options:
      - "Auto"
      - "Vključeno"
      - "Izključeno"
  central_heating_operation_mode_4:
    name: Operating Mode HC OK4
    options:
      - "Auto"
      - "Vključeno"
      - "Izključeno"
  napolni_zalogovnik_na_grelce:
    name: Load Water Tank With Backup Only
    options:
      - "Napolni do 75°C"
      - "Napolni do 65°C"
  central_heating_temporary_mode:
    name: Hiter vnos
    options:
      - "Party"
      - "Polnjenje"
      - "Varčevanje"
  legio_protection_day:
    name: Legio Protection Day
    options:
      - "Mon"
      - "Tue"
      - "Wed"
      - "Thu"
      - "Fri"
      - "Sat"
      - "Sun"
  hwc_operating_mode:
    name: Hwc Operating Mode
    options:
      - "Onemogočeno"
      - "Vključeno"
      - "Izključeno"
      - "Auto"

input_number:
  central_heating_heat_curve_2:
    name: Krivulja ogrevanja OK2
    min: 0.10
    max: 4.00
    step: 0.05
    mode: box
  central_heating_heat_curve_4:
    name: Krivulja ogrevanja OK4
    min: 0.10
    max: 4.00
    step: 0.05
    mode: box
  central_heating_temp_low_desired_2:
    name: Znižana temperatura OK2
    min: 15
    max: 25
    step: 1
    unit_of_measurement: "°C"
  central_heating_temp_low_desired_4:
    name: Znižana temperatura OK4
    min: 15
    max: 25
    step: 1
    unit_of_measurement: "°C"
  central_heating_set_day_temp_2:
    name: Ciljna temperatura OK2
    min: 15
    max: 25
    step: 1
    unit_of_measurement: "°C"
  central_heating_set_day_temp_4:
    name: Ciljna temperatura OK4
    min: 15
    max: 25
    step: 1
    unit_of_measurement: "°C"
  hot_water_temp_desired_start:
    name: Topla voda minimalna temperatura začetek
    min: 30
    max: 69
    step: 1
    mode: slider
    unit_of_measurement: "°C"
  hot_water_temp_desired_stop:
    name: Topla voda maksimalna temperatura stop
    min: 30
    max: 75
    step: 1
    mode: slider
    unit_of_measurement: "°C"
  backup_type:
    name: Izbira načina dodatnega ogrevanja Type
    min: 0
    max: 4
    mode: slider
  backup_modehwc:
    name: Backup Mode Hwc
    min: 0
    max: 2
    mode: slider
  backup_modehc:
    name: Backup Mode Hc
    min: 0
    max: 2
    mode: slider

  bivalent_temperature:
    name: Bivalent Temperature
    min: -15
    max: 30
    step: 1
    icon: mdi:target
  bivalent_point_2_temp:
    name: Bivalent Point 2 Temp
    min: -15
    max: 30
    mode: slider

input_datetime:
  legio_protection_time:
    name: Zaščita pred legionelo ura začetka
    has_date: false
    has_time: true


Let me know what are you interested in, glad to help if I can :slight_smile:

and my automations file:

- id: ebusd1
  alias: Nastavi ogrevanje OK2
  initial_state: true
  trigger:
    - platform: state
      entity_id: input_select.central_heating_operation_mode_2
  action:
    - service: automation.turn_off
      entity_id: automation.get_central_heating_operation_mode_2
    - service: mqtt.publish
      data_template:
        topic: ebusd/mc/OperatingMode/set
        payload:
          "{% set opmode = {\n    'Auto': 'auto',\n    'Vključeno': 'on',\n \
          \   'Izključeno': 'off' } %}\n  {{ opmode.get(trigger.to_state.state,'Auto')\
          \ }}\n"
    - delay: 00:00:05
    - service: automation.turn_on
      entity_id: automation.get_central_heating_operation_mode_2
- id: ebusd111
  alias: Ogrevanje OK2
  initial_state: true
  trigger:
    - platform: mqtt
      topic: ebusd/mc/OperatingMode
  action:
    service: input_select.select_option
    data_template:
      entity_id: input_select.central_heating_operation_mode_2
      option:
        "{% set opmode = {\n  'auto': 'Auto',\n  'on': 'Vključeno',\n  'off':\
        \ 'Izključeno', } %}\n{{ opmode.get('trigger.payload','auto') }}\n"
- id: ebusd2
  alias: Nastavi ogrevanje OK4
  initial_state: true
  trigger:
    - platform: state
      entity_id: input_select.central_heating_operation_mode_4
  action:
    - service: automation.turn_off
      entity_id: automation.get_central_heating_operation_mode_4
    - service: mqtt.publish
      data_template:
        topic: ebusd/mc.4/OperatingMode/set
        payload:
          "{% set opmode = {\n    'Auto': 'auto',\n    'Vključeno': 'on',\n \
          \   'Izključeno': 'off' } %}\n  {{ opmode.get(trigger.to_state.state,'Auto')\
          \ }}\n"
    - delay: 00:00:05
    - service: automation.turn_on
      entity_id: automation.get_central_heating_operation_mode_4
- id: ebusd22
  alias: Ogrevanje OK4
  initial_state: true
  trigger:
    - platform: mqtt
      topic: ebusd/mc.4/OperatingMode
  action:
    service: input_select.select_option
    data_template:
      entity_id: input_select.central_heating_operation_mode_4
      option:
        "{% set opmode = {\n  'auto': 'Auto',\n  'on': 'Vključeno',\n  'off':\
        \ 'Izključeno', } %}\n{{ opmode.get('trigger.payload','auto') }}\n"
- id: ebusd3
  alias: Set Central Heating Heat Curve OK2
  initial_state: true
  trigger:
    - platform: state
      entity_id: input_number.central_heating_heat_curve_2
  action:
    service: mqtt.publish
    data_template:
      topic: ebusd/mc/HeatingCurve/set
      payload:
        "{{ states.input_number.central_heating_heat_curve_2.state | float
        }}"
- id: ebusd4
  alias: Get Central Heating Heat Curve OK2
  initial_state: true
  trigger:
    - platform: mqtt
      topic: ebusd/mc/HeatingCurve
  action:
    service: input_number.set_value
    data_template:
      entity_id: input_number.central_heating_heat_curve_2
      value: "{{ trigger.payload | float }}"
- id: ebusd5
  alias: Set Central Heating Heat Curve OK4
  initial_state: true
  trigger:
    - platform: state
      entity_id: input_number.central_heating_heat_curve_4
  action:
    service: mqtt.publish
    data_template:
      topic: ebusd/mc.4/HeatingCurve/set
      payload:
        "{{ states.input_number.central_heating_heat_curve_4.state | float
        }}"
- id: ebusd6
  alias: Get Central Heating Heat Curve OK4
  initial_state: true
  trigger:
    - platform: mqtt
      topic: ebusd/mc.4/HeatingCurve
  action:
    service: input_number.set_value
    data_template:
      entity_id: input_number.central_heating_heat_curve_4
      value: "{{ trigger.payload | float }}"
- id: ebusd7
  alias: Set Central Heating Day Temperature OK2
  initial_state: true
  trigger:
    - platform: state
      entity_id: input_number.central_heating_set_day_temp_2
  action:
    service: mqtt.publish
    data_template:
      topic: ebusd/mc/TempDesired/set
      payload:
        "{{ states.input_number.central_heating_set_day_temp_2.state | int
        }}"
- id: ebusd8
  alias: Get Central Heating Day Temperature OK2
  initial_state: true
  trigger:
    - platform: mqtt
      topic: ebusd/mc/TempDesired
  action:
    service: input_number.set_value
    data_template:
      entity_id: input_number.central_heating_set_day_temp_2
      value: "{{ trigger.payload | int }}"
- id: ebusd9
  alias: Set Central Heating Temp Low Desired OK2
  initial_state: true
  trigger:
    - platform: state
      entity_id: input_number.central_heating_temp_low_desired_2
  action:
    service: mqtt.publish
    data_template:
      topic: ebusd/mc/TempDesiredLow/set
      payload:
        "{{ states.input_number.central_heating_temp_low_desired_2.state |
        int }}"
- id: ebusd10
  alias: Get Central Heating Temp Low Desired OK2
  initial_state: true
  trigger:
    - platform: mqtt
      topic: ebusd/mc/TempDesiredLow
  action:
    service: input_number.set_value
    data_template:
      entity_id: input_number.central_heating_temp_low_desired_2
      value: "{{ trigger.payload | int }}"
- id: ebusd11
  alias: Set Central Heating Day Temperature OK4
  initial_state: true
  trigger:
    - platform: state
      entity_id: input_number.central_heating_set_day_temp_4
  action:
    service: mqtt.publish
    data_template:
      topic: ebusd/mc.4/TempDesired/set
      payload:
        "{{ states.input_number.central_heating_set_day_temp_4.state | int
        }}"
- id: ebusd12
  alias: Get Central Heating Day Temperature OK4
  initial_state: true
  trigger:
    - platform: mqtt
      topic: ebusd/mc.4/TempDesired
  action:
    service: input_number.set_value
    data_template:
      entity_id: input_number.central_heating_set_day_temp_4
      value: "{{ trigger.payload | int }}"
- id: ebusd13
  alias: Set Central Heating Temp Low Desired OK4
  initial_state: true
  trigger:
    - platform: state
      entity_id: input_number.central_heating_temp_low_desired_4
  action:
    service: mqtt.publish
    data_template:
      topic: ebusd/mc.4/TempDesiredLow/set
      payload:
        "{{ states.input_number.central_heating_temp_low_desired_4.state |
        int }}"
- id: ebusd14
  alias: Get Central Heating Temp Low Desired OK4
  initial_state: true
  trigger:
    - platform: mqtt
      topic: ebusd/mc.4/TempDesiredLow
  action:
    service: input_number.set_value
    data_template:
      entity_id: input_number.central_heating_temp_low_desired_4
      value: "{{ trigger.payload | int }}"
- id: ebusd15
  alias: Set Hot Water Temp Desired Start
  initial_state: true
  trigger:
    - platform: state
      entity_id: input_number.hot_water_temp_desired_start
  action:
    service: mqtt.publish
    data_template:
      topic: ebusd/hwc/StorageTempDesiredStart/set
      payload: "{{ states.input_number.hot_water_temp_desired_start.state | int }}"
- id: ebusd16
  alias: Get Hot Water Temp Desired Start
  initial_state: true
  trigger:
    - platform: mqtt
      topic: ebusd/hwc/StorageTempDesiredStart
  action:
    service: input_number.set_value
    data_template:
      entity_id: input_number.hot_water_temp_desired_start
      value: "{{ trigger.payload | int }}"
- id: ebusd17
  alias: Set Hot Water Temp Desired Stop
  initial_state: true
  trigger:
    - platform: state
      entity_id: input_number.hot_water_temp_desired_stop
  action:
    service: mqtt.publish
    data_template:
      topic: ebusd/hwc/StorageTempDesiredStop/set
      payload: "{{ states.input_number.hot_water_temp_desired_stop.state | int }}"
- id: ebusd18
  alias: Get Hot Water Temp Desired Stop
  initial_state: true
  trigger:
    - platform: mqtt
      topic: ebusd/hwc/StorageTempDesiredStop
  action:
    service: input_number.set_value
    data_template:
      entity_id: input_number.hot_water_temp_desired_stop
      value: "{{ trigger.payload | int }}"
- id: HVAC pretvorba OK2
  alias: Convert HVAC Mode
  trigger:
    - platform: mqtt
      topic: convert/modeset2
  action:
    - data_template:
        payload:
          "{% set mode_name = trigger.payload %} {% set modes = { 'off':'off',
          'heat':'on', 'auto':'auto' } %} {{ modes[mode_name] if mode_name in
          modes.keys() else 'auto' }}"
        topic: ebusd/mc/OperatingMode/set
      service: mqtt.publish
- id: HVAC pretvorba OK4
  alias: Convert HVAC Mode OK4
  trigger:
    - platform: mqtt
      topic: convert/modeset4
  action:
    - data_template:
        payload:
          "{% set mode_name = trigger.payload %} {% set modes = { 'off':'off',
          'heat':'on', 'auto':'auto' } %} {{ modes[mode_name] if mode_name in
          modes.keys() else 'auto' }}"
        topic: ebusd/mc.4/OperatingMode/set
      service: mqtt.publish
- id: ebusd19
  alias: Get Compressor Starts Nr
  initial_state: true
  trigger:
    - platform: mqtt
      topic: ebusd/ehp/CompStarts/get
  action:
    service: input_number.set_value
    data_template:
      entity_id: input_number.ebusd_comp_starts
      value: "{{ trigger.payload | float }}"
- id: ebusd20
  alias: Get Compressor Starts Hwc Nr
  initial_state: true
  trigger:
    - platform: mqtt
      topic: ebusd/ehp/CompStartsHwc/get
  action:
    service: input_number.set_value
    data_template:
      entity_id: input_number.ebusd_comp_starts_hwc
      value: "{{ trigger.payload | float }}"
- id: ebusd21
  alias: Get Compressor Starts Hc Nr
  initial_state: true
  trigger:
    - platform: mqtt
      topic: ebusd/ehp/CompStartsHc/get
  action:
    service: input_number.set_value
    data_template:
      entity_id: input_number.ebusd_comp_starts_hc
      value: "{{ trigger.payload | float }}"
- id: ebusd23
  alias: Get Backup Nr
  initial_state: true
  trigger:
    - platform: mqtt
      topic: ebusd/ehp/Backup/get
  action:
    service: input_number.set_value
    data_template:
      entity_id: input_number.ebusd_backup
      value: "{{ trigger.payload | int }}"
- id: ebusd24
  alias: Get Backup Hc Nr
  initial_state: true
  trigger:
    - platform: mqtt
      topic: ebusd/ehp/BackupHc/get
  action:
    service: input_number.set_value
    data_template:
      entity_id: input_number.ebusd_backup_hc
      value: "{{ trigger.payload | int }}"
- id: ebusd25
  alias: Get Backup Hwc Nr
  initial_state: true
  trigger:
    - platform: mqtt
      topic: ebusd/ehp/BackupHwc/get
  action:
    service: input_number.set_value
    data_template:
      entity_id: input_number.ebusd_backup_hwc
      value: "{{ trigger.payload | int }}"
- id: ebusd26
  alias: Get Yield Total
  initial_state: true
  trigger:
    - platform: mqtt
      topic: ebusd/ehp/YieldTotal
  action:
    service: input_number.set_value
    data_template:
      entity_id: input_number.ebusd_yield_total
      value: "{{ trigger.payload | int }}"
- id: ebusd27
  alias: Get Is In Storage Filling
  initial_state: true
  trigger:
    - platform: mqtt
      topic: ebusd/mc.4/IsInStorageFilling
  action:
    service: input_number.set_value
    data_template:
      entity_id: input_number.ebusd_is_in_storage_filling
      value: "{{ trigger.payload | int }}"
- id: ebusd28
  alias: Get Backup Mode Hot Water Hwc
  initial_state: true
  trigger:
    - platform: mqtt
      topic: ebusd/ehp/BackupModeHwc
  action:
    service: input_number.set_value
    data_template:
      entity_id: input_number.ebusd_backup_mode_hwc
      value: "{{ trigger.payload | int }}"
- id: ebusd29
  alias: Fan Is Running
  initial_state: true
  trigger:
    - platform: mqtt
      topic: ebusd/omu/FanIsRunning
  action:
    service: input_number.set_value
    data_template:
      entity_id: input_number.ebusd_fan_is_running
      value: "{{ trigger.payload | int }}"
- id: ebusd30
  alias: Fan Speed Is
  initial_state: true
  trigger:
    - platform: mqtt
      topic: ebusd/omu/FanSpeedIs
  action:
    service: input_number.set_value
    data_template:
      entity_id: input_number.ebusd_fan_speed_is
      value: "{{ trigger.payload | int }}"
- id: ebusd31
  alias: Get Legio Protection Enabled
  initial_state: true
  trigger:
    - platform: mqtt
      topic: ebusd/hwc/LegioProtectionEnabled
  action:
    service: input_number.set_value
    data_template:
      entity_id: input_number.ebusd_legio_protection_enabled
      value: "{{ trigger.payload | int }}"
- id: ebusd32
  alias: Set Legio Protection Day
  trigger:
    - platform: state
      entity_id: input_select.legio_protection_day
  action:
    - service: mqtt.publish
      data_template:
        topic: ebusd/hwc/LegioProtectionDay/set
        payload: "{{ states('input_select.legio_protection_day') }}"
    - service: automation.turn_on
      entity_id: automation.get_legio_protection_day
  initial_state: true
- id: ebusd33
  alias: Get Legio Protection Day
  initial_state: true
  trigger:
    - platform: mqtt
      topic: ebusd/hwc/LegioProtectionDay
  action:
    service: input_select.select_option
    data_template:
      entity_id: input_select.legio_protection_day
      value: "{{ trigger.payload | int }}"
- id: ebusd34
  alias: Set Legio Protection Time
  trigger:
    - platform: state
      entity_id: input_datetime.legio_protection_time
  action:
    - service: mqtt.publish
      data_template:
        topic: ebusd/hwc/LegionellaStartTime/set
        payload: "{{ states('input_datetime.legio_protection_time') }}"
    - service: automation.turn_on
      entity_id: automation.get_legio_protection_time
  initial_state: true
- id: ebusd35
  alias: Get Legio Protection Time
  initial_state: true
  trigger:
    - platform: mqtt
      topic: ebusd/hwc/LegionellaStartTime
  action:
    service: input_datetime.set_datetime
    data_template:
      entity_id: input_datetime.legio_protection_time
      value: "{{ trigger.payload | int }}"
- id: ebusd36
  alias: Set Backup Type
  initial_state: true
  trigger:
    - platform: state
      entity_id: input_number.backup_type
  action:
    service: mqtt.publish
    data_template:
      topic: ebusd/ehp/BackupType/set
      payload: "{{ states.input_number.backup_type.state | float }}"
- id: ebusd37
  alias: Get Backup Type
  initial_state: true
  trigger:
    - platform: mqtt
      topic: ebusd/ehp/BackupType/get
  action:
    service: input_number.set_value
    data_template:
      entity_id: input_number.backup_type
      value: "{{ trigger.payload | float }}"
- id: ebusd38
  alias: Set Backup Mode Hwc
  initial_state: true
  trigger:
    - platform: state
      entity_id: input_number.backup_modehwc
  action:
    service: mqtt.publish
    data_template:
      topic: ebusd/ehp/BackupModeHwc/set
      payload: "{{ states.input_number.backup_modehwc.state | float }}"
- id: ebusd39
  alias: Get Backup Mode Hwc
  initial_state: true
  trigger:
    - platform: mqtt
      topic: ebusd/ehp/BackupModeHwc
  action:
    service: input_number.set_value
    data_template:
      entity_id: input_number.backup_mode_hwc
      value: "{{ trigger.payload | float }}"
- id: ebusd40
  alias: Set Backup Mode Hc
  initial_state: true
  trigger:
    - platform: state
      entity_id: input_number.backup_modehc
  action:
    service: mqtt.publish
    data_template:
      topic: ebusd/ehp/BackupModeHc/set
      payload: "{{ states.input_number.backup_modehc.state | float }}"
- id: ebusd41
  alias: Get Backup Mode Hc
  initial_state: true
  trigger:
    - platform: mqtt
      topic: ebusd/ehp/BackupModeHc
  action:
    service: input_number.set_value
    data_template:
      entity_id: input_number.backup_mode_hc
      value: "{{ trigger.payload | float }}"
- id: ebusd 42
  alias: Set Bivalent Temp
  initial_state: true
  trigger:
    - platform: state
      entity_id: input_number.bivalent_temperature
  action:
    service: mqtt.publish
    data_template:
      topic: ebusd/ehp/BivalentTemp/set
      payload: "{{ states.input_number.bivalent_temperature.state | int }}"
- id: ebusd43
  alias: Get Bivalent Temp
  initial_state: true
  trigger:
    - platform: mqtt
      topic: ebusd/ehp/BivalentTemp
  action:
    service: input_number.set_value
    data_template:
      entity_id: input_number.bivalent_temperature
      value: "{{ trigger.payload | int }}"
- id: ebusd 44
  alias: Set Bivalent Point 2 Temp
  initial_state: true
  trigger:
    - platform: state
      entity_id: input_number.bivalent_point_2_temp
  action:
    service: mqtt.publish
    data_template:
      topic: ebusd/ehp/BivalentPoint2Temp/set
      payload: "{{ states.input_number.bivalent_point_2_temp.state | int }}"
- id: ebusd45
  alias: Set Hwc Operating Mode
  initial_state: true
  trigger:
    - platform: state
      entity_id: input_select.hwc_operating_mode
  action:
    - service: automation.turn_off
      entity_id: automation.get_hwc_operating_mode
    - service: mqtt.publish
      data_template:
        topic: ebusd/hwc/OperatingMode/set
        payload:
          "{% set opmode = {\n    'Onemogočeno': '0',\n    'Vključeno': '1',\n \
          \   'Izključeno': '2',\n    'Auto': '3' } %}\n  {{ opmode.get(trigger.to_state.state,'Auto')\
          \ }}\n"
    - delay: 00:00:05
    - service: automation.turn_on
      entity_id: automation.get_hwc_operating_mode
- id: ebusd46
  alias: Get Hwc Operating Mode
  initial_state: true
  trigger:
    - platform: mqtt
      topic: ebusd/hwc/OperatingMode
  action:
    service: input_select.select_option
    data_template:
      entity_id: input_select.hwc_operating_mode
      option:
        "{% set opmode = {\n  '0': 'Onemogočeno',\n  '1': 'Vključeno',\n  '2':\
        \ 'Izključeno',\n   '3': 'Auto'  } %}\n{{ opmode.get('trigger.payload','3') }}\n"