Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Blockly
    5. Suche "ausfallsicheren" Timer (Blockly)

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    Suche "ausfallsicheren" Timer (Blockly)

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

      Moin. ich möchte für verschiedene Anwendungen einen Timer realisieren. Ansich nicht das Problem...
      nur stoppen alle Timer, falls ioBroker oder der javascript-Adapter neustarten. (z.B. auch beim täglichen Backup)...
      Zuerst hatte ich einen einfachen Timer über eine Schleife realisiert, da ist es klar das der abbricht bei einem Neustart...
      Jetzt hab ich einen Timer über einen CRON-Job versucht... aber sobald ich den js-Adapter neu starte, ist auch der CRON-Job weg und der Timer wird nicht ausgeführt...

      Gibts da ne ausfallsichere Lösung? Also einen Timer, der auch nach einem eventuellen Neustart noch zuverlässig läuft?

      paul53 2 Replies Last reply Reply Quote 0
      • BBTown
        BBTown last edited by

        warum nimmst du den cron nicht als trigger im script?

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

          Schreibe den timer Zeitpunkt in einen eigenen Datenpunkt und frage den dann per Script ab.

          Datenpunkte bleiben auch über System-Neustarts hinweg erhalten.

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

            @Supermicha sagte:

            sobald ich den js-Adapter neu starte, ist auch der CRON-Job weg und der Timer wird nicht ausgeführt...

            Der CRON-Job wird neu gestartet.
            Was willst Du erreichen und wie sieht Dein Versuch mit dem CRON-Job aus ? Soll der Timer weiter laufen ? Wenn ja, gibt es beim Backup aber eine längere Unterbrechung.

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

              @Supermicha sagte:

              beim täglichen Backup

              Wenn man den Endzeitpunkt der Verzögerung berechnet und in einem Datenpunkt speichert, kann man auch Unterbrechungen (Backup) überwinden.

              Blockly_delay_mit_iob_unterbrechung.JPG

              1 Reply Last reply Reply Quote 0
              • S
                Supermicha last edited by

                mein Timer sah bisher so aus...
                284c47d8-5f96-4df1-ab96-fcb548b3cb1d-grafik.png

                der Hinweis mit dem CRON als Trigger war schon gut.. denke ich..
                so wie ich es habe, das der da irgendwo verschachtelt drin ist, wird wohl nicht klappen...

                @paul53 ich nutze das aktuell um mein Handyladegerät nach 3 Stunden auszuschalten...
                Problem ist nur, wenn ich zwischenzeitlich an meinem ioBroker rumbastel, "vergisst" er auszuschalten...
                Oder wenn ich nachts um 1 das Ladegerät anschalte und ioBroker um 3 sein Backup macht, ist der Timer auch futsch...

                Ich guck mir dein Blockly jetzt erstmal genauer an

                liv-in-sky 1 Reply Last reply Reply Quote 0
                • S
                  Supermicha last edited by

                  @paul53 ich dachte ich kenn mich mit Blockly schon ganz gut aus... bis ich versucht habe deins zu verstehen...

                  Du benutzt eine Funktion als Trigger? Damit hab ich noch nie gearbeitet...
                  hättest du die Muse mir das kurz zu erklären?

                  BBTown paul53 2 Replies Last reply Reply Quote 0
                  • BBTown
                    BBTown @Supermicha last edited by

                    @Supermicha sagte in Suche "ausfallsicheren" Timer (Blockly):

                    ch dachte ich kenn mich mit Blockly schon ganz gut aus... bis ich versucht habe deins zu verstehen...

                    Das war 100%ig was mir auch durch den Kopf ging 😀 😎

                    1 Reply Last reply Reply Quote 0
                    • S
                      Supermicha last edited by

                      @BBTown wie genau meinst du das mit CRON als Trigger?

                      Ich muss ja, falls der Timer geändert/aktiviert wird, den CRON entsprechend ändern lassen...

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

                        @Supermicha sagte:

                        Du benutzt eine Funktion als Trigger?

                        Nein, eine Funktion ist kein Trigger. Ich benutze eine Funktion immer dann, wenn die gleiche Befehlsfolge mehrfach benötigt wird: Hier bei Skriptstart und im Triggerbaustein. An die Funktion verzoegerung(stop) wird der Stop-Zeitpunkt in ms (Linux-Zeit) übergeben.

                        1 Reply Last reply Reply Quote 0
                        • S
                          Supermicha last edited by

                          Ich glaube zu verstehen was du meinst....

                          Hast du dir mein Blockly mal angesehen? Das läuft super.. auch der CRON-Job wird richtig aktualisiert, aber er überlegt keinen Adapter-Neustart...
                          Liegt das irgendwie daran, das er im Falls Objekt drin steckt? Aber anders kriege ich den bei Änderung ja nicht neu gestartet....

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

                            @Supermicha sagte:

                            aber er überlegt keinen Adapter-Neustart

                            Das kann er auch nicht, da der CRON Job nur im Trigger gesetzt wird und nicht auch bei Skriptstart.

                            Übrigens: timeout ist überflüssig und die letzte Stelle im CRON ist nicht das Jahr, sondern der Wochentag.

                            1 Reply Last reply Reply Quote 0
                            • S
                              Supermicha last edited by

                              Den Timeout brauche ich, weil sonst das der CRON bei mir nicht aktualisiert wird.. wahrscheinlich wird der Datenpunkt schneller eingelesen als er aktualisiert wird? Ohne Timeout gehts bei mir nicht.. mit klappts wie es soll....

                              stimmt, das mit den Wochentag hatte ich verdrängt... 🙂

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

                                @Supermicha sagte:

                                wahrscheinlich wird der Datenpunkt schneller eingelesen als er aktualisiert wird?

                                Das stimmt, wird er. Deshalb macht man das Einlesen in der Callback-Funktion von setState(), aber das bietet Blockly leider nicht; oder man verwendet eine Variable.

                                1 Reply Last reply Reply Quote 0
                                • liv-in-sky
                                  liv-in-sky @Supermicha last edited by

                                  @Supermicha sagte in Suche "ausfallsicheren" Timer (Blockly):

                                  mein Timer sah bisher so aus...
                                  284c47d8-5f96-4df1-ab96-fcb548b3cb1d-grafik.png

                                  der Hinweis mit dem CRON als Trigger war schon gut.. denke ich..
                                  so wie ich es habe, das der da irgendwo verschachtelt drin ist, wird wohl nicht klappen...

                                  @paul53 ich nutze das aktuell um mein Handyladegerät nach 3 Stunden auszuschalten...
                                  Problem ist nur, wenn ich zwischenzeitlich an meinem ioBroker rumbastel, "vergisst" er auszuschalten...
                                  Oder wenn ich nachts um 1 das Ladegerät anschalte und ioBroker um 3 sein Backup macht, ist der Timer auch futsch...

                                  Ich guck mir dein Blockly jetzt erstmal genauer an

                                  mal ein anderer vorschlag:
                                  mit tasker (wenn android handy) kann man sehr einfach den batteriestand an iobroker übersenden - ich schalte meine wireless station auch nach diesem batterie stand ein und aus - bei hundert wird ausgeschaltet und bei bei kleiner 35% wird das laden eingeschaltet. mit normaler stromversorgung geht das natürlich auch mit entsprechendem script
                                  falls man tasker nicht mag, ginge auch fullybrowser - da bekommt man denn batt stand auch in iobroker.

                                  1 Reply Last reply Reply Quote 0
                                  • S
                                    Supermicha last edited by

                                    So ich hab die Ausfallsichere Variante hingekriegt...
                                    Ich nutze 2 Scripte...

                                    Das Erste läuft immer und schreibt, wenn es getriggert wird, einen Zeitpunkt in einen Datenpunkt und aktiviert Script Nummer 2

                                    Das Zweite vergleicht jetzt jede Minute die aktuelle Zeit mit der Zeit aus dem Datenpunkt (und berechnet die Differenz für VIS-Anzeige) nachdem die Zeit abgelaufen ist, führt es die gewünschte Aktion aus und deaktiviert sich selbst...

                                    Das bleibt endlich auch über einen ioBroker oder Raspi Neustart erhalten.

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

                                    Support us

                                    ioBroker
                                    Community Adapters
                                    Donate

                                    454
                                    Online

                                    31.9k
                                    Users

                                    80.3k
                                    Topics

                                    1.3m
                                    Posts

                                    5
                                    16
                                    965
                                    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