NEWS
Warte bis ObjectID = X - dann fahre mit Blockly fort
-
Wie schaffe ich es, ein Blockly pausieren zu lassen bis der Wert eines Objektes gleich 0 ist?
Es geht mir darum meine Raffstores auf 0% fahren zu lassen (die dauert dorthin ist unterschiedlich lange je nachdem wo sich dieser aktuell befindet bzw ist bereits an dieser Position) und soll danach auf 2% gefahren werden.
Jedoch schaffe ich es nicht diese individuelle Pause im Blockly zu integrieren. Ich dachte ich kann diese individuelle Pause mit dem aktuellen Stromverbrauch realisieren. Also sobald dieser (wieder) auf 0W (bzw kleiner als 5W) ist, sollen die 2% angefahren werden.
Kann mir da jemand auf die Sprünge helfen?
Mein aktueller Versuch der nicht funktioniert: (Bitte nicht darüber lachen)
-
@rtwl Bau doch einen zusätzlichen zweiten trigger ein? Falls Objekt Position wurde geändert -> falls Wert gleich 0 steure Position mit 2 ausserdem fehlt was in den Grünen Schleife Block? Wiederhole solange Position unter <5 da fehlt was in den mache Teil. Da müsste was rein wenn das funktionieren soll.
-
@ciddi89 sagte in Warte bis ObjectID = X - dann fahre mit Blockly fort:
ausserdem fehlt was in den Grünen Schleife Block
Meine Idee dabei war, dass er nichts macht (darum leer) bis der Wert unter 5 fällt, und dann fortsetzt mit fahre auf 2%
hab jetzt aber eine andere Lösung gefunden. Damit klappt es.
-
@rtwl sagte in Warte bis ObjectID = X - dann fahre mit Blockly fort:
Damit klappt es.
sicher?
die 60 Wiederholungen werden im Millisekundentakt abgeschossen und entsprechend alle auch "gleichzeitig" ausgeführt
-
@homoran sagte: die 60 Wiederholungen werden im Millisekundentakt abgeschossen und entsprechend alle auch "gleichzeitig" ausgeführt
Mit Pause innerhalb der Schleife funktioniert es.
-
@paul53 sagte:
Mit Pause innerhalb der Schleife funktioniert es.
Wieso denn jetzt dieses??
schön zu wissen, ist dann wohl eine Ausnahme. -
@homoran sagte: ist dann wohl eine Ausnahme.
Nein. Mit Timeout in der Schleife - wie man es öfter in ersten Versuchen sieht - funktioniert es nicht. Die Pausen-Funktion ist erst später hinzu gekommen.
-
@homoran die schleifen werden ja nicht gleichzeitig gestartet, sondern wird erst dann die nächste gestartet wenn die vorherige abgeschlossen ist. Und mit der Pause dauert es eben eine Sekunde bis sie fertig ist.
ohne der Pause würde eine Schleife nur 1ms oder weniger dauern. -
60 Wiederholungen deshalb, weil mein längster Raffstore ~55 sek Fahrzeit hat.
-
@paul53 das heißt also, dass du als Skript Profi nichts an meiner Lösung auszusetzen hast?
-
@rtwl sagte: nichts an meiner Lösung auszusetzen hast?
Ich würde zwar einen Trigger auf "Power" verwenden, aber mit Polling funktioniert es auch.
-
@rtwl sagte in Warte bis ObjectID = X - dann fahre mit Blockly fort:
die schleifen werden ja nicht gleichzeitig gestartet, sondern wird erst dann die nächste gestartet wenn die vorherige abgeschlossen ist.
siehe Antwort von @paul53
Klar ist das nicht! das ist mit timeout nämlich nicht so -
@paul53 als trigger muss ich dann die Objekte von autoState des shuttercontrol Adapter nehmen. Damit ist das Power Objekt nur die zweite Prüfung, falls der SunProtect Modus aktiv wird.
das Ziel dabei ist es während des Sonnenschutz Modus die Lamellen auf 45° zu stellen.
-
@homoran sagte in Warte bis ObjectID = X - dann fahre mit Blockly fort:
Klar ist das nicht! das ist mit timeout nämlich nicht so
gut zu wissen.
für mich war das klar, da mein aktuelles Wissen vorwiegend von Tasker und der alten VBA Programmierung mit Excel kommt. Und da ist es so. Zumindest hat es bis jetzt immer mit der Pause geklappt.
aber gut zu wissen, dass es einen Unterschied zwischen Pause und Timeout gibt.