Re: [Plugin Tiers][Sujet Principal] Myfox V2
Publié : 05 oct. 2019, 19:31
Tu n'est pas le seul, mais j'ai l'impression que le concepteur a mis la clef sous la porte. Et c'était un plugin payant, merci jeedom.
Forum sur Jeedom
https://www.jeedom.com/forum/
Oui ça fonctionne ici aussi.... j’ai développé ce plugin sur mon temps libre et ce n’est pas mon travail de base...xavax a écrit :Moi ça fonctionne ! Et je ne pense pas qu’il ait mis la clé sous la porte.
Envoyé de mon iPhone en utilisant Tapatalk
Je n’ai pas le problème, comme la majorité des utilisateurs... en tant que développeur j’utilise tous les jours le plugin ! Je n’ai jamais été banni et jamais rencontré ce problème.oozaer a écrit :Bonjour,
Mon application a été débloquée ce jour.
MyFox est très clair, si ça se reproduit, c'est banni définitif... Je trouve ça un peu dommage mais bon...
Je leur est également demandé quelle était la limite, si elle était journalière ou quotidienne mais aucune réponse sur le sujet.
J'ai sollicité le développeur, je me suis permis de citer ton pseudo étant donné que tu es également concerné (et vraisemblablement dans la même inquiétude que moi ) --> Je t'en ai envoyé un exemplaire également
Pour envoyer un mail, tu cliques sur le pseudo de la personne, et dans son profil, tu peux envoyer un mail.
Bonjour,gui59169 a écrit : ↑30 oct. 2019, 21:40Je n’ai pas le problème, comme la majorité des utilisateurs... en tant que développeur j’utilise tous les jours le plugin ! Je n’ai jamais été banni et jamais rencontré ce problème.oozaer a écrit :Bonjour,
Mon application a été débloquée ce jour.
MyFox est très clair, si ça se reproduit, c'est banni définitif... Je trouve ça un peu dommage mais bon...
Je leur est également demandé quelle était la limite, si elle était journalière ou quotidienne mais aucune réponse sur le sujet.
J'ai sollicité le développeur, je me suis permis de citer ton pseudo étant donné que tu es également concerné (et vraisemblablement dans la même inquiétude que moi ) --> Je t'en ai envoyé un exemplaire également
Pour envoyer un mail, tu cliques sur le pseudo de la personne, et dans son profil, tu peux envoyer un mail.
Le plugin a t-il déjà fonctionne pour vous ? Si non vérifiez les identifiants. Vous n’utilisez pas d’autres applis qui pourraient faire des appels sur l’api myfox?
Sur la page de configuration du plugin/démon, quelle est la valeur de « pause dans la boucle du démon « ?
Pour l’analyse pas mal , je vais apporter des modifs en local et tester. Ensuite je te ferais un retour. Mais je ne te promets rien dans l’immédiat car j’ai très peu de temps en ce moment ....oozaer a écrit :Bonjour,gui59169 a écrit : ↑30 oct. 2019, 21:40Je n’ai pas le problème, comme la majorité des utilisateurs... en tant que développeur j’utilise tous les jours le plugin ! Je n’ai jamais été banni et jamais rencontré ce problème.oozaer a écrit :Bonjour,
Mon application a été débloquée ce jour.
MyFox est très clair, si ça se reproduit, c'est banni définitif... Je trouve ça un peu dommage mais bon...
Je leur est également demandé quelle était la limite, si elle était journalière ou quotidienne mais aucune réponse sur le sujet.
J'ai sollicité le développeur, je me suis permis de citer ton pseudo étant donné que tu es également concerné (et vraisemblablement dans la même inquiétude que moi ) --> Je t'en ai envoyé un exemplaire également
Pour envoyer un mail, tu cliques sur le pseudo de la personne, et dans son profil, tu peux envoyer un mail.
Le plugin a t-il déjà fonctionne pour vous ? Si non vérifiez les identifiants. Vous n’utilisez pas d’autres applis qui pourraient faire des appels sur l’api myfox?
Sur la page de configuration du plugin/démon, quelle est la valeur de « pause dans la boucle du démon « ?
Je te remercie pour ton retour.
J'utilise le plugin depuis un bout de temps je n'avais jamais eu de problèmes avec jusque là.
Je n'utilise pas d'autres applis qui pourraient effectuer des appels sur l'api MyFox.
Je n'ai pas de notion de "pause dans la boucle du démon" dans la configuration du plugin
J'ai vérifié, le plugin est bien sur la même version que sur le market et je n'ai apporté aucune modification dessus.
--> Mise à jour au 03/11/2019
--> J'ai réinstallé le plugin aujourd'hui, et j'ai bien maintenant un Deamon, mais toujours pas de notion de "pause dans la boucle du démon"
--> Je ne comprends pas pourquoi ce n'était pas le cas...
--> cela ne change rien au final sur l'analyse ci-dessous, si tu l'avais déjà lue (j'ai juste changé maj() en pull())
--> J'en profite pour relever la remarque de gonsethse concernant le statut non OK :
à la ligne 53, tu utilises $this dans une fonction static. A mon sens cela ne peut pas fonctionner.
--> En commentant la ligne, ça fonctionne.
Sinon, j'ai bûché pas mal sur le plugin pour essayer de trouver l'origine du problème. Et voici mon analyse :
- dans la fonction pull(), tu boucles sur chacune des commande infos de chaque équipement actif et tu appelles la fonction execute()
- dans la fonction execute(), tu appelles une fonction getToken() qui vérifie si le token est renseigné dans la conf de l'eqLogic et en demande un nouveau si nécessaire
- soit via le refresh token
- soit via le nom d'utilisateur et le mdp (s'il est vide ou s'il est périmé)
- à la fin de l'appel à l'API,
--> tu enregistres via $this->setConfiguration() puis $this->save()
- soit avec des valeurs à vide en cas d'échec
- soit avec le token, sa validité - 5 minutes, et le refresh token
---> Je me pose une question :
Tu appelles $this->save()
--> De ce que j'ai compris en lisant la fonction native $eqLogic::save() :
--> cette fonction permet de vérifier certains points pour l'affichage et enregistre en bdd (via DB::save())
--> Aussi, la fonction $eqLogic::save() accepte un paramètre facultatif $_direct : ce paramètre qui est transmis à la fonction DB::save() (ligne 753 de eqLogic.class.php).
Dans la fonction DB::save(), si ce paramètre est à $true, alors la fonction postUpdate() n'est pas appelé (ligne 182 de DB.class.php).
Dans getToken, le paramètre n'est pas envoyé, donc postUpdate() est appelé.
Dans postUpdate, tu appelles checkCredential, dans lequel tu vérifie que le token est renseigné et non périmé, et si c'est le cas tu en demandes un nouveau
un peu plus tard dans postUpdate(), tu fait également un appel à getToken()
--> Cela signifie que si MyFox ne réponds pas correctement, on se retrouve dans une boucle qui effectue des demandes de token --> Ça peut donc justifier le fait que j'ai été blacklisté (suite aux nouvelles règle de MyFox début Septembre)
---> La question : y a-t-il une raison particulière pour que tu appelle $this->save() et non pas $this->save($true) ?
Aussi, autre point que j'ai relevé :
Dans mon log, je trouve des appels à l'API sans token qui ont forcément échoués et qui, par extension, ont vidé le cache et ont fait multiplié les appels API.
--> Peux-tu ajouter un blindage pour que si le token est vide, l'appel api n'est pas fait ?
Je suppose qu'un grain de sable à fait qu'il a été impossible de récupérer un token valide et que cela a entraîné une réaction en cascade
Pour éviter d'être blacklisté, est-il possible de désactiver l'eqLogic si la récupération d'un token échoue ?
Bonne journée
Olivier