J'apprends peut-être rien à personne mais j'ai trouvé je ne sais plus où (à force de chercher partout des infos) que l'on peut spécifier dans l'entête l'événement à capturer. Par exemple avec mon code de changement d'ambiance Philips HUE ci-dessous.
Le code se déclenche pour le bouton 1 du device 31, événement "Pressed2", pour double click.
Ça permet de bien découper en scènes distinctes.
--[[
%% properties
%% events
31 CentralSceneEvent 1 Pressed2
%% globals
--]]
local trigger = fibaro:getSourceTrigger()
local hue_bande_led = 6;
local button = 33;
local switched_on = fibaro:getValue(button, 'value') == "1" and true or false;
local switch_text = switched_on and 'turnOn' or 'turnOff';
if (trigger["type"] ~= "other") then
local pressSource = fibaro:getSourceTrigger()["event"]["data"];
fibaro:call(hue_bande_led, switch_text);
fibaro:debug('Switch: '..switch_text);
if (switched_on) then
fibaro:call(hue_bande_led, "changeSaturation", 99);
fibaro:call(hue_bande_led, "changeBrightness", 77);
fibaro:call(hue_bande_led, "changeHue", 55963);
fibaro:debug('Change Hue');
end
end