Home Assistant LAB · Głos i AI w praktyce · Lekcja 20
Dom zaczyna rozmowę: ask_question, start_conversation
Dom może zapytać, czy zgasić lampkę, ale powinien też wiedzieć, kiedy milczeć. Pokażę Ci oba warianty rozmowy inicjowanej przez Voice PE: zamknięte pytanie z odpowiedzią tak/nie i otwarty dialog z Ollamą. Potem sprawdzimy lokalną ścieżkę podczas kontrolowanych awarii internetu, STT, TTS i modelu. Każdą usługę przywrócimy przed następną próbą. To zamknięcie lokalnych ćwiczeń; lekcja 21 rozszerza moduł o świadomy wybór chmurowego AI.
Dlaczego ten etap jest ważny
Demo, które działa przy idealnych warunkach, nie jest jeszcze systemem domowym. W tej lekcji sprawdzamy również awarie i granice. Wiemy, co działa bez Ollamy, co działa bez Whispera, jak odebrać AI kontrolę i jak wrócić do prostego Okay Nabu.
W pełnej lekcji zrobisz to krok po kroku
Rozdzielamy announce, ask_question i start_conversation
Każda akcja ma inny model interakcji. Komunikat, jedno deterministyczne pytanie i pełna rozmowa nie powinny być traktowane jako ta sama funkcja.
Budujemy ask_question z odpowiedziami tak/nie
Home Assistant zadaje pytanie, Whisper transkrybuje odpowiedź, sentence templates dopasowują ID i automatyzacja wybiera właściwą gałąź bez angażowania LLM.
Zbieramy answer.id, sentence i slots
Testujemy także odpowiedź liczbową i tryb bez listy answers, w którym otrzymujemy surową transkrypcję do własnej logiki.
Sprawdzamy zajętość satelity przed rozpoczęciem pytania
Używamy aktualnych conditions is_idle, is_listening, is_processing i is_responding. Proaktywna automatyzacja startuje tylko wtedy, gdy satelita ma wolny pipeline.
Uruchamiamy start_conversation z Ollamą
Dom zaczyna rozmowę, a extra_system_prompt daje agentowi kontekst sytuacji. Sprawdzamy tak, nie, pytanie „dlaczego?” i kilka kolejnych tur.
Dobieramy kolejność asystentów do rozmowy inicjowanej przez dom
Aktualny Voice PE po zakończeniu pipeline wraca do pierwszego slotu. Jeśli primary używa wbudowanego Home Assistant Conversation, start_conversation może nie mieć agenta obsługującego rozmowę. Pokazujemy czysty wariant z Jarvisem jako slot 1.
Kończymy pełną macierzą awarii
Wyłączamy kolejno WAN, Ollamę, Whispera, Pipera i testujemy niedostępnego satelitę, unavailable encję, zły target, restarty oraz drugi Voice PE.
Pełna wersja zawiera
- różnicę announce / ask_question / start_conversation
- wymaganie conversation-capable agent dla start_conversation
- caveat built-in Home Assistant Conversation
- zachowanie pipeline slot 1 na Voice PE
- propozycję Jarvis jako primary Assistant
- regresję obu wake wordów po zmianie slots
- ask_question z polskim tak/nie
- response_variable i answer.id
- answer.sentence i answer.slots
- numeric slot w odpowiedzi
- ask_question bez answers
- gating przez assist_satellite.is_idle
- różnicę entity_id i target
- preannounce
- minimalny start_conversation
- extra_system_prompt
- start_media_id i question_media_id
- 3-tur test Ollamy
- aktualny caveat wspólnej historii slots
- aktualne caveaty ask_question
- 10-prób stability test
- zasadę jednego satelity do dialogu
- politykę wyboru pomieszczenia
- baseline przed awariami
- WAN OFF
- Ollama OFF
- Whisper OFF
- Piper OFF
- Voice PE unavailable
- unavailable encję za toolami
- błędny target
- drugi satelita
- restart Home Assistant
- restart Ollamy
- restart Voice PE
- monitoring stuck responding
- regresję announce
- test historii i prywatności
- quiet hours
- obsługę braku odpowiedzi
- cztery poziomy rollbacku
- finalną architekturę całego LAB-u
- opisany w lekcji protokół uruchomienia i zestaw testów awarii
Jak pracujemy w pełnej wersji
Nie wyłączamy pięciu usług naraz i nie zgadujemy, co było przyczyną. Każda awaria jest pojedynczym kontrolowanym testem z przywróceniem baseline przed następną próbą.
Nie budujemy też krytycznych funkcji bezpieczeństwa na proaktywnej rozmowie. Alarm ma alarmować nawet wtedy, gdy nikt nie odpowie Voice PE.
Efekt po zakończeniu lekcji
Masz nie tylko działającego Jarvisa, ale udokumentowany system z planem awarii. Wiesz, która warstwa odpowiada za słyszenie, rozumienie, rozmowę, akcje i głos oraz co pozostaje dostępne po utracie każdej z nich.
Chcesz zakończyć LAB systemem gotowym do prawdziwego domu?
Ta lekcja jest częścią kursu Smart Home od Zera na platformie MarkLabs E-Learning. Zamknięcie lokalnej ścieżki prowadzi od pierwszego pytania inicjowanego przez dom do pełnego commissioning i rollbacku całej architektury głosowej.
Kup dostęp do kursu: 29 zł
Dożywotni dostęp | Wszystkie lekcje | Bez subskrypcji