Raspberry PI et EnOcean
On ne présente plus la Raspberry PI qui a su séduire les bidouilleurs par son prix attractif et ses capacités plus que convenables pour des petits projets DIY.
Des projets de développement matériel ont déjà vu le jour autour de EnOcean et de la Raspberry comme le projet EVE ou encore ce petit module TCM310. Ces 2 cartes se connectent à la Raspberry sur le connecteur P1 (26 points, 2.54mm). Au niveau logiciel, EnOcean fournit un middleware appelé EnoOcean Link qui permet un gain de temps pour la gestion bas-niveau des télégrammes EnOcean. Ce middleware n’est pas sous licence libre et nécessite la signature d’un NDA pour utilisation. Il existe cependant des projets open-source comme FHEM par exemple.
L’un des outils de base pour interagir avec le monde EnOcean est l’USB300 qui est un dongle USB équipé d’un module TCM310 (passerelle EnOcean – UART). Ce dongle USB peut être utilisé avec le logiciel Dolphin View (téléchargeable gratuitement ici) pour prendre en main la technologie EnOcean. L’un des kit les plus intéressant fournis par EnOcean est l’ESK300. Ce kit contient une USB300, un interrupteur sans fil sans pile ainsi qu’un capteur de température. C’est ce kit que nous utiliserons avec notre Raspberry PI.
MISE A JOUR : Un module domotique enocean pi a été développé par nos soins, ce module se connecte au GPIO du Raspberry PI et propose un connecteur UFL pour pouvoir rajouter des antennes externes pour de meilleures performances. Découvrez l’article du EnOcean PI sur notre blog.
- Vous pouvez télécharger le code source de l’application ici.
Cette application est un serveur Telnet qui va lire les informations en provenance de l’USB300 et les renvoyer à tous les clients Telnet connectés. Par défaut le port utilisé est le 2002.
Pour compiler l’application il suffit de dézipper les fichiers sur la Raspberry et de lancer les commandes suivantes:
Une fois que le serveur tourne on peut s’y connecter avec un client. Ici j’utiliserai Putty:
J’appuie maintenant sur mon interrupteur EnOcean pour constater le bon fonctionnement 🙂
Il ne vous reste plus qu’a éplucher les télégrammes pour en tirer ce que vous voulez. Pour cela il faudra consulter en priorité les documents suivants:
Super, l’étape qui me manque pour intégrer mon application domotique perso sur mon raspberry. Bon travail, hâte de pouvoir tester ça !!
Sympa ce code merci !
Par contre j’ai une question à quoi servent ces ligne dans la fonction read_tty :
if (c == 0x03) return(-1);
Merci
Salut Nicolas,
le caractère 0x03 c’est Control-C utilisé pour quitter l’application.
Hum étrange, moi je le vois plutôt comme : Si dans la trame EnOcean il y a le caractère 0x03 alors EXIT
Effectivement ça peut poser problème. Il faudrait faire le test une seule fois avant de détecter une trame EnOcean.
Bonjour,
Via le port serie et un dongle Enocean, je récupère les échanges entre un bouton poussoir et un module eltako FMZ61 avec un logiciel espion (genre hyperterminal)
De ce côté pas de soucis, je décode bien les télégrammes mais par contre comment faire pour envoyer un télégramme. Le dongle rajoute t-il son ID, faut il envoyer seulement les données, faut il calucler le checksum soit même … ?
Bien cordialement
Bonjour,
Voici un exemple de trame à envoyer pour simuler un interrupteur (touche A0):
55 00 07 07 01 7A F6 10 00 00 00 00 30 01 FF FF FF FF 2D 00 3A
Il faut mettre le sender ID Ã 00000000 (ou utiliser le base ID).
Les Optional Data en cas d’émission sont définies dans le document ESP3 directement.
Si la commande est bien envoyée, le module enocean doit répondre:
55 00 01 00 02 65 00 00
Vous pouvez aussi utiliser le logiciel Dolphin View en version Advance (gratuit) pour simuler des trames (calculs des checksums automatique).
Cdlt,
Antoine
Bonjour,
J’ai bien réussi via “hyperterminal” mais j’ai du remettre le module eltako en mode learn. Il a donc appris le PC comme un nouvel équipement. Pourtant l’ID que j’envoi au Dongle est bien celui du BP Poussoir. Je ne comprends pas pourquoi il différencie les deux.
Cordialement
Bonjour,
Il n’est pas possible d’utiliser l’ID d’un autre équipement. Le module Eltako a enregistré l’ID du dongle. C’est pour ça que vous avez du refaire la séquence d’appairage.
Si il était possible de modifier l’ID cela voudrait dire qu’il est possible de simuler n’importe quel équipement pour par exemple allumer la lumière du voisin -> problème de sécurité.
Ok merci. Donc dans la trame que j’envoi, l’ID est récrasé, c’est ça ?
Autre question, où puis je trouver à quoi correspondent les parametres de mon BP.
Je sais que les datas 3 Ã 6 sont l’ID mais les 1,2 et 7 je ne vois pas.
Pour les optionnals, il y a juste le Dbm que je ne comprends pas.
Oui l’ID d’émission est remplacé par l’ID du module automatiquement.
Pour décrypter les données envoyé par l’interrupteur il faut consulter le document suivant http://www.enocean-alliance.org/eep/ pages 10,13-14
Le Dbm Correspond au niveau de réception radio (inférieur à -50Dbm en général), plus il est faible, moins le niveau de réception est bon. Dans la cas de l’émission du télégramme il faut le mettre à 0xFF (le 0x2D dans ma trame n’est pas correcte mais n’empêche pas l’émission).
Une dernière question, je ne trouve pas de trame pour connaitre l’état d’un récepteur. Par exemple sur l’Eltako ou un RM250 savoir s’il pilote ou non la lampe.
Cela existe t-il ?
Si je comprends bien al documentation que tu m’as donné, c’est une trame VLD CMD3 page 105. Mais impossible de la faire marcher. Je ne dois pas bien comprendre les octets à envoyer.
tout dépend des récepteurs. Le RCM250 est unidirectionnel, il ne peut pas répondre à l’émetteur. Sur les produit Eltako il peut y avoir un retour d’état (à voir dans le doc du produit).
La trame que j’ai donnée est une trame d’interrupteur (0xF6 pour le RORG) avec le code touche 0x10.
Oui la trame que tu m’as donnée fonction bien. Et j’ai un retour d’état lors de l’envoi d’une commande. Ma question était y a t-il une trame juste pour récupérer le retour d’état.
Effectivement je n’avais pas vu que le RCM250 est unidirectionnel (d’où son prix plus bas 😉 )
Quelle est le module que tu utilises? C’est possible que la trame de retour soit une VLD CMD3 ça correspond à une réponse de demande d’état.
J’utilise un FMZ61. Il allume une lampe et au bout d’un temps l’éteint.
Avec Dolphin View Advanced, je vois le télégramme RPS de mon bouton puis la réponse du module (0x50 quand il est allumé) puis un autre télégramme du module quand il s’éteint (0x70). Tout en RPS.
Ce que je cherche c’est sans envoyer de commande d’allumage ou d’extinction récupérer ce télégramme d’état. Une commande de demande de statut en gros pour qu’il me renvoit ce (0x50 ou 0x70) en fonction de son état.
à priori il n’y a pas de commande pour demander l’état, le module envoie son état de lui même.