Kurs Home Assistant od Zera

Dom zaczyna rozmowę: ask_question, start_conversation

Porównaj ask_question i start_conversation. Sprawdź ciszę, awarie usług i powrót do lokalnego Assist, zanim uruchomisz rozmowy automatycznie.

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
🔒

Pełna treść dostępna po zakupie kursu

Za symboliczne 29 zł zyskujesz dostęp do 200+ stron praktycznej wiedzy o Home Assistant — wszystkich lekcji, przykładów i aktualizacji.

  • Dożywotni dostęp do całego kursu
  • Nowe lekcje bez dodatkowych opłat
  • Bez reklam i bez abonamentu

Nikt nie jest nieomylny. Coś nie gra w tej lekcji? Zgłoś błąd