Protocole ZiGate

Le protocole ZiGate

Le protocole de la ZiGate est dit : bas niveau (proche du matériel) afin que vous puissiez atteindre les fonctionnalités primaires de la ZiGate. Ce choix est volontaire car, face aux nombreuses évolutions dans les IoT, il convient de laisser, aux développeurs de solutions domotiques, le plus de libertés possibles afin qu’ils puissent s’adapter plus facilement (sans changer le firmware de la clef) aux objets connectés.

Trame ZiGate

NB octets 1 2 3 4 5 6 7 8 9 n+6 n+7 n+8
Hexa 0x01 n 0x03
Libellé Start MSG TYPE LENGTH CHKSM DATA RSSI STOP

Transcodage et traitement des caractères spéciaux

Pour tous les octets entre 0x00 et 0x10, il est nécessaire de faire un transcodage de la donnée. Ce système permet de distinguer une commande spéciale d’une donnée utile.

Pour transcoder un octet, il faut :

  • Envoyer 0x02
  • Appliquer un XOR sur la donnée réelle et envoyer

Exemple :

Si je veux envoyer 0x06, dans la trame j’envoie les 2 octets suivant:
0x02 0x16

Calcul du checksum

0x00 XOR MSG TYPE XOR LENGTH XOR RSSI XOR DATA == CHKSUM

 

Translate »