Modifications Plugin Téléinfo: checksum en mode standard + traduction du champ STGE + traduction du champs RELAIS

pas facile de faire 2 fichiers en même temps dont un que tu ne peux pas tester… J’ai dû faire une boulette dans celui pour Python 3. Je regarde demain.

En tout cas bravo pour t’en être sorti tout seul :wink:

Ok je viens de vérifier et je n’avais pas appliqué une des dernières modifs au fichier compatible python 3.

Essaye celui ci cela devrait aller mieux

teleinfo.py.compatible P3.txt (32,6 Ko)

@Eridani78 vient de se rendre compte à ses dépend que le fichier teleinfo.class.php est lui aussi différent avec python 3.

Je viens de mettre à jour le teleinfo.py car une des dernières correction n’y figurait pas… oubli de ma part

Je vais regarder si c’est possible de rendre le tout compatible P2 et P3 ça serait plus simple

Bonjour et merci pour le nouveau fichier teleinfo.py.compatible P3.txt

Pas encore installé mais j’ai testé vite fait son contenu.

  1. Il manque le décodage des mot18 et mot20 de la partie STGE (à partir des lignes 661) ?
    C’est normal ? un oubli peut être ? :wink:
  2. Après installation, le daemon ne redémarre pas.
    Erreur d’indentation à la ligne 194
  3. Après correction de l’erreur 2)
    Le daemon ne démarre toujours pas.
    Dans le log
Traceback (most recent call last):
File "/var/www/html/plugins/teleinfo/ressources/teleinfo.py", line 741, in <module> jeedom_utils.set_log_level(globals.log_level)
NameError: name 'jeedom_utils' is not defined

La, je ne sais pas corriger alors je te laisse la main …

Bonjour,

Est-ce que tu as bien utilisé ce fichier modifié :

Le fichier d’origine bloque l’exécution du script.

Sinon, j’avais effectivement modifié le chemin vers python3 dans teleinfo.class.php.
Ce chemin est également identique pour debian stretch.
J’ai aussi modifié le fichier ressources/install_apt.sh, lequel fonctionne sur les deux versions de debian.

@Noyax37 : quelles lignes ont été modifiées sur la dernière version? (le netbook sur lequel je faisait tourner pycharms a refusé de démarrer, je pense perdre un certain temps pour réinstaller tout ça)

@Jean-Baptiste , @Noyax37 ,

Bonjour et merci pour vos messages.

@Jean-Baptiste
Concernant le fichier Jeedom/Jeedom.py que tu proposes, il me semble qu’il existe une version à jour et j’imagine, compatible Jeedom v4.2, sur le GitHub Jeedom.
Je pense qu’il serait plus raisonable de travailler pour faire évoluer le plugin Teleinfo basé sur cette version (mais ce n’est que mon avis).
https://github.com/jeedom/plugin-template/blob/master/resources/demond/jeedom/jeedom.py

C’est d’ailleurs ce qu’a fait @Noyax37 dans le fichier teleinfo.py.compatible P3.txt qu’il m’a proposé hier.
Cela explique d’ailleurs l’erreur que j’obtenais (‹ jeedom_utils › is not defined) en essayant de le faire fonctionner alors que je n’avais pas mofifié mon Jeedom/Jeedom.py.

Ceci étant, même avec le Jeedom.py à jour, je bloque toujours sur des erreurs de mise au point de ce fichier.

Peut être faudrait-il coordonner les travaux pour qu’au final, ce plugin Teleinfo puisse à la fois fonctionner dans ce nouvel environnement Jeedom 4.2 et qu’il intègre également les évolutions très sympa que vous avez apportées (Translation STGE et RELAIS) plus peut être l’ajout du champ ADSC et VTIC en String :slightly_smiling_face:

Et peut être même une publication à terme d’une release Stable sur le forum, release je pense attendue par pas mal d’utilisateurs.
Votre avis ?

1 « J'aime »

Bonjour,
Je suis le sujet car utilisant la téléinfo ce plugin est indispensable pour moi.

+1 pour:

D’autant plus qu’il y a aussi @GiDom qui est sur le sujet
https://community.jeedom.com/t/demon-teleinfo-nok/78079/22?u=loustic03

« jeedom_utils » est défini dans jeedom.py, donc si cela ne fonctionne pas, c’est ce fichier qui est en cause.

Je n’ai pas testé le fichier jeedom.py du github jeedom. Mais celui fourni avec le plugin ne fonctionnait pas pour python 3 (mes modifications datent de septembre, je ne me souviens pas forcément de tout ce que j’avais fait).
Gis70 semble avoir les droits pour pousser une mise à jour officielle, je pense qu’il faut effectivement passer par ce canal.
Je commence à comparer mon fichier et celui proposé par Noyax37, je ne crains qu’il n’y ait que le miens qui fonctionne avec python 3.

@Noyax37 , @Jean-Baptiste, @loustic03,

Pour info je travaille à rendre sur le fichier teleinfo.py pour qu’il tourne dans l’environnement Jeedom 4.2 sans remontée d’erreurs.

1 « J'aime »

Je ne comprends pas trop, je n’ai pas de remontées d’erreurs avec ce fichier.
Juste un warning indiquant que urllib n’a pas de connexion sécurisée, comme dans les versions précédentes.

Le point critique fut le passage à debian bullseye, qui ne supporte plus python 2. Stretch perdra son support à plus où moins long terme.

Concernant Jeedom 4.2, ne fonctionnent plus l’onglet santé du plugin et l’image dans les historiques. Mais cela n’est pas lié à ces fichiers, juste visiblement aux droits qui ont été restreints.

Pour être plus productif, j’aurais préféré que l’on copie l’ensemble de mon repository sur une machine de test. J’ai fait le test sur un raspberry, Jeedom 4.1, ça fonctionnait.

ouf ça part un peu dans tous les sens là. Il faudrait se poser un peu pour essayer d’y voir clair. @Eridani78 , il faudrait que tu repartes avec la version developp du plugin et en changeant les fichiers proposés par @Jean-Baptiste

@Noyax37 , @Jean-Baptiste , @loustic03

Bonsoir,
J’ai travaillé sur les ficihiers du plugin Teleinfo et je vous propose ci-dessous le jeu de fichiers a installer ensemble à la place des précédents.
Je suis en Jeedom version 4.2.8, Linky Mode Standard et cela semble fonctionner chez moi.
Concernant le Mode Historique, cela devrait fonctionner également mais n’étant pas dans ce mode chez moi, je n’ai pas pu effectuer de tests ni de validation.

Procédure

  • Utiliser l’éditeur intégré à Jeedom (version 4.2) : Réglages/Système/Editeur de fichiers
  • Par précaution, renommer les fichiers origine en rajoutant .old à la fin
  • Supprimer le .txt a la fin des fichiers proposés et les importer en lieu et place de ceux d’origine
  • Relancer les dépendances (on ne sait jamais)
  • Relancer le Daemon

Notes

  • je suis parti des fichiers proposés par @Noyax37 mais qui ne fonctionnaient pas complètement (voir les échanges ci-dessus)
  • je me suis permis de renommer les commandes/infos en reprenant le texte intégral dans la doc Enedis (pour STGE et RELAIS)
  • j’ai une erreur dans le log qui apparait lorsque le plugin, qui après démarrage, bascule automatiquement des logs DEBUG aux logs INFO
ERROR : Error on send request to jeedom, return code 500

Pour le moment, j’ignore d’ou cela vient mais cela n’empêche pas la remontée des informations.

  • la commande ADSC n’est toujours pas crée. Je vais chercher comment la faire apparaitre.

Voila. Si cela peut vous être utile.

Edit du 2022.02.07

  • Jeedom passé en v4.2.9 : OK
  • Evolution de teleinfo.py.txt pour corrections mineures dans les logs
  • Evolution de teleinfo.class.php.txt pour mise a jour des champs des commandes
  • Ajout de jeeTeleinfo.php.txt pour faire apparaitre la commande ADSC (pour le mode Standard)
  • Je n’ai plus l’erreur dans les logs

Edit du 2022.02.08

  • Optimisation code & Optimisation noms de variables et commandes
    jeedom.py.txt (10,3 Ko)
    jeeTeleinfo.php.txt (8,2 Ko)
    teleinfo.js.txt (23,9 Ko)
    teleinfo.class.php.txt (53,7 Ko)
    teleinfo.py.txt (37,8 Ko)

  • Ajout modifications pour avoir de nouveau les images sur Panel (merci à @FBAF )
    Déplacer le répertoire panel (html/plugins/teleinfo/ressources/panel) dans le répertoire desktop et le renommer img (html/plugins/teleinfo/desktop/img)
    Remplacer le fichier panel.php par le fichier suivant :
    panel.php.txt (9,4 Ko)

Remarque
Pour ceux qui updateraient leur plugin avec les fichiers proposés et qui seraient en mode « Historique », je suis preneur d’un retour d’expérience car je n’ai pas pu tester mes modifications dans ce mode.
Merci

2 « J'aime »

Super travail :+1: :+1:

Salut @Eridani78 , merci pour ce travail. Il me semble que tu es en Python 3 sur ton jeedom, c’est ça?

Je n’ai pas regardé pour l’instant car j’étais HS les 3 derniers jours…

J’avais résolu le pb de l’affichage de l’ADSC en modifiant le nom du champs. As tu appliqué la même méthode? => je me réponds: tu l’as fait dans jeeTeleinfo.php en enlevant la condition ADSC. Pourquoi pas. Je ne sais pas pourquoi le concepteur du plugin avait mis cette condition c’est pour cela que je n’ai pas voulu y toucher mais si ça fonctionne chez toi alors c’est le plus cohérent :wink:

Il y a un truc que je ne pige pas dans tes modifications c’est pourquoi tu as passé le nom des infos stge en « name » ce qui rempli le champs « données » du plugin de cette valeur. Ce qui fait que tu vas afficher dans le plugin « STGE06 » par exemple à la place de « depassement_de_P_reference » contrairement à ce que j’avais fait ce qui me semblait plus lisible (voir copie d’écran ci dessous). Je conviens que ce que j’avais retenu en texte n’était peut être pas top mais c’était pour limiter les caractères.

image

++

Bonjour @Noyax37 ,
Oui, je suis en Python 3 sur mon systeme.

Concernant l’apparition du champ ADSC, c’est le fichier jeeTeleinfo.php qu’il fallait modifier.

Concernant, les noms, j’ai fait un gros travail d’homogénéisation dans la dernière version proposée ici.
Ainsi les champs rajoutés suite à l’intégration des parties décodage (au passage, c’est un super apport que vous avez proposé ici car cela améliore franchement le plugin) sont en accord avec le nom des champs de la spécification Enédis.
‹ STGE06 › n’est pas moins lisible qu’un champ comme ‹ ADSC › ou ‹ STGE › et cela optimize le code.
Par contre le libellé complet est repris dans la partie Donnée du plugin.
Ainsi tout est bien homogène.

je suis d’accord pour l’homogénéité mais lorsque sur le plugin il est écrit « STGE06 » en nom du champ cela cause moins et si on doit aller le chercher dans les données c’est moins facile. Remarque si on alimente un virtuel après on y met ce que l’on veut.

Ok on va laisser comme tu l’as proposé c’est sans doute le mieux.

Par contre on peut simplifier car dans teleinfo.py tu reprends les labels de chaque « name » pour le décodage STGE alors que le fait de l’avoir déjà rempli dans la liste_donnees du fichier teleinfo.js t’en dispense

J’avais un peu simplifié la partie « switcher » du teleinfo.py car certains étaient les mêmes alors pourquoi surcharger… Mais là c’est du détail

Tout cela est voulu.
Je ne l’ai pas dit mais j’ai aussi travaillé sur la lisibilité des LOGs.
Le ‹ label › dans le code python, c’est pour pouvoir l’afficher dans les logs :wink:

J’ai porté tes modifs chez moi et j’ai eu une erreur sur une des lignes de html/plugins/teleinfo/ressources/jeedom/jeedom.py en m’inspirant de @Jean-Baptiste ça a fonctionné. Voici le fichier qui fonctionne chez moi:
jeedom.py.txt (11,5 Ko)

Le fichier jeedom.py que je joins dans le package ci-dessus est une copie à l’identique du fichier faisant partie du template officiel (dernière version)
plugin-template/resources/demond/jeedom /

Je ne l’ai pas modifié et je pense que ce n’est pas une bonne idée de le modifier.

Par contre si tu as une erreur, c’est qu’il reste peut être quelque chose à adapter dans le code du plugin Téléinfo.

Ce serait bien que tu m’envoies une copie de l’erreur. Je pourrais regarder si je trouve quelque chose.

je peux refaire la manip mais c’était en gros une erreur sur la ligne 222 du fichier « except serial.SerialException, e: » et le mioen vient de là: https://github.com/NextDom/plugin-teleinfo/blob/develop/ressources/jeedom/jeedom.py

Ok je pensais avoir repris le tien mais apparemment non… Je ne dois pas être bien remis de mes émotions des derniers jours :wink:

Est ce qu’il y a quelqu’un en mode historique qui pourrait tester cette version du plugin: https://github.com/noyax/plugin-teleinfo/archive/refs/heads/decode_stge_et_checksum.zip

Merci d’avance.