NEWS
[gelöst] Blockly - Rollladen auf oder zu?
-
Ich bräuchte mal einen Denkanstoß bei einer eigentlich einfachen Sache. Unser Rollladen wird von einem Shelly (+2PM) gesteuert. Wenn der Rollladen zu ist, steht der Datenpunkt "Position" auf 0, bei offen auf 100%.
Wenn mal den Rollladen nun von 100 auf 0 - oder umgekehrt steuert, dann schaltet er nicht direkt vom Wert 0 auf den Wert 100, sondern er springt noch mindestens einmal zurück. An dem ersten Screenshot sieht man das deutlich. Ich wollte nun einen Datenpunkt anlegen, der mir mit true bzw. false anzeigt ob der Rollladen ganz offen oder ganz zu ist. Um die Wechsel der Werte abzufangen habe ich einen Timeout angelegt. Ich will - wenn der Positionswert für 3 Sekunden "stabil" bleibt den Datenpunkt setzen. Dazu verwende ich folgendes Blockly:Hier das Log vom Shelly:
Ich verstehe nicht wieso die Timeouts nicht abgebrochen werden wenn die Bedingung sich ändert.
-
@heimweh Du stoppst zweimal timeout und keinmal timeout2
Eigentlich muss vor dem Initiieren von timeout2 nur timeout gestoppt werden, und umgekehrt beim Initiieren von timeout timeout2 gestoppt werden ...
-
@martinp - Du hast Recht, das ist aber beim kopieren des Scriptes passiert. Ich habe den Block rauskopiert in ein leeres Blockly um einen besseren Screenshot machen zu können. ich korrigiere es
-
@heimweh Nicht beide Timeouts stoppen
Immer den "Gegenteil" Timeout...
Eine schnellere Reaktion könnte man erreichen, wenn die ERSTE Änderung nach einer langen Zeit ohne gemeldete Änderungen verlässlich ist...
Da könnte man sich in einer Variablen den Zeitpunkt der letzten Änderung merken, und alle Änderungen, vor denen nicht 3 Sekunden "Ruhe" war verwerfen, und auf Timeouts im Skript verzichten.
Wenn es dann funktioniert, kann man die debug outputs und den "sonst" Zweig entfernen
-
@martinp danke das wäre auch ein Ansatz. Ich verstehe grundsätzlich nicht wieso es so nicht funktioniert:
wenn ich den Rollladen von 100% auf 0% stelle, kommt erst die Meldung auf, und dann zu.
-
@heimweh Werden wirklich als Trigger-Werte nur "0" oder "100" übergeben?
Wenn der Datenpunkt viele Sekunden beim Fahren auf wechselnden Zwischenwerten zwischen 0 und 100 herumdümpelt könnte dieser Effekt auftreten ...
Mache mal einen dritten Falls-Zweig "Sonst" dazu mit einem Logging von "Wert"...
Sollte da Treffer herauskommen sollten BEIDE Timeouts in diesem Zweig gestoppt werden
-
@martinp - ok hab ich getestet. Es gibt keine Werte dazwischen außer 0 und 100. Ich habe aber festgestellt, wenn der Rollladen unten ist (0%) - und ich gebe ihm den Befehl auf 100% zu fahren dann springt der Wert im Datenpunkt fast sofort auf 100%, 2 Sekunden später wieder auf 0% - und dann wenn der Rollladen physisch oben ist - dann springt der Wert wieder auf 100% und dann passt es auch so.
Ich glaube ich muss Deine Idee mit den Zeitstempeln versuchen - oder den Zwischenwert mit Verzögerungen rausfiltern. Vor dem Shelly war ein Homematic Rollladenaktor verbaut und der hat das selbe Verhalten....Unterm Strich muss die Meldung "Rollladen oben" sofort da sein wenn der Motor oben stoppt
-
@heimweh sagte in Blockly - Rollladen auf oder zu?:
Ich habe aber festgestellt
das ist vollkommen normal!
erst wird die Zielhöhe bestätigt, dann die Isthöhe angezeigt.zumindest beim
@heimweh sagte in Blockly - Rollladen auf oder zu?:
Homematic Rollladenaktor
-
@heimweh sagte: Meldung "Rollladen oben" sofort da sein wenn der Motor oben stoppt
Versuche es mal so:
-
@paul53 - so funktioniert es. Allerdings kommt jetzt jede Meldung 2x. Wäre jetzt nicht tragisch für meine Anwendung (bei hochfahren sogar gut den Fahrtbeginn zu haben) aber wie könnte man das jetzt noch elegant korrigieren?
-
@heimweh sagte: wie könnte man das jetzt noch elegant korrigieren?
Nur auf "bestätigte Änderung" triggern.
-
@paul53 Das mit "letzte Änderung" und "vorherige letzte Änderung" ist ja genial.
Man muss wohl doch mal beim Öffnen der Pull-Down Menus des unscheinbarsten Elements im Trigger Menu nicht nur mit dem Tunnelblick das suchen, was man gerade braucht, sondern vielleicht mal genauer schauen, was da für Schätze entdeckbar sind ... -