Aller au contenu

Messages recommandés

Posté(e)
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

 

Posté(e)

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

Posté(e)

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
Posté(e)

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 ?

Posté(e)

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 ?

Posté(e)

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

Posté(e)

 

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 ?

Posté(e)

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  :blink:   :lol:

Mais si efficace

Je vais regarder ça de plus près

Merci !!!!

;)  ;)

Posté(e)

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

Posté(e)

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 ?

Posté(e)
 

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é
Posté(e)

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");
  • 1 mois après...
Posté(e)

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 ?

Posté(e)

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.

Posté(e)

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.

Posté(e)

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

Posté(e)

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

×
×
  • Créer...