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ć…
Spis treści w artykule
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…
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.
- Zero Trust od Cloudflare, czyli prosty i bezpieczny sposób na dostęp do lokalnych zasobów z zewnątrz, bez publicznego adresu IP i otwierania portów na routerze - 1970-01-01
- Home Assistant i integracja z IMGW-PIB, czyli tworzymy automatyzację z powiadomieniami bazując na sensorach zagrożenie i alarm powodziowy - 1970-01-01
- Home Assistant 2024.9 i kolejne przydatne nowości w widoku „sekcje”, dzięki którym jeszcze lepiej można dopasować wygląd - 1970-01-01