Aller au contenu
turlututu74

Avis De Recherche Pour Exemples De Tuto De Périphériques Virtuels

Recommended Posts

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

 

Partager ce message


Lien à poster
Partager sur d’autres sites

Tu l'auras voulu ... ta mission de ce jour .. créer ce module virtuel :

 

604981MVtuto1.png

 

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 :

mini_607574MVTuto2.png

Partager ce message


Lien à poster
Partager sur d’autres sites

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. 

Partager ce message


Lien à poster
Partager sur d’autres sites

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 :-(

Partager ce message


Lien à poster
Partager sur d’autres sites
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

Partager ce message


Lien à poster
Partager sur d’autres sites

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...

Partager ce message


Lien à poster
Partager sur d’autres sites

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.

Partager ce message


Lien à poster
Partager sur d’autres sites

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

Partager ce message


Lien à poster
Partager sur d’autres sites

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

Partager ce message


Lien à poster
Partager sur d’autres sites

Dans mon exemple plus haut je t'ai donner le code pour récupérer la valeur du slider.

Partager ce message


Lien à poster
Partager sur d’autres sites

La nuit porte conseil... j ai certainement zaper quelque chose. Je regarderai demain. A bientôt.

Partager ce message


Lien à poster
Partager sur d’autres sites

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é.

  • Upvote 1

Partager ce message


Lien à poster
Partager sur d’autres sites

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)

Partager ce message


Lien à poster
Partager sur d’autres sites

J'ai testé ton code sur un de mes modules... c'est bon.

 

post-2-0-03157900-1406754149_thumb.jpg

 

post-2-0-42406600-1406754158_thumb.jpg

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 ?

 

.

Partager ce message


Lien à poster
Partager sur d’autres sites

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)

post-937-0-84269100-1406832921_thumb.jpg

post-937-0-72512700-1406832922_thumb.jpg

post-937-0-34631400-1406832923_thumb.jpg

Partager ce message


Lien à poster
Partager sur d’autres sites

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)

Partager ce message


Lien à poster
Partager sur d’autres sites

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. 

Partager ce message


Lien à poster
Partager sur d’autres sites

×