Commandes shell pour le délestage
Il est prévu que tous les produits “organes de chauffe” et chargeurs des véhicules (CEVMAX) puissent être pilotés en délestage, par le même format de commandes shell/Mesh depuis le controleur GEMAX.
Ainsi tous ces produits implémentent le model Mesh Vendor Heater model qui est adapté aux différents cas de figures :
possibilité d’envoyer une consigne par un contrôleur Mesh, par l’app mobile ou le backend (via le PASSMAX),
possibilité d’ecraser la dernière consigne de l’utilisateur par une consigne de délestage, permanente ou temporaire (sur timer) depuis un contrôleur Mesh ou le backend (pas d’accès via l’App mobile),
Le protocole Mesh se charge de publier les changements de status contenant le mode de consigne en cours ainsi que les indications de délestage en cours. Ces status sont ainsi disponibles pour mettre à jour les pages produits de l’app mobile et remontent via le PASSMAX au backend.
possibilité de contrôle par un thermostat avec des modes de programmation et de dérogation, qui sort du cadre de cette documentation.
Commande shell sur le model Heater
Supposons que l’on veuille piloter la feature feature_idx du produit ayant l’adresse unicast unicast_addr.
Le contrôleur Mesh (GEMAX) envoie une commande de type :
Commande sans acquittement (surtout utilisé dans le cas de messages de groupe) :
==> mesh models msg send-vnd <elem id> <model id> <company id> <addr> <opcode> [payload]
Avec
elem id: the element index of the model instance (source) =feature_idx
model id: the model id sender (source) =Heater Client= 0x0019
company id: the Company ID of the vendor model = 0x04AA
addr: the destination address =unicast_addr
opcode: the opcode message to send =Vendor Heater Set Unacknowledged= 0xDA
payload: the Heater Set message payload
Soit
==> mesh models msg send-vnd <feature_idx> 0x0019 0x04AA <unicast_addr> 0xDA <payload>
Commande avec acquittement attendu (sur une Unicast Address précise) :
==> mesh models msg send-vnd-rsp <elem id> <model id> <company id> <addr> <opcode> <opcode_rsp> [payload]
Avec
elem id: the element index of the model instance (source) =feature_idx
model id: the model id sender (source) =Heater Client= 0x0019
company id: the Company ID of the vendor model = 0x04AA
addr: the destination address =unicast_addr
opcode: the opcode message to send =Vendor Heater Set= 0xD9
opcode_rsp: the opcode waited for response =Vendor Heater Status= 0xDC
payload: the Heater Set message payload
Soit
==> mesh models msg send-vnd-rsp <feature_idx> 0x0019 0x04AA <unicast_addr> 0xDA 0xDC <payload>
Valeur du payload
La valeur de payload est décrite ici Heater Set message, ce qui donne :
<payload> = <Mode><TID>[Duration][Reg_Type][Reg_value]
Mode est un octet (à écrire en hexadécimal) composé des champs de bits suivants :
Setting(bits [0..3]) : Current setting
Load shedding(bit[4]) : Load shedding running flag
Derogation(bit[5]) : Derogation running flag
Program(bit[6]) : Program running flag
NC(bit[7]) : Reserved
Les paramètres optionels Duration, Reg_type et Reg_value sont décrits dans Heater parameters Values.
Attention
Rappel : la valeur de TID doit être différente entre 2 messages consécutifs de la même source, sinon le message est ignoré.
Le principe du délestage
Supposons que la fonction soit dans un état donné, défini par l’utilisateur via l’App mobile :
Setting = <any>
Load shedding = 0
Derogation = 0
Program = 0
Duration = <any>
Reg_type = <any>
Reg_value = <any>
Le GEMAX souhaite appliquer un délestage à cette fonction en indiquant une nouvelle valeur de consigne
( définie par Setting, eventuellement adjointe de Reg_type et Reg_value), alors la nouvelle commande contiendra :
Setting = <Load shedding setting>
Load shedding = 1
Derogation = 0
Program = 0
Duration = <Load shedding duration>
Reg_type = <Load shedding Reg_type>
Reg_value = <Load shedding Reg_value>
Les nouvelles valeurs seront appliquées jusqu’à :
ce qu’une commande de fin de délestage soit reçue
l’expiration du timer interne si
Load shedding duration> 0
Alors la fonction retournera dans son état précédent (qui aura été sauvegardé).
Si une nouvelle commande de délestage est reçue, elle remplace la précédente.
La commande de fin de délestage a le format suivant :
Setting = RESTORE (0xF)
Load shedding = 0
Derogation = 0
Program = 0
Duration = <ignored>
Reg_type = <ignored>
Reg_value = <ignored>
Soit Mode = 0x0F :
==> mesh models msg send-vnd <feature_idx> 0x0019 0x04AA <unicast_addr> 0xDA 0F<TID>
Pilotage d’un module Fil Pilote
Les fonctions Fil Pilote 4 et 6 ordres sont pilotables avec les Setting suivants :
Value |
Description |
|---|---|
0 |
COMFORT |
1 |
ECO |
2 |
NO_FROST |
3 |
STOP |
4 |
COMFORT_1 |
5 |
COMFORT_2 |
Exemples
Mise en mode COMFORT (TID=0x23) :
==> mesh models msg send-vnd <feature_idx> 0x0019 0x04AA <unicast_addr> 0xDA 0023
Mise en mode STOP (TID=0x23) :
==> mesh models msg send-vnd <feature_idx> 0x0019 0x04AA <unicast_addr> 0xDA 0323
Délestage en mode ECO pour 1 heure (60min=0x003C) (TID=0x23) :
==> mesh models msg send-vnd <feature_idx> 0x0019 0x04AA <unicast_addr> 0xDA 11233C00
Pilotage d’un module chauffe-eau
Les controleurs de chauffe par relais (Dry contact) sont pilotables avec les Setting suivants :
Value |
Description |
|---|---|
0 |
ON |
1 |
ON |
2 |
ON |
3 |
OFF |
4 |
ON |
5 |
ON |
Exemples
Mise en mode ON (TID=0x23) :
==> mesh models msg send-vnd <feature_idx> 0x0019 0x04AA <unicast_addr> 0xDA 0023
Mise en mode OFF (TID=0x23) :
==> mesh models msg send-vnd <feature_idx> 0x0019 0x04AA <unicast_addr> 0xDA 0323
Délestage en mode OFF pour 1 heure (60min=0x003C) (TID=0x23) :
==> mesh models msg send-vnd <feature_idx> 0x0019 0x04AA <unicast_addr> 0xDA 10233C00
Pilotage du chargeur de vehicule CEVMAX
Les controleurs de chauffe par relais (Dry contact) sont pilotables avec les Setting suivants :
Value |
Description |
|---|---|
0 |
0W |
1 |
1150W |
2 |
1380W |
3 |
3680W |
4 |
4830W |
5 |
7360W |
Pilotage de l’interface IR Climax
A détailler