Aymkdn / assistant-plugins

Des plugins pour les Assistant (comme Google Home, Cortana, Alexa)
https://aymkdn.github.io/assistant-plugins/
MIT License
92 stars 21 forks source link

Nouveaux plugins #182

Closed jzarca01 closed 5 years ago

jzarca01 commented 5 years ago

Hello,

Juste pour t'informer que j'ai crée deux nouveaux plugins:

Par ailleurs, assistant-deliveroo se base sur assistant-notifier pour communiquer avec l'utilisateur mais actuellement les plugins sont chargés dans l'ordre défini par le package.json, et vu que deliveroo est avant notifier il faut changer l'ordre à la main. Est-ce qu'il n'y aurait pas une meilleure solution ?

Merci, Jérémie.

Aymkdn commented 5 years ago

Salut,

Je regarderai demain tes plugins et je ferai des pull requests (sauf si tu veux m'ajouter comme contributeur) si y'a besoin de modifier des choses. Une fois que tout sera OK, je pourrai les ajouter sur le site !

Concernant ta question, je ne comprends pas en quoi c'est gênant l'ordre de chargement... Je regarderai ton code pour voir comment tu gères ça.

Je suis en soirée là, donc je vois tout ça demain 😉

Aymkdn commented 5 years ago

Par ailleurs, assistant-deliveroo se base sur assistant-notifier pour communiquer avec l'utilisateur mais actuellement les plugins sont chargés dans l'ordre défini par le package.json, et vu que deliveroo est avant notifier il faut changer l'ordre à la main.

Alors, déjà j'ai testé avec Node v6 et ça ne fonctionne pas à cause du async. Donc faudra que je précise qu'il faut au moins Node v8 pour faire fonctionner ton plugin (ce qui devrait être la grande majorité).

Ensuite, j'ai bien Notifier qui est chargé après Deliveroo :

[assistant] Assistant v2.0.5 : Chargement en cours...
[assistant] 2 plugins trouvés.
[assistant] Chargement du plugin 'deliveroo' (v2.0.0)
[assistant-deliveroo] Plugin chargé et prêt.
[assistant] Chargement du plugin 'notifier' (v2.1.1)
[assistant-notifier] Plugin chargé et prêt.

Mais pourtant ça ne cause pas d'erreur et j'ai bien Notifier qui me dit : "Un problème est survenu avec le traqueur" (étant donné que je n'ai pas de compte Deliveroo ^^). Donc je ne vois pas où est ton problème en fait ? T'as quoi comme erreur exactement ? À quel moment/niveau ?

Concernant le plugin pushover, quel est l'avantage par rapport à utiliser directement le service Pushover déjà fourni par IFTTT ? Car là tu fais Google Home -> IFTTT -> Pushbullet -> assistant-plugins -> Pushover, au lieu de Google Home -> IFTTT -> Pushover

jzarca01 commented 5 years ago

Le problème était au niveau de la méthode init

init(plugins) {
    this.plugins = plugins

A ce moment-là, this.plugins ne contient pas notifier puisqu'il n'est pas encore chargé. Du coup, lorsque j'exécute this.plugins.notifier.action(`Votre livraison en est à l'étape:....`) il ne le connait pas. Cependant, d'après ce que tu me dis this.plugins se met bien à jour à un moment sinon tu n'aurais rien pu entendre.

Concernant Pushover, je l'utilise au sein d'une autre branche de assistant-deliveroo pour m'envoyer des notifications push directement sur mon téléphone comme ceci

if (this.plugins.pushover)
        this.plugins.pushover.action(`Deliveroo`)
Aymkdn commented 5 years ago

Cependant, d'après ce que tu me dis this.plugins se met bien à jour à un moment sinon tu n'aurais rien pu entendre.

Oui oui ! C'est pour cela que je suis étonné que chez toi il ne fonctionne pas... Si je mets :

for (let key in this.plugins) {
  console.log(key)
}

Au début de async trackOrder ça m'affiche :

[assistant] Appel du plugin 'deliveroo'
assistant
bluetooth
deliveroo
freebox
ifttt
launch
notifier
ping
temperature-local
transport-montpellier
wait

Qu'est-ce que cela donne chez toi ?

Concernant pushover, je comprends mieux. Par contre, il n'est pas nécessaire. Tu peux utiliser le plugin IFTTT (que je viens de mettre à jour pour intégrer les paramètres et j'ai mis un exemple d'utilisation pour Pushover).

L'intérêt est que tu n'es pas obligé de créer une application Pushover (pour avoir le appKey), et ni d'installer/créer un plugin spécifique pour ça.

Il te suffit de faire :

if (this.plugins.ifttt)
        this.plugins.ifttt.action(`pushover`, {value1:"Titre de ma notification", value2:"Corps de ma notification"})

En ayant créé l'applet WebHook-PushOver qui va bien dans IFTTT (voir l'exemple sur https://aymkdn.github.io/assistant-plugins/?plugin=ifttt)

jzarca01 commented 5 years ago

C'est bon pour Deliveroo : https://www.npmjs.com/package/assistant-deliveroo

jzarca01 commented 5 years ago

Et pour Pushover, même si tu n'en vois pas l'utilité : https://www.npmjs.com/package/assistant-pushover

Aymkdn commented 5 years ago

C'est publié sur le site : https://aymkdn.github.io/assistant-plugins/?plugin=deliveroo

Merci ! :-)