Je suggère une évolution du plugin : la prise en compte du status d’une request. Cela peut concerner plus de retours d’info que le seul qui me fait écrire ce message.
En effet, lorsqu’une remontée d’info est faite avec un statut « DISCARDED_NON_DEVICE_DIRECTED_INTENT » et un texte présent, le « Dernier dialogue » est saisi, alors qu’il s’agit de fait d’un faux positif. Il faudrait ne pas le prendre en compte, au même titre que le retour texte « Alexa » ou encore « ».
Petit truc vu aussi du coup sur les conditions, un test « Jacques a dit » est présent, et je ne vois pas à quoi cette feature correspond. Si quelqu’un a l’info ?
Dans l’historique Alexa, on peut voir les phrases émises, avec un statut (SUCCESS ou DISCARDED_NON_DEVICE_DIRECTED_INTENT).
Dans mon cas, mon Alexa dans mon bureau a entendu « Active l’alarme de la maison » avec SUCCESS et celui dans ma salle de bains « Active l’alarme à vingt heures » avec DISCARDED_NON_DEVICE_DIRECTED_INTENT.
Le HIC, c’est que mon Alexa de salle de bains s’est plantée de phrase. Le plugin n’a pas pris en compte l’erreur d’Alexa (statut DISCARDED_NON_DEVICE_DIRECTED_INTENT), a mis à jour Dernier dialogue et ça a déclenché mon scénario (trigger sur Dernier dialogue).
L’idée, ce serait de ne prendre en compte la modification que lorsque le statut est SUCCESS, et donc exclure les faux positifs d’Alexa du plugin.
Petite chose qui est peut-être liée : quelquefois (assez souvent tout de même) un scenario est déclenché plusieurs fois alors qu’un seul dialogue est effectué. Seul point commun que j’ai vu, c’est le nombre de SUCCESS vides (sans dialogue) qui suivent ma phrase OK dans l’historique.
Est-ce qu’un SUCCESS vide ne mettrait pas tout de même une partie de la commande Dernier dialogue à jour, déclenchant de fait le scenario vu que positionné sur « toujours répéter ».
Du style : c’est vide ? Je mets à jour la valeur avec la valeur précédente. De fait, la date de MAJ valeur serait update, et ça relancerait la scénario avec la même trigger value.
Après, c’est peut-être un effet de bord ?
Très régulièrement mes scénarios sont lancés plusieurs fois. alors même que la phrase de déclenchement n’est reçue qu’une seule fois. Des parades existent (une variable de début/fin pour éviter un double lancement, même sur la même seconde), mais ce n’est pas propre. Et je n’arrive pas à remonter précisément ce bug, le trouver et le répéter, ce me permettrait de fixer ça et te faire un PR.
Bon, ce dev’ n’a plus de raison d’être. La seule solution de contournement reste de mettre un sleep dans un scénario global pour contraindre de ne pas exécuter les autres appels durant un laps de temps. Chez moi, 7 secondes suffisent pour annihiler les multiples appels.
En effet, la lib a changé, et s’appuie sur une autre méthode d’écoute de l’API Alexa. Très clairement, on ne sait désormais plus faire de différence entre un appel réel ou erroné. activityStatus est mort et ne ressort plus avec la nouvelle méthode.