Bin immer noch der Meinung, dass dies nicht benötigt wird. Das Skript sollte sofort beendet werden und nicht in die Timeout-Funktion hineinlaufen, da sich diese ja nicht in der Schleife befindet. Für mich klingt das eher so als ob die Bedingungen nicht korrekt geprüft werden. Prüf das bitte nochmal.
Die Szene kann seine ID nicht selbst ermitteln. Mit fibaro:abort() sollte die aktuelle Instanz gekillt werden.
Hallo Boomx,
Ich habe die Szene nun nochmal getestet. Dafür habe ich den “KillScenes” Befehl auskommentiert!
Folgendes passiert wenn ich innerhalb des Zeitrahmens von “TimeStop” auf “START” der Szene drücke:
1.) Start -> Ventilator startet, running Instances: 1
2.) Start -> Ventilator stoppt, running Instances: 1
3.) Start -> Ventilator startet wieder, running Instances: 2
4.) Start -> Ventilator stoppt, running Instances: 2
5.) Start -> Ventilator startet wieder, running Instances: 3
6.) Start -> Ventilator stoppt, running Instances: 3
Beim nächsten Start bekomme ich die Meldung “to many instances” für diese Szene, da ich sie auf maximal 3 eingestellt habe!
Wenn die Zeit in der Variable “TimeStop” abläuft beenden sich die laufenden Szenen nacheinander im entsprechenden Intervall nach dem Startereignis.
Hier noch einmal der Code:
Debug = function ( color, message ) fibaro:debug(string.format('<%s style="color:%s;">%s', "span", color, message, "span")) end
startSource = 215
timeStop = 50000; -- Dauer des Timers
local DeviceValue1 = tonumber(fibaro:getValue(startSource, "value"))
if (DeviceValue1 > 0) then
fibaro:call(startSource, "turnOff")
Debug("yellow",(os.date("%d.%m.%Y - Ventilator AUS - Szene gekillt")))
--fibaro:killScenes(203) (für meinen Test deaktiviert!!)
else
Debug("green",(os.date("%d.%m.%Y - Ventilator AN")))
fibaro:call(startSource, "turnOn")
setTimeout(function()
fibaro:call(startSource, "turnOff")
Debug("green",(os.date("%d.%m.%Y - Ventilator AUS - Zeit abgelaufen")))
end, timeStop)
end
Alles klar, DANKE!
Dann bleibt nur noch die Frage ob es wirklich keine Möglichlkeit gibt, die ID der gestarteten Szene irgendwie auszulesen!?
Werd mal sehen ob ich was dazu finde …
habe deinen Post über die Suche gefunden.
Hast Du zwischenzeitlich was finden können um die Szenen ID zur Laufzeit ermitteln zu können? Ich möchte irgendwie versuchen den Namen der Szene zu bekommen um dies über eine allgemeine Popup-Funktion darstellen zu können. Allerdings komme ich auch mit dem Namen über die ID ermitteln nicht weiter. fibaro:getName(g_id) ergibt bei einer Szenen-ID nur ‘nil’.
Hallo Ändy,
Nein, leider ist es mir bis jetzt noch nicht gelungen.
Habe diese Funktion nur in 1-2 Szenen und daher ehrlich gesagt, nach der erfolglosen Suche nicht weiter verfolgt.
Ok danke. Ich denke mittlerweile auch nicht dass es geht. Ich habe vorhin gesehen, dass es bei mir eine Szene gibt, die die gleiche ID wie mein Handy hat. Und mit der wird dann auch der Name zurückgegeben. Anscheinend gibt es für Szenen einen eigenen Nummernkreis.