Raspberry PI et EnOcean

Posted by Antoine 3 mai 2013 19 Comments 4876 views

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 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:

Compilation et exécution

Une fois que le serveur tourne on peut s’y connecter avec un client. Ici j’utiliserai Putty:

Configuration du client Telnet sur Putty

J’appuie maintenant sur mon interrupteur EnOcean pour constater le bon fonctionnement :)

Côté serveur

Côté client

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:

About Antoine

Ingénieur en informatique embarquée. Geek enthousiaste et early-adopter de la Flyport.

View all post by Antoine

There are 19 Comments

  1. - 6 mai 2013

    Super, l’étape qui me manque pour intégrer mon application domotique perso sur mon raspberry. Bon travail, hâte de pouvoir tester ça !!

  2. - 14 mai 2013

    Sympa ce code merci !
    Par contre j’ai une question à quoi servent ces ligne dans la fonction read_tty :

    if (c == 0×03) return(-1);

    Merci

  3. antoine
    - 14 mai 2013

    Salut Nicolas,

    le caractère 0×03 c’est Control-C utilisé pour quitter l’application.

  4. - 16 mai 2013

    Hum étrange, moi je le vois plutôt comme : Si dans la trame EnOcean il y a le caractère 0×03 alors EXIT

  5. Antoine
    - 16 mai 2013

    Effectivement ça peut poser problème. Il faudrait faire le test une seule fois avant de détecter une trame EnOcean.

  6. David
    - 26 août 2014

    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

  7. Antoine
    - 26 août 2014

    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

  8. David
    - 27 août 2014

    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

  9. Antoine
    - 27 août 2014

    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é.

  10. David
    - 27 août 2014

    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.

  11. Antoine
    - 27 août 2014

    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).

  12. David
    - 28 août 2014

    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 ?

  13. David
    - 28 août 2014

    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.

  14. Antoine
    - 28 août 2014

    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).

  15. Antoine
    - 28 août 2014

    La trame que j’ai donnée est une trame d’interrupteur (0xF6 pour le RORG) avec le code touche 0×10.

  16. David
    - 28 août 2014

    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 ;) )

  17. Antoine
    - 28 août 2014

    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.

  18. David
    - 28 août 2014

    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 (0×50 quand il est allumé) puis un autre télégramme du module quand il s’éteint (0×70). 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 (0×50 ou 0×70) en fonction de son état.

  19. Antoine
    - 28 août 2014

    à priori il n’y a pas de commande pour demander l’état, le module envoie son état de lui même.

Write Your Comment

 

Social Followers

Abonnez-vous et suivez notre actualité !

  • Thomas

    Le modèle EnOcean PI est un vrai succès. Je vien …

  • Antoine

    à priori il n'y a pas de commande pour demander l …

  • David

    J'utilise un FMZ61. Il allume une lampe et au bout …

  • Antoine

    Quelle est le module que tu utilises? C'est possib …

  • David

    Oui la trame que tu m'as donnée fonction bien. Et …

Newsletter

Inscivez-vous à notre newsletter mensuelle pour restez informé des nouveautés !


Powered by Sarbacane, emailing


Latest Video

Présentation du contrôleur LED Scheiber compatible avec la technologie Enocean sans fil ni pile !