Closed tthma closed 1 year ago
Avez vous laisser à 1min le temps de boucle ?
Peut être l'augmenter aussi le raspbery n'a peut être pas le temps de vider la mémoire.
Et comme de toute façon on a les données de la veille au lendemain toute les minutes sont pas nécessaires (j'avais mis une minutes pour quand on a un an de donnée à charger que ça prenne pas 20ans)
Je l'ai laissé plusieurs minutes travaillé, j'ai déjà supprimé le json tout à l'heure pour justement essayer de refaire un fichier tout neuf, j'attends de voir ce que ça donne, le plugin travail là
Voir en mettant 5min de boucle et en rafraîchissant les données dans eve toute les 5min SANS appuyer sur réinitialiser les valeurs je pense que c'est ça qui met le bazar
Je l'ai laissé plusieurs minutes travaillé, j'ai déjà supprimé le json tout à l'heure pour justement essayer de refaire un fichier tout neuf, j'attends de voir ce que ça donne, le plugin travail là
Mais je comprend pas si ça fonctionne correctement. Vous avez mis 01/08/2023 Il cherche les infos semaine par semaine donc en 4-5 min c'est réglé vous devriez avoir toute vos données depuis début août.
Alors ?
Bon bas je prend ça comme un résolu je vais clore le ticket
Excuse moi, non le problème n’est pas résolue, toujours pareil, j’étais pas mal occupé, j’ai oublié de répondre et je ne me suis pas repenche dessus
Ok je vais voir pour faire une maj pour les config déjà surchargé pour ajouter dans les paramètres de config une mémoire tampon plus petite Je vais faire ça demain si j'ai le temps
Je peux avoir le fichier config et la dernière erreur dans les logs svp ?
Oui, je t’envoie ça une fois chez moi après le message d’erreur tu l’as au debut du fil
[ { "accessory": "EnergyMeter", "firstDateRecord": "2023-01-02T15:24:00Z", "update_interval": 60000, "usagePointId": "", "name": "Linky Meter", "accessToken": "" } ]
Je viens de charger depuis 01/01/2022.
Soit plus d'un an de donnée sans aucun problème de heap.
Je pense qu'il y'a trop de truc qui tourne sur votre raspbery et ça fait peter un plomb au plugin.
Je vais voir pour réduire au maximum la mémoire utilisé par le plugin et ajouter un paramètre pour la mémoire tampon de l'historique.
En attendant je crois qu'il y a une ligne de commande pour augmenter la mémoire allouée à un node.js quand il y a des problèmes de heap Java justement même si c'est pas forcément une solution ça peut dépanner.
Je vais essayer d’éteindre tout mes autres conteneurs ce soir si tu n’as pas encore sorti la mise à jour
mais sur Eve ça ne se met plus à jour
J'aurais pas le temps de sortir une maj avant la semaine prochaine.
1° supprimer manuellement toute les mesures dans Eve. y a une option tout supprimer dans mesure
2° fermer eve m.
3° changer la date dans le fichier config de homebridge (rajouter un jour par exemple) Le plugin va détecter un changement de date et reprendre depuis le début.
4° restart homebridge.
5° retourner dans eve et swipe de haut en bas dans l'accessoire linky pour forcer la maj des données
Je viens d’essayer en éteignant tout mes autres conteneurs, j’attends maintenant
Pour l’instant il a déjà chargé 1 mois si j’en crois les logs
Il faut bien spam le swipe haut en bas dans eve pour ne pas avoir des trous dans les données si il y a bcp a récupérer
C’est un echec
J'ai trouvé ça sur un forum
"HomeBridge Settings > Environmental Variables > NODE_OPTIONS: I added --max_old_space_size=512"
Pareil un gars qui avait cet erreur comme ça du jour au lendemain.
512 c'est la valeur par défaut On peut l'augmenter pour tester en attendant que je fasse une maj ou qu'on trouve d'où viens le problème. (C'est des multiple à chaque fois) "node --max-old-space-size=1024 index.js #increase to 1gb node --max-old-space-size=2048 index.js #increase to 2gb node --max-old-space-size=3072 index.js #increase to 3gb node --max-old-space-size=4096 index.js #increase to 4gb node --max-old-space-size=5120 index.js #increase to 5gb node --max-old-space-size=6144 index.js #increase to 6gb node --max-old-space-size=7168 index.js #increase to 7gb node --max-old-space-size=8192 index.js #increase to 8gb "
Essayez avec 512 pour commencer voir si ça change quelque chose. Quel version de homebridge vous avez ? Je suis en 1.5.0 de mon côté.
D’accord j’essaye ça une fois devant le PC mais je suis en 1.6.1 perso
`root@raspberrypi:/var/lib/homebridge $ node --max-old-space-size=512 index.js node:internal/modules/cjs/loader:1080 throw err; ^
Error: Cannot find module '/homebridge/index.js' at Module._resolveFilename (node:internal/modules/cjs/loader:1077:15) at Module._load (node:internal/modules/cjs/loader:922:27) at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:81:12) at node:internal/main/run_main_module:23:47 { code: 'MODULE_NOT_FOUND', requireStack: [] }
Node.js v18.17.1 root@raspberrypi:/var/lib/homebridge $ ^C root@raspberrypi:/var/lib/homebridge $ ls accessories bwp91_cache homebridge.log persist auth.json config.json node_modules plugin-persist backups core package.json startup.sh root@raspberrypi:/var/lib/homebridge $ `
Ne fonctionne pas, je vais chercher voir si je trouve quelque chose
Il faut rentrer ici sur la photo
--max_old_space_size=512
Oui, c'est ce que je viens de trouver, j'ai essayé, j'attends voir si ça plante, merci en tout cas !
J'y pense pendant que ça charge, est ce que toi ton relevé de compteur est quotidien ou toutes les heures ?
L'api EDF Enedis ne renvoie les données que la veille pour le lendemain.
C'est pas du temps réel ou heure par heure.
En gros le jour même vous aurez les données de la veille.
Après si ils se mettent à faire du temps réel j'adapterai le code.
Là pour que ça soit fiable je prend la donnée du jour (une donnée par 1/2heure) et je rentre artificiellement la donnee toute les dix minutes pour avoir des courbes lisse et pas de trou dans le graphique
OKAY, s'était pour savoir car je sais que pour avoir le relevé toutes les heures faut l'activer chez ENEDIS ou notre fournisseur d'elec..
Et j'ai essayé avec 512 et 1024, toujours pareil
Bas alors là je vois pas du tout d'où ça viens. Peut être une mise à jour de node.js que j'ai pas. Je regarderai la semaine prochaine en mettant à jour mon homebridge à la dernière version.
Le problème c'est que quand je debug sur mon pc j'ai 64go de ram donc pas vraiment de problème de heap.
sur mon raspbery j'ai 4Go mais pas de problème.
La carte sd n'est t'elle pas pleine ?
Je vais voir pour faire une maj en incluant Google drive aussi.
M'en occupe semaine prochaine.
Mais là je ne vois vraiment pas d'où ça viens.
j'ai lancé à 2048, d'après OMV, Homebridge prend déjà 1giga de RAM
Il semble aller plus loin si j'en crois les logs mais je ne suis qu'en mars et déjà à 1,47 Go de RAM
Je sais pas ce que c'est omv.
Par défaut fakegato donne 4092 en mémoire tampon
Il faut swipe dans eve pour mettre à jour les données pendant la récupération de données sur homebridge pour vider au fur et a mesure.
Après au pire du pire juste pour essayer mettez la date du jour ou de la veille vous aurez pas d'historique de data avant mais au moins y'aura pas de problème de heap vue que vous récupérez les datas au fur et à mesure
Ça semble fonctionner, juste sur EVE je n'ai rien avant le 24 avril alors que normalement j'ai mis 1 janvier, mais bon on ne va pas chipoter...
C'est ce que je disais plus haut. Si vous swipez pas comme un dingue dans eve pour forcer la mise à jour des données dans l'accessoire. Une fois que la mémoire tampon est pleine dans le fichier d'historique il écrase au fur et à mesure les données donc si elle sont pas remonté dans eve elles disparaissent. Ça c'est valable quand vous charger un gros historique parce que quand c'est dur jour le jour y a moins de données donc pas d'écrasement. Mais quand la date initial au lancement est éloigné faut swipe pour remonter les données dans eve pour pas qu'elles disparaissent au fur et à mesure qu'il récupère de la data
Pour plus de facilité j'aurais pas du laisser le choix à l'utilisateur de saisir de date mais j'aimais bien l'idée de pouvoir charger une année entière de data.
Ah d’accord je comprends mieux, j’avais compris le contraire justement, qu’il ne fallait pas charger les données dans EVE tant que s’était pas terminé…
il faudrait le mettre en évidence avec un ATTENTION dans les réglages du plugin je pense
Le plugin a terminé mais il manque aujourd’hui 🥲
Moi aussi c'est normal Enedis ne fournis que les données de la veille.
Mais ça permet d'avoir un visu quand même.Même avec un jour de décalage.
Après plusieurs jour sans problème je vais clore ce ticket
Petit retour, j'ai cette erreur après un certain temps : `<--- Last few GCs --->
[140:0x52cee40] 678354 ms: Scavenge 886.6 (961.9) -> 884.2 (964.4) MB, 12.0 / 0.0 ms (average mu = 0.971, current mu = 0.939) allocation failure; [140:0x52cee40] 678428 ms: Scavenge 889.1 (964.4) -> 886.7 (967.2) MB, 12.7 / 0.0 ms (average mu = 0.971, current mu = 0.939) allocation failure; [140:0x52cee40] 678658 ms: Mark-sweep 891.7 (967.2) -> 889.0 (973.2) MB, 169.5 / 0.0 ms (average mu = 0.950, current mu = 0.866) allocation failure; scavenge might not succeed
<--- JS stacktrace --->
FATAL ERROR: Reached heap limit Allocation failed - JavaScript heap out of memory`
Je précise que j'ai un raspberry pi 4 avec 4go de RAM donc bon... j'ai essayé de réduire la date de départ mais toujours cela
Originally posted by @Gabin85 in https://github.com/tthma/homebridge-linky-enedis-meter/issues/14#issuecomment-1701360235