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
01

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.

Pokud nemáte veřejný HTTPS přístup na portu 443, nejdřív vyřešte vzdálený přístup, reverzní proxy nebo jiný podporovaný způsob publikace. Samopodepsaný certifikát není pro account linking této integrace vhodný.
02

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ěď.

03

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

  1. Authorization URI: https://VAŠE-VEŘEJNÁ-ADRESA/auth/authorize
  2. Access Token URI: https://VAŠE-VEŘEJNÁ-ADRESA/auth/token
  3. Client ID: pro Evropu https://layla.amazon.com/; koncové lomítko je součást hodnoty.
  4. Client Authentication Scheme: Credentials in request body.
  5. Scope: intent.
04

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.

Názvy scén a skriptů v příkladu nahraďte reálnými entitami z vaší instalace. Nepoužívejte ukázkovou entitu, dokud opravdu neexistuje.
05

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 ...“.