Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Blockly
    5. Blockly Timeout hält sich nicht an die eingestellte Zeit

    NEWS

    • Wir empfehlen: Node.js 22.x

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker goes Matter ... Matter Adapter in Stable

    Blockly Timeout hält sich nicht an die eingestellte Zeit

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

      Hallo zusammen,

      ich habe die Beiträge hier zu Blockly und Timeout gelesen und bin eigentlich der Meinung, dass ich das Prinzip verstanden habe - aber scheinbar doch nicht, daher die Bitte um Hilfe.

      Ich möchte meinen Landroid Rasenmäher sperren, sobald die Bewässerung eingeschaltet ist oder es regnet und weitere 3 Stunden geparkt lassen, nachdem die Rasenbewässerung wieder aus ist bzw. wenn der Regen vorbei ist.
      Bewässerung und Regen sind binäre Datenpunkte, die Sperrung des Rasenmähers läuft so, dass die Mähzeit um 100% reduziert (-100) wird.
      Im Skript passiert Folgendes: Regen kommt, Mähzeit wird um 100% reduziert, aber trotz anstehendem Regen wird nach ca. 5 Sek. die Mähzeitreduktion wieder zurückgenommen.
      b5559c7a-8280-4f2c-8849-9f022a35cd6d-image.png
      Das passiert alles irgendwie sporadisch, die eingestellten 180 min kann ich allerdings nie beobachten. Mein Blockly sieht so aus:
      6e3db5f2-fab1-4012-8064-e1e67b12ba72-image.png

      Kann mir jemand einen Tip geben?

      Danke vorab!

      Asgothian J G 3 Replies Last reply Reply Quote 0
      • Asgothian
        Asgothian Developer @fu_zhou last edited by

        @fu_zhou

        Erklären kann ich das Verhalten nicht. Ich würde dir aber Empfehlen mal einen Trigger auf die Mähzeitreduktion zu setzen, und in dem Trigger die "quelle" der Anpassung auszugeben. An diese kommst du heran wenn du den Baustein "Objekt ID" aus dem Trigger Bereich nimmst und auf Quelle umstellst.

        Ich vermute das die Mähzeit von anderer Seite zurück gesetzt wird.

        A.

        fu_zhou 1 Reply Last reply Reply Quote 0
        • J
          jensven @fu_zhou last edited by

          @fu_zhou
          Allgemein zu deinem Script:
          So wäre es evtl. einfacher:
          rasenmäher.png

          Was passiert wenn der Rasenmäher schon unterwegs ist und es anfängt mit regnen? Wird dann mit -100 der Rasenmäher gestoppt und er fährt zurück zur Station?

          paul53 1 Reply Last reply Reply Quote 0
          • paul53
            paul53 @jensven last edited by

            @jensven sagte: So wäre es evtl. einfacher:

            Es fehlt die Oder-Verknüpfung der beiden Werte. Besser so:

            Bild_2021-10-05_180354.png

            Asgothian G 2 Replies Last reply Reply Quote 1
            • Asgothian
              Asgothian Developer @paul53 last edited by Asgothian

              @paul53 sagte in Blockly Timeout hält sich nicht an die eingestellte Zeit:

              @jensven sagte: So wäre es evtl. einfacher:

              Es fehlt die Oder-Verknüpfung der beiden Werte. Besser so:

              Bild_2021-10-05_180354.png

              ???

              So wie @jensven das getan hat hat "wert" doch den Wert des States der den Trigger ausgelöst hat. Damit ist kein oder notwendig um den Effekt des Skriptes des OP zu duplizieren. Dort wird ja in 2 Triggern immer nur auf einen Wert reagiert.

              A.

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

                @asgothian sagte: Damit ist kein oder notwendig

                Folgender Fall: Die Bewässerung läuft und es beginnt zu regnen. Die Bewässerung wird abgeschaltet (es regnet bereits): Der Timer wird gestartet. Vor Ablauf der 180 Minuten hört es auf zu regnen: Was nun passiert, kann man leicht erkennen.

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

                  @paul53

                  Korrekt.. das war aber beim vorherigen Skript auch so. Ich bin einfach mal davon ausgegangen das der OP das auch wollte. Ansonsten wäre das Ziel-Skript deutlich aufwändiger.

                  A.

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

                    @asgothian sagte: das war aber beim vorherigen Skript auch so.

                    Nicht ganz: Es können auch zwei Timer parallel laufen, die sich aber zumindest wieder stoppen lassen. Zwei parallel laufende Timer mit nur einer Timer-Variablen lassen sich nicht mehr stoppen.

                    Ich gehe davon aus, dass die Verzögerung mit Ende des letzten Ereignisses (Bewässerung / Regen) starten soll.

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

                      @paul53 sagte in Blockly Timeout hält sich nicht an die eingestellte Zeit:

                      Ich gehe davon aus, dass die Verzögerung mit Ende des letzten Ereignisses (Bewässerung / Regen) starten soll.

                      Denkbar, aber so war es nicht umgesetzt. Wenn Du dir das Skript anschaust werden immer beide Timeouts gelöscht wen eine der beiden Bedingungen nicht mehr gegeben ist.

                      A.

                      1 Reply Last reply Reply Quote 0
                      • G
                        guergen @paul53 last edited by

                        @paul53 sagte in Blockly Timeout hält sich nicht an die eingestellte Zeit:

                        @jensven sagte: So wäre es evtl. einfacher:

                        Es fehlt die Oder-Verknüpfung der beiden Werte. Besser so:

                        Bild_2021-10-05_180354.png

                        Zwei Trigger-Einträge werden wie ein "oder" behandelt; das Blockly einen Beitrag höher wäre somit auch korrekt... 😉

                        paul53 1 Reply Last reply Reply Quote 0
                        • G
                          guergen @fu_zhou last edited by

                          @fu_zhou Wo kommt denn der Wert "Moving time exceed" her? Kann es sein, dass der vom Mäher aktualisiert wird?

                          1 Reply Last reply Reply Quote 0
                          • paul53
                            paul53 @guergen last edited by paul53

                            @guergen sagte: Zwei Trigger-Einträge werden wie ein "oder" behandelt

                            Nein, sondern nur Ereignis1 oder Ereignis2 (Ereignis = Wertänderung), nicht aber Wert1 oder Wert2.

                            G 1 Reply Last reply Reply Quote 0
                            • G
                              guergen @paul53 last edited by

                              @paul53 ??? DAS verstehe ich jetzt grade nicht.... Ereignis... Wertänderung...

                              paul53 1 Reply Last reply Reply Quote 0
                              • paul53
                                paul53 @guergen last edited by

                                @guergen
                                Der Elektroniker sagt Flanke: Es wird bei jeder Flanke (Wertänderung) getriggert unabhängig von der Richtung der Flanke.

                                G 1 Reply Last reply Reply Quote 1
                                • G
                                  guergen @paul53 last edited by guergen

                                  @paul53 Das habe ich verstanden (bin Elektriker), aber das ist bei dem oberen doch auch: "Wert von ObjektID" oder "Wert von ObjektID" vs "Wert". Bei beiden steht doch "wurde geändert" (Flankenrichtungsneutral)

                                  paul53 1 Reply Last reply Reply Quote 0
                                  • paul53
                                    paul53 @guergen last edited by paul53

                                    @guergen sagte: "Wert von ObjektID" oder "Wert von ObjektID" vs "Wert".

                                    Das "oder" ist entscheidend: "Wert von ObjektID" oder "Wert von ObjektID".
                                    Es verhindert, dass bei der negativen Flanke eines Wertes der sonst-Zweig ausgeführt wird, wenn der andere Wert noch "wahr" ist.

                                    G 1 Reply Last reply Reply Quote 0
                                    • G
                                      guergen @paul53 last edited by

                                      @paul53 Ahhhhhhh! Jetzt hab ich das auch verstanden

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

                                        Viele Dank an Euren Input bisher, bin die Woche unterwegs und komme erst am Wochenende dazu, die Ideen zu verarbeiten.
                                        @Asgothian Ich werde mich auf jedem Fall mal auf die Suche machen, ob ggf. der Rasenmäher tatsächlich die Mähzeit umschaltet.
                                        @jensven Sobald die Mähzeitreduktion bei mähendem Mäher aktiv wird (-100%), bricht der Mäher den Mähvorgang ab und fährt nach Hause.

                                        1 Reply Last reply Reply Quote 0
                                        • fu_zhou
                                          fu_zhou last edited by

                                          Habe jetzt das vereinfachte Skript umgesetzt - funktioniert erst mal:
                                          b74dba36-3956-4d19-b284-212d3d29232e-image.png
                                          @paul53 : wo hast du denn das "oder" her? Ich habe nur das gefunden, wie jetzt bei mir im Skript, also Objekt - ODER - Objekt
                                          c286cdbf-68c3-42a5-b307-de27b95d6bd2-image.png
                                          vs.
                                          bbe00ef6-8ec6-4fb3-a1b1-a286ed315b81-image.png
                                          Evtl. unterschiedliche Blockly/ Javascript-Versionen?
                                          @Asgothian @guergen Es sieht möglicherweise danach aus, dass ich den Rasenmäher nicht im automatischen Zeitplan laufen lassen darf, sondern im manuellen, um die Mähzeitreduktion vorgeben zu können bzw. dass die Automatik sie nicht zurücknimmt. Ich habe jetzt auf manuell umgestellt und warte mal ab. Es gab seit dem letzten Jahr ein paar App- und Firmware-Updates, da ist das scheinbar auf Auto gestellt worden und ich habe mir nichts weiter dabei gedacht...

                                          paul53 1 Reply Last reply Reply Quote 0
                                          • paul53
                                            paul53 @fu_zhou last edited by

                                            @fu_zhou sagte: wo hast du denn das "oder" her?

                                            Rechte Maustaste über dem Block und "externe Eingänge" auswählen.

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            858
                                            Online

                                            32.0k
                                            Users

                                            80.5k
                                            Topics

                                            1.3m
                                            Posts

                                            5
                                            20
                                            676
                                            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