Monitorer batteries Pylontech

Tu as quand même 100 en tension. Il doit y avoir un décalage qq part, ce n’est peut être pas 156 qu’il faut mais là ça va être à toi de trouver. Regarde dans ton terminal quelle est la tension réellement mesurée pour voir si tu peux identifier le décalage

@Noyax37

A oui désolé, les 100 c’est moi pendant un essai, j’ai mi cette valeur via le lien afin de voir si cela fonctionne depuis → http://‹ +ipjeedom+ ›/core/api/jeeApi.php?plugin=virtual&apikey=‹ +cmdapi+ ›&type=virtual&id=‹ +cmdidretour+ ›&value=erreur’

Donc ici c’est pas un décalage, dommage :slightly_frowning_face:

Ah zut, ce qui me gênait pour debugee c’est que ne savais pas faire des logs. Alors les tte que tu vois à la fin ça sert à créer une erreur pour faire afficher un message à jeedom. Enlève le # devant et sauvegarde ça va relancer le script

Pour créer une alerte et tester des paramètres tu peux essayer un truc comme ça :

$.fn.showAlert({message: "{{Le nom de l'équipement ne peut pas être vide !}}", level: 'warning'});

Et moi je ne maitrise vraiment pas le python :sweat_smile:
J’ai mi le bout de code juste au dessus de « tte » je vais ou pour voir les alertes ?

Ah oui, je ne suis pas du tout réveillé moi… Pfff là c’est pour du javascript… Désolé

Donc’pour python tu rajoutes au milieu des autres import en debut de fichier:

saisissez ou collez du code iciimport logging

Puis à l’endroit où tu veux tester une variable, par exemple pour vérifier la tension, tu rajoutes:

logging.error('tension : ' + str(tension))

Comme ça par exemple ligne 68:

Ensuite tu vas dans temps reel et tu filtre avec le nom du script, pylontech chez moi:

Bon alors j’avance, doucement mais j’avance. :grinning:
J’ai régler plusieurs problème notamment au niveau du scrpt j’avais des « espace » au lieu des « TAB » et visiblement c’est important, j’arrive a avoir des valeurs qui remonte dans le temps réel, mais toujours rien au niveau de l’affichage de mon virtuel.

J’aimerais pouvoir faire une sorte de « print_r » au niveau de mes lignes 72 à 75

Oui les espaces ou les tabulations c’est le côté très pénible de python, il faut absolument que ce soit toujours pareil sinon tu as des erreurs d’identation.

Ok, si tu as les valeurs et que ça ne remonte pas tu peux avoir plusieurs pb, le type de données de ta commande qui ne correspond pas à ce que tu lui envoies (numérique, texte, …), la clé API qui n’est pas la bonne, l’adresse qui n’est pas conforme (il me semble que tu as testé les 2 derniers points), ou …

Est ce que ta commande « état connexion » est à ‹ erreur ›? Si oui cela veut dire qu’il y a une exception qui a été géré dans le code. Si c’est le cas, pour tenter de voir où est le pb tu peux virer le ‹ try › et le ‹ except › + la ligne qui est après le except

Merci a nouveau pour le temps que tu m’accordes pour m’aider.
Oui le pb de type de données et clé API a été écarté avec mon test avec le lien. du moins pour la tension.

En ce qui concerne l’état de connexion j’ai aucune valeurs, ni OK ni Erreur.
Par contre quand je fais mis à jours de la valeurs j’ai user_login et user_ID, est-ce normal ?

Pour le lien je l’avais mi dans un navigateur, je viens de mettre une valeur en brut dans tension et elle ne remonte pas. Je regarde de ce coté, je sans que je ne suis pas très loin.

Je viens viens de faire fonctionner le tension

J’avais cela :

requests.get('http://'+ipjeedom+'/core/api/jeeApi.php?plugin=virtual&apikey='+cmdapi+'&type=virtual&id='+cmdidbat[i*4]+'&value='+tension)

J’ai modifier en :

requests.get('http://'+ipjeedom+'/core/api/jeeApi.php?plugin=virtual&type=event&apikey='+cmdapi+'&id='+cmdidbat[i*4]+'&value='+tension)

Je vais faire la modif sur les autres lien, par contre j’ai une erreur

[2023-11-01 08:45:05]INFO : Evènement sur la commande [Garage][Pylontech][Interropylontech] valeur : ERROR:root:tension : 48.542

Je viens en fait de voir que j’ai les mêmes pb que toi… Je t’avoue que je ne regarde pas tout le temps les valeurs. Par contre les interrogations détaillées pour les batteries fonctionnent bien

Je me souviens maintenant, le type a été changé avec une version de jeedom et j’ai dû oublier de modifier ce script alors que je l’ai fait pour les autres…

Mais non je l’avais fait. Tu as dû continuer avec une ancienne version du script

Oui effectivement je n’avais pas vu cette modif.
J’ai ajouté le sans de charge/décharge.
J’ai des décalage sur l’affichage de la 2ème batterie
Je ne comprends pas la logique de la valeur ici que j’ai mis à 152, c’est le nombre de caractères par ligne (avec les espaces) ?

		tension=str(float(rep[x+7+(152*i):x+12+(152*i)]) /1000)      # tension 3 chiffres apres la virgule sinon prendre x+11 au lieu de x+12 et diviser par 100 au lieu de 1000
		intens=str(float(rep[x+14+(152*i):x+19+(152*i)]) /1000)      # intensite
		temper=str(float(rep[x+21+(152*i):x+26+(152*i)]) /1000)      # temperature
		soc=rep[x+92+(152*i):x+94+(152*i)]      # soc
		base=rep[x+53+(152*i):x+62+(152*i)]		# sans de charge/decharge

Oui c’est ça, par contre si tu n’as qu’une seul batterie ça ne te sert à rien car au 1er passage i étant égal à 0…

Ça alimente bien tes commandes maintenant (au décalage près)?

J’ai deux batteries, oui j’ai un décalage sur la 2ème ligne

J’ai testé avec 155 qui devrait être le bon chiffre mais j’ai toujours un décalage

Compare avec une ligne de mon log avec le nombre 141 que j’utilise

1     49657  0      26000  23000  23000  3304   3316   Idle     Normal   Normal   Normal   65%      2020-12-21 22:22:39  Normal   Normal  

2     49675  0      26000  23000  23000  3295   3318   Idle     Normal   Normal   Normal   66%      2020-12-21 22:22:37  Normal   Normal  


C’est ce que j’ai fais