NEWS
Beschattungsautomatik - Timeout Problem
-
Hallo zusammen,
ich habe in Blockly mir ein Skript zur Beschattung zusammen gebaut. Es soll so funktionieren, dass Zwischen 6 und 21Uhr jede Minute der Max_KLux Wert der Wetterstation ausgelesen werden soll und nach einer Fallunterscheidung entschieden wird, ob die Beschattung aktiviert werden soll oder nicht. Danach startet jeweils ein Timeout von 10Min (Beschattung einschalten) oder 30Min (Beschattung ausschalten). Wenn der Lux Wert der Wetterstation über 45KLux übersteigt wird nach 10min geprüft ob der Wert weiterhin die 45KLux übersteigt, falls nicht sollen die Timeouts gestoppt werden und von vorne Anfangen. Das Gleiche halt nun wenn der Wert unter 45KLux ist. Je nach Fall sollten sich die Timeouts eigentlich gegenseitig aufheben, damit die Jalousien auch wirklich erst in den vorgegebenen Zeitfenstern fahren sollen. Nun das funktioniert auch nur Teilweise. Nach einiger Zeit laufen die Timeouts trotzdem wieder auf und die Jalousien fahren dann jede Minute hoch und runter....
Hier noch einmal ein Screenshot des Skripts:
Vllt. habe ich noch irgendeine Kleinigkeit übersehen/vergessen? Bzw. gibt es eine Lösung, dass ein Timeout nicht mehrfach im Hintergrund läuft, da der Stop Timeout befehlt wohl nicht alle Timeouts stoppen tut. -
@enrico-w sagte: jede Minute
Wenn jede Minute getriggert wird, werden Timeouts > 1 Minute mehrfach gestartet und lassen sich nicht mehr stoppen. Verwende besser einen Zähler, der mit jedem Trigger hochgezählt wird.
-
@paul53 Ahh, gut hatte ich nicht erwartet. Ich habe gedacht, dass nach jeder Minute der Timeout von der letzten noch mit dem Stop Befehl aufgehoben werden kann. Gut, dann bastle ich mal das Skript auf einen Zähler um und melde mich dann nochmal mit dem Ergebnis. Vielen Dank für den Hinweis!
-
@enrico-w sagte: dann bastle ich mal das Skript auf einen Zähler um
Verwende besser die Sonneneinstrahlung als Trigger mit folgendem Prinzip:
Keine weiteren Timer-Stopps und Prüfungen!
Die Auswertung von "vorheriger Wert" in der gezeigten Art verhindert die Mehrfachauslösung der Timer.