Lancer un script Python avec Alexa

J’ai écrit un script me permettant de contrôler mes volets roulants : https://github.com/Nickduino/Pi-Somfy
Ils sont à peu près autonomes (s’ouvrent le matin et se ferment au coucher du soleil) mais j’aimerais pouvoir les contrôler vocalement durant la journée.

Comme j’ai une enceinte Amazon Echo dans le salon, ça me semble logique d’utiliser Alexa.

J’ai trouvé au moins trois méthodes, aucune de vraiment évidente pour moi :

  • simuler une prise WeMo sur le Raspberry Pi ;
  • utiliser Alexa pour mettre à jour une variable sur un server web et vérifier la valeur de cette variable périodiquement avec le Raspberry Pi ;
  • l’usine à gaz de Ben Heck : https://www.youtube.com/watch?v=3TaLlI4BqeI

Comme je ne suis pas vraiment inspiré, j’ai pensé que ça m’aiderait d’évoquer la question : est-ce que certains sont à l’aise avec les skills et le backend de l’écosystème Alexa ?

Si cette simulation est l’installation de ce repo github, je pense pouvoir aider

Le reste est hors de ma porté.

La simulation de prise est bien l’installation de l’un des N repo “fauxmo” de github. C’est pas la solution qui a ma préférence car :

  • la plupart des repo ne sont pas compatibles avec les enceintes de seconde génération
  • ça me limite à deux commandes (on/off : pas d’arrêt du volet)
  • j’imagine que cela demande de suivre l’état (ouvert/fermé) du volet et je ne suis pas sûr qu’Alexa accepte d’envoyer la commande “on” à une prise dont c’est sensé déjà être l’état (le Raspberry Pi ne peut pas savoir si quelqu’un a actionné la télécommande)

La “bonne” solution, c’est flask-ask, un tunnel https, etc mais je ne joue pas vraiment dans cette division :-/

Sur la partie serveur web et tunnel je peux certainement aider.

C’est sympa parce que même en regardant ce genre de vidéos, je continue à patauger un peu…

Comment on peut faire ?

au fait, bravo pour ton code Somfy :+1:
j’utilise la version arduino depuis un bon moment pour piloter mes volets roulants.
j’ai juste ajouté de quoi en commander plusieurs

Ravi que ça serve. J’avoue que ces deux repo m’apporte une certaine satisfaction, voir que j’ai fait un truc :

  1. Utile qui sert à d’autres
  2. Apprécié par des personnes bien plus intelligentes et douées pour coder que moi

J’ai du mal à le suivre aussi. Ce tutoriel a l’air plus clair et plus simple :

Tu peux aussi tout faire sur le Pi, ça t’évite d’avoir un serveur externe juste pour stocker une valeur. Le serveur qui répond aux requêtes d’Alexa tourne sur le Pi donc tu peux directement déclencher tes programmes. Il te faut juste un moyen pour faire que ton Pi soit accessible en HTTPS depuis internet.

Dans le tutorial que j’ai mis au dessus il font ça avec un tunnel en utilisant ngrok. Ça peut suffire, notamment pour les tests, mais il est possible que ce soit hasardeux de garder le tunnel ouvert en permanence.

Tu peux aussi rendre ton Pi directement accessible depuis internet. C’est sans doute le mieux mais c’est un peu plus long à préparer. Je peux te lister tous les trucs à faire, mais la première étape ça serait je pense de faire fonctionner le truc avec ngrok.

Si tu peux passer à l’ACoLab on peut regarder ensemble. Sinon je suis en train de faire un truc un peu similaire pour la serrure connectée, et c’est un sujet qui semble intéresser d’autres personnes à l’ACoLab, donc je me dis qu’il faudrait peut être que je fasse un atelier sur le sujet.

Je pense que ça se rapproche du projet de Ben Heck : tunnel https vers le Pi pour lancer un script (qui n’est pas connecté à un flipper mais à un émetteur RF).

Tu sais quand tu passes la prochaine fois ?

Je passerai ce samedi, et le suivant je fais l’ouverture.

Je te présente mes excuses, Mike, je ne t’ai donné aucune nouvelle :-S

Hasard de la vie, un autre Mike (Michael) m’a contacté il n’y a pas longtemps pour me proposer d’intégrer ses améliorations à mon repo plutôt que de faire un fork.
Il a :

  • créé une GUI
  • connecté le truc avec Alexa (mais je suis de moins en moins fan de fauxMo, j’espère pouvoir faire évoluer cette partie)
  • transformé mon script dégueulasse en un beau code orienté objet et compatible Python 3

On fignole ça ensemble en ce moment mais il y a déjà une version fonctionnelle de publiée.

Si ça vous dit de donner un coup de main (GUI, Alexa, intégration openHAB, possibilité de gérer des règles complexes, …), on est preneurs de bonnes volontés.