Wemos D1 ESP32 + TIC v1.1 - checksum errors
-
Bonjour à tous,
J'essaie de récupérer les infos d'un linky avec le setup suivant:
- Wemos D1 ESP32 (Aliexpress)
- TIC v1.1
- Linky mode standard
- Tasmota 12.4.0.2
Mon pb est la réception de trames erronnées: je vois plein d’erreurs comme celles-ci dans la console:
20:41:14.208 LibTeleinfo::checkLine Err checksum 0x00 != 0x57 (total errors=21) 20:41:35.464 LibTeleinfo::checkLine Err checksum 0x00 != 0x3E (total errors=22) 20:41:42.966 LibTeleinfo::checkLine Err checksum 0x00 != 0x3E (total errors=23) 20:41:52.967 LibTeleinfo::checkLine Err checksum 0x00 != 0x57 (total errors=24) 20:42:03.209 LibTeleinfo::checkLine Err checksum 0x00 != 0x3E (total errors=25)
et les infos restent à 0, sauf EnergyTotal (pourquoi celui-là et pas les autres???):
Du coup, pour debugger, j'ai intégré et flashé le code Teleinfo_stats en ajustant le code pour utiliser le GPIO 23: celui-ci confirme la mauvaise réception: je ne vois passer que des caractères de controle de manière erratique (STX, ETX, INTERRUPT etc. mais rarement des infos intelligibles)
Donc ensuite j'ai branché mon oscilloscope et comparé l’entrée du module teleinfo (la modulation TIC directe du linky et la sortie sur le port RX du D1). Je pense qu’il y a un soucis dans la transformation du signal vers un signal série classique:
A noter que j'ai fait une capture à un moment pas forcément idéal car manque de chance, le signal RX était plat à ce moment là... En fait, il y a parfois des signaux carrés (courbe bleue), mais le truc, c'est que les signaux carrés fabriqués coté RX ne semblent pas reliés au signal modulé 50kHz du Linky.
J'utilise picoscope et le soft "sait" décoder les signaux UART: quand je mets un décodage approprié (9600 bauds, 7bits, 1 bit de stop, parité paire etc.), j'ai des "frame errors" dans ~90% des cas.
Bref, j'ai un soucis de signal RX transmis au D1...
Composant défectueux ?
Pb de résistances ? (j'ai cru voir qu'il fallait peut être ajuster certaines valeurs). En gros, on voit que la sortie du Linky semble correcte mais ca ne se traduit pas par un signal clair coté RX.
Merci par avance pour vos idées
-
@sdx si tu es en mode standard, tu peux ajouter une 1K en série avec l'un des fils allant à la téléinfo du compteur (ceci afin de faire passer la résistance d'entrée de 220Ohm à 1.22KOhm) ? peu importe quel fil.
-
Effectivement, c'est beaucoup mieux:
Et là, le programme TeleinfoStats semble afficher des trames qui ont du sens:
Est-ce qu'une sortie "normale" ressemble bien à ca ?
===================================== Teleinfo stats ===================================== You can change teleinfo mode from Historique to Standard with B0 button TIC RX=GPIO23 Mode:Standard ... ADSC<TAB>031961839946<TAB>H VTIC<TAB>02<TAB>J DATE<TAB>E230429191959<TAB><TAB>T NGTF<TAB> BASE <TAB>< LTARF<TAB> BASE <TAB>F EAST<TAB>027700365<TAB>- EASF01<TAB>027700365<TAB>@ EASF02<TAB>000000000<TAB># EASF03<TAB>000000000<TAB>$ EASF04<TAB>000000000<TAB>% EASF05<TAB>000000000<TAB>& EASF06<TAB>000000000<TAB>' EASF07<TAB>000000000<TAB>( EASF08<TAB>000000000<TAB>) EASF09<TAB>000000000<TAB>* EASF10<TAB>000000000<TAB>" EASD01<TAB>021304609<TAB>9 EASD02<TAB>006395756<TAB>J EASD03<TAB>000000000<TAB>" EASD04<TAB>000000000<TAB># IRMS1<TAB>004<TAB>2 URMS1<TAB>236<TAB>E PREF<TAB>06<TAB>E PCOUP<TAB>06<TAB>_ SINSTS<TAB>00966<TAB>[ SMAXSN<TAB>E230429122605<TAB>03544<TAB>> SMAXSN-1<TAB>E230428123414<TAB>03776<TAB>! CCASN<TAB>E230429190000<TAB>01904<TAB>D CCASN-1<TAB>E230429183000<TAB>01034<TAB>^ UMOY1<TAB>E230429191000<TAB>237<TAB>6 STGE<TAB>003A4001<TAB>> MSG1<TAB>PAS DE MESSAGE <TAB>< PRM<TAB>14836179379910<TAB>E RELAIS<TAB>000<TAB>B NTARF<TAB>01<TAB>N NJOURF<TAB>00<TAB>& NJOURF+1<TAB>00<TAB>B PJOURF+1<TAB>00008001 NONUTILE NONUTILE NONUTILE NONUTILE NONUTILE NONUTILE NONUTILE NONUTILE NONUTILE NONUTILE<TAB>9<ETX><STX>
-
Suite à un essai en mode "en vrac" où j'ai ajouté une résistance en amont (avant le connecteur vert - voir résultats précédents), j'ai rendu le montage plus stable.
Je n'avais pas de 1 KΩ en CMS donc j'ai déssoudé R3 (220 Ω) et fait un pont avec une résistance "normale" enveloppée dans du thermo rouge, histoire de garder la charte de couleur intacte
Donc j'ai bien 1 KΩ en entrée au lieu de 220 Ω (et non pas 1.2 KΩ, comme dans le montage "volant" précédent où j'avais les 2 résistances en série). La valeur ne semble pas changer grand chose: 1 KΩ ou 1.2 KΩ reviennent au même a priori.
Le résultat est maintenant correct:
(en bleu, l'entrée du linky, en rouge la sortie = le signal sur l'IO23).
Je ne sais pas trop ce qui t'as amené à mettre une résistance de 220Ω au lieu de 4.7KΩ, car la plupart des montages utilisent 4.7KΩ en entrée de l'optocoupleur 814, y compris dans d'autres de tes montages, comme ici:
[ref: https://hallard.me/pitinfov12/]Conclusion: pour le Wemos TIC V1.2, ca pose qqes questions:
- faut-il prévoir une résistance variable selon le mode standard/historique ?
- est-ce que mon montage fonctionnerait en mode historique ?
- faut-il implanter 2 résistances en série et ajouter un ou 2 jumpers sur la carte pour faire un bypass par ex ?
- faut-il simplement caler un potentiomètre (difficile à régler sans oscillo !) ?
Merci en tous cas pour le coup de main: tout remonte via Tasmota dans Home Assistant et ca marche nickel
-
@sdx correct, les valeurs ont toujours été empiriques en fonction des remontés utilisateurs (car j'ai pas tous les compteurs et leurs dérives sous la main) donc on a du faire en fonction des expériences utilisateurs.
La 4K7 était pour être conforme à la spéc EdF mais une fois de plus le mieux étant l'ennemi du bien (règle d'or).
D'ailleurs beaucoup des retours sont sur ce forum. Et une fois callés les bonnes valeurs fonctionnelles partout (ce qui a pris quelques années et m'a valu un nombre incalculable de déssoudage / ressoudages de CMS à la main sur les uTInfo vendus) est apparu le mode standard du Linky venu à nouveau tout casser (après la première vague de production sinon c'est pas drôle)
faut-il prévoir une résistance variable selon le mode standard/historique ?
Idéalement oui mais sachant que la 1K2 doit marcher dans 95% des cas en mode historique
est-ce que mon montage fonctionnerait en mode historique ?
oui à 95%
faut-il implanter 2 résistances en série et ajouter un ou 2 jumpers sur la carte pour faire un bypass par ex ?
j'y ai pensé mais la resistance variable est plus simple
faut-il simplement caler un potentiomètre (difficile à régler sans oscillo !) ?
C'est la solution retenue, maintenant les uTinfo possèdent la résistance variable tout comme les Denky D4. Bien entendu la prochaine fournée des WeMos TIC auront cette résistance variable aussi tout comme les PITinfo.
ça fonctionne dans 100% des cas en historique, donc tu règles uniquement si ça fonctionne pas en standard (cas rares), tu tournes jusque'au moement ou ça fonctionne, généralement en butée 1K.
-
Merci pour toutes les précisions.
Heureux de voir que le schmilblick avance malgré tout et que tu peux converger vers une solution unique
Si tu as besoin d'un testeur qui possède un Linky en mode standard, n'hésites pas à me contacter par la suite.
Kenavo!
-
Bonjour,
Je me permet de rebondir sur ce sujet ayant été confronté à un problème de bad crc visible sur l'interface web du teleinfo. J'utilise également un Wemos D1 ESP32 avec le TIC v1.1, et pour info je suis en contrat Tempo.
J'ai installé l'ESP via ESPHome pour remontée des infos dans Home Assistant.
J'avais déjà le soucis de bad crc en mode historique et il était toujours présent en mode standard donc je me suis décidé à mettre une résistance de 1k Ohms comme proposé ici, cela semble avoir résolu durablement mon soucis.
J'avais quelques soucis de valeurs incohérentes qui faussaient les stats, à voir si cela règlera également ce problème.
Merci beaucoup pour votre travail et vos conseils.