Sterowanie Pompą ciepła

Cześć
Jako, że dopiero zaczynam przygodę z node red potrzebuje jeszcze pomocy w niby w prostych tematach.
W domu posiadam trzy pokoje w których posiadam termostaty elektryczne na kaloryferach. Pilnują one komfortowej temperatury i potrzebuje zrobić sterowanie pompą ciepła.

Zrobiłem Flow które steruje mi trzema głowicami w zależności od temperatury przymyka lub otwiera przepływ ciepłej wody przez kaloryfery. Potrzebuje teraz zrobić taką logikę, że jak dwie lub trzy głowice są załączone to załącza się wyjście grzanie natomiast wyłącza się jak wyłączą się dwie lub wszystkie głowice w pokojach. Ktoś podpowie jak dokończyć ten schemat aby mi to tak działało.
(większość głowić jest załączona załącz wyjście grzanie, większość jest wyłączone to wyłacz wyjście grzanie)

flows (1).json (7,2 KB)

Pompa ciepła, nie lubi być włączana i wyłączana, lepiej jak redukuje obroty niż wyłącza się co chwile.
Temperatury jakie nastawiłeś, będą szarpać pompe aż ją zajadą.
Za mała rozbieżność temperatur powinno być o kilka stopni a nie o dziesiąte stopnia różnicy.

Zobacz czy działa.

Tu był nieodpowiedni flow.

w pierwszym węźle state node zakładka entity, wpisz dane z czujników tak jak masz w current state node.

Nie wiem co @Kriss miał na myśli wstawiając swój flow, ale mniejsza z tym.
Proponuję przeanalizować sobie taki przepływ.
flows (1).json (3,7 KB)

Tak mam nastawione u siebie sterowanie ogrzewaniem.
Pobieranie temperatury > czekać 1 minute > wywołanie temperatury odczytanej z czujnika > włącz lub wyłącz głowice.
Tak jak pisałem wyżej wyłączanie całej pompy ciepła, doprowadzi ją do awarii.
Pompa ciepła powinna mieć bufor który będzie ładował się ciepłem a termostaty sterując głowicami powinny tylko zakręcać i odkręcać głowice a nie wyłączać pompe.

Ale nie moja pompa nie mój problem :slight_smile:

Jak już chcesz być takim doradcą od sterowania pompą ciepła, to powinieneś napisać, że przy pompie głowice to pomyłka. A przy grzejnikach bufor jest prawie obowiązkowy. Grzejniki powinny być sterowane zmianą zadanej i im niżej tym oszczędniej, a żeby ustawić podobne temperatury w różnej wielkości pomieszczeniach, należy odpowiednio kryzować grzejniki na powrotach.
Pomijając to wszystko, Twój flow nie spełnia oczekiwań autora.

Nikomu nic nie doradzam, jak ktoś ma grzejniki z głowicami, to nie mówię żeby wymienił grzejniki na podłogówki.
Każdy ma instalacje jaką ma, to że autor będzie miał większe zużycia prądu, to nie nasza sprawa.
Napisałem, że pompa powinna mieć bufor ale Ty wolisz dyskutować ze mną zamiast z autorem.

Jak się udzielasz, to zrób poprawny flow, żeby pomóc koledze skoro ja zrobiłem nieodpowiedni i koniec gadki.

Bardzo dziękuje za zainteresowanie tematem.
Testowałem to przez noc i to jest to o co mi chodziło, ale coś jeszcze najprawdopodobniej trzeba będzie poprawić. Poniżej na screnie widać odczyt trzech temperatur 07:33:01 gdzie mamy -1 +1 +1 i grzanie jest załączone a przy kolejnym odczycie 07:33:11 -1 -1 +1 (podgrzałem czujnik temp w salonie) a wyjście grzanie nie zmieniło stanu na OFF i widzę, że node debud OFF nie zanotował przyjścia czegokolwiek z wyjść 1 i 2 nodu “ile grzejników on”.
Co ciekawe jak nie wyłącza tego wyjścia to wystarczy, że kliknę Deploy i to jakby się to wszystko resetowało i dopiero w tedy sprawdza jakie są stany i wyłącza wyjście grzej.
Ison Możesz zerknąć, bo sam tego nie ogarnę.
P.S. Musiałem dołożyć node delay, bo Satel integra nie jest w stanie odczytywać dwóch poleceń w tym samym czasie a widzę, po logach debug, że często przy zmianie jest wysyłane polecenie OFF, ON w tym samym czasie np. 2 screen czas 07:10:17

flows (11).json (9,9 KB)

incgrz
Ten fragment jest słaby - nie można wykluczyć, że oba nody +/- będą wykonywać operację jednocześnie.
Bez wiedzy jak to się odbywa wygląda niewinnie.
To w środku działa tak, że nod robi kopię zmiennej “grzejnik”, dodaje (odejmuje) 1 i wynik zapisuje do zmiennej. Może być tak, że jeden nie wie co robił drugi, bo oba pracują na tej samej kopi wyjściowej.
Należy unikać tworzenia procesów pracujących równolegle.
W tej chwili nie mam czasu aby to przerobić… ale może później? :wink: - chyba, że sam spróbujesz.

Drugi błąd to (i chyba największy) to proces powinien startować za każdym razem (co minutę) również z “reset grzejnik” bo po pewnym czasie ilość załączonych grzejników będzie poza zbiorem 0,1,2,3

Pewnie że trzeba poprawić , ja tylko wskazałem drogę.
Musisz sprawdzać stan głowic i nie wysyłać za każdym razem on , off , bo licznik załączonych głowić się rozjedzie. To że deploy “poprawił” sytuację jest normalne.
On resetuje stan głowic do 0.
Sprawdz to co poniżej tylko uzupełnij swoje encje w statusach.
flows.json (14,1 KB)

Po trzech dniach testowania wygląda na to, że działa to dokładnie tak jak chciałem. Bardzo dziękuje za pomoc. Potrzebuje do dalszych automatyzacji podpowiedzi jakich nodów użyć aby zgodnie z poniższym zdjęciem uzyskać proste funkcje logiczne, bo przypuszczam, że są nody które realizują takie funkcje.

  1. Kiedy jeden z dwóch nod-ów state node jest on to node call service jest on (lub inny node które realizuje taką funkcję)
  2. Kiedy oba nody state node są on to node call service jest on (lub inny node które zrealizuje taką funkcję)

Jest taki magiczny nod, który się nazywa funkcja i pozwala zrealizować takie zależności.
Moim zdaniem trzeba to wszystko trochę inaczej połączyć. Używać zmiennych, bo są bardzo pomocne i nie bać się próbować samemu.
Na początek przykład który realizuje pkt 1
flows.json (2,9 KB)