Ho acquistato un dispositivo Alexa e da allora non voglio più premere un pulsante e desidero trasformare tutti i miei dispositivi a controllo vocale. Se la mia connessione internet smette di funzionare io non esisto più.
Ma dopo questo disclaimer vorrei iniziare ad aiutarti a connettere il tuo dispositivo personalizzato al tuo account AWS personale. Per questa parte farò riferimento a un vecchio tutorial esistente fornito ma non aggiornato da Amazon.
Per prima cosa dobbiamo capire quali parti esamineremo in questo progetto.
Andremo a creare la nostra personale Alexa SmartHome Skill per interagire con Alexa, quindi memorizzeremo le informazioni su DynamoDB.
Ho creato un tutorial specifico per DynamoDB, se vuoi puoi iniziare da quel tutorial “DynamoDB con JavaScript SDK v2 e v3”.
Devi sapere che una Skill Smart Home è diversa da una Skill, la differenza principale è che non è necessario aprire la Skill per funzionare, puoi eseguire direttamente il comando (come “Alexa accendi la luce”) ma come puoi capire hai qualche limitazione, la prima è che puoi usare solo un set di comandi specificati da un’interfaccia.
- BrightnessController
- ColorController
- ColorTemperatureController
- InventoryLevelSensor
- InventoryUsageSensor
- PercentageController
- PowerController
- PowerLevelController
- SceneController
- TemperatureSensor
- ThermostatController
- TimeHoldController
E qualche controller generico
- ModeController
- RangeController
- ToggleController
Ci sono altri 2 set di interfacce, ma non ne leggiamo ora.
Per funzionare una Skill ha bisogno di un back-end, il back-end è una funzione lambda, che puoi vedere come un servizio REST ma con elementi e funzioni personalizzati. Svilupperemo quel lambda in AWS JavaScript Framework 3.
Prerequisiti
Devi creare gli account.
- Un account sviluppatore Amazon, necessario per creare e configurare le competenze di Alexa.
- Un account Amazon Web Services (AWS), necessario per ospitare la logica della skill in una funzione AWS Lambda.
Codice e risorse
Prima crea una cartella, per me creo
alexa-skill-manage-relay-nodejs
Ottieni il setup-template.txt
file da
https://github.com/xreef/alexa-skill-manage-relay-nodejs/raw/main/setup-template.txt
e rinomina in setup.txt
.
Il file dovrebbe contenere:
[Login with Amazon Client ID]
amzn1.application-oa2-client.XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
[Login with Amazon Client Secret]
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
[Alexa Skill Application ID]
amzn1.ask.skill.XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX
[AWS Lambda ARN]
arn:aws:lambda:us-east-1:XXXXXXXXXXXX:function:skill-sample-language-smarthome-switch
[Redirect URLs]
https://pitangui.amazon.com/api/skill/link/XXXXXXXXXXXXXX
https://layla.amazon.com/api/skill/link/XXXXXXXXXXXXXX
https://alexa.amazon.co.jp/api/skill/link/XXXXXXXXXXXXXX
[DynamoDB table]
XXXXXXX
[Device end point]
XXXXXXXX
Installa strumenti opzionali
L’utilizzo di questi strumenti è facoltativo in quanto utili, ma non obbligatori.
NodeJS
Puoi scrivere direttamente il codice su AWS, ma è meglio se scarichi NodeJS.
Git
Git 2.0 o superiore è richiesto solo se si desidera clonare il codice sorgente localmente. Dalla riga di comando, puoi verificare se git è installato eseguendo il comando:
git --version
Se non è installato correttamente o non è una versione successiva alla 2.0, visita https://git-scm.com/downloads per scaricare e installare una versione adeguata alla tua piattaforma.
Interfaccia a riga di comando di Alexa Skills Kit (ASK CLI)
Questa ASK CLI può essere utilizzata per creare, distribuire e mantenere le Skill di Alexa. Se hai già installato ASK CLI puoi verificarne la versione eseguendo il comando:
ask --version
Ai fini di questo esempio, la versione ask deve essere 1.3.1 o successiva.
Recupera il codice sorgente tramite Git
Se hai git installato sulla tua workstation, puoi usare le seguenti istruzioni per recuperare il codice sorgente nella tua directory di lavoro.
- Dalla riga di comando, accedi alla directory di lavoro creata prima:
alexa-skill-manage-relay-nodejs
; - Esegui il seguente comando per scaricare il codice sorgente in una directory:
git clone https://github.com/xreef/alexa-skill-manage-relay-nodejs.git
Ottieni il codice sorgente tramite download
Se non hai git installato, scarica e decomprimi il contenuto zippato dell’esempio da https://github.com/xreef/alexa-skill-manage-relay-nodejs/archive/master.zip nella directory di lavoro: alexa-skill-manage-relay-nodejs
.
Grazie
- AWS Alexa Smart Home Skill: introduzione e avvio
- AWS Alexa Smart Home Skill: crea la Skill e gestisci la sicurezza
- AWS Alexa Smart Home Skill: crea la Lambda e gestisci la sicurezza
- AWS Alexa Smart Home Skill: configurare la Lambda per la skill
- AWS Alexa Smart Home Skill: configurare il database DynamoDB
- AWS Alexa Smart Home Skill: caricare codice di esempio e testare la Lambda
- AWS Alexa Smart Home Skill: testa la tua Skill in sviluppo e gestisci i log