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