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