Page 7 sur 21

Re: Alexa / Controlicz

Publié : 30 août 2018, 18:59
par Jeff
rimram31 a écrit :
Jeff a écrit :Oui et surtout avec un bref tuto, je vous suis mais je suis perdu....
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 https://github.com/madgeni/alexa_domo qui s'applique tel quel sauf la création du skill qui a changé depuis.

....

En espérant Jeff que cela soit suffisant dans un premier temps.
Merci, je vais me lancer et faire mon retour.
On commence pas un autre post, car ce tuto est noyé en milieu de page :?

Re: Alexa / Controlicz

Publié : 30 août 2018, 20:54
par mulot35
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

Re: Alexa / Controlicz

Publié : 30 août 2018, 21:09
par Jeff
Oula la c'était compliqué cette manip :roll: :roll:
J'ai suivi le tuto que je trouve assez dur mais bien fait, merci encore Rimram31
Tout a marché sauf ceci :

Code : Tout sélectionner

Lambda.py introuvable
lambda.png
lambda.png (66.96 Kio) Consulté 6211 fois

Code : Tout sélectionner

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.
error.png
error.png (38.02 Kio) Consulté 6211 fois
Edit : je viens de voir Mulot35 qui a posté en // et qui a plus détaillé.
J''ai pas regardé le tuto de Madgeni

Re: Alexa / Controlicz

Publié : 30 août 2018, 21:22
par rimram31
lambda.py comprends pas c'est le nom du 'module' python et il est bien present. Pour mulot35 c'est l'authent malheureusement pour moi c'est du chinois enfin pas trop mais je pige pas exactement 'comment ca marche'. Linking unsuccessful j'ai eu mais resolu en ajoutant les 3 urls en 'Allowed return urls'

Edit: Oops je pige le 'lambda.py' jeff, tu as un sous rep 'dz_smarthome ...' dans ton archive, il faut creer l'archive dans le rep ou est la lambda (lambda.py est alors dans le rep 'courant')

Re: Alexa / Controlicz

Publié : 30 août 2018, 21:31
par mulot35
Jeff a écrit :Oula la c'était compliqué cette manip :roll: :roll:
J'ai suivi le tuto que je trouve assez dur mais bien fait, merci encore Rimram31
Tout a marché sauf ceci :

Code : Tout sélectionner

Lambda.py introuvable
lambda.png

Code : Tout sélectionner

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.
error.png
Edit : je viens de voir Mulot35 qui a posté en // et qui a plus détaillé.
J''ai pas regardé le tuto de Madgeni
J'ai exactement les deux meme erreur

Re: Alexa / Controlicz

Publié : 30 août 2018, 21:35
par Jeff
J'ai résolu l'histoire d'authentification :D
J'avais mal suivi la procédure :
Je m'étais pas logger avec login amazon et puis j'ai suivi ceci :

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

Ne pas oublier ceci :
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
J'ai plus le temps de tester ce soir, car il faut que je désactive ha bridge...

Je n'ai pas encore vu à quel endroit rentrer ma config domoticz !
Edit : c'est bon j'ai vu sous le github, c'est le fichier de configdz.json, on verra cela demain et lancer le script...

Re: Alexa / Controlicz

Publié : 30 août 2018, 21:44
par rimram31
Pour l'authent j'avais lu ce post https://developer.amazon.com/fr/blogs/p ... -Login-wit a adapter ca a un peu change.

Pour l'acces a 'lambda.py' je pense que c'est l'archive qui est mal construite ou mon tuto qui contient une boulette ... ;) le source lambda.py doit etre a la racine de l'archive.

lu entre temps ton post jef, je pense ok ce sont les urls 'autorises' de retour apres login

Edit: Je confirme pour 'lambda.py' apres avoir relu ton post jeff. Desole, sur un poste linux, git installé, il faut faire un git clone https://... (ce que propose de coller clipboard github quand on selectionne 'clone or dowload') puis dans le rep. dz_smarthome créé lancer ./build_lambda et/ou un zip ... voir contenu script build_lambda (que j'ai ecrit). A adapter si autre plateforme que linux, le but est de fabriquer un zip contenant les fichiers dont un configdz.json adapte a votre instalation

Re: Alexa / Controlicz

Publié : 30 août 2018, 22:23
par Jeff
Je m'étais tellement concentré sur la partie amazon, sue j'avais zappé la partie script.
Je regarde demain.
Merci rimram31 pour le boulot.

Re: Alexa / Controlicz

Publié : 30 août 2018, 22:46
par mulot35
Tout pareil.
Du coup j'ai modifié ma tartine j'ai ajouté ca :

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"

tu valide rimram31?

(Toujours pas d'authentification demain j'efface tous et je recommence et au pire je commence un tuto open office propre si ça t’arrange et tu fignolera.)

Re: Alexa / Controlicz

Publié : 30 août 2018, 23:53
par rimram31
mulot35 a écrit :...tu valide rimram31?
Heu presque, regardes le readme de mon github, il faut un fichier configdz.json inclus DANS l'archive. Le -template est donne pour exemple, donc a copier et/ou renommer, en configdz.json a adapter ET a inclure dans le zip. Ce fichier doit apparaitre dans les fichiers de la lambda, c'est un, minimaliste, fichier de conf.

Je suis preneur d'un tuto ... ou plutot du temps passé a le fabriquer ;)