Tuto Modifier les paramètres du module via un scénario
Les modules Z-Wave disposent d’un grand nombre de paramètres afin d’en modifier leur comportement ou leur fonctionnement.
De façon générale on ajuste ces différents paramètres lors de l’installation du module, selon le fonctionnement souhaité, des recommandations ou en suivant un tutoriel.
Pour certains modules il serait intéressant de modifier un ou plusieurs paramètres selon des conditions ou état de sa domotique.
Je vais dans ce tutoriel, vous démontrer comment il est possible de modifier des paramètres d’un module en ajoutant des commandes actions qui seront exploitables via des scénarios.
La syntaxe des commandes utilisées est pour les versions du plugin ZWave de 2017 et à venir.
Mise en œuvre
La modification de paramètres sur un module Z-Wave en temps normal s’effectue via l’onglet Paramètres, vous connaissez déjà.
Mais il est aussi possible tout comme la modification de Valeurs, de créer des commandes actions afin de les modifier via le dashboard ou encore via des scénarios.
Dans le même ordre d’idée, il est aussi possible de récupérer la valeur d’un paramètre sous forme de commande information afin de l’interpréter comme état dans jeedom.
Les paramètres de configurations sont accessibles via une classe de commande spécifique : COMMAND_CLASS_CONFIGURATION 0x70 soit 112 en décimal.
Depuis les versions 2017 du plugin ZWave, les classes de commandes doivent être spécifiées en décimal et non en hexadécimal comme dans les versions précédentes.
Pour modifier un paramètre il faut connaître les informations suivantes : l’index, la valeur et la taille du paramètre.
- L’index du paramètre, c’est le numéro du paramètre.
- La valeur, c’est la valeur souhaitée.
- La taille du paramètre, est relative au type de données, pour un Byte c’est 1, pour un Short c’est 2 et pour un Int c’est 4.
Il reste les listes, alors pour les listes c’est un petit peu plus compliqué, il faut le chercher dans la documentation du module, mais en général la taille est de 1. Je vais revenir sur les listes dans les exemples.
Exemples
Activer un arrêt automatique d’une lumière
Une majorité des micro-modules relais permet de configurer un arrêt automatique (Auto-Off). Nous allons ici activer et désactiver la fonctionnalité d’arrêt automatique.
L’utilisation de l’arrêt automatique est recommandé pour s’assurer l’extinction du module sans passer par jeedom qui pourrait être en panne ou maintenance.
Pour l’exemple je vais utiliser un Fibaro FGS221 double relais.
Les paramètres 4 et 5 permettent respectivement le contrôle des sorties 1 et 2 en mode arrêt automatique.
Les valeurs possibles ici, sont de 0 (désactivé) à 65535 pour 6553.5 secondes, l’unité est en dixième de seconde. Dans l’exemple on veut après 10 minutes éteindre la lumière 60×10 et encore x10 comme il s’agit de dixième de seconde donc 6000.
La taille, comme il s’agit d’un type Short sera de 2.
On revient sur l’équipement on sélectionne l’onglet Commandes puis + Commandes pour ajouter une nouvelle commande.
Une nouvelle commande sera alors ajouté à la fin de la liste des commandes existantes
Il faudra lui donner un nom, « AutoOff », modifier le type Info en Action, L’instance sera 1, normalement il n’y a qu’une seule instance de paramètre de configuration sur un module. La Classe sera la 112 et l’Index 4 pour ici travailler sur le relais 1. On peut afficher ou non la commande dans le dashboard selon le besoin.
On sauvegarde.
Il manque encore l’assignation de la valeur et de la taille si vous suivez bien. Après la sauvegarde l’entrée permettant de saisir la Commande revient disponible (c’est un petit problème qui sera corrigé, la commande aurait du rester visible lors du changement en commande action, c’est pour cette raison que je vous ai fait sauvegarder entre les deux).
La syntaxe de la commande pour modifier un paramètre :
type=setconfig&value=6000&size=2
On retrouve la valeur 6000, pour 10 minutes et une taille de 2 pour le type Short.
Vous pouvez bien entendu adapter la valeur par celle de votre choix tant qu’elle est incluse dans les limites autorisées par le paramètre.
Et l’on sauvegarde à nouveau.
On peut facilement tester la nouvelle commande à l’aide du bouton Tester, qui sera suivie par une confirmation de l’exécution de l’action.
On peut facilement tester la nouvelle commande à l’aide du bouton Tester, qui sera suivie par une confirmation de l’exécution de l’action.
Si la ligne apparait en rouge avec la valeur en attente entre parenthèses identique à la valeur en cours, c’est un problème d’affichage qui sera aussi prochainement corrigé, vous pouvez ignorer la ligne en rouge.
Si toutefois la valeur est différente et toujours en rouge c’est que la valeur n’a pas été acceptée.
Pour la désactivation de l’arrêt automatique, il faut modifier ce paramètre à 0. On ajoute une nouvelle Commande Action toujours en instance 1 Classe 112 et index 4, mais cette fois la commande sera :
type=setconfig&value=0&size=2
Et voilà nos deux commandes peuvent être utilisées via un scénario ou simplement via le plugin Mode afin d’activer ou désactiver l’arrêt automatique d’un relais.
Comme expliqué avant, il vous est aussi possible dans une commande Info de connaître la valeur d’un paramètre. Pour ce faire on ajoute une nouvelle commande, qui cette fois sera de type Info en Numérique. L’instance toujours 1, la classe 112 et l’index 4. Et c’est tout.
On lance Tester…
Et on a rien, alors là bravo le tuto !
Et bien c’est normal et c’est vrai pour toutes les commandes info que l’on ajoute dans jeedom. Jeedom n’interroge pas la valeur dans le demon mais la valeur dans son cache, or il n’a pas encore conservé de valeur pour cette nouvelle définition de commande info, donc la valeur dans le cache est nulle. Il vous suffit simplement d’exécuter à nouveau une des commandes d’assignation de notre arrêt automatique puis de tester à nouveau et cette fois, jeedom a été notifié du changement.
Cette fois la valeur a été ajoutée au cache jeedom et peut être exploitée en commande info.
Cette subtilité est vraie pour toutes les commandes informations.
On peut encore aller plus loin, si on souhaite avoir plusieurs arrêts automatiques avec des délais différents plutôt que de faire une commande pour chaque intervalle on peut modifier notre commande action pour accepter une valeur cible.
Sous le type de commande Action, nous avons une liste à choix, la valeur par défaut ne permet pas de passer de valeur dynamiquement.
Nous allons donc choisir Curseur, qui nous permettra de remplacer la valeur par l’état du curseur, le mot clé est #slider#.
type=setconfig&value=#slider#&size=2
J’ai aussi pris soin de spécifier les valeurs minimum et maximum autorisées par le paramètre soit entre 0 et 65535.
Dans un Scénario la valeur pourrait être une constante :
Ou encore une valeur calculée :
Ici j’utilise la fonction rand pour obtenir une valeur aléatoire entre 600 et 6000. Pourrait être intéressant dans une notion de simulation de présence.
La valeur peut provenir d’une variable, d’une autre commande info tant qu’elle respecte les limites acceptées par le paramètre.
Vos nouvelles commandes seront utilisables aussi manuellement sur le dashboard en activant la case affichée.
Forcer l’étalonnage de ses volets
Pour déterminer la position en pourcentage des volets, les contrôleurs de volets comme les Fibaro FGR222 doivent être étalonnés. Or cette étalonnage est à refaire de temps en temps. On peut s’en rendre compte lorsque l’ouverture complète n’est plus proche des 99% escomptés. On pourrait considérer qu’en dessous de 95% un étalonnage est à nouveau requis.
Attention cette valeur de 95% est à titre d’exemple il est possible qu’avec votre matériel ce seuil soit plus bas. L’étalonnage permet de déterminer la durée pour l’ouverture et la fermeture complète. Le pourcentage est déterminé par une simple règle de 3 sur le temps où le moteur est resté en fonction en rapport au temps total.
Pour déclencher un étalonnage on doit agir sur le paramètre 29 d’un Fibaro FGR222
Comme dans le précédent exemple, on ajoute une commande Action, pour l’Instance 1, la Classe 112, l’Index 29 et on sauvegarde (pour avoir la commande).
Maintenant comment faire une commande sur un élément d’une liste?
On a deux possibilités: soit utiliser la valeur de l’item (recommandé), soit utilisé la description de l’item.
Je vais favoriser l’utilisation de la valeur de l’item comme il s’agit d’une constante numérique qui ne sera pas modifiée.
La description quant à elle pourrait évoluer (simplification ou clarification de la description), soit simplement une correction due à une erreur de syntaxe. Le contenu du texte doit-être exactement le même en respectant les majuscules et en plus ne pas être la description traduite de l’item.
Pour obtenir valeur de l’item, le mieux est de se référer à la documentation du module, aux fichiers xml d’openzwave,
ou éventuellement dans des tutoriels spécifiques.
Dans la documentation du Fibaro FGR222 il est noté que passer le paramètre 29 à la valeur 1 active l’étalonnage. On retrouve aussi la valeur du paramètre, pour dire la taille, avec la valeur 1 pour un byte.
Notre commande sera la suivante:
type=setconfig&value=1&size=1
Si vraiment vous préférez utiliser la description au lieu de la valeur il faudrait utiliser dans le cas présent:
type=setconfig&value=Start+calibration+process&size=0
Deux choses importantes à noter:
- les espaces dans la description doivent être remplacés par des +
- La taille dans le cas d’utilisation de la description doit toujours être à 0
Vous comprenez pourquoi je privilégie la première méthode, mais les deux fonctionnent.
En mode lecture on reçoit par contre toujours que la description d’un item, jamais sa valeur.
Dans le cas présent pour lancer l’étalonnage, l’information en lecture n’est pas utile puisque cette valeur a la particularité de revenir à la valeur par défaut 0 suite à son application. Le paramètre en rouge est donc cette fois normal.
Pour enlever la ligne en rouge il vous suffit simplement d’utiliser la commande Actualiser les paramètres, disponible en haut de la liste.
Cette méthode s’applique pour tous les paramètres en rouge ou voir ceux bloqués en jaune même après un réveil du module dans le cas de module sur pile. Cette commande en plus de remettre à zéro la valeur en attente d’être appliquée et va demander au module de retourner toutes les valeurs en mémoire. Il peut arriver dans certain cas que la valeur ne soit pas en phase avec l’affichage, c’est donc une bonne chose à faire.
Augmenter la fréquence des rapports de mesure de puissance
Certains modules permettent de choisir un intervalle suivant lequel les rapports de remontée de la puissance seront effectués. Les modules Smart-Plug d’Aeotec par exemple avec leurs paramètres 101 à 113.
Ici le 101 définit le type de rapport et le 111 l’intervalle de ce rapport. Je recommande une valeur à 120, soit 2 minutes pour ne pas submerger le contrôleur de messages, mais il est possible que vous souhaitez avoir plus de rapports si le module est On ou sur une période donnée afin de suivre avec plus de précision la puissance.
Il suffirait ici de faire 2 commandes actions, une pour revenir à la valeur normale et une selon la fréquence souhaitée. Le paramètre 111 est de type Int donc la taille sera à 4.
On ajoute deux commandes Action, sur l’Instance 1, la Classe 112, l’Index 111 et on sauvegarde.
Le retour à la normal avec la commande:
type=setconfig&value=120&size=4
L’agressive avec la commande:
type=setconfig&value=10&size=4
Dans un scénario sur un déclencheur de l’état de la prise, on passe en mode agressif si la prise est à On et on retourne en normal si l’état est à Off.
Couleur d’illumination de l’anneau d’un WallPlug
Les paramètres 61 et 62 du Wallplug Fibaro permettent de choisir la couleur d’illumination de l’anneau LED, selon la charge.
Le comportement par défaut est de suivre la charge et d’être éteint lorsqu’il n’y a pas charge.
Il vous est possible de choisir une couleur qui représente un mode dans votre maison, par exemple une information visuelle vous indiquant que votre alarme est présentement activée.
Il s’agit encore une fois d’une liste, il nous faudra trouver les valeurs des éléments ajoutés des commandes selon votre besoin.
On se réfère encore une fois à la documentation de chez Fibaro.
On y retrouve chaque élément avec la valeur ainsi que la taille du paramètre, encore une fois à 1.
Une commande Action, sur l’Instance 1, la Classe 112, l’Index 29.
On passe en rouge avec la valeur 3:
type=setconfig&value=3&size=1
Une deuxième commande action mais cette fois avec la valeur de la commande à 9, pour éteindre la LED.
type=setconfig&value=9&size=1
Module sur piles
Il vous est aussi possible de modifier des paramètres de module sur piles, mais le changement du paramètre sera considéré seulement au prochain réveil du module. C’est donc à considérer, il faudrait vraiment anticiper un changement bien avant qu’il puisse être appliqué. On recommande pour augmenter la durée de vie de vos piles d’espacer les cycles de réveil, chez moi par exemple la plupart de mes modules se réveillent aux 4h et certains seulement aux 24h.
Cette approche est donc moins pratique sur ce genre de modules, mais reste possible.
Résumé
Petit table qui résume les subtilités entre type et taille avec les valeurs autorisées.
Type | Taille (argument size) | Valeur possible | Remarque |
Byte | 1 (8 bit) | 0 à 255 | |
Boolean | 1 (8 bit) | 0 (faux) 255 (vrai) | |
Bouton | 1 (8 bit) | 0 (appuie) 255 (relâcher) | |
Short | 2 (16 bit) | 0 à 65535 | |
Int | 4 (32 bit) | 0 à 4294967295 | |
List (par valeur) | 1 dans la majorité des cas, mais reste préférable de consulter la documentation. | La valeur de l’item selon la documentation | |
List (par texte) | 0 | La description de l’item | remplacer les espaces par des + |
Il faut consulter la documentation pour les valeurs autorisées dans la plage de valeur possible. Tout paramètre à l’extérieur des valeurs autorisées sera rejeté par le module voir pas pris en compte à l’application.
Conclusion
Comme vous l’avez constaté on peut apporter beaucoup de dynamique à ces modules en modifiant leurs paramètres que ce soit par des scénarios, en suivant un mode du plugin mode, de son alarme ou tout autre plugin de façon très simple.
N’hésitez pas à partager vos idées dans les commentaires à disposition.
Bon paramétrage à vous tous!
Très bon tuto merci je le mets de côté mais comme dit ma femme quand ça marche touche plus à rien ?
Excellent tuto nechry. Merci à toi pour ton attitude et tout le temps que tu donnes !
Merci Nechry pour ce super tuto.
Mon wallplug Fibaro de l’entrée me sert d’indicateur de l’état de l’alarme en jouant avec les couleurs des LED par scénario.
Super, bonne suite
Merci pour se tuto qui m’aide pour configurer une sirene (mode strobe, siren, dual).Je rencontre juste des difficulter sur la lecture du parametre, qui semble pas bien se faire (lecture done toujours 0 quelque soit la configuration réaliser sur le paramètre, une idée ?)
quel type info utilises-tu? essais avec Autre.
Merci nechry j’avais laissé numérique. et maintenant la valeur du paramètre semble bien lut. Je vois le bon nom dans le widget du dashboard et il est cohérent.
Par contre quand je fais le test depuis l’onglet commande j’obtiens toujours 0, c’est peut être lié au fait que la valeur est une « liste » et qu’il n’arrive pas a convertir la valeur dans la chaine de caractère correspondant, comme cela est fait pour le widget.
Une remarque sur les modules sur batterie la limitation sur le temps de réveil des modules ne concerne pas ceux qui sont « FLIRS », car ils reçoivent très rapidement les paramètres (quasi imédiat).
Merci je viens de voir que avec « Autres » c’est mieux. Mais cela ne marche pas avec le boutons tester que l’on a dans l’onglet commande de l’objet, c’est peut être lié au fait que c’est une liste de valeur.
Par contre dans le widget quand je fait un changement de paramètre on voit bien sa nouvelle valeur convertit dans la chaine de caractère correspondant au paramètre.
Il me reste a faire en sorte que la valeur sois lus tout le temps. Quand j’arrive ur le widget je vois toujours 0 il me faut toujours faire un changement de paramètre pour que la valeur soit a jour. Idem dans un scenario si je change le paramètre pour le lire ensuite j’ai toujours une lecture de « 0 » (même en ajoutant des temporisation).
Est ce que le fait que mon module soit sur Pile (mode FLIRS) empêcherait une bonne lecture (changer le paramètre est toujours bon rapidement)
Tu ne devrais pas avoir de 0, je trouve ça étrange. La valeur précédente devrait être dans le cache jeedom puis mise à jour suite au changement.
Tu fais avec quel module, peut être je peux reproduire.
Bon j’ai réussis a tous faire marché….
J’ai supprimer toutes les commande, ré-initialisé les paramètres par défaut du nœud….
Refait les commandes (ecriture et lecture) proprement (j’ai pas pris les mêmes nom) et maintenant tout marche le boutons test de l’onglet commandes la valeur sur le widget dans tous les cas, aisin que la lecture et l’écriture depuis les scenarios,
Cela va être parfait pour avoir une alarme lumineuse puis sonore au bout d’un certains temps… vraiment nickel.
Du coup tu pourras indiquer qu’il n’y a pas de limitation sur les temps de réveils sur les modules avec piles qui sont en FLiRS…. c’est quasi instantanés
ET un très grand merci pour ta réactivité en tous cas.
Bonjour Nechry et merci pour ton partage. J’essaie mais cela ne fonctionne pas. Je veux faire varier le paramètre 9 du Fibaro FGMS-001-ZW5 de telle sorte que lorsque l’alarme est On la limite de fonctionnement Jour/nuit soit 0 et si l’larme est Off cette limite soit 2000, jamais atteinte, donc la détection ne fonctionne pas. J’ai créé le 4 commandes ON (value=0), OFF (value=2000), Refresh (type=refreshData) et Etat. Lorsque je teste On ou OFF les valeurs ne changent pas.
Bonjour, pour un module sur pile, faut attendre malheureusement le réveil du module pour que la valeur du paramètre soit prise en compte. c’est donc pas immédiat.
Bonjour, super Tuto !
Peut on de la même façon changer des paramètres « système » ? Par exemple la fréquence de réveil de module sur pile (toutes les heures le WE et toutes les 6 heures la sem par exemple) …
Merci
oui c’est aussi possible, il suffit simplement de bien renseigner les bonnes information de CC instance et index
Salut, tres bon tuto, Je recherche pour mes scénarios de pouvoir récupérer les info suivantes, sur les modules de volets roulant fibaro fgr 222 v2 des que l’on les action par le bouton physique.
Super tuto merci Nechry. Il le manque de te lire a nouveau. Le Z-Wave n’est plus pareil sans tes interventions.