Stacja pogody i termostat Netatmo w Domoticzu i Homeassistant

I kolejny sezon jesienno-zimowy przed nami. Na blogach i forach wysyp pytań, wątków i artykułów związanych z ogrzewaniem. Postanowiłem i ja dorzucić coś od siebie.

images

Od jakiegoś czasu gości u mnie zestaw 2 termostatów pokojowych  i stacja pogody od Netatmo.

Zestaw ten zwrócił moja uwagę już dawno, ale barierą była cena. Udało mi się jednak chytrze problem obejść o czym na końcu wpisu. Mam w domu ogrzewanie elektryczne, więc termostaty pokojowe są oczywistym wyborem. Rozważałem jeszcze NEST, ale w sierpniu Google zamknęło API i nie przyjmuje nowych kont developerskich. Stare podobno jeszcze działają, ale nie chcę ryzykować niemałych pieniędzy i nie mieć możliwości pobawienia się urządzeniem w Domoticzu i HA.

Cały proces dodawania urządzeń do aplikacji jest intuicyjny i nie wymaga rozpisywania się. W Domoticzu  sprawa jest banalna. Jak już założymy konto w aplikacji NETATMO i sparujemy urządzenia nie pozostaje nam nic innego niż dodać obsługę urządzeń w systemie.

FireShot Capture 085 - Domoticz - 192.168.2.101.png

I tyle. Mamy wszystkie nasze urządzenia w Domoticzu.

FireShot Capture 090 - Domoticz - 192.168.2.101

Na pulpicie wygląda tak.

FireShot Capture 091 - Domoticz - 192.168.2.101.png

W Homeassistant sprawa jest bardziej skomplikowana, ale też satysfakcja większa. Instalację Homeassistant opisywałem już dość dawno w w wpisie Home Assistant – instalacja i pierwsze uruchomienie na Raspberry Pi. Od tego czasu sprawa się bardzo uprościła. Dodałem krótki update, ale na oficjalnej stronie jest prosta instrukcja. Ściągamy obraz odpowiedni dla naszej wersji Raspberry Pi, wypalamy kartę i tyle. Ruszy samo. Gdy już oczom naszym ukaże się Hass.io pozostaje nam tylko wyedytować plik configuration.yaml. Tu jednak jest trochę zabawy.

Po pierwsze musimy zdobyć oprócz nazwy użytkownika i hasła api_key oraz
secret_key Natatmo. Zrobimy to w Netatmo Connect. Musimy założyć własną apkę. Wchodzimy w CREATE YOUR APP i uzupełniamy wymagane pola.

FireShot Capture 087 - Netatmo Connect - dev.netatmo.com.png

Formularz nie jest zbytnio czepliwy. Przyjmuje co mu podamy. Po zatwierdzeniu na dole dostajemy nasze klucze.

FireShot Capture 088 - Netatmo Connect - dev.netatmo.com.png

Znajdujemy plik configuration.yaml w HA i dodajemy wpis.

netatmo:
..api_key: 435dr45xxxxxxxxx
..secret_key: 0NRJxxxxxxxxxxxxxx
..username: mxxxxx@xxxxxx.com
..password: Hxxxxxxxxx3

Aby dodać obsługę termostatu musimy dodać go w sekcji climate. Ciekawostka, bez stacji pogody termostat nie będzie widoczny w Domoticzu i HA. Stacja jest bramką na zewnątrz.

climate:
..- platform: netatmo

To jest Python więc należy uważać na wcięcia. Kropki z lewej strony oznaczają spacje. Restartujemy system i gotowe. Konfigurujemy karty Lovelace w typie entities.

FireShot Capture 089 - Home Assistant - 192.168.2.119

Jedyny minus jaki widzę to niestety cena. Stacja pogody to 750 zł, termostat 800 zł. Drogo. Na rynku są jednak urządzenia używane lub powystawowe. Należy jednak bardzo z nimi uważać. Bardzo często mają uszkodzone zasilanie. Potrafią rozładować baterię w 30 min. Problem wielokrotnie zgłaszany na forach. Netatmo wysyłało na gwarancji nowe urządzenia a stare poszły na portale aukcyjne. U mnie w stacji pogody moduł zewnętrzny pracuje ok. 1 mies. na komplecie baterii ( powinien 2 lata ), jeden termostat jest OK, drugi niestety był całkowicie padnięty. Nowe baterię kładł po kwadransie. Poradziłem sobie kupując adapter do zasilania bateryjnego i jakoś działa. Zainteresowanym podeślę linka.

Miłego testowania.

Monitor prawdopodobieństwa opadów deszczu w Domoticzu.

Na blogu u Cezara wyczytałem swego czasu świetny wpis o zaimplementowaniu w Domoticzu radaru burzowego z serwisu https://burze.dzis.net/. Działa znakomicie.

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

Nie chcąc dublować wpisu postanowiłem poszukać rozwinięcia i ewentualnego uzupełnienia tematu. Znalazłem na forum Domoticza skrypt, który na podstawie danych z http://www.wunderground.com podaje prawdopodobieństwo opadów i w zależności od wyniku ustawia przełącznik w odpowiedniej pozycji. Sprawdzałem kilkanaście dni ( aktualnie u nas co jakiś czas pada ) i działa prawidłowo. Przydaje się do np. do planowania podlewania ogródka.

Sprawa jest bardzo prosta. Tworzymy 3 wirtualne czujniki ( przełącznik prognozowanych opadów w danym dniu,  przełącznik prognozowanych opadów w aktualnej godzinie i kafelek tekstowy z procentowym prawdopodobieństwem opadów ). Skrypt jest napisany w języku dzVents. Jest to kolejna generacja LUA. Swoją drogą bardzo intuicyjny język. Aktualnie trochę się im bawię i jestem pod wrażeniem. Na początku musimy włączyć jego obsługę w Domoticzu. Przechodzimy do /Konfiguracja/Ustawienia/Inne

FireShot Capture 61 - Domoticz - http___91.245.83.80_9009_#_Setup.png

Dobrze jest ustawić poziom zapisywania do logów aby wiedzieć co aktualnie zwraca skrypt. Aby zapobiec błędom w kopiowaniu skryptu na blog proponuje pobrać kod bezpośrednio z forum Domoticza. Wątek jest tu.

Uzupełniamy dane:

FireShot Capture 62 - Domoticz - http___91.245.83.80_9009_#_Events

Najlepiej wkleić poniższy skrypt w kreatorze zdarzeń Domoticza /Konfiguracja/Więcej opcji/Zdarzenia. Nie będzie problemu ze ścieżką dostępu.

FireShot Capture 64 - Domoticz - http___91.245.83.80_9009_#_Events

Wstawiamy nazwę swojej lokalizacji, kraj, klucz API z www.wunderground.com. Jak pobrać klucz pisałem w poście Prognoza pogody z serwisów internetowych w Raspberry Pi i systemie DOMOTICZ. Tworzymy teraz 3 wirtualne czujniki, o których pisałem wcześniej.

Albo nadajemy im nazwy jak w skrypcie, albo własne, pamiętając o aktualizacji skryptu. Ważne, aby sprawdzić poprawność ścieżki do lua.  ( 21 linijka kodu ). Powinno być OK, ale u mnie musiałem poprawić. W linijce 8 kodu ustawiamy odświeżanie ( u mnie co 1 minuta – tak dla testów ). Oczywiście restart i w logach powinniśmy zobaczyć coś takiego. Pamiętamy o zaznaczeniu Event active.

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

Efekt finalny jest taki. W zakładce przełączniki zobaczymy.

FireShot Capture 65 - Domoticz - http___91.245.83.80_9009_#_LightSwitches.png

Natomiast w zakładce /Użytkowe mamy nasz wynik procentowy.

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

 

Jeżeli w Waszej lokalizacji aktualnie nie pada ( jak u mnie ) proponuje znaleźć miasto z opadami i dla testu zmienić w skrypcie.

PS. Ikonki w przełącznikach nie są domyślne. Proponuje poszukać na forum fajnych ikonek np. tu i zaktualizować w przełącznikach.

FireShot Capture 70 - Domoticz - http___91.245.83.80_9009_#_LightSwitches

Wchodzimy w /Konfiguracja/Więcej opcji/Własne ikony wybieramy *.zip i przesyłamy. Możemy już wybierać swoje ikony.

PS2. Jeżeli będzie ktoś miał problemy ze skryptem proszę o info w komentarzach a prześlę mailem.

Teraz oczekiwanie na deszcz nabrało innego sensu 🙂

 

 

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.

Prognoza pogody z serwisów internetowych w Raspberry Pi i systemie DOMOTICZ.

Jeżeli nie posiadamy jeszcze zestawu czujników a chcielibyśmy dodać do Domoticza odczyty temperatury, wilgotności, ciśnienia atmosferycznego i inne, z pomocą przychodzą nam serwisy pogodowe, dostarczające informacje dla konkretnych lokalizacji. W systemie jest zaimplementowana obsługa kilku z nich. Ja sprawdziłem:

  • Weather Underground
  • Dark Sky
  • Accuweather

                   Znaleziony obraz            Znaleziony obraz          Znalezione obrazy dla zapytania dark sky weather

Generalnie sposób integracji urządzeń ( w Domoticzu serwisy pogodowe funkcjonują jako urządzenia ) jest bardzo podobny dla każdego z nich. Sprowadza się do dodania urządzenia do systemu, podania klucza API i lokalizacji. Najtrudniejszą rzeczą jest zdobycie klucza API. W każdym z serwisów należy założyć konto i pobrać ciąg znaków odpowiadający za dostęp do danych. Poniżej opiszę gdzie szukać API dla powyższych serwisów.

Weather Underground

Jest to chyba najpopularniejszy z serwisów udostępniający najwięcej danych pogodowych. Aby zdobyć API wchodzimy na stronę https://www.wunderground.com/member/registration i zakładamy darmowe konto. Następnie wybieramy z menu górnego More/Weather API for Developers i w zakładce Key Settings odczytujemy nasze Key ID. Możemy jeszcze sprecyzować nazwę projektu, w którym będziemy wykorzystywali dane oraz jego stronę www. Zapisujemy dane celem wykorzystania w konfiguracji Domoticza. Potrzebujemy jeszcze lokalizację. Będzie to nazwa naszego miasta.

Dark Sky

Przechodzimy na stronę https://darksky.net/dev/ i zakładamy darmowe konto. Po zalogowaniu się pobieramy Your Secret Key. Jako lokalizacje podajemy współrzędne naszego miasta ( nie nazwę ).

AccuWeather

Przechodzimy na stronę http://developer.accuweather.com/ i zakładamy darmowe konto. Dodajemy aplikacje MY APPS. Dostajemy API Key. Lokalizacja będzie nazwą naszego miasta.

Integracja serwisów pogodowych z Domoticzem.

Wykonujemy analogicznie dla wszystkich serwisów. Poniżej przedstawiam dodanie serwisu na przykładzie Weather Underground.

zrzut ekranu130_1.png
Weather Underground

W zakładce Urządzenia otrzymamy odczyty UV, temperatury, wilgotności, ciśnienia atmosferycznego, siły i kierunku wiatru, widoczności, opadów, promieniowania słonecznego dla zadanej lokalizacji.

screenshot_20161218_155843

Ciekawostką jest zintegrowany serwis pogodowy znajdujący się w aplikacji. Po naciśnięciu przycisku Prognoza zostaniemy przeniesieni na  oddzielną stronę gdzie po podaniu lokalizacji możemy sprawdzić pogodę.

screenshot_20161218_160232Podsumowując polecam serwis Weather Underground. Dark Sky oferuje mniej odczytów, natomiast AccuWeather ma tylko wersje trial ( 180 dni ) i był dla mnie najtrudniejszy w konfiguracji.