Głowica grzejnikowa Zigbee - sterowanie pompą CO

Dzień dobry.
Już dość długo studiuję to forum, ale to moje pierwsze zapytanie.

Próbuję zrobić prostą automatyzację: otwarcie zaworu przy grzejniku ma uruchomić pompę CO. Zawór jest obsługiwany głowicą Zigbee. W momencie gdy zawór jest otwarty głowica ma jeden z atrybutów (nie wiem czy to porawana nazwa) hvac_action: heating, gdy zawór jest zamknięty hvac_action: idle.

Proszę pomoc w ukierunkowaniu moich dociekań :wink:

Karta encji wygląda tak:

Podaj jeszcze Nazwę/Producenta twojego zaworu i z jakiego dodatku korzystasz, Z2M ZHA?

Korzystam z Z2M. Siłownik - głowica na zaworze w Z2M “przedstawia się” jako Moes TS0601, natomiast oznaczona jest symbolem TRV801Z.

Tutaj masz cały opis twojej głowicy. https://www.zigbee2mqtt.io/devices/TRV801.html

running_state: The current running state. Possible values are: idle, heat. Reading (/get) this attribute is not possible.

Ale do takiego celu pewnie da się wykorzystać programowy termostat (Better Thermostat u mnie) ?

Nie używam Better Thermostat ale nie sądzę żeby samodzielnie włączył pompę, raczej musisz skorzystać z automatyzacji.

Jak masz obecnie pompę sterowaną?
W opisie głowicy jest, że zwraca swoją pozycję otwarcia w [%] - sprawdź czy nie masz dodatkowej encji dla tej głowicy mówiącej o pozycji.
W takim przypadku sumuje się otwarcie ze wszystkich i sprawdza czy wartość jest powyżej progu.

W przypadku sprawdzania stanu heat/idle załączenie ma nastąpić gdy choćby jeden jest heat, wyłączenie gdy wszystkie idle.
Dlaczego piszesz w dziale node-red ?

@artpc …jak myślisz, co niby ma znaczyć ?

 Possible values are: idle, heat. Reading (/get) this attribute is not possible

przecież ją otrzymujemy, jak to rozumieć?

Możesz ją dostać tylko gdy jest raportowana, ale nie możesz o nią pytać.

Ok… to wynika z właściwości mqtt i dla mnie to czywistość, stąd moje zdziwienie :slight_smile:

Że jest otwarta albo zamknięta, ale ma jeszcze [Position (numeric)] zastanawia mnie czy przy 1% pozycji jest sens załączać pompę,

Sterowanie obecnie jest stykiem zwykłego termostatu (styk bezpotencjałowy, ale to nie ma znaczenia). Pompa ogrzewa całe piętro, ale sterowana jest na podstawie pomiaru temperatury w jednym z pomieszczeń, takim powiedzmy “reprezentatywnym”.

No i generalnie działa to przyzwoicie, ale przez Was i to forum pojawił się pomysł aby to usprawnić (a może skomplikować) :wink: Miejsza o to - taka dygresja.

Mój pomysł był taki: docelowo kilka termostatów (w każdym pomieszczeniu jeden), dopóki chociaż jeden z nich zgłasza “niedogrzanie” to pracuje pompa. Gdy wszędzie zostanie osiągnięta temperatura zadana, pompa się wyłączy.

Zacząłem od jednego termostatu - z myślą o późniejszym rozwinięciu pomysłu.

A jeszcze jedno: zauważyłem że siłownik - głowica działa 0-1: nie zaobserwowałem stanów pośrednich np 30% procent otwarcia.

W dobrych głowicach min pozycję zaworu się ustawia. Przy kilku grzejnikach jest to na poziomie 5% każdy.
Robi się w celu, aby zostawić minimalny przepływ dla kotła który np. startuje po nocnym obniżeniu temperatury. Zapobiega to za działaniu zabezpieczeń od przegrania - szczególnie gdy wszystkie grzejniki posiadają głowice.

A widzisz w ogóle % otwarcia głowicy?

Też chciałbym to zobaczyć - szczególnie wykresy z historii.
Masz tam taki atrybut heating_power - zmienia się?

Trochę jeszcze mi brakuje do Waszego obeznania w HA, więc niektórych pytań za bardzo nie czaję.

W Z2M log z komunikacją z tym urządzeniem wygląda tak:

Wg mnie nie muszę znać procentowego otwarcia głowicy: mnie interesuje tylko sam fakt że coś takiego nastąpiło.

To wystarczy sprawdzić czy position > np. od 0. Zawór otwaraty - znaczy, że jest zapotrzebowanie na ciepło.

No właśnie. Jak to ugryźć?

Z2M używa mqtt do komunikacji z HA.
Skoro otagowałeś temat jako node-red to…
Za pomocą węzła mqtt_in subskrybujesz temat zigbee2mqtt/tvr_1, odczytujesz position, nodem switch sprawdzasz wartość i wywołujesz usługę wł/wył pompkę.

Piszesz “skoro”: czy zaproponowałbyś jakis inny sposób? Nie w Node Red?

Sam preferuje NR.
Jest też możliwość zrobienia automatyzacji w czystym HA.
Hasłowo - bo wiem co należy zrobić… ale dokładnie jak to już musiałbym się trochę wysilić.
Trzeba utworzyć nową encje mqtt z atrybutu position i następnie użyć jej w automatyzacji sprawdzającej próg przekroczenia.