Dongle USB permettant de récupérer les trames téléinformation
Suivez mes nouveautés et autres projets sur mon blog
New V3.0
- Remplacement R3 par un potentiomètre
- Led séparées RX / TX
Prototype V3.0
- Réduction taille PCB
- Ajout LED information signal TIC
- Test Led Rouge/Vert pour RX/TX
- Test avec connecteur USB PTH/SMD
- Ajustement résistance TIC 220 Ohm
- Ajustement résistance MOSFET 3.3KOhm
- Changement chip FT230XS par CH9106
V2.0
- Version historique
V3.0 VS V2.0
Les tests suivants sont réalisés depuis un terminal (ou via SSH) sur Rapsberry PI, veillez à bien toujours avoir votre PI à jour avec les commandes suivantes
sudo apt-get update
sudo apt-get upgrade
Lancer un terminal (ou via SSH), connecter le module puis faites un dmesg -e
[Dec27 11:25] usb 1-1.4: new full-speed USB device number 30 using dwc_otg
[ +0.144735] usb 1-1.4: New USB device found, idVendor=1a86, idProduct=55d4, bcdDevice= 4.43
[ +0.000022] usb 1-1.4: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[ +0.000016] usb 1-1.4: Product: uTinfo-V3.0
[ +0.000015] usb 1-1.4: Manufacturer: CH2i
[ +0.000014] usb 1-1.4: SerialNumber: TINFO-2000
[ +0.001248] cdc_acm 1-1.4:1.0: ttyACM0: USB ACM device
On voit bien que le module est bien detecté, dans notre cas le nom de device /dev/ttyACM0
Brancher le connecteur vert du module avec un cable (un petit cable fait parfaitement l'affaire comme téléphonique, réseau, alim LED, ...) sur le compteur aux bornes I1 et I2, peut importe le sens ce n'est pas polarisé.
La Led bleu doit clignoter très rapidement (ou être quasi allumée) indiquant que le signal téléinfo est bien présent.
Le 1er test est avec un terminal série nommé picocom
, installation via
sudo apt-get install picocom
Puis lancer la commande suivante si vous êtes en mode historique
pi@pi03:~ # picocom -b 1200 -d 7 -p e -f n /dev/ttyACM0
Ou celle ci en mode standard
pi@pi03:~ # picocom -b 9600 -d 7 -p e -f n /dev/ttyACM0
Vous devriez voir arriver des données sur le termimal
picocom v3.1
port is : /dev/ttyACM0
flowcontrol : none
baudrate is : 1200
parity is : even
databits are : 7
stopbits are : 1
escape is : C-a
local echo is : no
noinit is : no
noreset is : no
hangup is : no
nolock is : no
send_cmd is : sz -vv
receive_cmd is : rz -vv -E
imap is :
omap is :
emap is : crcrlf,delbs,
logfile is : none
initstring : none
exit_after is : not set
exit is : no
Type [C-a] [C-h] to see available commands
Terminal ready
HCHP 002784502 /
PTEC HP..
IINST 001 X
IMAX 002 A
PAPP 00200 #
HHPHC A ,
MOTDETAT 000000 B
ADCO 021528603314 :
OPTARIF HC.. <
ISOUSC 15 <
HCHC 001096011 X
HCHP 002784502 /
PTEC HP..
IINST 001 X
IMAX 002 A
PAPP 00180 *
HHPHC A ,
MOTDETAT 000000 B
ADCO 021528603314 :
OPTARIF HC.. <
Terminating...
Skipping tty reset...
Thanks for using picocom
root@pi03:~ #
PS : Pour quitter picocom il faut faire CTRL-A
puis immédiatement CRTL-Q
De plus lorsque picocom est actif et les données reçues par le PI la LED rouge doit aussi se mettre à clignoter
Un programme de test basic a aussi été réalisé en python, vous trouverez toute la documentation sur le repo suivant https://github.com/hallard/teleinfo-test
Un programme plus avancé été réalisé en python (merci à l'auteur original), vous trouverez toute la documentation sur le repo suivant https://github.com/hallard/python-teleinfo
En utilisant le module avancé ci dessous il est extrèmement simple de faire un script python qui publie les données dans MQTT
Installation de la librairie paho-mqtt et des outils MQTT
pi@pi03:~ # sudo apt-get install mosquitto-clients
pi@pi03:~ # pip install paho-mqtt
Créer le script suivant dans le dossier python-teleinfo, par exemple test.py
#!/usr/bin/env python
import json
import paho.mqtt.client as mqtt
from teleinfo import Parser
from teleinfo.hw_vendors import UTInfo3
ti = Parser(UTInfo3())
client = mqtt.Client("PI-Demo1")
client.connect("test.mosquitto.org")
while True:
data = json.dumps(ti.get_frame())
print(data)
client.publish("teleinfo/demo", data)
Puis le lancer via
pi@pi03:~/python-teleinfo $ python test.py
Enfin ouvrez un autre shell sue le PI (ou lancer la commande sur votre ordinateur ou utiliser un outil type MQTT Explorer) et vérifier les publication dans MQTT
Et voila le résultat
pi@pi03:~ # mosquitto_sub -h test.mosquitto.org -t "teleinfo/#"
{"IINST": "001", "MOTDETAT": "000000", "OPTARIF": "HC..", "ADCO": "021528603314", "HCHC": "001096011", "PAPP": "00170", "IMAX": "002", "PTEC": "HP..", "ISOUSC": "15", "HHPHC": "A", "HCHP": "002785290"}
{"IINST": "001", "MOTDETAT": "000000", "OPTARIF": "HC..", "ADCO": "021528603314", "HCHC": "001096011", "PAPP": "00160", "IMAX": "002", "PTEC": "HP..", "ISOUSC": "15", "HHPHC": "A", "HCHP": "002785291"}
{"IINST": "001", "MOTDETAT": "000000", "OPTARIF": "HC..", "ADCO": "021528603314", "HCHC": "001096011", "PAPP": "00180", "IMAX": "002", "PTEC": "HP..", "ISOUSC": "15", "HHPHC": "A", "HCHP": "002785291"}
Bien entendu c'est un exemple, il faudrait parser les valeurs, potentiellement les convertir en nombre et faire un peu de gestion d'erreur mais les bases fonctionnelles sont là.
Schémas
Cartes
Si vous rencontrez le moindre soucis ou si vous voulez simplement discuter de votre projet avec ce module n'hésitez pas à utiliser le forum communautaire
This work is licensed under a Creative Commons Attribution-NonCommercial 4.0 International License
If you want to do commercial stuff with this project, please contact CH2i company so we can organize an simple agreement.
Vous pouvez commander ce module assemblé et prêt à l'emploi sur tindie