Message populaire mprinfo Posté(e) le 10 avril 2015 Message populaire Signaler Posté(e) le 10 avril 2015 Vu que j'ai eu pas mal de J'aime pour mon dernier tuto (Je suis en manque d'affection ) Cela veux dire que vous êtes demandeur et ça me motive à en faire d'autres http://www.domotique-fibaro.fr/index.php/forum/83-la-home-center-pour-les-nuls/ Nous somme nombreux sur ce forum si 10% des membres font un tuto ça serait super 1er Partie est plutôt simple. 2eme Partie et plus complexe mais facile a comprendre. Je vais vous expliquez comment ce servir du Slider d'un module Virtuel 1er Partie Il faut crée un module virtuel voici comment faire en image Il faut copier ce code dans le slider local ID_VD = fibaro:getSelfId() -- Recupere l'id du module Virtuel local Slider = fibaro:get(ID_VD,"ui.Slider1.value") fibaro:debug(Slider) -- Ecriture de la valeur du slider dans l'etiquette Label1 fibaro:call(ID_VD, "setProperty", "ui.Label1.value", Slider) On sauvegarde et on revient sur le slider Pour Debuger le code on fait comme cela fibaro:debug() affiche des messages dans le debug ex : fibaro:debug("Coucou") ou fibaro:debug("Valeur du slider : " ..Slider) On appui sur Démarrer et on bouge le slider grace a fibaro:debug() on peut voir la valeur de la variable local Slider 2eme Partie Nous venons de voir comment utiliser le slider On aperçois que les valeurs vont de 0 à 100 Je vais donc vous montrer comment on peut avoir d'autre valeur que 0 à 100 il est impossible pour le moment de modifier le slider au niveau de l'affichage 0 -100 C'est pour cela que nous allons utiliser une étiquette pour afficher la valeur Il faut savoir que le slider à 101 position de 0 à 100 si on veut de 0 à 50 on va avoir (0 - 0,5 - 1 - 1,5 etc..) Si vous voulez un nombre entier il faut utilisez math.floor() Voici l'explication donner par Gregory à Moicphil -- Il te faut une fonction de mapping. function map_range( a1, a2, b1, b2, s ) return b1 + (s-a1)*(b2-b1)/(a2-a1) end -- à‡a permet de mapper une valeur s du range a1, a2 dans le range b1, b2. -- Ici s est la valeur de ton curseur, a1=0, a2=100 -- et à toi de définir les températures min et Max (b1 et b2) que tu souhaites. -- à‡a permet de mapper une valeur s du range a1, a2 dans le range b1, b2. Ici s est la valeur -- de ton curseur, a1=0, a2=100 et à toi de définir les températures min et Max (b1 et b2) -- que tu souhaites. la formule mathématique a été trouver sur le Site Rosetta Code : http://rosettacode.org/wiki/Map_range C'est l'un des sites préféré de notre amis KriKroff Je vais vous donnez un exemple pour un slider de 30 à 80 -- Permet de récuperer la valeur slider function map_range( a1, a2, b1, b2, s ) return b1 + (s-a1)*(b2-b1)/(a2-a1) end local V_Slider = map_range(0, 100, 30, 80, _sliderValue_ ); -- Permet d'avoir un nombres entier math.floor() local Slider = math.floor(V_Slider) Pour modifier la valeur d'un slider directement depuis une URL, voici la syntaxe : (By Steven) http://<URL_HC2>/api/callAction?deviceID=<ID_Module_virtuel>&name=setSlider&arg1=<Position_du_slider>&arg2=<Valeur> URL_HC2 = L'url de votre HC2 ... soit son adresses IP, soit www.mondomaine.com ID_Module_virtuel = L'identifiant du module virtuel Position_du_slider = La position du slider dans le module virtuel. en comptant de haut en bas et de gauche à droite le nombre de label, bouton, slider dans le module virtuel Valeur = la valeur souhaitée .. depuis la v 4.x la valeur DOIT être un chiffre entier. Exemple http://192.168.1.1:8...&arg1=4&arg2=10 11
Messages recommandés