L’Internet des Objets

L’Internet des Objets

35.2 Le protocole enOcean

Page précédente Page suivante

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

propose des spécifications :

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.

(image)

Fig. 35.6 : Les composants enOcean pour raspberry.

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]

Page précédente Page suivante