Messages corrompus, Linky en mode standard
-
Bonjour,
J'ai récemment fait l'acquisition d'un module Teleinfo V3.0 afin de récupérer les informations de mon compteur Linky en mode standard, mais les messages que je reçois sont corrompus.
J'ai essayé de régler la résistance ajustable pendant des heures mais sans succès.
J'ai utilisé un câble cat7 (avec paires blindées) le plus court possible (25 cm).
Voici ma configuration : Raspberry Pi 4, OS Home Assistant, Linky de marque Itron en mode standard avec fournisseur EDF.Mon module Teleinfo étant de dernière génération, j’en ai déduis que les résistances étaient maintenant de 220 ohms et 3.3 kilos pour R3 et R6. J’ai cru comprendre également que la petite résistance ajustable (de 1k ?) dont on parle sur le forum est en série avec un des fils vers le linky afin d’adapter le niveau d’entrée.
Voici les logs du module teleinfo2mqtt dans Home assistant :
*13:31:21.994 INFO teleinfo2mqtt: Connecting to port [/dev/serial/by-id/usb-CH2i_uTinfo-V3.0_TINFO-2064-if00] with standard TIC mode 13:31:21.996 INFO teleinfo2mqtt: Connected to port [/dev/serial/by-id/usb-CH2i_uTinfo-V3.0_TINFO-2064-if00] 13:31:21.997 INFO teleinfo2mqtt: Connecting to MQTT broker [mqtt://core-mosquitto:1883] 13:31:22.063 INFO teleinfo2mqtt: Connected to MQTT broker [mqtt://core-mosquitto:1883] 13:31:22.070 WARN teleinfo2mqtt: Corrupted line received [TD9}4`_%%hM$?`H4.,dDDriC}IT h)#:K] 13:31:22.070 WARN teleinfo2mqtt: Corrupted line received [J00077 ^ ] 13:31:44.313 WARN teleinfo2mqtt: Invalid value received for label PJOURF+1 [00004001 06004002 22004001 NONUTILE NONUTILE NONUTILE NONUTILE NONUTILE NONUTILE NONUTILE NON`]$q B)x] 13:31:52.013 WARN teleinfo2mqtt: Invalid value received for label 4`^r]$q!U-B$IxiAB [y)D)BDxHbd`)5"hp] 13:31:55.117 WARN teleinfo2mqtt: Invalid value received for label $Tu^`]%q(B [D xxiC5 r] 13:32:00.810 WARN teleinfo2mqtt: Invalid value received for label J #f$ [f$8ATIAb.T)4,` `Vn@A ,C4T8h)@BxAmBCD LiHBl-BH1@ 2DcVLD((k $4f!}BHin44pH] 13:32:01.497 WARN teleinfo2mqtt: Corrupted line received [4``]$#POoB I !By mABD(A@iB @mBb_@] 13:32:02.110 WARN teleinfo2mqtt: Corrupted line received [2@c l(D(P(Y(PTk $4f!}@H$.,DF ` `4]*
J'ai également fait des tests avec picocom et le résultat est identique, ce n'est donc pas mon intégration HA qui pose problème :
**picocom -b 9600 -d 7 -p e -f n /dev/ttyACM0** picocom v3.1 port is : /dev/ttyACM0 flowcontrol : none baudrate is : 9600 parity is : even databits are : 7 stopbits are : 1 escape is : C-a local echo is : no noinit is : no noreset is : no hangup is : no nolock is : no send_cmd is : sz -vv receive_cmd is : rz -vv -E imap is : omap is : emap is : crcrlf,delbs, logfile is : none initstring : none exit_after is : not set exit is : no Type [C-a] [C-h] to see available commands Terminal ready @*ELE NONUTILE NONUTILE NONUTILE NONUTILE . ADSC 032164170149 3 VTIC 02 J DATE E240718170742 I NGTF TEMPO F LTARF HP BLEU + EAST 017206278 0 EASF01 013664090 ? EASF02 002727193 B EASF03 000205692 < EASF04 000358937 H EASF05 000106471 9 EASF06 000143895 E EASF07 000000000 ( EASF08 000000000 ) EASF09 000000000 * EASF10 000000000 " EASD01 005050032 / EASD02 009622410 9 EASD03 000700236 4 EASD04 001833600 8 EAIT 000345040 U ERQ1 000515809 W ERQ2 000000285 K ERQ3 000190173 R ERQ4 003461674 ] IRMS1 006 4 URMS1 243 C PREF 06 E PCOUP 06 _ SINSTS 00000 F SMAXSN E240718085419 02251 E SMAXSN-1 E240717092918 01851 ) SINSTI 01348 L SMAXIN E240718133125 02090 0 SMAXIN-1 E240717154518 02056 X CCASN E240718170000 00000 6 CCASN-1 E240718160000 00000 S UMOY1 E M@ TIIl $4 )>$ X}B
Je ne sais plus trop quoi tenter pour débloquer la situation, je fais donc appel à votre expérience !
Cordialement
-
@kenavo hello,
c'est intéressant avec picocom tu sembles avoir des trames bien plus correctes tu pourrais le laisser tourner une 10zaine de secondes et mettre les logs ici (une fois avec la potentiomètre à fond dans un sens et l'autre fois à fond dans l'autre sens et ne mettre que le meilleurs bien sur) ?
Pour les résistances oui 3K3 et uniquement le potentiomètre de 2K en entrée. Tu peux tjs ajouter une 1K en série avec un des fils de la téléinfo mais je pense pas que ça change grand chose.
-
@Charles Bonjour,
Voici donc les copies d'écrans :
1 - potentiomètre à fond à droite (vue de dessus)
La réception se bloque au bout de 250 à 1500 lignes reçues suivant les cas.
2 - potentiomètre à fond à gauche
La réception part en live dés le départ.
3 - potentiomètre au milieu
Pas mieux.
Il est vrai que dans le cas 1, cela fonctionne un peu mieux avec picocom qu'avec l'intégration Home Assistant. J'ai essayé de faire varier l'intervalle entre deux MQTT émissions, mais sans succès.
-
@kenavo ok oui logique que à droite ça fonctionne mieux.
ce qui est très surprenant c'est que ça fonctionne parfaitement bien avant de partir en vrille, d'habitude soit le signal est bon soit pas bon mais dans ton cas c'est systématique après quelque temps. Une fois que c'est parti en vrille, si tu stoppes picocom et relance la même commande ça remarche un peu ou ça reste en vrille ?
Je me demande si il n'y aurait pas un process qui essaierait de jouer avec le port ttyACM0 ou prendrait beaucoup de CPU. Tu n'as bien que ce module connecté au Linky rien d'autre ?
Je veux bien te changer le module mais j'ai de sérieux doute que ce soit ça et tu pourrais te retrouver dans la même situation.
Est il possible de faire un essai avec une SD contenant une raspian neuve (sans GUI) et donc sans autres softs que l'OS et juste picocom pour voir ?
-
@Charles
Si je relance picocom, cela remarche pendant quelques secondes.
L'idée de la charge UC est une piste intéressante...
J'avais essayé de faire des tests à froid, en ayant laissé le raspberry reposer quelques heures car je le trouvais un peu chaud. Mais le résultat a été identique.Je vais voir pour configurer une SD avec un Linux tout nu et refaire des tests, ça va me prendre un peu de temps et je reviendrai poster mes résultats.
Merci pour ton aide !
-
@kenavo si ça refonctionne après que picocom se relance c'est qu'il reconfigure le serial et ça marche et je suis persuadé qu'un truc en arrière plan tente d'ouvrir ou d'utiliser le serial.
Tu peux aussi essayer d'arrêter tous les services inutiltes pour voir
je serais curieux de voir la sortie d'un
ps -aux
-
Bonjour @Charles
Voici les résultats des commandes ps -aux et top :
~ ps -aux USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND root 1 0.0 0.0 424 0 ? Ss 15:19 0:00 /package/admin/s6/command/s6-svscan -d4 -- /run/service root 16 0.0 0.0 208 0 ? S 15:19 0:00 s6-supervise s6-linux-init-shutdownd root 19 0.0 0.0 192 0 ? Ss 15:19 0:00 /package/admin/s6-linux-init/command/s6-linux-init-shutdownd -d3 -c /run/s6/base root 25 0.0 0.0 208 0 ? S 15:19 0:00 s6-supervise s6rc-fdholder root 26 0.0 0.0 208 0 ? S 15:19 0:00 s6-supervise sshd root 27 0.0 0.0 208 0 ? S 15:19 0:00 s6-supervise ttyd root 28 0.0 0.0 208 0 ? S 15:19 0:00 s6-supervise s6rc-oneshot-runner root 36 0.0 0.0 196 0 ? Ss 15:19 0:00 /package/admin/s6/command/s6-ipcserverd -1 -- /package/admin/s6/command/s6-ipcse root 336 0.0 0.1 6796 4864 ? Ss 15:19 0:00 sshd: /usr/sbin/sshd -D -e [listener] 0 of 10-100 startups root 341 0.0 0.0 16256 2816 ? Ssl 15:19 0:00 ttyd -d1 -i hassio --writable -p 62795 tmux -u new -A -s homeassistant zsh -l root 380 0.0 0.0 2528 2048 pts/0 Ss+ 15:20 0:00 tmux -u new -A -s homeassistant zsh -l root 383 0.0 0.0 3016 2180 ? S 15:20 0:00 tmux -u new -A -s homeassistant zsh -l root 387 0.8 0.1 5540 4272 pts/1 Ss 15:20 0:00 zsh -l root 446 0.0 0.0 2748 1792 pts/1 R+ 15:21 0:00 ps -aux
top - 15:23:23 up 4 min, 0 user, load average: 1.29, 1.00, 0.46 Tasks: 14 total, 1 running, 13 sleeping, 0 stopped, 0 zombie %Cpu(s): 16.7 us, 13.3 sy, 0.0 ni, 70.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st MiB Mem : 3989.8 total, 1812.4 free, 971.0 used, 1269.5 buff/cache MiB Swap: 1317.1 total, 1317.1 free, 0.0 used. 3018.8 avail Mem PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 1 root 20 0 424 0 0 S 0.0 0.0 0:00.01 s6-svscan 16 root 20 0 208 0 0 S 0.0 0.0 0:00.00 s6-supervise 19 root 20 0 192 0 0 S 0.0 0.0 0:00.00 s6-linux-init-s 25 root 20 0 208 0 0 S 0.0 0.0 0:00.00 s6-supervise 26 root 20 0 208 0 0 S 0.0 0.0 0:00.00 s6-supervise 27 root 20 0 208 0 0 S 0.0 0.0 0:00.00 s6-supervise 28 root 20 0 208 0 0 S 0.0 0.0 0:00.00 s6-supervise 36 root 20 0 196 0 0 S 0.0 0.0 0:00.00 s6-ipcserverd 336 root 20 0 6796 4864 4096 S 0.0 0.1 0:00.02 sshd 341 root 20 0 16256 2816 2432 S 0.0 0.1 0:00.03 ttyd 380 root 20 0 2528 2048 1664 S 0.0 0.1 0:00.00 tmux: client 383 root 20 0 3188 2308 1536 S 0.0 0.1 0:00.04 tmux: server 387 root 20 0 5540 4272 2304 S 0.0 0.1 0:00.59 zsh 464 root 20 0 4068 2944 1024 R 0.0 0.1 0:00.00 top
Je ne vois rien d'anormal...
Par contre, j'ai installé un debian sur une autre carte et j'ai fait des essais avec picocom et cela fonctionne très bien. Ton intuition était bonne !
Il semblerait donc que ce soit l'intégration dans Home Assistant qui pose problème.
Il va donc falloir que je regarde cela de plus près, mais ce qui me gêne, c'est que cette intégration est assez simple et que je n'ai pas beaucoup de paramètres sur lesquels je peux jouer.Je te remercie de m'avoir mis sur la voie,
Bonne journée. -
@kenavo ah yes l'intégration HA devait ouvrir le même port (logique ceci dit), mais c'est curieux qu'elle ne fonctionne pas quand elle est toute seule, tu as d'autres USB branchés et/ou configuré dans HA ?
-
@Charles
Non, rien du tout.
Je ne vois vraiment pas.
Je vais sûrement finir par refaire une SD avec home assistant et uniquement le module teleinfo intégré pour tester, mais ça ne me dira pas ce qui ne va pas sur ma configuration. -
Bonjour à vous, Kenavo j'ai le même souci que toi, je suis sur HA sous proxmox sans passer par un hub usb, j'ai essayé avec un hub alimenté aussi.
j'ai utilisé un cable cat5e et cable classique de téléphone, j'ai le mem resultat, le cable fait environ 1M
] 10:31:14.909 DEBUG teleinfo2mqtt: Split frame [PJORF+1,00008001 NONTILE NONQILNONUTILE NONTIL NONUTILANOTILE NONTIL NONUTILE NOUTILE NONILE,9 ] 10:31:14.909 WARN teleinfo2mqtt: Invalid value received for label PJORF+1 [00008001 NONTILE NONQILNONUTILE NONTIL NONUTILANOTILE NONTIL NONUTILE NOUTILE NONILE] 10:31:14.942 DEBUG teleinfo2mqtt: Raw frame [ASC 021875392346 A] 10:31:14.942 DEBUG teleinfo2mqtt: Split frame [ASC,021875392346,A] 10:31:14.942 WARN teleinfo2mqtt: Invalid value received for label ASC [021875392346] 10:31:14.988 DEBUG teleinfo2mqtt: Raw frame [TI 02 J ] 10:31:14.988 DEBUG teleinfo2mqtt: Split frame [TI,02,J ] 10:31:14.988 WARN teleinfo2mqtt: Invalid value received for label TI [02] 10:31:15.036 DEBUG teleinfo2mqtt: Raw frame [DATE E240825103120 : ] 10:31:15.036 DEBUG teleinfo2mqtt: Split frame [DATE,E240825103120,: ] 10:31:15.036 DEBUG teleinfo2mqtt: Value for label DATE = 10:31:15.036 DEBUG teleinfo2mqtt: Frame parsed [[object Object]] 10:31:15.085 DEBUG teleinfo2mqtt: Raw frame [NGTF BAE 8 ] 10:31:15.085 DEBUG teleinfo2mqtt: Split frame [NGTF BAE ,8 ] 10:31:15.085 WARN teleinfo2mqtt: Corrupted line received [NGTF BAE 8 ] 10:31:15.126 DEBUG teleinfo2mqtt: Raw frame [LTRF BASE ] 10:31:15.126 DEBUG teleinfo2mqtt: Split frame [LTRF, BASE , ] 10:31:15.126 WARN teleinfo2mqtt: Invalid value received for label LTRF [ BASE ] 10:31:15.169 DEBUG teleinfo2mqtt: Raw frame [EAST 080905375 8 ] 10:31:15.169 DEBUG teleinfo2mqtt: Split frame [EAST,080905375,8 ] 10:31:15.169 DEBUG teleinfo2mqtt: Value for label EAST = 080905375 10:31:15.169 DEBUG teleinfo2mqtt: Frame parsed [[object Object]] 10:31:15.212 DEBUG teleinfo2mqtt: Raw frame [EASF01 074831120 < ] 10:31:15.212 DEBUG teleinfo2mqtt: Split frame [EASF01,074831120,< ] 10:31:15.212 DEBUG teleinfo2mqtt: Value for label EASF01 = 074831120 10:31:15.212 DEBUG teleinfo2mqtt: Frame parsed [[object Object]] 10:31:15.255 DEBUG teleinfo2mqtt: Raw frame [ASF02 007073732 @ ] 10:31:15.255 DEBUG teleinfo2mqtt: Split frame [ASF02,007073732,@ ] 10:31:15.255 WARN teleinfo2mqtt: Invalid value received for label ASF02 [007073732] 10:31:15.298 DEBUG teleinfo2mqtt: Raw frame [EAS03 000659339 ] 10:31:15.298 DEBUG teleinfo2mqtt: Split frame [EAS03,000659339, ] 10:31:15.298 WARN teleinfo2mqtt: Invalid value received for label EAS03 [000659339] 10:31:15.341 DEBUG teleinfo2mqtt: Raw frame [EASF04 002341184 < ] 10:31:15.341 DEBUG teleinfo2mqtt: Split frame [EASF04,002341184,< ] 10:31:15.341 DEBUG teleinfo2mqtt: Value for label EASF04 = 002341184 10:31:15.341 DEBUG teleinfo2mqtt: Frame parsed [[object Object]] 10:31:15.384 DEBUG teleinfo2mqtt: Raw frame [EASF05 000000000 & ] 10:31:15.384 DEBUG teleinfo2mqtt: Split frame [EASF05,000000000,&,] 10:31:15.385 DEBUG teleinfo2mqtt: Value for label EASF05 = 000000000 10:31:15.385 DEBUG teleinfo2mqtt: Frame parsed [[object Object]] 10:31:15.427 DEBUG teleinfo2mqtt: Raw frame [EASF06 000000000' ] 10:31:15.427 DEBUG teleinfo2mqtt: Split frame [EASF06,000000000' ] 10:31:15.427 WARN teleinfo2mqtt: Corrupted line received [EASF06 000000000' ] 10:31:15.470 DEBUG teleinfo2mqtt: Raw frame [AASF0& 000000000 ] 10:31:15.470 DEBUG teleinfo2mqtt: Split frame [AASF0&,000000000, ] 10:31:15.470 WARN teleinfo2mqtt: Invalid value received for label AASF0& [000000000] 10:31:15.513 DEBUG teleinfo2mqtt: Raw frame [ESF08 000000000 ) ] 10:31:15.513 DEBUG teleinfo2mqtt: Split frame [ESF08,000000000,) ] 10:31:15.513 WARN teleinfo2mqtt: Invalid value received for label ESF08 [000000000] 10:31:15.555 DEBUG teleinfo2mqtt: Raw frame [EASF09 000000000 * ] 10:31:15.556 DEBUG teleinfo2mqtt: Split frame [EASF09,000000000,* ] 10:31:15.556 DEBUG teleinfo2mqtt: Value for label EASF09 = 000000000 10:31:15.556 DEBUG teleinfo2mqtt: Frame parsed [[object Object]] 10:31:15.599 DEBUG teleinfo2mqtt: Raw frame [EASF10000000000 " ] 10:31:15.599 DEBUG teleinfo2mqtt: Split frame [EASF10000000000," ] 10:31:15.599 WARN teleinfo2mqtt: Corrupted line received [EASF10000000000 " ] 10:31:15.643 DEBUG teleinfo2mqtt: Raw frame [EAS01 042091524 C ] 10:31:15.643 DEBUG teleinfo2mqtt: Split frame [EAS01,042091524,C ] 10:31:15.643 WARN teleinfo2mqtt: Invalid value received for label EAS01 [042091524] 10:31:15.686 DEBUG teleinfo2mqtt: Raw frame [ASD02 021066349 B] 10:31:15.686 DEBUG teleinfo2mqtt: Split frame [ASD02,021066349,B] 10:31:15.686 WARN teleinfo2mqtt: Invalid value received for label ASD02 [021066349] 10:31:15.730 DEBUG teleinfo2mqtt: Raw frame [EAD03 007046942B ] 10:31:15.731 DEBUG teleinfo2mqtt: Split frame [EAD03,007046942B ] 10:31:15.731 WARN teleinfo2mqtt: Corrupted line received [EAD03 007046942B ] 10:31:15.771 DEBUG teleinfo2mqtt: Raw frame [EAS04 014692540B ] 10:31:15.771 DEBUG teleinfo2mqtt: Split frame [EAS04,014692540B ] 10:31:15.771 WARN teleinfo2mqtt: Corrupted line received [EAS04 014692540B ] 10:31:15.812 DEBUG teleinfo2mqtt: Raw frame [AIT 006867518 / ] 10:31:15.812 DEBUG teleinfo2mqtt: Split frame [AIT,006867518,/ ] 10:31:15.812 WARN teleinfo2mqtt: Invalid value received for label AIT [006867518] 10:31:15.853 DEBUG teleinfo2mqtt: Raw frame [ER 005173875 _] 10:31:15.853 DEBUG teleinfo2mqtt: Split frame [ER ,005173875,_] 10:31:15.853 WARN teleinfo2mqtt: Invalid value received for label ER [005173875]
du cou ça me fait souvent du 0 en soutiré par exemple
si vous avez des idées car la je seche je vais peut essayer brancher directement sur un raspberry pour voir si c'est pareil -
@devchristof avez vous essayé de jouer avec le petit potentiomètre de la carte Teleinfo ?