NEWS
[gelöst] Wie Trigger für kurze Zeit inaktivieren?
-
Bei meiner Beschattungssteuerung für Rolladen in Blockly möchte ich erkennen können, ob der Rolladen automatisch durch Blockly oder manuell gefahren wurde. Im letzteren Fall will ich ich eine Pausezeit für automatische Rolladenbewegungen einrichten. Es geht hier nur um das Erkennen: wenn die Istposition des Rolladenmotors ungleich der Sollposition ist, dann nehme ich an, dass manuell verfahren wurde.
Leider greift der Trigger zu früh, nämlich schon, wenn dem Rolladenmotor (Shelly 2.5) der Fahrbefehl gegeben wird.
Steht der Motor z. b. auf 100 % und soll auf 90 % gefahren werden, so meldet der Trigger als Istposition "100" und als Sollposition "90". Nach dem Verfahren meldet die Istposition natürlich100 %.90 % (korrigiert).
Deshalb möchte ich den Trigger "Manuell erkennen" auf die Istposition für ca. 30 Sekunden verzögern können.
Wie könnte ich das realisieren?
Vielen Dank für Gedanken!
-
Hilft dir da ggf dieser Baustein weiter?
So sieht man, wer zuletzt einen Wert verändert hat. -
@david-g sagte: Hilft dir da ggf dieser Baustein weiter?
Das funktioniert bei Rollos nicht, da der Wert Zwischenpositionen annimmt.
@iobroker2001 sagte in Wie Trigger für kurze Zeit inaktivieren?:
auf die Istposition für ca. 30 Sekunden verzögern können.
Nach "steuere" einen 30-s-Timer starten, der für die Erkennung "manuell" als Sperre verwendet wird. Bei Ablauf der 30 s den Timer stoppen (die Timer-Variable auf null setzen).
-
@david-g Leider kommen da mehrere Ursprünge hintereinander, von VIS und zum Schluss natürlich noch vom Shelly-Adapter. Danke für den Anstoß!
javascript.0 2023-02-05 11:01:54.103 error script.js.common.Friedhelm.Rolläden.Automatik.Steuerung.Schattierung: Ursprung: system.adapter.shelly.0 javascript.0 2023-02-05 11:01:54.102 error script.js.common.Friedhelm.Rolläden.Automatik.Steuerung.Schattierung: Istposition98 javascript.0 2023-02-05 11:01:54.102 error script.js.common.Friedhelm.Rolläden.Automatik.Steuerung.Schattierung: Sollposition: 100 javascript.0 2023-02-05 11:01:54.102 error script.js.common.Friedhelm.Rolläden.Automatik.Steuerung.Schattierung: Sollposition verlassen, manuell vermutet! javascript.0 2023-02-05 11:01:53.617 error script.js.common.Friedhelm.Rolläden.Automatik.Steuerung.Schattierung: Ursprung: system.adapter.shelly.0 javascript.0 2023-02-05 11:01:53.590 error script.js.common.Friedhelm.Rolläden.Automatik.Steuerung.Schattierung: Ursprung: system.adapter.ws.0
-
@paul53 Das erscheint mir ein guter Weg, werde ich ausprobieren, vielen Dank!
-
@paul53 Schade, ich dachte erst, das wäre es, aber es geht doch nicht, da die "manuellen" Befehle von allen möglichen VIS-Buttons kommen können und auch von physikalischen Tastern am Rolladen. Wenn es von einem Blockly-Befehl kommt, ist es ja immer automatisch.
-
@iobroker2001 sagte: die "manuellen" Befehle von allen möglichen VIS-Buttons kommen können und auch von physikalischen Tastern am Rolladen.
Versuche es mal so:
-
@paul53 Habe ich so umgesetzt, erste Tests sind OK!!
Der Trick in Deinem Blockly ist die Zeile
falls nicht Verzögerung timeoutVielen Dank!