LUA sur FIBARO HC2 : Déclencher des scènes avec les boutons S1/S2 reliés aux micro-modules FIBARO FGD-211, FGD-212, FGRM-222 et FGR-222.
- Dimmer FGD-211 en version 2.1 et supérieures : réglez le paramètre 41 à la valeur 1 ("Activation de scènes" --> fonctionnalité activée).
- Dimmer FGD-212 : réglez le paramètre 28 à la valeur 1 ("Activation de scènes" --> fonctionnalité activée).
- Roller Shutter 2 FGR(M)-222, réglez le paramètre le 50 ("Activation de scènes / Associations" --> "Activation de scènes").
Les numéros de scènes envoyés sont normalement les suivants :
Param 19 = 0 (FGD-211 uniquement) | Param 19 = 1 (FGD-211 uniquement) |
|||||||
Type de bouton | N° de bouton | Clic | Tenir appuyé |
Relâchement après un appui long |
Double clic | Triple clic |
OFF vers ON |
ON vers OFF |
Interupteurs monostables ou pour volets | 1 | 16 | 12 | 13 | 14 | 15 | ||
2 | 26 | 22 | 23 | 24 | 25 | |||
Interrupteur bistable | 1 | 16 | 12 | 13 | 14 | 15 | 10 | 11 |
2 | 26 | 22 | 23 | 24 | 25 | 20 | 21 |
il est possible de le vérifier via ce script :
--[[
%% properties
<ID du micro-module> sceneActivation
%% globals
--]]
local NumScene = fibaro:getValue(<ID du micro-module>, "sceneActivation")
fibaro:debug("Numéro de scène: " ..NumScene)

Pas besoin de cliquer sur Démarrer, si vous cliquez le script vous donnera un numéro de scène à 0. Appuyez sur les bouton S1 et/ou S2 en testant les appuis courts, longs, simples et doubles, les numéros de scènes devraient s'afficher dans la fenêtre de déboguage. Il ne reste plus qu'à créer uns script capable d'effectuer des actions en fonction du bouton appuyé ... rien de plus simple !
Exemple
(il suffit de changer le numéro d'identifiant du micro-module avec le vôtre).
--[[
%% properties
84 sceneActivation -- L'envoi d'une scène par le module avec ID 84 (notre micro-module) déclenche l'exécution du script
%% globals
--]]
local NumScene = tonumber(fibaro:getValue(84, "sceneActivation")) -- On récupère la scène activée, on convertit le texte en nombre (via la commande tonumber) et on la stocke dans la variable "NumScene" pour l'utiliser dans la suite du script
if (NumScene == 16) -- Si la touche appuyée génère le numéro de scène 16 (appui court sur S1)
then
fibaro:debug("Bouton 1 appuyé (court):")
-- Nous allons inverser l'état d'un variateur de lumière dont l'ID est 85
if ((tonumber(fibaro:getValue(85, 'value'))) == 0) -- On récupère l'état du variateur 85 et s'il est éteint ...
then -- alors
fibaro:call(85,'turnOn') -- on allume
fibaro:debug("Allumage de la lampe")
else -- sinon
fibaro:call(85,'turnOff') -- on éteint
fibaro:debug("Extinction de la lampe")
end
elseif (NumScene == 14) -- Si la touche appuyée génère le numéro de scène 14 (double clic sur S1)
then -- alors
fibaro:debug("Bouton 1 appuyé (double-clic): exécution de la scène HC2 numéro 10")
fibaro:startScene(10) -- Ici on appelle une autre scène (qui peut avoir été crée en mode bloc) depuis cette scène
end
Plus simplement, si vous souhaitez juste déclencher des scènes via les boutons, vous pouvez utiliser une version simplifiée de ce script :
--[[
%% properties
84 sceneActivation -- n'oubliez pas de changer l'identifiant "deviceID"
%% globals
--]]
local NumScene = tonumber(fibaro:getValue(84, "sceneActivation")) -- n'oubliez pas de changer l'identifiant "deviceID"
if (NumScene == 14)
then
fibaro:startScene(10)
end
elseif (NumScene == 15)
then
fibaro:startScene(15)
elseif (NumScene == 16)
then
fibaro:startScene(24)
end
Mettez autant de "elseif" --> "then" que de scènes à commander avec votre micro-module. Il ne vous reste plus qu'à adapter votre script en fonction de vos besoins, la puissance du LUA étant sans limite, avec un peu de patiente vous pourrez faire tout ce que vous voulez !
Recommandez cet article
TweeterCes articles pourraient aussi vous intéresser