NEWS
Blockly: Timeout in Schleife wird ignoriert
-
Schönen guten Morgen,
ich würde gerne eine Steckdose schalten die aber leider nicht immer eine sehr gute Verbindung zu CCU3 hat. Der schalter an der CCU3 liefert ja sein erfolgreiches Schalten zurück über die Lampe. Jetzt würde ich gerne über den ioBroker das Signal laufen lassen und via Blockly die Steckdose versuchen solange zu schalten bis es geklappt hat.
Ich komme leider aktuell mit der "Wiederhole" Schleife nicht wirklich arbeiten da man die durch ein Timeout nicht verlangsamt bekommt oder?
Hat jemand eine gute Idee dazu oder weiß wie ich eine Wiederholung machen kann bis Steckdose "true" ist aber vielleicht mit 10 Sekunden dazwischen?
-
@xxxspxxx Wiederhole ist nahezu nie der richtige Block.
Was du suchst ist der Intervall-Block (sieht aus wie Timeout, wird nur automatisch wiederholt). Am besten suchst du mal hier im Forum, das wurde schon zigfach diskutiert mit Beispielen. Gibt ein paar Dinge zu beachten.
-
@xxxspxxx
Eine zweimalige Wiederholung mit unterschiedlicher Verzögerung sollte ausreichen. Um den Duty cycle nicht unnötig hoch zu treiben, sollten die Timer bei Erfolg (Wert: true, Ack: true) gestoppt werden. -
Danke euch.
ich jeder anderen Programmiersprache würde man es mit einer Schleife machen nur nicht in Javascript Witzig. Ja zu schleifen findet man nicht all zu viel. Was mich auch stört ist das asynchrone Ausführen was ja jeglichen Scriptaufbau zerstört. Was hat man sich dabei gedacht?
@paul53 das ist eine möglich Lösung ich überlege nur ob das nicht "mit dem Messer durch die Brust ins Auge" Lösung ist. Aber wenn das Javascript verlangt werde ich das so mal machen.
Danke euch
-
Habe noch eine kleine Sache. Bei dem Trigger gibt es "anerkannt ist " "egal / update / befehl"
wenn ich das bei mir auch egal lasse für der das beim klicken auf den Taster immer zwei mal aus. Wenn ich befehl oder Update nehme nur einmal. Was sollte ich denn wann benutzen?
Hier mal mein gebautes
-
@xxxspxxx sagte:
Was sollte ich denn wann benutzen?
Beim Aktor-Trigger "Update" (Ack: true) wie gezeigt.
-
@xxxspxxx sagte in Blockly: Timeout in Schleife wird ignoriert:
Was mich auch stört ist das asynchrone Ausführen was ja jeglichen Scriptaufbau zerstört. Was hat man sich dabei gedacht?
Reaktion auf Ereignisse wenn es relevant ist statt starres Ausführen von zeitlich definierten Mustern. Ist gerade für Anfänger etwas schwieriger sich reinzufuchsen, insbesonder wenn es gegenseitige Abhängigkeiten gibt.
Aber wenn man nicht unnötig Funkverkehr etc. erzeugen will, die einzig sinnvolle Variante. -
@paul53 sagte in Blockly: Timeout in Schleife wird ignoriert:
@xxxspxxx sagte:
Was sollte ich denn wann benutzen?
Beim Aktor-Trigger "Update" (Ack: true) wie gezeigt.
Ja ich meine aber oben beim Taster. Ich habe es jetzt überall auf Update stehen da er beim Teil vom Taster sonst zweimal das Script anstartet. Alles gut jetzt