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.

Skrypty Pythona jako urządzenia w Domoticzu. Python plugin Manager.

Obsługa mniej lub bardziej złożonych skryptów w języku Python do dawna jest dostępna w Domoticzu. Wykorzystywane są one do uruchamiania urządzeń, odczytu danych z czujników itp.  W połączeniu z CRON daje to nam możliwość zarządzania tymi danymi w czasie. Pojawiają się coraz częściej bardziej złożone programy napisane w Pythonie dedykowane do Domoticza. Ich instalacja i obsługa na pierwszy rzut oka może być kłopotliwa. Tak przynajmniej mi się wydawało i przez jakiś czas zbierałem siły aby zmierzyć się z tematem. Sprawa zdecydowanie przyśpieszyła po odkryciu Python Plugin Managera.

Jest to proste rozszerzenie umożliwiające  instalację innych skryptów z przyjaznej , rozwijanej listy. Ma ono też możliwość uaktualniania tych skryptów. Jest kompatybilne z Raspberry Pi, natomiast brak jest wsparcia dla Windows. Listę wspieranych skryptów znajdziemy na stronie https://www.domoticz.com/wiki/Plugins.

Instalacja Pythona.

Jeżeli chcemy skorzystać z PP Managera musimy mieć  przynajmniej Python 3.4. U mnie jest jak należy.

FireShot Capture 36 - Portainer_ - http___91.245.83.80_9000_#_contain

W przeciwnym razie należy zaktualizować Pythona.

sudo apt-get install -y python3

Niektóre rozszerzenia wymagają wersji beta Domoticza i biblotek /python3 development, więc je również najlepiej zainstalować. Ja pracuje na wersji stabilnej i zadziałało bez problemu.

sudo apt-get install -y python3-dev

Jeżeli zachodzi taka konieczność aktualizujemy do BETA.

cd ~/domoticz
./updatebeta

Robimy restart i mamy Pythona. U mnie nie zadziałało zrestartowanie usługi,

sudo systemctl restart domoticz.service

pomógł pełen reset.

W razie problemów polecam zajrzeć na: https://www.domoticz.com/wiki/Using_Python_plugins

Instalacja PP Managera.

Przechodzimy do domoticz/plugins i instalujemy rozszerzenie z Github.

cd domoticz/plugins 
git clone https://github.com/ycahome/pp-manager.git PP-MANAGER

 

Nadajemy prawa i restartujemy system. U mnie jak wyżej. Twardy reset.

 
cd PP-MANAGER
chmod +x plugin.py

Użycie PP Managera.

Rozszerzenie pojawi się na liście sprzętu w Domoticzu, jak każde inne wspierane urządzenie.

FireShot Capture 37 - Domoticz - http___91.245.83.80_9009_#_Hardware

Poniżej wybieramy skrypt do instalacji i restartujemy system.

FireShot Capture 39 - Domoticz - http___91.245.83.80_9009_#_Hardware

Uruchomienie przykładowych skryptów.

Na początek zainteresowały mnie dwa pluginy:

  1. Moon Phases – Skrypt aktualizujący kafelek o aktualny stan fazy księżyca.

Wybieramy z listy. Dodajemy i oczywiście restart. Dużo tych restartów ale są niezbędne.

FireShot Capture 40 - Domoticz - http___91.245.83.80_9009_#_Hardware.png

Po restarcie plugin znajdziemy na liście urządzeń.

FireShot Capture 41 - Domoticz - http___91.245.83.80_9009_#_Hardware

Musimy podać Weather Underground API, kraj i miasto.

Zakładamy konto na http://www.wunderground.com i pobieramy klucz. Ścieżka /menu górne/More/Weatcher API for Developers.

FireShot Capture 43 - API I Weather Underground_ - https___www.wunderground.com_weath.png

Dodajemy plugin i oczywiście restart. W katalogu /domoticz/plugins pojawi się katalog MoonPhases. W logach wygląda to tak:

FireShot Capture 45 - Domoticz - http___91.245.83.80_9009_#_Log

Po wszystkim powinniśmy znaleźć nasz księżyc w zakładce /Użytkowe. Ciekawostka, że nie dodajemy już nic w zakładce /Urządzenia. Skrypt sam stworzy kafelek.

FireShot Capture 44 - Domoticz - http___91.245.83.80_9009_#_Utility.png

Mamy dzisiaj „przybywający garbaty księżyc”. Nieuchronnie w stronę pełni idzie. Dla osób mających problemy ze snem w pełnie idealna informacja.

2. Speedtest.

Jako, że pomiar prędkości łącza metodą zaproponowaną we wpisie Monitoring i pomiar szybkości łącza internetowego w Domoticzu trochę mnie zawodzi postanowiłem spróbować tym sposobem. Analogicznie dodajemy skrypt, ustawiamy interwał pomiaru i oczywiście restart.

FireShot Capture 46 - Domoticz - http___91.245.83.80_9009_#_Hardware.png

W zakładce /Użytkowe pojawiają nam się kafelki.

FireShot Capture 48 - Domoticz - http___91.245.83.80_9009_#_Utility.png

Dla mnie bomba. Dwa kliknięcia. Bez kopiowania skryptów, zmiany danych, dodawania urządzeń pilnowania idx.

Na tą chwilę Python plugin Manager (PP-Manager) wspiera 34 pluginy. Każdy znajdzie coś dla siebie. Bardzo chętnie przetestuje kolejne. Zapraszam do podzielenia się wrażeniami.