Integrace RichPear Home
Amazon Alexa Custom Skill
Integrace přijímá požadavky z vlastní Alexa skill a předává je do nativního systému intentů v RichPear Home. Hodí se pro vlastní hlasové věty, které spouští scény, skripty nebo jinou akci přes intent_script.
- Doména
alexa- Nastavení
configuration.yaml- Endpoint
/api/alexa- Účet
- Amazon Developer a AWS
Připravte účty a veřejnou HTTPS adresu
Pro Custom Skill potřebujete Amazon Developer účet a AWS účet, protože požadavek z Alexy posílá AWS Lambda do RichPear Home. Pro account linking musí být RichPear Home dostupný z internetu přes HTTPS na portu 443 s důvěryhodným certifikátem.
Lokálně systém otevřete na http://rphome.local:8123. Pokud tato adresa nefunguje, použijte http://IP-ADRESA:8123. Tyto lokální adresy ale nestačí pro Alexa account linking; do Amazonu patří veřejná HTTPS adresa bez koncového lomítka.
Zapněte Alexa endpoint v RichPear Home
V souboru configuration.yaml povolte komponentu alexa. Tím se v RichPear Home zaregistruje endpoint /api/alexa, na který bude Lambda posílat požadavky z Alexa skill.
alexa:
Po změně konfigurace proveďte kontrolu konfigurace a restartujte RichPear Home. V uživatelském rozhraní to ověřte přes Nastavení systému; pokud používáte doplněk pro úpravu souborů, upravujte jen hlavní konfigurační soubor a před restartem ho uložte.
Co integrace nevytváří
Tahle část sama o sobě nevytváří běžné entity ani zařízení. Zpracovává požadavky typu IntentRequest, LaunchRequest a SessionEndedRequest a výsledek vrací Alexe jako řečovou odpověď.
Vytvořte Alexa Custom Skill a Lambda funkci
V Amazon Developer Console vytvořte novou skill s modelem Custom a vlastním hostingem. V AWS vytvořte Lambda funkci v regionu odpovídajícím jazyku a účtu Alexy, přidejte trigger Alexa Skills Kit a do triggeru vložte Skill ID.
Do Lambda funkce nastavte proměnnou BASE_URL na veřejnou adresu RichPear Home bez koncového lomítka, například https://moje-domena.example. Volitelné ladicí proměnné používejte jen pro testování; dlouhodobý přístupový token v Lambda není doporučený pro běžný provoz.
Account linking
Authorization URI:https://VAŠE-VEŘEJNÁ-ADRESA/auth/authorizeAccess Token URI:https://VAŠE-VEŘEJNÁ-ADRESA/auth/tokenClient ID: pro Evropuhttps://layla.amazon.com/; koncové lomítko je součást hodnoty.Client Authentication Scheme: Credentials in request body.Scope:intent.
Namapujte hlasové věty na intent_script
V Alexa skill vytvořte vlastní intenty, sloty a ukázkové věty. Název intentu musí odpovídat klíči v intent_script. Sloty poslané Alexou jsou dostupné jako proměnné; tečka v názvu slotu se v RichPear Home nahradí podtržítkem.
intent_script:
ActivateSceneIntent:
action:
action: scene.turn_on
target:
entity_id: scene.{{ Scene | replace(" ", "_") }}
speech:
type: plain
text: "Hotovo"
Pro skripty použijte stejný princip a volejte například script.turn_on. Pokud používáte synonyma slotů s ID, RichPear Home předává také proměnnou s příponou _Id.
Ověřte spojení a odpověď
V Alexa Developer Console spusťte test skill a ověřte, že se po account linkingu požadavek dostane do RichPear Home. Pokud Alexa vrací chybu neznámého intentu, zkontrolujte přesný název intentu v Alexa modelu a v intent_script.
Pro kratší hlasové povely bez názvu skill použijte rutinu v aplikaci Alexa, která interně spustí celou frázi typu „ask ... to ...“.