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