NEWS
Timer nicht objektorientiert?
-
@paul53 Ok, danke Dir!
Also Timer in einem Array schreiben. Über JS habe ich da schon einen Angriffspunkt. Muss mir das dann also darüber mal anschauen: Thema dazu im JS-Forumsteil:
https://forum.iobroker.net/topic/59907/dynamisch-erstellte-variablen/36 -
Auf dem Weg dahin habe ich folgendes Element bei mir in einem Skript gefunden:
-> 1. Dieser Javascript-Funktionsblock, wie bekomme ich den wieder aus dem Blockly-Menü her? Keine Ahnung wie ich das gemacht hatte... verrückt....
-> 2. wenn ich timer_multi aufrufe führt er mir das JS-Skript innerhalb des Blockes auf. Nicht den Block der zuzusagen lila "halb umrahmt" ist. Das lässt vermuten, dass ich hier im JS-Code den "halb umrahmten"-Blockly-Code explizit per Befehl aufrufen muss. Wie mache ich das?
-
@ptr sagte: per Befehl aufrufen muss. Wie mache ich das?
Die erstellte Funktion wird unter "Funktionen" angeboten.
-
@paul53 Hallo Paul, ja das ist gut zu finden. Das ruft den JS-Code (hier nicht sichtbar) innerhalb des lila Blocks auf.
Was noch unklar ist, ist wie rufe ich diesen Teil auf:
-
@paul53 und die erste Frage war: wie finde ich GENAU diesen JS-Funktion-Block?
Im Menü sehen sie alle anders aus. Keiner hat Code UND Blockly mit drin...:
-
@ptr sagte in Timer nicht objektorientiert?:
Keiner hat Code UND Blockly mit drin...:
dafür gibt es ja weitere Optionen hinter dem Zahnrad.
nimm mal den ersten Block -
@homoran stehe da wohl irgendwie auf dem Schlauch. Sehe da nichts...
Variablen definieren ja, JS-Code hinzufügen geht nicht. Das liegende "U" des Blocks sieht auch anders aus. Hm... -
@ptr sagte: Javascript-Funktionsblock, wie bekomme ich den wieder aus dem Blockly-Menü her? Keine Ahnung wie ich das gemacht hatte
Ich auch nicht.
Nur mit einer "normalen" Blockly-Funktion bekomme ich es hin. -
@paul53 ich erinnere mich, dass es irgendein drop-down war - glaube ich - mit "Anweisungen erlauben" oder irgendsowas... hm...
-
@ptr falls das Element "doch nicht geht". Dann hätte ich noch eine andere Idee fürs Ziel einen Multi-Timer-Block selber zu bauen:
Eine JS-"Multi-Timer"-Funktion erstellen, die nur eine JS-Funktions-Block (als "Ausführung nach Timeout") aufruft - der dann eben wieder Blockly-Anweisungen enthält. So wäre man dann wieder "zurück" in Blockly für die Definition, welche Anweisungen durch einen Timeout verspätet werden sollen...
-
@paul53 doch nochmal die Frage dazu: Du sagst "Ja." zu jedem Trigger folgt hier ein eigener Timer.
jedoch sagst Du auch, dass man einen Timer-Array braucht. Nicht zwingend dann oder?Meine Experimente würden Deinem ersten "ja" Wiedersprechen. Falls ich da nicht irgendwo einen anderen Fehler mache - was ich versuche rauszufinden.
Nach meinem Verständnis müsste im Hintergrund eine UID erstellt werden die die variable timeout2 PRO TRIGGER unterscheidbar macht(Objektorientierung). Das würde dazu führen, dass folgende Annahme richtig wäre:
- Tür1 öffnen, Licht geht an. 1sek warten
- Tür2 öffnen, Licht geht an.
-> nach 10sek geht Licht in Raum1 aus.
-> eine Sekunde später geht das Licht in Raum2 aus.
Meine Experimente unterstreichen das leider nicht. Daher die Frage.
Im Experiment bleibt Raum1-Licht an und Raum2-Licht geht nach 9sek Brenndauer aus. Ist das nachvollziehbar?Irgendwas habe ich da noch nicht verstanden. Ich bin gespannt was...