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. JavaScript
  5. [TypeSkript] Wetter.com Forecast/Vorhersage

NEWS

  • Monatsrückblick Januar/Februar 2026 ist online!
    BluefoxB
    Bluefox
    17
    1
    550

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

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

[TypeSkript] Wetter.com Forecast/Vorhersage

Geplant Angeheftet Gesperrt Verschoben JavaScript
62 Beiträge 8 Kommentatoren 2.1k Aufrufe 14 Watching
  • Ä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.
  • Bl4ckst4rB Offline
    Bl4ckst4rB Offline
    Bl4ckst4r
    schrieb am zuletzt editiert von
    #47

    Moin zusammen,

    ich möchte mich nur kurz für das Skript bedanken. ☺️

    Bis zum Ende des Free Tarifs habe ich den AccuWeather-Adapter genutzt. Da ich Wetter.com aber "privat" sowieso schon verwende, passt das Skript natürlich umso besser.

    Ich steuere damit meinen Sonnenschutz und lasse die Rollos abhängig von der Anzahl der Sonnenstunden sowie der Tageshöchsttemperatur herunterfahren. Das umstellen war dank deines Skriptes quasi "Plug and Play".

    Daher ein großes Dankeschön fürs Teilen! Das hat mir auf jeden Fall die Arbeit erspart, selbst etwas Eigenes zu entwickeln und bietet der Community definitiv einen echten Mehrwert. :)

    Viele Grüße
    Bl4ckst4r

    1 Antwort Letzte Antwort
    1
    • Pedder007P Pedder007

      Hi, na' da habe ich mir jetzt einen geleistet .... natürlich ist das ein anderer Dienst!!!

      Keine Ahnung, aber das kommt davon, wenn man zu viel parallel macht... :-(

      Sorry für den Unsinn hier, ich gelobe Besserung :-)

      S Offline
      S Offline
      Schimi
      schrieb am zuletzt editiert von
      #48

      @Pedder007 wenn du jetzt noh sagst, dass das Skript weiter funktioniert... wäre ich erleichtert....

      weil ich nach sie vor nicht weiss woran es liegen könnte 🙈

      Pedder007P 1 Antwort Letzte Antwort
      0
      • S Schimi

        @Pedder007 wenn du jetzt noh sagst, dass das Skript weiter funktioniert... wäre ich erleichtert....

        weil ich nach sie vor nicht weiss woran es liegen könnte 🙈

        Pedder007P Offline
        Pedder007P Offline
        Pedder007
        schrieb am zuletzt editiert von Pedder007
        #49

        @Schimi ENTWARNUNG
        Das Script läuft einwandfrei und hat z. B. heute um kurz vor 04:00 und nochmal um kurz vor 16:00 aktualisiert.
        Das Problem saß vor der Konsole - hatte den falschen Key, also den vom anderen Anbieter, genutzt.
        Sorry war am WE unterwegs und hätte das evtl. oben klarer formulieren sollen.
        Danke Dir für Dein vorbildliches Care-Taking ;-)

        Pedder
        All @Proxmox/Trixie auf HP Elitedesk 800 G4; Zigbee: ZigStar (LAN), ~110Devices
        Unifi, Motioneye/3Reolinks, PiHole, Bosch CS7800i via BBQKees/EMS-ESP, Fronius/BYD 11kWp via Modbus
        Under construction: Smart-WoMo auf Raspi4

        1 Antwort Letzte Antwort
        1
        • S Offline
          S Offline
          Schimi
          schrieb am zuletzt editiert von
          #50

          Danke für die Rückmeldung :-)

          1 Antwort Letzte Antwort
          0
          • S Offline
            S Offline
            Schimi
            schrieb am zuletzt editiert von Schimi
            #51

            Habe mal denn Umgang mit dem Limit optimiert (und dabei etwas weiter gemacht), da ich gestern ins Limit gelaufen bin....

            die neue Version findet sich im ersten Post im "Spoiler"

            Falls sich Bugs eingeschlichen haben, solltet ihr vielleicht die letzte 1.9.2 Version erstmal irgendwo zwischenspeichern ;-)

            Der API-KEY und die anzahl der Tage werden nun auch in Datenpunkten eingegeben...


            Changelog: Wetter.com Forecast API (v1.9.2 ➔ v2.6.1)

            Dieser Bericht dokumentiert die Evolution des Skripts von einem einfachen API-Abruf hin zu einer performanten, typsicheren und ausfallsicheren ioBroker-Infrastruktur-Komponente.

            ⚙️ v2.6.x – Perfektionierung & Usability

            2.6.1 (Hotfix): * Fix: Konfigurations-Datenpunkte (api_key, forecast_days) werden nun mit write: true angelegt.

            Retroaktiver Fix: Ein extendObjectAsync entsperrt automatisch Bestandsdatenpunkte, die in Vorversionen als Read-Only angelegt wurden.

            2.6.0 (Ultra-Performance): * RAM-Cache (ensuredPaths): Eliminiert hunderte synchrone existsObject()-Aufrufe an die JS-Engine. I/O-Overhead beim Struktur-Check sinkt nach dem ersten Lauf auf nahezu null.

            Zero-Latency: Die künstliche Drosselung wcomWait() wurde vollständig entfernt, da das System durch Caching und Batching überlastungsfrei agiert.

            Memory-Management: Timeout-Clearing im HTTP-Request integriert, um Speicherlecks zu verhindern.

            Semantischer Fallback: wind_speed_max fällt auf wind.avg zurück, falls die API sporadisch den Maximalwert weglässt.

            🚀 v2.5.x – Batching & Deadlock-Schutz

            2.5.0:

            State-Write-Batching: Schreibvorgänge (setStateChangedAsync) eines Tages werden in einem internen Puffer gebündelt und per Promise.all simultan abgesetzt.

            Lock-Härtung: Der HTTP-Call ist nun in ein Promise.race mit einem 10-Sekunden-Timeout gekapselt. Verhindert unendliche Blockaden des isFetching-Locks bei fehlerhaften API-Servern.

            Type-Safety: Optionale Verkettung (data.hourly ?? []) schützt vor unvollständigen JSON-Antworten.

            API-Resilienz: Erweiterte isNaN-Prüfung in wcomExtractValue(), um korrupte Strings der API abzufangen.

            ✨ v2.3.x bis v2.4.x – Dynamisierung

            2.4.0 (Dynamische Tage): * FORECAST_DAYS aus dem Code in den Datenpunkt info.forecast_days ausgelagert.

            Auto-Trigger: Das Skript reagiert sofort auf Änderungen dieses Wertes, passt den Abruf an und löscht überschüssige Tagesordner (cleanupObsoleteDays) rekursiv.

            2.3.0 (API-Key Trigger): * Neuer on()-Trigger für info.api_key. Bei Eingabe eines neuen Keys wird sofort ein Test-Abruf (source: 'key_update') erzwungen, der den regulären Restart-Blocker überspringt.

            🛡️ v2.1.x bis v2.2.x – Systemhärtung & Controller-Entlastung

            2.2.0:

            Zeitzonen-Fix: new Date() statt toISOString() behebt falsche Tageswechsel-Berechnungen auf Systemen mit UTC-Offset.

            I/O-Reduktion: Einführung von wcomEnsureState() zur Minimierung von createStateAsync-Spam.

            2.1.0:

            Zero-Churn (Hourly): Das destruktive, rekursive Löschen (deleteObjectAsync) von Stundenwerten wurde durch sauberes Überschreiben abgelöst. Verhindert massive Object-Events und Controller-Spikes.

            Null-Safety: wcomExtractValue() gibt strikt 0 statt null zurück, was Typerrors in Number-States verhindert.

            Koordinaten-Fix: Längen- und Breitengrade von exakt 0 (Äquator/Nullmeridian) werden nicht mehr als false verworfen.

            Native Logs: Das Log-Level debug wird nun korrekt an die ioBroker-Engine durchgereicht.

            🔒 v2.0.x – Security & Architektur-Refactoring

            2.0.1: Standardisierung des Key-Speicherorts auf 0_userdata.0.wetter_com.info.api_key.

            2.0.0: * Security: API-Key aus dem Klartext-Quellcode entfernt.

            Semaphore (isFetching): Verhindert Race-Conditions und Doppel-Abrufe, wenn Timer und manuelle Trigger gleichzeitig feuern.

            Async-HTTP: httpGet wurde in ein asynchrones Promise gekapselt, um Netzwerkfehler im zentralen try/catch sicher fangen zu können.

            Daily-Reset: Fehleranfälliger Mitternachts-Cron für requests_today wurde durch datumsbasierte, asynchrone Prüfung vor jedem API-Call ersetzt.

            📉 v1.9.3 – Budget-Stabilität

            1.9.3: * Restart-Schutz: Skript-Neustarts lösen keinen API-Call mehr aus, wenn am selben Tag bereits Daten abgerufen wurden (schützt das 100-Calls/Monat Limit bei der Entwicklung).

            Erweiterter Economy-Mode: Unterscheidung der Trigger-Quellen (morning, afternoon, start).

            Notlauf-Modus: Fällt das Budget auf einen kritischen Wert, wird nur noch jeden zweiten Tag aktualisiert.

            Pedder007P 1 Antwort Letzte Antwort
            0
            • nik82N Offline
              nik82N Offline
              nik82
              Most Active
              schrieb am zuletzt editiert von nik82
              #52

              @schimi
              Vielen Dank, was hast du am Limit genau geändert?
              Bei mir läufts einwandfrei, aber gleich in dem Zuge noch eine Frage:
              Wann wird eigentlich immer aktualisiert? Wir haben jetzt 8:22 Uhr und ich habe immer noch den Vortag drin:

              image.png

              Oder ist das genau wie bei dir der Fall das ich jetzt das Limit erreicht habe:

              image.png


              EDIT: Hat sich erledigt dir Frage, bei mir ist auch das Monatslimit erreicht:

              7625b2d6-bedd-4898-845a-46787ff5bf69-image.png

              1 Antwort Letzte Antwort
              0
              • S Offline
                S Offline
                Schimi
                schrieb am zuletzt editiert von
                #53

                Das sieht nach dem Problem wie bei mir aus...

                Das ist das wichtigste aus dem Changelog:

                1.9.3: *

                • Restart-Schutz: Skript-Neustarts lösen keinen API-Call mehr aus, wenn am selben Tag bereits Daten abgerufen wurden (schützt das 100-Calls/Monat Limit bei der Entwicklung).
                • Erweiterter Economy-Mode: Unterscheidung der Trigger-Quellen (morning, afternoon, start).
                • Notlauf-Modus: Fällt das Budget auf einen kritischen Wert, wird nur noch jeden zweiten Tag aktualisiert.

                Wie gut es klappt sehen wir Ende März ;-)

                Dazu kommt, dass die API und die Tage im Datenpunkt angegeben werden und wenn man dieses ändert, das Skript sich sofort aktualisiert und mit den daten weiterarbeitet.

                1 Antwort Letzte Antwort
                1
                • nik82N Offline
                  nik82N Offline
                  nik82
                  Most Active
                  schrieb am zuletzt editiert von
                  #54

                  Habe gerade auf die neue Version umgestellt, jetzt warten wir mal bis März und schauen weiter.
                  Aber das Script ist auf jedenfall echt Tip Top!

                  1 Antwort Letzte Antwort
                  1
                  • S Schimi

                    Habe mal denn Umgang mit dem Limit optimiert (und dabei etwas weiter gemacht), da ich gestern ins Limit gelaufen bin....

                    die neue Version findet sich im ersten Post im "Spoiler"

                    Falls sich Bugs eingeschlichen haben, solltet ihr vielleicht die letzte 1.9.2 Version erstmal irgendwo zwischenspeichern ;-)

                    Der API-KEY und die anzahl der Tage werden nun auch in Datenpunkten eingegeben...


                    Changelog: Wetter.com Forecast API (v1.9.2 ➔ v2.6.1)

                    Dieser Bericht dokumentiert die Evolution des Skripts von einem einfachen API-Abruf hin zu einer performanten, typsicheren und ausfallsicheren ioBroker-Infrastruktur-Komponente.

                    ⚙️ v2.6.x – Perfektionierung & Usability

                    2.6.1 (Hotfix): * Fix: Konfigurations-Datenpunkte (api_key, forecast_days) werden nun mit write: true angelegt.

                    Retroaktiver Fix: Ein extendObjectAsync entsperrt automatisch Bestandsdatenpunkte, die in Vorversionen als Read-Only angelegt wurden.

                    2.6.0 (Ultra-Performance): * RAM-Cache (ensuredPaths): Eliminiert hunderte synchrone existsObject()-Aufrufe an die JS-Engine. I/O-Overhead beim Struktur-Check sinkt nach dem ersten Lauf auf nahezu null.

                    Zero-Latency: Die künstliche Drosselung wcomWait() wurde vollständig entfernt, da das System durch Caching und Batching überlastungsfrei agiert.

                    Memory-Management: Timeout-Clearing im HTTP-Request integriert, um Speicherlecks zu verhindern.

                    Semantischer Fallback: wind_speed_max fällt auf wind.avg zurück, falls die API sporadisch den Maximalwert weglässt.

                    🚀 v2.5.x – Batching & Deadlock-Schutz

                    2.5.0:

                    State-Write-Batching: Schreibvorgänge (setStateChangedAsync) eines Tages werden in einem internen Puffer gebündelt und per Promise.all simultan abgesetzt.

                    Lock-Härtung: Der HTTP-Call ist nun in ein Promise.race mit einem 10-Sekunden-Timeout gekapselt. Verhindert unendliche Blockaden des isFetching-Locks bei fehlerhaften API-Servern.

                    Type-Safety: Optionale Verkettung (data.hourly ?? []) schützt vor unvollständigen JSON-Antworten.

                    API-Resilienz: Erweiterte isNaN-Prüfung in wcomExtractValue(), um korrupte Strings der API abzufangen.

                    ✨ v2.3.x bis v2.4.x – Dynamisierung

                    2.4.0 (Dynamische Tage): * FORECAST_DAYS aus dem Code in den Datenpunkt info.forecast_days ausgelagert.

                    Auto-Trigger: Das Skript reagiert sofort auf Änderungen dieses Wertes, passt den Abruf an und löscht überschüssige Tagesordner (cleanupObsoleteDays) rekursiv.

                    2.3.0 (API-Key Trigger): * Neuer on()-Trigger für info.api_key. Bei Eingabe eines neuen Keys wird sofort ein Test-Abruf (source: 'key_update') erzwungen, der den regulären Restart-Blocker überspringt.

                    🛡️ v2.1.x bis v2.2.x – Systemhärtung & Controller-Entlastung

                    2.2.0:

                    Zeitzonen-Fix: new Date() statt toISOString() behebt falsche Tageswechsel-Berechnungen auf Systemen mit UTC-Offset.

                    I/O-Reduktion: Einführung von wcomEnsureState() zur Minimierung von createStateAsync-Spam.

                    2.1.0:

                    Zero-Churn (Hourly): Das destruktive, rekursive Löschen (deleteObjectAsync) von Stundenwerten wurde durch sauberes Überschreiben abgelöst. Verhindert massive Object-Events und Controller-Spikes.

                    Null-Safety: wcomExtractValue() gibt strikt 0 statt null zurück, was Typerrors in Number-States verhindert.

                    Koordinaten-Fix: Längen- und Breitengrade von exakt 0 (Äquator/Nullmeridian) werden nicht mehr als false verworfen.

                    Native Logs: Das Log-Level debug wird nun korrekt an die ioBroker-Engine durchgereicht.

                    🔒 v2.0.x – Security & Architektur-Refactoring

                    2.0.1: Standardisierung des Key-Speicherorts auf 0_userdata.0.wetter_com.info.api_key.

                    2.0.0: * Security: API-Key aus dem Klartext-Quellcode entfernt.

                    Semaphore (isFetching): Verhindert Race-Conditions und Doppel-Abrufe, wenn Timer und manuelle Trigger gleichzeitig feuern.

                    Async-HTTP: httpGet wurde in ein asynchrones Promise gekapselt, um Netzwerkfehler im zentralen try/catch sicher fangen zu können.

                    Daily-Reset: Fehleranfälliger Mitternachts-Cron für requests_today wurde durch datumsbasierte, asynchrone Prüfung vor jedem API-Call ersetzt.

                    📉 v1.9.3 – Budget-Stabilität

                    1.9.3: * Restart-Schutz: Skript-Neustarts lösen keinen API-Call mehr aus, wenn am selben Tag bereits Daten abgerufen wurden (schützt das 100-Calls/Monat Limit bei der Entwicklung).

                    Erweiterter Economy-Mode: Unterscheidung der Trigger-Quellen (morning, afternoon, start).

                    Notlauf-Modus: Fällt das Budget auf einen kritischen Wert, wird nur noch jeden zweiten Tag aktualisiert.

                    Pedder007P Offline
                    Pedder007P Offline
                    Pedder007
                    schrieb am zuletzt editiert von
                    #55

                    @Schimi Danke, läuft nun auch bei mir :-)

                    Pedder
                    All @Proxmox/Trixie auf HP Elitedesk 800 G4; Zigbee: ZigStar (LAN), ~110Devices
                    Unifi, Motioneye/3Reolinks, PiHole, Bosch CS7800i via BBQKees/EMS-ESP, Fronius/BYD 11kWp via Modbus
                    Under construction: Smart-WoMo auf Raspi4

                    1 Antwort Letzte Antwort
                    0
                    • nik82N Offline
                      nik82N Offline
                      nik82
                      Most Active
                      schrieb am zuletzt editiert von
                      #56

                      @schimi
                      Hi, hätte eine kurze Frage: Ich hab mit Iobroker wegen anderem Thema jetzt viel rumprobieren müssen und hab dazu immer wieder Iobroker neustarten müssen, deswegen hab ich leider jetzt schon einen "Monatslimit erreicht".
                      Gibts da eine Möglichkeit das zu unterbinden, auch wenn man mal mehr Neustarts macht? :-)
                      Danke im Voraus.

                      HomoranH 1 Antwort Letzte Antwort
                      0
                      • nik82N nik82

                        @schimi
                        Hi, hätte eine kurze Frage: Ich hab mit Iobroker wegen anderem Thema jetzt viel rumprobieren müssen und hab dazu immer wieder Iobroker neustarten müssen, deswegen hab ich leider jetzt schon einen "Monatslimit erreicht".
                        Gibts da eine Möglichkeit das zu unterbinden, auch wenn man mal mehr Neustarts macht? :-)
                        Danke im Voraus.

                        HomoranH Nicht stören
                        HomoranH Nicht stören
                        Homoran
                        Global Moderator Administrators
                        schrieb am zuletzt editiert von
                        #57

                        @nik82 sagte in [TypeSkript] Wetter.com Forecast/Vorhersage:

                        Gibts da eine Möglichkeit das zu unterbinden, auch wenn man mal mehr Neustarts macht?

                        hast du vorher die Instanz komplett deaktiviert?

                        kein Support per PN! - Fragen im Forum stellen -
                        Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.
                        Das Forum freut sich über eine Spende. Benutzt dazu den Spendenbutton im Header. Danke!
                        der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

                        1 Antwort Letzte Antwort
                        0
                        • nik82N Offline
                          nik82N Offline
                          nik82
                          Most Active
                          schrieb am zuletzt editiert von
                          #58

                          Nein da hab ich nicht dran gedacht ehrlich gesagt, aber die Scripts starten ja dann wieder wenn ich die Instanz starte oder?
                          Klar wenn ich mehrere Starts hintereinander mache dann macht das Sinn, aber ich habe mit meiner Testerei immer so dermaßen den iobroker zerschossen, dass ich einfach meine Proxmox VM jedes mal wieder hergestellt habe.
                          Ist auch nicht so wichtig, weil da wird ja nicht so oft so krass dran rumgefummelt, aber wenns im Script nur eine Kleinigkeit ist, dann könnte man das ja eventuell einbauen :-)

                          1 Antwort Letzte Antwort
                          0
                          • S Offline
                            S Offline
                            Schimi
                            schrieb am zuletzt editiert von
                            #59

                            Deswegen bin ich auch immer ins Limit... aber ausser das du das Skript deaktivierst und erst nach deinen experimenten wieder aktivierst, fällt mir nichts ein....

                            Falls du Skripte testest, könntest du eine zweite JavaSkript Instanz dafür nehmen, wenn diese dann neugestartet wird, bleiben die anderen Skripte unangetastet...

                            ansonsten bleibt nur einen weiteren API key zu beantragen...

                            1 Antwort Letzte Antwort
                            1
                            • nik82N Offline
                              nik82N Offline
                              nik82
                              Most Active
                              schrieb am zuletzt editiert von nik82
                              #60

                              Alles klar, passt, danke dir :-)
                              Ich glaube ich hab mir schonmal einen zweiten Key besorgt, aber der checkt wahrscheinlich die gleiche externe IP und sperrt dann auch wieder, kann das sein?

                              EDIT
                              Hab jetzt grad mal mit einer anderen Emailadresse ein neuen Api Key angefordert und dann eingetragen, log sagt dann aber wieder Monatslimit erreicht.
                              Hab jetzt Fritzbox (aber leider erst nach neuen Api Key Eintrag) gestartet, jetzt hab ich neue externe IP, aber immer noch Limit. Kann das sein?
                              Muss ich evtl. neue externe IP haben und dann erst den neuen Api Key eintragen?

                              1 Antwort Letzte Antwort
                              0
                              • S Offline
                                S Offline
                                Schimi
                                schrieb am zuletzt editiert von
                                #61

                                wenn du einen eneun API key einträgst, musst du die Datenpunkte auch auf 0 setzen, er fragt die Datenpunkte ab...

                                Die API haut nun (ich meine) einen 404 oder so raus und sagt nicht speziell dass, das Limit voll ist (deswegen zähle ich selber)

                                1 Antwort Letzte Antwort
                                1
                                • nik82N Offline
                                  nik82N Offline
                                  nik82
                                  Most Active
                                  schrieb am zuletzt editiert von
                                  #62

                                  @schimi
                                  So sorry, da hät ich natürlich selber drauf kommen können das ich den Datenpunkt auf 0 setze.
                                  Jetzt gehts wieder. Danke dir. :-)

                                  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

                                  450

                                  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