Dodawanie 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:

Działanie komend

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:

Konfiguracja folder

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

Folder konfiguracji po 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

informacja

Sprawdź konfigurację i uruchom ponownie Asystenta domowego w celu przetestowania nowej komendy

Restart

Test 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 w aplikacji w okienku konwersacji z asystentem

Test nowej komendy

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

Test nowej komendy

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ć/sprawdzać w Narzędziach deweloperskich

Test nowej komendy