Ogólne: Dodawanie nowej komendy

Możesz skonfigurować własne zdania/sentencje do przetworzenia na akcje w systemie. Działa to poprzez odwzorowywanie zdań na intencje, a następnie skonfigurowanie skryptu w celu obsługi tych intencji.

Obecnie, żeby dodać nową komendę, należy dodać ją do plików konfiguracji. Dodawanie komend z interfejsu aplikacji będzie rozwijane w przyszłości.
UWAGA - dodając własne intencje nadpisujesz domyślną konfigurację Asystenta domowego.
Nadpisanie konfiguracji ma wpływ na działanie systemu.
W przypadku problemów z działaniem systemu zalecamy usunięcie własnych wpisów z konfiguracji i sprawdzenie działania z domyślną konfiguracją.

Uproszczony diagram działania komend w Asystencie domowym:

Lokalizacja konfiguracji Asystenta

Katalog z konfiguracją domyślnie znajduje się na urządzeniu (bramce) w folderze /data/data/pl.sviete.dom/files/home/AIS

ścieżkę do katalogu możesz sprawdzić w aplikacji pod adresem http://ais-dom.local:8180/dev-info/ → narzędzia deweloperskie → informacje:

Katalog z konfiguracją dostępny jest w lokalnej sieci po ssh lub ftp:

Definicja sentencji

Bezpośrednio w katalogu konfiguracji utwórz plik conversation.yaml,
w pliku conversation.yaml dodaj sentencje, które mają wywoływać twoje nowe intencje. Przykładowo, jeżeli chcesz, by Twój asystent odpowiadał Ci, ile czasu jeszcze zostało do końca pracy to możesz zdefiniować coś takiego:

intents:
  WhenEOD:
    - ile do końca pracy
    - kiedy koniec pracy
    - kiedy do domu

Definicja intencji

Bezpośrednio w katalogu konfiguracji utwórz plik intents.yaml,
w pliku intents.yaml dodaj intencje oraz akcje, które mają zostać wywołane po wykryciu intencji. Posługując się naszym przykładem możemy zrobić coś takiego:

WhenEOD:
  speech:
    text: Nie wiem, zapytaj szefa :)
  action:
    service: ais_ai_service.say_it
    data_template:
      text: "Jest {{ states.sensor.time.state }}. Nie wiem, zapytaj szefa :)."

Dodaj sentencje i intencje do głównego pliku konfiguracji

W katalogu konfiguracji znajduje się plik configuration.yaml, na końcu tego pliku dodaj lokalizację skryptu z intencjami oraz modułu konwersacja - dopisz te 2 linie na końcu pliku:

intent_script: !include intents.yaml
conversation: !include conversation.yaml

Wypróbuj działanie nowej komendy

UWAGA: Sprawdz konfigurację i uruchom ponownie Asystenta domowego w celu przetesowania nowej komendy

Wyjaśnienie dodatkowe

W przykładzie

WhenEOD:
  speech:
    text: Nie wiem, zapytaj szefa :)
  action:
    service: ais_ai_service.say_it
    data_template:
      text: "Jest {{ states.sensor.time.state }}. Nie wiem, zapytaj szefa :)."

speech to tekst zwracany do obiektu IntentResponse, tekst z tego obiektu wyświetlany jest a aplikacji w okienu konwersacji z asystentem

szczegóły w dokumentacji dla developerów Home Assistant

action to wykonanie akcji w Asystencie domowym
service to usługa zdefiniowana w systemie

ais_ai_service.say_it
To usługa zamiany tekstu na mowę - czytanie tekstu przez asystenta.

Usługi można testować/wywoływać z Narzędzi deweloperskich

data_template to zaawansowana funkcjonalność szablonów, pozwalająca dynamicznie kontrolować informacje przekazywane do usługi
szczegóły w dokumentacji dla developerów Home Assistant

Szablony możesz tworzyć/sprwawdzać w Narzędziach deweloperskich

1 polubienie

Wykonując dokładnie całą instrukcję na pytanie “kiedy do domu”, Jolka odpowiada “Nie rozumiem kiedy do domu”. Czy brakuje jakiegoś bardziej zaawansowanego kroku, bądź po ostatniej aktualizacji ( 0.104.5) opisany sposób już nie działa?

Cześć @hakerlod Witamy na forum :slight_smile:

Dzięki za info - sprawdziliśmy i faktycznie “conversation intents” po ostatniej aktualizacji ( 0.104.5) już nie działa.

Zmieniły się reguły w HA i jeżeli używa się własnego agenta konwersacji (tak jak my Jolkę) to nie można już używać definicji z “conversation intents”. Ma to związek z pracami nad agentem Almond i “tak to jest zaprojektowane”:

Niestety nie wyłapaliśmy tego przed wydaniem 0.104.5

Doszliśmy do wniosku, że dodamy do naszego agenta obsługę “conversation intents” i będzie OK. Damy znać jak to będzie poprawione. Być może uda się to dodać do wersji 0.105.3b0 która wyjdzie dzisiaj.

U mnie jak miałem intents w pliku configuration.yaml to działało bez problemu, a przestało jak przeniosłem do osobnych plików yaml zgodnie z instrukcją w dokumentacji…

Hej, poprawka poszła w beta, tu jest opis jak to działa:

gdyby po aktualizacji do beta coś nadal było z tym nie tak to proszę dać znać - dzięki :+1:

Po aktualizacji do wersji beta funkcjonalność ta działa, gdy wpisuje się kwestię w panel czatu z Jolką, natomiast w przypadku wypowiedzenia tej samej kwestii w odpowiedzi otrzymuję, że nie rozumie.

Dzięki za info - sprawdzimy.

Odkopię temat. Jak dodać sentencje i intencje do automatyzacji. Jak to ma wyglądać. Dzięki

To znaczy że opisany sposób w tym wątku Ci nie działa?

Chodzi o automatyzacje intencji, sentencji (to juz mam zrobione) oraz akcji. Dokładnie chodzi o przelanczanie kanalow w dekoderze.

Czyżby ten link był nie aktualny bo po wpisaniu twego adresu ma komunikat

Ta witryna jest nieosiągalna

Nie udało się znaleźć adresu IP serwera ze stroną ais-dom.local .

  • [Uruchom Diagnostykę sieci systemu Windows](javascript:diagnoseErrors()).

DNS_PROBE_FINISHED_NXDOMAIN

Pewnie twoja sieć nie obsługuje mdns.
Wpisz adres Jolki zamiast ais-dom.local

jak dodać w taki sposób komendę głosową typu aby Jolka sprawdziła czy jest aktualizacja oraz druga komendę jak jest aby zainstalowała aby nie trzeba było wchodzić do ustawień bramki