Ustatnia modyfikacja 16 listopada 2023 przez Olek
Jednym z podstawowych urządzeń w domu jest piec gazowy do ogrzewania domu i wody użytkowej. Ja mam piec Vaillant ecoTEC plus z zasobnikiem i sterownikiem multiMATIC VRC 700/4. Mając system inteligentnego HA domu wypadało by mieś z jego poziomu kontrole nad tym piecem. Po analizie problemu i lekturze informacji na ten temat w sieci okazało się że można wykonać taką integrację. Vaillant stosuje dość znany protokół do komunikacji pieca ze sterownikiem i innymi peryferiami. Jest to eBUS. Jest też dostępny adapter i odpowiednie oprogramowanie1. Wgłębiając się dalej w temat uznałem że mogę sam go wykonać od podstaw. Tym bardziej że jedna z wersji opiera się na popularnym układzie ESP 2

Konfiguruje się za pomocą przeglądarki www łącząc się po IP z urządzeniem. Na komputerze na którym mam postawiony Home Assistant trzeba zainstalować i uruchomić specjalny proces (demon) który komunikuje się z kartą i przekazuje dale informacje. W moim przypadku skorzystałem z broker MQTT.
Trzeba teras standardowo skonfigurować HA i wyciągnąć z pieca te informacje które potrzebujemy. Jak również skonfigurować te elementy którymi chcemy sterować. Praktycznie możemy wszystko zrobić. Ciekawą informacją są licznik zużycia energii przez piez z podziałem na ogrzewanie i ciepłą wodę użytkowa. Jedyny niuans jest w tym że nie wiadomo w jakich jest jednostkach, Trzeba je sobie indywidualnie skalibrować
Poniżej przykład części moje konfiguracji
- name: Ogrzewanie ciśnienie
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
- name: Ogrzewanie Temperatura zasilania
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"
- name : Ogrzewanie Docelowa temperatura zasilania
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"
- name : Ogrzewanie Temperatura powrotu
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"
- name : Ogrzewanie Różnica zasilanie-powrót
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"
- name : Ogrzewanie Odcięcie powrotu
unique_id: ebusd_central_heating_return_cutoff
device:
identifiers: "ebusd_bai"
via_device: "ebusd"
state_topic: "ebusd/bai/ReturnTempExternal"
value_template: "{{ value.split(';')[1] }}"
- name : Ciepła woda Aktualnie
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"
- name : Zasobnik Aktualnie
unique_id: ebusd_storage_temperature
device:
identifiers: "ebusd_bai"
via_device: "ebusd"
state_topic: "ebusd/bai/StorageTemp"
value_template: "{{ value.split(';')[0] }}"
unit_of_measurement: "°C"
- name : Ciepła woda Maksymalnie
unique_id: ebusd_hot_water_max_temperature
device:
identifiers: "ebusd_bai"
via_device: "ebusd"
state_topic: "ebusd/bai/HwcTempMax"
value_template: "{{ value.split(';')[0] }}"
unit_of_measurement: "°C"
- name : Ciepła woda Docelowo
unique_id: ebusd_hot_water_actual_temp_desired
device:
identifiers: "ebusd_700"
via_device: "ebusd"
state_topic: "ebusd/700/HwcTempDesired"
unit_of_measurement: "°C"
- name : Ciepła woda Maksymalny przepływ
unique_id: ebusd_hot_water_maximum_flow
device:
identifiers: "ebusd_bai"
via_device: "ebusd"
state_topic: "ebusd/bai/HwcWaterflowMax"
value_template: "{{ value.split(';')[0] }}"
#- name : Ogrzewanie Pozycja zaworu
# 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] }}"
- name : Ogrzewanie Częściowe obciążenie
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"
- name : Ogrzewanie Aktualna moc
unique_id: ebusd_central_current_power
device:
identifiers: "ebusd_bai"
via_device: "ebusd"
state_topic: "ebusd/bai/ModulationTempDesired"
unit_of_measurement: "%"
- name : Ogrzewanie Moc pompy
unique_id: ebusd_central_heating_pump_power
device:
identifiers: "ebusd_bai"
via_device: "ebusd"
state_topic: "ebusd/bai/PumpPower"
unit_of_measurement: "W"
- name : Ogrzewanie zużycie
device:
identifiers: "ebusd_bai"
via_device: "ebusd"
state_topic: "ebusd/bai/PrEnergyCountHc1"
unit_of_measurement: "piec"
device_class: energy
state_class: total_increasing
- name: Ciepła woda zużycie
device:
identifiers: "ebusd_bai"
via_device: "ebusd"
state_topic: "ebusd/bai/PrEnergyCountHwc1"
unit_of_measurement: "piec"
device_class: energy
state_class: total_increasing
- name : Ogrzewanie Średni czas zapłonu
unique_id: ebusd_central_heating_average_ignition_time
device:
identifiers: "ebusd_bai"
via_device: "ebusd"
state_topic: "ebusd/bai/averageIgnitiontime"
unit_of_measurement: "s"
- name : Ogrzewanie Prędkość wentylatora
unique_id: ebusd_central_heating_fan_speed
device:
identifiers: "ebusd_bai"
via_device: "ebusd"
state_topic: "ebusd/bai/FanSpeed"
unit_of_measurement: RPM
- name : Ogrzewanie Docelowa prędkość wentylatora
unique_id: ebusd_central_heating_target_fan_speed
device:
identifiers: "ebusd_bai"
via_device: "ebusd"
state_topic: "ebusd/bai/TargetFanSpeed"
unit_of_measurement: RPM
- name : Ogrzewanie Błąd
unique_id: ebusd_central_heating_current_error
device:
identifiers: "ebusd_bai"
via_device: "ebusd"
state_topic: "ebusd/bai/currenterror"
- name : Ogrzewanie Aktualna temperatura
unique_id: ebusd_central_heating_current_room_temperature
device:
identifiers: "ebusd_700"
via_device: "ebusd"
state_topic: "ebusd/700/z1RoomTemp"
value_template: "{{ value.split(';')[0] }}"
unit_of_measurement: "°C"
- name : Ogrzewanie Temperatura zewnętrzna
unique_id: ebusd_central_heating_outside_temperature
device:
identifiers: "ebusd_bai"
via_device: "ebusd"
state_topic: "ebusd/bai/OutdoorstempSensor"
value_template: "{{ value.split(';')[0] }}"
unit_of_measurement: "°C"
- name : Ogrzewanie Aktualna temperatura przepływu
unique_id: ebusd_central_heating_actual_flow_temperature_desired
device:
identifiers: "ebusd_700"
via_device: "ebusd"
state_topic: "ebusd/700/Hc1ActualFlowTempDesired"
unit_of_measurement: "°C"
- name : Ogrzewanie Temperatura docelowa
unique_id: ebusd_central_heating_actual_room_temperature_desired
device:
identifiers: "ebusd_700"
via_device: "ebusd"
state_topic: "ebusd/700/ActualRoomTempDesiredHc1"
unit_of_measurement: "°C"
- name : Ogrzewanie Temperatura zadana dzień
device:
identifiers: "ebusd_700"
via_device: "ebusd"
state_topic: "ebusd/700/z1DayTemp"
unit_of_measurement: "°C"
- name : Ogrzewanie status
device:
identifiers: "ebusd_700"
via_device: "ebusd"
state_topic: "ebusd/700/Hc1Status"
unit_of_measurement: piec
- name : Ogrzewanie szybkość wentylatora
device:
identifiers: "ebusd_bai"
via_device: "ebusd"
state_topic: "ebusd/bai/FanSpeed"
unit_of_measurement: piec
- name : Ogrzewanie pozycja zaworu trójdrożnego
device:
identifiers: "ebusd_bai"
via_device: "ebusd"
state_topic: "ebusd/bai/PositionValveSet"
unit_of_measurement: piec