NEWS
Wert in Funktion erneut einlesen
-
Hallo zusammen,
gibt es eine Möglichkeit einen Wert in einer Funktion erneut einzulesen? Den Wert für "Fenster_geöffnet" würde ich gerne erneut einlesen, damit, wenn das Fenster geschlossen wird er aus der Schleife wieder raus kommt.
Kann man verstehen was ich meine.
schöne Grüße
Gelaendekiesel -
@gelaendekiesel93
https://forum.iobroker.net/topic/70481/blockly-for-dummies-starthilfe-und-tippsDa muss auch zum Verlassen der Schleife kein "Falls" Block rein, da die Variable bereits die Abbruchbedingung ist.
Sobald die auftrue
wechselt, wird die Schleife sowieso verlassen.Edit
So steigt er erstmal in die Funktion ein und startet einen Timeout von 1 Minute.
Nach 1 Minute wird der Wert neu geholt.
Ich der Wert dann noch immertrue
, wird die Nachricht versendet und die Schleife läuft weiter.
Ist der Wert inzwischenfalse
, wird die Schleife verlassen, weil das ja die Abbruchbedingung ist,
Der Falls-Block wird hier benötigt, weil ja innerhalb der ersten Minute das Fenster auch gleich wieder geschlossen werden könnte. Dann soll ja sicher keine Nachricht kommen. -
Vielen Dank für deine Antwort.
OK ich habs gerade in allem möglichen Varianten ohne "Falls" Block probiert, ohne Erfolg. Aber das funktioniert ja so.
Ich hatte das ganze aber als Funktion geschrieben, um es für mehrere Zimmer zu nutzen.
Da funktioniert das mit der Absoluten Adresse ja nicht. Gibt es da eine andere Möglichkeit?
Sonst muss ich die Funktion für jeden Raum neu erstellen oder?
schöne Grüße
Gelaedekiesel -
@gelaendekiesel93 sagte in Wert in Funktion erneut einlesen:
Ich hatte das ganze aber als Funktion geschrieben, um es für mehrere Zimmer zu nutzen.
Das macht die Sache deutlich komplizierter. Egal ob "Pause" oder "Timeout".
Schau mal hier: https://forum.iobroker.net/topic/79162/blockly-funktion-parallel-nutzen -
OK danke für deine mühe.
Ich hatte mir das einfacher vorgestellt, das nur die eine Variable neu eingelesen wird. Ich denke ich kopiere einfach die Funktion. Das ist wohl die einfacherer Möglichkeit.
schöne Grüße
Gelaendekiesel -
@gelaendekiesel93 sagte: ich kopiere einfach die Funktion.
Jedes Fenster benötigt seinen eigenen Timer (Intervall). Wenn die Intervalle außerhalb der Funktion ausgeführt werden, kann für alle Fenster die selbe Funktion (ohne Schleife) verwendet werden.
-
@gelaendekiesel93 sagte in Wert in Funktion erneut einlesen:
Ich denke ich kopiere einfach die Funktion
Sowas ist in erlauchten Kreisen keine Option
Copy & Paste führt zur dunklen Seite der Macht.
https://en.wikipedia.org/wiki/Don't_repeat_yourself