J’ai commencé à développer le service EweLink (PR #719 ).
N’ayant pas de périphériques à ma disposition (le mien a cramé, mais est encore dispo “offline” dans le cloud).
Si des personnes, avec des périphériques non flashés, sont volontaires pour effectuer des tests, je suis preneur
Une fois le compte lié, je ne sais pas du premier coup où trouver mes devices, je retourne donc sur l’onglet device, et la quelques problèmes d’affichage.
Une fois que mes informations de comptes sont enregistrées, je ne sais pas comment refaire un scan (j’ai trouvé, il faut revalider la connexion).
Peut-être prévoir un bouton “scan” pour rafraîchir la liste.
Je pense également que les devices détectés ne devraient pas être affichés dans l’onglet devices, qui à mon sens liste les devices déjà intégrés dans Gladys (à confirmer avec @pierre-gilles)
Une fois tout configuré, mes devices ajoutés dans Gladys, la fonctionnalité “allumer/éteindre” ne fonctionne pas
Une erreur apparaît :
There was an error while polling device ewelink-1000b5e8ac-0
2020-04-03T11:56:01+0200 <error> device.poll.js:24 (DeviceManager.poll) { Error: EWeLink device is not currently online.
at EweLinkHandler.poll (/home/alex/NickDub-Gladys/server/services/ewelink/lib/device/poll.js:24:11) message: 'EWeLink device is not currently online.' }
Hors mon device est en ligne, et tout neuf !!
Sinon quelques évolutions à penser :
il faudra gérer l’indisponibilité du device (nouvelle fontionnalité attendue dans Gladys)
Prévoir d’ajouter plusieurs comptes ?
proposer la possibilité de mettre à jour le firmware (si possible ?)
J’espère que mes remarques te seront utiles.
Si besoin, je suis prêt à te partager mon compte EWeLink temporairement pour que tu puisses jouer avec.
Tu ajoutes un fichier .env à la racine du front, tu y colles DEMO_MODE=true.
Et tu complètes le fichier demo.json ppur avoir les réponses aux appels serveur que tu attends. Tu démarres le front, pas besoin du serveur.
Je suis d’accord dans l’idée, après je n’ai pas testé le service! L’essentiel, c’est que l’expérience utilisateur soit simple: il faut prendre l’utilisateur par la main, c’est tout ce qui compte.
Normal qu’il y ait autant d’erreur, le service est au tout début du dev
Qu’entends tu par « indisponibilité du device » ?
Je n’ai pas parcouru tous les posts, un lien qui en parle ?
La gestion multi-compte serait assez compliquée à gérer, car la connexion au compte se fait une fois pour récupérer un token qui sert à commander les périphériques.
En plus de stocker les identifiants au device, il faudrait à chaque commande, se connecter à nouveau pour récupérer ce token (ce qui est fait au démarrage du service, ou à la saisie des identifiants)…
Ça serait comme gérer plusieurs compte Telegram ou DarkSky…
Concernant la mise à jour, la librairie utilisée ne permet que de connaitre si un nouveau firmware est disponible. Peut-être dans une prochaine évolution, ça sera possible…
Ça serait super
Tu peux m’envoyer ça en MP ?
L’idéal serait d’avoir aussi accès à plusieurs type de périphériques.
Ok c’est franchement mieux !!!
J’ai toujours le problème de double message d’erreur lorsque je mets de mauvais identifiants.
Il reste également l’image, mais je vois que tu as lancé un sondage.
Pourquoi pas :
Sinon petite chose (je pousse le vice au max), j’ai testé sur Gladys, puis je suis allé sur l’app officielle, et depuis, ça ne fonctionne plus avec Gladys :
There was an error while polling device ewelink-1000b5e8ac-0
2020-04-04T21:32:04+0200 <error> device.poll.js:24 (DeviceManager.poll) { Error
at EweLinkHandler.poll (/home/alex/NickDub-Gladys/server/services/ewelink/lib/device/poll.js:26:11)
status: 500,
code: 'SERVER_ERROR',
error: 'EWeLink error: Authentication error' }
@Pti_Nico fais ce que tu veux avec mon compte, je l’ai créé uniquement pour tester ton service mais j’ai débranché mon device, si tu veux que je le rebranche, tiens moi au jus.
Merci @Pti_Nico, j’avais mon panier Amazon qui était prêt avec le module qui m’aurait permis de flasher mon sonoff basic… Plus besoin grâce à toi
Je viens de tester ton service sur mon unique sonoff (avec les bons identifiants, création du module, suppression, re-ajout…). ça fonctionne nickel, l’interface est clean, c’est super simple à utiliser… Le device fonctionne au poil avec Gladys.
Ensuite, j’ai modifier mes identifiants pour qu’ils soient erronés. ça fait planter Gladys complètement :
2020-04-17T21:26:07+0200 device.poll.js:23 (DeviceManager.poll) There was an error while polling device ewelink-100029cc19-0
2020-04-17T21:26:07+0200 device.poll.js:24 (DeviceManager.poll) Error401: EWeLink error: Authentication error
at EweLinkHandler.connect (/home/philippe/gladys-ewelink/server/services/ewelink/lib/device/connect.js:65:13)
at async EweLinkHandler.poll (/home/philippe/gladys-ewelink/server/services/ewelink/lib/device/poll.js:17:5)
at async DeviceManager.poll (/home/philippe/gladys-ewelink/server/lib/device/device.poll.js:21:5) {
status: 401,
code: ‹ UNAUTHORIZED ›,
message: ‹ EWeLink error: Authentication error ›
}
@PhilippeMA, j’ai jeté un œil au problème et comme l’indique les messages d’erreurs :
Si tes identifiants sont faux, impossible de poller.
Là, je ne vois pas comment corriger ça…
@AlexTrovato, un avis sur comment gérer ce type d’erreur ?
Sachant que ça peut se produire, le jour où un utilisateur va changer son mot de passe dans l’appli eWeLink, mais pas répercuter la modif dans Gladys…
Salut @Pti_Nico, désolé pour ce temps mort.
Le problème que je mentionnais est dans le cas où :
je me connecte depuis Gladys, j’obtiens un jeton unique (ex jeton_1).
puis je me connecte depuis l’application Android, j’obtiens un jeton unique (ex jeton_2)
lorsque je retourne sur Gladys, j’utilise encore mon 1er jeton (jeton_1) mais celui-ci n’est plus valide, hors je n’ai pas changé de mot de passe.
Il faudrait peut-être prévoir de réessayer 1 fois (1 seule) de se reconnecter (regenerer le jeton) dans le cas d’un code erreur 401. Si on reçoit une 401 même lors du second appel, alors on peut considérer que les identifiants sont invalides.
Et dans ce cas (identifiants invalides), garder l’information pour l’afficher sur la page du module (et pourquoi dans le future, envoyer une notification pour alerter l’utilisateur de l’impossibilité de se connecter à son compte).