Skip to content
Projekty klientów

Inteligentny przełącznik do ogrzewania

Aby zautomatyzować domowy system ogrzewania, zainstalowałem przełącznik Shelly 1PM Mini Gen3 do sterowania kotłem gazowym na podstawie danych z czujników, co zmniejsza zużycie energii w trybie czuwania.

Udostępnij ten artykuł
Inteligentny przełącznik do ogrzewania

Inteligentny przełącznik do ogrzewania

Motywacja Moja rodzina i ja mieszkamy w domu jednorodzinnym w Saarlandzie w Niemczech od około dwudziestu lat. Oprócz kotła kondensacyjnego na gaz podgrzewamy ciepłą wodę za pomocą systemu solarnego. Aby oszczędzić 12 watów poboru energii w trybie czuwania, latem całkowicie wyłączam ogrzewanie, ponieważ wydajność instalacji solarnej zwykle wystarcza, aby utrzymać wodę w cieple. Były lata, kiedy wyłączałem je pod koniec kwietnia i nie włączałem ponownie aż do początku listopada. W tym roku było inaczej. Pojawiło się wiele okresów złej pogody, które od czasu do czasu zmuszały mnie do włączania ogrzewania. Problem polega na tym, że czasem zapominam je włączyć — zauważam to dopiero wtedy, gdy ktoś chce wziąć prysznic i woda nie jest wystarczająco gorąca. Zdarza się też, że zapominam je wyłączyć, gdy słońce świeci już od dłuższego czasu. Pomyślałem, że nadszedł czas, aby zautomatyzować całość. Założenia Wcześniej używałem już kilku inteligentnych przełączników Shelly do sterowania roletami i światłami, więc naturalne było dla mnie wykorzystanie urządzeń Shelly także w tym projekcie. Mój dom ma już własnoręcznie zbudowany system monitoringu z około 25 czujnikami, głównie temperatury, ale także innymi czujnikami środowiskowymi. System monitoringu opiera się na MQTT oraz darmowym, bezserwerowym brokerze chmurowym od HiveMQ , którego również chcę używać do komunikacji z urządzeniem Shelly. Bawiłem się już wcześniej Node-Red i uznałem, że to może być dobry przypadek użycia dla pierwszego poważnego projektu. Instalacja inteligentnego przełącznika Shelly Ponieważ maksymalny prąd kotła kondensacyjnego na gaz jest znacznie poniżej 8A, wybrałem Shelly 1PM Mini Gen3 , który dodatkowo pozwala mi mierzyć zużycie energii, gdy ogrzewanie jest włączone. Instalacja była dość prosta, ponieważ w obudowie pieca jest wystarczająco dużo miejsca. Ogrzewanie jest podłączone bezpośrednio do sieci, tuż za wyłącznikiem awaryjnym w sąsiednim pokoju. Poniższe zdjęcie pokazuje instalację przełącznika.

Heater Smart Switch (1)

Po skonfigurowaniu połączenia MQTT w Shelly Smart Control aplikacji, wszystko powinno być gotowe do kolejnych kroków. Skonfigurowałem to tak, jak pokazano w oknie dialogowym poniżej (przepraszam za niemiecki interfejs), a pierwszy test z webowym klientem dostarczonym przez HiveMQ zadziałał od razu. 


image (26)

Zaangażowane czujniki 

Przynajmniej na potrzeby początkowej konfiguracji zacząłem od trzech czujników dla logiki przełączania: 

  • Zewnętrzna temperatura po północnej stronie domu. Chcę, aby ogrzewanie włączało się, gdy temperatura spadnie poniżej określonego poziomu. 
  • Temperatura wody użytkowej w zbiorniku. Do zbiornika mam podłączone trzy czujniki, ale na potrzeby tego zastosowania wybrałem tylko środkowy. Tak jak wcześniej, chcę, aby ogrzewanie włączało się, gdy temperatura ciepłej wody spadnie poniżej określonego poziomu. Wtedy ogrzewanie natychmiast zacznie ładować zbiornik. 
  • Trzeci to temperatura powrotu obiegu ładowania. Jeśli ta temperatura ponownie spadnie poniżej 50°C, ładowanie jest zakończone. 

Pierwszy z wymienionych czujników to bezprzewodowy czujnik temperatury i wilgotności, który odczytuję za pomocą sprzętu Tinkerforge. Dwa ostatnie czujniki to czujniki DS18B20 One-Wire podłączone do Raspberry Pi Pico W. Szczegółowa logika zostanie pokazana później w odpowiedniej funkcji przepływu Node-Red. 

 

Node-Red 

Wszystkie dane z opisanej wcześniej instalacji monitoringu budynku są zbierane przez urządzenie brzegowe oparte na Raspbery Pi Zero, które generuje skompresowany pakiet JSON. Urządzenia Shelly publikują i odbierają swoje specyficzne ładunki na odpowiednich tematach MQTT. Teraz potrzebujemy czegoś pośrodku, co wszystko ze sobą połączy. Moje pierwsze wrażenie z Node-Red było takie, że może właśnie to zrobić. Node-Red działa obecnie na Kubernetesie (zob. NodeRed-On-Rancher), ale do zastosowań produkcyjnych najprawdopodobniej przeniosę go na Raspberry Pi. Oto przepływ, który stworzyłem, aby pobierać dane z czujników, stosować logikę przełączania i wysyłać polecenia do Shelly PM1 Mini Gen3: 


image (27)

Wyjaśnienie 

  • The purple nodes are the MQTT connectors. All are connected to the same broker, but the one on the left subscribes to home monitoring, and the two on the right publish to the Shelly-specific command topic. 
  • The red node is a sub-flow that processes the incoming message. The raw data is a JSON structure that is compressed and Base64 encoded. The output of the node is the original JSON. 
  • The yellowish nodes simply convert the output of the switching logic (0/1) into regular MQTT messages that can be consumed by the Shelly switch. This could actually be simplified to a single branch, but for ease of understanding and debugging, I kept the two branches for switching on and off. 
  • The only purpose of the green nodes is to produce the debug output on the right. 
  • The orange node named "Heater Switching Logic" is the actual worker node that decides whether to turn the heater on or off. Please see its JavaScript function below! 

Funkcja robocza 


image (28)

Wiadomości poleceń Shelly 

Dla pełnego obrazu chcę jeszcze dokładniej wyjaśnić polecenia MQTT Shelly, które sterują przełącznikiem zasilania ogrzewania. Można je również zobaczyć w oknie debugowania obok przepływu Node-Red. 

  Topic: shelly1pmmini3-<device_id>/command/switch:0 

Payload: on|off 

Więcej informacji o poleceniach MQTT w dokumentacji technicznej Shelly. 

Wnioski 

  • To połączenie komponentów, przez które rozumiem MQTT, Node-Red i urządzenia Shelly, jest bardzo wydajne. 
  • Korzystam z darmowego, bezserwerowego brokera chmurowego HiveMQ od lat i uważam go za bardzo bezpieczny, niezawodny i wygodny. 
  • Jeśli chodzi o Node-Red, jestem nowicjuszem, ale myślę, że ma on duży potencjał w tego rodzaju integracjach i po prostu dobrze się z nim pracuje. 
  • W międzyczasie stałem się dużym fanem urządzeń Shelly. Użyty w tym projekcie Shelly1PM MINI Gen3 jest naprawdę mały, a mimo to bardzo wydajny. Spójrz na wszystkie możliwości, jakie daje w zakresie logiki przełączania, harmonogramu, pomiaru mocy i zdalnego sterowania przez MQTT, wymieniając tylko te najważniejsze dla mnie. 

Perspektywy 

Jak wspomniałem wcześniej, zestaw narzędzi, którego użyłem w tym projekcie, jest dość potężny i dał mi wiele nowych pomysłów na automatyzację naszego domu. Wymienię tylko kilka: 

  • Jakiś rodzaj geofencingu, który otwierałby mi bramę garażową, gdy podjeżdżam. Brama jest już wyposażona wShelly 1 MINI Gen3. 
  • Mógłbym sterować markizą na naszym tarasie za pomocą Shelly Plus 2PMoraz podłączonego Shelly Plus AddOni kilku czujników (prędkość wiatru, promieniowanie słoneczne, opady deszczu). 
  • Interesujące byłoby także dodanie czujników z Shelly AddOn do mojego istniejącego systemu monitoringu budynku. Powinno to być możliwe przy użyciu MQTT. 

Jeśli chodzi o obecny projekt, z pewnością będę musiał dopracować moją logikę przełączania ogrzewania na zimę. Na lato może to wystarczyć, ale podejrzewam, że zimą będę potrzebował bardziej zaawansowanej logiki. 

Autorstwa: Gerhard Müller

Komentarze 0

Dołącz do rozmowy — konto nie jest potrzebne.

  1. Brak komentarzy — podziel się swoją opinią jako pierwszy.
← Powrót na stronę główną