Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Heizungssteuerung zeitabhängig

    NEWS

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    Heizungssteuerung zeitabhängig

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

      Möchte in einem Skript abfragen ob eine Variable einen Wert 1 hat und dies dem angegebenen Zeitfenster entspricht.

      Leider funktioniert es nicht, denke mal getState(Ka).val === 1 passt nicht aber komm nicht weiter. Hat einer ne Idee?

      //schreibe den Wert in die variable Ka
      
      var Ka = getState("javascript.1.Heizung.Temperaturkategorie").val;
      log("---> Temperaturkategorie " + Ka,"info");
      
      //frage ab ob der Wert Ka dem Wert 1 entspricht und im Zeitfenster liegt
      
      if (getState(Ka).val === 1 && isTimeInRange('21:00:00', '24:00:00')) 
              setState('javascript.1.Heizung.Willy_Soll"/*Heizung.Willy_Soll*/', willye);
              log("---> Willy Soll gesetzt (21-24 Uhr) auf " + willyg + " ° Grad","info"); 
      
      1 Reply Last reply Reply Quote 0
      • B
        Beatz last edited by

        Du hast die getState Abfrage doppelt. Und benutzt ein Gleichheitszeichen zu viel. Verwende:

        If (Ka == 1 && isTimeInRange(…))

        Gesendet von meinem Nexus 5 mit Tapatalk

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

          //schreibe den Wert in die variable Ka
          
          var Ka = getState("javascript.1.Heizung.Temperaturkategorie").val;
          log("---> Temperaturkategorie " + Ka);
          
          //frage ab ob der Wert Ka dem Wert 1 entspricht und im Zeitfenster liegt
          
          if (Ka == 1 && isTimeInRange('21:00:00', '24:00:00')) 
                  setState('javascript.1.Heizung.Willy_Soll'/*Heizung.Willy_Soll*/, willye);
                  log("---> Willy Soll gesetzt (21-24 Uhr) auf " + willyg + " ° Grad","info");
          ...
          
          

          –----------------

          Fehler:

          getState(Ka).val === 1

          Muss

          Ka == 1

          Mann kann auch Ka === 1 lassen, wenn du sicher bist, dass Ka den Typ "number" hat.

          –---------------

          Fehler:

          setState('javascript.1.Heizung.Willy_Soll"/Heizung.Willy_Soll/', willye);

          Muss

          setState('javascript.1.Heizung.Willy_Soll'/Heizung.Willy_Soll/, willye);

          Es wird versucht die Variable 'javascript.1.Heizung.Willy_Soll"/Heizung.Willy_Soll/' zu setzen, du willst aber vermutlich 'javascript.1.Heizung.Willy_Soll'

          1 Reply Last reply Reply Quote 0
          • blauholsten
            blauholsten Developer last edited by

            Dem kann ich nur zu stimmen.

            Eine Anfänger Frage… Macht es einen unterschied, ob man' oder " benutzt? Ich denke nicht. Oder?

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

              @blauholsten:

              Dem kann ich nur zu stimmen.

              Eine Anfänger Frage… Macht es einen unterschied, ob man' oder " benutzt? Ich denke nicht. Oder? `
              Kein Unterschied.

              1 Reply Last reply Reply Quote 0
              • H
                HKF8770 last edited by

                Danke für die Infos.

                hab nun folgende Problem:

                Mein Skript sieht so aus

                 if (isTimeInRange('21:00:00', '24:00:00'));
                            setState('javascript.1.Heizung.Willy_Soll', willyg);
                            log("---> Willy Soll gesetzt (21-24 Uhr) auf " + willyg + " ° Grad","info"); 
                

                Ich erhalte aber im Log den folgenden Fehler. IsTime gane sei nicht definiert, Was mach ich da falsch?

                javascript.1	2015-10-16 23:01:00	error	uncaught exception: isTimeInRange is not defined
                

                Nehme ich die If Bedinung raus dann gehts.

                   setState('javascript.1.Heizung.Willy_Soll', willyg);
                            log("---> Willy Soll gesetzt (21-24 Uhr) auf " + willyg + " ° Grad","info"); 
                

                Sprich so wie ich es verstehe kann er die Zeitraumsangabe von bis nicht lesen - zuordnen.

                1 Reply Last reply Reply Quote 0
                • blauholsten
                  blauholsten Developer last edited by

                  Ich denke du hast isTimeInRange nicht als variable bzw Funktion deklarierte.

                  Schau dir das an…http://forum.iobroker.de/viewtopic.php? ... imeinrange

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

                  Support us

                  ioBroker
                  Community Adapters
                  Donate

                  945
                  Online

                  31.7k
                  Users

                  79.7k
                  Topics

                  1.3m
                  Posts

                  4
                  7
                  1384
                  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