Trames corrompues MQTT
-
@labu73 intéressant, ça me rapelle un vieux bug ça, tu es en TIC standard ou Historique ? et surtout quel soft et quelle version ?
-
Bonjour, voici ma configuration et je suis en trame standard.
Denky D4 (v1.1)
Tasmota
Program Version 12.3.1.1(teleinfo)
Build Date & Time 2022-12-16T09:50:33
Core/SDK Version 2_0_5_3/v4.4.3
Uptime 0T05:06:10
Flash Write Count 96
Boot Count 15
Restart Reason Software reset CPU
Friendly Name 1 TasmotaAP1 SSId (RSSI) LoEtLo (82%, -59 dBm) 11n
Hostname Linky-5592
MAC Address 30:83:98:D6:D5:D8
IP Address (wifi) 192.168.68.20
Gateway 192.168.68.1
Subnet Mask 255.255.255.0
DNS Server1 192.168.68.1
DNS Server2 0.0.0.0HTTP API Enabled
MQTT Host 192.168.68.3
MQTT Port 1883
MQTT TLS Disabled
MQTT User labu
MQTT Client DVES_D6D5D8
MQTT Topic Linky
MQTT Group Topic 1 cmnd/tasmotas/
MQTT Full Topic cmnd/Linky/
MQTT Fallback Topic cmnd/DVES_D6D5D8_fb/
MQTT No Retain DisabledEmulation None
ESP Chip Id 14079448 (ESP32-PICO-V3-02 rev.3)
Flash Chip Id 0x174068 (DIO)
Flash Size 8192 KB
Program Flash Size 8192 KB
Program Size 1367 KB
Free Program Space 1856 KB
Free Memory 151.3 KB (frag. 28%)
PS-RAM Memory 2045 KB
PS-RAM free Memory 2036 KBPartition app0* 1856 KB (used 73%)
Partition app1 1856 KB
Partition fs 4416 KB -
Bonsoir,
Les trames sont de nouveau corrompues.
J'ai l'impresssion que cela ressemble au souci de @Nicolas-Fovet.
Firmware, cable, ... Je sèche. Merci de votre aide.
17:35:03.856 MQT: tele/Linky/SENSOR = {"Time":"2023-02-23T17:35:03","ENERGY":{"TotalStartTime":"2023-01-29T09:53:32","Total":1129.057,"Yesterday":20.961,"Today":12.262,"Period":[0,0,0],"Power":[240,0,0],"ApparentPower":[240,0,240],"ReactivePower":[0,0,240],"Factor":[1.00,0.00,0.00],"Voltage":[240,241,240],"Current":[1.000,0.000,1.000],"Load":1},"TIC":{"ADSC":"02227611XXXX","VTIC":2,"NGTF":"TEMPO","LTARF":"HP BLANC","EAST":1129057,"EASF01":889921,"EASF02":78828,"EASF03":69233,"EASF04":75061,"EASF05":8101,"EASF06":7914,"EASF07":0,"EASF08":0,"EASF09":0,"EASF10":0,"EASD01":967255,"EASD02":161803,"EASD03":0,"EASD04":0,"IRMS1":1,"IRMS2":0,"IRMS3":1,"URMS1":240,"URMS2":241,"URMS3":240,"PREF":12,"PCOUP":12,"SINSTS":515,"SINSTS1":314,"SINSTS2":38,"SINSTS3":162,"SMAXSN":6940,"SMAXSN1":2570,"SMAXSN2":2090,"SMAXSN3":2330,"SMAXSN-1":6940,"SMAXSN1-1":2530,"SMAXSN2-1":2090,"SMAXSN3-1":2310,"CCASN":482,"CCASN-1":494,"UMOY1":240,"UMOY2":240,"UMOY3":239,"STGE":"423A4C01","PRM":2147483647,"RELAIS":0,"NTARF":4,"NJOURF":0,"NJOURF+1":0,"DPM1":0,"FPM1":0,"PPOINTE":"00004003 06004004 16004003 NONUTILE NONUTILE NONUTILE NONUTILE NONUTILE NONUTILE NONUTILE NONUTILE","SINSS1":294,"SMASN2-1":2090}}
17:35:20.624 MQT: tele/Linky/SENSOR = {"TIC":{"ADSC":"02227611XXXX","VTIC":2,"NGTF":"TEMPO","LTARF":"HP BLANC","EAST":1129060,"EASF01":889921,"EASF02":78828,"EASF03":69233,"EASF04":75063,"EASF05":8101,"EASF06":7914,"EASF07":0,"EASF08":0,"EASF09":0,"EASF10":0,"EASD01":967255,"EASD02":161805,"EASD03":0,"EASD04":0,"IRMS1":1,"IRMS2":0,"IRMS3":1,"URMS1":241,"URMS2":241,"URMS3":240,"PREF":12,"PCOUP":12,"SINSTS":517,"SINSTS1":315,"SINSTS2":39,"SINSTS3":162,"SMAXSN":6940,"SMAXSN1":2570,"SMAXSN2":2090,"SMAXSN3":2330,"SMAXSN-1":6940,"SMAXSN1-1":2530,"SMAXSN2-1":2090,"SMAXSN3-1":2310,"CCASN":482,"CCASN-1":494,"UMOY1":240,"UMOY2":240,"UMOY3":239,"STGE":"423A4C01","PRM":2147483647,"RELAIS":0,"NTARF":4,"NJOURF":0,"NJOURF+1":0,"DPM1":0,"FPM1":0,"PPOINTE":"00004003 06004004 16004003 NONUTILE NONUTILE NONUTILE NONUTILE NONUTILE NONUTILE NONUTILE NONUTILE","SINSS1":294,"SMASN2-1":2090}}
17:35:57.407 MQT: tele/Linky/SENSOR = {"TIC":{"ADSC":"02227611XXXX","VTIC":2,"NGTF":"TEMPO","LTARF":"HP BLANC","EAST":1129064,"EASF01":889921,"EASF02":78828,"EASF03":69233,"EASF04":75067,"EASF05":8101,"EASF06":7914,"EASF07":0,"EASF08":0,"EASF09":0,"EASF10":0,"EASD01":967255,"EASD02":161809,"EASD03":0,"EASD04":0,"IRMS1":1,"IRMS2":0,"IRMS3":1,"URMS1":239,"URMS2":241,"URMS3":239,"PREF":12,"PCOUP":12,"SINSTS":520,"SINSTS1":318,"SINSTS2":38,"SINSTS3":162,"SMAXSN":6940,"SMAXSN1":2570,"SMAXSN2":2090,"SMAXSN3":2330,"SMAXSN-1":6940,"SMAXSN1-1":2530,"SMAXSN2-1":2090,"SMAXSN3-1":2310,"CCASN":482,"CCASN-1":494,"UMOY1":240,"UMOY2":240,"UMOY3":239,"STGE":"423A4C01","PRM":2147483647,"RELAIS":0,"NTARF":4,"NJOURF":0,"NJOURF+1":0,"DPM1":0,"FPM1":0,"PPOINTE":"00004003 06004004 16004003 NONUTILE NONUTILE NONUTILE NONUTILE NONUTILE NONUTILE NONUTILE NONUTILE","SINSS1":294,"SMASN2-1":2090}}
Une trame correcte après reboot.
17:43:59.289 MQT: tele/Linky/SENSOR = {"TIC":{"ADSC":"02227611XXXX","VTIC":2,"NGTF":"TEMPO","LTARF":"HP BLANC","EAST":1129129,"EASF01":889921,"EASF02":78828,"EASF03":69233,"EASF04":75132,"EASF05":8101,"EASF06":7914,"EASF07":0,"EASF08":0,"EASF09":0,"EASF10":0,"EASD01":967255,"EASD02":161874,"EASD03":0,"EASD04":0,"IRMS1":1,"IRMS2":0,"IRMS3":1,"URMS1":240,"URMS2":241,"URMS3":239,"PREF":12,"PCOUP":12,"SINSTS":512,"SINSTS1":310,"SINSTS2":39,"SINSTS3":162,"SMAXSN":6940,"SMAXSN1":2570,"SMAXSN2":2090,"SMAXSN3":2330,"SMAXSN-1":6940,"SMAXSN1-1":2530,"SMAXSN2-1":2090,"SMAXSN3-1":2310,"CCASN":482,"CCASN-1":494,"UMOY1":239,"UMOY2":240,"UMOY3":239,"STGE":"423A4C01","DPM1":0,"FPM1":0,"PRM":2147483647,"RELAIS":0,"NTARF":4,"NJOURF":0,"NJOURF+1":0,"PPOINTE":"00004003 06004004 16004003 NONUTILE NONUTILE NONUTILE NONUTILE NONUTILE NONUTILE NONUTILE NONUTILE"}}
-
@labu73 Bonjour,
Pour le moment tu peux pallier ce soucis avec un règle tasmota pour un reboot quand tu souhaites via les timer, puis associer une règle au timer.
cf ici
ce n'est pas très orthodoxe mais efficace.Concernant les données corrompues il faut investiguer ce bug car les données sont stockées en mémoire à reception et celle-ci ne sont stockées uniquement si la validité a été vérifiée via contrôle de checksum. Or si elles deviennent corrompues après (ce cas précis) c'est que quelque chose s'est mal passé plus tard et vient écraser (donc modifier) les données à postériori.
La vrai question c'est qui quoi quand (débordement de buffer, pb d'allocation, d'alignement, buffer MQTT trop petit, ...) et comment et si tenté que ce ne soit pas un problème lié au hardware CPU ou autre.
Une solution pourrait être de stocker la checksum dans cette liste et revérifier avant envoi et supprimer les étiquettes avec une mauvaise checksum, ça solutionnerait le problème mais pas la cause.
-
Merci pour ta réponse,. Le côté rémanent du défaut et la reprise systématique au reboot me fait penser à un souci dans la mise en place de la liste des tags. En effet, la liste étant établie au fur et à mesure que des tags sont découverts, un bug dans la com Linky/Denky peut créer des tags erronés.
Que penses tu de mon hypothèse?
Je passerai bien à EnergyConfig Changed pour ne pas répéter cette erreur, par contre, sans skip, je me retrouve avec des infos power toutes les 5 secondes. Ne peut on pas baisser cette fréquence autrement que par skip?
-
Bonjour,
Personnellement j'ai déjà observé des trames au checksum valide mais complètement erroné.
Il est possible que ce sois le cas ici aussi.
Est-ce-que tu peux avoir accès à des trames erronées pour vérifier leurs checksums ?Pour régler le souci j'ai vérifié que les étiquettes des trames reçues soient bien des étiquettes valides (dispo dans la doc). Ce n'est pas parfait mais ça réduit de beaucoup la probabilité d'un checksum validé mais d'une trame erronée.
-
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 ...