Alexa-API Documentation

alexaapi

Cette documentation est temporaire, elle sera mise en forme petit à petit.

 

Table des matières

Installation du Plugin Alexa-API

Utilisation des commandes

 

Installation du Plugin Alexa-API

Dans l'hypthèse ou vous souhaitez supprimer complètement le plugin avant de le réinstaller, je vous conseille :

  • De supprimer un à un tous les devices "Amazon echo" du plugin.
  • De supprimer les logs pour repartir à zéro à la nouvelle installation
  • De cliquer sur "Supprimer" dans la config du plugin, cela supprimera tout le dossier du plugin
  • A ce stade, vous êtes tout neuf, vous pouvez lancer l'installation

Installer le Plugin depuis le Market

installationalexaapi1

 

installationalexaapi3

 

installationalexaapi4

 

Activer le Plugin

installationalexaapi5

 

Recharger les dépendances

installationalexaapi6

 

Générér manuellement le cookie Amazon

installationalexaapi7

 

S'identifier sur la pop-up d'Amazon

installationalexaapi8

Fermer la fênetre dès que le Cookie Amazon est créé.

 

Lancer le Daemon s'il ne se lance pas tout seul

installationalexaapi9

 

Lancer le SCAN

installationalexaapi10

 

Les devices apparaissent, aller dans un device et dans Commandes lancer un Speak pour tester

installationalexaapi11

 Et voilà, Alexa parle en moins de 5 min !!

 

Commandes (Info et Action) du plugin :

 

 

alarm?when=#when#&recurring=#recurring#

Cette commande d'ajouter une alarme au device dans lequel est créée la commande.

Voici les options :

  • when=YYYY-MM-DD HH24:MI:SS

exemple : 2019-12-31 21:36:00

Notez que les alarmes sont différentes des rappels et doivent être dans un créneau de 24h (une alarme pour le 31/12 au moins d'avril est impossible contratirement aux Rappels)

Ainsi, si aucune récurrence n'est programmée (par le paramètre reccuring), seule l'heure est prise en compte, le jour est ignoré par Amazon.

  • recurring=#recurring#

La programmation de ce paramètre est bien plus aisé par un scnéario puisqu'une liste déroulante vous permet de facilement choisir la récurrence. Mais cela peut être fait manuellement dans une commande action avec le codage suivant :

P1D=Tous les jours
XXXX-WD=En semaine
XXXX-WE=Week-ends
XXXX-WXX-1=Chaque lundi
XXXX-WXX-2=Chaque mardi
XXXX-WXX-3=Chaque mercredi
XXXX-WXX-4=Chaque jeudi
XXXX-WXX-5=Chaque vendredi
XXXX-WXX-6=Chaque samedi
XXXX-WXX-7=Chaque dimanche

reminder?text=#message#&when=#when

Cette commande d'ajouter un rappel au device dans lequel est créée la commande.

Voici les options :

  • when=YYYY-MM-DD HH24:MI:SS

exemple : 2019-12-31 21:36:00

  • text=#message#

Vous avez la possibilité de donner un titre à votre rappel.

whennextalarm?position=1&status=ON&format=hour

Cette commande permet de renvoyer la prochaine alarme du device dans lequel est créée la commande.

Attention, cette commande est une commande ACTION, elle doit être reliée à une commande INFO qui affichera le résultat, regardez l'explication en dessous de la description des options.

Voici les options :

position=x

  • Mettre 1 pour la prochaine alarme
  • 2 pour la suivant
  • et ainsi de suite

Par défaut, position=1 si non spécifié

status=x

  • Mettre ON pour prendre en compte uniquement  les alarmes actives
  • Mettre OFF pour prendre en compte uniquement les alarmes inactives
  • Mettre ALL pour prendre en compte toutes les alarmes

Par défaut, status=ON si non spécifié

format=x

  • Mettre hour pour avoir un résultat au format HH:MM (Attention, cet affichage est dangereux dans le cas où vous programmez des alarmes au dela de 24h, cela est possible avec les répétitions)
  • Mettre hhmm pour avoir un résultat au format HHMM
  • Mettre full pour avoir un affichage détaillé yyyy-MM-dd'T'HH:mm:ss.SSS

Par défaut, format=FULL si non spécifié

Nota : Si vous avez besoin d'un autre format, n'hésitez pas à me le demandez, je l'ajouterai dans la prochaine version.

Création de la commande INFO qui affichera le résultat de la commande whenNextAlarm

La commande INFO qui vous donnera le résultat de le la commande WhenNextAlarm sera créée automatiquement dès que le champ Nom de la commande Info se trouvant dans la colonne Résultat dans sera rempli.

Explication de l'intéraction entre la commande ACTION et la commande INFO

  • Quand vous lancez la commande ACTION, le serveur Amazon est interrogé et la résultat est affecté à la commande INFO
  • Quand vous lancez la commande INFO, Jeedom vous donnera donc le résultat de la commande ACTION correspondante

(Tout cela est conçu dans la même logique que le plugin Virtual)

Nota : S'il n'y aura pas d'alarme prochaine, le serveur répond "none".

 

whennextreminder?position=1&status=ON

Cette commande donne le prochain rappel, elle fonctionne exactement comme WhenNextAlarm.

deleteallalarms?type=alarm&status=all

Cette commande supprime tous les rappels et/ou alarmes du device dans lequel est créée la commande.

Voici les options :

type=x

  • Mettre alarm pour ne supprimer que les alarmes
  • Mettre reminder pour ne supprimer que les rappels
  • Mettre all pour supprimer les alarmes et les rappels

Par défaut, type=alarm si non spécifié

status=x

  • Mettre ON pour ne supprimer que les alarmes et/ou rappels actifs
  • Mettre OFF pour ne supprimer que les alarmes et/ou rappels inactifs
  • Mettre ALL pour supprimer toutes les alarmes et/ou rappels

Par défaut, status=ON si non spécifié

command?command=#command#

Cette commande envoie une commande au device dans lequel est créée la commande.

Deux manières d'utiliser cette commande :

  • Avec un scénario

En passant par un scénario, vous laissez command?command=#command# comme commande action et vous aurez une liste déroulante dans le scénario, la liste déroulante vous propose toutes les commandes possibles.

  • Avec une commande directe

Dans ce cas, c'est au niveau des commandes du device que vous allez créer une commande action par commande à envoyer à Alexa.

Vous utiliserez ainsi la synthaxe suivante : command?command=play pour lancer un play et command?command=pause pour faire une pause et ainsi de suite avec les commandes : pause play next prev fwd rwd shuffle repeat

radio?station=#station#[&volume=#volume#]

Cette commande lance une station de radio sur le device dans lequel est créée la commande.

Deux manières d'utiliser cette commande :

  • Avec un scénario

En passant par un scénario, vous laissez radio?station=#station# ou radio?station=#station#&volume=#volume# comme commande action et la posibilité de mentionner la statio de radio dans le scénario.

  • Avec une commande directe

Dans ce cas, c'est au niveau des commandes du device que vous allez créer une commande action.

Vous utiliserez ainsi la synthaxe suivante : radio?station=s2960 ou radio?station=s2960&volume=50 pour lancer la station s2960 (nostalgie)

  • Nota : Vous pouvez croisez ces deux modes de fonctionnement pour figer un des deux paramètres

Les stations :

Pour trouver les id des stations, allez sur le site https://tunein.com/radio/home/

Vous choisissez votre radio, et pour avoir l'id, cliquez sur partager, vous verrez dans le lien quelque chose qui commence par un s suivi de chiffres, c'est l'id.

Ecrire un commentaire (9 Commentaires)

Alexa-API Changelog / Todo List

alexaapi

Table des matières

Change log

Todo List :

Equipe et besoin d'aide

 

Change Log

Version : 2019-03-19 19:43:34

  • Modification du script alexa-remote.js pour prise en compte des autres serveurs Amazon (.es .de ...)
  • Modification mineure du message Alexa-API: * Server listening on port 3456 * dans alexaapi.js
  • Correction d'un bug mineur sur le contrôle d'erreur d'envoi de la commande Volume
  • Ajout de la commande action : command qui permet de lancer pause|play|next|prev|fwd|rwd|shuffle|repeat
  • Ajout de la commande Radio
  • Correction d'un bug à la création des commandes sur isVisible
  • Correction souci mineur sur les évènements contenant Radio+Volume
  • Ajout du format HHMM pour WhenNextAlarm
  • Intégration de setDisplay et setconfiguration/request dans la boucle de création automatique de la commande et non dans la mise à jour
  • Ajout des paramètres type et status à la commande DeleteAllAlarms

 

Version : 2019-03-11 18:36:14

  • Ajout dans la configuration d'options pour définir le serveur Amazon et le serveur Alexa, et ainsi rendre international le plugin
  • Augmentation du temps d'attente avant l'ouverture de la fenetre de chargement du cookie Amazon
  • Agrandissement (en hauteur) de la fenetre de chargement du cookie Amazon

 

Version : 2019-03-11 12:41:20

  • Création Cookie Alexa, changement de couleur du bouton qui informe de l'ouverture de la fenetre d'identification (Vert->bleu) avec cercle qui tourne
  • Création Cookie Alexa, diminution du temps attente ouverture popup 2000ms->1500ms
  • Création Cookie Alexa, augmentation du temps de génération du Cookie avant lancement du démon (3=>4 clignotements)
  • Création de la commande WhenNextAlarm qui dit quand aura lieu la prochaine alarme (explications)
  • Création de la commande WhenNextReminder qui dit quand aura lieu le prochain rappel (explications
  • Création d'une commande DeleteAllAlarms pour supprimer toutes les alarmes et tous les rappels d'un device

 

Version : 2019-03-07 19:09:17

  • Recalage de la largeur des colonnes des Commandes des équipements
  • Verrouillage des Commandes (Action ou Info)
  • Refonte de la grille des Commandes, possibilité d'avoir des commandes qui envoient des résultats dans des Commandes Info
  • Correction de la commande alarm?&when=#when#&recurring=#recurring# par alarm?when=#when#&recurring=#recurring#

Version Stable : 2019-03-05 20:05:48

Elle permet à ce stade de :

  • Scanner automatiquement tous les Echo du compte Amazon
  • Faire parler les Amazon Echo
  • Régler le volume
  • Programmer des alarmes et les supprimer
  • Programmer des rappels et les supprimer

 


Plein de Version Beta xx-02-2019

  • Correction mineure sur l'affichage des boutons permettant de générer le cookie Amazon
  • Beaucoup d'autres choses avant sortie de la première version stable

Version Beta 14-02-2019

  • Ajout de la génération automatique des commandes Speak et Volume
  • Refonte complète de la génération du cookie Amazon
  • Blocage du lancement du Daemon tant que le cookie n'est pas présent

Version Beta 12-02-2019

  • Ajout du volet de gauche (panneau latéral)
  • Ajout d'un CSS pour améliorer l'affichage des équipements
  • Bug : Kill initCookie.js remplace Kill Cookie.js

Version Beta 09-02-2019

  • Ajout automatique des équipements Amazon Echo
  • Détection du type de chaque équipement ainsi que de sa Présence

 Todo List

Bugs

  • Souci : A la génération du cookie, si le fichier n'est pas bien récupéré, il y a quand même le message Bravo

Améliorations

  • Toiletter les logs et reclasser en info/debug/...
  • Faire en sorte que les devices ajoutés par Amazon soient désactivés à la détection ( xx Alexa Apps, This Device, Tous les appareils)
  • Pour le Scan ou Santé, ajouter un message qui dit de générer le cookie quand il n'existe pas encore
  • Ajouter un bouton de Refresh pour Santé, pour avoir le "Présent" actualisé
  • Contrôler la présence des dépendances avant de pouvoir lancer le controleur de l'API Cookie-Alexa
  • A la génération du cookie, rallonger le clignotement
  • A la génération du cookie, changer la couleur du message "ouverture de la fenetre..." mettre bleu au lieu de vert et si possible avec le cercle qui tourne
  • Supprimer la colonne "Commande envoyée" dans le tableau des commandes (non utile)
  • Supprimer la colonne "ID" dans l'écran Rappels/Alarmes (non utile)
  • Remettre les boutons Tester pour les commandes Reminder et Alarm en mettant des données test dans le code
  • Corriger la commande alarm?&when=#when#&recurring=#recurring# par alarm?when=#when#&recurring=#recurring#
  • Trouver comment fonctionne table_cmd et comment sont classées les commandes dans le tableau
  • Voir pourquoi on ne peut pas déplacer les commandes dans le tableau des commandes
  • Agrandir un peu vers le bas la fenetre d'identification du cookie Amazon, quand il demande le controle captcha, on n'a pas le bouton de validation
  • Dans la commande whennextalarm, permettre d'ecrire l'option hour en majuscules ou minuscules

Evolutions

  • Ajouter aux devices uniquement les commandes qui sont supportées par chacun
  • Permettre d'avoir d'autres serveur que amazon.fr
  • Récupérer "'the last spoken voice command"
  • Permettre d'activer/désactiver les alarmes
  • Ajouter date/heure dans les logs
  • Ajouter un WhenNextTimer
  • Gestion des routines
  • Lancement de son via MP3 ou autre (pour générer une alarme intrusion)

Equipe et besoin d'aide

L'équipe est la suivante :

26350534  Sigalou Développeur généraliste, touche à tout. Concepteur du plugin, en appui sur les améliorations, corrections de bugs et autres évolutions.
 Nebz  Nebz Développeur confirmé, très présent sur l'appui à l'utilisation de NPM et des dépendances, plein de bonnes idées.
jbecker  Jbecker Développeur très confirmé et rigoureux dans la présentation et la simplification des scripts, assure le lien avec le script ioBroker

Toutes les bonnes volontées sont les bienvenues, travail collectif sur ce plugin.

Que vous soyez programmeur, développeur, utilisateur ou plein de bonne voloonté, il y a des choses à faire.

Nous aurions besoin de traducteurs pour rendre international ce plugin.

La documentation est à réaliser, des tutos probablement utiles ...

 

 

 
Ecrire un commentaire (0 Commentaires)

Liens directs vers ...