SceneActivation RollerShutter oder Dimmer

Dieses Thema wurde in unserer Facebook Gruppe behandelt. Da es hier besser wiederzufinden und zu kommentieren ist, nochmal im Detail.
Das Posting ist hier zu finden.

In dem Bild siehst Du die SceneActivation wenn du sie Dir als Blockszene zusammen klickst. Die Leinwand ist dein RollerShutter. Die Aussage dieser Szene ist, wenn 2 mal der Eingang S1 geklickt wird, soll die Szene Pin Parse gestartet werden. Du brauchst aber keine Szene Starten, sondern kannst dies auch für ein Kommando (ein oder ausschalten etc.) benutzen. Wenn Du diese Szene dann Du diese Szene dann in Lua konvertierst (HC2) bekommst Du einen ähnlichen Code wie den, den Georg Hauer gepostet hat.

Der konvertierte Code ist der nächste Screenshot.

Die SceneID´s des RollerShutters findet Ihr hier

Der Code hier ist ein Beispiel für ein Kommando mit Gegenzustand. Es wird also auf einem 3xKlick auf Eingang S2 geprüft ob die RGB Leiste an oder aus ist. Der jeweilige Gegenzustand wird dann geschaltet.


elseif (tonumber(fibaro:getValue(id, "sceneActivation"))==26) 
  then fibaro:debug("3 click s2 "..name); 
  local rgb2 = tonumber(fibaro:getValue(RGB2, "value"));
	if (rgb2 > 0) then
		fibaro:call(RGB2, "turnOff");
	else
		fibaro:call(RGB2, "turnOn");
                fibaro:call(RGB2, "setColor", "124","31","0","48");
	end

Eine gesamte Szene (in meinem Fall die Standard-Szene für alle meine Dimmer2)

RGB1 und RGB2 sind 2 Stripes in einem Fenster.
Die ID 13 ist in diesem Fall ein Dimmer, könnte aber auch der Rollershutter sein.

--[[ 
%% properties 
13 sceneActivation 
%% globals 
--]] 
local id= 13; 
local RGB1 = 16
local RGB2 = 23
local name = fibaro:getName(id) 
fibaro:debug(name); 

local name = tonumber(fibaro:getValue(id, "sceneActivation")); 
if (tonumber(fibaro:getValue(id, "sceneActivation"))==16) 
  then 
  fibaro:debug("1 click s1 "..name);
 -- fibaro:setGlobal("sbzw", "1");
elseif (tonumber(fibaro:getValue(id, "sceneActivation"))==26) 
  then 
  fibaro:debug("1 click s2 "..name);
  local rgb = tonumber(fibaro:getValue(RGB1, "value"));
	if (rgb > 0) then
		fibaro:call(RGB1, "turnOff");
	else
		fibaro:call(RGB1, "turnOn");
        fibaro:call(RGB1, "setColor", "0","0","0","255");
	end
  elseif (tonumber(fibaro:getValue(id, "sceneActivation"))==25) 
  then 
  fibaro:debug("3 click s2 "..name); 
  local rgb2 = tonumber(fibaro:getValue(RGB2, "value"));
	if (rgb2 > 0) then
		fibaro:call(RGB2, "turnOff");
	else
		fibaro:call(RGB2, "turnOn");
        fibaro:call(RGB2, "setColor", "124","31","0","48");
	end
elseif (tonumber(fibaro:getValue(id, "sceneActivation"))==15) 
  then 
  fibaro:debug("3 click s1 "..name); 
  --fibaro:call(241, "turnOn");
  elseif (tonumber(fibaro:getValue(id, "sceneActivation"))==14) 
  then 
  fibaro:debug("2 click s1 "..name); 
elseif (tonumber(fibaro:getValue(id, "sceneActivation"))==24) 
  then 
  fibaro:debug("2 click s2 "..name); 
    elseif (tonumber(fibaro:getValue(id, "sceneActivation"))==12) 
  then 
  fibaro:debug("hold click s1 "..name); 
elseif (tonumber(fibaro:getValue(id, "sceneActivation"))==13) 
  then 
  fibaro:debug("release click s1 "..name);
  --fibaro:call(241, "turnOff");
    elseif (tonumber(fibaro:getValue(id, "sceneActivation"))==22) 
  then 
  fibaro:debug("hold click s2 "..name); 
elseif (tonumber(fibaro:getValue(id, "sceneActivation"))==23) 
  then 
  fibaro:debug("release click s2 "..name); 
    elseif (tonumber(fibaro:getValue(id, "sceneActivation"))==10) 
  then 
  fibaro:debug("change from turn off to turn on s1 "..name); 
elseif (tonumber(fibaro:getValue(id, "sceneActivation"))==11) 
  then 
  fibaro:debug("change from turn on to turn off s1 "..name); 
    elseif (tonumber(fibaro:getValue(id, "sceneActivation"))==20) 
  then 
  fibaro:debug("change from turn off to turn on s2 "..name); 
elseif (tonumber(fibaro:getValue(id, "sceneActivation"))==21) 
  then 
  fibaro:debug("change from turn on to turn off s2 "..name); 
  elseif (tonumber(fibaro:getValue(id, "sceneActivation"))==17) 
  then 
  fibaro:debug("up "..name); 
  elseif (tonumber(fibaro:getValue(id, "sceneActivation"))==18) 
  then 
  fibaro:debug("down "..name); 
  end;

szeneaktivation-block.png

szene-2.png