Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. Javascript Problem nach Neustart

NEWS

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    24
    1
    1.3k

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    9.3k

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    14
    1
    2.5k

Javascript Problem nach Neustart

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
javascript
3 Beiträge 2 Kommentatoren 502 Aufrufe 1 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • C Offline
    C Offline
    Chris_78
    schrieb am zuletzt editiert von
    #1

    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

    paul53P 1 Antwort Letzte Antwort
    0
    • C Chris_78

      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

      paul53P Offline
      paul53P Offline
      paul53
      schrieb am zuletzt editiert von
      #2

      @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.

      Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
      Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

      C 1 Antwort Letzte Antwort
      0
      • paul53P paul53

        @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 Offline
        C Offline
        Chris_78
        schrieb am zuletzt editiert von
        #3

        @paul53

        Danke dir. Manchmal sieht man die einfachen Lösungen nicht. :-)

        1 Antwort Letzte Antwort
        0
        Antworten
        • In einem neuen Thema antworten
        Anmelden zum Antworten
        • Älteste zuerst
        • Neuste zuerst
        • Meiste Stimmen


        Support us

        ioBroker
        Community Adapters
        Donate

        747

        Online

        32.5k

        Benutzer

        81.7k

        Themen

        1.3m

        Beiträge
        Community
        Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
        ioBroker Community 2014-2025
        logo
        • Anmelden

        • Du hast noch kein Konto? Registrieren

        • Anmelden oder registrieren, um zu suchen
        • Erster Beitrag
          Letzter Beitrag
        0
        • Home
        • Aktuell
        • Tags
        • Ungelesen 0
        • Kategorien
        • Unreplied
        • Beliebt
        • GitHub
        • Docu
        • Hilfe