TitiXsi Posté(e) le 16 novembre 2024 Signaler Posté(e) le 16 novembre 2024 De mémoire, j'ai le dernier code, j'ai un scénario qui vérifie si la qa est dans les choux. Elle m'informe d'aller voir le log avant un reset de la qa au bout de 2h. Là c'est vrai que je n'ai pas attendu... On verra l'année prochaine. De toute façon c'était plus pour vérifier cette histoire d'expiration date dans le token .. on avait du la discussion sur le décodage 😉
Lazer Posté(e) le 16 novembre 2024 Auteur Signaler Posté(e) le 16 novembre 2024 Je me suis peut être mal exprimé.... si dans le code de ton QA Enphase, tu n'as pas implémenté une routine qui détecte que le token est expiré pendant son fonctionnement (et demande en conséquence un renouvellement du token), alors il ne sera pas renouvelé, sauf au prochain démarrage du QA lorsque tu appelles à nouveau la fonction getToken(). Extrait de mon propre code : elseif response.status == 401 and not self.retryLogin then tools:warning("Need new token") self.retryLogin = true self.token = nil self:getToken({ et ça se trouve dans la fonction getEnvoyAPI() qui est appelée très régulièrement pour interroger l'Envoy.
TitiXsi Posté(e) le 18 novembre 2024 Signaler Posté(e) le 18 novembre 2024 (modifié) Hello, merci pour ton support sur le sujet, et je confirme que j'ai bien le code requis Du coup, je vais essayer de remettre l'ancien token et voir ce que ça donne Edit il reconnait bien le fait d'avoir besoin d'un nouveau token et il ne génère pas le nouveau token: ... Je vais creuser pour voir ou celà bloque... Modifié le 18 novembre 2024 par TitiXsi
TitiXsi Posté(e) le 19 novembre 2024 Signaler Posté(e) le 19 novembre 2024 @Lazer, j'ai testé avec les différentes QA enphase, la tienne, celle de Sankotronic et j'ai le même comportement. Je pense que Enphase à bloqué le génération de Token... ? Est-ce que tu as la possibilité de réimporter ta QA et celle de Sanko et de confirmer ?
Lazer Posté(e) le 21 novembre 2024 Auteur Signaler Posté(e) le 21 novembre 2024 C'est étrange... et inquiétant à la fois. Il faudrait que je fasse le test avec ma box de test, car je n'ai aucune envie de casser ma box de prod (même si bon... apparemment mon système PV produit 0 virgule 0 Watts depuis ce midi... merci la neige... et je ne suis même pas chez moi pour en profiter)
TitiXsi Posté(e) le 21 novembre 2024 Signaler Posté(e) le 21 novembre 2024 Inquiétant oui, car j'ai essayé 50fois avec les 3 qa et rien n'y faisait... Et en développant mon child de limite de validité, à un moment, il m'a généré un nouveau jeton... Surpris, j'ai recommencé, et ça a marché 3 fois puis plus rien... Bref, ça m'a motivé à développer mon child... Normalement tu ne vas rien casser. Au pire ça va saturer ton envoy...
Lazer Posté(e) le 3 mars Auteur Signaler Posté(e) le 3 mars Bon... bah.... 1 an plus tard... J'ai eu le problème du token expiré, et non renouvelé. En plus j'étais en déplacement aujourd'hui, coup de flippe en sortant le téléphone du mode avion, je vois la production à 0, alors que le soleil se levait au moment au décollage et que la météo annonçait une journée parfaite (comme sur toute la France d'ailleurs, assez incroyable, vue de malade sur les Alpes à plusieurs centaines de km à la ronde, magnifique... tout le monde a pu profiter ce soleil en ce jour Tempo Blanc.... d'ailleurs ils ne sont pas malins chez RTE cette année, après avoir cramé les jours rouges en décembre quand il faisait chaud, on a eu des jours blancs en février quand il faisait froid... et maintenant ils nous balancent des jours blancs alors qu'il fait soleil... du coup Tempo est encore plus rentable que l'année dernière !!) Bref, vite je vérifie sur les caméra, et non le disjoncteur n'est pas tombé. Le système APsystems a bien commencé à produire de son coté. L'application Enphase Enlighten (via le cloud) m'a permis de confirmer que les micro-onduleurs produisaient bien. Bref, pas eu le temps de m'en occuper avant ce soir en rentrant.... et là j'ai constaté qu'à chaque démarrage du QuickApp il tente d'obtenir un nouveau token, et se fait jeter... comme tu l'avais déjà constaté il y a quelques mois. J'ai réussi avec difficulté à générer manuellement un nouveau token en ligne, car depuis la passerelle Envoy en local, ça semble impossible maintenant. Une rapide rechercher sur les internets mondiaux semble dire qu'on ne peut plus générer le token en local... C'est très inquiétant pour l'avenir. Bref dans l'urgence j'ai copier/coller le token dans mon QA et c'est reparti. Dommage, pas de statistique aujourd'hui dans DomoCharts, c'était une (très très très très.... très) rare journée parfaite, avec une belle courbe en cloche. Au moins, au redémarrage du QA, il a mis à jour les compteurs de production d'énergie (kWh), donc l'information la plus importante n'est pas perdue pour mes statistiques quotidiennes
TitiXsi Posté(e) le 3 mars Signaler Posté(e) le 3 mars A si tu avais utilisé ta gestion du token dès le début... Blague à part, as tu essayé de supprimer la variable token dans la qa? J'avais fait cette manip et il avait régénèré et sauvé le nouveau token... Quoi qu'il en soit je suis rassuré sur mes modestes compétences de codeurs et je me dis que ce n'est pas isolé chez moi. Je suis d'autant plus rassuré sur le fait d'avoir codé le check d'expiration en jours avec son child. Au moins, 1 semaine avant j'irai changer le token manuellement pour éviter la flippe que plus rien ne fonctionne...
Lazer Posté(e) le 3 mars Auteur Signaler Posté(e) le 3 mars Oui j'ai essayé aussi, mais sans succès, et c'est logique car mon code tente d'obtenir un nouveau token à chaque démarrage, avant d'utiliser l'ancien. Donc que l'ancien soit réellement l'ancien ou bien un truc vide ou bidon, ça ne change rien, il se fait jeter en erreur HTTP 401. C'est une bonne idée la vérification de la durée de validité avec avertissement; mais à l'occasion j'essaierai quand même d'automatiser la récupération du token en ligne.... c'est ce que fait l'intégration pour Home Assistant. Reste le plus dur : faire en fort que cette occasion surviennent avant 1 an !
TitiXsi Posté(e) le 4 mars Signaler Posté(e) le 4 mars Un truc que je n'ai pas testé... Gardé le même token mais en modifiant uniquement la date pour voir comment se comporte enphase...
stipower Posté(e) le 4 mars Signaler Posté(e) le 4 mars Si vous voulez, j'ai déjà codé cette partie là. Mon token se réactualise toutes les heures sur ma Qapp.
Lazer Posté(e) le 4 mars Auteur Signaler Posté(e) le 4 mars Étrange... le token généré hier soir a bien fonctionné jusqu'à ce matin 10h précisément, depuis le QA se fait à nouveau jeter... ça commence à être relou cette histoire... 1
Lazer Posté(e) le 4 mars Auteur Signaler Posté(e) le 4 mars Y a un truc là... ça a encore sauté ce soir. Visiblement la durée de validité du token est de 12 heures seulement. EDIT : bon bah..... Trouvé ici : https://forum-photovoltaique.fr/viewtopic.php?p=774043&sid=96ec333f9d4ef781d5626f79dd55765b#p774043 Je cite l'auteur forum6691 : Citation Bon j'ai la réponse dans la doc d'enphase : NOTE: Tokens are valid for a finite time. •The token is valid for one year if the user is a system owner. •The token is valid for 12 hours if the user is an installer. Et comme je suis référencé "Installer", le token dure 12 heures Il est aussi écrit: If the installer and system owner credentials are used as a self-installer, then the web UI-based token retrieval outlined in this section will result in a token valid for 12 hours. The owner can contact Enphase Support to change the credentials from the installer credentials to the system owner credentials. Mais bon le profil user donne accés à moins de possibilité. Dilemme
TitiXsi Posté(e) le 4 mars Signaler Posté(e) le 4 mars Comment savoir en quel "mode" on est déclaré ? J'insiste, mais as tu essayé de simplement modifier la date dans ton token et de le recoder ?
Lazer Posté(e) le 4 mars Auteur Signaler Posté(e) le 4 mars (modifié) Est-ce que tu as réalisé ton installation toi-même (installer) ou bien est-ce que quelqu'un d'autre l'a fait pour toi (ce qui fait de toi le owner)... ça devrait répondre à la question. Car j'ai regardé vite fait sur mon compte en ligne, et je ne trouve pas où faire apparaitre l'information... après j'ai peut être mal cherché. Par contre je vois qu'on peut "inviter" des utilisateurs, c'est peut être ça l'astuce, créer un compte et l'inviter en consultation uniquement, et utiliser ce compte pour générer le token valide 1 an. J'ai essayé ce soir de modifier le timestamp d'expiration à la main, et pas moyen, le token réencodé en base64 n'est pas accepté par la passerelle, je suppose qu'ils ont renforcé le contrôle. Pour info j'ai découvert que je suis en version D8.2.4264 Modifié le 4 mars par Lazer
TitiXsi Posté(e) le 5 mars Signaler Posté(e) le 5 mars J'ai fait installer et j'ai fait la même déduction que toi car je n'ai pas plus trouvé l'information. Dommage pour le changement de date... Bonne idée pour l'invité... A essayer... J'ai le même firmware que toi.
TitiXsi Posté(e) le 5 mars Signaler Posté(e) le 5 mars Tiens.. est ce qu'on ne pourrait pas utiliser la demande d'accès à l'API comme le fait bdpv ou les autres appli... ? https://api.enphaseenergy.com/oauth_login
Lazer Posté(e) le 5 mars Auteur Signaler Posté(e) le 5 mars (modifié) La procédure officielle pour obtenir le token en ligne via l'API d'Enphase dans le cloud est donnée dans le PDF suivant : https://enphase.com/download/accessing-iq-gateway-local-apis-or-local-ui-token-based-authentication Je vais essayer de coder ça se soir, ça me saoule de changer le token 2 fois par jour, encore ce matin à 11h. EDIT : et aussi essayer avec un compte invité (non installer donc) IQ Gateway Local API or UI Access using Token-TEB-00060.1.0-EN-2023-08-14.pdf Modifié le 5 mars par Lazer
TitiXsi Posté(e) le 5 mars Signaler Posté(e) le 5 mars J'ai un code en c++ au besoin pour un esp32. Le token se génère encore bien tout seul. Tu veux regarder et le translater. Je n'ai pas regardé outre mesure étant donné que je ne me sers plus de ce machin.
Lazer Posté(e) le 5 mars Auteur Signaler Posté(e) le 5 mars Euh... merci... mais pas besoin non ? C'est bien documenté par Enphase dans le PDF, il y a juste une requête à faire en LUA. Le seul problème, c'est que ça dépend du cloud... donc en cas de panne d'accès Internet, de panne des serveurs Enphase, de changement de politique, ou que sais-je encore, on perdra l'accès au monitoring de notre production PV. Et ça c'est lamentable. Triste monde que celui dans lequel les fabricants de technologies high-tech nous rendent captifs APSystems c'est tout pourri en comparaison à Enphase, mais au moins on conserve l'accès 100% local... mais pour combien de temps ? Vu que eux aussi poussent les mises à jour sans prévenir...
Lazer Posté(e) le 5 mars Auteur Signaler Posté(e) le 5 mars Bon bon bon.... bah... Je suis un peu un boulet quand même. J'ai cherché, je ne comprenais pas, puis j'ai fini par piger le problème. La mécanique d'authentification dans mon QuickApp était bonne pour obtenir le token, et correspond bien à ce qui est documenté par Enphase. Ce que j'avais codé à l'époque est toujours valide. Mais en fait, le QA n'arrivait plus à obtenir le nouveau token pour 2 raisons : - j'ai changé l'adresse email de mon compte Enphase en cours d'année, ce que j'avais complètement oublié ! Mais cet email est utilisé par le QA pour l'authentification en ligne afin d'obtenir le token... sauf que je ne l'avais jamais changé dans les variables du QA ! - mon email comporte maintenant un caractère qui ne passe pas dans les données d'une requêtes HTTP de type POST, car il contient un signe +. J'ai donc été obligé de modifier une ligne dans mon QA pour ajouter un urlencode(). Et maintenant ça refonctionne, le QA a obtenu un nouveau token valable 1 an 2
TitiXsi Posté(e) jeudi à 13:39 Signaler Posté(e) jeudi à 13:39 (modifié) Yeah! L'important est d'avoir compris le problème pour le résoudre de façon pérenne. Ça m'arrive souvent d'avoir des caractères spéciaux qui foutent la merde, récemment encore sur du XML généré via du vba... Modifié jeudi à 13:39 par TitiXsi
Messages recommandés