linkytic
linkytic copied to clipboard
Erreurs "Failed to validate the checksum of line" v3.0.0-beta4 / Mode Standard
Bonjour,
Je suis passé récemment au mode Standard sur mon Linky, j'avoue ne pas avoir forcément fait attention avant en mode Historique si j'avais des erreurs similaires mais voici un échantillon des erreurs relevées :
2024-12-03 10:39:55.062 ERROR (LinkyTIC for /dev/ttyUSB1) [custom_components.linkytic.serial_reader] Failed to validate the checksum of line 'b'ADSC\t021662096073\t8'': ADSC -> 021662096073 (None) | s1 919 0b1110010111 | truncated 23 0b10111 | computed 55 0b110111 7 | expected 56 0b111000 8 2024-12-03 10:40:55.494 ERROR (LinkyTIC for /dev/ttyUSB1) [custom_components.linkytic.serial_reader] Failed to validate the checksum of line 'b'PRM\t01658465929589\tN\x0c'': PRM -> 01658465929589 (None) | s1 1006 0b1111101110 | truncated 46 0b101110 . | computed 78 0b1001110 N | expected 48 0b110000 0 2024-12-03 10:41:19.434 ERROR (LinkyTIC for /dev/ttyUSB1) [custom_components.linkytic.serial_reader] Failed to validate the checksum of line 'b'EASD01\t06476 712\tA'': EASD01 -> 06476 712 (None) | s1 849 0b1101010001 | truncated 17 0b10001 | computed 49 0b110001 1 | expected 65 0b1000001 A 2024-12-03 10:41:39.536 ERROR (LinkyTIC for /dev/ttyUSB1) [custom_components.linkytic.serial_reader] Failed to validate the checksum of line 'b'SMAXSN-1\tH241202043910\t03800\x08R'': SMAXSN-1 -> H241202043910 (None) | s1 1262 0b10011101110 | truncated 46 0b101110 . | computed 78 0b1001110 N | expected 48 0b110000 0 2024-12-03 10:42:23.084 ERROR (LinkyTIC for /dev/ttyUSB1) [custom_components.linkytic.serial_reader] Failed to validate the checksum of line 'b'EASF01\t042152302\t6'': EASF01 -> 042152302 (None) | s1 853 0b1101010101 | truncated 21 0b10101 | computed 53 0b110101 5 | expected 54 0b110110 6 2024-12-03 10:42:47.426 ERROR (LinkyTIC for /dev/ttyUSB1) [custom_components.linkytic.serial_reader] Failed to validate the checksum of line 'b'PJOURF+1\t00004001\x0006004002 16004001 NONUTILE NONUTILE NONUTILE NONUTILE NONUTILE NONUTILE NONUTILE NONUTILE\t1'': PJOURF+1 -> 00004001 2024-12-03 10:43:40.222 ERROR (LinkyTIC for /dev/ttyUSB1) [custom_components.linkytic.serial_reader] Failed to validate the checksum of line 'b'EAST\t072132958\t5'': EAST -> 072132958 (None) | s1 788 0b1100010100 | truncated 20 0b10100 | computed 52 0b110100 4 | expected 53 0b110101 5 2024-12-03 10:45:39.835 ERROR (LinkyTIC for /dev/ttyUSB1) [custom_components.linkytic.serial_reader] Failed to validate the checksum of line 'b'PJOURF+1\t00004001\x0006004002 16004001 NONUTILE NONUTILE NONUTILE NONUTILE NONUTILE NONUTILE NONUTILE NONUTILE\t1'': PJOURF+1 -> 00004001 2024-12-03 10:47:19.367 ERROR (LinkyTIC for /dev/ttyUSB1) [custom_components.linkytic.serial_reader] Failed to validate the checksum of line 'b'SMAXSN\tH241203032946\t02420\t:'': SMAXSN -> 02420 (H241203032946) | s1 1433 0b10110011001 | truncated 25 0b11001 | computed 57 0b111001 9 | expected 58 0b111010 : 2024-12-03 10:47:49.808 ERROR (LinkyTIC for /dev/ttyUSB1) [custom_components.linkytic.serial_reader] Failed to validate the checksum of line 'b'EAST\t07213#030\t"'': EAST -> 07213#030 (None) | s1 754 0b1011110010 | truncated 50 0b110010 2 | computed 82 0b1010010 R | expected 34 0b100010 " 2024-12-03 10:49:35.821 ERROR (LinkyTIC for /dev/ttyUSB1) [custom_components.linkytic.serial_reader] Failed to validate the checksum of line 'b'CCASN-1\tH241203100000\t 0974\tZ'': CCASN-1 -> 0974 (H241203100000) | s1 1386 0b10101101010 | truncated 42 0b101010 * | computed 74 0b1001010 J | expected 90 0b1011010 Z
La remontées d'informations se passe bien au niveau HA, hormis ces erreurs (assez fréquentes tout de même, c'est pour cela que je me permet d'ouvrir une issue)
home-assistant_linkytic_2024-12-03T10-20-13.233Z.log
Je mets en PJ le log complet pour analyse si besoin, en tout cas merci pour le travail fourni !
Bonjour, ces erreurs peuvent arriver plus ou moins souvent en fonction de la qualité du lien de la TIC (paire torsadée ou non, longueur de câble, terminaison du récepteur, présence d'interféreur à proximité, etc.) Au pire ces valeurs sont rejeté, mais c'est l'utilité du checksum de vérifier l'intégrité de la donnée reçue 😁 aucune donnée fausse ne sera remontée à HA.
Pour ma part, même avec une liaison optimale (courte, paire torsadée, etc) il m'arrive d'avoir des erreurs de temps à autre (1 à 2 par jour)
Il serait interessant d'ajouter un capteur pour le taux d'erreur
Je me demande si abaisser la criticité des messages de logs concernant le parsing des lignes de ERROR à WARNING ne serait pas bénéfique pour tout le monde.
En effet beaucoup d'issues ont déjà été ouvertes sur ce sujet quand celui-ci ne dépend pas de l'intégration elle même mais de la qualité de l'installation (module TIC, cable, etc...) et aussi de l'environnement électromagnétique (si le câble est un peu fin).
Seulement je comprends qu'en tant qu'utilisateur, vu que les ERROR sont remontées dans l'interface de Home Assistant jusqu'à l'utilisateur, cela soit anxiogène.
Les avoir en WARNING permettrait toujours de faire apparaitre le problème dans les logs pour une utilisateur cherchant la cause d'un problème mais de ne pas inquiéter les autres qui ont de temps en temps des trames invalides mais pour qui globalement l'extension fonctionne bien.
Qu'est-ce que tu en penses @tomleglaunec ?
@bagnico Le passage au mode standard augmente pas mal la vitesse de la liaison série. Il est donc tout a fait possible qu'une perturbation pré existante affectant peu le mode historique soit bien plus visible sur le mode standard.
Les avoir en WARNING permettrait toujours de faire apparaitre le problème dans les logs pour une utilisateur cherchant la cause d'un problème mais de ne pas inquiéter les autres qui ont de temps en temps des trames invalides mais pour qui globalement l'extension fonctionne bien.
Oui c'est la solution la plus rapide à mettre en place pour "alléger" un peu les logs, ajouter un paragraphe troubleshouting dans le README à ce sujet pourrait aussi aider. Je pense que remonter un taux d'erreur et alerter lorsque ce taux est élevé est la solution pérenne. Pour ma part je ne fais plus attention à ce log car il s'agit toujours de véritables erreurs sur la ligne donc liés à des perturbations/bruit (voir les logs de cette issue qui montrent bien des valeurs incohérentes).
Mon raisonnement : puisque HA récupère les valeurs toutes les 30 secondes environ (hors temps réel), on pourrait théoriquement perdre 14/15 = +90% des trames (1 trame est émise toutes les deux secondes environ) que l'utilisateur ne s'en apercevrai pas. A voir les edge-cases comme les informations temporellement brèves...
Hello,
Pour information j'ai résolu mon problème qui était finalement plus grave que juste certaines erreurs, j'avais des sensors dont les infos ne remontaient pas ou de façon sporadique. Ce matin j'ai remarqué par exemple que mon index HP (en EASD04 chez moi) ne remontait plus, il était systématiquement en "Failed to validate the checksum of line" et aussi tous les index EASFxx, déjà je trouvais ça bizarre d'avoir mes index en EASD et non pas en EASF mais là ça m'a gonflé ! J'ai 2 compteur USB rail DIN Cartoelectronic, un acheté en 2014 et l'autre en 2016 (le 1er sur le compteur général Linky et le 2ème sur un ancien compteur Landis), j'ai inversé les 2 en supposant un soucis de résistance sur mon "vieux modèle" et miracle plus d'erreurs du tout et j'ai tous les sensors qui remontent bien. Je suppose que le pcb a évolué entre 2014 et 2016 sur ces modules. Plus d'infos ici : https://community.ch2i.eu/topic/1053/point-resistances-ut%C3%A9l%C3%A9info-v2-et-linky-mode-standard
Pour inverser j'ai modifié le fichier /homeassistant/.storage/core.config_entries en inversant les "serial_device", un petit reboot et voilà