Home Assistant LAB · Głos i AI w praktyce · Lekcja 10
Home Assistant mówi pierwszy: komunikaty, ogłoszenia i priorytety na Voice PE
Voice PE nie musi wyłącznie czekać na wake word. Home Assistant może sam powiedzieć, że pralka skończyła, okno nadal jest otwarte albo wystąpił ważny problem techniczny. W tej lekcji budujemy jednak system komunikatów, a nie gadający dom. Każde ogłoszenie dostaje target, priorytet, regułę ciszy nocnej i ochronę przed powtórzeniami.
Dlaczego ten etap jest ważny
Samo TTS jest łatwe. Trudniejsze jest zdecydowanie, kiedy system powinien mówić, gdzie powinien mówić i kiedy powinien milczeć. Dlatego `assist_satellite.announce` traktujemy jak kanał powiadomień z własną polityką, a nie usługę do odczytywania każdego sensora.
W pełnej lekcji zrobisz to krok po kroku
Pierwszy announcement testujemy ręcznie
Zaczynamy od Settings > Tools > Actions i `Announce on satellite`. Dopiero gdy pojedynczy komunikat działa, budujemy automatyzacje. Dzięki temu od razu oddzielamy problem TTS/satelity od triggera.
Message, media_id i preannounce pełnią różne role
Tekst jest czytany przez TTS skonfigurowany w pipeline satelity. Media ID pozwala odtworzyć gotowe audio. Preannounce daje krótki sygnał przed treścią, a jego dźwięk można zastąpić własnym.
Targetujemy urządzenie, Area, Floor albo Label
Komunikat może trafić do jednego Voice PE, całego pokoju, wszystkich satelitów na piętrze albo logicznej grupy. Routing projektujemy świadomie, bo nie każda informacja powinna brzmieć w całym domu.
Wprowadzamy P1, P2 i P3
Alarm techniczny nie jest tym samym co koniec prania. Krytyczne P1 może ominąć ciszę nocną i musi mieć kanał zapasowy. P2 i P3 podlegają regułom ciszy, obecności i dostępności satelity.
Dom ma umieć milczeć
Tworzymy helper `Voice cisza nocna`, ochronę przed powtarzaniem, test `idle` dla mało ważnych wiadomości i prostą kolejkę `mode: queued`, żeby komunikaty nie nakładały się na siebie.
Announcement nadal działa lokalnie
Robimy WAN OFF i sprawdzamy, czy tekst nadal jest generowany przez lokalnego Pipera i dociera do Voice PE przez sieć LAN.
Pełna wersja zawiera
- sprawdzenie encji assist_satellite Voice PE
- ręczny test Announce on satellite
- pełny przykład assist_satellite.announce
- message kontra media_id
- preannounce i własny preannounce_media_id
- komunikat końca prania
- target pojedynczego satelity
- target Area
- target Floor
- target Label
- przypomnienie o otwartym oknie
- dynamiczny tekst z template
- priorytety P1/P2/P3
- bezpieczną symulację alarmu P1
- zasadę redundantnego powiadomienia dla alarmów
- helper ciszy nocnej
- P1 omijające ciszę nocną
- warunek state=idle dla P3
- stabilizację triggera przez for:
- ochronę przed powtarzaniem komunikatów
- wspólny skrypt ogłoszeń w mode: queued
- oddzielną ścieżkę dla P1
- zarządzanie głośnością i przywracanie poprzedniej wartości
- świadome odłożenie duckingu TV/muzyki na później
- routing zależny od obecności
- prywatność komunikatów w przestrzeni wspólnej
- test dynamicznych wartości w Piper
- odłożone P2 do ponownej oceny rano
- test WAN OFF
- diagnostykę: brak dźwięku, tylko chime, duplikaty i nakładanie
- różnicę announce / ask_question / start_conversation
- gotowy Announcement Test Pack i politykę komunikatów
Jak pracujemy w pełnej wersji
Każdy kanał najpierw sprawdzamy ręcznie. Następnie dodajemy trigger, routing i dopiero na końcu politykę priorytetu. Dzięki temu błąd automatyzacji, TTS i satelity nie mieszają się w jeden problem.
Nie testujemy prawdziwego zalania ani awarii. P1 symulujemy helperem. Nie budujemy też jeszcze audio duckingu ani rozmowy zwrotnej. Każda warstwa ma własną lekcję.
Efekt po zakończeniu lekcji
Home Assistant potrafi sam przekazać wiadomość przez Voice PE, ale nie mówi bez powodu. Masz routing, priorytety, ciszę nocną, kolejkę i jasną granicę pomiędzy zwykłą informacją oraz alarmem.
Chcesz, żeby Home Assistant mówił wtedy, kiedy naprawdę ma coś ważnego?
Ta lekcja jest częścią kursu Smart Home od Zera na platformie MarkLabs E-Learning. Pełna wersja prowadzi od pierwszego announcement aż do priorytetów, ciszy nocnej i lokalnego testu offline.
Kup dostęp do kursu: 29 zł
Dożywotni dostęp | Wszystkie lekcje | Bez subskrypcji
Zaczniemy od ręcznego testu jednej encji, potem dodamy priorytety, ciszę nocną i kolejkę. Alarm krytyczny zachowa niezależny kanał powiadomienia.