Mes déboires avec le lancement d’une radio sur un Echo Spot (voir ICI) sont devenus un mal pour un bien…
J’ai reconsidéré mon besoin qui est le suivant :
Programmer un réveil pour le lendemain, comprenant le lancement d’une musique sur Echo Spot et de différentes actions domotiques (lumières, café,etc)
J’ai créé un petit scénario qui intercepte la programmation des alarmes Alexa via le plugin Alexa-API
Les déclencheurs de ce scénario sont les changements de valeur des commandes info « Next Musical Alarm Hour » et « Next Alarm Hour »
Le scénario :
On vérifie que la valeur de « Next Musical Alarm Hour » n’est pas vide.
(En général vide = ‹ none › pour cette commande info, sauf dans certains cas comme la suppression de toutes les alarmes par le panneau du plugin… Ce qui explique le test également sur « »)
Si une valeur est trouvée, on la stocke dans une variable « reveil » (on verra plus tard la raison)
On programme les actions qui devront être lancées à l’heure dite par une sous-tâche « A »
Ces actions se termineront pas un vidage de la variable « reveil »
On enchaîne par une condition « SINON » qui traite l’alarme de base
Je peux donc effectuer une programmation vocale de mon réveil avec Alexa, qui va déclencher immédiatement l’exécution de ce scénario Jeedom. Le scénario intègre la programmation d’une sous-tâche à la même heure que l’alarme musicale
J’ai également essayé de créer ou de réactiver une alarme depuis l’application Alexa de mon iPhone
C’est opérationnel en connexion sur son réseau local, mais pas en 4G par exemple.
On peut avoir aussi besoin de désactiver une alarme
Cette action peut être déclenchée vocalement, ou avec l’application Alexa sur son réseau local, mais aussi en 4G
Mais comment supprimer la sous-tâche « A » qui a été programmée dans mon scénario Jeedom ?
C’est là que ma variable « reveil » est utile
En début de scénario, j’effectue ce test :
Pas sûr que l’image soit lisible, y compris en l’ouvrant dans un autre onglet
Mais le commentaire devrait être assez explicite
Lorsqu’une alarme Alexa est annulée, le scénario s’exécute automatiquement et les sous-tâches programmées sont supprimées par la commande « remove_inat »
NB : on peut trouver une tâche programmée par un scénario en bas de liste dans « Réglages / Système / Moteur de tâches » (cron scénario)
J’ai ajouté un virtuel pour avoir l’affichage de l’heure de réveil programmé
La mise en forme de l’heure s’effectue par la commande « formatTime »
Avant Alexa-api, je programmais mon réveil en modifiant mon agenda sur mon dashboard (la musique était diffusée sur une squeezebox)
Maintenant, un seul ordre vocal est nécessaire… et pas de souci de déclenchement de l’alarme musicale sur mon Echo Spot le matin
Avertissement en date du 01/12/2019
Le scénario en exemple s’appuie sur la version stable 2019-10-31 18:21:55 du plugin Alexa-api