Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Schedules nach Strommausfall off ?!?!

    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

    Schedules nach Strommausfall off ?!?!

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

      Hallo,

      hatte Gestern einen Stromausfall, nach dem starten waren die Timer bzw. die Schedules anscheinent aus.

      denn Abends gingen die Rollläden nicht runter….

      // Licht_Jens_Aus_Abends_SUN-THU
      const idWeckzeitTimerLichtJensAusAbendsSUNTHU = ".Meine_Geraete.P.5_Set.Timer_Licht_Jens_Aus_Abends_SUN-THU"/*Timer_Licht_Jens_Aus_Abends_SUN-THU_*/;  // Weckzeit als String "hh:mm"
      var zeitTimerLichtJensAusAbendsSUNTHU;
      var timerTimerLichtJensAusAbendsSUNTHU = null;
      
      on(idWeckzeitTimerLichtJensAusAbendsSUNTHU, function(dp) {
         zeitTimerLichtJensAusAbendsSUNTHU = getState(".Meine_Geraete.P.5_Set.Timer_Licht_Jens_Aus_Abends_SUN-THU"/*Timer_Licht_Jens_Aus_Abends_SUN-THU_*/).val;  
         log("Geänderte Zeit LichtJensAusAbendsSUNTHU: " + zeitTimerLichtJensAusAbendsSUNTHU);
         var tTimerLichtJensAusAbendsSUNTHU = dp.state.val.split(':');
         clearSchedule(timerTimerLichtJensAusAbendsSUNTHU);
         timerTimerLichtJensAusAbendsSUNTHU = schedule(tTimerLichtJensAusAbendsSUNTHU[1] + ' ' + tTimerLichtJensAusAbendsSUNTHU[0] + ' * * 0,1,2,3,4', function() {
             if (getState(".Meine_Geraete.P.5_Set.Timer_Licht_Jens_Aus_Abends_SUN-THU_Aktiv"/*Timer_Licht_Jens_Aus_Abends_SUN-THU_Aktiv_*/).val === true){
             log(tTimerLichtJensAusAbendsSUNTHU + " Licht Jens Aus");
             setState(".Meine_Geraete.P.3_OG.1_EZ.Lampe_2_Jens"/*Lampe_2_Jens_*/, false);
             }
         });
      });
      
      

      beim letzten mal hatte ich es ebenso, und musste erst alle Zeiten wieder neu setzen, damit die Schedules neu geschreiben werden?

      Wie kann ich das verhindern, bzw. bewirken, dass die beim Neustart auch gleich angelegt werden?

      Danke

      Gruß Jens

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

        Was genau war denn leer? Die States?

        Nutzt du Redis?

        1 Reply Last reply Reply Quote 0
        • A
          AingTii last edited by

          Leer war nichts.

          Alle States waren wie eingestellt.

          Nur anscheinend waren die Schedules durch den Neustart gelöscht und somit fährt der Script ja

          bei der gewünschten Zeit nicht ab.

          Was sind Redis?

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

            Ok also waren die Werte noch da.

            Neustart heißt für mich dann das alle Skripte neu gestartet werden. Die sollten doch die schedules neu setzen …

            Oder was genau meinst du mit „du musstest die schedules selbst neu setzen“?!

            1 Reply Last reply Reply Quote 0
            • A
              AingTii last edited by

              Die Zeiten für die Schedules setzte ich ja mittels Datenpunkt über vis.

              wenn sich diese Ändern, werden die Schedules gelöscht und neu gesetzt mit den aktuellen Werten.

              Anscheinend werden beim Neustart des ioBrokers die Scripte dazu zwar gestartet, aber die alten Schedules

              sind alle weg.

              Da aber die Werte der Datenpunkte sich nicht geändert haben, werden die schedules nicht gelöscht und neu geschrieben.

              Ich hätte gedacht, die Schedules sind ebenfalls fix irgendwo hinterlegt und sind dann nach Stromausfall, Neustart trotzdem

              noch vorhanden. ist aber anscheinend nicht so.

              wie kann ich das denn bewirken, dass die entweder erhalten bleiben beim Neustart von iobroker oder beim Neustart

              alle neu gesetzt werden?

              Danke

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

                Die Wandlung vom Datenpunktwert in ein Schedule muss auch beim Skriptstart erfolgen. Dazu packt man es in eine Funktion, die sowohl vom Datenpunkt-Trigger als auch bei Skriptstart aufgerufen wird.

                // Licht_Jens_Aus_Abends_SUN-THU
                const idWeckzeitTimerLichtJensAusAbendsSUNTHU = ".Meine_Geraete.P.5_Set.Timer_Licht_Jens_Aus_Abends_SUN-THU"/*Timer_Licht_Jens_Aus_Abends_SUN-THU_*/;  // Weckzeit als String "hh:mm"
                var timerTimerLichtJensAusAbendsSUNTHU = null;
                
                function setSched(val) {
                   log("Geänderte Zeit LichtJensAusAbendsSUNTHU: " + val);
                   var tTimerLichtJensAusAbendsSUNTHU = val.split(':');
                   clearSchedule(timerTimerLichtJensAusAbendsSUNTHU);
                   timerTimerLichtJensAusAbendsSUNTHU = schedule(tTimerLichtJensAusAbendsSUNTHU[1] + ' ' + tTimerLichtJensAusAbendsSUNTHU[0] + ' * * 0,1,2,3,4', function() {
                       if (getState(".Meine_Geraete.P.3_OG.1_EZ.Lampe_2_Jens"/*Lampe_2_Jens_*/).val) {
                       log("Licht Jens Aus");
                       setState(".Meine_Geraete.P.3_OG.1_EZ.Lampe_2_Jens"/*Lampe_2_Jens_*/, false);
                       }
                   });
                }
                
                setSched(getState(idWeckzeitTimerLichtJensAusAbendsSUNTHU).val); // Skripstart
                
                on(idWeckzeitTimerLichtJensAusAbendsSUNTHU, function(dp) {
                   setShed(dp.state.val);
                });
                
                1 Reply Last reply Reply Quote 0
                • A
                  AingTii last edited by

                  ok, jetzt wo Du es sagst, klingt es logisch :roll:

                  das probiere ich mal.

                  Ich komme vom Programmieren eher vom Arduino, und meine immer dass es dann ständig wieder ausgeführt wird….

                  Danke, melde mich wenn ich es hinbekommen habe.

                  Gruß jens

                  1 Reply Last reply Reply Quote 0
                  • A
                    AingTii last edited by

                    hat sich unten noch ein kleiner Tippfehler eingeschlichen…

                    setShed(dp.state.val);

                    sollte wohl

                    setSched(dp.state.val);

                    heißen.

                    nun scheint es aber gut zu laufen.

                    Danke schön

                    Gruß Jens

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

                    Support us

                    ioBroker
                    Community Adapters
                    Donate

                    893
                    Online

                    31.8k
                    Users

                    79.9k
                    Topics

                    1.3m
                    Posts

                    3
                    8
                    521
                    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