A la différence des lignes de C:onfig qui sont aussi nombreuses qu'il y a de périphériques branchés, la ligne L:ive est unique. Tous les périphériques sont regroupés en une seule ligne.
Par ailleurs il n'y a pas d'information sur le cube dans la ligne L:
Interogation du cube
On peut demander une nouvelle ligne L:ive mise à jour par l'envoi de "l:" (L minuscule) suivi de CR+LF Le cube répond alors par une ligne L: contenant les dernières données dont il dispose.
Structure générale d'une ligne L:
La ligne L: ne possède qu'un champ encodé en Base64
par exemple : L:CwD7bQASGEcpAAAA
Contenu du champ
L'exemple ci-dessus se décode en :
0b 00 fb 6d 00 12 18 47 29 00 00 00
On repère tout de suite les octets 2,3,4 "00fb6d" correspondant à une adresse. Par ailleurs, le premier octet contient 0x0b correspondant au nombre d'octets qui suivent (lorsqu'il y a plusieurs périphériques connectés, on retrouve à nouveau cette même structure <longueur><contenu> répétée autant de fois qu'il y a de périphériques.
On remarque aussi, pas mal d'octets à 0x00, ca va pas nous aider à dépiauter la bêêête mais ça s'arrange après avoir modifier des éléments de config .
Position Champ 0 1 octet = longueur du morceau de réponse suivant (je n'ai rencontré que des enregistrements de 11 caractères : 0x0b) 1 3 octets = Adresse 4 1 octet = ? 5 1 octet = ? 6 1 octet = ? bits 1-2 = ? bit 3 = Verrouillage clavier bits 4-6 = ? bits 7-8 = Mode 7 1 octet = Position de la valve (0-100) 8 1 octet = Température de consigne réglée sur la tête 9-10 2 octets = Date de fin 11 1 octet = Heure de fin
Les octets 4-6 ne sont pas souvent modifiés par des actions par la webapp ou par modification des réglages de la tête, les seuls bits modifiés de façon synchrone sont sur l'octet 6 (bits 7 et 8) et correspondent au mode (0b00 : mode auto, 0b01 : mode manu, 0b10 : mode temporaire, 0b11 : mode Boost)
Date et heure ne sont valides que lorsqu'on est en mode "temporaire".