Skip to content
  • Home
  • Recent
  • Tags
  • 0 Unread 0
  • Categories
  • Unreplied
  • Popular
  • 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

  • Default (No Skin)
  • No Skin
Collapse
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
    5
    1
    112

  • Verwendung von KI bitte immer deutlich kennzeichnen
    HomoranH
    Homoran
    8
    1
    154

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

[GELÖST] Abfrage anhand der aktuellen Uhrzeit

Scheduled Pinned Locked Moved Skripten / Logik
9 Posts 3 Posters 2.4k Views
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • T Offline
    T Offline
    tomdeboom
    wrote on last edited by
    #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 Reply Last reply
    0
    • paul53P Offline
      paul53P Offline
      paul53
      wrote on last edited by
      #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 Reply Last reply
      0
      • T Offline
        T Offline
        tomdeboom
        wrote on last edited by
        #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 Reply Last reply
        0
        • paul53P Offline
          paul53P Offline
          paul53
          wrote on last edited by
          #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 Reply Last reply
          0
          • T Offline
            T Offline
            tomdeboom
            wrote on last edited by
            #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 Reply Last reply
            0
            • T Offline
              T Offline
              tomdeboom
              wrote on last edited by
              #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 Reply Last reply
              0
              • paul53P Offline
                paul53P Offline
                paul53
                wrote on last edited by
                #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 Reply Last reply
                0
                • T Offline
                  T Offline
                  tomdeboom
                  wrote on last edited by
                  #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 Reply Last reply
                  0
                  • MicM Offline
                    MicM Offline
                    Mic
                    Developer
                    wrote on last edited by
                    #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 Reply Last reply
                    0

                    Hello! It looks like you're interested in this conversation, but you don't have an account yet.

                    Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.

                    With your input, this post could be even better 💗

                    Register Login
                    Reply
                    • Reply as topic
                    Log in to reply
                    • Oldest to Newest
                    • Newest to Oldest
                    • Most Votes


                    Support us

                    ioBroker
                    Community Adapters
                    Donate

                    510

                    Online

                    32.8k

                    Users

                    82.7k

                    Topics

                    1.3m

                    Posts
                    Community
                    Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                    ioBroker Community 2014-2025
                    logo
                    • Login

                    • Don't have an account? Register

                    • Login or register to search.
                    • First post
                      Last post
                    0
                    • Home
                    • Recent
                    • Tags
                    • Unread 0
                    • Categories
                    • Unreplied
                    • Popular
                    • GitHub
                    • Docu
                    • Hilfe