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. [Gelöst] Frage zu compareTime

NEWS

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    17
    1
    2.1k

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    13
    1
    936

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.2k

[Gelöst] Frage zu compareTime

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
7 Beiträge 5 Kommentatoren 3.6k Aufrufe
  • Ä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.
  • PeoplesP Offline
    PeoplesP Offline
    Peoples
    schrieb am zuletzt editiert von
    #1

    Hi,

    ich habe mal eine Frage zu der Verwendung von compareTime:

    Wenn ich zwischen 20 Uhr Abends und 9 Uhr Früh den "Schlafmodus" via Tabletbutton einschalten möchte funktioniert das von 20 - 24 Uhr, jedoch nicht mehr von 00:00 - 9 Uhr. Aktuell nutze ich einen Workaround doch begreifen warum das nicht geht oder was ich falsch mache will ich nicht so ganz.

    Hier mal der Codeschnippsel:

    // Schlafen nacht aktiv schalten
    on("javascript.0.Schlafmodus.Schlafmodus_Status", function(dp) {
        if(getState("javascript.0.Schlafmodus.Schlafmodus_Status").val && compareTime("20:00", "09:00", "between") && getState("javascript.0.Automation.Automatikfunktioen").val) 
        {
         sprachausgabe("SchlafmodusNachtEin");
    
         setStateDelayed("hm-rpc.0.NEQXXXX.4.MANU_MODE", 18,  1000);
         setStateDelayed("hm-rpc.0.MEQXXXX.4.MANU_MODE", 18,  2000);
         setStateDelayed("hm-rpc.0.NEQXXXX.4.MANU_MODE", 4.5,  3000);
         setStateDelayed("hm-rpc.0.MEQXXXX.4.MANU_MODE", 19.5,  4000);
         setStateDelayed("hm-rpc.0.MEQXXXX.4.MANU_MODE", 19.5,  5000);
         setStateDelayed("hm-rpc.0.MEQXXXX.4.MANU_MODE", 19.5,  6000);
         setStateDelayed("hm-rpc.0.MEQXXXX.4.MANU_MODE", 19.5,  7000);
         setStateDelayed("hm-rpc.0.MEQXXXX.4.MANU_MODE", 19.5,  8000);
    
         setStateDelayed("hm-rpc.0.NEQXXXX.2.MANU_MODE", 19.5,  9000);
    
         log("Schlafmodus Nachts eingeschalten");
        }
    });
    

    Wenn ich es so mache funktionierts:

    (compareTime("20:00", "24:00", "between") || compareTime("00:00", "09:00", "between"))
    

    Vielleicht kann mir hier mal jemand auf die Sprünge helfen.

    Merci

    Peoples

    Ich beantworte keine Fragen zu Themen via PN

    1 Antwort Letzte Antwort
    0
    • bahnuhrB Offline
      bahnuhrB Offline
      bahnuhr
      Forum Testing Most Active
      schrieb am zuletzt editiert von
      #2

      compareTime kenne ich nicht.

      Ich mache dies mit dem Script von der iobroker seite:

      http://www.iobroker.net/docu/?page_id=3708&lang=de

      Dieses habe ich als globales Script bei mir hinterlegt.

      In meinen anderen Scripten prüfe ich dann ob das Script bei Ausführung innerhalb der Zeit ist:

      var Zeit1 = isTimeInRange('06:00:00', '21:00:00');

      Wenn wir innerhalb der Zeit sind, dann true.

      Also in deinem Fall:

      o.g. Script als global hinterlegen.

      Dann in deinem Script:

      var Zeit1 = isTimeInRange('09:00:00', '20:00:00');

      Wenn das Ergebnis dann false, dann bist du in deinem Zeitraum 20-09 Uhr.

      mfg


      Wenn ich helfen konnte, dann Daumen hoch (Pfeil nach oben)!
      Danke.
      gute Forenbeiträge: https://forum.iobroker.net/topic/51555/hinweise-f%C3%BCr-gute-forenbeitr%C3%A4ge
      ScreenToGif :https://www.screentogif.com/downloads.html

      1 Antwort Letzte Antwort
      0
      • P Offline
        P Offline
        pix
        schrieb am zuletzt editiert von
        #3

        Hallo,

        ich mache das auch wie bahnuhr mit isTimeInRange.

        Hast du den Tippfehler in deinem Code gesehen?

        Automatikfunktioen
        

        Vielleicht bringt der etwas durcheinander? 8-)

        Gruß´

        Pix

        EDIT:

        Du kannst die on()-Funktion etwas abkürzen:

        // Schlafen nacht aktiv schalten
        on("javascript.0.Schlafmodus.Schlafmodus_Status", function(dp) {
            if(dp.state.val && compareTime("20:00", "09:00", "between") && getState("javascript.0.Automation.Automatikfunktioen").val) 
            {
        
        

        ioBroker auf Ubuntu in Proxmox (früher Mac mini (bis OS X 10.12.6 Sierra), VIS via iOS; angeschlossen: Homematic CCU2, Homepilot 1, ConBee II, einige Wemos, Sonos, Unifi CK+Protect, Homekit, Homebridge; KEIN blockly! Github-Profil

        1 Antwort Letzte Antwort
        0
        • paul53P Offline
          paul53P Offline
          paul53
          schrieb am zuletzt editiert von
          #4

          @peoples:

          Wenn ich zwischen 20 Uhr Abends und 9 Uhr Früh den "Schlafmodus" via Tabletbutton einschalten möchte funktioniert das von 20 - 24 Uhr, jedoch nicht mehr von 00:00 - 9 Uhr. `
          Der Fehler wurde im JS-Adapter korrigiert, aber noch nicht in der npm-Version. Installiere bitte den JS-Adapter von github !

          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

          1 Antwort Letzte Antwort
          0
          • ldittmarL Offline
            ldittmarL Offline
            ldittmar
            Developer
            schrieb am zuletzt editiert von
            #5

            Ich nutze auch die compareTime Funktion und finde es echt cool, denn man kann auch sowas wie compareTime("dusk", "dawn", "between") schreiben… aber auch ich hab das Problem, dass ab 00:00 Uhr nichts mehr geht. Das scheint ein Bug zu sein. Ich schaue mir mal die Funktion compareTime an und melde mich wenn es gefixt ist. ;)

            Grüße,

            ldittmar

            Edit: Da war jemand schneller 8-) - ist gefixt!

            1 Antwort Letzte Antwort
            0
            • PeoplesP Offline
              PeoplesP Offline
              Peoples
              schrieb am zuletzt editiert von
              #6

              Ihr seid die "Wucht in Dosen"!

              Habe das Update von Github installiert und werde heute Abend sehen ob alles klappt.

              Danke schon mal hierfür.

              @Pix

              Der Schreibfehler hat keine Fehler verursacht, da ich Ihn konsequent überall in jedem script gemacht habe :lol:

              Und den Tipp mit dem "kürzen" habe ich auch gleich umgesetzt.

              Auch hierfür Danke

              Ich beantworte keine Fragen zu Themen via PN

              1 Antwort Letzte Antwort
              0
              • paul53P Offline
                paul53P Offline
                paul53
                schrieb am zuletzt editiert von
                #7

                @bahnuhr:

                Dann in deinem Script:

                var Zeit1 = isTimeInRange('09:00:00', '20:00:00');

                Wenn das Ergebnis dann false, dann bist du in deinem Zeitraum 20-09 Uhr. `
                Diese Methode funktioniert auch mit dem nicht korrigierten compareTime()

                    if(getState("javascript.0.Schlafmodus.Schlafmodus_Status").val && !compareTime("09:00", "20:00", "between") && getState("javascript.0.Automation.Automatikfunktioen").val)
                
                

                oder

                    if(getState("javascript.0.Schlafmodus.Schlafmodus_Status").val && compareTime("09:00", "20:00", "not between") && getState("javascript.0.Automation.Automatikfunktioen").val)
                
                

                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

                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

                405

                Online

                32.6k

                Benutzer

                82.2k

                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