Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Script zum Schalten eines HM Aktors zu verschiedenen Zeiten geht nicht…

    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

    Script zum Schalten eines HM Aktors zu verschiedenen Zeiten geht nicht…

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

      Liebe Leute,

      anbei ein Script um unsere Weihnachtsbeleuchtung gesteuert ein und aus zu schalten - die ersten beiden Teile funktionieren, nur seit ich den Teil "EIN bei Weckzeit" drinnen hab, bleibt JavaScript komplett hängen und kein Script läuft mehr - reload JavaScript und vorher dieses Script deaktivieren und es gehen die anderen Scripts wieder…

      // Zuordnung Klartextnamen - Datenpunkte
      var SteckdoseGartenhuetteState = 'hm-rpc.0.LEQ1319363.2.STATE';
      
      // EIN bei Dämmerung
      on ({astro: "goldenHour", shift: 0}, function () { // shift bleibt für spätere Aktionen drinnen, aber auf 0
          setState (SteckdoseGartenhuetteState, true);
      });
      
      // AUS um 20:15 Uhr
      on ({time: {hour: 20, minute: 15}}, function () {
          setState (SteckdoseGartenhuetteState, false);
      });
      
      // EIN bei Weckzeit
      var weckzeit = getState("hm-rega.0.6791").val;
      weckzeit = weckzeit + ":00";
      weckstunde = weckzeit.slice(0,2);
      weckminute = weckzeit.slice(3,5);
      
      summe = weckstunde + weckminute;
      
      log(weckzeit + " XX " + weckstunde + " XX " + weckminute + " SUMME: " + summe);
      
      on({time: {hour: 'weckstunde', minute: 'weckminute'}}, function () {
          setState (SteckdoseGartenhuetteState, true);
      });
      
      

      Was stimmt da nicht?

      Nicht beirren lassen - ich hab da auch ein paar Versuche mit den Variablen drinnen, die mit dem Schalten nix zu tun haben…

      Grüße

      etv

      1 Reply Last reply Reply Quote 0
      • Jey Cee
        Jey Cee Developer last edited by

        Kommentier doch mal deine slice Funktion aus und mach da konstanten daraus.

        Eventuell solltest du da auch bei der Deklaration der variablen darauf achten das var davor steht sonst sind die global was probleme verursachen kann. Außer du brauchst sie global, dann passt das.

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

          ..danke!

          Ich hab nun das Script Zeile für Zeile aus- und wieder einkommentiert - der Fehler ist, dass weckstunde und weckminute Strings sind und keine Zahl!!

          Das ist das Problem, weil mit

          var testh = 9;
          var testm = 51;
          on({time: {hour: testh, minute: testm}}, function () {
              log("-----------------------------------------------------------------------------------------gelaufen");
          });
          

          funktioniert es!

          D.h. is muss die Strings irgendwie in eine Zahl konvertieren, eigentlich eh logisch, aber darauf bin ich gestern Abend nicht mehr gekommen.

          Grüße

          etv

          1 Reply Last reply Reply Quote 0
          • B
            Beatz last edited by

            Hallo,

            in dieser Zeile ist definitiv ein Fehler:

            on({time: {hour: 'weckstunde', minute: 'weckminute'}}, function () {
            

            weckstunde und weckminute werden durch das Hochkomma als String gewertet. Diese musst Du definitiv weg lassen.

            Versuche es mal mit:

            on({time: {hour: weckstunde, minute: weckminute}}, function () {
            

            Wahlweise kannst Du die beiden Variablen vor dem Aufruf mit parseInt umwandeln. z.B.:

            weckstunde = parseInt(weckstunde);
            
            1 Reply Last reply Reply Quote 0
            • etv
              etv last edited by

              …ja so ist es! Ich hab es mit parseInt umgewandelt und die Hochkomma gelöscht und nun läuft es ohne Probleme, danke dir!

              Ja, JavaScript is noch nicht ganz meines 😄

              Just 4 Info - noch zu JavaScript:

              Nach dem Aufhängen gestern von JavaScript sind mir die Prozesse im Raspi trotz JavaScript restart hängen geblieben.....

              ...hab ich heute gesehen, als die CPU Last auf 70% oben war 😮

              Ich hab die Prozesse mit kill (aber mit -s 64! weil default kill ging nicht) verabschiedet und nun läuft's wieder rund!

              Was ich mich noch frage und im Forum noch nicht gefunden habe, wo ich die gesetzten schedules und subscriptions sehe - wird jedoch ein eigener Thread werden - das wird mehrere interessieren denke ich...

              --> der Link zum neuen Thread in dieser Frage: http://forum.iobroker.net/viewtopic.php … 798#p15334

              Grüße

              etv

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

              Support us

              ioBroker
              Community Adapters
              Donate

              994
              Online

              31.9k
              Users

              80.2k
              Topics

              1.3m
              Posts

              3
              5
              1901
              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