téléinfo 2 compteurs / usb sous linux

Solution à base d'un PC et d'un logiciel (Misterhouse, Domotiga, Heyu, etc). Vous trouverez ici de l'aide pour installer, configurer ou développer des scripts sur ces logiciels. Les principaux langages sont Perl, Java, Shell Unix, Php, etc

Re: téléinfo 2 compteurs / usb sous linux

Messagede doudy » 18 Juin 2014, 15:47

Bonjour Frédéric,

Ce petit up pour te donner des nouvelles.
La lecture du téléinfo par Raspberry fonctionne impeccablement (toutes les 5')
Je complète un fichier CSV mensuel via ton programme teleinforeader
Je lance jsunnyreports(version LINUX) toutes les 15 minutes pour la miseĂ  jour du site.

Si cela peux intéresser quelqu'un, voici comment j'ai configuré CRONTAB :
Code: Tout sélectionner
$ sudo crontab -e


Code: Tout sélectionner
*/5 6-21 * * * /usr/bin/python /home/pi/MesScripts/teleinforeader.py -r
SHELL=/bin/bash
HOME=/home/pi/jsr
*/15 7-20 * * * /bin/sh /home/pi/jsr/jsunnyreports.sh


Voilà je ne sais pas si c'est très élégant mais cela fonctionne impeccablement.
:wink:
doudy
P'tit Guru de domotique
 
Messages: 57
Inscription: 27 DĂ©c 2013, 14:08

Re: téléinfo 2 compteurs / usb sous linux

Messagede Nono007 » 27 DĂ©c 2018, 18:55

Bonjour

Je me permet de déterrer ce sujet. En effet depuis des années j'utilise un script python sur la base de ce qui a été fait ici.
Hier, j'ai, suite a une petite corruption de carteSD sur un Raspi-Zero, j'ai réinstaller une Raspian à jour, soit sous stretch au lieu de Jessy (de mémoire)
Après avoir refais les configurations UDEV, je passe au Python et là surprise, le module
python-ftdi
n'est plus disponible.
En cherchant un peu je trouve le
python-ftdi1
.
J'installe ce dernier et commence a réadapter le code comme ci-dessous (base du code de test du debut du thead)
Code: Tout sélectionner
#!/usr/bin/python
# -*- coding: utf-8 -*-
# Samuel Buffet samuel DOT buffet AT gmail DOT com
#
# Prototype d'utilisation du "Modem Téléinformation EDF - 2 compteurs"
# Ce modem est commercialisé par le site "http://www.planete-domotique.com"
#
# Sous Ubuntu (testé avec Karmic) vous devez ajouter une règle udev
# pour que le convertisseur serie/usb du module fonctionne
# sous etc/udev/rules.d  crĂ©ez un nouveau fichier "teleinfoftdi.rules"
#
#       # USB-Serial Converter FTDI
#       ATTR{idVendor}=="0403", ATTR{idProduct}=="6001", MODE="660", GROUP="dialout"
#
# vous devez ensuite installer la lib python-ftdi (sudo apt-get install python-ftdi)
#
# Et voilà c'est pas fini mais avec ça vous devriez pouvoir finir.
#

PORT_1  = 0x11
PORT_2  = 0x22
NO_PORT = 0x00

import ftdi1 as ftdi
import time

# Création du context
ftdic = ftdi.new()

# Initialisation du context
if ftdi.init(ftdic) < 0:
    print "Ă©chec de l'initialisation'"
    exit(-1)

# Ouverture du port
ret = ftdi.usb_open(ftdic, 0x0403, 0x6001)
if (ret) < 0:
    print "Impossible d'ouvrir :" + repr(ret) + "(" + ftdi.get_error_string(ftdic) + ")"
    exit(-1)


ftdi.set_baudrate(ftdic, 1200)
# Pour une obscure raison pour le moment il faut mettre ftdi.BITS_8
# et non ftdi.BITS_7 comme indiqué dans la spec pour que cela fonctionne ???
ftdi.set_line_property(ftdic, ftdi.BITS_8, ftdi.EVEN, ftdi.STOP_BIT_1)


# Activation du compteur 1 et lecture de qqes Frames
print "activation du compteur 1"
ftdi.set_bitmode(ftdic, PORT_1, ftdi.BITMODE_CBUS);
i = 0
buf = ' '
frame = 'Frame:'
f = ftdi.read_data(ftdic, buf)
while i<=2:
   f = ftdi.read_data(ftdic, buf)

   if f != 0 :
     if ord(buf) == 3:
        print frame
        print ""
        frame = 'Frame:'
        i+=1
     else:
       frame += chr(ord(buf) & 0x07f)

   time.sleep(0.01)


# Exemple de desactivation des compteurs
print "désactivation"
ftdi.set_bitmode(ftdic, NO_PORT, ftdi.BITMODE_CBUS);
time.sleep(1);


ret =ftdi.usb_close(ftdic)
if ret < 0:
    print "erreur fermeture"
    exit(-1)

deinit(ftdic);

del ftdic
exit(0)




Mais, après plusieurs heure pour réussir a adapter le script, j'arrive sur la fonction "ftdi.read_data(ftdic, buf)", et la le beau message d'erreur ERREUR DE SEGMENTATION.
En cherchant un peu, je découvre l'outil "gdb" pour avoir plus de détail :

Code: Tout sélectionner
(gdb) run Test_20181227.py
Starting program: /usr/bin/python Test_20181227.py
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/arm-linux-gnueabihf/libthread_db.so.1".
[New Thread 0xb69e6470 (LWP 1566)]
activation du compteur 1

Thread 1 "python" received signal SIGSEGV, Segmentation fault.
0xb6fb8d84 in memcmp () from /usr/lib/arm-linux-gnueabihf/libarmmem.so


Maintenant je ne sais plus quoi faire :-(

Quelqu'un aurait-il une idée ?
Comment gérer vous la carte téléinfo 2 compteurs en USB sous Linux (RaspiZero)
Linux RaspiZero-EDF 4.14.79+ #1159 Sun Nov 4 17:28:08 GMT 2018 armv6l GNU/Linux

Merci
Fibaro HC2
Server : ZOTAC ZBOX AD02 / Ubuntu + VMware XP pour HomeSeer
TéléInfo
Z-Wave : AEON stick + divers module prise / interrupteur + Detecteur de mouvement et de porte
1-wire : DS18B20 x 6 (chambre, salon, ext, cuisine, réfrigérateur et freezer)
HomeSeer 2 Pro + qq plugin
HomeSeer 3 Pro
HSTouch
RFXCOM Send/Receive LAN
Karotz / Nabaztag
---- Plus Utilisé -------
Interface CM15Pro
X10 : AM12 x1 LM12 x1 LW12(XDOM) x2 + 2 RPT (XDOM)
Home Troller Zee
Nono007
Guru de domotique
 
Messages: 104
Inscription: 04 Avr 2008, 22:15
Localisation: Cergy

Re: téléinfo 2 compteurs / usb sous linux

Messagede destroyedlolo » 27 DĂ©c 2018, 19:15

Salut,
J'utilise un BananaPI qui a 4 ports UArt donc pas besoin de FDTI ... mais ton problème n'est pas la : les "ports" FDTI apparaissent en temps que /dev/ttyUSB<qqchose> (/dev/ttyUSB0, USB1, ...).
Je ne vois absolument pas l'interet de passer par un module python spécifique ... alors que tu n'as juste qu'a lire les ttyUSB sus nommés.
Plus d'info sur mon site : http://destroyedlolo.info/BananaPI/TeleInformation/ (que ce soit des ttyS ou ttyUSB, les commandes seront les mĂŞmes).

A+
  • BananaPI sous Gentoo, disque SATA de 2 To
  • RĂ©seau 1-wire
  • TĂ©lĂ©Information pour la conso et la production Ă©lectrique
  • Tablette anciennement Android passĂ©e sous Gentoo comme tableau de bord.
  • Multimedia par DNLA
  • Et pleins de nouvelles idĂ©es ... et bien sur, pas assez de temps.
Sur mon site un descriptif de ma domotique 100% fait maison.
destroyedlolo
Dieu de domotique
 
Messages: 400
Inscription: 23 Nov 2015, 16:03
Localisation: A côté d'Annecy

Re: téléinfo 2 compteurs / usb sous linux

Messagede Nono007 » 27 DĂ©c 2018, 19:27

Merci destroyedlolo pour ton retour

Effectivement en utilisant des UART différèrent ce sera plus simple, mais cela remet en cause ce qui est en place depuis des années juste pour un problème de soft.
Cependant j'y pense en effet. Mais comme ce n'est pas pour chez moi, je n'ai pas tous mon matériel avec moi pour changer l'existant.
L'autre idée auquel j'avais pensé était de passer par un arduino avec connectique wifi (pas de réseau disponible là ou sont les compteurs).

Sinon en attendant que je travail sur la partie "production" suite au passage en Linky, je vais repasser le module 2 compteur en 1 compteur et passer directement avec ttyAMA0 ou ttyUSBx.

Mais je peux garder le module 2 compteurs USB, ça me simplifierai mes interventions ;-)

Encore merci pour le lien de ton site, cela reste très intéressant
Fibaro HC2
Server : ZOTAC ZBOX AD02 / Ubuntu + VMware XP pour HomeSeer
TéléInfo
Z-Wave : AEON stick + divers module prise / interrupteur + Detecteur de mouvement et de porte
1-wire : DS18B20 x 6 (chambre, salon, ext, cuisine, réfrigérateur et freezer)
HomeSeer 2 Pro + qq plugin
HomeSeer 3 Pro
HSTouch
RFXCOM Send/Receive LAN
Karotz / Nabaztag
---- Plus Utilisé -------
Interface CM15Pro
X10 : AM12 x1 LM12 x1 LW12(XDOM) x2 + 2 RPT (XDOM)
Home Troller Zee
Nono007
Guru de domotique
 
Messages: 104
Inscription: 04 Avr 2008, 22:15
Localisation: Cergy

Re: téléinfo 2 compteurs / usb sous linux

Messagede destroyedlolo » 27 DĂ©c 2018, 20:15

Je me suis mal exprimé : tu n'as pas a changé ton matos.
Les FDTI s'exposent sous Linux en temps que /dev/USB* . Il faut par contre que tu changes ton code :)
  • BananaPI sous Gentoo, disque SATA de 2 To
  • RĂ©seau 1-wire
  • TĂ©lĂ©Information pour la conso et la production Ă©lectrique
  • Tablette anciennement Android passĂ©e sous Gentoo comme tableau de bord.
  • Multimedia par DNLA
  • Et pleins de nouvelles idĂ©es ... et bien sur, pas assez de temps.
Sur mon site un descriptif de ma domotique 100% fait maison.
destroyedlolo
Dieu de domotique
 
Messages: 400
Inscription: 23 Nov 2015, 16:03
Localisation: A côté d'Annecy

Re: téléinfo 2 compteurs / usb sous linux

Messagede Nono007 » 27 DĂ©c 2018, 20:19

Oui je suis d'accord avec toi mais le module 2 compteurs USB n'affiche qu'un device usb (ttyUSB0 dans mon cas) du coup comment identifier le compteur 1 du 2 ?

Je vais quand même creuser de ce coté, peut être un autre langage que Python, ou par des règle UDEV (ou autre)

Merci
Fibaro HC2
Server : ZOTAC ZBOX AD02 / Ubuntu + VMware XP pour HomeSeer
TéléInfo
Z-Wave : AEON stick + divers module prise / interrupteur + Detecteur de mouvement et de porte
1-wire : DS18B20 x 6 (chambre, salon, ext, cuisine, réfrigérateur et freezer)
HomeSeer 2 Pro + qq plugin
HomeSeer 3 Pro
HSTouch
RFXCOM Send/Receive LAN
Karotz / Nabaztag
---- Plus Utilisé -------
Interface CM15Pro
X10 : AM12 x1 LM12 x1 LW12(XDOM) x2 + 2 RPT (XDOM)
Home Troller Zee
Nono007
Guru de domotique
 
Messages: 104
Inscription: 04 Avr 2008, 22:15
Localisation: Cergy

Précédente

Retourner vers Logiciel - Les autres logiciels pour la domotique

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité

Copyright © 2011 - Touteladomotique.com - Tous droits rĂ©servĂ©s
Les blogs partenaires : Abavala, Domo-Blog, Domotique34, Maison et Domotique


cron