rimram31 a écrit :Code : Tout sélectionner
[quote="Jeff"]Oui et surtout avec un bref tuto, je vous suis mais je suis perdu....[/quote]Je vais m'y essayer, ça servira de base a une doc a ajouter sous github. Tout d'abord avoir sous la main le tuto original de madgeni [url]https://github.com/madgeni/alexa_domo[/url] qui s'applique tel quel sauf la création du skill qui a changé depuis.
Sous Amazon Developper Console, creation du skill:
=============================================
. Alexa Skill kit => Skill name, Default language (j'ai mis "FR"), "skill model" => Smart Home
puis une fois créé => payload version = v3
noter le skill id (copy to clipboard) et aller sur la console AWS Services
Sous AWS Management console, creation d'une lambda:
===========================================
. Aller dans région Ireland (obligatoire pour un skill Alexa), voir en haut a droite de la console
. Aller dans "Services" => Lambda => Functions
Creer une lambda ("function"): "From scratch", donner un nom, Runtime Python 3.6, Choose a role (a creer la 1ere fois ?) => lambda_basic _execution, puis:
-> Partie designer => "Add trigger" -> 'Alexa Smart Home' -> "configuration required' -> entrer le skill id (coller de developer console)
-> Partie "Function code" => "Code entry type" -> upload zip -> uploader l'archve zip
Mettre dans Handler: [i]lambda.event_handler[/i] (c'est le nom du <module>.<function> point d'entree de la lambda)
Coller/noter l'arn de la lambda "en haut a droite", type arn:aws:lambda:eu-west-1:...
S'assurer qu'on a bien fait "save", il est possible d'y revenir au besoin ensuite
Pas d'angoisse si toutes ces manips ne sont pas faites "consécutivement", la console lambda est parfois déroutante, on peut très bien le faire par "petite touches" en y revenant plusieurs fois tant qu'on a bien fait "Save".
Re Amazon developer console:
==========================
. Coller l'arn de la lambda dans le "Default endpoint" et aussi partie "Europe" (notre cas), j'ai laissé vide pour les autres régions
On a fait l'essentiel skill + lambda, reste le "souci" de l'account linking
Tout d'abord créer un "security profile" (voir doc de madgeni):
- Console developpeur, https://developer.amazon.com/home.html, creer "Security profile": "Apps & Services" -> "Security Profile"
Puis dans la partie "Account linking" du skill, entrer
[code] - Authorization URI: https://www.amazon.com/ap/oa?redirect_url=https://pitangui.amazon.com/api/skill/link/xxxxxxxx
remplacer le xxxxx par ce qui est affiché en bas de la page dans "Redirect URLs" https://pitangui.amazon.com/...
- Access Token URI: https://api.amazon.com/auth/o2/token
- Client ID/ Client secret: recopier id/secret du security profile créé
- Client Authentication Scheme: HTTP Basic
- Scope: En ajouter un, je l'ai nommé "profile"
Attention, revenir a "Security profile" créé précédemment, modifier dans l'onglet "Web settings" la partie "Allowed return URL" et y ajouter les 3 URLS en bas de la page "Account linking"
style
https://pitangui.amazon.com/api/skill/link/xxxxxxx,
https://layla.amazon.com/api/skill/link/xxxxxx,
https://alexa.amazon.co.jp/api/skill/link/xxxxxxx
Enregistrer tout ça, ça devrait etre ok.
Rem: En fait l'account linking permet de se lier avec un login sur une autre plateforme, normalement celle du fournisseur du skill, ce qui permet de savoir qui l'appelle (skill partagés par tous), la comme on en a pas besoin, on utilise un service amazon pour s'authentifier, le "security profile". Après dans les détails, ne me demandez pas, certaines parties restent un peu obscures pour moi.
Le skill créé apparait dans la conf. Alexa partie "Skills -> Mes skills" (en haut a droite) -> "Developpement". Dans notre cas, l'account linking va demander de s'authentifier, ici une nouvelle fois a Amazon (avec son login/pwd habituel de son compte Amazon, classique celui-là, avec lequel on a acheté l'Alexa ...)
Il est possible d'utiliser un outil de "test" dans la partie developer console (en haut a droite quand on est dans un "skill", il y a un bouton "Tester"). Pas top et attention on teste les phrases qu'on dirait a Alexa, tout skills confondus (il faut etre chez soi entre autre pour tester ...). Pour la partie Lambda, on peut voir les appels et éventuellement des "logs": onglet "monitoring", ca permet de vérifier a minima les appels.
En espérant Jeff que cela soit suffisant dans un premier temps.[/code]
Merci alors c'est parti je tente
TuTo de madgeni:
=============================================
1.1/1.2:ok
1.3 :
Security Profile Name : Alexa Domoticz OAuth2
Security Profile Description:OAuth authorization for domoticz
Consent Privacy Notice URL:
https://developer.amazon.com/
Consent Logo Image : enregistrer un logo au pif
https://desaille.fr/wp-content/uploads/ ... mb_256.png le mettre en 150x150 en png et l'upload
Puis save
1.4=>ok
arret du tuto madgeni
=============================================
Prise tuto de rimram31
=============================================
Alors j'ai fait:
login sur :
https://developer.amazon.com/
puis : "Developer Console" ce qui m'envoye sur :
https://developer.amazon.com/home.html
onglet "Alexa skill kit" puis "create skill".
Skill name:Domoticz_skill
Default language : "FR"
skill model" => Smart Home
Valider par "create skill"
Verif que la payload version soit en V3
Copier le "your skil ID"
AWS SERVICES
.Aller sur
https://console.aws.amazon.com
.Aller dans région Ireland (obligatoire pour un skill Alexa), voir en haut a droite de la console (entre votre pseudo et support)
.Aller dans "Services" => comput => Lambda => create a Functions
=> si problemes vous n'avez surement pas completé votre inscriptions (CB, vérification du n° de telephone (marche sur le fixe aussi)) puis basic plan free.
Creer une lambda
-"function": "Author From scratch"
-Name:AWS_Domoticz_python
-Runtime Python 3.6
-Choose a role => create a custom role
=>ce qui ouvre un nouvelle onglet
....=>IAM Role :create a New IAM role
....=>Role name:lambda_basic _execution
....=>Allow
....=>retour a notre page avec Existing role : lambda_basic _execution
Valider le tout par "create function"
Sur le nouvelle onglet:
-> Partie designer => "Add trigger" -> 'Alexa Smart Home' -> "configuration required' -> entrer le skill id (en bas)(coller de developer console) puis add puis save
_______Pas sur de moi______
Allez sur
https://github.com/rimram31/dz_smarthome puis faire "clone or download" sauvegarde sur le bureau
..=>dézipper "dz_smarthome-master.zip" avec extraire vers sur votre bureau
...=>ouvrir "configdz-template.json" puis le modifier
{
"url": "
https://zzzz.ddns.net:51243/",===> ip externe accessible en htpps
"username": "xxxx",====> votre login domoticz
"password": "yyyy" =====> mdp domoticz
}
....=>enregistrer
....=>lancer le "build_lambda"
ce qui vous donne un zip nommé:"lambda.zip" de 8,7 ko (8 724 octets) contenant a sa racine "lambda.py", "DomoticzHandler.py", "AlexaSmartHome.py"
.Dans la Partie "Function code" (en dessous) (si non ouvert faire function en haut puis relancer votre aws)=> "Code entry type" -> upload zip -> uploader l'archve zip fraichement creer (lambda.zip)
Mettre dans Handler: lambda.event_handler (c'est le nom du <module>.<function> point d'entree de la lambda)
______fin de pas sur de moi_______
Faire "save" en haut a droite
AJOUT: double clic sur configdz-template.json
et modifier:
puis save
Coller/noter l'arn de la lambda "en haut a droite", type arn:aws:lambda:eu-west-1:...
S'assurer qu'on a bien fait "save", il est possible d'y revenir au besoin ensuite
Pas d'angoisse si toutes ces manips ne sont pas faites "consécutivement", la console lambda est parfois déroutante, on peut très bien le faire par "petite touches" en y revenant plusieurs fois tant qu'on a bien fait "Save".
______________retour au tuto 3.15_____________
Allez sur votre alexa skills kit developper
dans l'onglet "build" section"smart home" coller votre arn dans : 2. Smart Home service endpoint/AWS Lambda ARN/Default endpoint:
.En dessous coller de nouveau l'arn dans "europe india" après avoir coché ca case
Faire Save en haut
.en bas dans "3. Account Linking" cliquer sur "Setup Account Linking"
alors:
dans Authorization URI:
coller ca :
https://www.amazon.com/ap/oa?redirect_url= suivie de la ligne en bas commencent par
https://pitangui.amazon.com/api/skill/link/xxxx
dans Client ID / client secret:
coller l'id obtenu en 1.4 idem pour Client secret
dans token uri:
coller :
https://api.amazon.com/auth/o2/token
dans scope:
j'ai mis "profile:login de connexion a amazon Alexa"
rien dans Client Authentication Scheme/Domain List
dans Default Access Token Expiration Time:
j'ai 3600
Faire un save:
le tout validé par "Success! Your changes have been saved."
4.3/4.4=> comprend pas je passe (truc de test)
5.1/5.2/5.3=ok
5.4/=> j'ai coller dans "Allowed Return URLs"
6.1/6.2 (Skill en cours de développement)
6.3=> j'ai ma skill sans le logo (150x150.png)
6.4=> je lance la skill il me redemande de me loguer je retombe sur la page de la skill il ouvre un popup avec comme erreur:
Le serveur d'autorisation a répondu avec un paramètre error. Relisez
https://tools.ietf.org/html/rfc6749#section-4.1.2.1 pour avoir plus d'information sur cette erreur.
Je continu a chercher