Closed fl0wfr closed 1 year ago
'--debug' nécessite que 'DISPLAY' soit définit à une adresse qui correspond à un Serveur X accessible depuis l'AppDaemon. Donc l'erreur que le "host display" ne peut être ouvert vient sûrement de là en mode débogue.
Personnellement j'ai "Nous rencontrons actuellement un problème de restitution de vos dernières consommations journalières. Nous mettons tout en oeuvre pour corriger cela rapidement." dans mon interface et je n'ai pas de nouvelles consommations depuis le 14 oct.
Dans le cas présent ce qui m'importe dans un premier temps c'est le "None" dans:
Previous 9990 m3 10 kWh 2023-10-11 06:00:00+02:00 from None
.
Mais cela veut simplement dire que la valeur précédente n'a pas été trouvée.
Donc il ne reste plus que "int is not subscriptable". Ce message n'est pas donnée avec la ligne ou cela était détectée et c'est étrange.
Je suggère de modifier localement le 'meters_to_ha_appdaemon.py':
script_args = ["python3", script, "-r"]
en
script_args = ["python3", "-m", "trace", "--ignore-dir=/usr/lib", "-t", script, "-r"]
Cela va lancer le script avec une trace ligne par ligne de l'éxecution ce qui permet de trouver le déroulement précis et normalement ce qui cause cette exception.
Dans la configuration, ajoutez également des fichiers que vous pourrez retrouver:
# optional (Default: None) - Set file for stdout of script call
outfile: /config/grdftest.log
# optional (Default: None) - Set file for stderr of script call
errfile: /config/grdferr.log
Je pense que ce sera grdferr.log qui contiendra la trace précise. Dans la trace il faut retrouver ce qui fait afficher ce "EE", et les lignes précédentes dont une a amené l'exception.
A partir de la on pourra remonter ce qui est juste un int et non une liste, puis proteger le code de ce cas.
Bonjour @mdeweerd ,
En effet je n'avais pas eu le réflexe d'aller vérifier dans mon espace GRDF et j'ai le même message que vous. J'ai tout de même fait les modifications, mais grdferr.log reste vide. Si besoin j'ai toute la trace dans grdftest.log, je peux vous la communiquer.
Merci pour le coup de main :)
J'évite de mettre mon email disponible sur internet. Une méthode de m'envoyer la trace c'est un message direct sur https://forum.hacf.fr/u/le_top/summary . Ou bien d'y laisse une adresse mél. et j'y communiques le mien. (Les spammers vont jusqu'a récupérer les adresses mél dans les dépôts!).
J'ai ajouté une option "trace: true" pour AppDaemon ce qui permet de déclencher la trace ligne par ligne - c'est bien dans le fichier du "stdout" et non "stderr".
C'était effectivement un souci côté GRDF, je ferme l'issue. Merci pour le coup de main :)
Pour trace et info, j'ai désormais la même chose.
Le fichier récupéré du serveur a le contenu suivant dans ce cas:
{"code":500,"message":"Internal Server Error"}
Soit aucune donnée de compteur et un serveur qui indique une erreur interne...
A voir si je peux y faire qqchse - l'erreur interne ne semble pas apparaître tout le temps mais très fréquemment au moins.
Bonne nouvelle: j'ai trouvé ce qu'il fallait évoluer pour être à nouveau compatible avec le service.
A mettre à jour dans votre instance!
Merci beaucoup pour le fix!
Bonjour à tous,
Tout d'abord merci pour le travail sur cette app, très pratique de pouvoir à nouveau collecter l'index de gaz :)
Je rencontre depuis une semaine un souci lors de la collecte GRDF (pas de souci pour Veolia), je n'ai plus aucune valeur qui remonte dans HA. Dans les logs je voyais ceci:
2023-10-18 23:26:53,185 : -- : Previous 9990 m3 10 kWh 2023-10-11 06:00:00+02:00 from None 2023-10-18 23:26:53,185 : EE : 'int' object is not subscriptable 2023-10-18 23:26:53,242 : OK : Close Browser 2023-10-18 23:26:53,244 : OK : Close Display 2023-10-18 23:26:53,245 : EE : Ended with error : // re-run the program with '--debug' option
Du coup j'ai relancé le call en mode debug, je vois ça dans les logs:pyvirtualdisplay.abstractdisplay.XStartError: Xephyr program closed. command: ['Xephyr', '-br', '-screen', '1280x1024x24', '-displayfd', '4', '-resizeable'] stderr: b'\nXephyr cannot open host display. Is DISPLAY set?
J'ai vérifié que les pré-requis étaient bien installés dans appdaemon ce qui est le cas, et j'avoue sécher sur la cause de cette nouvelle erreur. Quelqu'un aurait une idée d'où viendrait le souci?Merci!