Shell pour l’ERLMAX
L’ERLMAX publie les données TIC du Linky à travers le model Mesh Sensor dont l’interface shell est la suivante :
# Publish a status message on a generic model client.
==> mesh models msg publish <elem id> <model id> <opcode> [payload]
Avec :
elem id: the element index of the model instance (source)model id: the model id sender (source)opcode: the opcode message to sendpayload: Hexadecimal BCD value
Dans ce cas précis :
elem id= 1model id= 0x00001102opcode= 0x52
Transmission des informations
Les données informationnelles seront transmises à partir du modèle mesh sensor, utilisant un property id spécifique : 0x07FC.
Ci-dessous, nous présentons la Trame Shell utilisée pour publier un message ble mesh de status.
Note
Pour rappel, un message de status est émis plusieurs fois, le produit destination doit recevoir le même message autant de fois qu’il a été émis.
De plus, l’adresse de publication est dépendant de la configuration du produit, cette information est attribuée lors de la phase de configuration du produit par l’application mobile.
1. Trame d’exemple de la transmission du message PRM : 01234567890123
#+---------+---------+---------+---------+---------+---------+---------+---------+ #| Octet 7 | Octet 6 | Octet 5 | Octet 4 | Octet 3 | Octet 2 | Octet 1 | Octet 0 | #+=========+=========+=========+=========+=========+=========+=========+=========+ #| 0x01 | 0x23 | 0x01 | 0x89 | 0x67 | 0x45 | 0x23 | 0x01 | #+---------+---------+---------+---------+---------+---------+---------+---------+ uart:~$ mesh models msg publish 1 0x1100 0x52 0FFC070123456789012301Description du message émis :
elem idx: 1
Model Id: 0x1100 (sensor server)
opcode: 0x52
payload: 0FFC070123456789012301
0F: Longeur des données (calcul spécifique à la SIG)
FC07 : Property ID (little endian)
Octet 0: 01 (PRM01)
Octet 1: 23 (PRM32)
Octet 2: 45 (PRM54)
Octet 3: 67 (PRM76)
Octet 4: 89 (PRM89)
Octet 5: 01 (PRM1110)
Octet 6: 23 (PRM1312)
Octet 7: 01 (Nun msg)
Réception des informations du message *PRM* : 01234567890123
Lors de la transmission d’information par un produit, si un autre produit est à l’écoute de ce message ou à destination direct alors une trame shell sera transmise.
Si nous continuons l’exemple présenté ci-dessus, le shell du produit à l’écoute enverra la ligne suivante :
Mesh status from 0x0166 dst 0xc000 rssi -31 element 1, model 0x00001102 op 0x52 len 11: 0ffc070123456789012301Description du message reçu :
Mesh status from 0x0166 : message de status envoyé par l’élément 0x0166
dst 0xC000 : destinataire du message
element 1 : adresse du noeud pour ce message
model 0x00001102 : model id (sensor client)
op 0x52 : Opcode
len 11 : longueur des données utiles
0ffc070123456789012301 : données utiles
2. Trame d’exemple de la transmission du message ADS : 112233445566
#+---------+---------+---------+---------+---------+---------+---------+---------+ #| Octet 7 | Octet 6 | Octet 5 | Octet 4 | Octet 3 | Octet 2 | Octet 1 | Octet 0 | #+=========+=========+=========+=========+=========+=========+=========+=========+ #| 0x02 | 0x01 | 0x66 | 0x55 | 0x44 | 0x33 | 0x22 | 0x11 | #+---------+---------+---------+---------+---------+---------+---------+---------+ uart:~$ mesh models msg publish 1 0x1100 0x52 0FFC071122334455660102Description du message émis :
elem idx: 1
Model Id: 0x1100 (sensor server)
opcode: 0x52
payload: 0FFC071122334455660102
0F: Longeur des données (calcul spécifique à la SIG)
FC07 : Property ID (little endian)
Octet 0: 11 (ADS01)
Octet 1: 22 (ADS32)
Octet 2: 33 (ADS54)
Octet 3: 44 (ADS76)
Octet 4: 55 (ADS89)
Octet 5: 66 (ADS1110)
Octet 6: 01 (Id ERL)
Octet 7: 02 (Nun msg)
Réception des informations du message *ADS* : 112233445566
Si nous continuons l’exemple présenté ci-dessus, le shell du produit à l’écoute enverra la ligne suivante :
Mesh status from 0x0166 dst 0xc000 rssi -31 element 1, model 0x00001102 op 0x52 len 11: 0ffc071122334455660102Description du message reçu
Mesh status from 0x0166 : message de status envoyé par l’élément 0x0166
dst 0xC000 : destinataire du message
element 1 : adresse du noeud pour ce message
model 0x00001102 : model id (sensor client)
op 0x52 : Opcode
len 11 : longueur des données utiles
0ffc071122334455660102 : données utiles
3. Trame d’exemple de la transmission du message Conso : 64871911D8F660
Présentation des valeurs embarquées dans la trame :
La valeur URMS est de 100 convertie en hexadécimale 0x64
La valeur sinsts est de 6535 convertie en hexadécimale 0x1987
La valeur timestamp est le 27 Mars 2024 13:32:17 GMT+1 (Heure Paris) soit une valeur en hexadécimale 0x11D8F6C003
#+---------+---------+---------+---------+---------+---------+---------+---------+ #| Octet 7 | Octet 6 | Octet 5 | Octet 4 | Octet 3 | Octet 2 | Octet 1 | Octet 0 | #+=========+=========+=========+=========+=========+=========+=========+=========+ #| 0x03 | 0x60 | 0xF6 | 0xD8 | 0x11 | 0x19 | 0x87 | 0x64 | #+---------+---------+---------+---------+---------+---------+---------+---------+ uart:~$ mesh models msg publish 1 0x1100 0x52 0FFC0764871911D8F66003Description du message émis :
elem idx: 1
Model Id: 0x1100 (sensor server)
opcode: 0x52
payload: 0FFC0764871911D8F66003
0F: Longeur des données (calcul spécifique à la SIG)
FC07 : Property ID (little endian)
Octet 0: 64 (URMS)
Octet 1: 87 (SINSTS0)
Octet 2: 19 (SINSTS1)
Octet 3: 8C (TSlinky0)
Octet 4: 7B (TSlinky1)
Octet 5: 92 (TSlinky2)
Octet 6: 65 (TSlinky3)
Octet 7: 03 (Nun msg)
Réception des informations du message *Conso* : 64871911D8F660
Si nous continuons l’exemple présenté ci-dessus, le shell du produit à l’écoute enverra la ligne suivante :
Mesh status from 0x0166 dst 0xc000 rssi -31 element 1, model 0x00001102 op 0x52 len 11: 0ffc0764871911d8f66003Description du message reçu
Mesh status from 0x0166 : message de status envoyé par l’élément 0x0166
dst 0xC000 : destinataire du message
element 1 : adresse du noeud pour ce message
model 0x00001102 : model id (sensor client)
op 0x52 : Opcode
len 11 : longueur des données utiles
0ffc64871911d8f66003 : données utiles