Page 8 sur 21

Re: Alexa / Controlicz

Publié : 31 août 2018, 01:21
par mulot35
Je pensai que le build_lambda coller le contenu de configdz-template.json dans un autre fichier.
Il y a juste a le rajouter dans l'archive apparu après le lancement de build_lamba en le renoment en configdz.json avec les bons paramettres de connexions a domoticz en https avec ip externe.=> vendu?

New tartine sous open office en cours 2.3.1 a refaire suivant réponse du dessus:

Code : Tout sélectionner


1-Inscription
-S'inscrire sur https://developer.amazon.com/
-S'inscrire sur https://console.aws.amazon.com/
=>Nous utiliserons exclusivement les requetes AWS
=>Nécessite l'utilisation d'une CB et une vérification telephonique,
=>si vous dépassé les 1.000.000 de requêtes par mois (pas très WAF) ça devient payant toutefois ca reste gratuit a vie si vous resté sous cette limite.


2-Faut bien commencer.
2.1-Les codes secret du developer

-Un clic sur « developer console »
-Suivie de 3 gros clic (APPS & SERVICES / Login with Amazon / Create a New Security Profile)
-Je vous invite a quelques copier / coller :
Security Profile Name :              Alexa Domoticz OAuth2
Security Profile Description:      OAuth authorization for domoticz 
Consent Privacy Notice URL:    https://developer.amazon.com/
-Pour le logo enregistrer un logo au pif https://desaille.fr/wp-content/uploads/2017/09/thumb_256.png le mettre en 150x150 en png et l'upload ou le rimram logo officiel 
-Puis save
-Cliquer sur Show « Client ID and Client Secret »
-Ouvrons gaiement une page excel ou libre open office
-Enregistrer la sur le bureau avec un jolie nom genre « le fils d Ullyse »
-Copier en Case A1 « Client ID: » et B1 sont code correspondant « amzn1.application-oa2-client. »
-Copier en Case A2 « Client Secret: » et en B2 sont code correspondant «  chiffreblablabla »
-Ecrire en Case A3 « Skill ID »
-Ecrire en Case A4 « ARN AWS »

2.2.Dans ton SKILL

-Sur le developpe clique sur  « ALEXA SKILL KIT » puis « create SKILL »
-Un jolie copier / coller sans improvisation
Skill name:Domoticz
Default language :  "FR"
Choose a model to add to your skill" => Smart Home
Valider par "create skill" (en haut)
-Nouvelle page nouveaux travaux :
==>Vérifier que le payload version soit en V3(Preferred)
-Copier le "your skil ID" et le coller en dans B3 de notre page excel
-Fermer la page

2.3.AWS le coeur du bignou

2.3.1.J'te build.
 
-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"

2.3.2.J'envoie dans cloud

-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
-Puis Basic plan free (si première visite)
-Dans « Create functions »
-cliquer sur : "Author From scratch"
-Name:AWS_Domoticz_python
-Runtime Python 3.6
Si PREMIERE VISITE :
-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
SI C'EST LA ROUTINE :
....=>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 (B3 de notre excel) (un peut en dessous) 
-Puis add puis save
-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)
-Faire "save" en haut a droite
-Remonter en haut de la page et copier le ARN en B4 de notre excel
-Cliquer sur la grosse etiquette bleue ALEXA SMART HOME
-Et cliquer un peut plus bas sur le lien « To configure your Alexa skill, go to the Alexa Developer Portal. »
-Fermer AWS

2.3.3.Je vois la lumière

-Cliquer sur votre skill en bas de la page
-Copier B4 de notre feuille excel et la coller dans :
=>Default endpoint
-Puis selectionner « Europe, India » et coller lui B4 aussi
-Un « SAVE » s 'impose
-Sous « 3. Account Linking » cliquer sur « Setup Account Linking »
-Sur notre nouvelle page remplir :
=>Authorization URI:
coller: https://www.amazon.com/ap/oa?redirect_url= suivie de la ligne en bas commencent par https://pitangui.amazon.com/api/skill/link/xxxx
=>Access Token uri:
coller :https://api.amazon.com/auth/o2/token
=>Client ID 
coller B1 du fichier excel
=>Client secret:
coller B2
=> Client Authentication Scheme
HTTP Basic
=>scope:
coller :Profile:user_id
=>Domain List 
RIEN
=>Default Access Token Expiration Time
Rien
Faire un save:
le tout validé par "Success! Your changes have been saved."

Copier les 3 liens en bas de la page dans votre excel

-Revenir sur https://developer.amazon.com/ 
-Suivie de 2 gros clic APPS & SERVICES / Login with Amazon 
-Faire web setting de votre profil
-Entre les 3 liens copier a l'arrache dans votre excel dans « Allowed Return URLs »
-Puis un save

3.Tip Top ou Flop

-Lancez https://alexa.amazon.fr/ 
-Onglet Skill puis vos skills puis skill en cours de développement
-Cliquer sur domoticz
-Puis activer
Et toujours Linking unsuccessful on verra aussi demain.

Merci pour ton taf.

Re: Alexa / Controlicz

Publié : 31 août 2018, 09:11
par rimram31
mulot35 a écrit :Je pensai que le build_lambda coller le contenu de configdz-template.json dans un autre fichier...
Non, il lance juste la commande zip avec la liste des fichiers strictement nécessaires. J'ai créé un template pour éviter de poser sur github ma propre conf ... au final on doit avoir:

Code : Tout sélectionner

$ unzip -l lambda.zip 
Archive:  lambda.zip
  Length      Date    Time    Name
---------  ---------- -----   ----
       96  2018-08-31 08:48   configdz.json
     1289  2018-08-30 22:07   lambda.py
    24542  2018-08-30 22:07   AlexaSmartHome.py
    16090  2018-08-30 22:07   DomoticzHandler.py
---------                     -------
    42017                     4 files
Le 'Handler' que l'on saisit dans la définition d'une lambda (code entry type, runtime, Handler) est le point d'entrée que va appeler Amazon lorsque la lambda est déclenchée, lambda.event_handler dans mon cas. Si vous regardez le code source de lambda.py, il contient une méthode nommée event_handler(request, context), c'est cette méthode qui est appelée a chaque "événement" Alexa. Il faut que cette méthode soit trouvable a partir de la racine du zip, comme si le zip etait le "répertoire courant" d'un code python. Accessoirement dans cette méthode, vous verrez dans le code que le fichier de conf attendu est bien nommé "configdz.json"

Après faites moi vos retours parce que mes tests ne sont certainement pas exhaustifs. Comme je le disais plus haut pour éviter déjà des erreurs sur le nom du device par Alexa, pour mes tests, j'ai mis le/les devices a tester seuls dans un groupe pour lequel il n'y a pas d’ambiguïté de nom, on dit alors ensuite 'Alexa <action> <nom du groupe> ...' ex: Alexa allume/eteins la cuisine, Alexa regle la cuisine a 20 (dimmer), Alexa augmente/baisse la cuisine, Alexa règle la cuisine a 20° (thermostat), Alexa quelle est la température de la cuisine (capteur), Alexa met la cuisine en rouge (lumières) ... (heu c'est a peu près tout ce que j'ai fait marcher :D )

Re: Alexa / Controlicz

Publié : 31 août 2018, 15:10
par mulot35
Tuto a 95% plutôt propre.
expire dans 6 jours.
https://transfernow.net/71hkn8t4ly1w
Version word a la maison pour l'instant.

Oui un retour serait le bienvenue voir si ca fonctionne ou pas.

rimram31=> si tu es motivé a le déroulé de A a Z tu verra les boulettes

J'suis absent tout le week end ...

Re: Alexa / Controlicz

Publié : 31 août 2018, 17:14
par Damsee
mulot35 a écrit :Tuto a 95% plutôt propre.
expire dans 6 jours.
https://transfernow.net/71hkn8t4ly1w
Version word a la maison pour l'instant.
Merci :)
J'avais commencé mais ma version n'est qu'à 50% lol

Faut que je teste à la maison en désactivant la version NodeJS en smarthome v2 de Madgeni.

Re: Alexa / Controlicz

Publié : 31 août 2018, 18:40
par mulot35
Pour les modifs a la volet le fichier word.

https://transfernow.net/159vg1a8i079

Avec quelqu'un qui métrisse ca va etre mieux

Re: Alexa / Controlicz

Publié : 31 août 2018, 19:37
par rimram31
J'ai regardé rapidement, c'est super!

On attends un peu que ce soit "validé" et/ou corrigé a l'essai ? Puis je peux le déposer sur le github je pense, le pdf est "autoporté" j'imagine au sens "s'auto suffit".

Re: Alexa / Controlicz

Publié : 31 août 2018, 20:09
par mulot35
il y a aussi les icones (png)dans le zip du word .
Je sais pas si c'est fonctionnel mais les mettres dans le github pourrait etre sympas (si il te conviennent 3 logo assemblés a la va vite) et ca change pas le tuto.

J'ai pas fait non plus l'utilisation avec domoticz:
alexa:lumière cuisine ....

Re: Alexa / Controlicz

Publié : 31 août 2018, 23:15
par Jeff
Ca y est j'ai pris quelques minutes pour configurer et uploader mon code.
Plus d'erreur sur lambda.zip.
Cela ne semble par pour autant marcher, je détecte pas mes appareils pour le moment.
On verra cela plus tard dans le week end.

Je n'ai même pas pris le temps de lire le beau tuto que vous avez fait :oops:

Re: Alexa / Controlicz

Publié : 01 sept. 2018, 10:07
par rimram31
Jeff a écrit :...Cela ne semble par pour autant marcher, je détecte pas mes appareils pour le moment...
Zut, j'espère que ce n'est "que" la conf qui ferait que la lambda ne voit pas ton dz, autre piste le discovery qui planterait, là pas cool.

Tu peux d'une aller voir les logs de la lambda (suivre Monitoring -> Cloud watch logs), de deux repartir "de 0" en mettant les devices un a un (plan) pour voir si ça en serait pas un qui fait planter le discovery.

Dans le principe, Alexa (Amazon, cloud) envoi un "Discovery", le skill retourne la liste des devices avec leurs capacités, ensuite a l'affichage de la liste des devices, Alexa appelle chaque device (apparemment pour avoir un "etat"). Il faudrait probablement que j'ajoute quelques logs dans l'exécution de ces parties.

Oops d'ailleurs en allant voir les logs de ma lambda, je m'aperçois que j'ai laissé des logs en niveau "ERROR" (mais qu in'en sont pas) notamment des appels entrant d'Alexa. Ce ne sont donc pas forcément des erreurs ... je vais voir si je peux faire une passe dans le code.

Re: Alexa / Controlicz

Publié : 01 sept. 2018, 11:13
par Jeff
C'est bon :)
Merci rimram31, en regardant les logs, j'ai vu que j'avais mis un / après mon n° port dans l'adresse https !
J'ai récupérer les températures :D :D :D
Je testerais la semaine prochaine un peu plus les possibilités.

PS : Bravo pour la Doc Mulot35, elle est bien présentée