Trames corrompues MQTT
-
un bug dans la com Linky/Denky peut créer des tags erronés
C'est impossible c'est bien ça le soucis, le tag n'est "enregistré" que si la checksum est bonne c'est donc après que le problème se produit, quelque chose vient corrompre la table ou lors de l'envoi
j'ai fait une PR pour revérifier cette checksum avant l'envoi via MQTT, comme ça si ça se corromps après ça ne sera pas pris en compte.
Tu pourrais essayer cette version tasmota32-teleinfo.bin pour voir ?
Par ailleurs une nouvelle option pour voir les erreurs dans la Web UI
EnergyConfig Stats 1
Tiens nous au courant
-
@OuiLinky said in Trames corrompues MQTT:
Personnellement j'ai déjà observé des trames au checksum valide mais complètement erroné.
tu veux dire une ligne (la checksum étant par ligne) ? Intéressant, néanmoins je doute que ca vienne du compteur en lui-même mais je vois pas bien hormis un bug coté libraire comment c'est possible.
Le calcul est assez basique néanmoins on ne peut pas exclure le risque d'une bonne checksum avec mauvaise étiquette mais ça doit être un très mauvais concours de circonstance.
-
Merci pour toutes ces réponses.
Comment installer la version dans mon Denky?
Quel outil pour transférer?
-
-
Youpi, plus rien ne marche
J'en conclus que ma ligne est excessivement parasitée et qu'il faut que je revoie le cablage. D'un autre côté, commment cela pouvait il fonctionner?
Je pense que l'ancien Firmware ne voyait rien.
00:00:00.003 HDW: ESP32-PICO-V3-02 (PSRAM) 00:00:00.052 UFS: FlashFS mounted with 4396 kB free 00:00:00.076 CFG: Loaded from File, Count 120 00:00:00.086 QPC: Count 1 00:00:00.240 BRY: Berry initialized, RAM used=4071 bytes 00:00:00.314 CFG: Energy loaded from file 00:00:00.315 NRG: Init driver 15 00:00:00.325 Project tasmota - Tasmota Version 12.4.0.1(teleinfo)-2_0_7(2023-02-27T16:47:33) 00:00:00.327 TIC: RX on GPIO8, baudrate 9600 00:00:00.329 TIC: Raw mode enabled 00:00:00.340 TIC: Sending only one frame over 14 00:00:01.201 WIF: Connecting to AP1 LoEtLo Channel 7 BSSId C0:06:C3:69:A2:B2 in mode 11n as Linky-5592... 00:00:01.992 WIF: Connected 00:00:02.251 HTP: Web server active on Linky-5592 with IP address 192.168.68.20 09:49:30.260 MQT: Attempting connection... 09:49:30.297 MQT: Connected 09:49:30.301 MQT: tele/Linky/LWT = Online (retained) 09:49:30.303 MQT: cmnd/Linky/POWER = 09:49:30.308 MQT: tele/Linky/INFO1 = {"Info1":{"Module":"Denky D4 (v1.1)","Version":"12.4.0.1(teleinfo)","FallbackTopic":"cmnd/DVES_D6D5D8_fb/","GroupTopic":"cmnd/tasmotas/"}} 09:49:30.323 MQT: tele/Linky/INFO2 = {"Info2":{"WebServerMode":"Admin","Hostname":"Linky-5592","IPAddress":"192.168.68.20","IP6Global":"","IP6Local":"fe80::3283:98ff:fed6:d5d8"}} 09:49:30.337 MQT: tele/Linky/INFO3 = {"Info3":{"RestartReason":"Software reset CPU","BootCount":20}} 09:49:30.350 MQT: stat/Linky/RESULT = {"POWER":"OFF"} 09:49:30.355 MQT: stat/Linky/POWER = OFF 09:49:32.492 LibTeleinfo::checkLine frame format error, total=1 09:49:32.894 QPC: Reset 09:49:33.902 MQT: tele/Linky/STATE = {"Time":"2023-02-28T09:49:33","Uptime":"0T00:00:07","UptimeSec":7,"Heap":168,"SleepMode":"Dynamic","Sleep":50,"LoadAvg":19,"MqttCount":1,"Berry":{"HeapUsed":3,"Objects":45},"POWER":"OFF","Dimmer":0,"Color":"000000","HSBColor":"0,0,0","Channel":[0,0,0],"Scheme":0,"Width":1,"Fade":"OFF","Speed":1,"LedTable":"ON","Wifi":{"AP":1,"SSId":"LoEtLo","BSSId":"C0:06:C3:69:A2:B2","Channel":7,"Mode":"11n","RSSI":68,"Signal":-66,"LinkCount":1,"Downtime":"0T00:00:03"}} 09:49:33.956 TIC: bad checksum for SMAXSN 09:49:33.957 TIC: bad checksum for SMAXSN1 09:49:33.957 TIC: bad checksum for SMAXSN2 09:49:33.966 MQT: tele/Linky/SENSOR = {"Time":"2023-02-28T09:49:33","ENERGY":{"TotalStartTime":"2023-01-29T09:53:32","Total":1259.411,"Yesterday":27.862,"Today":15.406,"Period":[0,0,0],"Power":[237,0,0],"ApparentPower":[237,0,238],"ReactivePower":[0,0,238],"Factor":[1.00,0.00,0.00],"Voltage":[237,238,238],"Current":[1.000,0.000,1.000],"Load":1},"TIC":{"ADSC":"022276116693","VTIC":2,"NGTF":"TEMPO","LTARF":"HP BLANC","EAST":1259411,"EASF01":918154,"EASF02":108799,"EASF03":106299,"EASF04":110144,"EASF05":8101,"EASF06":7914,"EASF07":0,"EASF08":0,"EASF09":0,"EASF10":0,"EASD01":1032554,"EASD02":226857,"EASD03":0,"EASD04":0,"IRMS1":1,"IRMS2":0,"IRMS3":1,"URMS1":237,"URMS2":238,"URMS3":238,"PREF":12,"PCOUP":12,"SINSTS":479,"SINSTS1":281,"SINSTS2":38,"SINSTS3":158}} 09:49:35.442 LibTeleinfo::checkLine frame format error, total=2 09:49:36.458 TIC: bad checksum for SMAXSN 09:49:36.459 TIC: bad checksum for SMAXSN1 09:49:36.460 TIC: bad checksum for SMAXSN2 09:49:36.461 TIC: bad checksum for SMAXSN3 09:49:36.472 TIC: bad checksum for SMAXSN-1 09:49:36.473 TIC: bad checksum for SMAXSN1-1 09:49:36.474 TIC: bad checksum for SMAXSN2-1 09:49:36.485 TIC: bad checksum for SMAXSN3-1 09:49:36.485 TIC: bad checksum for CCASN 09:49:36.486 TIC: bad checksum for CCASN-1 09:49:36.487 TIC: bad checksum for UMOY1 09:49:36.498 TIC: bad checksum for UMOY2 09:49:36.499 TIC: bad checksum for UMOY3 09:49:36.500 TIC: bad checksum for FPM1 09:49:37.615 LibTeleinfo::checkLine frame format error, total=3 09:49:39.438 TIC: bad checksum for SMAXSN 09:49:39.439 TIC: bad checksum for SMAXSN1 09:49:39.440 TIC: bad checksum for SMAXSN2 09:49:39.441 TIC: bad checksum for SMAXSN3 09:49:39.452 TIC: bad checksum for SMAXSN-1 09:49:39.453 TIC: bad checksum for SMAXSN1-1 09:49:39.454 TIC: bad checksum for SMAXSN2-1 09:49:39.465 TIC: bad checksum for SMAXSN3-1 09:49:39.466 TIC: bad checksum for CCASN 09:49:39.467 TIC: bad checksum for CCASN-1 09:49:39.468 TIC: bad checksum for UMOY1 09:49:39.479 TIC: bad checksum for UMOY2 09:49:39.480 TIC: bad checksum for UMOY3 09:49:39.482 TIC: bad checksum for FPM1 09:49:40.094 LibTeleinfo::checkLine frame format error, total=4
-
@labu73 j'ai fait un fix vite fait y'a peut être des soucis, tu peux taper dans la console la commande
EnergyConfing Stats 1
et mettre une copie de l'écran d'accueil après ? -
Il passe une trame de temps en temps, ce qui met à jour mon HA.
Sinon, voici l'écran et les états depuis 2h
-
@labu73 yes tu as raison je viens de tester chez moi en mode standard j'ai le meme soucis, je vais regarder ça
-
Merci d'avance, j'aime être le beta testeur moi qui passe mon temps à me faire debugger mes programmes automatismes et robotique industrielle.
Bon courage,
Laurent
-
Tout est rentré dans l'ordre avec cette PR le temps que ce soit mergé et build dans tasmota-special voici le FW à flasher (ESP32 seulement)
-
@Charles
Tout est rentré dans l'ordre, merci. -
Bonjour à tous
Je rencontre également des problèmes de checksum récurrents bien que j'ai déplacé mon module au plus prés du compteur
12:13:21.043 TIC: bad checksum for FPM2 12:13:21.046 TIC: bad checksum for SMAXSN 12:13:21.048 TIC: bad checksum for DPM2 12:13:21.050 TIC: bad checksum for SHNSTS 12:13:21.051 TIC: bad checksum for UMOY1 12:13:21.063 TIC: bad checksum for EASD02 01203695 12:13:21.065 TIC: bad checksum for SL@XSN 12:13:21.070 LibTeleinfo::checkLine Err checksum 0x49 != 0x2E (total errors=3788) 12:13:21.073 LibTeleinfo::checkLine Err checksum 0x52 != 0x27 (total errors=3789) 12:13:21.085 LibTeleinfo::checkLine Err checksum 0x23 != 0x33 (total errors=3790) 12:13:21.287 LibTeleinfo::checkLine Err checksum 0x33 != 0x34 (total errors=3791) 12:13:21.290 LibTeleinfo::checkLine Err checksum 0x24 != 0x25 (total errors=3792) 12:13:21.302 LibTeleinfo::checkLine Err checksum 0x39 != 0x3A (total errors=3793) 12:13:21.304 LibTeleinfo::checkLine Err checksum 0x41 != 0x42 (total errors=3794) 12:13:21.316 LibTeleinfo::checkLine frame format error, total=879 12:13:21.318 LibTeleinfo::checkLine Err checksum 0x2D != 0x3F (total errors=3795) 12:13:21.331 LibTeleinfo::checkLine Err checksum 0x39 != 0x3B (total errors=3796) 12:13:21.333 LibTeleinfo::checkLine Err checksum 0x2C != 0x3D (total errors=3797) 12:13:21.346 LibTeleinfo::checkLine Err checksum 0x2C != 0x29 (total errors=3798)
je viens d'essayer le firmware mais impossible de flasher car erreur suivante "Invalid file signature"
Merci pour votre aide !!!
-
-
@Charles c'est bien une ESP32
Par ailleurs j'ai téléchargé le fichier "tasmota32c3-teleinfo.bin" et j'ai une erreur "Upload failed. Enable logging 3" et j'ai tenté avec "tasmota32-teleinfo.factory.bin" et j'ai ""Invalid file signature" en erreur ...
-
@Charles complément ...
c'est bien une ESP32 et j'ai tenté la mise a jour par la web UI ... (c'est mieux quand on lis les questions jusqu'au bout !)
Finalement j'ai flashé "en dur" et ça a fonctionné mais j'ai toujours des erreurs de checksum ...
Y'a t'il un lien avec le fait que les trames MQTT ne sont pas formatées en JSON ?
je m'explique la première trame reçue par le broker est bien en JSON mais pas les suivantes ...Merci
-
Vu que je suis en Tempo triphasé, mon compteur cause beaucoup mais avec un bon format json
16:20:51.039 MQT: tele/Linky/SENSOR = {"TIC":{"ADSC":"022276116693","VTIC":2,"NGTF":"TEMPO","LTARF":"HP ROUGE","EAST":1291834,"EASF01":918154,"EASF02":108799,"EASF03":121563,"EASF04":122694,"EASF05":8101,"EASF06":12523,"EASF07":0,"EASF08":0,"EASF09":0,"EASF10":0,"EASD01":1047818,"EASD02":244016,"EASD03":0,"EASD04":0,"IRMS1":1,"IRMS2":1,"IRMS3":1,"URMS1":241,"URMS2":241,"URMS3":241,"PREF":12,"PCOUP":12,"SINSTS":518,"SINSTS1":228,"SINSTS2":125,"SINSTS3":162,"SMAXSN":7010,"SMAXSN1":2560,"SMAXSN2":2080,"SMAXSN3":2360,"SMAXSN-1":7010,"SMAXSN1-1":2830,"SMAXSN2-1":2100,"SMAXSN3-1":2330,"CCASN":390,"CCASN-1":504,"UMOY1":240,"UMOY2":241,"UMOY3":239,"STGE":"833A5401","DPM2":0,"FPM2":0,"PRM":2147483647,"RELAIS":0,"NTARF":6,"NJOURF":0,"NJOURF+1":0}}
J'ai encore des trames bizarres sur la fin mais il semble que cela reste un json correct voir le tag 30300113310000 en fin de trame après quelques temps
16:12:47.687 MQT: tele/Linky/SENSOR = {"TIC":{"ADSC":"022276116693","VTIC":2,"NGTF":"TEMPO","LTARF":"HP ROUGE","EAST":1291776,"EASF01":918154,"EASF02":108799,"EASF03":121563,"EASF04":122694,"EASF05":8101,"EASF06":12465,"EASF07":0,"EASF08":0,"EASF09":0,"EASF10":0,"EASD01":1047818,"EASD02":243958,"EASD03":0,"EASD04":0,"IRMS1":1,"IRMS2":1,"IRMS3":1,"URMS1":240,"URMS2":242,"URMS3":240,"PREF":12,"PCOUP":12,"SINSTS":504,"SINSTS1":205,"SINSTS2":137,"SINSTS3":161,"SMAXSN":7010,"SMAXSN1":2560,"SMAXSN2":2080,"SMAXSN3":2360,"SMAXSN-1":7010,"SMAXSN1-1":2830,"SMAXSN2-1":2100,"SMAXSN3-1":2330,"CCASN":390,"CCASN-1":504,"UMOY1":239,"UMOY2":240,"UMOY3":239,"STGE":"833A5401","DPM2":0,"FPM2":0,"PRM":2147483647,"RELAIS":0,"NTARF":6,"NJOURF":0,"NJOURF+1":0,"30301131000":237}}
Je continue de surveiller cela, mais pour le moment je récupère des trames cohérentes.
MErci
-
@labu73 Aucune amélioration de mon coté ... il me semble que @Charles a évoqué un probleme sur les trames standard ...
Capture d’écran 2023-03-01 à 18.25.53
Et en sortie mes trames ne sont toujours pas correctement formatées en JSON
{ "Time": "2023-03-01T18:28:15", "ENERGY": { "TotalStartTime": "2023-03-01T18:17:53", "Total": 14538.407, "Yesterday": 0, "Today": 0, "Period": 0, "Power": 153, "ApparentPower": 237, "ReactivePower": 181, "Factor": 0.65, "Voltage": 237, "Current": 1, "Load": 3 }, "TIC": { "VTIC": 2, "NGTF": "TEMPO", "EAST": 14538407, "EASF01": 12734205, "EASF02": 1714927, "EASF04": 38258, "EASF05": 15195, "EASF07": 0, "EASF09": 0, "EASF10": 0, "EASD04": 2593655, "IRMS1": 1, "URMS1": 237, "PREF": 6, "PCOUP": 6, "SMAXSN": 287, "PRM": 2147483647, "RELAIS": 0, "NTARF": 6, "NJOURF": 0, "NJOURF+1": 0, "LTARF": "HP ROUGE", "EASF03": 29956, "EASF06": 5866, "EASD01": 7258333, "EASD02": 3482724, "EASD03": 1203695, "SINSTS": 153, "SMAXSN-1": 2494, "UMOY1": 231, "DPM2": 0, "P@OINTE": "000040 5 06004006 2"004005 NONUTILE NONUTILE NONUTILE NONETILE NONUTILE NONUTILE NONUTILE NONUTILE", "ADSC": "031662280532", "STGE": "83DAD401", "FPM2": 0, "EASF08": 0, "CINSTS": 156 } }
J'ai vu qu'une API HTTP existe depuis l'interface web mais je ne trouve pas comment elle fonctionne ... tu aurais une idée ?
-
En tout cas la situation s'est améliorée, mais j'ai effectivement ce matin une nouvelle trame corrompue.
Vu que les tags semblent se créer tout seuls à leur découverte, je suppose que mon dernier tag est lié à un problème de mauvaise réception ou de débordement de buffer.
Ne faudrait il pas avoir un dictionnaire des tags valides afin de rejeter les mauvais?
Une autre hypothèse vérifer que les tags reçus sont dans la table ASCII?
07:17:45.160 MQT: tele/Linky/SENSOR = {"TIC":{"ADSC":"022276116693","VTIC":2,"NGTF":"TEMPO","LTARF":"HP ROUGE","EAST":1316060,"EASF01":918154,"EASF02":108799,"EASF03":121563,"EASF04":122694,"EASF05":28448,"EASF06":16402,"EASF07":0,"EASF08":0,"EASF09":0,"EASF10":0,"EASD01":1068165,"EASD02":247895,"EASD03":0,"EASD04":0,"IRMS1":1,"IRMS2":0,"IRMS3":1,"URMS1":237,"URMS2":238,"URMS3":238,"PREF":12,"PCOUP":12,"SINSTS":408,"SINSTS1":207,"SINSTS2":42,"SINSTS3":159,"SMAXSN":7100,"SMAXSN1":2610,"SMAXSN2":2140,"SMAXSN3":2350,"SMAXSN-1":7010,"SMAXSN1-1":2560,"SMAXSN2-1":2080,"SMAXSN3-1":2490,"CCASN":578,"CCASN-1":316,"UMOY1":236,"UMOY2":238,"UMOY3":237,"STGE":"833A5401","DPM2":0,"FPM2":0,"PRM":2147483647,"RELAIS":0,"NTARF":6,"NJOURF":0,"NJOURF+1":0,"SINSS":605}}
Bonne Journée à tous
-
@labu73 merci pour ta réponse !
En consultant le forum, je me rend compte que je rencontre exactement le même problème que @Samquad "Tasmota sensor 12.1.1.2 avec linky mode Standard --> Libteleinfo checkline error checksum..." et qui malheureusement n'a pas trouvé de solution et/ou explication au dysfonctionnement ... -
Ne faudrait il pas avoir un dictionnaire des tags valides afin de rejeter les mauvais?
Oui ce serait une solution mais il faut tous les lister et les rentrer. Mais normalement les TAG sont vérifiés avec la checksum avant sauvegarde en mémoire et sont vérifiés à nouveau lors de l'envoi (le fix de ce W.E.) donc je ne comprends pas comment c'est possible ou par le plus grand des malheurs parfois une mauvaise étiquette à une bonne cheksum.
Une autre hypothèse vérifier que les tags reçus sont dans la table ASCII?
Correct ça peut être une vérification supplémentaire, il faudrait que j'ajoute lors de l'envoi un scan des mauvaises (selon ces 2 principes) pour les supprimer de la liste aussi mais j'ai pas eu le temps ce W.E.
Une autre idée serait de tester sur la même installation le Firmware de @Nicolas-Bernaerts aussi pour voir comment ça se comporte.
Pour info depuis que j'ai les stats j'ai aussi quelques erreurs parfois, regarde en 48H
671 erreurs de checksum sachant qu'il y a 256 possibilité de checksum différentes et que seul 64 sont valides (de mémoire) il y a effectivement possibilité de tomber sur une valide de temps en temps ce qui pourrait expliquer simplement sans forcement de bug dans le code, intéressant