Lua Code zum starten einer Szene per Variblenzustand

Hallo

ich benötige Hilfe bei einer Szene.

Folgendes habe ich gemacht.

Variable erstellt (Sicherheit)

Blockszene erstellt siehe Anhang

wenn ich jetzt den Schalter auf ein stelle geht die Variable auf den Zustand 1

Jetzt möchte ich das wenn der Zustand auf 1 steht das ich eine andere Szene nur dann starten kann wenn der Zustand 1 ist.

Also eine Abfrage wenn der Zustand 1 dann kann man die Szene ausführen.

Bitte nicht mit einem Trigger verwechseln. Ich möchte nicht das die Szene ausgeführt wird wenn Zustand 1 erreicht wird.

Szene.png

Hier mal mein Aktuelle Szene die aber nicht geht:

--[[
%% properties
%% events
%% globals
a_ro_Buero_zu
--]]

local buerofenster = 254   -- ID
local buerotuer = 256   -- ID
	
local trigger = fibaro:getSourceTrigger();
local startSource = fibaro:getSourceTrigger();

if (tonumber(fibaro:getGlobalValue("Sicherheit")) == tonumber("1")

and

if ((trigger['type'] == 'global' and fibaro:getGlobal('a_ro_Buero_zu') == '1') or trigger['type'] == 'other')

  then
	
fibaro:call(buerofenster, "setValue", "0");
fibaro:debug("Bürofenster schließt");
  
fibaro:call(buerotuer, "setValue", "0");
fibaro:debug("Bürotür schließt");

fibaro:setGlobal('tts_alexa_device', 'katrins_echo_dot');
fibaro:setGlobal('tts_alexa_text', 'Die Rolladen im Büro wurden geschlossen');

fibaro:startScene(348);

end
  
fibaro:setGlobal('a_ro_Buero_zu',0);

Du müsstest dir mal im klaren sein ob du Zahlen oder Text in deinen Variablen verwenden willst.
In Zeile 35 setzt du die Variable auf eine Zahl.
In Zeile 18 prüft du auf einen Text.
‘1’ ist nicht 1
Entweder alles als Zahl oder alles als Text.
Kenne zwar die anderen Skripte nicht, scheint aber dass dort der Fehler liegen kann.

Da bin ich mir im klaren, bzw das war nicht der Fehler.

Hier die Lösung:

local startSource = fibaro:getSourceTrigger();
 
if (tonumber(fibaro:getGlobalValue("Sicherheit"))) == tonumber("1") and
   ((trigger['type'] == 'global' and fibaro:getGlobal('a_ro_Buero_zu') == '1') or trigger['type'] == 'other')
 
  then

In Zeile 14 hinter Sicherheit eine dritte Klammer
In Zeile 18 das if weg

Jetzt geht die Szene nur wenn die Variable Sicherheit auf 1 steht, wenn sie auf 0 steht dann passiert nix.