ich bin am Verzweifeln, da alle 2-3 Tage eine Szene mit “too many instances” aussteigt, obwohl ich im Script eine doppelte Szene löschen lasse.
Die max. ausgeführte Instanzen stehen auf 2.
Der Code ist wie folgt:
--[[
%% properties
308 value
%% events
%% globals
--]]
-- Lösche doppelte Szene(n)
if (fibaro:countScenes()>1) then
fibaro:abort()
end
local Tuersensor = 308
local Rolladen = 57
local rgb = 128 -- LED-Schlauch Ankleide --
local Dauer = 60000 -- wie lange Lampe anbleiben soll in ms--
local rgbValue = tonumber(fibaro:getValue(rgb, "value"));
local rgbValue1 = tonumber(fibaro:getValue(rgb, "brightness"));
local rgbValue2 = tonumber(fibaro:getValue(rgb, "r"));
local rgbValue3 = tonumber(fibaro:getValue(rgb, "g"));
local rgbValue4 = tonumber(fibaro:getValue(rgb, "b"));
fibaro:debug(rgbValue)
fibaro:debug(rgbValue1)
fibaro:debug(rgbValue2)
fibaro:debug(rgbValue3)
fibaro:debug(rgbValue4)
if (tonumber(fibaro:getValue(Rolladen, "value")) ~= 1) then
fibaro:debug("Rolläden sind nicht komplett geöffnet")
if (tonumber(fibaro:getValue(Tuersensor, "value")) > 0 )
then
fibaro:debug("Tür geöffnet")
fibaro:call(rgb, "turnOn")
fibaro:debug("LED an")
fibaro:sleep(Dauer)
fibaro:call(rgb, "turnOff")
fibaro:debug("LED aus")
end
end
ID 308 ist ein Türsensor.
Wenn du Tür geschlossen war und aufgeht und der Rollladen (ID 57) nicht komplett auf ist, dann soll der LED-Schlauch (ID 128) für 60s angehen.
Das funktioniert auch.
Dennoch hatte ich gerade eben wieder die Meldung: Number of instances of scene has been reduced due to exceeding limit.
Theoretisch klar aber leider wirklich schwer zu erklären. Die Meldung: “Number of instances of scene has been reduced due to exceeding limit.” kann in deinem Fall eigentlich nur auftreten, wenn in dem 60 sec. Fenster die Tür mehrfach geöffnet und geschlossen wird. Die Szene bleibt ja erstmal mim. 60 Sek aktiv. Stell mal die Max Instanzen auf min. 3.! Den Kill Befehl lässt du auf 1. Und Füge mal bitte ein Debug im Killer ein. Dann kann man sehen ob der oder das Fibaro Interface eingreift!
Ich frage mich allerdings, warum die RGB Values ausließt, wenn du sie hinterher nicht mehr benutzt? Die werden ja nur debugged.
--------------------------------------------------------------------------------
fibaro:debug(" Starte Szene ")
if fibaro:countScenes() > 1 then
fibaro:debug(" Szene wird beendet - zu viele Instanzen ")
fibaro:abort()
end
--------------------------------------------------------------------------------
Verstehen tue ich das trotzdem nicht. Und das Problem tritt bei mir in einigen Szenen auf die durch einen Türsensor oder Bewegungsmelder getriggert werden, seltsamerweise auch bei Fernbedienungen, wenn die Taste zu häufig im kurzen Abstand gedrückt wird.
Eigentlich sollte die Szene doch beim zweiten Ausführen durch den Bewegungsmelder, sofern die erste noch läuft, durch die Schleife abgebrochen werden?
Ich gebe mal Rückmeldung, wenn ich den Debug umgesetzt habe und es entsprechend getestet habe (wird wahrscheinlich Wochenende).
hast Du das Problem mittlerweile in den Griff bekommen? Ich habe das gleiche Phänomen nämlich ebenfalls, obwohl ich in jedem Skript oben zunächst die Szene aborten lasse. Die “Max. running instances” stehen mittlerweile auch bereits alle auf 3, da ja schon durch den Start der Szene (noch bevor das abort überhaupt greifen kann) die Szene ja bereits läuft.
Mittlerweile schaue ich schon nur noch selten in das Notification Center rein, weil ich ja beriets weiß was drin steht. Wirklich wichtige Meldungen würde ich dadurch natürlich erst sehr viel später feststellen.