L’Internet des Objets
35.2 Le protocole enOcean
Le protocole enOcean est documenté par des manuels de référence. Il y a peu de documentation disponible (été 2021) sur l’utilisation par un débutant qui souhaite ne pas se lier à une centrale domotique. Voici quelques sources de documentation :
- enOcean
-
l’entreprise Enocean
- l’alliance enOcean
-
-
• la définition des télégrammes.
-
35.2.1 Les passerelles enOcean
Il y a deux types de passerelles enOcean : une carte fille sur le bus GPIO et un périphérique USB qui apparaît comme un port série.
La carte fille apparaît comme le périphérique /dev/AMA0, la clef usb comme un des /dev/ttyUSB0. La carte fille peut rentrer en conflit avec d’autres utilisations du GPIO, en particulier la console série et le bluetooth. Selon le matériel présent sur le bus, le numéro peut varier. Il est possible de renommer spécifiquement le composant. Pour cela, il faut identifier exactement la version :
$ lsusb -v | grep EnOcean
iManufacturer 1 EnOcean GmbH
iProduct 2 EnOcean USB 300 DC
iInterface 2 EnOcean USB 300 DC
Il faut alors régler le comportement de udev. Ajouter la ligne suivante au fichier /etc/udev/rules.d/99-usb.rules
SUBSYSTEM=="tty", ATTRS{product}=="EnOcean USB 300 DC", SYMLINK+="enocean"
Après un reboot, le fichier /dev/enocean devrait apparaître.
35.2.2 Dissection d’un télégramme
Pour capturer les télégrammes, il faut identifier le périphérique série. Nous utiliserons /dev/ttyUSB0. Nous commençons par capturer les télégrammes :
stty -F /dev/ttyUSB0 57600 hexdump -C < /dev/ttyUSB0
Puis nous activons le mode d’association sur une prise électrique. Le premier télégramme est le suivant :
55 00 0a 07 01 fd d4 a0 01 46 00 0e 01 d2 05 1b c3 49 00 00 ff ff ff ff 31 00 d1
- 55
-
Le premier octet est pour la synchronisation, c’est toujours 55.
- 00 0a 07 01
-
en tête :
- 0a
-
longueur des données ;
- 07
-
longueur des données optionnelles ;
- 01
-
type du paquet.
- d4 a0 01 46 00 0e 01 d2 05 1b
-
données :
- D4
-
UTE
- a0 01 46 00
- 0e 01 d2
-
EEP
- fd
-
le CRC de l’entête.
- d4
-
RORG (Radio-telegram types are grouped ORGanizationally.) UTE (Universal Teach In).
Un autre paquet :
55 00 0a 07 01 eb a5 00 00 58 08 01 80 95 73 00 00 ff ff ff ff 2c 00 f6
- 00 0a 07 01
-
en tête :
- 0a
-
longueur des données ;
- 07
-
longueur des données optionnelles ;
- 01
-
type du paquet.
- ed
-
le CRC de l’entête, différent du précédent pour une même entête ;
- a5 00 00 58 08 01 80 95 73 00
-
données :
- a5
-
RORG 4BS (4 Byte Communication),
- 00 00 58 08
-
DATA
- 01 80 95 73
-
identité de l’émetteur (ici une sonde de température),
- 00
-
statut
- 00 ff ff ff ff 2c 00
-
données optionnelles :
- 00
-
number of subtelegram(?) receive=0, send=3,
- FFFFFFF
-
broadcat transmission (ou destination ID)
- 2C
-
RSSI
- 00
-
sécurité (0=pas de sécurité)
- f6
-
CRC des données
Les
Une autre interprétation (enoceanmqtt) fournit un élément distinct (29 au lieu de 2c) :
[a5, 0, 0, 58, 8, 1, 80, 95, 73, 0] [0, ff, ff, ff, ff, 29, 0]
