-
Notifications
You must be signed in to change notification settings - Fork 6
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Error : invalid literal for int() with base 10: '----' #3
Comments
Le script est assez basique : il cherche à récupérer une valeur numérique. C'est ce qui se passe sur la ligne Idem pour l'étiquette Essayez de limiter les étiquettes choisies à celles qui renvoient des valeurs numériques (voir la documentation ENEDIS) ou alors il faut adapter le script ainsi : # Vérification de la somme de contrôle
if _checksum(key, val, separator, checksum):
# Modification ici: on vérifie si val est un entier avant de convertir
if val.isdigit():
# Ajout de la valeur
frame[key] = int(val)
else:
# Pour les valeurs non-entière, on stocke en string
frame[key] = val |
Bonjour et merci pour ton retour. Désolé je commence tout juste à apprendre le python. Effectivement j'ai un compteur en mode tempo. Après avoir apporté la modification j'arrive à avoir une autre erreur :
J'ai testé de modifier la ligne 148 par [-1] au lieu de [-2], ça a l'air de réduire le nombre d'erreur mais il y en a toujours. PS : Quand je modifie le fichier config.yml pour garder qu'une seule étiquette (ex: keys: [ADCO]) j'obtiens toujours l'erreur si dessus. Merci d'avance. |
Bonjour, Je pense avoir compris. Visiblement en mode tempo on a un caractère en fin de ligne (ou début) supplémentaire : le B#015. Cependant je ne sais pas à quoi il sert. Est-il possible de le retirer automatiquement ? DEBUG: Groupe d'information brut : MOTDETAT 000000 B#015#003 |
Hi and thank you for your work !
I try to follow the instruction but I get an error like this :
ERROR: Une exception s'est produite : invalid literal for int() with base 10: 'A'
Traceback (most recent call last):
File "/root/linky/linky.py", line 164, in linky
frame[key] = int(val)
ValueError: invalid literal for int() with base 10: 'A'
ERROR: Etiquette : HHPHC Donnée : A
INFO: Trame reçue (10 étiquettes traités)
ERROR: Une exception s'est produite : string index out of range
Traceback (most recent call last):
File "/root/linky/linky.py", line 148, in linky
separator = line_str[-2]
IndexError: string index out of range
ERROR: Etiquette : MOTDETAT 000000 B Donnée :
ERROR: Une exception s'est produite : invalid literal for int() with base 10: 'BBR('
Traceback (most recent call last):
File "/root/linky/linky.py", line 164, in linky
frame[key] = int(val)
ValueError: invalid literal for int() with base 10: 'BBR('
ERROR: Etiquette : OPTARIF Donnée : BBR(
ERROR: Une exception s'est produite : invalid literal for int() with base 10: '----'
Traceback (most recent call last):
File "/root/linky/linky.py", line 164, in linky
frame[key] = int(val)
ValueError: invalid literal for int() with base 10: '----'
I tried to change the int(val) with str but not better.
Do you have an idea ?
Thank you ! :)
The text was updated successfully, but these errors were encountered: