turlututu74 Posté(e) le 24 juillet 2014 Signaler Partager Posté(e) le 24 juillet 2014 Bonjour, je cherche en des tutos simples pour la réalisation de périphériques virtuels. En effet, je n'ai pas vraiment trouvé d'exemples me permettant simplement d'utiliser le slider, de renvoyer une valeur vers un label... Le problème, c'est que lorsque l'on regarde un tuto, c'est tout de suite très compliqué et propre a son créateur et ces besoins. merci Lien vers le commentaire Partager sur d’autres sites More sharing options...
Steven Posté(e) le 25 juillet 2014 Signaler Partager Posté(e) le 25 juillet 2014 Tu l'auras voulu ... ta mission de ce jour .. créer ce module virtuel : Quand tu bouges le slider, ce dernier affiche sa valeur dans le label du dessus. Code derrière le slider : local id_de_ce_mv = fibaro:getSelfId() -- Permet de récupéré l'identifiant du module virtuel local valeur_du_slider = fibaro:getValue(id_de_ce_mv, "ui.Slider1.value") -- Permet de récupérer la valeur du slider "Slider1" du module virtuel fibaro:call(id_de_ce_mv, "setProperty", "ui.Label1.value", valeur_du_slider) -- Permet de modifier la valeur du label "Label1" du module en cours -- On lui assigne la valeur du slider contenu dans valeur_du_slider .. Explication en image : Lien vers le commentaire Partager sur d’autres sites More sharing options...
turlututu74 Posté(e) le 25 juillet 2014 Auteur Signaler Partager Posté(e) le 25 juillet 2014 YES, SUPER. J'ai travaillé hier soir sur les fonctions MaVariable = fibaro:getValue(xx, 'value') et fibaro:debug('Valeur de la variable:' ..MaVariable) j'avais un problème au niveau de la pertinence du retour d'info. avec un fibaro:sleep(3000) le problème était réglé. Mais avant que je trouve!!! enfin il faut un peu de temps aux modules pour remonter l'info. Dernière petite chose, local MaVariable=" " permet-il de remettre la variable en "rien" ? Merci encore voisin Steven. Lien vers le commentaire Partager sur d’autres sites More sharing options...
Steven Posté(e) le 25 juillet 2014 Signaler Partager Posté(e) le 25 juillet 2014 nil correspond à rien"" correspond à une chaîne de caractère vide.Donc local MaVariable = nil if (MaVariable == nil) then fibaro:debug("Ma variable est rien, nada, un trou noir") else fibaro:debug("Ma variable existe et contient : " .. MaVariable) end Surprenant que tu ailles besoin d'un sleep, c'est extrêmement rare. local MaVariable = fibaro:getValue(xx, 'value') fibaro:debug('Valeur de la variable:' .. MaVariable) -- OU fibaro:debug('Valeur :' .. fibaro:getValue(xx, 'value')) -- Ne doivent pas nécessiter de sleep, sinon c'est qu'il y a un soucis :-( Lien vers le commentaire Partager sur d’autres sites More sharing options...
turlututu74 Posté(e) le 25 juillet 2014 Auteur Signaler Partager Posté(e) le 25 juillet 2014 J'ai réalisé cela pour bien comprendre le fonctionnement et retour d'information. J'ai un switch type 2x1.5 kW sur mon bureau afin de bien entendre les relais. Je pense qu'il y a plus simple mais bon pour un départ... --[[ %% autostart %% properties %% globals --]] local MaVariable01 local MaVariable02 MaVariable01 = fibaro:getValue(49, 'value'); MaVariable02 = fibaro:getValue(51, 'value'); fibaro:debug('Etat initial') fibaro:debug('MD49 Variable initial: ' .. MaVariable01) fibaro:debug('MD51 Variable initial: ' .. MaVariable02) fibaro:sleep(1*1000) if (MaVariable01 == '1') or (MaVariable02 == '1') then fibaro:call(49, 'turnOff') fibaro:call(51, 'turnOff') fibaro:sleep(1000) MaVariable01 = fibaro:getValue(49, 'value'); fibaro:debug('MD49 Variable OFF: ' .. MaVariable01) MaVariable02 = fibaro:getValue(51, 'value'); fibaro:debug('MD51 Variable OFF: ' .. MaVariable02) fibaro:sleep(1*1000) fibaro:call(49, 'turnOn') fibaro:sleep(1000) fibaro:call(51, 'turnOn') fibaro:sleep(1000) MaVariable01 = fibaro:getValue(49, 'value'); fibaro:debug('MD49 Variable ON: ' .. MaVariable01) MaVariable02 = fibaro:getValue(51, 'value'); fibaro:debug('MD51 Variable ON: ' .. MaVariable02) else fibaro:call(49, 'turnOn') fibaro:sleep(1000) fibaro:call(51, 'turnOn') fibaro:sleep(1000) MaVariable01 = fibaro:getValue(49, 'value'); fibaro:debug('MD49 Variable ON: ' .. MaVariable01) MaVariable02 = fibaro:getValue(51, 'value'); fibaro:debug('MD51 Variable ON: ' .. MaVariable02) end Lien vers le commentaire Partager sur d’autres sites More sharing options...
turlututu74 Posté(e) le 25 juillet 2014 Auteur Signaler Partager Posté(e) le 25 juillet 2014 Avec le code ci dessus, j'ai si je supprime les fibaro:sleep juste avant l'affichage des variables le retour du fibaro:debug('MD51 Variable ON: ' .. MaVariable02) reste a 0 mais avec un sleep(1000) la valeur est bonne!!! Bon pas grave, je bosse sur que le slide... Lien vers le commentaire Partager sur d’autres sites More sharing options...
Steven Posté(e) le 25 juillet 2014 Signaler Partager Posté(e) le 25 juillet 2014 J'ai cru que tu avais besoin d'un sleep entre le getValue et le debug :-) Entre le call et le getValue, comme tu le dis, cela semble compréhensif. Lien vers le commentaire Partager sur d’autres sites More sharing options...
turlututu74 Posté(e) le 25 juillet 2014 Auteur Signaler Partager Posté(e) le 25 juillet 2014 Merci Steven, pour ce premier cours. je suis tombé sur un tuto "L'armoire Météo", je vais décortiquer le script. A bientôt Lien vers le commentaire Partager sur d’autres sites More sharing options...
turlututu74 Posté(e) le 25 juillet 2014 Auteur Signaler Partager Posté(e) le 25 juillet 2014 Bien, après 4 heures de recherche, je post cette demande. comment faire pour créer un slider tout bette me permettant de gérer ceci: fibaro:call(20, 'setValue', x) Et plus fort : fibaro:call(20, 'setColor', 'ww', ' xx', 'yy', 'zz') Je voudrais simplement connaitre les méthodes et fonctions pour régler la valeur x avec un slider. C'est vraiment dommage qu'il n'y ai pas de petits exemples comme on pourrai le voir dans les livres de développement! Merci Lien vers le commentaire Partager sur d’autres sites More sharing options...
Steven Posté(e) le 25 juillet 2014 Signaler Partager Posté(e) le 25 juillet 2014 Dans mon exemple plus haut je t'ai donner le code pour récupérer la valeur du slider. Lien vers le commentaire Partager sur d’autres sites More sharing options...
turlututu74 Posté(e) le 25 juillet 2014 Auteur Signaler Partager Posté(e) le 25 juillet 2014 La nuit porte conseil... j ai certainement zaper quelque chose. Je regarderai demain. A bientôt. Lien vers le commentaire Partager sur d’autres sites More sharing options...
turlututu74 Posté(e) le 26 juillet 2014 Auteur Signaler Partager Posté(e) le 26 juillet 2014 OK parfait. La nuit a fait son effet. Petit récapitulatif: 01-> On récupère l'identifiant du module virtuel avec "fibaro:getSelfId()" , l'identifiant est stoqué dans la variable "id_de_ce_mv" 02-> On récupère la valeur du slider avec "fibaro:getValue" du module virtuel. "ui.Slider1.value" est le slider lui même. 03-> On appel le module virtuel avec "fibaro:call" et l'on affect la valeur du slider avec "ui.Label3.value" qui est le label. 04-> Retour d'information de la valeur dans le debug (j'aime bien valider avec cette fonction) je sais on à la valeur dans le label mais bon... 05-> J'appel mon module dimmable avec "fibaro:call" et je lui envois la valeur du slider. Super merci pour ce petit cours, me dire si il y a un problème dans les explications ci-dessus. Pouvons nous trouver quelque part les infos sur les "actionName" possible de la fonction "fibaro:call" As-tu une autre mission a me proposer! J'aimerais faire plein de petits exemples et les soumettes en tuto pour les "tout nouveau"... Merci encore Steven. local id_de_ce_mv = fibaro:getSelfId() -- Permet de récupéré l'identifiant du module virtuel (création d'une variable -> id_de_ce_mv) local valeur_du_slider = fibaro:getValue(id_de_ce_mv, "ui.Slider1.value") -- Permet de récupérer la valeur du slider "Slider1" du module virtuel fibaro:call(id_de_ce_mv, "setProperty", "ui.Label3.value", valeur_du_slider) -- Permet de modifier la valeur du label "Label1" du module en cours -- On lui assigne la valeur du slider contenu dans valeur_du_slider fibaro:debug('Valeur_du_slider: ' .. valeur_du_slider) -- Affiche la valeur du slider dans le panneau debug fibaro:call(20, 'setValue', valeur_du_slider) -- Attribue la valeur du slider au module RGBW ou module dimmable !!! -- le tour est joué. 1 Lien vers le commentaire Partager sur d’autres sites More sharing options...
turlututu74 Posté(e) le 30 juillet 2014 Auteur Signaler Partager Posté(e) le 30 juillet 2014 J ai besoin d'un coup de pousse !!! Je cherche à obtenir un retour d'info d'un module. J'ai réaliser sur un bouton OU dans le Main Loop ce code afin de transmettre l'information de sa valeur d'un module "réel ID=20 RGBW" sur un label 11. J'ai testé l'un après l'autre ce code, avec une variante entre fibaro:call et fibaro:get, ValeurModule et value Aucun retour, le label reste sur Undefined ! Je ne trouve pas mon erreur. merci de votre aide. fibaro:debug('ID_du_module: ' .. 20) -- Module RGBW Led ID=20 local ValeurModule = fibaro:getValue(20, 'value') -- Valeur du module de 0 à 100 pourcents fibaro:debug('Valeur_du_module en % =' .. ValeurModule) -- Donne ça valeur dans le Débug fibaro:call(20 , "setProperty", "ui.Label11.value", ValeurModule) --fibaro:getValue(20, "ui.Label11.value", ValeurModule) --fibaro:call(20 , "setProperty", "ui.Label11.value", value) --fibaro:getValue(20 , "setProperty", "ui.Label11.value", value) Lien vers le commentaire Partager sur d’autres sites More sharing options...
Moicphil Posté(e) le 30 juillet 2014 Signaler Partager Posté(e) le 30 juillet 2014 J'ai testé ton code sur un de mes modules... c'est bon. fibaro:debug('ID_du_module: ' .. 122) -- Module RGBW Led ID=122 local ValeurModule = fibaro:getValue(122, 'value') -- Valeur du module de 0 à 100 pourcents fibaro:debug('Valeur_du_module en % =' .. ValeurModule) -- Donne ça valeur dans le Débug fibaro:call(266 , "setProperty", "ui.Label1.value", ValeurModule) --fibaro:getValue(20, "ui.Label11.value", ValeurModule) --fibaro:call(20 , "setProperty", "ui.Label11.value", value) --fibaro:getValue(20 , "setProperty", "ui.Label11.value", value) Par contre est tu sur de l'iD de ton label ? C'est pas plutôt Label1 que tu aurais au lieu de Label11 ? . Lien vers le commentaire Partager sur d’autres sites More sharing options...
turlututu74 Posté(e) le 31 juillet 2014 Auteur Signaler Partager Posté(e) le 31 juillet 2014 Je ne comprends vraiment pas ou est le problème!!! Merci de votre aide. fibaro:debug('ID_du_module: ' .. 20) -- Module RGBW Led ID=20 local ValeurModule = fibaro:getValue(20, 'value') -- Valeur du module de 0 à100 pourcents fibaro:debug('Valeur_du_module en % =' .. ValeurModule) -- Donne ça valeur dans le Débug fibaro:call(20, "setProperty", "ui.Label1.value", ValeurModule) Lien vers le commentaire Partager sur d’autres sites More sharing options...
Moicphil Posté(e) le 31 juillet 2014 Signaler Partager Posté(e) le 31 juillet 2014 A mon avis l'id du module virtuel ou se trouve le label n'est pas le bon. Ton rgbw c'est le 20 , donc forcement ton module virtuel a un autre numéro. Tu trouvera le numero du module en cliquant dessus, le numéro sera dans la barre de navigation Remplace "xx" par le bon id : fibaro:call(xx, "setProperty", "ui.Label1.value", ValeurModule) Lien vers le commentaire Partager sur d’autres sites More sharing options...
turlututu74 Posté(e) le 31 juillet 2014 Auteur Signaler Partager Posté(e) le 31 juillet 2014 OK je viens de comprendre le problème, ça fonctionne... Pas facile de comprendre le fonctionnement sans aucun document sur les fonctions Fibaro et leurs fonctionnements. Merci bien moicphil. Lien vers le commentaire Partager sur d’autres sites More sharing options...
Messages recommandés