Domoticz jako wirtualny termostat sterujący komfortem cieplnym w domu

Sezon grzewczy za pasem, więc coraz częściej myślę o rozbudowie Domoticza o jakiś kompletny system starowania ogrzewaniem. Jako, że głównym źródłem ciepła jest u mnie piec elektryczny sprawa wydaje się niezbyt skomplikowana.  Można pójść w rozwiązania wysoce komercyjne jak np. termostaty NEST czy ECOBBE albo głowice termostatyczne na z-wave, ale rozmawiamy tu o wydatku przetaczającym tysiące złotych. Od czego jest jednak społeczność Domoticza ? Skoro mam już czujniki temperatury w każdym pokoju, to wystarczy podpiąć piec do przełącznika i skonfigurować Domoticza aby czuwał nad włączeniem pieca w określonym zakresie temperatur. Można zrobić to na tzw. piechotę i zbudować zdarzenia w LUA ale fajnie byłoby mieć coś w miarę kompletnego. Okazuje się, że nie ma nic prostszego. Ameryka została już odkryta i powstał Smart Virtual Thermostat python plugin for Domoticz napisany przez użytkownika Logread.

Plugin możemy zainstalować poprzez Python Plugin Manager. Jak to zrobić pisałem tu, albo bezpośrednio z github.com.

cd plugins
mkdir SVT
sudo apt-get update 
sudo apt-get install git 
git clone https://github.com/999LV/SmartVirtualThermostat.git SVT 
cd SVT 
sudo chmod +x plugin.py 
sudo /etc/init.d/domoticz.sh restart

Przechodzimy do katalogu z pluginami, tworzymy katalog SVT, aktualizacja i instalujemy git ( jeżeli jeszcze go nie mamy ). Następnie ściągamy skrypt z githuba, przechodzimy do katalogu ze skryptem i nadajemy mu odpowiednie prawa do wykonywania. Restart Domoticza i mamy sprawę załatwioną.

W zakładce /Sprzęt możemy wybrać już Smart Virtual Thermostat.

FireShot Capture 1 - Domoticz - http___192.168.2.214_9009_#_Hardware.png

Konfiguracja jest banalnie prosta ( na początku ). Podajemy kolejno: adres IP Domoticza, port, użytkownika i hasło ( jeżeli mamy ustawione ), idx czujnika temperatury wewnętrznej, idx czujnika temperatury zewnętrznej oraz idx przełącznika uruchamiającego piec. Bardzo praktyczną rzeczą jest fakt, iż możemy dodać kilka czujników temperatury np. w salonie, sypialni, łazience itp. oddzielając je przecinkiem a ich wartości będą uśredniane. Tak samo z czujnikiem zewnętrznym. Uwaga, bez czujnika temperatury wewnętrznej skrypt nie zadziała, natomiast bez czujnika zewnętrznego będzie działał. Skrypt próbuje naśladować tzw. starowanie pogodowe, które jest dostępne w nowszych piecach centralnego ogrzewania.

Sprawa ustawień komplikuje się znacznie przy dwóch ostatnich parametrach.

Wartość Apply minimum heating per cycle określa zachowanie termostatu, gdy podano minimalny parametr ogrzewania na cykl.

  1. Jeśli jest ustawione na „only when heating required” (opcja domyślna), wówczas minimalne ogrzewanie zostanie zastosowane tylko wtedy, gdy nie zostanie osiągnięta żądana temperatura. Jest to przydatne na przykład podczas napełniania kotłów centralnego ogrzewania, które mają określoną bezwładność.
  2. Jeśli ustawione na „always„, to zawsze będzie stosowane minimalne ogrzewanie w każdym cyklu ogrzewania, niezależnie od tego, czy osiągnięta zostanie żądana temperatura. Jest to na przykład przydatne w systemach ogrzewania podłogowego o bardzo wysokiej bezwładności cieplnej, gdzie lepiej jest unikać zbytniego chłodzenia podłogi, nawet jeśli ogrzewanie nie jest faktycznie potrzeb

Linia Calculation cycle, Minimum Heating time per cycle, Pause On delay, Pause Off delay, Forced mode duration  zawiera zaawansowane parametry, które mogą mieć kluczowe znaczenie dla prawidłowego działania inteligentnego termostatu wirtualnego.

  1. Calculation cycle ( cykl obliczeniowy) – jest to czas w minutach między dwoma obliczeniami termostatu. Należy go ustawić w zależności od bezwładności cieplnej fizycznego pomieszczenia i systemu grzewczego. Domyślnie 30 min.
  2. Minimum Heating time per cycle ( minimalne ogrzewanie na cykl ) – jest to minimalny %, w którym grzejnik musi być włączony w danym okresie obliczeniowym. Wartość może wynosić od 0 do 100.
  3. Pause On delay ( opóźnienie włączenia pauzy ) – jest to liczba minut, przez którą musi być włączony przełącznik „Pauza”, zanim termostat rzeczywiście wyłączy ogrzewanie. Jest to bardzo przydatne, aby umożliwić krótkie otwarcie drzwi, a następnie ich ponowne zamknięcie bez żadnego wpływu na termostat, a pozostawienie otwartych drzwi przez dłuższy czas spowodowałoby wyłączenie ogrzewania przez termostat, aby uniknąć marnowanego ciepła.
  4. Pause Off delay ( opóźnienie wyłączenia pauzy ) – parametr odwrotny od poprzedniego, liczba minut, przez którą przełącznik „Pause” musi być wyłączony, zanim termostat powróci do normalnego działania.
  5. Forced mode duration ( czas trwania trybu wymuszonego) – to czas w minutach, w którym termostat wymusi ogrzewanie po wybraniu trybu „forced”. Po tym czasie aktywny będzie tryb „Auto”.

Na początku zostawiłem domyślne ustawienia.

Po uruchomieniu skryptu zostanie utworzonych 6 urządzeń:

  • Thermostat Control ( Kontrola termostatu ) – ustawia status termostatu (wyłączony, tryb automatyczny, tryb wymuszony)

FireShot Capture 2 - Domoticz - http___192.168.2.214_9009_#_Dashboard.png

  • Thermostat Mode ( Tryb termostatu ) – ustawia tryb sterowania temperaturą (normalny, oszczędny) za pomocą odpowiedniej wartości zadanej. Można to wykorzystać do przestawiania termostatu na tryb dzienny i nocny.

FireShot Capture 3 - Domoticz - http___192.168.2.214_9009_#_Dashboard.png

  • Thermostat Pause ( Pauza termostatu ) – jeśli jest ustawionyana” Wł. „, wymusi pracę termostatu w trybie pauzy po zadanym czasie  i odwrotnie, wznowi normalną pracę, jeśli jest ustawiona na” Wył.” Może to być przydatne, aby zatrzymać ogrzewanie, gdy okno lub drzwi są otwarte.

FireShot Capture 4 - Domoticz - http___192.168.2.214_9009_#_Dashboard.png

  • Setpoint Normal – ustawia temperaturę docelową dla trybu normalnego. Panel ustawień temperatury wyświetla się po naciśnięciu płomyka.

FireShot Capture 5 - Domoticz - http___192.168.2.214_9009_#_Dashboard.png

FireShot Capture 9 - Domoticz - http___192.168.2.214_9009_#_Dashboard.png

  • Setpoint Economy – ustawia temperaturę docelową dla trybu ekonomicznego.

FireShot Capture 6 - Domoticz - http___192.168.2.214_9009_#_Dashboard.png

FireShot Capture 8 - Domoticz - http___192.168.2.214_9009_#_Dashboard.png

  • Thermostat Temp – wyświetla bieżącą temperaturę otoczenia (średnia z wartości wewnętrznych czujników temperatury, podana w parametrach sprzętowych) To urządzenie jest domyślnie” ukryte ” i można je dodać do panelu Domoticza z menu /Urządzenia.

FireShot Capture 7 - Domoticz - http___192.168.2.214_9009_#_Dashboard.png

U mnie wygląda to tak.

FireShot Capture 10 - Domoticz - http___192.168.2.214_9009_#_Dashboard.png

Jak dla mnie genialna robota. Nic więcej mi nie potrzeba. Termostat przetestowany, robi co ma robić. Pobawię się i potestuje parametry pracy i myślę, że przeżyje zimę we względnym komforcie cieplnym.

Jeszcze tańsza wersja odtwarzacza sieciowego mediów na bazie Raspberry Pi.

Na moim blogu coraz rzadziej pojawiają się wpisy dotyczące bezpośrednio RasberryPi. Wynika to z tego, że dosyć mocno poszedłem w rozwój automatyki domowej i Domoticza i malinka jest dla mnie tylko bazą do dalszego rozwoju mojego systemu. Nadal zajmuje eksponowane miejsce i z ochotą wracam do zaniechanych z braku czas projektów. Jeden z nich, o roboczej nazwie „Muzyka w każdym pokoju” cały czas rozwijam. W poprzednich wpisach o Volumio i HiFiBerry już pisałem. Jak można w nich przeczytać wyjście dźwięku z mini jack w raspberry jest za słabe i potrzebne są aktywne głośniki, a dobry DAC kosztuje od 100 zł w górę. Dla kilku pokoi robią się nie małe pieniądze. Ceny raspberrypi nie liczę ponieważ przez poprzedni rok nazbierałem ich „kilka” i czekają na wykorzystanie. Po kilku nieudanych próbach znalezienia tańszego wzmacniacza znalazłem w końcu coś takiego.

htb1nwt1zkcwbunjy0faq6xulxxaj.jpg

Jest to dwukanałowy 6W wzmacniacz z wyjściem mini jack. Kupiłem go tu. Cena poraża. Nie wierzyłem szczerze powiedziawszy że zadziała. Podłączenie jest dziecinnie proste. Zasilanie 5V i GDN z RaspberryPi do gniazda obok czerwonej diody, głośniki do zacisków z lewej i wyjście dźwięku z malinki do wejścia w urządzeniu. Musi działać. Potencjometr reaguje bardzo płynnie, nie słychać trzasków i przeskoków. Miałem stare głośniki od wieży i doczekały się w końcu swojej drugiej szansy. Wersja na roboczo wygląda tak.

Do budowy mojego projektu wykorzystałem Logitech Media Server z odtwarzaczami  piCorePlayer. Jako że miałem już 2 odtwarzacze na bazie RaspberryPi Zero i HiFiBerry MiniAmp działające w oparciu o Volumio postanowiłem ten najnowszy wpiąć w sieć i stworzyć multi-room. Logitech Media Server zainstalowałem na tej samej maszynie na której chodzi Domoticz. Na razie nic się nie gryzie. Zobaczymy jak będzie dalej. Dla tych, którzy stawiają LMS na Raspbianie polecam wpis Cezara . Tam są wszystkie szczegóły. U mnie Domoticz chodzi na Ubuntu Server, więc instalacja Logitech Media Server sprowadzała się do pobrania i zainstalowania paczki ze strony http://downloadsorigin.slimdevices.com/LogitechMediaServer_v7.9.0/ . Po restarcie odpalamy server podając nasze IP i port 9000. Na malinkach, które będą odtwarzaczami wypalamy piCorePlayer. I tyle.

FireShot Capture 4 - Logitech Media Server - http___192.168.2.214_9000_

FireShot Capture 5 - Logitech Media Server - http___192.168.2.214_9000_

Oczywiście możemy użyć aplikacji Squeezer oraz obsłużyć wszystko z Domoticza.

Screenshot_20180909-142451.jpg

FireShot Capture 7 - Domoticz - http___192.168.2.214_9009_#_LightSwitches

Audiofilski system to to nie jest, ale nie taki nie taki miał być. Myślę, że pomysł może się przydać dla tych, u których w szufladzie przewalają się zapomniane malinki a nie ma pomysłu a zwłaszcza funduszy na ich zagospodarowanie. Moim zdaniem zakup tego wzmacniacza to jeden z lepszych pomysłów na wydanie 2.5 $.