Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Entwicklung
    4. Accuweather - stündliche Werte nicht komplett

    NEWS

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    Accuweather - stündliche Werte nicht komplett

    This topic has been deleted. Only users with topic management privileges can see it.
    • mickym
      mickym Most Active @ThomKast last edited by mickym

      @thomkast Wie gesagt ich nutze beides.
      Bei dem Daily Forecast ist Accuweather genauer.

      Bei der Openwaether API nutze ich den OneCall und der gibt Dir eigentlich viel Info aus - auch hourly UV Index.

      https://openweathermap.org/api/one-call-api

      Wie gesagt Adapter hab ich keine Ahnung - weil ich das direkt nutze.

      27e652ac-f146-4e36-9aac-46164beb74d1-image.png

      Auch Current bietet den UV Index:

      04a5c6f8-1b27-496c-ba4a-5c26daa7b653-image.png

      In der current und den hourly Forecasts bei Openwaether siehst Du also durchaus, dass der UV Index enthalten ist:

      6edcb5ab-5f78-4085-b8f5-7ae280d514ff-image.png

      1 Reply Last reply Reply Quote 0
      • mickym
        mickym Most Active @ThomKast last edited by

        @thomkast Es wird nicht jeder einzelne Wert als Abfrage gezählt. Aber wenn Du stündliche Vorhersagen willst, dann wird die ja auch mit jeder Stunde verbessert bzw. aktualisiert.

        Du wirst ja nicht eine Abfrage für 72 Stunden stellen und dann erst nach 72 Stunden die nächste. Ich gehe mal davon aus, dass Du mind. einmal die Stunde eine neue Abfrage startest. Ich hab das damals 2 mal die Stunde gemacht aber dann war nur noch eine 5 Tagesvorhersage möglich. Sobald Du mehr wolltest, weil auch die Tagesvorhersagen sich öfters aktualisieren bist Du dann schon am Ende.

        1 Reply Last reply Reply Quote 0
        • mickym
          mickym Most Active @ThomKast last edited by mickym

          @thomkast Ach und falls der HIntergrund eher eine Solaranlage mit Forecast ist - da gibt es wesentlich bessere Alternativen.

          Schau mal: https://forum.iobroker.net/topic/16481/täglich-zu-erwartende-sonnenstunden-mit-iobroker-adaptern/3?_=1635801983160

          Mit Forecast Solar kannst dann sogar die Anordnung Deiner Solarmodule konfigurieren.

          T 1 Reply Last reply Reply Quote 0
          • T
            ThomKast @mickym last edited by ThomKast

            @mickym
            Hallo Micky, habe mir die Infos zu Forecast.Solar und SolarWetter angeschaut. Komme leider mit beidem nicht weiter...

            Bei Forcast.Solar finde ich keinen releasten Adapter und kenne mich mit script zu wenig aus, um es eigenständig umsetzen zu können.

            SolarWetter bietet eigentlich genau das was ich suche. Allerdings finde ich beim Anbieter keine Möglichkeit Zugangsdaten zu generieren. Und ohne diese läuft der Adapter nicht. Auch ist mir nicht klar wie oft die Daten aktualisiert werden.

            Dann habe ich noch bei OpenWeather geschaut. Dort liefert die One Call API die gewünschten Werte. Auch wäre der Free-Account mit 1.000 calls/day bei weitem ausreichend.
            Es existiert zwar ein Adapter im iob für OpenWeather, aber dieser stellt die hourly-Werte nicht zur Verfügung.
            Den Request für nur "hourly-Werte" konnte ich mir auch noch erarbeiten:
            https://api.openweathermap.org/data/2.5/onecall?lat=xxxxx&lon=yyyyy&exclude=minutely,current,daily,alerts&appid=zzzzz&units=metric&lang=de
            Allerdings habe ich keinen Plan, wie ich den response im iob als Datenpunkte abbilden kann. Dazu fehlen mir einfach die Denkanstöße 🙂

            mickym 2 Replies Last reply Reply Quote 0
            • mickym
              mickym Most Active @ThomKast last edited by

              @thomkast sagte in Accuweather - stündliche Werte nicht komplett:

              Bei Forcast.Solar finde ich keinen releasten Adapter und kenne mich mit script zu wenig aus, um es eigenständig umsetzen zu können

              Wie gesagt - wenn Du den NodeRed Adapter nutzen willst, dann kann ich Dich gerne hier unterstützen und beschreiben, was Du tun musst und wir machen das entweder mit ForecastSolar oder der OneCallAPI und erstellen Dir die Datenpunkte.

              Bei dem ForcastSolar musst Du eigentlich nur Deinen Längen und Breitengrad im Browser eingeben und
              590f9876-5904-434f-9607-8e0674ccb344-image.png

              Die nächsten 3 Zahlen sind
              in dem Aufruf

              178a2ea2-fea4-4f72-ad34-08c332c95ae9-image.png

              Neigung (dec), Ausrichtung (az) und kW der Panele.

              Wenn Du mit einem Openweather API Key die Daten im Browser bekommst dann kann ich Dir ebenfalls helfen, die mit Hilfe von NodeRed in Datenpunkte zu schreiben.

              Du musst halt immer nur testen, ob Du im Browser richtige Daten bekommst. Wenn Du den OneCall von Openweather im Browser machst musst halt Deinen API Key hinten dran hängen.

              805f31c1-f1be-4f78-a517-bdb3bff03190-image.png

              1 Reply Last reply Reply Quote 0
              • mickym
                mickym Most Active @ThomKast last edited by mickym

                @thomkast sagte in Accuweather - stündliche Werte nicht komplett:

                https://api.openweathermap.org/data/2.5/onecall?lat=xxxxxxxxxxx&lon=xxxxxxxxxxxxx&exclude=minutely,current,daily,alerts&appid=XXXXXXXXXXXXXXXXXXX&units=metric&lang=de

                Ich hab den mal benutzt und mit einem ganz einfachen Node-Red Flow bekommst Du die Daten aus Deinem Aufruf als Datenpunkte in den iobroker.

                3af438ba-b651-4ed6-b366-8755b570a476-image.png

                Für die fehlenden Objekte lassen wir dann auch noch ein Skript drüber laufen.

                Das sieht dann im iobroker so aus:

                64cbb693-f64f-4083-8fdb-2c5bef4eb804-image.png

                Außerdem hast Du Post (PN 😉 )

                Also wenn Du das so wie oben haben willst, dann installiere Dir mal den NodeRed Adapter im iobroker. In der Konfiguration des Adapters

                51f39d9d-9ebd-4bbc-b8ae-b40ad7f3f665-image.png

                machst Du die Konvertierung in Zeichenkette raus und lässt die Erstellung von Fremdobkjekten zu.

                T 2 Replies Last reply Reply Quote 0
                • T
                  ThomKast @mickym last edited by

                  @mickym

                  So, da bin ich wieder... Habe noch 2 zwei-beinige-Projekte, die zu erst zur Ruhe kommen wollen 😁

                  Mit node-red wollte ich mich eh mal beschäftigen. Dann scheint wohl jetzt eine guter Moment zu sein 😉 . Arbeite mich anhand Deiner Infos voran und melde mich dann.

                  ... schon mal wieder vielen Dank vorab!

                  1 Reply Last reply Reply Quote 0
                  • T
                    ThomKast @mickym last edited by

                    @mickym

                    @mickym sagte in Accuweather - stündliche Werte nicht komplett:

                    @thomkast sagte in Accuweather - stündliche Werte nicht komplett:

                    https://api.openweathermap.org/data/2.5/onecall?lat=xxxxxxxxxxx&lon=xxxxxxxxxxxxx&exclude=minutely,current,daily,alerts&appid=XXXXXXXXXXXXXXXXXXX&units=metric&lang=de

                    Ich hab den mal benutzt und mit einem ganz einfachen Node-Red Flow bekommst Du die Daten aus Deinem Aufruf als Datenpunkte in den iobroker.

                    3af438ba-b651-4ed6-b366-8755b570a476-image.png

                    Für die fehlenden Objekte lassen wir dann auch noch ein Skript drüber laufen.

                    Das sieht dann im iobroker so aus:

                    64cbb693-f64f-4083-8fdb-2c5bef4eb804-image.png

                    Außerdem hast Du Post (PN 😉 )

                    Also wenn Du das so wie oben haben willst, dann installiere Dir mal den NodeRed Adapter im iobroker. In der Konfiguration des Adapters

                    51f39d9d-9ebd-4bbc-b8ae-b40ad7f3f665-image.png

                    machst Du die Konvertierung in Zeichenkette raus und lässt die Erstellung von Fremdobkjekten zu.

                    Also der node-red-Adapter läuft und die nötigen Nodes habe ich auch schon zusammengeklickt...
                    c7cc021f-cf5c-4f9b-8e5e-4b135187cf09-image.png
                    Aber da fehlen doch noch die ganzen Definition dazu...Oder?

                    mickym 1 Reply Last reply Reply Quote 0
                    • mickym
                      mickym Most Active @ThomKast last edited by mickym

                      @thomkast Wenn Du die NodeRed-Adaptereinstellungen gemacht hast, dann brauchst Dir keine Nodes zusammensuchen, sondern importierst den Flow einfach:

                      Openweather One Call.json

                      Falls Du im Chrome auf die Datei klickst wird der Text aufgemacht dann mit rechter Maustaste mit "Speichern unter " irgendwo lokal abspeichern.

                      Anschließend gehst Du in das rechte Menü und klickst auf Import:

                      2b7a2918-0970-4948-b4ed-b5482314304a-image.png

                      Klickst in dem Fenster auf Datei importieren und wählst die OPenweather One Call.json Datei aus.

                      Über die Zwischenablage gehts dieses Mal nicht, da irgendein Apostroph den Import verhindert.

                      In der Inject Node änderst Du wieder Deine Geodaten und Deinen API Key.

                      644d417f-25f8-4e1c-8892-914476a401dc-image.png

                      In der msg.top Node - kannst Du noch einen anderen Namen angeben, unter dem Du die Datenpunkte unter 0_userdata.0 anlegen willst. Ich habs halt mal openweather genannt. 😉

                      41a3bcfd-3c20-4031-87cb-b7fe72883590-image.png

                      Wenn das alles soweit geht, feuerst Du die Inject Node ab und DU solltest die Datenpunkte alle haben und dann müssen wir das seit dem admin5 noch fein schleifen. 😉

                      T 1 Reply Last reply Reply Quote 0
                      • T
                        ThomKast @mickym last edited by

                        @mickym
                        Import ist erledigt. Im inject habe ich die URL komplettiert.
                        msg.top sieht nun so aus.
                        2e49d426-a43e-49e7-ba6d-410df70c32bd-image.png
                        Rest habe ich nur angeschaut und nichts geändert...

                        Allerdings finde ich keine neue Gruppe und auch keine Datenpunkte in 0_userdata..?..?

                        mickym 1 Reply Last reply Reply Quote 0
                        • mickym
                          mickym Most Active @ThomKast last edited by mickym

                          @thomkast

                          1. Hast Du den Flow übernommen
                            6b3aeba2-30ad-47cb-934f-cec883d1d5b0-image.png darf nicht so rot sein, sondern muss grau sein.

                          2. Hast Du dem NodeRed Adapter erlaubt Objekte zu erstellen
                            c87eda93-5287-470a-a03b-be1695808aea-image.png

                          3. Hast Du den Flow auch über die Inject Node gestartet?

                          a2af70b8-64d2-42bf-abbf-83ecdb03801b-image.png

                          habs Dir mal markiert wie Du den Flow startest. 😉

                          Wenn alles geklappt hat, dann hast Du

                          e45ad474-45b2-4aca-a4cc-e72499872bec-image.png

                          unter 0_userdata => 0 => openweather => hourly => und dann 48 Unterordner.

                          Wenn nicht müssen wir halt über debug Nodes schauen, wo der Fehler liegt.

                          T 1 Reply Last reply Reply Quote 0
                          • T
                            ThomKast @mickym last edited by

                            @mickym
                            Ja, glaubt man es denn... Kaum macht man es richtig, schon funktionierts.
                            Ok, das sind echt die ersten Schritte. Und den inject zu starten hat ich nicht auf der Schnur.
                            Schaue mir jetzt mal die Werte an.

                            mickym T 2 Replies Last reply Reply Quote 0
                            • mickym
                              mickym Most Active @ThomKast last edited by

                              @thomkast Helf Dir gleich weiter. Mach noch einen Flow für Dich. 😉

                              1 Reply Last reply Reply Quote 0
                              • T
                                ThomKast @ThomKast last edited by

                                @thomkast
                                Keine Hektik 👍

                                Die 47 Folder ergeben sich offensichtlich aus den Daten. Allerdings ist die Uhrzeit nicht als DATE darstellbar. Die Werte stehen dann auf 1970... Daher weiß ich jetzt nicht welche zeit der Folder 0h enthält.
                                74da854a-76f1-4f92-8a13-0452f5d44e6a-image.png
                                Könnte der Wert als reguläres Datum dargestellt werden?

                                mickym 1 Reply Last reply Reply Quote 0
                                • mickym
                                  mickym Most Active @ThomKast last edited by mickym

                                  @thomkast Das ist gleich mein 2. Flow für Dich - wie willst Du den Datumspunkt gerne genannt haben, habs gerade

                                  a498de2b-c005-4bc3-b719-4c77930b7c04-image.png

                                  forcastTime genannt - aber such Dir gerne was anderes aus, dann ändere ich das noch schnell in dem Flow.

                                  Normalerweise darf da aber gar kein Datum drin stehen, sondern nur eine Zahl

                                  66010d28-d04f-437c-8e6b-8b03b4f792cd-image.png

                                  T 2 Replies Last reply Reply Quote 0
                                  • T
                                    ThomKast @mickym last edited by

                                    @mickym
                                    Alles bestens, ist doch ein guter Vorschlag.
                                    Habe das UNIX-Datum mal umgerechnet. 0h bedeutet die aktuelle Stunde - also 2200.

                                    1 Reply Last reply Reply Quote 0
                                    • T
                                      ThomKast @mickym last edited by

                                      @mickym sagte in Accuweather - stündliche Werte nicht komplett:

                                      @thomkast Das ist gleich mein 2. Flow für Dich - wie willst Du den Datumspunkt gerne genannt haben, habs gerade

                                      a498de2b-c005-4bc3-b719-4c77930b7c04-image.png

                                      forcastTime genannt - aber such Dir gerne was anderes aus, dann ändere ich das noch schnell in dem Flow.

                                      Normalerweise darf da aber gar kein Datum drin stehen, sondern nur eine Zahl

                                      66010d28-d04f-437c-8e6b-8b03b4f792cd-image.png

                                      Ja klar. Ich habe die Rolle manuell auf DATE geändert. Dachte es wird dann direkt korrekt dargestellt. Als Rolle STATE steht dann das UNIX UTC Datum/Uhrzeit als Zahl drin.

                                      mickym 3 Replies Last reply Reply Quote 0
                                      • mickym
                                        mickym Most Active @ThomKast last edited by mickym

                                        @thomkast So wenn Du in Deinen bestehenden Flow noch folgende Nodes importierst, dann wird das um neue Datenpunkte mit ausgeschriebenem Datum ergänzt:

                                        ba98d939-8405-4847-83d4-68001e535641-image.png

                                        Dieses Mal kannst Du den Code direkt über die Zwischenablage importieren:

                                        [
                                           {
                                               "id": "4d65b9d.07b0148",
                                               "type": "ioBroker in",
                                               "z": "918d8a88.bb7cf8",
                                               "name": "",
                                               "topic": "0_userdata.0.openweather.hourly.*.dt",
                                               "payloadType": "value",
                                               "onlyack": "",
                                               "func": "all",
                                               "gap": "",
                                               "fireOnStart": "false",
                                               "x": 490,
                                               "y": 180,
                                               "wires": [
                                                   [
                                                       "2fb2b1d1.03df6e"
                                                   ]
                                               ]
                                           },
                                           {
                                               "id": "2fb2b1d1.03df6e",
                                               "type": "change",
                                               "z": "918d8a88.bb7cf8",
                                               "name": "",
                                               "rules": [
                                                   {
                                                       "t": "change",
                                                       "p": "topic",
                                                       "pt": "msg",
                                                       "from": "(.*)\\/dt",
                                                       "fromt": "re",
                                                       "to": "$1",
                                                       "tot": "str"
                                                   },
                                                   {
                                                       "t": "change",
                                                       "p": "topic",
                                                       "pt": "msg",
                                                       "from": "/",
                                                       "fromt": "str",
                                                       "to": ".",
                                                       "tot": "str"
                                                   },
                                                   {
                                                       "t": "set",
                                                       "p": "topic",
                                                       "pt": "msg",
                                                       "to": "topic & '.forcastTime'",
                                                       "tot": "jsonata"
                                                   }
                                               ],
                                               "action": "",
                                               "property": "",
                                               "from": "",
                                               "to": "",
                                               "reg": false,
                                               "x": 770,
                                               "y": 180,
                                               "wires": [
                                                   [
                                                       "a732a96b.a95798"
                                                   ]
                                               ]
                                           },
                                           {
                                               "id": "a732a96b.a95798",
                                               "type": "change",
                                               "z": "918d8a88.bb7cf8",
                                               "name": "",
                                               "rules": [
                                                   {
                                                       "t": "set",
                                                       "p": "payload",
                                                       "pt": "msg",
                                                       "to": "$moment((payload)*1000).locale(\"de\").tz('Europe/Berlin').format('DD.MM.YY [um] HH:mm')",
                                                       "tot": "jsonata"
                                                   }
                                               ],
                                               "action": "",
                                               "property": "",
                                               "from": "",
                                               "to": "",
                                               "reg": false,
                                               "x": 990,
                                               "y": 180,
                                               "wires": [
                                                   [
                                                       "5014a26.bf5065c"
                                                   ]
                                               ]
                                           },
                                           {
                                               "id": "5014a26.bf5065c",
                                               "type": "ioBroker out",
                                               "z": "918d8a88.bb7cf8",
                                               "name": "",
                                               "topic": "",
                                               "ack": "true",
                                               "autoCreate": "true",
                                               "stateName": "",
                                               "role": "",
                                               "payloadType": "string",
                                               "readonly": "false",
                                               "stateUnit": "",
                                               "stateMin": "",
                                               "stateMax": "",
                                               "x": 1200,
                                               "y": 180,
                                               "wires": []
                                           }
                                        ]
                                        

                                        Dann bekommst Du die folgenden Nodes noch dazu:

                                        659ab3ae-2b23-4f99-8eb9-3d8e458e5565-image.png

                                        Eigentlich müsste es ja forecastTime heißen:

                                        Musst halt hier nochmal ändern:

                                        ddb5be3d-68ee-44d8-9343-fca5b0ad100b-image.png

                                        T 1 Reply Last reply Reply Quote 0
                                        • mickym
                                          mickym Most Active @ThomKast last edited by

                                          @thomkast So nun noch ein paar Ergänzungen - weil seit dem admin5 sich einiges geändert hat und in NodeRed hat man das bei den iobroker-out Nodes nicht mitberücksichtigt.

                                          Bei den ganzen Ordnern fehlen leider die Objekte (rot markiert):

                                          fc2212fb-098c-4f2c-a10b-87bd030e93d9-image.png

                                          Deshalb bitte folgendes Skript im Javascript Adapter als Javascript importieren:

                                          /**
                                          * Zweck:       Korrigiert übergeordnete Ordnerstrukturen eines Datenpunkts
                                          * Datum:      07.08.2021
                                          * Autor:       @fastfoot
                                          */
                                           
                                          //              In den Settings der Javascript-Instanz muss setObject erlaubt sein!!!
                                           
                                          let arr = [],
                                             id = '';
                                           
                                          const ids = $('0_userdata.0.*');
                                          ids.each(idTmp => {
                                             arr=idTmp.split('.');
                                             arr.splice(arr.length-1);
                                             id=arr.join('.');
                                             if(arr[0] === '0_userdata' || arr[0] === 'alias' || arr[0] === 'mqtt' || arr[0] === 'javascript'){
                                                 correctObject(id, arr);
                                             }
                                          })
                                           
                                          function correctObject(id,arr){
                                             if(arr.length === 2) return;
                                             if(!existsObject(id)){
                                                 let obj = {};
                                                 obj = {
                                                     type: 'folder',
                                                     common:{
                                                         name: arr[arr.length - 1]
                                                     }
                                                 }
                                                 extendObject(id, obj, e => {
                                                     if (e) log('Fehler beim Schreiben des Objektes: '+ id + ' ' + e);
                                                 })
                                             }
                                             arr.splice(arr.length - 1);
                                             id = arr.join('.');
                                             correctObject(id, arr);
                                          }
                                          

                                          Dieses Skript musst Du einmal Laufen lassen und immer dann - wenn Du mal den ganzen Openweather Ast löscht.

                                          43effdba-1509-458c-954a-534a52bc4f8f-image.png

                                          Sobald das Skript einmal gelaufen ist, dann sind das wieder saubere Folder Objekte:

                                          5b04b5af-20b3-409e-beeb-a45a9d50a244-image.png

                                          1 Reply Last reply Reply Quote 0
                                          • T
                                            ThomKast @mickym last edited by

                                            @mickym
                                            Also, Du machst mich vollends sprachlos....

                                            Klappt perfekt und die Daten sehen gut aus. Damit kann ich erst mal meine weiteren Überlegungen anstellen.

                                            Müsste jetzt nicht noch der inject per CRON automatisiert werden?
                                            Hattest Du bei OW gelesen wie oft die Daten aktualisiert werden?

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            811
                                            Online

                                            31.7k
                                            Users

                                            79.7k
                                            Topics

                                            1.3m
                                            Posts

                                            accuweather hourly datenpunkte
                                            2
                                            33
                                            1499
                                            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