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] Abfrage anhand der aktuellen Uhrzeit

NEWS

  • Monatsrückblick Januar/Februar 2026 ist online!
    BluefoxB
    Bluefox
    16
    1
    242

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

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

[GELÖST] Abfrage anhand der aktuellen Uhrzeit

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
9 Beiträge 3 Kommentatoren 2.3k 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.
  • T Offline
    T Offline
    tomdeboom
    schrieb am zuletzt editiert von
    #1

    Hi,

    ich habe da mal eine Frage an die javascript Profis.

    Ich habe folgendes script geschrieben:

    function temp() {
    
        debug = true;
    
        createState('javascript.0.Wetter.Temp_akt', 0);
    
    if (compareTime('00:00', '01:00', "between", null)) {
      setState("javascript.0.Wetter.Temp_akt"/*Temp_akt*/, getState("daswetter.0.hourly.0d.0h.Temperature").val, true);
    }
    if (compareTime('01:00', '02:00', "between", null)) {
      setState("javascript.0.Wetter.Temp_akt"/*Temp_akt*/, getState("daswetter.0.hourly.0d.1h.Temperature").val, true);
    }
    if (compareTime('02:00', '03:00', "between", null)) {
      setState("javascript.0.Wetter.Temp_akt"/*Temp_akt*/, getState("daswetter.0.hourly.0d.2h.Temperature").val, true);
    }
    if (compareTime('03:00', '04:00', "between", null)) {
      setState("javascript.0.Wetter.Temp_akt"/*Temp_akt*/, getState("daswetter.0.hourly.0d.3h.Temperature").val, true);
    }
    if (compareTime('04:00', '05:00', "between", null)) {
      setState("javascript.0.Wetter.Temp_akt"/*Temp_akt*/, getState("daswetter.0.hourly.0d.4h.Temperature").val, true);
    }
    if (compareTime('05:00', '06:00', "between", null)) {
      setState("javascript.0.Wetter.Temp_akt"/*Temp_akt*/, getState("daswetter.0.hourly.0d.5h.Temperature").val, true);
    }
    if (compareTime('06:00', '07:00', "between", null)) {
      setState("javascript.0.Wetter.Temp_akt"/*Temp_akt*/, getState("daswetter.0.hourly.0d.6h.Temperature").val, true);
    }
    if (compareTime('07:00', '08:00', "between", null)) {
      setState("javascript.0.Wetter.Temp_akt"/*Temp_akt*/, getState("daswetter.0.hourly.0d.7h.Temperature").val, true);
    }
    if (compareTime('08:00', '09:00', "between", null)) {
      setState("javascript.0.Wetter.Temp_akt"/*Temp_akt*/, getState("daswetter.0.hourly.0d.8h.Temperature").val, true);
    }
    if (compareTime('09:00', '10:00', "between", null)) {
      setState("javascript.0.Wetter.Temp_akt"/*Temp_akt*/, getState("daswetter.0.hourly.0d.2h.Temperature").val, true);
    }
    if (compareTime('10:00', '11:00', "between", null)) {
      setState("javascript.0.Wetter.Temp_akt"/*Temp_akt*/, getState("daswetter.0.hourly.0d.10h.Temperature").val, true);
    }
    if (compareTime('11:00', '12:00', "between", null)) {
      setState("javascript.0.Wetter.Temp_akt"/*Temp_akt*/, getState("daswetter.0.hourly.0d.11h.Temperature").val, true);
    }
    if (compareTime('12:00', '13:00', "between", null)) {
      setState("javascript.0.Wetter.Temp_akt"/*Temp_akt*/, getState("daswetter.0.hourly.0d.12h.Temperature").val, true);
    }
    if (compareTime('13:00', '14:00', "between", null)) {
      setState("javascript.0.Wetter.Temp_akt"/*Temp_akt*/, getState("daswetter.0.hourly.0d.13h.Temperature").val, true);
    }
    if (compareTime('14:00', '15:00', "between", null)) {
      setState("javascript.0.Wetter.Temp_akt"/*Temp_akt*/, getState("daswetter.0.hourly.0d.14h.Temperature").val, true);
    }
    if (compareTime('15:00', '16:00', "between", null)) {
      setState("javascript.0.Wetter.Temp_akt"/*Temp_akt*/, getState("daswetter.0.hourly.0d.15h.Temperature").val, true);
    }
    if (compareTime('16:00', '17:00', "between", null)) {
      setState("javascript.0.Wetter.Temp_akt"/*Temp_akt*/, getState("daswetter.0.hourly.0d.16h.Temperature").val, true);
    }
    if (compareTime('17:00', '18:00', "between", null)) {
      setState("javascript.0.Wetter.Temp_akt"/*Temp_akt*/, getState("daswetter.0.hourly.0d.17h.Temperature").val, true);
    }
    if (compareTime('18:00', '19:00', "between", null)) {
      setState("javascript.0.Wetter.Temp_akt"/*Temp_akt*/, getState("daswetter.0.hourly.0d.18h.Temperature").val, true);
    }
    if (compareTime('19:00', '20:00', "between", null)) {
      setState("javascript.0.Wetter.Temp_akt"/*Temp_akt*/, getState("daswetter.0.hourly.0d.19h.Temperature").val, true);
    }
    if (compareTime('20:00', '21:00', "between", null)) {
      setState("javascript.0.Wetter.Temp_akt"/*Temp_akt*/, getState("daswetter.0.hourly.0d.20h.Temperature").val, true);
    }
    if (compareTime('21:00', '22:00', "between", null)) {
      setState("javascript.0.Wetter.Temp_akt"/*Temp_akt*/, getState("daswetter.0.hourly.0d.21h.Temperature").val, true);
    }
    if (compareTime('22:00', '23:00', "between", null)) {
      setState("javascript.0.Wetter.Temp_akt"/*Temp_akt*/, getState("daswetter.0.hourly.0d.22h.Temperature").val, true);
    }
    if (compareTime('23:00', '24:00', "between", null)) {
      setState("javascript.0.Wetter.Temp_akt"/*Temp_akt*/, getState("daswetter.0.hourly.0d.23h.Temperature").val, true);
    }
    
    }  // Ende temp()
    
    schedule('* * * * *', temp);
    

    Ziel des script ist es, mit der aktuellen Uhrzeit das passende state "Temperature" zu finden und in mein neues state "Temp_akt" zu schreiben.

    Nun meine Frage, kann mann das vereinfachen bzw. anders Lösen?

    Bin noch ganz am Anfang was javascript betrifft… ;-)

    Gruß,

    Tom

    <size size="85">CCU2 | QNAP TVS-473 64GB | VM Lubunto iBroker | Echo 2\. Gen. | LAN/Wifi | 18 Geräte</size>

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

      Der ID-String für die Quelle kann aus der Stunde der aktuellen Uhrzeit und einem String davor und einem danach gebildet werden.

      const start = 'daswetter.0.hourly.0d.';
      const end = 'h.Temperature';
      
      createState('javascript.0.Wetter.Temp_akt', 0, {type: 'number', unit: '°C'});
      
      function temp() {
         var hour = new Date().getHours();
         setState("javascript.0.Wetter.Temp_akt", getState(start + hour + end).val, true);
      }
      
      schedule('* * * * *', temp);  // Weshalb jede Minute ?
      
      

      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
      • T Offline
        T Offline
        tomdeboom
        schrieb am zuletzt editiert von
        #3

        Guten Morgen Paul,

        vielen lieben Dank für die tolle Unterstützung!

        Das kann ich noch für viele Abfragen nutzen und ich habe wieder was neues gelernt. :D

        Die Abfrage im Minutentakt hatte ich nur aus Testzwecken so drin. ;)

        Was ich noch nicht so ganz bei cron verstehe, ist der Start zu jeder volle Stunde, also 14, 15 und 16:00Uhr, ist das dann "0 * * * *" oder sagt das dann nur führe es jede Stunde nach cron Start aus?

        Also nochmals vielen Dank für die Unterstützung.

        Schöne Ostern noch und Gruß,

        Tom

        <size size="85">CCU2 | QNAP TVS-473 64GB | VM Lubunto iBroker | Echo 2\. Gen. | LAN/Wifi | 18 Geräte</size>

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

          @tomdeboom:

          ist der Start zu jeder volle Stunde, also 14, 15 und 16:00Uhr, ist das dann "0 * * * *" `
          Ja. Ich würde allerdings die Abfrage eine Minute später machen: "1 * * * *".

          Setze bitte das Thema auf gelöst (im Betreff des ersten Beitrags).

          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
          • T Offline
            T Offline
            tomdeboom
            schrieb am zuletzt editiert von
            #5

            Danke

            Gruß,

            Tom

            <size size="85">CCU2 | QNAP TVS-473 64GB | VM Lubunto iBroker | Echo 2\. Gen. | LAN/Wifi | 18 Geräte</size>

            1 Antwort Letzte Antwort
            0
            • T Offline
              T Offline
              tomdeboom
              schrieb am zuletzt editiert von
              #6

              Hallo Paul,

              eine Frage hätte ich noch?

              Was bedeutet diese Fehlermeldung, so ganz werde ich daraus nicht schlau?
              5104_warn.jpg

              Gruß,

              Tom

              <size size="85">CCU2 | QNAP TVS-473 64GB | VM Lubunto iBroker | Echo 2\. Gen. | LAN/Wifi | 18 Geräte</size>

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

                Der Quell-Datenpunkt liefert offenbar die Temperatur als String. Dann ergänze bitte um parseFloat().

                   setState("javascript.0.Wetter.Temp_akt", parseFloat(getState(start + hour + end).val), true);
                
                

                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
                • T Offline
                  T Offline
                  tomdeboom
                  schrieb am zuletzt editiert von
                  #8

                  Hallo Paul,

                  danke für die schnelle hilfe, ich hatte das zwischen durch schon gefunden, aber die zweite Klammer falsch gesetzt… :lol:

                  Jetzt funktioniert es.

                  Danke und Gruß,

                  Tom

                  <size size="85">CCU2 | QNAP TVS-473 64GB | VM Lubunto iBroker | Echo 2\. Gen. | LAN/Wifi | 18 Geräte</size>

                  1 Antwort Letzte Antwort
                  0
                  • MicM Offline
                    MicM Offline
                    Mic
                    Developer
                    schrieb am zuletzt editiert von
                    #9

                    Danke für das Skript, ich habe auf Basis der Idee folgendes fertige Script erstellt:

                    viewtopic.php?f=30&t=13795&p=189246#p189246

                    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

                    589

                    Online

                    32.7k

                    Benutzer

                    82.5k

                    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