Le Blog de C-quad

Archive pour mai 2012

Récupérer la téléinformation avec un Arduino (suite)

Je vous avais parlé, il y a déjà un bout de temps de la méthode afin de récupérer la trame téléinformation EDF à partir d’un arduino. Le défaut de cette méthode, c’est que la trame est « brute ». Je trouvais dommage de ne pas la décoder directement au niveau de l’arduino et n’envoyer que les informations utiles.

Je me suis donc attelé à cette tâche.

Décodage de la trame téléinformation via arduino

Pour rappel, la trame « brute » ressemble à ceci :

ADCO 02092xxxxxx @
OPTARIF HC.. <
ISOUSC 45 ?
HCHC 010956910 %
HCHP 016779643 >
PTEC HP..
IINST 021 Z
IMAX 047 J
PAPP 04860 3
HHPHC A ,
MOTDETAT 000000 B

Le premier fichier (ar_teleinfo)  permet de récupérer et décoder la trame de téléinformation.
Une trame commence par le caractère 0x02 et se termine par le caractère 0x03. Celle ci est composée de groupes.Un groupe commence par 0x0A et se termine par un retour chariot 0x0D.

Une fois qu’on est arrivé au niveau des groupes nous allons pouvoir récupérer les informations intéressantes.

Un groupe est composé :

  • d’une étiquette
  • un espace 0x20
  • une valeur
  • un espace 0x20
  • un caractère de checksum

Il nous reste donc à traiter les chaines de caractères comprises entre les espaces. Le checksum va nous permettre de vérifier que les valeurs récupérées correspondent bien à ce qui nous a été envoyé.

Le deuxième fichier (xpl_teleinfo) sert a envoyé une trame xpl contenant les informations qui ont été décodées précédemment.

Le troisième fichier (time) va permettre d’envoyer le messge xpl-stat et hbeat régulièrement.

Pour votre installation, il est nécessaire de modifier les constantes en début de programme (ar_teleinfo) afin de spécifier notamment l’adresse ip de l’arduino, ainsi que l’intervalle désiré d’envoi de trames xpl.

Récupérer la téléinformation sous domogik

Maintenant que nous décodons et envoyons les trames téléinformation via xpl, nous pouvons nous atteler à les récupérer sous domogik.

Pré-requis: disposer au minimum de la version 0.20alpha1 de domogik.

La version 0.20 de domogik apporte une fonctionnalité très interessante pour la gestion des plugins et external, c’est que ceux ci sont gérés indépendament de domogik et s’installent sous forme de package à partir des repositories de domogik.
J’ai donc réalisé un package pour domogik pour la téléinformation via arduino.

Afin de l’installer, il suffit donc d’avoir domogik en version 0.20alpaha d’installée (en mode install et non develop) et de parcourir les plugins disponibles et de choisir ar_tinfo :

Ensuite afin de pouvoir visualiser les données, il est nécessaire d’ajouter un device :

Une fois le device affecté à un espace de visualisation, vous pouvez donc consulter les informations de téléinformation.

On retrouve un historique précis des consommations électriques :