Mit dem Beta-Update 4.058 hat Fibaro eine neue Funktion veröffentlicht, die eine mehrfache Ausführung von Szenen verhindern soll. In diesem Artikel erklären wir euch, was Ihr darüber wissen solltet.
Auf den ersten Blick könnte man meinen, dass Fibaro hier eine Funktion in die Firmware gebaut hat, die das System nicht verbessert, sondern verschlechtert. Dies ist natürlich nicht der Fall; die Funktion macht Sinn, wenn man sich die Hintergründe genau anschaut.
Viele Nutzer haben sich Blockszenen gebaut, mit denen Sie ein Licht einschalten, wenn eine Bewegung erkannt wurde und nach einer bestimmten Zeit wieder ausschalten. Diese sieht zum Beispiel so aus:
Wenn wir diese Szene jetzt mal in LUA umwandeln, erhalten wir folgenden Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
--[[ %% properties 50 value %% events %% globals --]] local startSource = fibaro:getSourceTrigger(); if ( ( tonumber(fibaro:getValue(50, "value")) > 0 ) or startSource["type"] == "other" ) then fibaro:call(86, "turnOn"); setTimeout(function() fibaro:call(86, "turnOff"); end, 600000) end |
Wir erkennen an dem Skript, dass hier ein setTimeout von 600.000 Millisekunden gesetzt wird. Das Skript wartet an dieser Stelle also immer 600 Sekunden, bevor die Lampe ausgeschaltet wird und sich das Skript beendet. Und genau hier ist auch das Problem:
Wenn der MotionSensor jetzt so konfiguriert ist (Parameter 6 - Zeit, nachdem der MotionSensor wieder den Status sicher meldet; Standart: 30 Sek), dass dieser in diesen 600 Sekunden Timeout mehrere Male den Status (sicher, ausgelöst) ändert, dann wird die Szene immer und immer wieder durch den Motion getriggert.
Problem
Als es die Instanzen-Funktion noch nicht gab, hätte sich dieses Szenario immer weiter aufschauckeln können. Schauen wir uns dazu mal ein Beispiel an:
- 5 Räume
- in jedem Raum 2 MotionSensoren (Standart-Einstellung)
- in jedem Raum 1 Lampe
Wir würden uns die Szenen so einrichten, dass eine Szene, welche von den 2 MotionSensoren im jeweiligen Raum getriggert wird, die Lampe einschaltet und nach 600 Sekunden wieder ausschaltet.
Das macht dann insgesamt 5 Szenen, um die Lampen anhand der Bewegung ein- und wieder auszuschalten. Jeder MotionSensoren kann die Szenen bis zu 20x triggern (600 Sekunden wartet das Skript, MotionSensor ändert nach 30 Sekunden den Status) bevor die erste Instanz wieder beendet wird. Ergo: 2 MotionSensoren x 5 Szene x 20 = 200 mögliche Instanzen (im schlimmsten Fall)
Wenn wir jetzt annehmen, dass jede Szene eigentlich nur einmal laufen muss, dann sind 195 Instanzen (97,5 % !!!) unnötig.
Fibaro wird aber bei diversen Fernwartungen hier deutliches Verbesserungspotential gesehen haben, weshalb sie dies so umgesetzt wurde. Dieses Beispiel ist natürlich sehr theoretisch und soll nur das grundsätzliche "Problem" darstellen.
Lösung
Lösung ist hier in "" zu setzen, da es sich ja nicht wirklich um ein Problem handelt. Fibaro hat ja die Möglichkeit geschaffen, Szenen bis zu 10x nebeneinander ausführen zu lassen und das reicht auch um Längen, wenn alles richtig konfiguriert ist. Um die Meldung "too many instances" zu vermeiden, müsst Ihr den Parameter 6 von euren MotionSensoren erhöhen (Bei 60 Sekunden Timeout nicht weniger als 40 Sekunden), so dass die Szene nicht zu oft getriggert wird und die Zahl der möglichen Instanzen erhöhen.
Ihr benötigt zum Beispiel für eine Autostart-Szene, welche eure Rollläden morgens hoch und abends runterfahren soll, nur eine Instanz, da diese Szene nur einmal laufen muss. Soll eine Szene durch mehrere Trigger ausgelöst werden, so ist es ratsam die Instanzen anhand der Trigger zu wählen. Sollte dann im laufenden Betrieb weiterhin die Meldung "too many instances" auftreten, dann kann die Anzahl der Instanzen langsam um eine nach oben geschraubt werden.
Ein Patentrezept existiert hier leider nicht.
Wenn Ihr im Besitz eines Fibaro HomeCenter 2 seid, dann möchten wir euch an dieser Stelle auf den Artikel "Die perfekte Lichtsteuerung" aufmerksam machen. Mit diesem könnt Ihr die Meldung komplett verhindern. Solltet Ihr zu dem Thema noch Fragen haben, oder weitere Anregungen, Erfahrungen beisteuern, so würden wir uns über deine Kommentare freuen.
Hi,
wofür steht das "Events" oben im Header?
VG Hoggle
Hi,
scheint etwas Neues aus der aktuellen Beta zu sein. Gibt es aber keine weiteren Informtionen zu :(
Bleib da natürlich dran ;)
Gruß
Für das Verständnis gibt es hier auch noch ein interessantes Script:
http://forum.fibaro.com/index.php?/topic/20600-script-to-help-understand-scene-count-and-trigger-problems/?p=81744
Ich habe auch das Problem mit „too many instances“.
Auf dem Parkplatz habe ich einen "Multisensor Aeotec by Aeon Labs ZW100" und dazu eine Szene geschrieben, dass bei =< 10 LUX und einer Bewegung der Fibaro Switch für 120 Sek einschaltet.
Das funktioniert aber eben das Problem mit den „too many instances“ taucht auf.
Das grosse Problem ist nun, dass es bei dem ZW100 den Punkt 6 nicht gibt.. Ich kann nicht einstellen dass er erst nach 120 Sek wieder triggert. Wer kann mich hier helfen??
Danke und Gruss Flimf
Hi,
bei dem MultiSensor 6 ist es Parameter 3.
Gruß
Hi, ich habe jetzt auch das Problem mit den zu vielen Instanzen, habe nur einen Motion Sensor laufen und damit eine Leuchte gesteuert mit der perfekten Lichtsteuerung. Jetzt lief das zwei Monate und jetzt hängen sich meine anderen Geräte die über Alexa gesteuert werden ab mit der Meldung das diese im Moment nicht erreichbar sind. Im HC2 finde ich nur die Meldung to many instances. Was kann das sein ich habe nichts verändert hat alles super funktioniert und seit gestern.
Jetzt muss ich mich einloggen im HC2 und die Lichter wieder aus bzw. an zu machen. Kann mir hier jemand helfen?
DANKE
Gruß Micha
Das eine hat mit dem anderen nichts zu tun:
https://www.siio.de/board/thema/amazon-alexa-2/
Gruß
ok, dann warte ich mal, bei mir im Alexa Skill sind die Geräte auch alle offline. mal sehen was passiet.
Hi,
danke für deine immer recht ausführlichen erläuterungen.
Was genau wäre denn die Folge wenn ständig "zu viele Instanzen" gemeldet werden, würde die Szene dann nicht mehr anspringen ? :-)
Micha