Weiter zum Inhalt
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Hell
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dunkel
  • 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

  • Neuer ioBroker-Blog online: Monatsrückblick März/April 2026
    BluefoxB
    Bluefox
    2
    1
    37

  • Verwendung von KI bitte immer deutlich kennzeichnen
    HomoranH
    Homoran
    7
    1
    106

  • Monatsrückblick Januar/Februar 2026 ist online!
    BluefoxB
    Bluefox
    18
    1
    847

[GELÖST] Abfrage anhand der aktuellen Uhrzeit

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
9 Beiträge 3 Kommentatoren 2.4k 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

                    Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.

                    Hast du es satt, bei jedem Besuch durch die gleichen Beiträge zu scrollen? Wenn du dich für ein Konto anmeldest, kommst du immer genau dorthin zurück, wo du zuvor warst, und kannst dich über neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und Beiträge positiv bewerten, um anderen Community-Mitgliedern deine Wertschätzung zu zeigen.

                    Mit deinem Input könnte dieser Beitrag noch besser werden 💗

                    Registrieren Anmelden
                    Antworten
                    • In einem neuen Thema antworten
                    Anmelden zum Antworten
                    • Älteste zuerst
                    • Neuste zuerst
                    • Meiste Stimmen


                    Support us

                    ioBroker
                    Community Adapters
                    Donate

                    498

                    Online

                    32.8k

                    Benutzer

                    82.7k

                    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