Extraire des données avec la librairie LibTeleinfo pour esp32 de Charles-Henri Hallard
-
Bonjour à tous,
Comment extraire des données avec la librairie LibTeleinfo pour esp32 de Charles-Henri HallardJ'utilise et je teste la librairie citée dans le titre du sujet. ( V2.01 2020-08-11 )
Tout va très bien pour afficher les données mais je ne sais pas extraire des données reçues et vérifiées, pour les traiter ensuite.
Exemple simple : je veux surveiller l'intensité pour délester si nécessaire.
Comment extraire l'intensité qui a été enregistrée je suppose ? (ainsi que d'autres données)
Ne sachant pas le faire pour l'instant, j'ai créé "mon" tableau 2D et j'y place toutes les étiquettes et datas mais cela ne me semble pas logique.
Ainsi, je peux choisir et utiliser n'importe quelle information vérifiée à tout moment.Question 1 : Y a t-il une solution "plus propre" ? Comment faire ? un/des exemples svp ?
Nota :
Je ne dispose que de trames "Historiques" sur mon compteur Linky monophasé, pour des tests réels.
Je sais également me transmettre des trames fictives directement sans passer par le port série, ce qui est bien pratique pour réaliser des tests.
Je voudrais bien tester des trames "Standard" mais où les trouver ?
Je ne sais quasiment pas lire l'anglais.
Je suis retraité, presque octogénaire, pas de projet bien précisQuestion 2 : Quelqu'un pourrait-il me remettre une trame complète STANDARD et réelle ? (en MP ou fichier joint éventuellement)
exemple pour historique
<STX>
ADCO 031762023755 @
..... ...... .....
MOTDETAT 000000 B
<ETX>
Merci d'avance à quelqu'un qui pourrait m'aider. -
Il est pas simple de répondre à la question parce qu'il me manque des informations
je ne sais pas extraire des données reçues et vérifiées, pour les traiter ensuite
extraire ou ? dans quoi dans le code de l'ESP32 local ? Tu veux les envoyer ailleurs, MQTT/HTTP pour les traiter ? ...
Y a t-il une solution "plus propre" ? Comment faire ? un/des exemples svp ?
La librairie contient pas mal d'exemples et par exemple celui de la donnée qui change (pour ne faire le traitement que lorsque nécessaire) ici il suffit par exemple de comparer la donnée reçue à celle que tu attends (dans ton cas
IINST
par exemple) dans la callback dédiée.// Display values SerialMon.print(me->name); SerialMon.print("="); SerialMon.println(me->value); if (!strcmp_P(PSTR("IINST"), me->name) { // Ton traitement int i = atoi(me->value); // > 16 Ampères if (i >16) { // Delestage } }
Tu peux aussi attacher une callback sur une trame complète reçue et/reçue et différente et ensuite faire une boucle sur toutes les étiquettes comme dans cet exemple
Par ailleurs je ne suis pas un spécialiste de la documentation par manque de temps mais concernant la librairie téléinfo elle est quand même relativement bien documentée avec tous les exemples sur le repo officiel puis enfin sur le post dédié ici
Quelqu'un pourrait-il me remettre une trame complète STANDARD et réelle ?
As tu regardé du coté de tinfo replay tu as des exemples de trames complètes dans le dossier trames
-
Bonjour Charles, et très heureux de ta réponse rapide.
<quote>extraire ou ? dans quoi dans le code de l'ESP32 local ? Tu veux les envoyer ailleurs, MQTT/HTTP pour les traiter ? ... </quote>
Je m'explique :
Je lis et j'affiche les trames, j'imagine qu'elles sont en mémoire dans mon ESP32.
Je sais utiliser les callback (en boucle while)
Je ne sais pas aller rechercher, lorsque j'en ai besoin, une information bien précise. (ex . "IINST")En voyant le code sur ta réponse, je pense que tu as répondu à ma question.
C'est tellement simple !
il ne me reste plus qu'à tester. (m'amuser mais cela pourra surement servir à d'autres ?)Concernant ma question 2 : mea culpa. Je n'avais pas vu ce dossier trames.
C'est tout ce qu'il me fallait.Un peu de temps pour décanter, j'ai bien progressé et je t'en remercie.
(Je ne suis pas programmeur mais je me débrouille)J'ai d'autres questions plus fines à voir mais rien d'urgent.
(je n'ai pas encore fait de recherches et je ne voudrais pas "réinventer la roue")
Règles du délestage : intensités, durées, ...
Règles du "re lestage" : intensités, durées, ...
J'ai découvert Tasmota mais aucune expérience à ce jour. -
@Géryko Super si ça répond alors, pas programmeur mais tu maitrises les callback, respect, en C en plus c'est le plus fun
j'imagine qu'elles sont en mémoire dans mon ESP32
Oui mais seulement les valeurs de la dernière trame reçue, en gros tu as toujours les dernières données à jour.
J'ai découvert Tasmota mais aucune expérience à ce jour.
C'est surpuissant mais j'avoue faut un peu le permis de vol, mais la doc est plutôt bonne, faut juste se la taper et c'est pas toujours intuitif