HA i sterowanie kotłem gazowym Vaillant VC 206/5-5

Zgodnie z obietnicą …
(choć po części moje problemy i rozważania można znaleźć tutaj: HA Sterowanie Piecem Vaillant VC20CS/1-5 + VRC 720 … mimo wszystko zamieszczam poniżej info co i jak skonfigurowałem u siebie)

  • Adapter to: ESP32-C6
  • Kocioł to: Vaillant ecoTEC Plus VC PL 186/3-5 wraz z regulatorem CalorMATIC 470f
  • HA to: Home Assistant OS 12.4 postawiony na RPI4
  • Dodatek to eBUSd w wersji 23.2.6.

Kwestię podłączenia sobie daruję, gdyż o tym również pisałem już w w/w wątku.
Po zainstalowaniu dodatku - musisz go sobie skonfigurować.
U mnie to wygląda tak:



Plik konfiguracyjny mqtt-hassio.cfg u mnie wygląda tak:

[mqtt]
host=core-mosquitto
port=1883
user=TWOJA_NAZWA_UZYTKOWNIKA (dla połączenia z Mosquitto Brokerem)
password=TWOJE_HASLO (dla połączenia z Mosquitto Brokerem)
topic=ebusd
qos=1
retain=1

Obecna konfiguracja zakłada, że cały Ekosystem Vaillant jest skanowany o rozpoznawany na podstawie zdalnych plików konfiguracyjnych (nie lokalnych, lecz tych wrzuconych na serwer przez autora dodatku).
W chwili obecnej po ustawieniu poszczególnych parametrów jak powyżej - powinieneś być w stanie podłączyć się MQTT Explorerem z Mosquitto Brokerem i zobaczyć, że pod tematem “ebusd” zaczynają Ci spływać różne dziwne informacje.
Po pewnym czasie - ok. 20-30 sek zaczną Ci się pojawiać kolejne tematy na jakich są subskrybowane dane dot. samego kotła i regulatora:

Gdybyś tego nie widział (bo Vaillant może nie rozgłaszać tych informacji automatycznie / ESP32 może ich automatycznie nie zaciągać) - wtedy przechodzisz do kolejnego kroku i w configuration.yaml dopisujesz sobie (przykład ode mnie - zmodyfikuj na Twoje potrzeby):

#######################################################################
################################ - MQTT - #############################
################################ - Vaillant - #############################

mqtt:
sensor:

- name: "Vaillant Outside Temperature"
  state_topic: "ebusd/broadcast/outsidetemp/#"
  value_template: "{{ value_json.temp2.value }}"
  unit_of_measurement: "°C"
  icon: mdi:thermometer

- name: "Vaillant Current Time"
  state_topic: "ebusd/broadcast/vdatetime/#"
  value_template: "{{ value_json.time.value }}"
  icon: mdi:clock

- name: "Vaillant Current Date"
  state_topic: "ebusd/broadcast/vdatetime/#"
  value_template: "{{ value_json.date.value }}"
  icon: mdi:calendar

- name: "Vaillant Room Temperature"
  state_topic: "ebusd/f47/RoomTemp"
  value_template: "{{ value_json['temp'].value }}"
  unit_of_measurement: "°C"
  icon: mdi:thermometer

- name: "Vaillant Desired Flow Temperature"
  state_topic: "ebusd/bai/FlowTempDesired"
  value_template: "{{ value_json['temp'].value }}"
  unit_of_measurement: "°C"

- name: "Vaillant Desired Hot Water Temperature"
  state_topic: "ebusd/bai/StorageTempDesired"
  value_template: "{{ value_json['temp'].value }}"
  unit_of_measurement: "°C"

- name: "Vaillant Existing Hot Water Temperature"
  state_topic: "ebusd/bai/StorageTemp"
  value_template: "{{ value_json['temp'].value }}"
  unit_of_measurement: "°C"


- name: "Vaillant Pump State"
  state_topic: "ebusd/bai/Status01"
  value_template: "{{ value_json['5'].value }}"
  icon: mdi:pump

- name: "Vaillant Error"
  state_topic: "ebusd/bai/currenterror"
  value_template: >
    {% if value_json['0'].value %}
      {{ value_json['0'].value }}
    {% else %}
      OK
    {% endif %}
  icon: mdi:alert-circle-check

- name: "Vaillant Fan Speed"
  state_topic: "ebusd/bai/FanSpeed"
  value_template: "{{ value_json['0'].value }}"
  unit_of_measurement: "RPM"
- name: "Vaillant stan pompy wody"
  unique_id: Vaillant_stan_pompy_wody
  state_topic: "ebusd/bai/WP"
  value_template: "{{ value_json['onoff'].value }}"
  icon: mdi:pump

- name: Vaillant cisnienie wody
  unique_id: Vaillant_cisnienie_wody
  state_topic: "ebusd/bai/WaterPressure"
  value_template: "{{ value_json['press'].value }}"
  unit_of_measurement: Bar
  icon: mdi:sine-wave

- name: Vaillant Temperatura Powrotu
  unique_id: Vaillant_Temperatura_Powrotu
  state_topic: "ebusd/bai/ReturnTemp"
  value_template: "{{ value_json['temp'].value }}"
  unit_of_measurement: "°C"

- name: Vaillant Temperatura Zasilania
  unique_id: Vaillant_Temperatura_Zasilania
  state_topic: "ebusd/bai/FlowTemp"
  value_template: "{{ value_json['temp'].value }}"
  unit_of_measurement: "°C"

- name: Vaillant Zawór Gazu
  unique_id: Vaillant_Zawór_Gazu
  state_topic: "ebusd/bai/ExternGasvalve"
  icon: mdi:valve
  value_template: >
    {% set gasvalve = value_json['onoff'].value %}
    {% if gasvalve == 240 %}
      Zamknięty
    {% else %}
      Otwarty
    {% endif %}

- name: Vaillant Pozycja Zaworu 3D Kotła
  unique_id: Vaillant_Pozycja_Zaworu_3D_Kotla
  state_topic: "ebusd/bai/PositionValveSet"
  value_template: >
    {% set position = value_json['0']['value'] %}
    {% if position == 0 %}
      Ogrzewanie C.O.
    {% else %}
      Zasobnik CWU
    {% endif %}
  icon: mdi:valve

- name: Vaillant aktualna moc
  unique_id: Vaillant_aktualna_moc
  state_topic: "ebusd/bai/ModulationTempDesired"
  value_template: "{{ value_json['0'].value }}"
  unit_of_measurement: "%"

######### LICZNIKI GAZU / ENERGII #####################

- name: CWU zużycie energii
  unique_id: Vaillant_CWU_zużycie_energii
  state_topic: "ebusd/bai/PrEnergyCountHwc1"
  value_template: "{{ value_json['0'].value }}"


- name: prenergysumhc1
  state_class: total_increasing
  state_topic: 'ebusd/bai/PrEnergySumHc1'
  value_template: "{{ value_json['0'].value }}"


- name: prenergysumhwc1
  state_class: total_increasing
  state_topic: 'ebusd/bai/PrEnergySumHwc1'
  value_template: "{{ value_json['0'].value }}"


- name: "Cwu m3"
  unit_of_measurement: "m³"
  device_class: gas
  state_class: total_increasing
  state_topic: 'ebusd/bai/PrEnergySumHwc1'
  value_template: >
    {{ (value_json['0']['value'] | int / 628544.715) - 2741 | round(2) }}

W ten sposób masz zdefiniowanych sporo różnych encji powiązanych z poszczególnymi tematami mqtt, które udało mi się rozpracować.
Teraz jeszcze (jeśli chcesz by dane Ci się aktualizowały często - np. co 10 sek) to musisz albo skorzystać ze sposobu, który ktoś kiedyś opisywał tu na Forum i sposób ten polegał na dodatkowym fragmencie kodu YAML, albo (ja mam tak zrobione) - że wysyłam na każdy z tematów zapytanie “get”, tyle że ja to robię spod NodeRed-a (ot taka fanaberia).
Pytanie - którą drogą chcesz iść. Jeśli stricte przez HA, musisz się dokopać do tamtego wątku.
Jeśli przez NR, to testowo zaciągnij sobie ten fragment, dołóż bloczek “MQTT OUT” ustaw w nim usera/hasło do łączności z Mosquitto Brokerem i zrób sobie test dla tej jednej encji:

[{"id":"9cd69ddac45490e6","type":"comment","z":"bf3ed4fa7b193110","name":"MQTT","info":"","x":130,"y":60,"wires":[]},{"id":"1008248faa7b0a11","type":"comment","z":"bf3ed4fa7b193110","name":"Generowanie komendy \"GET\"","info":"","x":200,"y":100,"wires":[]},{"id":"383ccde9ddfde62d","type":"inject","z":"bf3ed4fa7b193110","name":"Temp CWU aktualna - co 15 sec.","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"15","crontab":"","once":true,"onceDelay":"20","topic":"ebusd/bai/StorageTemp/get","payload":"","payloadType":"str","x":240,"y":260,"wires":[["99652257687f1a65"]]}]

Tu akurat masz sprawdzanie aktualnej temperatury CWU w zasobniku.

U mnie to wygląda mniej więcej tak (chwilowo brak czasu by bawić się w dodatkowe kwiatuszki).
Nie działają mi jeszcze prawidłowo liczniki energii pobieranej przez kocioł (czyli nie mogę liczyć gazu), ale to problem po stronie kotła. Jego rejestry już osiągnęły wysokie wartości i teraz by je trzeba zresetować, ale jeszcze się za to nie wziąłem.


To tak w skrócie.
Gdybyś miał z czymś problemy - spróbuję pomóc na ile będę w stanie.

1 polubienie