Message populaire i-magin Posté(e) le 28 décembre 2013 Message populaire Signaler Posté(e) le 28 décembre 2013 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 : 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 (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" : 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 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 : 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 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 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" 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 Pour obtenir ce résultat, il faut cocher l’option "main" d’un label... Voir ci-après 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) 10
Messages recommandés