Centralnym punktem zarządzania „moim domem” (choć nie tylko, bo dzięki Cloudflare czy Tailscale mam podpięte też zdalne lokalizacje) jest Home Assistant. No i oczywiście nie służy mi to tylko do monitorowania temperatury czy zapalania światełek… Z Home Assistant mam też zintegrowane różne czujniki, nawet takie „nie-inteligentne” (które stanowią istotny punkt bezpieczeństwa). Tak więc w Home Assistant mam różne automatyzacje i akcje, na różne zdarzenia również alarmowe – zalanie, dym, gaz, aktywacja alarmu. I jednym z istotnych elementów tego systemu, są powiadomienia, które muszą być skuteczne, w tym muszą mnie obudzić, nawet gdy jestem poza domem. A właściwie, to zwłaszcza wtedy…

Zdalne powiadomienia alarmowe w Home Assistant

W Home Assistant korzystam z różnych kanałów do powiadomień. Zarówno lokalnych – zegarki z funkcją wyświetlania tekstów, głośniki z opcją odtwarzania komunikatów głosowych, syreny alarmowe, czy też buzzery przy ESP8266/ESP32, jak i zdalnych – powiadomienia do aplikacji Home Assistant na telefonie, powiadomienia e-mail, czy powiadomienia za pomocą komunikatorów (Signal i Telegram). Więc mam w czym  wybierać.

Większość powiadomień nie jest aż tak ważna, bym nie mógł ich wyciszać w godzinach, gdy śpię. Natomiast są zdarzenia, gdzie informacja powinna do mnie dotrzeć bezwarunkowo. Będzie to np. wykrycie zalania, dymu, gazu czy znaczne pogorszenie „warunków atmosferycznych” w mieszkaniu.

Póki jestem w domu nie ma problemu – systemów mogących obudzić nawet niedźwiedzia ze snu zimowego mam sporo, a do tego każdy czujnik często ma swoją syrenę, działającą niezależnie od Home Assistant.

Sytuacja komplikuje się, gdy jestem poza domem, a konkretnie nocuję poza domem. Wtedy zostają tylko powiadomienia zdalne, a te w standardzie zdecydowanie nie spełniają wymogu, by mnie obudziły nawet jakby telefon był całkowicie wyciszony (np. tryb „nie przeszkadzać”).

Na szczęście z pomocą przychodzi tu aplikacja mobilna Home Assistant na telefonie, która dostarcza kilka niestartowych typów powiadomień, z których można skorzystać.

Od razu jednak informuję, że choć da się na iOS osiągnąć najpewniej podobne rezultaty, to w tym artykule bazuje na telefonie z systemem Android, bo z takich urządzeń korzystam.

Komunikat głosowy (Text To Speech)

Pierwszy typ komunikatu, który ma szansę zwrócić naszą uwagę skuteczniej niż zwykłe powiadomienie tekstowe, to komunikat typu Text To Speech, czyli wysyłamy informację jako odpowiednio przygotowane powiadomienie, które zostanie odczytane „na głos” na telefonie:


action: notify.mobile_app_telefon_patryka
metadata: {}
data:
  message: TTS
  data:
    ttl: 0
    priority: high
    media_stream: alarm_stream_max
    tts_text: Alarm! Alarm! Alarm! Alarm! Alarm!
enabled: true
continue_on_error: true

Jak widać, jest to odrobinę bardziej skomplikowane niż zwykłe powiadomienie, bo wymaga skorzystania z kodu YAML, ale też bez przesady.

Co istotne, komunikat zostanie odczytany na telefonie z maksymalną głośnością, nawet gdy jest on wyciszony, czy w trybie „nie przeszkadzać”.

Zdalna aktywacja budzika w telefonie

Komunikat głosowy ma sens, ale przy naprawdę krytycznych powiadomieniach może to być mało. I tu na scenę wchodzi kolejny rodzaj powiadomień do aplikacji Home Assistant, czyli „command_activity”, dzięki czemu możemy z Home Asistant np. ustawić budzik w telefonie.


data:
  message: command_activity
  data:
    intent_package_name: com.google.android.deskclock
    intent_action: android.intent.action.SET_ALARM
    intent_extras: >-
      android.intent.extra.alarm.HOUR:{{now().hour|int}},android.intent.extra.alarm.MINUTES:{{now().minute+2|int}},android.intent.extra.alarm.MESSAGE:Alarm!,android.intent.extra.alarm.SKIP_UI:true
action: notify.mobile_app_telefon_patryka
continue_on_error: true

To powiadomienie celuje w wykonanie operacji na aplikacji Zegar od Google (jak korzystasz z innej, to trzeba dopasować kod), a konkretnie ustawia budzik na „za dwie minuty” od momentu wysłania powiadomienia.

Czemu 2 minuty? Bo budzika na konkretne sekundy się nie da ustawić, a znowu 1 minuta jest ryzykowana, bo może się okazać, że powiadomienie dotrze na telefon w czasie, w którym ma być wywołany alarm budzika, co spowoduje, że budzik zadzwoni, ale następnego dnia.

Testowałem 1 minutę – czasem działało, a czasem jak wyżej, stąd 2 minuty wydają się bezpieczną wartością, choć w Twoim przypadku może być i tak, że 2 minuty to będzie za mało…

Zdalna aktywacja minutnika (odliczania) w telefonie

Z wykorzystaniem budzika jako alarmowego powiadomienia mam ten problem, że nie tylko mamy zwłokę w jego aktywacji, od momentu wystąpienia zdarzenia w Home Assistant, ale też może się zdarzyć, że założony bufor (np. 2 minuty), będzie zbyt mały „tym razem” i budzik zostanie nastawiony na godzinę, która już minęła, a więc zaalarmuje dopiero następnego dnia.

I tu z pomocą przychodzi minutnik, czyli odliczanie, również dostępne w aplikacji Zegar od Google, i co ważne – również możemy zdalnie skonfigurować i uruchomić, wysyłając do aplikacji Home Assistant na telefonie odpowiednie powiadomienie:


data:
  message: command_activity
  data:
    intent_package_name: com.google.android.deskclock
    intent_action: android.intent.action.SET_TIMER
    intent_extras: >-
      android.intent.extra.alarm.LENGTH:5,android.intent.extra.alarm.SKIP_UI:true
action: notify.mobile_app_telefon_patryka
continue_on_error: true

W tym przypadku odliczanie (minutnik, timer) ustawiamy np. na 5 sekund, po których upływie telefon wyzwoli ustawiony dla końca odliczania alarm.

I jeśli chodzi o zdalne powiadomienia alarmowe, jest to mój preferowany od dawna sposób, bo nie tylko możemy alarm w telefonie wyzwolić właściwie od razu (ja mam 5 sekund, ale możesz dać mniej), ale też jest on niezależny od realnej godziny, a więc nawet jakby z jakiegoś powodu aplikacja Home Assistant na telefonie przetworzyła to powiadomienie z opóźnieniem, to po ustawionym czasie alarm zostanie uruchomiony.

(!) 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