uncleseb Posté(e) le 12 mai 2014 Signaler Posté(e) le 12 mai 2014 Bonjour j'essaye de créer une scène pour les boutons de ma minimote , ca ne fonctionne uniquement si après avoir appuyé sur le bouton je clique sur démarrer dans la config de la scène. Sinon les boutons seuls n'ont aucun effet. Qu'ai je oublié ? id 62 est ma minimote id 56 ma tv id 27 une lampe merci de vos aides --[[ %% properties 62 sceneActivation %% globals --]] local ButtonPressed = fibaro:getValue(62, "sceneActivation") if ( tonumber(ButtonPressed) == 1) then fibaro:call(56, "turnOn") fibaro:debug("MiniMote button 1 pressed") elseif ( tonumber(ButtonPressed) == 3) then fibaro:call(56, "turnOff") fibaro:debug("MiniMote button 2 pressed") elseif ( tonumber(ButtonPressed) == 5) then fibaro:call(27, "turnOn") fibaro:debug("MiniMote button 3 pressed") elseif ( tonumber(ButtonPressed) == 6) then fibaro:call(27, "turnOff") fibaro:debug("MiniMote button 3 long pressed") else fibaro:debug("No response") end
JossAlf Posté(e) le 12 mai 2014 Signaler Posté(e) le 12 mai 2014 Utilise les tag pour le codes c'est plus lisible : --[[ %% properties 62 sceneActivation %% globals --]] local ButtonPressed = fibaro:getValue(62, "sceneActivation") if ( tonumber(ButtonPressed) == 1) then fibaro:call(56, "turnOn") fibaro:debug("MiniMote button 1 pressed") elseif ( tonumber(ButtonPressed) == 3) then fibaro:call(56, "turnOff") fibaro:debug("MiniMote button 2 pressed") elseif ( tonumber(ButtonPressed) == 5) then fibaro:call(27, "turnOn") fibaro:debug("MiniMote button 3 pressed") elseif ( tonumber(ButtonPressed) == 6) then fibaro:call(27, "turnOff") fibaro:debug("MiniMote button 3 long pressed") else fibaro:debug("No response") end Je regarde plus en détail...
JossAlf Posté(e) le 12 mai 2014 Signaler Posté(e) le 12 mai 2014 C'est pas simplement le retour à ligne après %% en ligne 3 sur le code du message précédent ? Voici la correction : --[[ %% properties 62 sceneActivation %% globals --]] local ButtonPressed = fibaro:getValue(62, "sceneActivation") if ( tonumber(ButtonPressed) == 1) then fibaro:call(56, "turnOn") fibaro:debug("MiniMote button 1 pressed") elseif ( tonumber(ButtonPressed) == 3) then fibaro:call(56, "turnOff") fibaro:debug("MiniMote button 2 pressed") elseif ( tonumber(ButtonPressed) == 5) then fibaro:call(27, "turnOn") fibaro:debug("MiniMote button 3 pressed") elseif ( tonumber(ButtonPressed) == 6) then fibaro:call(27, "turnOff") fibaro:debug("MiniMote button 3 long pressed") else fibaro:debug("No response") end
Shad Posté(e) le 12 mai 2014 Signaler Posté(e) le 12 mai 2014 Détail regarde ton entête avec properties, sa marchera mieux si tu supprimes le retour à la ligne . Et sinon tu as un tuto ici, http://www.domotique-fibaro.fr/index.php/topic/729-gestion-minimote/
JossAlf Posté(e) le 12 mai 2014 Signaler Posté(e) le 12 mai 2014 Tiens en passant un petit truc pour te faire économiser des boutons : Les boutons sont organisés comme suit (en regardant la télécommande face à soit vers le haut) Appui court 1 3 - Appui long 2 4 Appui court 5 7 - Appui long 6 8 Si tu utilises une variable en plus, tu peux savoir si ton module est allumé ou éteint. En appuyant sur le bouton 1 de ta télécommande tu allumes et éteins alternativement ton module 56 En appuyant sur le bouton 2 de ta télécommande tu allumes et éteins alternativement ton module 27 Voici le code : --[[ %% properties 62 sceneActivation %% globals --]] local ButtonPressed = fibaro:getValue(62, "sceneActivation") -- module 56 if ( tonumber(ButtonPressed) == 1) then local MaVariable=fibaro:getValue(56,'value') if (MaVariable=='0')then figaro:call(56, "turnOn") else figaro:call(56, "turnOff") end --appui long 1 rien encore elseif ( tonumber(ButtonPressed) == 2) then --- --- --Module 27 elseif ( tonumber(ButtonPressed) == 3) then local MaVariable=fibaro:getValue(27,'value') if (MaVariable=='0')then figaro:call(27, "turnOn") else figaro:call(27, "turnOff") end -- appui long 2 rien encore elseif ( tonumber(ButtonPressed) == 4) then --- --- --Autre exemple pour le module 9 elseif ( tonumber(ButtonPressed) == 5) then local MaVariable=fibaro:getValue(9,'value') if (MaVariable=='0')then fibaro:call(9, "turnOn") else fibaro:call(9, "turnOff") end -- appui long 3 rien encore elseif ( tonumber(ButtonPressed) == 6) then --- --- --Autre exemple pour le module 10 elseif ( tonumber(ButtonPressed) == 7) then local MaVariable=fibaro:getValue(10,'value') if (MaVariable=='0')then fibaro:call(10, "turnOn") else fibaro:call(10, "turnOff") end --Autre exemple pour le module 36 elseif ( tonumber(ButtonPressed) == 8) then local MaVariable=fibaro:getValue(36,'value') if (MaVariable=='0')then fibaro:call(36, "turnOn") else fibaro:call(36, "turnOff") end end C'est pas beau ça ?
uncleseb Posté(e) le 12 mai 2014 Auteur Signaler Posté(e) le 12 mai 2014 le copier/coller...pas toujours bon trop fort !!! Ca fonctionne un grand merci !!! Autre question , si je dois éteindre plusieurs id , le mieux est de faire une ligne pour chacun ou de les mettre sur la même ligne séparés par une virgule ?
JossAlf Posté(e) le 12 mai 2014 Signaler Posté(e) le 12 mai 2014 Comme tu veux. Je trouve plus lisible de faire des lignes pour chaque module (Comme ça je peux commenter pour savoir à quoi correspond le module 9 ou 75). Si tu envisages savoir des millions de lignes de code tu peux optimiser avec les virgules...
JossAlf Posté(e) le 12 mai 2014 Signaler Posté(e) le 12 mai 2014 trop fort !!! Ca fonctionne un grand merci !!! Tu as pris le code avec la variable en plus pour n'utiliser qu'un bouton pour on et off ?
uncleseb Posté(e) le 12 mai 2014 Auteur Signaler Posté(e) le 12 mai 2014 Tiens en passant un petit truc pour te faire économiser des boutons : Les boutons sont organisés comme suit (en regardant la télécommande face à soit vers le haut) Appui court 1 3 - Appui long 2 4 Appui court 5 7 - Appui long 6 8 Si tu utilises une variable en plus, tu peux savoir si ton module est allumé ou éteint. En appuyant sur le bouton 1 de ta télécommande tu allumes et éteins alternativement ton module 56 En appuyant sur le bouton 2 de ta télécommande tu allumes et éteins alternativement ton module 27 Voici le code : --[[ %% properties 62 sceneActivation %% globals --]] local ButtonPressed = fibaro:getValue(62, "sceneActivation") -- module 56 if ( tonumber(ButtonPressed) == 1) then local MaVariable=fibaro:getValue(56,'value') if (MaVariable=='0')then figaro:call(56, "turnOn") else figaro:call(56, "turnOff") end --appui long 1 rien encore elseif ( tonumber(ButtonPressed) == 2) then --- --- --Module 27 elseif ( tonumber(ButtonPressed) == 3) then local MaVariable=fibaro:getValue(27,'value') if (MaVariable=='0')then figaro:call(27, "turnOn") else figaro:call(27, "turnOff") end -- appui long 2 rien encore elseif ( tonumber(ButtonPressed) == 4) then --- --- --Autre exemple pour le module 9 elseif ( tonumber(ButtonPressed) == 5) then local MaVariable=fibaro:getValue(9,'value') if (MaVariable=='0')then fibaro:call(9, "turnOn") else fibaro:call(9, "turnOff") end -- appui long 3 rien encore elseif ( tonumber(ButtonPressed) == 6) then --- --- --Autre exemple pour le module 10 elseif ( tonumber(ButtonPressed) == 7) then local MaVariable=fibaro:getValue(10,'value') if (MaVariable=='0')then fibaro:call(10, "turnOn") else fibaro:call(10, "turnOff") end --Autre exemple pour le module 36 elseif ( tonumber(ButtonPressed) == 8) then local MaVariable=fibaro:getValue(36,'value') if (MaVariable=='0')then fibaro:call(36, "turnOn") else fibaro:call(36, "turnOff") end end C'est pas beau ça ? La...tu me scotches Je débute c'est brutal pour moi Mais si efficace Je vais regarder ça de plus près Merci !!!!
JossAlf Posté(e) le 12 mai 2014 Signaler Posté(e) le 12 mai 2014 Tu peux faire un copier coller j'ai mis t'es ID ! Mais vire les exemples avec les modules 9 et 10 (pour les boutons courts 3 est 4).
uncleseb Posté(e) le 12 mai 2014 Auteur Signaler Posté(e) le 12 mai 2014 Par contre avec le bouton 1 je veux allumer un seul module (ma tv) mais pour l'arret je veux éteindre la tv + toutes les lumières du salon je ne peux pas utiliser de variables pour ca ?
JossAlf Posté(e) le 12 mai 2014 Signaler Posté(e) le 12 mai 2014 Ben si tu modifies comme ça : --[[ %% properties 62 sceneActivation %% globals --]] local ButtonPressed = fibaro:getValue(62, "sceneActivation") -- module 56 if ( tonumber(ButtonPressed) == 1) then local MaVariable=fibaro:getValue(56,'value') if (MaVariable=='0')then figaro:call(56, "turnOn") -- ta TV else figaro:call(56, "turnOff") figaro:call(ID du module 1 que tu veux éteindre, "turnOff") figaro:call(ID du module 2 que tu veux éteindre, "turnOff") figaro:call(ID du module 3 que tu veux éteindre, "turnOff") -- etc end --reste du code inchangé
JossAlf Posté(e) le 12 mai 2014 Signaler Posté(e) le 12 mai 2014 En revanche je te conseillerais de grouper tous tes modules à éteindre dans une scène/ou un module virtuel que tu pourras utiliser dans plusieurs scénarios. Exemple : Code du module virtuel "Tout OFF" -- 2nd fibaro:call(41, "turnOff"); --lumière ... fibaro:call(42, "turnOff"); -- Lumière ... -- 1er fibaro:call(6, "turnOff"); --lumière orange fibaro:call(9, "turnOff"); --lumière verte fibaro:call(10, "turnOff"); -- lumière zinc fibaro:call(36, "turnOff"); --lumière abajour blanc --RDC fibaro:call(31, "turnOff"); --lumière garage fibaro:call(108, "turnOff"); --lumière chambre du bas fibaro:call(5, "turnOff"); -- Fer à repasser -- modules chacon sur la zibase fibaro:call(67, "pressButton", "2"); -- lumière couloir du haut fibaro:sleep(5000) -- on attend 5 secondes que la zibase se remette fibaro:call(68, "pressButton", "2"); -- lumière plafond Le soir avant de me coucher je lance une scène "Dodo" qui éteint la TV, baisse le chauffage, et "appuie sur le bouton 1 de mon module virtuel "tout off". Pour simuler l'appui sur le bouton 1 de mon MV "Tout off" dont l'ID est 66 j'utilise cette ligne dans ma scène "Dodo" : -- lance module "TOUT OFF" fibaro:call(66, "pressButton", "1"); Voici la scène Dodo complète : --check des portes fibaro:call(85, "pressButton", "1"); --Passer le chauffage à 18.5°C fibaro:call(100, "setTargetLevel", 18.5) --Eteindre lumière blanche fibaro:call(12, "turnOff"); -- lance module "TOUT OFF" fibaro:call(66, "pressButton", "1"); --éteind la TV fibaro:call(89, "pressButton", "3");
uncleseb Posté(e) le 13 mai 2014 Auteur Signaler Posté(e) le 13 mai 2014 Merci beaucoup pour ces infos !!!
PITP2 Posté(e) le 12 juillet 2014 Signaler Posté(e) le 12 juillet 2014 J'ai lu ici la création d'une scene qui regroupe toutes les lumières pour ensuite pouvoir les éteindre toutes d'un seul coup. Il n'y a donc pas de commande pour éteindre tous les devices du type lumières ? Comment font ils dans l'interface Fibaro sur Ipad ou Android car cette fonction existe ?
JossAlf Posté(e) le 12 juillet 2014 Signaler Posté(e) le 12 juillet 2014 Heu... je comprends pas ta question ?
PITP2 Posté(e) le 12 juillet 2014 Signaler Posté(e) le 12 juillet 2014 En fait lorsque mon alarme s'active j'allume toutes les lumières et il est long d'ajouter àune scene tous les devices de type "lumières" alors que dans l'interface ipad ou android, on peut appuyer sur un seul bouton pour éteindre toutes les lumières par exemple. Je me demandais donc si il existait ce type de commande en lua.
JossAlf Posté(e) le 12 juillet 2014 Signaler Posté(e) le 12 juillet 2014 Il doit bien y avoir une commande all on et all OFF mais je n'ai jamais cherché àfaire ça. Je préfère gérer par une scène ou je choisi les modules àallumer ou éteindre.
Steven Posté(e) le 12 juillet 2014 Signaler Posté(e) le 12 juillet 2014 En LUA, tu peux boucler sur tout les modules. Pour chaque module tu regarde s'ils sont de type binary-light ou dim... (J'ai rien sous les yeux) et dans ce cas tu allumes. Envoyé de mon GT-I9192 en utilisant Tapatalk
Krikroff Posté(e) le 16 juillet 2014 Signaler Posté(e) le 16 juillet 2014 Tu peux aussi déclarer tous les devices que tu souhaites allumer ou éteindre dans un tableau puis boucler dessus ... Envoyé de mon iPhone àl'aide de Tapatalk
Messages recommandés