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"