Aller au contenu
i-magin

Création D'un Périphérique Virtuel Et Main Loop

Recommended Posts

Bonjour,
 
Pour les nouveaux possesseurs de Fibaro HC2, je vais décrire la procédure de création d'un périphérique virtuel.
J'utiliserai comme exemple la gestion du Fil pilote de radiateurs électriques (4 ordres), désormais un classique pour les utilisateurs de HC2
 
Lorsque le module sera créé on obtiendra ceci sur notre console d'administration : 
gallery_12_6_3118.png
En haut de cette image, vous constatez la mention "Chauffage" puis trois sigles à  droite : 
  • le 1er vous permettra d'actionner les boutons
  • le second de configurer le périphérique virtuel
  • le 3ème de supprimer ce périphérique virtuel
 
Cliquons sur le 1er, pour obtenir l'image de référence de ce post.
Toutes les informations qui apparaissent seront décrites ensuite
gallery_12_6_5871.png
(On aperçoit par transparence sur cette copie d'image, une partie de mon panneau de gestion)
 
Comment a été créé ce périphérique virtuel ?
Dans le panneau de gestion, sélectionner "Ajouter un périphérique virtuel" :
gallery_12_6_4122.png
Nous lui donnons un nom et l'affectons à  une pièce
A noter : on retrouvera  le nom "Chauffage Chambre" soit en entier (voir image précédente) ou seulement "chambre" sur le panneau général  (voir 1ère image).... le système gère la place disponible à  l'affichage
 
En cliquant sur l'onglet "Avancé", nous allons pouvoir ajouter un label et des boutons
gallery_12_6_11002.png
Remarque : je sais.... on voit déjà  l'icône dans cette copie d'image.... et je ne détaillerai pas cette fonction très simple, sinon le post va faire 30 pages !
 
Plus bas sur cet onglet "Avancé", on voit ceci :
gallery_12_6_10821.png
Nous sélectionnons "Label" et "2 boutons" puis "Add set"
Nous sélectionnons à  nouveau "2 boutons" puis "Add set"
Ce choix dépend de l'ergonomie que l'on attend de notre périphérique virtuel et du nombre de caractères que l'on souhaite afficher dans chaque bouton
 
LE LABEL
gallery_12_6_6988.png
Cette copie d'écran montre le label une fois modifié :
- pour "Label" j'ai choisi "Mode" : ce terme apparait sur l'image de référence
- ID : j'ai laissé la valeur par défaut "Label1"... on y reviendra lors de "main loop"
 
LES BOUTONS
Prenons au hasard le bouton "eco" comme exemple
gallery_12_6_4838.png
Label = Eco - le terme choisis "Eco" apparait dans le bouton
ID : eco - je ne garde pas les valeurs par défaut du genre "Button11", peu explicites lorsqu'ensuite on crée des scènes - pour cette valeur, ne pas utiliser d'espace, de caractères accentués, etc
Le script LUA : très simple, il configure les deux relais des radiateurs.
La dernière ligne de script met à  jour la variable globale "chauffagechambre" que j'ai créée auparavant au moyen du panneau variables. 
Cette variable est utilisée dans une scène de gestion automatique du chauffage.
 
Elle peut être mise à  jour directement par le panneau de variables ou par d'autres scènes ou périphériques virtuels.... c'est pourquoi  nous allons la retrouver dans "main loop"
gallery_12_6_3191.png
Ligne 7 : je récupère la valeur de la variable "chauffagechambre"
Ligne 8 : me permet d'afficher la valeur affectée à  "chauffagechambre" - voir dans l'image de référence la valeur "eco"
- 82 est l'id de ce périphérique virtuel
- "ui.Label1.value" : on retrouve ici Label1, l'ID du label
- temp : la variable locale de la ligne 7
Ligne 9 : une tempo pour ne pas surcharger la HC2.... mais d'après ce que j'ai lu sur le forum Fibaro, les développeurs ont intégré par défaut une tempo, suite aux nombreux problèmes de freeze remontés par des utilisateurs qui oublient de gérer ce point>>>> Information confirmée par la version 3.580
 
 
Information du 03 janvier 2014, suite au firmware 3.580

"Virtual devices update - sleep in main loop increased to 3 seconds"

 
A noter que depuis les dernières versions de la box, il est possible d'exporter et d'importer un périphérique virtuel (sauf icônes)
 
PS : j'avais récupéré les icônes de chauffage mis à  disposition par @benjynet... merci à  lui  :)
 
 
Afficher un label sur le module virtuel dans la console de gestion de la Box 
 
L'image doublera de largeur
gallery_12_6_1967.png
 
Pour obtenir ce résultat, il faut cocher l’option "main" d’un label... Voir ci-après
gallery_12_6_47721.png
 

Il est possible de récupérer la valeur affectée à  un label :

fibaro:get(idboutonvirtuel,"ui.idlabel.value")
(Renseigner idboutonvirtuel et idlabel)
 
 
Modification de l'ordre des boutons

 

On peut modifier l'ordre d'affichage des labels et blocs de boutons : utiliser les touches ^v à  gauche de la ligne en bleu

Attention, si vous modifiez l'ordre des labels et boutons !

Si vous avez des scènes programmées pour activer les boutons avec cette fonction : fibaro:call(idmoduleV, "pressButton", "idbouton"), vous risquez une belle pagaille après avoir modifié l'ordre des labels et boutons   ;)

Il faut noter que le paramètre utilisé dans les scènes pour actionner un bouton est son rang dans la liste labels + boutons 

Je conseille de jeter un Å“il sur l'excellent Toolkit de @Krikroff (voir ICI)

Il permet de visualiser les données brutes des périphériques virtuels et on peut constater que l'ID visualisée pour un bouton (en dessous du LABEL) correspond en fait à  "name" des données brutes

C'est l'ID des données brutes qui doit être pris en compte dans les scènes 
 
Par contre, c'est bien l'ID du label (name en données brutes) d'un module virtuel que l'on utilise pour les commandes du type :  fibaro:call(110,"setProperty","ui.iddulabel.value",valeur), que ce soit en interne au module, comme dans une scène
 
 
Comment éviter la tâche pénible de changer l'icône pour chaque bouton d'un module virtuel
 
- Changer l'icône général
- puis intégrer 3 lignes de code LUA pour chaque bouton
local selfId = fibaro:getSelfId();
local icon = fibaro:get(selfId, "deviceIcon"); 
fibaro:call(selfId, "setProperty", "currentIcon", icon) 

Cette méthode facilite également la portabilité du module

 

 

Slider

 

Pour plus d'informations à  ce sujet, voir le tuto de @mprinfo : [Tuto HC2] Module Virtuel - Le Slider De A À Z (Image + Codes Lua)

  • Upvote 10

Partager ce message


Lien à poster
Partager sur d’autres sites
Invité
Ce sujet ne peut plus recevoir de nouvelles réponses.

×