EnOcean partie 1: Premiers pas avec EnOcean
Préambule
Il y a quelques temps, j’ai emménagé dans un nouvel appartement dans lequel était déjà pré-installé des volets roulants électriques et des éclairages commandés par des interrupteurs radio sans fils et sans pile. C’est plutôt cool vu que ça permet de mettre l’interrupteur là où on le désire très facilement. Ça fonctionne pas mal à condition de ne pas appuyer trop mollement sur le bouton afin que le système piezzo puisse générer assez d’énergie pour envoyer la trame radio.
Il y avait également dans l’armoire électrique une genre de passerelle avec une antenne et connectée en ethernet pour pouvoir piloter tout ça à distance, ça avait l’air cool… enfin ça avait l’air.
Pour l’utiliser, il fallait utiliser une application qui s’appelle Flexom, lente, très lente, utilisable que via le net donc pas en direct sur le réseau local, avec obligation de créer un compte en fournissant quelques données personnelles au passage sans parler du fait d’avoir le fil à la patte avec une société qui peut faire faillite du jour au lendemain et de se retrouver avec une apli qui ne fonctionne plus… bref le truc trop nul. Il suffit d’ailleurs de voir les commentaires sur les app store Android ou Apple.
Je m’attendais à avoir une genre d’API REST où c’est open-bar (avec néanmoins une authentification, c’est pas la fête non plus), pour ensuite pouvoir faire des scénarios avec mes différents objets connectés maison à base de nrf24.
La pêche aux infos
Je commence à m’intéresser au sujet de près, et là je découvre que EnOcean c’est super bien documenté, et que n’importe quel fabriquant peut rejoindre la EnOcean Alliance pour fabriquer des périphériques qui seront interopérables avec ceux des autres fabricants grâce à une normalisation des profils de communication (Profils d’équipement EnOcean ou EEP).
Si je comprend bien, en théorie, à partir du moment où j’ai un émetteur radio EnOcean, je peux piloter mes volets avec n’importe quoi : un port série, un arduino, un raspberry, en Wifi avec un ESP32 ? Récupérer leur état en faisant mon paquet radio moi-même et en comprenant ce qu’il y a dedans ? Faire une vraie API ? (Spoil : en pratique aussi c’est comme ça).
EnOcean-Equipment-Profiles-3-1
La documentation générale du protocole, des différents formats de paquets, des échanges entre appareils…
EnOcean_Equipment_Profiles_EEP_v2.6.8
Le détails des communications pour chaque profil EEP (EnOcean Equipment Profil).
Profile EEP
Le profile EEP indique à quel type d’appareil on a à faire. Il se compose de 3 octets en héxadécimal : RORG-FUNC-TYPE. Pour le trouver en règle générale c’est assez simple… c’est écrit dessus.
- RORG : Cette valeur indique le type de « telegram » c’est à dire de paquet radio (RPS, 1BS, 4BS, VLD…) on verra plus loin ce que ça signifie.
- FUNC : La fonction de base des données (interrupteur, capteur de température, gradateur de luminaire…)
- TYPE : Type précis de l’appareil dans la catégorie définie par FUNC.
Exemple 1 : F6-05-02
- F6 : Télégramme RPS
- 05 : détecteurs
- 02 : de fumée
Exemple 2 : A5-04-02
- A5 : Télégramme 4BS
- 04 : capteur de température et d’humidité
- 02 : Température de -20°C à +60°C humidité relative de 0% à 100%
Profiles compatibles
Un appareil avec un profil EEP donnée peut être compatible avec des télégrammes ayant un autre profile.
Par exemple D2-01-0E, un module contact sec un canal (pour allumer une lampe par exemple), il y a de très fortes chances qu’il soit compatibles avec les télégrammes RPS F6-02-01 provenant d’un interrupteur manuel ou bien d’un interrupteur à carte F6-04-02. En principe c’est marqué dans la notice.
Les différents télégrammes (RORG)
Le tableau est tiré de la documentation
Télégramme | RORG | Description |
RPS | F6 | Repeated Switch Communication |
1BS | D5 | 1 Byte Communication |
4BS | A5 | 4 Byte Communication |
VLD | D2 | Variable Length Data |
MSC | D1 | Manufacturer Specific Communication |
ADT | A6 | Addressing Destination Telegram |
SM_LRN_REQ | C6 | SMART ACK Learn Request |
SM_LRN_ANS | C7 | SMART ACK Learn Answer |
SM_REC | A7 | SMART ACK Reclaim |
SYS_EX | C5 | Remote Management |
SEC | 30 | Secure telegram |
SEC_ENCAPS | 31 | Secure telegram with RORG encapsulation |
SEC_MAN | 34 | Maintenance Security message |
SIGNAL | D0 | Signal telegram |
UTE | D4 | Universal Teach In |
L’adresse radio
Le EEP c’est bien, mais ça ne permet pas de différencier deux appareil EnOcean identiques dans le même logement… où même dans deux logements différents, ça serait bizarre de pouvoir allumer la lumière du voisin.
Chaque appareil possède donc une adresse sur 4 octets pour le différencier des autres qui bien souvent est écrite dessus également. Elle est transmise dans le paquet radio.
Par la suite on verra qu’il faut procéder à un appairage entre les appareils pour que par exemple une commande de volet roulant réagisse à l’appuie sur un interrupteur de commande.
Suite dans la partie 2 : EnOcean partie 2: Branchement du TCM310
One thought on “EnOcean partie 1: Premiers pas avec EnOcean”
Bonjour,
Merci pour votre article,
j’ai pour projet de monter un plug-in Enocean pour homebridge.io (Flexom c’est vraiment de la merde !),
Si vous êtes intéressé par le projet, vous avez maintenant mon contact
Cordialement
Brian