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.