La Vera supporte le RFXCOM !

Cet article fait suite à l’article de Cédric : « La Vera supporte le RFXCOM ? ». Il y présentait un plugin non officiel qui permettait à la Vera de s’interfacer avec le RFXCOM. A l’époque le développeur avait implémenté le support de ses rideaux Harrison. Depuis il a pas mal avancé en ajoutant le support de diverses technos dont les sondes Oregons. Donc banco, j’ai voulu tester ! Merci à la boutique Domadoo et plus particulièrement à Laurent pour le prêt d’un RFXCOM Lan et de quelques sondes.

 

I. Rappel : Qu’est-ce que le RFXCOM Lan ?

 

C’est un petit boitier, connecté au réseau en Ethernet, capable de recevoir ou émettre des informations de et vers les modules émettant en 433.92Mhz. On peut donc recevoir les informations des modules X10, Oregon Scientific, Visonic, HomeEasy, KlikAanKlikUit, COCO, ELRO, NEXA, Intertechno, Düwi, Chacon, DI.O, Domia Lite, ATI Remote Wonder, RFXSensor, RFXPower, RFXMeter. Vous pouvez aller sur le site du fabricant pour avoir une idée plus précise du produit.

 

 

Mettons nous en situation, pour réussir l’acquisition, il faut :

  • Une Vera,
  • Un RFXCOM Lan (protocole tcp/ip),
  • Quelques sondes Oregons.

II. Installation physique

 

L’installation physique du RFXCOM est assez simple. Il suffit de le connecter au réseau par l’intermédiaire de sa prise Ethernet, et de brancher l’alimentation. Je vous conseille de vous rendre sur la console d’administration de votre routeur/box et d’affecter à votre RFXCOM une adresse IP fixe, par exemple (192.168.0.10).

 

III. Installation logiciel

 

Pour pouvoir acquérir les premières données, il faut installer sur la Vera un plugin. Il suffit d’uploader les fichiers (D_RFXCOM.json, D_RFXCOM.xml, I_RFXCOM.xml, S_RFXCOM.xml) sur la Vera, disponibles ici, en passant par le menu Développeurs:

 

 

Ensuite, toujours dans le menu Développeurs, créer un module, et indiquer ces paramètres :

  • Une description (ex : rfxcom)
  • l’adresse IP du RFXCOM (ex : 192.168.0.10).
  • « D_RFXCOM.xml » dans le champ UpnpDevFileName.

 

On a alors un nouveau module sur l’interface, affichant les dernières informations reçues par le RFXCOM:

 

 

A ce stade, vous êtes en mesure de voir les informations que le plugin est capable d’interpréter. Ainsi vous ne verrez pas de données provenant d’un pluviomètre, d’un anémomètre ou de toutes sondes non gérées par le plugin. Seules les informations provenant de sondes de température ou d’hygrométrie seront visibles.

 

IV. Création des modules en automatique

 

Editez votre module RFXCOM (en cliquant sur la clé en haut à droite du module), allez sur l’onglet « Advanced », en bas de celui-ci vous trouverez la variable « AutoCreate » qui comme son nom l’indique va permettre de créer automatiquement les modules. Remplacez le 0 par un 1 (dans l’edit à droite de cette variable), fermez, sauvez. Attendez quelques minutes, et dès qu’un nouveau message est capté, un nouveau module sera créé. Cela fonctionne, mais de façon assez aléatoire. En effet durant mes premiers tests, les modules températures ou humidités ne s’ajoutaient pas forcément. La création automatique était donc selon moi un peu aléatoire.

 

 

V. Création manuelle des modules

 

Tout d’abord, on va récupérer l’identifiant de la sonde à ajouter.

Qu’est-ce que l’identifiant ?
L’identifiant permet de savoir qui est la sonde qui nous envoie des données. Lorsque vous voulez synchroniser une sonde avec une station météo, l’identifiant est son canal, vous serez limité en nombre de sondes par la limite du nombre de canaux disponibles. Par exemple les sondes THGR122NX peuvent émettre sur 3 canaux différents, ainsi une station météo ne pourra gérer que 3 sondes. Il existe des sondes 10 canaux bien plus chère, il faudra aussi investir dans une station gérant 10 canaux. Ici l’identifiant utilisé n’est pas le numéro du canal mais une adresse en hexadécimal codé sur un octet (par exemple : AE). Petit rappel d’hexadécimal : 1 octet représente deux chiffres hexa, chaque chiffre va de 0 à F, F ayant une « valeur » décimale de 15, donc 16 possibilités par chiffre (0,1,2,…15) ainsi deux chiffres représente 16×16, soit 256 possibilités. Donc avec un identifiant qui peut avoir 256 valeurs différentes, en théorie on pourrait gérer 256 sondes différentes. Mais à ce niveau, on risque d’avoir des problèmes de surcharge du réseau RF, ou encore des problèmes de collision. Ce qu’il faut retenir c’est surtout le fait que l’on n’est plus limité à seulement 3 sondes. Actuellement, je récupère les données de 7 sondes sans problème.
Si vous regardez les données renvoyées par vos sondes, du côté du module RFXCOM, vous verrez des messages du type : « [OREGON: temp1 Device: OREAE Temperature 19.5 humidity 45] ». Donc comme vous l’avez compris, c’est un message provenant d’une sonde température et hygrométrie. La partie importante est le code « device » ici « OREAE », ORE veut dire que c’est une sonde Oregon et AE est l’identifiant de cette sonde.
Donc pour créer manuellement un module, cela se passe encore dans le menu « Développeur », onglet « Create Device ».

 

 

Renseignez l’identifiant dans le champ Internal ID, le champ UpnpDevFileName par « D_TemperatureSensor1.xml », dans DeviceNumParent choisissez le module de votre RFXCOM, cliquez sur «Create device», fermez, sauvegardez, attendez. Le module apparait sur le tableau de bord.
Au bout d’un certain temps, le module va s’actualiser avec les valeurs récupérées, c’est magique (enfin non, y a pas mal de code là derrière).

Vous allez me dire et l’hygrométrie elle est où ? Ben va falloir recréer un module, comme précédemment sauf qu’on indique « D_HumiditySensor1.xml » dans le UpnpDevFileName. Là ce sera le même code (ici OREAE), en effet la sonde OREAE renvoi la température et l’humidité, donc on lui affecte le même code.

Petite astuce : c’est la sonde elle-même qui donne son adresse (par exemple AE). Si, par le plus grand des hasards, une de vos sondes renvoyait le même code adresse qu’une autre, il suffirait d’appuyer sur le petit bouton « reset » de la sonde. Un nouveau code serait généré et il suffirait de modifier les Internal ID des modules associés. Pour cela, il faut éditer le module, se rendre sur l’onglet « Avancé » et chercher le champ altid, c’est celui-ci qu’il faut modifier. De même, lors d’un changement de pile, l’adresse sera aussi recalculée donc pensez à changer l’altid.

Le plugin original, pour les sondes Oregons, ne gérera que les modules température (D_TemperatureSensor1.xml) et humidité (D_HumiditySensor1.xml).
Observez vos modules températures maintenant, hé oui la température affichée n’est pas correcte. Pour y remédier, il va falloir installer mon plugin, enfin mes modifications apportées au plugin original.
C’est un simple upload de fichier avec le nouveau fichier (I_RFXCOM.xml). Restart, sauvez, attendez…

Au bout d’un moment, vous pourrez voir que les températures récupérées sont correctes.
J’ai donc modifié le plugin existant, voici le changelog :

  • Correction d’un bug : mauvais calcul de la température.
  •  Correction d’un bug : problème lors de la création des modules température et hygrométrie, seul un des deux modules était créé.
  • Ajout de la gestion des sondes type THR128 (température seulement).
  • Ajout de la gestion des sondes PCR800 (pluviomètre) et WGR800 (WGR800), pour cela il faut uploader les fichiers : D_EZPluvioSensor.json, D_EZPluvioSensor.xml, S_EZPluvioSensor.xml, D_EZAnemoSensor.json, D_EZAnemoSensor.xml et S_EZAnemoSensor.xml.

 

Astuce : Je vous conseille d’utiliser l’AutoCreate pour générer tous vos modules, ensuite une fois qu’ils sont tous là vous pouvez repasser l’AutoCreate à 0. Cela vous permettra de les renommer. Attention : si vous laissez l’autocreate à 1, dès qu’un nouveau module sera créé, tous ceux déjà existant seront réinitialisés (pièce d’affectation et description).
Lors de mes tests, j’ai remarqué que la mise à jour de l’interface après un ajout de module, ou de fichiers .xml est assez aléatoire, parfois il faut faire deux uploads de suite du même fichier pour que celui-ci soit pris en compte (cela permet un vrai redémarrage de la Vera).

 

VI. Conclusion

 

J’ai voulu gérer le chauffage de ma maison. Or, il y deux problèmes avec la Vera et les capteurs de température Zwave actuels : le premier est que la Vera ne récupère que les températures arrondies à l’entier près et le second est le prix de ces modules. C’est pourquoi je me suis tourné vers les sondes Oregons, et pour les lire le RFXCOM.
Avec ce plugin, on pourra facilement gérer une flotte de diverses sondes de températures, hygrométrie, anémomètre, pluviomètre.
Le plugin gérait les sondes Oregons :

  • Temp/Hygro : THGN122N, THGN123N, THGR122NX, THGR228N, THGR238, THGR268.

J’ai ajouté la gestion des sondes :

  • Température : THR128, THR138, THC138.
  • Température extérieure/eau : THC238, THC268, THN132N, THWR288A, THRN122N, THN122N, AW129, AW131
  • Temp/Hygro/Baro : BTHR918.
  • Pluviomètre : PCR800.
  • Anémomètre : WGR800, WGR918.

 

Si malgré cela vous rencontriez une sonde Oregon qui ne serait pas reconnue, faites-moi en part et je modifierais le plugin.

One more thing : J’ai eu l’occasion de tester quelques modules X10, ceux-ci sont bien reconnus.

Dès que j’ai à nouveau un petit peu de temps, j’essaie de modifier le plugin pour acquérir également les données provenant du compteur de consommation électrique OWL.


1 Commentaire
  1. bonjour,
    Je trouve que la possibilité de connecter des sondes autre que zwave est super.
    J’essaie aujourd’hui d’y connecter une sonde LaCrosse Technology TX35DTH-IT, sans succès. Savez vous si la connection de cette sonde au RFXCOM est possible ?
    Cordialement

    Laisser un commentaire

    Ne ratez plus aucune news !

    Inscrivez vous à notre newsletter, et recevez chaque mois toute l'actualité du blog pour ne plus rien louper: actualité, guides, tutoriaux, concours !

    Merci pour votre inscription !