Dziś miałem napisać artykuł niezwiązany – przynajmnije nie bezpośrednio – z Home Assistant, bo ostatni artykuł, który został opublikowany (też) dotyczy wprost Home Assistant, a konkretnie jego nowej wersji. Życie jednak czasem pisze własne scenariusze i tak się stało teraz. Z powodu zagrożenia powodziowego, znajomy zapytał mnie, czy dałoby się np. w Home Assistant, z którego korzysta, dodać jakieś czujniki związane z poziomem rzeki (w jego przypadku Odry) i na tej bazie zrobić jakieś powiadomienia w sytuacji, gdy zrobi się nieciekawie. Oczywiście da się, bo inaczej by nie było tego artykułu. A przynajmniej da się teoretycznie to zrobić…

Powiadomienie o zagrożeniu powodziowym w Home Assistant

Tak więc plan zakłada, że do Home Assistant dodajemy czujniki związane ze stanem wody w interesującym nas miejscu, i na bazie odczytów z tych czujników tworzymy automatyzację, która np. wyśle powiadomienie na telefon, w momencie, gdy zostanie aktywowany alarm (zagrożenie powodziowe i alarm powodziowy). Brzmi prosto i logicznie, ale problem w tym, że mam wrażenie, że niestety, ale dane nie są aktualne. Przynajmniej te wyświetlane w Home Assistant. Stąd na wstępie napisałem, że się da, ale jest to jakby teoretyczne.

Integracja z IMGW-PIB

Zaczynamy od dodania do Home Assistant nowej integracji, a konkretnie „IMGW-PIB” (Ustawienia -> Urządzenia oraz usługi -> Dodaj integrację: IMGW-PIB), dzięki czemu – po wybraniu interesującej „lokalizacji” z listy – będziemy mieli nowe czujniki m.in. z poziomem wody (aktualnym, zagrożenia i alarmowym), oraz 2 sensory binarne dotyczące konkretnego alarmu (zagrożenie lub alarm powodziowy).

Po dodaniu integracji przechodzimy do niej i korzystając z opcji „dodaj wpis” dodajemy miejsce, które chcemy monitorować.

Oczywiście można monitorować więcej niż jedno, a dla każdego są tworzone niezależne czujniki (encje). Część z nich jest domyślnie wyłączona. Jeśli dobrze pamiętam, to dotyczy to sensorów znajdujących się w sekcji „diagnostyka”, czyli z poziom ostrzegawczy i alarmowy. Tak więc jak ktoś chce z nich korzystać, to musi je włączyć.

No i (zwłaszcza) przy dodawaniu nowej „lokalizacji” może się przydać trochę cierpliwości, bo zwłaszcza teraz serwery IMGW-PIB (Instytut Meteorologii i Gospodarki Wodnej – Państwowy Instytut Badawczy) zdają się mocno przeciążone, przez co często skutkuje błędami w stylu „nie można nawiązać połączenia”.

Powiadomienie o zagrożeniu lub alarmie powodziowym

Gdy integracja z IMGW-PIB dodana do Home Assistant i udało się dodać czujniki, pora utworzyć automatyzację, która powiadomi nas w sytuacji, gdy aktywuje się sensor binarny „zagrożenie powodziowe” lub „alarm powodziowy”. Można też wykorzystać sensor „poziom wody”, gdy chcemy otrzymać powiadomienie w momencie, gdy woda będzie miała konkretny poziom (w innych okolicznościach można wykorzystać też sensor „temperatura wody”, ale to raczej już w następnym sezonie letnim ;-)).

Przykładowa automatyzacja, dla konkretnego obszaru, z której sam korzystam, wygląda tak:

W sekcji „kiedy” mam dwa wyzwalacze oparte na sensorach binarnych „zagrożenie powodziowe” i „alarm powodziowy”, z których każdy ma swój unikatowy identyfikator, który później służy do zdefiniowania, która akcja ma się wykonać:

W sekcji „jeśli” nie mam nic. Natomiast w sekcji „wykonaj” mam dwa rodzaje zdarzeń. Pierwsze, to powiadomienie na telefon, które jest wysyłane niezależnie od tego, jaki sensor aktywuje automatyzację. Z racji tego, że w treści powiadomienia mam odczyty z czujników, to konfiguracja tego elementu jest możliwa tylko przez kod YAML (może kiedyś pojawi się opcja dodawania tego typu informacji z normalnego edytora, ale na razie jest, jak jest):

Jakby ktoś chciał wykorzystać, to kod, by nie trzeba było przepisywać z obrazka:

action: notify.mobile_app_telefon_patryka
metadata: {}
data:
  title: IMGW-PIB Gdańsk
  message: >-
    Poziom wody: {{ states('sensor.imgw_pib_gdansk_poziom_wody') | round(0) }} (temp. wody: {{ states('sensor.imgw_pib_gdansk_temperatura_wody') | round(1) }}°C).

    Zagrożenie powodziowe: {{
    states('binary_sensor.imgw_pib_gdansk_zagrozenie_powodziowe') }} ({{
    states('sensor.imgw_pib_gdansk_poziom_zagrozenia_powodziowego') | round(0) }} cm).

    Alarm powodziowy: {{
    states('binary_sensor.imgw_pib_gdansk_alarm_powodziowy') }} ({{
    states('sensor.imgw_pib_gdansk_poziom_alarmu_powodziowego') | round(0) }} cm).
  data:
    ttl: 0
    priority: high
    channel: alarm_stream

Kolejny element mojej automatyzacji to głosowe powiadomienie na telefon. Jest to rzecz opcjonalna, ale bardzo dobrze sprawdza się np. w nocy, gdy w telefonie mam aktywny tryb cichy, bo tego typu powiadomienie ignoruje ten fakt i za pomocą dźwięku (mowy) sygnalizuje to, co zostanie wysłane:

Artykuł o powiadomieniach na telefon z Home Assistant jest dopiero w planach, więc tutaj tylko w skrócie o tym, co istotne przy tym powiadomieniu:

Jako treść wpisujemy „TTS” i nic więcej, bo to jest informacja dla aplikacji Home Assistant na telefonie, że jest to komunikat do odczytania przez mechanizm TTS, a nie do wyświetlenia jako klasyczne powiadomienie. Od razu dodam, że jest to w wersji dla Androida, z którego korzystam i choć w iOS jest podobnie, to niektóre „komendy” delikatnie się różnią, ale można to sprawdzić w dokumentacji.

Drugim ważnym elementem jest sekcja „data”, gdzie mam ustawiony wysoki priorytet dla powiadomienia, treść („tts_text”) oraz informację, by komunikat został odczytany na maksymalnej głośności:

ttl: 0
priority: high
media_stream: alarm_stream_max
tts_text: "UWAGA: Alarm powodziowy dla Gdańska!"

I to właściwie tyle, jeśli chodzi o podstawową automatyzację związaną z powiadomieniami na temat zagrożenia powodziowego pobieranego do Home Assistan z IMGW-PIB. Z automatyzacji wyciąłem niektóre elementy, ale dlatego, że są one już dopasowane do moich potrzeb oraz innych sensorów, z których korzystam. Natomiast każdy może ją rozbudować wedle swoich specyficznych potrzeb…

Hydro IMGW

I choć artykuł bazuje na oficjalnej integracji IMGW-PIB, to uznałem, że nie może w nim zabraknąć dodatku Hydro IMGW, z którego korzystało się wcześniej. Nie jest może aż tak wygodny w użyciu, bo trzeba mieć dodatek HACS (Home Assistant Community Store) w Home Assistant (ale to chyba każdy ma i tak, a jak nie, to powinien czym prędzej to nadrobić ;-)), do tego konfiguracja jest przez edycję pliku configuration.yaml, a nie przez GUI, do tego trzeba znać identyfikator stacji pomiarowej, ale… Może, zamiast opisywać, to pokażę:

Na górze sensor z poziomem wody dostarczany przez dodatek Hydro IMGW, a poniżej moduł z sensorami z integracji IMGW-PIB. Jak widać, różnica gigantyczna, a zapewniam, że w obu przypadkach chodzi o ten sam punkt pomiaru. I niestety, ale to właśnie dodatek Hydro IMGW podaje poziom wody, jaki znajduje się w serwisie Hydro IMGW, gdzie IMGW-PIB podaje odczyt z d…

Czy to oznacza, że nie korzystam z IMGW-PIB? Nie, bo wtedy nie byłoby tego poradnika. Po prostu w mojej automatyzacji, oprócz wyzwalaczy z IMGW-PIB, mam też wyzwalacz związany z dodatkiem Hydro IMGW, ale oparty już na poziomie wody:

Co więcej, jako poziom graniczny „powyżej”, zamiast wpisywać ręcznie wartość, posługuję się odczytem z sensorów IMGW-PIB dotyczących poziomu ostrzegawczego i alarmowego. Dzięki temu, gdy/jeśli kiedyś zostaną te poziomy zmienione, zmienią się też w automatyzacji, bez potrzeby jej ręcznej aktualizacji. Oczywiście o ile dane sensorów IMGW-PIB zostaną zaktualizowane…

Podstawa to obecnie IMGW-PIB

Dlaczego więc w „głównym wątku” pominąłem dodatek Hydro IMGW i skupiłem się na integracji IMGW-PIB? Bo zazwyczaj zdaje się działać. Być może przez duże zainteresowanie ludzi tym tematem, nie wyrabiają serwery, może ich systemy odcinają żądania. Stąd najpewniej problemy z aktualizacją danych w tym kanale. A dodatek Hydro IMGW po prostu odpytuje stronę Hydro IMGW. Nie wiem, nie sprawdzałem, nie analizowałem, bo zakładam, że to tymczasowa sytuacja.

Do tego sam autor dodatku Hydro IMGW komunikuje, by obecnie raczej korzystać z oficjalnej integracji, czyli IMGW-PIB. Tym samym nie ma pewności czy i jak długo dodatek Hydro IMGW będzie utrzymywany. Dlatego korzystam, ale w artykule skupiłem się na IMGW-PIB, a Hydro IMGW trafił do „suplementu”.

Nie zawierzaj swojego bezpieczeństwa „hobby”

Pamiętaj jednak, że Home Assistant to tylko Home Assistant i wszędzie tam, gdzie chodzi o nasze bezpieczeństwo, nie należy polegać tylko i wyłącznie na nim. Tak samo, jak nie można polegać tylko i wyłącznie na integracji z IMGW-PIB, bo nigdy nie ma pewności, czy nic się „nie wysypie”. Zwłaszcza teraz, gdy ich serwery zdają się mocno przeciążone, co często skutkuje błędami w stylu „nie można nawiązać połączenia”, a same czujniki (encje) mogą przestać być dostępne:

Dlatego ja tego typu rozwiązania traktuję pomocniczo, i nie bazuję na nich, podejmując decyzje, które mogą mieć wpływ na moje i moich najbliższych bezpieczeństwo. Tak samo, jak mam własnej konstrukcji czujniki gazu, tlenku węgla czy dymu, fajnie zintegrowane z Home Assistant, ale oprócz tego mam certyfikowane czujniki „klasyczne”. Bo hobby to hobby, a bezpieczeństwo to bezpieczeństwo.

(!) Zgłoś błąd na stronie
Pomogłem? To może postawisz mi wirtualną kawę?
LUTy dla D-Cinelike (DJI Mini 3 Pro, DJI Avata, OSMO Pocket) od MiniFly
Wdrożenie Omnibusa w sklepie na WooCommerce
Jak (legalnie) latać dronem w Kategorii Otwartej
Patryk