Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Javascript Problem nach Neustart

    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

    Javascript Problem nach Neustart

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

      Hi zusammen,

      ich habe ein paar Scripte die zeitgesteuert z.B. die Rollos steuern.

      Beispiel:

      function Wert_Stunden(x) {
          return x.slice(0, 2);
      }
      
      function Wert_Minuten(x) {
          return x.slice(3, 5);
      }
      
      function unSchedule(schedule) {
          if (schedule) {
              clearSchedule(schedule); 
              schedule = null;
          }
      }
      on({id: new RegExp('javascript\\.0\\.Rollo\\.Rollo_Schlafzimmer_Timer1_Aktiv' + "|" + 'javascript\\.0\\.Rollo\\.Rollo_Schlafzimmer_Timer1_Modus' + "|" + 'javascript\\.0\\.Rollo\\.Rollo_Schlafzimmer_Timer1_Uhrzeit' + "|" + 'javascript\\.0\\.System\\.Script_Restarter'), change: "ne"}, function (obj) {
          if (getState("javascript.0.Rollo.Rollo_Schlafzimmer_Timer1_Aktiv").val == 1) {
              var uhrzeit = getState("javascript.0.Rollo.Rollo_Schlafzimmer_Timer1_Uhrzeit").val;
              unSchedule(Cron1_Rollo_Schlafzimmer);
              Cron1_Rollo_Schlafzimmer = schedule(Wert_Minuten(uhrzeit) + ' ' + Wert_Stunden(uhrzeit) + ' * * *', function () {
                  if (getState("javascript.0.Rollo.Rollo_Schlafzimmer_Timer1_Modus").val == 'rauf') {
                      setState("zwave2.0.Node_011.Multilevel_Switch.targetValue", 0);
                  } else if (getState("javascript.0.Rollo.Rollo_Schlafzimmer_Timer1_Modus").val == 'runter') {
                      setState("zwave2.0.Node_011.Multilevel_Switch.targetValue", 99);
                  }
              });
          } else {
              unSchedule(Cron1_Rollo_Schlafzimmer);
          }
      });
      

      Die Trigger sind Datenpunkte die per VIS gesetzt werden.
      Das Problem ist, dass das Skript nach einem ioBroker oder Javascript-Adapter Neustart nicht mehr getriggert wird
      (erst wieder wenn ich einen der Trigger per VIS verändere).
      Als Behelfslösung habe ich mir einen kleines Miniscript erzeugt, dass ich nach Neustart einmal ausführe (Trigger: Script_Restarter).
      Dieses Mini-Script habe ich überall in den problematischen Scripten als Trigger hinzugefügt. Manchmal vergesse ich aber nach einem
      Neustart das Script zu starten. Dann funktioniert natürlich "nichts"...

      Bin ich der einzige der solche Probleme hat? Hat jemand eine elegantere Lösung für das Problem?
      Ich bin auch offen für allgemeine Script-Opimierungen. 🙂

      Gruß
      Christian

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

        @Chris_78 sagte:

        dass das Skript nach einem ioBroker oder Javascript-Adapter Neustart nicht mehr getriggert wird

        Du meinst, dass schedule() nicht mehr ausgeführt wird ? Das liegt daran, dass schedule() nur innerhalb des Triggers erzeugt wird und nicht beim Script start. Verwende eine Funktion, die bei Script start und im Trigger aufgerufen wird.

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

          @paul53

          Danke dir. Manchmal sieht man die einfachen Lösungen nicht. 🙂

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

          Support us

          ioBroker
          Community Adapters
          Donate

          554
          Online

          31.8k
          Users

          80.0k
          Topics

          1.3m
          Posts

          javascript
          2
          3
          388
          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