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

Modif du 03/02/2022: pour tenir compte du passage de Jeedom en V4.2

Bonjour à tous, je ne sais pas si vous connaissez le petit script que j’ai fait et qui permet de traduire le code de la trame STGE d’un compteur Linky https://community.jeedom.com/t/traduction-du-registre-de-statuts-stge-du-linky/69989

Fichier Enedis qui explique les informations qui figurent dans le registre de statuts STGE, paragraphe 6.2.3.14 :
Enedis-NOI-CPT_54E.pdf (1,3 Mo)

Suite à une remarque pertinente de @Jean-Baptiste et comme apparemment le plugin téléinfo n’est plus maintenu j’ai cherché à intégrer mon script dans le plugin. @Jean-Baptiste m’a aussi fait remarquer que le plugin ne testait pas la conformité des trames reçues par le checksum en mode standard alors qu’il le fait bien en mode historique.

Je vous propose donc ici la modification de 3 fichiers afin de rajouter cette vérification du checksum en mode standard et donc éviter d’avoir par moment des passages à 0 sur certains compteurs qui faussent complétement les statistiques.

Avertissement préalable: je vous fournis les fichiers que vous devrez mettre à la place des anciens, il est fortement conseillé de renommer les anciens en .sauv par exemple afin de pouvoir facilement revenir en arrière.

Pour mettre en place ces fichiers vous pouvez utiliser le plugin JeExplorer.

Vous trouverez les 3 fichiers dans l’archive ci après, supprimez l’extension en .txt pour ne garder que le .zip :
modif teleinfo.zip.txt (25,0 Ko)

copiez le fichier « teleinfo.class.php » dans le répertoire html/plugins/teleinfo/core/class/

copiez le fichier « teleinfo.js » dans le répertoire html/plugins/teleinfo/desktop/js/

et enfin, copiez le fichier « teleinfo.py » dans html/plugins/teleinfo/resources/

J’ai aussi ajouté pour ceux qui en aurait besoin le fichier compatible avec Python V3

Ensuite, si vous voulez prendre en compte la traduction du champ STGE et faire apparaitre celle ci il faut cocher « création des commandes » sur la page de votre équipement

Pour que toutes les modifications soient bien prises en compte il vous faut redémarrer le daemon. Après quelques soucis de difficulté de redémarrage du daemon il y a une méthode infaillible chez moi, dans la page de configuration du plugin cliquez successivement sur (Re)démarrer dans le cadre daemon, là il passe chez moi à NOK. ensuite cliquez sur Sauvegarder dans le cadre Configuration juste en dessous du cadre daemon et enfin sur remettre niveau de log normal, afin d’éviter d’avoir des tonnes de log car en faisant cela ils passent en mode débug forcé. En gros cliquez sur 1 puis 2 puis 3 comme sur l’image ci dessous :wink:

N’oubliez pas de décocher « création des commandes » un fois tous les champs créés. Ensuite ils sont pas défaut pré cochés sur « afficher » et « historiser », à vous de voir ce que vous voulez y mettre.

Résumé des modifications ayant été apportées au plugin téléinfo:

  • traduction automatique du champs STGE du mode standard
  • traduction automatique du champs « RELAIS » qui indique la position de 8 relais (voir la doc Enedis)
  • intégration des champs de traduction du registre de statuts (STGE) avec description et sous type « autre » automatiquement au lieu de « numérique » par défaut
  • prise en compte du 1er champs qui avant ne l’était pas, VTIC chez moi
  • arrêt du doublon sur la prise en compte du dernier champs, ADSC
  • calcul et vérification de la concordance du checksum pour chaque champs en mode standard
  • non prise en compte des champs dont le checksum n’est pas correct en mode standard
  • Compatibilité avec Jeedom en V4.2 (pas tout essayé)

Faites en bon usage :wink:

2 « J'aime »

nouveau fichier teleinfo.py, petite erreur sur un binaire :slight_smile:

Bonsoir et merci pour ce travail.

N’y a t-il pas une erreur dans la procédure indiquée ci-dessus ?

Pour moi, le fichier teleinfo.py est a placer dans le répertoire html/plugins/teleinfo/resources/

Tu confirmes ?

Bonjour,

C’est bien à cet endroit.
Sinon, j’ai mis le fichier qui fonctionne avec python 3 (donc debian stretch et bullseye) sur github : https://github.com/JeanBaptiste-elec/plugin-teleinfo

Pour python 3, il faut aussi remplacer le fichier /plugin/teleinfo/ressources/jeedom/jeedom.py

Le fichier « teleinfo.class.php » est aussi différent.

J’ai aussi constaté que l’affichage de l’historique n’est plus correctement fait sous jeedom 4.2. J’y mettrai les modifications si je trouve la solution.

(voir ma configuration en fin de post)

Bonjour @Jean-Baptiste , @Noyax37 ,

Encore merci pour le travail accompli sur ce plugin qui est vraiment utile.
Je viens donc de faire la mise à jour en copiant les nouveaux fichiers tel qu’indiqué dans vos messages.

J’ai quelques petits soucis/questions que je vous soumet pour avoir votre éclairage :

  1. Je ne peux plus faire aucune modification dans mon equipement car j’ai systématiquement l’erreur " 500 : Internal Server Error" lorsque je fais Sauvegarde.
    Comme je viens de passer en Jeedom 4.2.7, je me demande si il y a un rapport avec la securité renforcée de cette version ?
    Pas sur que ca vienne du plugin Teleinfo mais qu’en est-il chez vous ?
  2. Indépendemment de cela, je n’ai toujours pas le champ ADSC (je ne l’avais pas avant non plus). Est-ce normal ?
  3. Parmi les champs crées, j’ai deux séries pour les Relais. J’imagine qu’il y a doublons ?
    Relais1 … 8 et Relais_1 … _8
    J’ai d’abord installé les nouveaux fichiers en Python 2 avant d’installer les Pythons 3. Ca vient peut être de cela ? Lesquels dois-je garder ? (sachant que pour le moement, je ne peux en supprimer aucun a cause de l’erreur 500).

Merci de votre réponse.

Ma configuration
1 - Raspberry Pi4B 4 Go - Raspbian GNU/Linux 10 (buster) 32bits (armv7l)
Jeedom version Stable 4.2.7
Plugin Teleinfo Stable 2021-02-04 01:01:47 (+ nouveaux fichiers Python 3)

2 - Raspberry Pi4B 8 Go - Debian GNU/Linux 10 (buster) 64 bits (aarch64)
Jeedom version Stable 4.2.7

Pour le point 1, Jeedom 4.2 met un peu la pagaille dans les « vieux » plugins tel que celui-ci. Il n’est possible que cela en soit la cause. Je vais essayer sur un raspberry de test. Disposer des fichiers log serait un bon plus (voir le log du serveur Apache).

Pour le point 2, est-ce que le collier est bien en mode standard ? En mode historique, c’est le champ ADCO qui est affiché. La modification doit être faite par le fournisseur d’énergie sur le portail Enedis SGE.

Pour le point 3, je regarde en fin de semaine (je suis actuellement en déplacement).

1 « J'aime »

Bonjour, oui je me suis un peu mélangé les pinceaux :wink:

Merci pour ton retour

pour le 1 j’ai le même problème. Est ce que le plugin non modifié provoque la même erreur (je n’ai pas encore essayé)?

Es tu en mode standard ou historique sur ton linky?

Point 3, c’est sons doute possible que ce soit le changement de fichier. Pour résoudre ça tu peux virer tous les champs relais et relancer la procédure pour les créer, bien évidemment une fois que le pb du point 1 sera résolu…

c’est bon j’ai corrigé pour le « internal 500 ».

Il faut mettre le nouveau fichier
teleinfo.class.php.txt (55,0 Ko) et relancer le plugin

1 « J'aime »

Bonjour,

Désolé, j’aurais effectivement du préciser : je suis en Linky Mode Standard.

Point 1 : je n’ai pas encore essayé de revenir aux fichiers initiaux pour constater le même problème (« 500 : Internal Server Error » ou pas. Je le fais dès que je peux. Mais comme la nouvelle version Jeedom 4.2.7 a changé beaucoup de choses quand aux aspects sécurité (ce qui est bien), il est possible qu’il y ai quelque chose à faire pour rendre le plugin compatible … a voir
Point 2 : c’est parce que vous parliez du champ ADSC que je me suis demandé pourquoi je ne l’avais pas de créé dans mes commandes.
Point 3 : Oui, supprimer toutes les infos relais puis les recréer, j’y avais pensé mais pour le moment, c’est impossible.

Ouahh super,
J’essaye de suite …

j’ai le même souci pour le champs ADSC. Je regarde ça ce soir, il y a moins urgence :wink:

Parfait :+1:

Je n’ai plus l’erreur 500 et je peux a nouveau éditer le plugin.
Merci.
A suivre pour les autres points …
Bonne journée

Le point 1 étant réglé, je suis maintenant bloqué sur le point 3.

Ne sachant pas lesquels conserver, j’ai supprimé les 2 jeux de 8 Infos Relais dans la page « Commandes » de mon compteur.
Mais à présent, je ne sais pas comment recréer le bon jeu de 8 Infos Relais.
J’ai arrêter/redémarrer le Daemon du plugin, rebooter mon Rasperry Pi, cocher/décocher la « Création de commandes » rien à faire ???
Comme ce n’est pas une nouvelle commande compteur, ce n’est pas surprenant que cela ne réapparaisse pas mais j’ignore comment relancer le processus de création de ces commandes.

Edit
Mais en fait, j’ai l’impression que le problème est que le plugin ne renvoie plus aucune info depuis le changement de fichier [teleinfo.class.php| de cet après-midi :confused:
En attendant, j’ai remis la version N-1 et cela refonctionne.

Merci d’avance de votre aide, votre avis.

Et puis une suggestion peut être à l’occasion d’une modif de fichier :

Gérer VTIC en String plutot qu’en Numérique. Ce serait plus correct il me semble.
La version actuelle est « 02 ».

qu’entends tu par « ne renvoie plus d’info »?

As tu suivi le mode opératoire pour intégrer les nouvelles infos? Je ne sais pas pourquoi mais si tu coches la case « création des commandes » alors cela fonctionne bien pour les commandes envoyées par le TIC mais pas avec celles que je calcule. Il faut que tu coches la case puis relancer le daemon sinon cela ne les prend pas en compte.

Pour ce qui est de la VTIC, tu as sans doute raison mais là je n’ai pas changé ce qui était fait. Si tu veux le passer en numérique tu peux aussi le faire directement dans les paramètres du champs. Pour moi une version est plutôt un chiffre mais tu as peut être raison. Je vais voir ça.

Bonjour,

Edit
Je viens de réinstaller le dernier fichier ‹ teleinfo.class.php › que tu avais transmis.
Tout semble fonctionner normalement :

  • Plus d’erreur 500
  • Remontée des téléinfos OK

Désolé pour mes retours erronés et encore merci.

1 « J'aime »

je viens de modifier les fichiers pour ta demande concernant la VTIC et l’ADSC. J’envoie ça dès que j’ai un peu plus de temps.

Bon, il me semble que j’ai quand même un soucis :thinking:

Je vais essayer d’être le plus clair possible.

Ma configuration actuelle.
Le plugin Téléinfo modifié des derniers fichiers (Python 3) avec le dernier ‹ teleinfo.class.php › qui permet de ne pas avoir le message « 500 : Internal Server Error » et permet donc d’éditer un équipement du plugin (mon compteur Linky en mode Standard).

En regardant le contenu du fichier « teleinfo.js », j’ai vu que les étiquettes pour les relais étaient du style {etiquette:"Relais_1",name:"Relais",unite:""},.
J’ai trouvé bizarre que dans les Commandes de mon équipement, j’avais :
Nom : Relais1 (et pas Relais_1) Sous-Type : Numérique Donnée : Adresse du compteur (et pas Relais) et cela pour les 8 (de Relais1 a Relais8).
Comme ca ne matchait pas, j’ai supprimé les 8 relais en espérant les recréer pour voir …
Et c’est la qu’il y a arrêt de la transmission des données Téléinfo.
J’ai essayé pas mal de manip pour redémarrer le plugin (arrêt/redémarrage du démon en suivant la procédure que tu avais donnée et même Désactivation/Réactivation du plugin) mais rien n’y fait …
Les 8 nouvelles commandes Relais ne sont pas recrées car ca semble bloqué.

Je joins les logs en complément (Apikey effacée):

Fonctionnement normal (avant d’avoir effacé les Commandes Infos Relais1… 8)
teleinfo_raw1 (fonctionnement normal).txt (16,0 Ko)

Fonctionnement 'bloqué) (après avoir effacé les Commendes Infos Relais 1 … 8)
teleinfo_raw4 (après activation plugin).txt (13,1 Ko)

J’espère ne pas me tromper en pensant qu’il y a un problème de code quelque part ou alors je fais une grosse bétise que je ne vois pas.
Qu’en pensez-vous . Merci d’avance.

Bon je continue et te soumet mes investigations.

Je viens de voir que le fichier modifié dernier ‹ teleinfo.class.php › qui permet de ne pas avoir le message « 500 : Internal Server Error » est pour ‹ python › et non ‹ python3 ›.
Du coup, deux endroits corrigés (en python3) dans le fichier et les données sont de nouveaux accessibles :slightly_smiling_face:

Les Commandes Infos Relais ont bien été recrées mais :

  1. les Données ne sont pas renseignées (je les ai passées en Relais manuellement)
  2. le sous-Type est numérique (je les ai passées en Autre manuellement)