Problem mit Zeitgesteuerter Block Szene und Variable

Hallo zusammen, ich habe eine Problem mit Zeitgesteuerter Block Szene und Variable.

Ich habe zwei Szenen programmiert, eine für das “Öffnen” und eine für das “Schliessen”. Sobald der Zeitpunkt erreicht ist, werden aber immer beide Szenen gleichzeitig ausgeführt. Danach erhalte ich die Meldung “to many instances”. Den “Fibaro HomeCenter-Einsteigerguide Teil 1: Zeitgesteuerte Szenen” habe ich gelesen.

Warum habe ich noch eine Variable eingebaut? Mit der Variable möchte ich den zeitgesteuerten Modus (beide Szenen) auschalten können, in dem ich die Variable manuell auf den Wert “2” setze.

Vielen Dank für Eure Hilfe.
Gruss Markus

Klappe_Offen.jpg

Klappe_Geschlossen.jpg

to-many-instances.jpg

Hallo Markus,

wenn ich das richtig sehe, dann läuft um 8:10 die erste Szene. Ist hier Klappe_offen = 0 dann erfolgt eine Aktion. Am Ende der Szene wird dann die Variable Klappe_offen auf 1 gesetzt. Soweit so gut. Nun läuft die zweite Szene genau 2 Minuten später prüft, ob Klappe_offen = 1 ist, wenn ja dann wird wieder eine Aktion ausgeführt und anschließend Klappe_offen wieder auf 0 gesetzt.

Die Szenen laufen also nicht zeitgleich und da Du keinen weiteren Trigger als die Zeit ausgewählt hast dürften die Szenen auch nicht mehr als einmal ausgeführt werden.
Leider ist aus den Too many Instances Meldungen nicht zu erkennen, welche Szene mehrfach ausgeführt wird. Sind es beide, oder ist es nur eine?

Hallo Bastian,

danke für Deine Rückmeldung.
Die zweite Szene (Klappe_geschlossen) wird fast “zeitgleich” mit der ersten Szene (Klappe_Offen) ausgeführt. Ich erhalte auf dem Smartphone zuerst die Push Up Notfication “Klappe Offen” und ca. 1 Sekunde später die nächste Push Up Notfication “Klappe Geschlossen”. Danach habe ich die “Too many Instances Meldungen”, welche beide Szenen aufgelistet haben.

Ich habe die neuste Firmware 4.090 drauf, bei der vorgängigen Firmware 4.080 war das Problem genau gleich. Super wäre es wenn jemand diese Szene auf seinem HC2 nachbauen könnte, oder mir mitteilen kann was ich falsch konfiguriert habe.

Gruss Markus

Hallo Markus,

lass Dein HC2 mal bitte beide Szenen in Lua wandeln - Du musst ja nicht speichern - und kopiere den Code hier rein. Vielleicht lässt sich da was erkennen.

Hi,

welchen Wert hast Du unter “General” bei “Max. running instances:” eingestellt?
ggf erhöhst Du ihn leicht.

VG Hoggle

Hallo zusammen,

vielen Dank für die wertvollen Tipps. Ich habe die "Max. running instances:“ schrittweise von 2 bis 10 erhöht, ohne dass das Problem gelöst wurde. Ich habe nun die "Max. running instances:“ wieder auf den Default Wert 2 zurück gestellt.

Ich habe die beiden Blockszenen nun temporär in LUA Code umgewandelt und als Attachment beigelegt. Bin gespannt auf Euer Feedback.

Gruss Markus

Hallo zusammen,

ich habe mein HC2 neu gestartet und nun laufen beiden Szene korrekt. Wenn ich hingegen eine neue zusätzliche Variable in der Szene hinzugefüge, dann habe ich wieder das alte Problem und muss danach das HC2 wieder neu starten. Nach dem Neustart ist das Problem nicht mehr vorhanden. Ich vermute es handelt sich um einen Bug.

Gruss Markus

Also schlagt mich jetzt weil ich hierzu was schreibe und keine Ahnung von LUA habe,

aber wenn der source trigger auf autostart steht startet sich das teil selbst.

if (sourceTrigger[“type”] == “autostart”) then
tempFunc()

der sourcetriggerType wir im ganzen script nie zurückgesetzt oder verändert und die set timeout 60*1000 (sekunden wäre etwas viel, aber egal) steht zwischen 2 end bei nur einem if. Meckert da der editor nicht.

Aber wie gesagt keine Ahnung von LUA, also haut mich nicht zu sehr.

Gruß
Gerhard

P.s ich wills ja lernen.

Das ist vollkommen korrekt so.

Wenn kein Timeout gesetzt wäre, würde die Szene jede Milisekunde ausgeführt werden. So ruht die laufende Instanz für 60 Sekunden, wodurch dann das Skript nur alle 60 Sekunden einmal durchläuft. Der TriggerType muss sich nicht ändern, der ist immer mit Autostart belegt, wodurch diese Bedingung immer erfüllt ist.

BTW: Der LUA-Code, welcher durch Blockszenen erzeugt wird, ist alles andere als gut.

Gruß

Aber die Funktion heißt doch tempFunc() und ruft sich alle 60 Sekunden selbst auf. Sie läuft nie auf ende. Da die Bedingung if (sourceTrigger[„type“] == „autostart“) immer true ist kommt sie auch nie aus der schleife.

Ja, genau das hab ich doch geschrieben. :wink: Das ist ja der Sinn von %%autostart-Szenen. Sie sollen dauerhaft laufen.

Gruß

Aber sie läuft nicht nur dauerhaft, sie läuft auch alle 60 sek nochmal an. Alle 60 sek eine neue instanz ohne die alte zu beenden, weil sie eben dauerhaft läuft und nicht beendet wird und mit der immer wahren Bedingung if (sourceTrigger[„type“] == „autostart“) neu gestartet wird then tempfunc().

Da unten kommt auch nichts mehr wie set (sourceTrigger[„type“] == „manual“) oder so, (ich muss fantasieren weil ich kein LUA kann).

Ergebnis: too many instances.
Lieg ich da so falsch???

Eine Autostart-Szene hat immer nur eine Instanz. In der Szene wird nur eine Funktion aufgerufen und keine neue Szene gestartet. Das ist schon ein kleiner Unterschied :wink:

http://www.siio.de/szenen-im-fibaro-homecenter-einsteigerguide-teil-1/