Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Blockly
    5. Einfache Timersteuerung mit rekursiver Prüfung

    NEWS

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    Einfache Timersteuerung mit rekursiver Prüfung

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

      Hi,
      für meine Gartenbewässerung habe ich eine ganz einfach Timersteuerung gebaut, die soweit gut funktioniert. Ich weiß, dass es elegantere Möglichkeiten gibt, aber so finde ich es topp!
      Bei Betätigung einer Taste, startet die Bewässerung und endet nach 20 Min.
      Bildschirmfoto 2025-04-09 um 15.08.32.png

      Da ich den Ventilen noch nicht 100%ig vertraue, möchte ich sicher gehen, dass der "false"-Befehl so lange gesendet wird, bis das Ventil zu ist (="false").
      Nun meine Frage:
      Bildschirmfoto 2025-04-09 um 15.21.43.png

      So machte es mMn keinen Sinn, da der "wiederhole"-Befehl nicht auch nach 20 Min abgearbeitet wird.

      Könnte ich stattdessen nicht mit einer Verzögerung, sondern mit einer Pause arbeiten:
      Bildschirmfoto 2025-04-09 um 15.21.19.png

      Oder wie könnte ich es lösen?
      Danke für Eure Tipps!

      Asgothian paul53 2 Replies Last reply Reply Quote 0
      • Asgothian
        Asgothian Developer @M1R0O last edited by Asgothian

        @m1r0o sagte in Einfache Timersteuerung mit rekursiver Prüfung:

        Hi,
        für meine Gartenbewässerung habe ich eine ganz einfach Timersteuerung gebaut, die soweit gut funktioniert. Ich weiß, dass es elegantere Möglichkeiten gibt, aber so finde ich es topp!

        Da ich den Ventilen noch nicht 100%ig vertraue, möchte ich sicher gehen, dass der "false"-Befehl so lange gesendet wird, bis das Ventil zu ist (="false").
        Nun meine Frage:
        Bildschirmfoto 2025-04-09 um 15.21.43.png

        So machte es mMn keinen Sinn, da der "wiederhole"-Befehl nicht auch nach 20 Min abgearbeitet wird.

        Nein, wird er nicht. der Wiederhole Befehl wird deinen ioBroker mit 100% Systemlast belasten bis das Ventil offen ist - nicht ideal.
        nebenbei - es fehlt der Haken bei 'löschen falls läuft'

        Was du willst:
        An Stelle des wiederhole bis kommt zuerst ein 'anhalten Intervall' , dann ein 'ausführen Intervall' alle 1 s. Darin dein Falls-Baustein, zusammen mit einem 'sonst', in dem steht 'anhalten intervall'

        Zusätzlich empfehle ich (muss aber nicht):
        An Stelle des steuere set mit falsch mit Verzögerung kommt:

        • ein anhalten timeout
        • ein timeout in 20 Min. Darin ein steuere set mit falsch sowie ein anhalten Intervall

        Oder wie könnte ich es lösen?
        Danke für Eure Tipps!

        A.

        M 1 Reply Last reply Reply Quote 1
        • M
          M1R0O @Asgothian last edited by

          @asgothian
          Wow, danke!
          DAs muss ich mir erstmal vor Augen führen.
          Dafür habe ich direkt Fragen:

          • was genau meint 'löschen falls läuft'?
          • was genau ist das 'anhalten Intervall'? (ausführen finde ich)
          Asgothian 1 Reply Last reply Reply Quote 0
          • Asgothian
            Asgothian Developer @M1R0O last edited by

            @m1r0o sagte in Einfache Timersteuerung mit rekursiver Prüfung:

            @asgothian
            Wow, danke!
            DAs muss ich mir erstmal vor Augen führen.
            Dafür habe ich direkt Fragen:

            • was genau meint 'löschen falls läuft'?

            Sollte das Skript ein zweites mal getriggert werden, dann wird - sofern der Haken gesetzt ist - die verzögerte Ausführung vom vorherigen mal (wenn sie noch aktiv ist) gelöscht bevor sie neu mit (in diesem Fall) 20 Minuten gesetzt wird

            • was genau ist das 'anhalten Intervall'? (ausführen finde ich)

            Siehe hier:
            Screenshot 2025-04-09 at 16.14.59.png

            M 1 Reply Last reply Reply Quote 1
            • M
              M1R0O @Asgothian last edited by M1R0O

              @asgothian
              Bildschirmfoto 2025-04-09 um 16.24.24.png
              so?

              Ich habe bisher nicht mit Intervallen und Timeouts gearbeitet, sorry.

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

                @m1r0o

                fast:

                • das stop timeout im Timeout ist unnötig.
                • du hat für das Intervall den falschen Baustein zum abschalten genommen.
                M 1 Reply Last reply Reply Quote 1
                • M
                  M1R0O @Asgothian last edited by

                  @asgothian
                  Bildschirmfoto 2025-04-09 um 16.34.30.png
                  ?

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

                    @m1r0o der stop timeout vor dem ausführen Intervall muss auch noch auf 'stop zyklische Ausführung Intervall' umgesetzt werden, sonst geht es nicht.

                    A.

                    M 1 Reply Last reply Reply Quote 1
                    • M
                      M1R0O @Asgothian last edited by

                      @asgothian
                      Bildschirmfoto 2025-04-09 um 16.39.00.png

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

                        @m1r0o

                        Nun bist du fast da:

                        • im falls Baustein fehlt eingesetzt das 'steuere set mit wahr' um das ganze nochmal anzusteuern

                        A

                        M 1 Reply Last reply Reply Quote 1
                        • M
                          M1R0O @Asgothian last edited by

                          @asgothian
                          Danke. Ist am Handy gerade nicht machbar. Mache ich später.
                          Zum Verständnis: Ich setzte „falls ≠ falsch“ steuere „falsch“

                          Korrekt?

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

                            @m1r0o sagte: Oder wie könnte ich es lösen?

                            De Prüfung darf erst nach den 20 Minuten erfolgen, weshalb man sie in ein Timeout packt. Die eigentliche Prüfung erfolgt schon in der Schleifen-Bedingung und muss dann nicht nochmal erfolgen. Um nur z.B. jede Sekunden zu prüfen, kann man eine Pause in die Schleife setzen. Ohne die Pause wird im ms-Takt gefeuert!! Außerdem sollte man nach einer bestimmten Anzahl der Wiederholungen abbrechen und nicht unendlich oft senden.

                            Blockly_temp.JPG

                            1 Reply Last reply Reply Quote 1
                            • M
                              M1R0O last edited by M1R0O

                              ICh habe es jetzt so umgesetzt und auch verstanden (hoffe ich 😉 )!!
                              Bildschirmfoto 2025-04-09 um 19.51.56.png
                              Danke euch beiden!

                              Ich werde mir einen Shelly in die Pumpensteuerung setzen, der die Pumpe im Notfall ausschaltet, anstatt mir eine Mail zu senden, falls es zu häufig passiert.

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

                                @m1r0o sagte: so umgesetzt und auch verstanden

                                Das Stoppen eines (nicht vorhandenen) Intervalls ist unnütz. Stattdessen muss die Schleife abgebrochen werden, wenn 50 Wiederholungen gelaufen sind.

                                Blockly_temp.JPG

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

                                Support us

                                ioBroker
                                Community Adapters
                                Donate

                                905
                                Online

                                31.7k
                                Users

                                79.7k
                                Topics

                                1.3m
                                Posts

                                3
                                14
                                275
                                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