Pour ma solution domotique, je privilégie autant que faire se peut une solution filaire par le bus 1-wire. Cependant, nous nous sommes équipés de volets roulants Somfy et la question s'est rapidement posée de les intégrer au reste des automatismes.
La première idée qui m'est venue a été de bidouiller une télécommande d'origine ; simuler ses boutons en utilisant les GPIOs du Banana n'a rien de transcendant ... sauf que :
Et c'est là que je suis tombé sur le RFXtrx de la société RFXCom ...
Le RFXtrx 433 est un transceiver (donc à la fois émetteur et récepteur) utilisant la fréquence 433Mhz et permet de s'interfacer avec de très nombreux périphériques du commerce, comme la gamme Chacon / D-IO, OWL, X10... Le modèle RFXtrx433E ajoute la compatibilité avec le protocole Somfy RTS ... celui utilisé par mes volets roulants.
Il existe 2 protocoles chez Somfy :
Les 2 sont malheureusement incompatibles et le IO n'est pas supporté par RFXCom à l'heure où j'écris ces lignes.
Le Rfxtrx surprend pas sa petite taille : 8,3 x 5,9 x 2,2cm. Ce n'est heureusement pas le cas du câble qui l'accompagne (entre 30 et 50cm ... je ne l'ai pas mesuré). S'ajoute une antenne et une petite notice ... qui renvoie rapidement au site où l'on trouve l'user guide.
L'alimentation se fait directement par le port USB : pas besoin d'alimentation supplémentaire donc. Prévoir une consomation de 28 mA en réception et 45 mA en émission.
Une fois connecté, le Rfxtrx apparaît en tant que port série USB utilisant un chipset FTDI : suffisamment répandu pour être utilisable quel que soit l'OS.
Avant de pouvoir utiliser notre nouveau jouet, il va falloir le mettre à jour et le configurer : Un petit tour sur la page de "download" de RFXCom s'impose ... arg !!! Tous les outils d'administration sont pour m$-windows .
Pour être complet, pour toute la configuration pourrait se faire grace aux outils de domotiques tels que Domoticz ... Mais je ne les utilise pas et je n'ai pas l'intention d'ajouter cette possibilité à Marcel : ce sont des actions vraiment ponctuelles.
Bref, même si c'est ch*ant, je vais donc passer par la micromolerie ... j'irai me laver les mains après !
La toute première chose à faire, c'est de mettre à jour le firmware : non seulement pour corriger quelques bugs, mais elle ajoute aussi le support d'autres sondes.
Attention, une mise-à-jour efface complètement la configuration du RFXtrx : c'est pourquoi on ne le fait généralement qu'une seule fois, à sa réception.
Plusieurs firmwares sont disponibles :
Pourquoi le firmware 1 et le 2 ? D'abord, parce que la mémoire du RFXtrx est limitée ; ensuite parce que certains protocoles sont incompatibles avec d'autres. C'est pourquoi, le choix se fait en fonction des sondes avec qui converser.
Le processus est relativement simple et vous trouverez des captures d'ecran dans le "user guide". Pour ceux qui n'apprécient pas la langue de Shakespear, les étapes sont :
Si les protocoles en émission sont toujours activés, ce n'est pas le cas de ceux de la réception : n'activer que ceux qui sont réellement utilisés améliore la sensibilité du RFXtrx.
Comme vous l'avez deviné, cette sélection se fait grâce au RFXmngr.
Voilà, nous en avons terminé avec les RFXmngr et les window$eries : il est temps de passer aux choses sérieuses.
Le reste de ce billet se focalise sur ma propre solution Domotique, à savoir Marcel tournant sur un BananaPI.
Contrairement à ce que l'on pourrait penser, ce n'est pas le RFXtrx qui reconnaît les volets, mais l'inverse et de plus, chaque volet ne peut s'appareiller qu'avec 4 télécommandes ...
Chaque télécommande est identifiée par un numéro unique composé
A noter que la seule restriction est que l'ID doit être unique, mais vous pouvez choisir les valeurs que vous voulez.
Perso, pour facilité la gestion, j'ai opté pour les règles suivantes :
Ainsi, j'ai
0-DE-10-0 = Celle du bureau 1-DE-10-0 = la 1er fenêtre du salon 1-DE-10-1 = toujours dans le salon, celle proche de la cheminée 1-DE-10-2 = la 3e du salon 2-DE-10-0 = la porte fenêtre de la cuisine ...
Dans Marcel.conf, ça donne
# Commanding Somfy (RTS) shutter
# Argument of the section is the id of device
# I1I2I3UU :
# I? = identifier
# UU = unit
#
# The command is the payload of the message.
# Recognized commands are :
# "Stop" or "My"
# "Up"
# "Down"
# "Program"
*RTSCmd=0x00DE1000
Topic=maison/Volet/Bureau
*RTSCmd=0x01DE1000
Topic=maison/Volet/Salon/1er
*RTSCmd=0x01DE1001
Topic=maison/Volet/Salon/Cheminee
*RTSCmd=0x01DE1002
Topic=maison/Volet/Salon/3em
*RTSCmd=0x02DE1000
Topic=maison/Volet/Cuisine
Attention, ce que nous apprêtons à faire peut mettre la grouille dans votre réseau : si vous n'êtes pas sûr de vous, DÉBRANCHER TOUS LES VOLETS AUTRES QUE CELUI QUE VOUS ESSAYEZ D'APPAREILLER, comme le conseil la doc.
Le moment est venu de faire reconnaître le RFXtrx comme une télécommande d'un de nos volets. A titre d'exemple, nous allons le faire sur celle du salon, proche de la cheminée.
*RTSCmd=0x01DE1001
Topic=maison/Volet/Salon/Cheminee
mosquitto_pub -t maison/Volet/Salon/Cheminee -m Program
mosquitto_pub est une commande shell fournit avec Mosquitto.
Et voilà, c'est fini, maison/Volet/Salon/Cheminee est associé à ce volet.
Les autres ordres reconnus sont :
La communication avec le RFXtrx se fait, comme je l'indiquais précédemment, par un port série virtuel. Cependant, il faut connaître le protocole utilisé : Il faut passer par le Software Developpment Kit.
Pour l'obtenir, le processus est relativement simple : il faut envoyer une demande par mail aux support de RFXCom et signer un NDA (c'est donc pourquoi je ne rentrerai pas dans les détails de l'implémentions). En retour, on recevra un zip auto-extractible (à nouveau pour m$-windows uniquement) contenant :
A noter aussi que j'ai trouvé sur GitHub des librairies toutes faites pour C++, Java, Python ou encore Lua ...
Le trio RFXtrx / Marcel / BananaPI fonctionne très bien et le fait de pouvoir contrôler mes volets par de simples ordres MQTT est à la fois très flexible et simple à implémenter : on imagine facilement d'avoir
Comme on dit, la seule limite est notre imagination.
La doc indique qu'il faut faire attention à l'emplacement du RFXtrx et que des murs trop épais pourraient en réduire son efficacité. Le mien se trouve au sous-sol et il arrive sans problème à contrôler les chambres situées 2 étages plus haut.
Visitez : Nos sorties Ski et rando |
Copyright Laurent Faillie
2001-2024
N'oubliez pas d'entrer le mot de passe pour voir aussi les photos perso. |
Contactez moi si vous souhaitez réutiliser ces photos et pour les obtenir avec une plus grande résolution. |
Visites durant les 7 derniers jours au total. |
Vous pouvez
laissez un commentaire
sur cette page.