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. Kombi aus compareTime() und einem Objekt Zeichenkette

NEWS

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

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

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.4k

Kombi aus compareTime() und einem Objekt Zeichenkette

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
4 Beiträge 2 Kommentatoren 572 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.
  • ? Offline
    ? Offline
    Ein ehemaliger Benutzer
    schrieb am zuletzt editiert von
    #1

    Hallo zusammen,

    ich schraube gerade an einem Script für eine automatisch Bewässerung. Über das "jqui - ctrl - Input Datetime"-Widget schreibe ich einen String (Format HH:MM:SS) in ein Zeichenketten-Objekt unter javascript.0. Das funktioniert…

    Nun soll ein Javascript mit Cron-Trigger jede Minute laufen und die eingetragene Zeit mit der aktuellen Zeit vergleichen. Folgende simple Idee funktioniert nicht:

    schedule (
        "* * * * *",
        function ()
        {
            if (getState("javascript.0.Bewässerung.Bewässerung1Button").val === true) {
                log("Bewässerung 1 aktiv");
                var startTime1 = getState("javascript.0.Bewässerung.Bewässerung1Von").val;
                if(compareTime(startTime1, null, "==")) {
                    log("Bewässerung 1 gestartet");
                    //pushOver("Bewässerung Garten gestartet", "ioBroker Meldung", 0);
                }
            }
        }
    );
    
    

    Der entsprechende Logikwert "true" im Objekt "javascript.0.Bewässerung.Bewässerung1Button" ist natürlich gesetzt.

    Könnte mir jemand auf die Sprünge helfen? Mit formatDate() und getDateObject() habe ich auch schon einige Variationen ausprobiert, aber nichts funktionierte.

    Viele Grüße

    Detlef

    1 Antwort Letzte Antwort
    0
    • ? Offline
      ? Offline
      Ein ehemaliger Benutzer
      schrieb am zuletzt editiert von
      #2

      Ich habe es jetzt zum Laufen gebracht. Da kräuseln sich mir zwar die Nackenhaare, weil ein Date-Objekt zum String wird, aber es läuft erstmal :lol:

      /*
      **
      ** Bewässerung des Gartens
      **
      */
      
      function pushOver (text, titel, prio) {
          sendTo("pushover", {
              message: text,
              title: titel,
              priority: prio
          });
      }
      
      schedule (
          "* * * * *",
          function ()
          {
      
              var actTime = formatDate(new Date(), "hh:mm").toString();
      
              if (getState("javascript.0.Bewässerung.Bewässerung1Button").val === true) {
                  var startTime1 = formatDate(getDateObject(getState("javascript.0.Bewässerung.Bewässerung1Von").val), "hh:mm").toString();
                  var endTime1   = formatDate(getDateObject(getState("javascript.0.Bewässerung.Bewässerung1Bis").val), "hh:mm").toString();
                  if (actTime == startTime1) {
                      setState("hm-rpc.0.OEQ0696714.3.STATE", true);
                      pushOver("Garten: Bewässerungsprogramm 1 gestartet", "ioBroker Meldung", 0);
                  }
                  if (actTime == endTime1) {
                      setState("hm-rpc.0.OEQ0696714.3.STATE", false);
                      pushOver("Garten: Bewässerungsprogramm 1 beendet", "ioBroker Meldung", 0);
                  }
              }
      
              if (getState("javascript.0.Bewässerung.Bewässerung2Button").val === true) {
                  var startTime2 = formatDate(getDateObject(getState("javascript.0.Bewässerung.Bewässerung2Von").val), "hh:mm").toString();
                  var endTime2   = formatDate(getDateObject(getState("javascript.0.Bewässerung.Bewässerung2Bis").val), "hh:mm").toString();
                  if (actTime == startTime2) {
                      setState("hm-rpc.0.OEQ0696714.3.STATE", true);
                      pushOver("Garten: Bewässerungsprogramm 2 gestartet", "ioBroker Meldung", 0);
                  }
                  if (actTime == endTime2) {
                      setState("hm-rpc.0.OEQ0696714.3.STATE", false);
                      pushOver("Garten: Bewässerungsprogramm 2 beendet", "ioBroker Meldung", 0);
                  }
              }
      
          }
      );
      
      
      1 Antwort Letzte Antwort
      0
      • cashC Offline
        cashC Offline
        cash
        Most Active
        schrieb am zuletzt editiert von
        #3

        Warum prüfst Du jede Minute?

        Wenn Du schon in das Feld eine Uhrzeit reinschreibst dann nimm die doch als schedule wo die Bewässerung starten muss… Du musst dann nur auf die Änderung vom Objekt reagieren und den Schedule neu stellen falls Du die Zeit änderst.

        ? 1 Antwort Letzte Antwort
        0
        • cashC cash

          Warum prüfst Du jede Minute?

          Wenn Du schon in das Feld eine Uhrzeit reinschreibst dann nimm die doch als schedule wo die Bewässerung starten muss… Du musst dann nur auf die Änderung vom Objekt reagieren und den Schedule neu stellen falls Du die Zeit änderst.

          ? Offline
          ? Offline
          Ein ehemaliger Benutzer
          schrieb am zuletzt editiert von
          #4

          @cash
          Auch wenn der Post schon relativ alt ist: Danke für die Info! Ich werde das Script jetzt mal umschreiben. Mit der Zeit lernt man ja die Tricks :blush:

          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

          677

          Online

          32.6k

          Benutzer

          82.3k

          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