Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. ioBroker Allgemein
    4. [Gelöst] Das Wetter - Temperatur in 3 Stunden abfragen

    NEWS

    • Monatsrückblick - April 2025

    • Minor js-controller 7.0.7 Update in latest repo

    • Save The Date: ioBroker@Smart Living Forum Solingen, 14.06.

    [Gelöst] Das Wetter - Temperatur in 3 Stunden abfragen

    This topic has been deleted. Only users with topic management privileges can see it.
    • C
      checkitout last edited by checkitout

      Hallo Leute,

      ich steuere meine ganze Heizung für Iobroker mit VIS,
      für die Fussbodenheizung habe ich eine witterungsgeführte Heizkennlinie hinterlegt -
      die Festwertregelung habe ich durch ein HeizkörperThermostat (umgebauter HM-CC-RT-DN verwende davon nur Motor Gehäuse und Batteriefach)+4-fach Funk-Schaltaktor (HM-LC-SW4-WM gibt AUF / ZU Signal für das HeizkörperThermostat über Blockly-Programm)

      Fussbodenheizung-Steuerung.JPG

      so aber jetzt zu meine Frage / Hilfeanfrage.

      ich würde gerne aus dem installierten DASWETTER Adapter die vorgegebene Temp in 3 Stunden wissen,
      (da die Fussbodenheizung ein gewisse Trägheit hat. )
      die Daten stehen da in der Objektaufzählung ja ganz toll mit Day_1/ Hour_x drinnen

      Das Wetter _screenshop.JPG

      Nur wie bekomme ich die immer im 3 Stunden Rhytmus auf einen Variable zb "Temp_in-3H"
      dafür reichen meine Logikkenntnisse einfach nicht aus.
      hätte da bitte jemand eine Idee oder ein CodeSchnippsel für mich !

      Vielen Dank schon mal vorab für jede zielführende Antwort im voraus
      LG Chris

      paul53 1 Reply Last reply Reply Quote 0
      • paul53
        paul53 @checkitout last edited by paul53

        @checkitout sagte: CodeSchnippsel für mich

        const idTemp = '0_userdata.0.Wetter.Temperatur_in_3h';
        
        schedule('1 * * * *', function() {
           let hours3 = Math.ceil(new Date().getHours() / 3) + 1;
           let id = 'daswetter.0.NextHours2.Location_1.Day_1.Hour_' + hours3 + '.temp';
           if(hours3 > 8) id = 'daswetter.0.NextHours2.Location_1.Day_2.Hour_1.temp';
           setState(idTemp, getState(id).val, true);
        });
        

        EDIT: ID für Zeiten ab 22:00 Uhr angepasst.

        SBorg C 2 Replies Last reply Reply Quote 0
        • SBorg
          SBorg Forum Testing Most Active @paul53 last edited by

          @paul53 sagte in Das Wetter - Temperatur in 3 Stunden abfragen:

          let hours3 = Math.ceil(new Date().getHours() / 3) + 1;
          if(hours3 > 8 ) hours3 = 8;

          Ev. verstehe ich die Frage falsch, aber soll bspw. um 12:00 Uhr nicht die erwartete Temperatur für 15:00 Uhr ausgelesen werden? Dann wäre doch eher richtig: ( ? )

          const idTemp = '0_userdata.0.Wetter.Temperatur_in_3h';
          
          schedule('1 * * * *', function() {
             let hours3 = new Date().getHours() + 3;
             if(hours3 > 24) { 
                hours3-=24;
                let id = 'daswetter.0.NextHours2.Location_1.Day_2.Hour_' + hours3 + '.temp';
              } else {
                let id = 'daswetter.0.NextHours2.Location_1.Day_1.Hour_' + hours3 + '.temp';
              }
             setState(idTemp, getState(id).val, true);
          });
          

          ...und jetzt gibt es Haue von @paul53 😇

          paul53 1 Reply Last reply Reply Quote 0
          • paul53
            paul53 @SBorg last edited by paul53

            @sborg sagte: Dann wäre doch eher richtig: ( ? )

            "Das Wetter" liefert die Voraussagen nur im Abstand von 3 Stunden: "Hour_1" für 02:00 Uhr, ... "Hour_8" für 23:00 Uhr. Um 22:01 und 23:01 Uhr sollte man natürlich Werte vom nächsten Tag nehmen. Habe es oben angepasst.

            SBorg 1 Reply Last reply Reply Quote 0
            • SBorg
              SBorg Forum Testing Most Active @paul53 last edited by

              @paul53 Ok, dann würde mir der Quellcode einleuchten und ich verstehe ihn nun auch, aber....

              ...ich habe eben noch mal nachgeschaut, bei mir enthält Hour_1...25 verschiedene Werte, also wahrscheinliche Vorhersagen:
              Hour_1 = 4 °C
              Hour_2 = 3 °C
              Hour_3 = 1 °C
              usw.
              Kann ich für heute Nacht mit einer Drift von ~ +3 °C sogar bestätigen.
              Durch C&P habe ich eine "2" zu viel übernommen:

              daswetter.0.NextHours.Location_1.Day_2.Hour_
              daswetter.0.NextHours.Location_1.Day_1.Hour_
              
              paul53 1 Reply Last reply Reply Quote 0
              • paul53
                paul53 @SBorg last edited by

                @sborg sagte: bei mir enthält Hour_1...25 verschiedene Werte

                Dann liegt es wohl an meiner Konfiguration, dass ich nur alle 3 Stunden Werte habe?

                SBorg 1 Reply Last reply Reply Quote 0
                • SBorg
                  SBorg Forum Testing Most Active @paul53 last edited by

                  @paul53 sagte in Das Wetter - Temperatur in 3 Stunden abfragen:

                  Dann liegt es wohl an meiner Konfiguration, dass ich nur alle 3 Stunden Werte habe?

                  Jupp, du nutzt wahrscheinlich nur "Pfad 2" = alle 3 Stunden.
                  Bei "Pfad 3" steht stündliche Vorhersage

                  Bisserl OT:
                  Was ist eigentlich besser, performanter, "schöner" :
                  Erst die id "falsch" initialisieren und dann ggf. mittels if... korrekt "gerade bügeln" (deine Version)
                  oder mittels if...else - Konstrukt (meine Version) ?

                  paul53 1 Reply Last reply Reply Quote 0
                  • paul53
                    paul53 @SBorg last edited by paul53

                    @sborg sagte: du nutzt wahrscheinlich nur "Pfad 2" = alle 3 Stunden.

                    Ich hatte "Pfad 4" genutzt, der auch nur alle 3 Stunden liefert. Habe jetzt auf "Pfad 3" umgestellt. Dann sieht das Skript etwas anders aus.

                    const idTemp = '0_userdata.0.Wetter.Temperatur_in_3h';
                     
                    schedule('* * * * *', function() {
                        let hours3 = new Date().getHours() + 3;
                        let id = 'daswetter.0.NextHours.Location_1.Day_1.Hour_' + hours3 + '.temp_value';
                        if(hours3 > 24) {
                            hours3 -= 24;
                            id = 'daswetter.0.NextHours.Location_1.Day_2.Hour_' + hours3 + '.temp_value';
                        }
                        setState(idTemp, getState(id).val, true);
                    });
                    

                    @sborg sagte in Das Wetter - Temperatur in 3 Stunden abfragen:

                    Was ist eigentlich besser, performanter, "schöner" :
                    Erst die id "falsch" initialisieren und dann ggf. mittels if... korrekt "gerade bügeln" (deine Version)
                    oder mittels if...else - Konstrukt (meine Version) ?

                    Das macht keinen Unterschied.

                    1 Reply Last reply Reply Quote 0
                    • C
                      checkitout @paul53 last edited by

                      @paul53 sagte in Das Wetter - Temperatur in 3 Stunden abfragen:

                      const idTemp = '0_userdata.0.Wetter.Temperatur_in_3h'; schedule('* * * * *', function() { let hours3 = new Date().getHours() + 3; let id = 'daswetter.0.NextHours.Location_1.Day_1.Hour_' + hours3 + '.temp_value'; if(hours3 > 24) { hours3 -= 24; id = 'daswetter.0.NextHours.Location_1.Day_2.Hour_' + hours3 + '.temp_value'; } setState(idTemp, getState(id).val, true); });

                      @paul53 @SBorg
                      Hallo Paul53, Hallo SBorg,
                      Vielen Dank für die tolle Unterstützung , da ich mit Skipts noch gar nicht gearbeitet habe, war es dann doch gar nicht so einfach wie gedacht, weil mir die "basics" gefehlt haben, aber ich hab es jetzt geschafft die Variable anzulegen und auch auch eine Wert bekommen der schlüssig ist.

                      Vielen Dank Chris

                      1 Reply Last reply Reply Quote 0
                      • First post
                        Last post

                      Support us

                      ioBroker
                      Community Adapters
                      Donate
                      FAQ Cloud / IOT
                      HowTo: Node.js-Update
                      HowTo: Backup/Restore
                      Downloads
                      BLOG

                      935
                      Online

                      31.6k
                      Users

                      79.4k
                      Topics

                      1.3m
                      Posts

                      3
                      9
                      472
                      Loading More Posts
                      • Oldest to Newest
                      • Newest to Oldest
                      • Most Votes
                      Reply
                      • Reply as topic
                      Log in to reply
                      Community
                      Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                      The ioBroker Community 2014-2023
                      logo