Comments (7)
En effet ça ne crash plus du tout, l’erreur est juste affichée dans les logs.
Je ferme donc cette issue.
Pour information, l’erreur est remontée 36 fois en 3 jours.
Est-ce que je peux vous aider pour corriger le problème (même si la correction me paraît suffisante).
Merci.
from linkytic.
Bonjour,
Intéressant je n'avais jamais rencontré de linky par SCHLUMBERGER / ACTARIS / ITRON
! L'erreur est étrange, le checksum est sensé être un seul caractère... pas 3 !
Je viens de rajouter une sécurité qui devrait catch cette erreur inattendue et au moins empêcher le crash du thread de la lecture de la connexion série. Elle est disponible dans la version v2.0.2 de l'intégration.
Pouvez-vous la tester et me faire un retour ?
Idéalement des logs en mode debug de l'intégration juste avant un crash aiderait beaucoup. Pour activer les logs debug juste pour l'intégration, modifier votre configuration.yaml
comme suit:
logger:
default: info
logs:
custom_components.linkytic: debug
Merci pour votre retour !
from linkytic.
Avez-vous pu regarder la nouvelle version ?
from linkytic.
Désolé je n’ai pas pris le temps de mettre à jour votre correction (très rapide).
Je viens de le faire à l’instant en activant les logs en mode debug.
Je surveille ça et je reviens vers vous.
Merci pour votre réactivité.
from linkytic.
Bonjour,
après quelques jours l’erreur est apparue plusieurs fois :
Encountered an unexpected checksum (ord() expected a character, but string of length 4 found): b'#\r\x03\x04'
Encountered an unexpected checksum (ord() expected a character, but string of length 3 found): b'K\r\x04'
Encountered an unexpected checksum (ord() expected a character, but string of length 3 found): b'M\r\x04'
Encountered an unexpected checksum (ord() expected a character, but string of length 4 found): b'L\r\x03\x04'
Encountered an unexpected checksum (ord() expected a character, but string of length 3 found): b'7\r\x04'
Voici en détail l’une des ces erreurs :
2023-06-11 12:42:31.598 DEBUG (LinkyTIC for /dev/ttyUSB0) [custom_components.linkytic.serial_reader] line to parse: b'HCHP 019571184 7\r\x04\x02\n'
2023-06-11 12:42:31.598 ERROR (LinkyTIC for /dev/ttyUSB0) [custom_components.linkytic.serial_reader] Encountered an unexpected checksum (ord() expected a character, but string of length 3 found): b'7\r\x04'
Traceback (most recent call last):
File "/config/custom_components/linkytic/serial_reader.py", line 333, in _validate_checksum
if computed_checksum != ord(checksum):
TypeError: ord() expected a character, but string of length 3 found
2023-06-11 12:42:31.600 ERROR (LinkyTIC for /dev/ttyUSB0) [custom_components.linkytic.serial_reader] Failed to validate the checksum of line 'b'HCHP 019571184 7\r\x04'': HCHP -> 019571184 (None) | s1 791 0b1100010111 | truncated 23 0b10111 | computed 55 0b110111 7 | expected 48 0b110000 0
Bon courage et merci encore.
from linkytic.
Au moins l'intégration ne crash plus ? (ce qui était le vrai problème principal, si vous pouviez confirmer cet état de fait là cela me permettrait de fermer cette issue, nous pourrons tout de même continuer à échanger dedans).
Il ne reste plus qu'à élucider la cause de ses trames invalides. D'après le standard Enedis, le checksum n'est que d'un seul caractère. Seulement la ligne que vous m'avez transmis :
line to parse: b'HCHP 019571184 7\r\x04\x02\n'
Ressemble étrangement à une fin de cycle de transmission (qui est normalement indiqué par \r\x03\x02\n
). En imaginant qu'il s'agisse effectivement d'une fin de trame, ces caractères ne sont pas enlevés (car ne correspondant pas exactement au pattern normal d'une fin de trame) par mon code de lecture série TIC et se retrouvent donc "dans" le checksum (qui aurait du seulement être 7
dans la ligne du dessus).
Cela expliquerait les messages d'erreurs obtenus. Maintenant sur le pourquoi les données lues sur le lien série ne sont pas valides... Je pencherai pour la même explication qu'ici : #11 (comment)
Avoir les lignes complètes (line to parse:
) aiderait beaucoup a mettre en contexte les différentes erreurs mais je commence à penser qu'elles proviennent de données non valides lu sur le lien série.
Même conclusion que pour le commentaire que j'ai lier plus haut:
- des informations erronées (abimées lors du transit ?) sont lues depuis le lien série
- la protection par vérification du checksum s'active et la ligne n'est pas prise en compte car invalide
- mon intégration remonte une erreur pour indiquer que la ligne n'a pas pu être intégrée car non valide
- cela peut arriver de temps en temps mais c'est sensé être un évènement rare
- s'il est persistant, je chercherai du côté du lien série (cables, module TIC, plus d'info dans mon autre commentaire linké ci dessus)
from linkytic.
Pour information, l’erreur est remontée 36 fois en 3 jours.
C'est effectivement beaucoup.
Est-ce que je peux vous aider pour corriger le problème (même si la correction me paraît suffisante).
Je reste convaincu que le problème se situe en amont, dans ce qui amène l'information série. Quel module utilisez vous, quel type de cablage entre le linky et le module ? Personnellement j'utilise du câblage électrique 2 fils, type lampe, avec une bonne section et un gainage autour de chaque cable + un global autour des deux. Concernant le module que j'utilise, c'est le lixee qui est linké au début du readme.
from linkytic.
Related Issues (20)
- Plusieurs Erreurs HOT 6
- Capteur « couleur demain » ne s’alimente jamais HOT 2
- Pas possible d'ajouter au dashboard HOT 2
- Erreur après mise a jour de core HOT 17
- Support du mode standard HOT 2
- Index re-Injection HOT 10
- deux points de trop HP.. et HC .. HOT 2
- Paramétrage avec le dashboard Energie HOT 8
- Prise en charge mode standard (+tri) HOT 11
- ADS device type is unknown: 28 HOT 4
- Sensors non fonctionnels suite à mise à jour HA 2023.11 HOT 4
- Impossible de récupérer les informations du compteur (Failed to parse) HOT 4
- Error in historic mode: 'b' HOT 12
- 2 appareil détecté HOT 23
- Simuateur HOT 7
- module not found HOT 29
- pas de texte - ajoutez une entrée HOT 3
- Failed to parse the following line (2 fields detected) in historic mode
- Erreur répétitive 'NoneType' object has no attribute 'create_task'
- Plus de remontées suite passage en version os 12 HOT 7
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from linkytic.