bug acquisition script teleinfo standard
bug acquisition script teleinfo standard
Bonjour,
pour l'acquisition de ma production photovoltaïque, j'utilise depuis longtemps un script teleinfo python qui a fait l'objet d'une adaptation personnelle et qui a fait l'objet d'une mise au point icihttps://easydomoticz.com/forum/viewtopi ... 415#p95415.
Le problème que je rencontre est une erreur d'acquisition du second digit pour l'etiquette EAIT ainsi si mon compteur indique 9663798 l'acquisition me donne de temps en temps 9463798 et c'est toujours le second digit qui est concerné.
Il semble que ce soit un problème de stabilité qui devient plus fréquent quand les températures de Raspberry s'élèvent.
j'ai rajouté un ventilateur sur le raspi mais avec les températures actuelles cela ne semble pas suffisant.
Avez vous une idée de comment résoudre ce problème?.
Merci de votre aide,
knasson
pour l'acquisition de ma production photovoltaïque, j'utilise depuis longtemps un script teleinfo python qui a fait l'objet d'une adaptation personnelle et qui a fait l'objet d'une mise au point icihttps://easydomoticz.com/forum/viewtopi ... 415#p95415.
Le problème que je rencontre est une erreur d'acquisition du second digit pour l'etiquette EAIT ainsi si mon compteur indique 9663798 l'acquisition me donne de temps en temps 9463798 et c'est toujours le second digit qui est concerné.
Il semble que ce soit un problème de stabilité qui devient plus fréquent quand les températures de Raspberry s'élèvent.
j'ai rajouté un ventilateur sur le raspi mais avec les températures actuelles cela ne semble pas suffisant.
Avez vous une idée de comment résoudre ce problème?.
Merci de votre aide,
knasson
- Pièces jointes
-
- raspi2.jpg (247.69 Kio) Consulté 1526 fois
-
- raspi1.jpg (248.13 Kio) Consulté 1526 fois
Re: bug acquisition script teleinfo standard
salut, essaye d'enlever le couvercle de ton boitier, cela ventilera mieux le Pi. Tu peux aussi conserver la dernière valeur lue dans une variable, si la nouvelle est différente de l'ancienne de plus de 100 (par exemple) alors il ne faut pas la prendre en compte et attendre la prochaine.
Dz version : 2023.2
Rpi 4 avec dongle téléinfo, RFXCom, sondes 1-wire et GPIO
Rpi 4 avec dongle téléinfo, RFXCom, sondes 1-wire et GPIO
Re: bug acquisition script teleinfo standard
Sur le couvercle du Pi il y a le petit ventilo.
J'aime bien ton idée de stocker la dernière valeur dans une variable et de la tester , je vais essayer, mes connaissances en python sont limitées si tu peux aider?
J'aime bien ton idée de stocker la dernière valeur dans une variable et de la tester , je vais essayer, mes connaissances en python sont limitées si tu peux aider?
Code : Tout sélectionner
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
# __author__ = "Jordan Martin"
# __licence__ = "Apache License 2.0"
import serial
import logging
import subprocess
import requests
logging.basicConfig(level=logging.INFO, format='%(asctime)s %(message)s')
# Port serial
stty_port = '/dev/ttyUSB0'
# Clé à récupérer et id de l'info dans Jeedom (pas necessaire dans domoticz)
measure_keys = ['EAIT','SINSTI']
measures=[0,0]
def main():
logging.info('Starting...')
# Reconfigure le port serial pour eviter
# l'erreur: termios.error: (22, 'Invalid argument')
logging.info('Reconfigure stty %s' % stty_port)
subprocess.call(['stty', '-F', stty_port, 'iexten'])
with serial.Serial(port=stty_port, baudrate=9600, parity=serial.PARITY_EVEN, stopbits=serial.STOPBITS_ONE,
bytesize=serial.SEVENBITS, timeout=1) as ser:
logging.info('Reading on %s' % stty_port)
while True:
line = ser.readline()
arr = line.decode('ascii').split('\t')
if len(arr) != 3:
continue
send_measure(arr)
def send_measure(arr):
key = arr[0]
def main():
logging.info('Starting...')
# Reconfigure le port serial pour eviter
# l'erreur: termios.error: (22, 'Invalid argument')
logging.info('Reconfigure stty %s' % stty_port)
subprocess.call(['stty', '-F', stty_port, 'iexten'])
with serial.Serial(port=stty_port, baudrate=9600, parity=serial.PARITY_EVEN, stopbits=serial.STOPBITS_ONE,
bytesize=serial.SEVENBITS, timeout=1) as ser:
logging.info('Reading on %s' % stty_port)
while True:
line = ser.readline()
arr = line.decode('ascii').split('\t')
if len(arr) != 3:
continue
send_measure(arr)
def send_measure(arr):
key = arr[0]
if key not in measure_keys:
return False
if not verify_checksum(arr):
# logging.warn('checksum failure for %s' % key)
return False
value = int(arr[1])
if 'EAIT' in key:
EAIT = value
measures[0]=EAIT
if 'SINSTI' in key:
SINSTI = value
measures[1]=SINSTI
# print ("measures=", measures)
# on envoie dans la base que lorsque EAIT est non nulle (compteur totalisateur)
if measures[0] != 0:
x=requests.get("http://192.168.1.38:8080/json.htm?type=command¶m=udevice&idx=20&nvalue=0&svalue="+str(measures[1])+";"+str(measures[0]))
# print (x.status_code)
return True
Dernière modification par Keros le 15 août 2022, 15:54, modifié 2 fois.
Raison : Citation supprimée. Merci de ne pas citer le message précédent lors d'une réponse directe. Modification des balise quote en code
Raison : Citation supprimée. Merci de ne pas citer le message précédent lors d'une réponse directe. Modification des balise quote en code
Re: bug acquisition script teleinfo standard
Le plugin inclu prend en charge le mode standard et gère justement le contrôle d'erreur.
Pourquoi ne pas l'utiliser ?
Je ne sais pas ce qu'il vaut, je suis en historique.
Pourquoi ne pas l'utiliser ?
Je ne sais pas ce qu'il vaut, je suis en historique.
Re: bug acquisition script teleinfo standard
Bonjour,
Merci pour cette reponse, j'ai bien noté que le plugin concerne aussi en principe le mode standard mais ca ne fonctionne pas.
Merci pour cette reponse, j'ai bien noté que le plugin concerne aussi en principe le mode standard mais ca ne fonctionne pas.
2022-08-16 07:47:50.317 Error: Production_solaire: CRC check failed on Teleinfo line 'EASD03 0000000000 #' using both modes 1 and 2. Line skipped.
2022-08-16 07:47:50.353 Error: Production_solaire: CRC check failed on Teleinfo line 'EAIT' using both modes 1 and 2. Line skipped.
2022-08-16 07:47:50.513 Error: Production_solaire: CRC check failed on Teleinfo line 'RQ ^ ' using both modes 1 and 2. Line skipped.
2022-08-16 07:47:50.663 Error: Production_solaire: CRC check failed on Teleinfo line 'SISTS 00000 F' using both modes 1 and 2. Line skipped.
2022-08-16 07:47:50.727 Error: Production_solaire: CRC check failed on Teleinfo line 'SM' using both modes 1 and 2. Line skipped.
2022-08-16 07:47:50.765 Error: Production_solaire: CRC check failed on Teleinfo line 'SMAXS-1 E220' using both modes 1 and 2. Line skipped.
2022-08-16 07:47:50.864 Error: Production_solaire: CRC check failed on Teleinfo line 'SMAXIN.' using both modes 1 and 2. Line skipped.
2022-08-16 07:47:51.060 Error: Production_solaire: CRC check failed on Teleinfo line 'M MESSAGE <' using both modes 1 and 2. Line skipped.
2022-08-16 07:47:51.108 Error: Production_solaire: CRC check failed on Teleinfo line 'PM 1<' using both modes 1 and 2. Line skipped.
2022-08-16 07:47:51.203 Error: Production_solaire: CRC check failed on Teleinfo line 'RELAIS 000' using both modes 1 and 2. Line skipped.
2022-08-16 07:47:51.235 Error: Production_solaire: CRC check failed on Teleinfo line 'NJOURF+1 00 ' using both modes 1 and 2. Line skipped.
2022-08-16 07:47:51.379 Error: Production_solaire: CRC check failed on Teleinfo line 'PJOURF+1 00008001 NONUTILE ONUTIL' using both modes 1 and 2. Line skipped.
2022-08-16 07:47:51.537 Error: Production_solaire: CRC check failed on Teleinfo line 'VTIC 02 J747 NUR .' using both modes 1 and 2. Line skipped.
2022-08-16 07:47:51.617 Error: Production_solaire: CRC check failed on Teleinfo line 'LTARF INDEX NON CON00000394 _' using both modes 1 and 2. Line skipped.
2022-08-16 07:47:51.778 Error: Production_solaire: CRC check failed on Teleinfo line 'E4 20 #0000000 %' using both modes 1 and 2. Line skipped.
2022-08-16 07:47:52.026 Error: Production_solaire: CRC check failed on Teleinfo line 'EAF09 000000000 * "' using both modes 1 and 2. Line skipped.
2022-08-16 07:47:52.058 Error: Production_solaire: CRC check failed on Teleinfo line 'ASD01 000000394 0' using both modes 1 and 2. Line skipped.
2022-08-16 07:47:52.534 Error: Production_solaire: CRC check failed on Teleinfo line 'SISTS 00000 F' using both modes 1 and 2. Line skipped.
2022-08-16 07:47:52.673 Error: Production_solaire: CRC check failed on Teleinfo line 'SMAXSN E220816064133 00020 05071652 00020 Q' using both modes 1 and 2. Line skipped.
2022-08-16 07:47:52.729 Error: Production_solaire: CRC check failed on Teleinfo line 'SMAXIN.' using both modes 1 and 2. Line skipped.
2022-08-16 07:47:52.867 Error: Production_solaire: CRC check failed on Teleinfo line 'MOY1.=' using both modes 1 and 2. Line skipped.
2022-08-16 07:47:53.073 radiateursalon2kw(Inv): onHeartbeat called
2022-08-16 07:47:53.000 Error: Production_solaire: CRC check failed on Teleinfo line 'MSG1 MESSAGE <527 <' using both modes 1 and 2. Line skipped.
2022-08-16 07:47:53.032 Error: Production_solaire: CRC check failed on Teleinfo line 'NARF' using both modes 1 and 2. Line skipped.
Re: bug acquisition script teleinfo standard
Elle est là la racine de ton problème.
Ta connexion n'est pas propre entre ton linky et ta clé USB.
Domoticz détecte des trames malformées et les droppe, ce que ne fait pas ton script.
Essaye avec une rallonge USB et moins de longueur entre ta clé et le compteur.
Ta connexion n'est pas propre entre ton linky et ta clé USB.
Domoticz détecte des trames malformées et les droppe, ce que ne fait pas ton script.
Essaye avec une rallonge USB et moins de longueur entre ta clé et le compteur.
Re: bug acquisition script teleinfo standard
1) le plugin teleinfo marche impeccable en mode historique avec l'interface serie du RASPI /dev/ttyAMA0
2)Pour l mode Standard: la clé USB est connectée sur le RPI donc pas de câble, le câble entre le compteur linky et la clé USB fait 80 cm et le blindage est relié a la terre;
Comment faire mieux?
3) je ne vois pourquoi tu interprètes le log du plugin comme démontrant une mauvaise connexion. Moi j'y vois plutôt une mauvaise séparation des modes 1 et 2.
2)Pour l mode Standard: la clé USB est connectée sur le RPI donc pas de câble, le câble entre le compteur linky et la clé USB fait 80 cm et le blindage est relié a la terre;
Comment faire mieux?
3) je ne vois pourquoi tu interprètes le log du plugin comme démontrant une mauvaise connexion. Moi j'y vois plutôt une mauvaise séparation des modes 1 et 2.
Re: bug acquisition script teleinfo standard
1)Le mode historique tourne à une vitesse moins élevée, ce qui le rend plus robuste aux interférences.
2)80cm, même blindé, ça peut être trop long.
Pour faire mieux, déporter la clé au plus prêt du linky.
Le Pi est connu pour parasiter pas mal son environement au niveau de l'USB3. Essaie de brancher sur l'usb2 pour commencer.
3)
Même chose qu'ici : https://easydomoticz.com/forum/viewtopi ... 38#p106238
2)80cm, même blindé, ça peut être trop long.
Pour faire mieux, déporter la clé au plus prêt du linky.
Le Pi est connu pour parasiter pas mal son environement au niveau de l'USB3. Essaie de brancher sur l'usb2 pour commencer.
3)
ça veut dire que la trame reçue est incorrect. Peu importe le calcul CRC utilisé (mode 1 ou 2) le checksum ne correspond pas à celui que devrait avoir la trame.CRC check failed on Teleinfo line 'VTIC 02 J747 NUR .' using both modes 1 and 2. Line skipped.
Même chose qu'ici : https://easydomoticz.com/forum/viewtopi ... 38#p106238
Re: bug acquisition script teleinfo standard
Merci des conseils que je suis a la lettre,
j'ai mis mon interface USB au bout d'une rallonge USB, raccourci le câble entre l'interface et le linky (environ 20 cm) le blindage relie a la masse
le lancement du plugin en mode standard me donne toujours les mêmes erreurs de CRC et il ne crée pas les "dispositifs".
je vais quand même vérifier avec mon script pour voir si j'ai diminué ou supprimer les erreurs d'acquisition.
A ma connaissance personne n'utilise le plugin pour le mode "standard", ou du moins si quelqu'un l'utilise et que ca fonctionne je suis très intéressé. Je vais me renseigner sur le forum.
je vous tiens au courant.
knasson
j'ai mis mon interface USB au bout d'une rallonge USB, raccourci le câble entre l'interface et le linky (environ 20 cm) le blindage relie a la masse
le lancement du plugin en mode standard me donne toujours les mêmes erreurs de CRC et il ne crée pas les "dispositifs".
je vais quand même vérifier avec mon script pour voir si j'ai diminué ou supprimer les erreurs d'acquisition.
A ma connaissance personne n'utilise le plugin pour le mode "standard", ou du moins si quelqu'un l'utilise et que ca fonctionne je suis très intéressé. Je vais me renseigner sur le forum.
je vous tiens au courant.
knasson
Re: bug acquisition script teleinfo standard
bonjour,
après éloignement du dongle usb du raspberry, raccourcissement du câble:
- toujours les mêmes erreurs de CRC avec le plugin
- je n'ai plus de problème d'erreurs d'acquisition avec mon script python.
j'ai fait vérifier les valeurs de résistances de mon dongle par son concepteur (Charles hallard) RAS.
les valeurs ont déjà été modifiées par rapport au schéma (en particulier R1=470 Ohms)
j'ai recu un schema qui devrait fonctionner de la part du concepteur du plugin. (R2=470 ohms comme R1 sur mon dongle tindie et R1 =4,7kohms)
j'avoue que je ne sais plus trop quoi faire....
après éloignement du dongle usb du raspberry, raccourcissement du câble:
- toujours les mêmes erreurs de CRC avec le plugin
- je n'ai plus de problème d'erreurs d'acquisition avec mon script python.
j'ai fait vérifier les valeurs de résistances de mon dongle par son concepteur (Charles hallard) RAS.
les valeurs ont déjà été modifiées par rapport au schéma (en particulier R1=470 Ohms)
j'ai recu un schema qui devrait fonctionner de la part du concepteur du plugin. (R2=470 ohms comme R1 sur mon dongle tindie et R1 =4,7kohms)
j'avoue que je ne sais plus trop quoi faire....
- Pièces jointes
-
- schma-final-tlinfo-transistor-fet.jpg (36.1 Kio) Consulté 1345 fois
-
- Capture d’écran 2022-08-24 152133.jpg (42.16 Kio) Consulté 1345 fois
-
- microusb.jpeg (2.05 Mio) Consulté 1345 fois