Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Blockly
    5. timeout beenden über mehrere blockly-scripte

    NEWS

    • Wir empfehlen: Node.js 22.x

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker goes Matter ... Matter Adapter in Stable

    timeout beenden über mehrere blockly-scripte

    This topic has been deleted. Only users with topic management privileges can see it.
    • S
      Sentinel997 last edited by

      Hallo Zusammen

      Ich habe mehrere Blockly-scripte in denen ich einen timeout ausführe.

      Zum Beispiel habe ich das blockly "Hundetüre" und "Drehgriff Westen".

      e3ad4663-e2fd-4521-93b1-5aa2e636a02f-image.png
      0a8953e5-7d5f-4470-a88f-61dbfc067ec3-image.png

      Situation:

      • Die Lichter im Garten wurden mit dem Blockly "Drehgriff Westen" eingeschalten.
      • Der Hund geht über seine automatische Hundetüre raus und somit wir das Blockly Hundetüre gestartet und somit der timeout der Hundetüre.

      In diesem Fall würde nun nach drei Minuten die Lichter im Garten ausgehen, obwohl der "Drehgriff Westen" noch offen ist.

      Kann ich das timeout der Hundetüre im Blockly "Dregriff Westen" irgendwie unterbrechen?

      Danke im voraus für Eure Vorschläge.

      Gruss

      Asgothian 1 Reply Last reply Reply Quote 0
      • Asgothian
        Asgothian Developer @Sentinel997 last edited by Asgothian

        @sentinel997 sagte in timeout beenden über mehrere blockly-scripte:

        Hallo Zusammen

        Ich habe mehrere Blockly-scripte in denen ich einen timeout ausführe.

        Zum Beispiel habe ich das blockly "Hundetüre" und "Drehgriff Westen".

        Situation:

        • Die Lichter im Garten wurden mit dem Blockly "Drehgriff Westen" eingeschalten.
        • Der Hund geht über seine automatische Hundetüre raus und somit wir das Blockly Hundetüre gestartet und somit der timeout der Hundetüre.

        In diesem Fall würde nun nach drei Minuten die Lichter im Garten ausgehen, obwohl der "Drehgriff Westen" noch offen ist.

        Kann ich das timeout der Hundetüre im Blockly "Dregriff Westen" irgendwie unterbrechen?

        Danke im voraus für Eure Vorschläge.

        Gruss

        Es gibt prinzipiell 3 Möglichkeiten:

        • Du kannst im Drehgriff Wohnraum Trigger ein "stop Timeout" Baustein einbauen. Das bedingt das beide Trigger sich im gleichen Skript befinden, und würde verhindern das der Timeout aktiv wird, sobald der Drehgriff im Wohnraum entsprechend betätigt wurde.
        • Du kannst im Timeout den Status des Drehgriffs mit abfragen, und die Lichter im Garten (und nur die) nicht löschen wenn der entsprechend gesetzt ist.
        • Du kannst im Drehgriff Wohnraum Trigger zusätzlich noch einen Benutzerdefinierten State (oder eine Variable, wenn beide in einem Skript sind) setzen, der dann im Timeout abgefragt wird.

        Nebenbei: Du holst im Trigger auf den Drehgriff den Wert des Drehgriffs mehrfach aus der Objektdatenbank. das ist ineffektiv. Es gibt im Bereich Trigger einen Baustein der mit Objekt ID vorgelegt ist. Diesen kann man auf Wert umstellen, und im Trigger an Stelle von Screenshot 2021-10-05 at 07.51.55.png einsetzen. Das ist an der Stelle deutlich effektiver.

        Zusätzlich hast du auch das gegenteilige Problem:

        • Per Drehgriff werden 2 der 4 Lampen eingeschaltet die von der Hundetüre geschaltet werden
        • Die Hundetüre geht auf
        • Per Drehgriff werden die Lampen wieder ausgeschaltet.

        Dann ist für den Rest der Zeit nur ein Teil der durch die Hundetüre geschalteten Leuchten an.

        Mein Vorschlag dazu ist verhältnismässig einfach:

        Du legst einen State an "Anforderung_SA05_SA04", Typ Zahl
        Im Trigger für die Hundetüre (wenn du die leuchten einschaltest) fügst Du dem Wert dieses States den Wert 1 hinzu (per binär "oder") an statt diese beiden Leuchten zu schalten
        Im Timeout der Hundetüre "entfernst" du den Wert 1 wieder (per (Wert oder 1) -1)
        Im Trigger für den Drehgriff (wenn du die leichten einschaltest) fügst Du dem Wert dieses States den Wert 2 hinzu (per binär "oder") an statt diese beiden Leuchten zu schalten, und enfernst den Wert 2 (per (Wert oder 2) - 2) wieder.

        Als letztes brauchst du dann noch einen Trigger auf die Anforderung. Wenn der Wert des Trigger > 0 ist machst du beide Leuchten an, wenn er 0 ist machst du beide Leuchten aus.

        A.
        I

        S 1 Reply Last reply Reply Quote 0
        • S
          Sentinel997 @Asgothian last edited by

          @asgothian

          Guten Morgen, Danke für deine Ausführung.

          Den ersten Teil konnte ich bereits umsetzen und testen. Funktioniert tadellos. Und der "Nebenbei" Tipp ist eine super Sache. 🙂

          Zu dem "gegenteiligen Problem": Da muss ich mich nochmals richtig einlesen. Habe noch nicht ganz verstanden was Du meinst. Muss es mir aber nochmals bei einer ruhigen Minuten durchlesen.

          Ich melde mich nochmals, nachdem ich es umgesetzt habe.

          Gruss

          1 Reply Last reply Reply Quote 0
          • First post
            Last post

          Support us

          ioBroker
          Community Adapters
          Donate

          862
          Online

          32.0k
          Users

          80.5k
          Topics

          1.3m
          Posts

          2
          3
          268
          Loading More Posts
          • Oldest to Newest
          • Newest to Oldest
          • Most Votes
          Reply
          • Reply as topic
          Log in to reply
          Community
          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
          The ioBroker Community 2014-2023
          logo