erreur tlf_get_frame timeout expired



  • Bonjour,
    Tout d’abord un grand merci pour votre programme;
    quand j’utilise la commande

    teleinfo -m test” 
    

    cela fonctionne bien mais si j’utilise entre autres

    teleinfo -m r -g ADCO” 
    

    ou

    teleinfo -m r -q -v” 
    

    je me retrouve avec une erreur tlf_get_frame() time out expired dans le syslog.
    Autre question concernant l’option network du fichier de configuration ,mon raspberry est à l’adresse 192.168.0.16 ,faut il mettre cette adresse ou 192.168.0.255?
    merci pour votre réponse
    jcmmu


  • Staff

    Bonjour,

    Si le mode test fonctionne c’est que tout va bien ;-)
    Pour le mode receive (-m r) c’est normal que çà ne fonctionne pas car vous n’avez pas de serveur qui envoi (-m s). La configuration la plus appropriée dépend vraiment de ce que vous souhaitez faire mais pour le test que vous citez il faut :

    1. lancer le daemon sur la machine ou est connecté physiquement la téléinfo avec teleinfo -m s -d
    2. lancer ensuite le test (qui peut aussi être lancé depuis une autre machine) teleinfo -m r -q -v

    Pour l’adresse IP, il faut mettre l’adresse de broadcast du réseau en question, dans votre cas 192.168.0.255

    Je conseille fortement que le point 1 soit réalisé au boot par un startup script comme expliqué dans l’article correspondant


  • Staff

    Bonjour,

    Les notifications du forum ne fonctionnaient pas, vous n’avez donc pas été notifié de mes réponses. C’est maintenant corrigé.

    Charles



  • Salut,

    Suite a ton commentaire sur magdiblog j’ai installer ton script sur mon raspi (modèle B)

    Quand je tape

    teleinfo -q -v 
    

    j’ai tlf_get_frame() Time-Out Expired qui s’affiche ..

    root@raspberrypi:/home/pi# teleinfo -q -v
    teleinfo v1.0.8
    — Serial Stuff —
    tty device : /dev/ttyAMA0
    flowcontrol : none
    baudrate is : 1200
    parity is : even
    databits are : 7
    — MySql Stuff —
    mySQL insert : Enabled
    Server is : localhost:3306
    Database is : teleinfo
    Login is : teleinfo
    Password is : teleinfo
    Table is : DbiTeleinfo
    — Other Stuff —
    network is : 192.168.1.255
    udp port is : 1200
    mode is : receive
    fetch value is :
    nolock is : no
    verbose is : yes
    Opened Socket
    Curl Initialized
    Binded on port 1200
    Inits succeded, waiting network frame
    tlf_get_frame() Time-Out Expired
    teleinfo 1.0.8 Statistics
    ==========================
    Frames Sent : 0
    Frames checked : 0
    Frames OK : 0
    Checksum errors : 0
    Frame format Errors : 0
    Frame size Errors : 0
    MySQL init OK : 0
    MySQL init errors : 0
    MySQL connect OK : 0
    MySQL connect errors: 0
    MySQL queries OK : 0
    MySQL queries errors: 0
    EmonCMS total post : 0
    EmonCMS post OK : 0
    EmonCMS post errors : 0
    EmonCMS timeout : 0
    ————————–
    Closing teleinfo due to error
    root@raspberrypi:/home/pi#
    

    Je shouaite juste utiliser le rpi pour stocker les trames dans une bdd et pouvoir afficher des graphique en local (je pense me tourner vers une version local de emoncms

    Merci et c’est une bonne idée le forum ;-)


  • Staff

    Salut,

    Tu lances le programme en more “receive” mais tu n’as pas de daemon qui envoi la téléinfo (mode send), donc effectivement il ne trouve pas de trame et s’arrête.

    As tu fais les point 1 ET 2 dans l’ordre indiqué de ma réponse précédente, car ça doit fonctionner ?

    Dans ton cas il faut mettre dans le fichier de config teleinfo.conf les paramètres suivants (pour ne pas que le daemon s’en charge) sans toucher aux autres.

    mysql=0 
    emoncms = 0
    network = 192.168.0.255
    

    Ensuite lancer le daemon (n’oublies pas après de le mettre en automatique au démarrage de la machine) sur la machine ou est connecté physiquement la téléinfo avec

    teleinfo -m s -d
    

    Puis ensuite, par exemple toutes les 5 minute lancer l’import dans la base sql par un

    teleinfo -m r -q -v


  • Wow quel ping 😀

    Oui j’ai bien fait les manip mais j’ai toujours la même érreur

    j’ai parlé trop vite : j’ai une ligne qui a été créer dans ma bdd mais j’ai toujours

    teleinfo v1.0.8
    — Serial Stuff —
    tty device : /dev/ttyAMA0
    flowcontrol : none
    baudrate is : 1200
    parity is : even
    databits are : 7
    — MySql Stuff —
    mySQL insert : Enabled
    Server is : localhost:3306
    Database is : teleinfo
    Login is : teleinfo
    Password is : teleinfo
    Table is : DbiTeleinfo
    — Other Stuff —
    network is : 192.168.0.255
    udp port is : 1200
    mode is : receive
    fetch value is :
    nolock is : no
    verbose is : yes
    Opened Socket
    Curl Initialized
    Binded on port 1200
    Inits succeded, waiting network frame
    tlf_get_frame() Time-Out Expired
    teleinfo 1.0.8 Statistics
    ==========================
    Frames Sent : 0
    Frames checked : 0
    Frames OK : 0
    Checksum errors : 0
    Frame format Errors : 0
    Frame size Errors : 0
    MySQL init OK : 0
    MySQL init errors : 0
    MySQL connect OK : 0
    MySQL connect errors: 0
    MySQL queries OK : 0
    MySQL queries errors: 0
    EmonCMS total post : 0
    EmonCMS post OK : 0
    EmonCMS post errors : 0
    EmonCMS timeout : 0
    ————————–
    Closing teleinfo due to error
    

    Pour lancer le commande toute les 5 minutes tu passe par cron ?



  • Comment fait-on pour changer le time out (ou se trouve le fichier) ?


  • Staff

    Le timeout est positionné à 10 secondes dans la fonction tlf_get_frame, ce qui est plus que suffisant normalement.

    C’est à la ligne int timeout = 100; c’est 100 * 100ms donc 10s

    Je penche plutot pour un problème réseau, peux-tu aussi me donner le résulat d’un

    sudo ifconfig
    

    sur ton Pi ?

    Ah oui, aussi, une fois que tu as lancé le deamon par

    teleinfo -m s -d
    

    peux tu me lister les logs associés du syslog par un

    sudo cat /var/log/syslog | grep teleinfo 
    

    Merci à toi


Log in to reply
 

Looks like your connection to hallard.me's community was lost, please wait while we try to reconnect.