Modul für Weather Underground / Wunderground

Begonnen von Loredo, 26 Oktober 2016, 01:31:36

Vorheriges Thema - Nächstes Thema

stefanru

Hi,

so ich habe es endlich geschafft.
Ich habe die wundergroundAPI so umgebaut, dass sie alle interval Sekunden die PWS Daten holt, aber nur alle cachemaxage Sekunden die Forcast Daten zusätzlich.

Ich finde das entspricht eher dem beschriebenen Verhalten.
cachemaxage:<cachemaxage> Zeitdauer in Sekunden, innerhalb derer die Wettervorhersage nicht neu abgerufen sondern aus dem Cache zurück geliefert wird.

Wenn man das nun mit den 1500 API Calls pro Tag durchrechnet wäre das bei einer Abfrage alle 60 Sekunden und Forecast alle 1800 Sekunden mit 1488 immer noch machbar.

Bei mir habe ich festgestellt dass meine Wetterstation alle 65 Sekunden updated.
D.h. ich möchte die PWS Daten alle 65 Sekunden (1330 Calls) und Forecast alle 1800 Sekunden (48 Calls).
Das lässt genügend raum und ich kann meine Wetterstation ganz aktuell abrufen.

Ich teste die Version noch etwas und würde sie dir @CoolTux dann als Patchfile zur Verfügung stellen.

Meine Änderungen an der API:
# Latest Changes:
# 20.08.2024 return decimalplaces for certain values                   stefanru
# 09.10.2024 get PWS data all intervall seconds, but forecast data only all cachemaxage      stefanru

Gruß,
Stefan


stefanru

Ok,

es funktioniert.
Die API calls sind runter und er updated den Forecast mit cachemaxage.

Ich habe noch ein neues Reading eingeführt, dass das letzte Update des Forecasts angibt.
current_date_time          Do, 10 Okt 2024 21:04    <-- alt: letzte PWS Abfrage
current_forecast_date_time  Do, 10 Okt 2024 20:40    <-- neu: letze Forecast Abfrage

Ich hänge die Version mal an falls jemand testen will.

@CoolTux: Würdest du die Version ins SVN aufnehmen? Oder willst du ein Diff zur aktuellen?

Gruß,
Stefan

CoolTux

Wichtig bei alle dem ist das sich für Leute die einfach nur updaten nichts ändert. Update und alles muss laufen wie bisher. Ist dem so gegeben?
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

stefanru

Hi CoolTux,
es geht nach wie vor alles.

Die Forecast Daten werden aber nur alle cachemaxage Sekunden abgerufen und nicht auch mit dem Interval.
Die live Daten wie bisher jedes Interval.

Der Standard Wert für cachemaxage ist 900 Sekunden also 15 Minuten.

Meiner Meinung nach war das Verhalten bisher ein Bug.
Nun stimmt es mit der Beschreibung überein und behebt das Problem dass die API calls ausgenutzt werden. Man hat nur 1500 am Tag.
Ich versuche gerade noch herauszubekommen wie oft eigentlich Wunderground den Forcast aktualisiert.

Gruß,
Stefan

stefanru

Ok gefunden:
Temporal resolution (how often the forecast is updated)   every 15 minutes   every 4 hours
https://www.wunderground.com/about/data

Also ändert sich mit standard Einstellung nichts.
Hat jemand cachemaxage höher gedreht ging er wohl davon aus, dass es so funktioniert und hat somit auch seine live Daten verzögert.

Im Extremfall hat jemand Interval auf unter 60 Sekunden gedreht, aber cachemaxage auf über 1h.
Da nun die Live Daten mit Intervall anstatt cachemaxage gezogen werden könnten die API calls ausgehen.

Halte ich aber für extrem unwahrscheinlich dass es jemand so eingestellt hat und nicht bemerkt hat das es nicht funktioniert.

Ich bin gerne bereit sollte es einen Fall geben Support zu leisten.
Ich denke das ganze ist ein Bugfix und wir sollten hier zur beschrieben Funktionalität zurückkehren.

Gruß,
Stefan

CoolTux

https://git.cooltux.net/FHEM/mod-Weather


Ich teste das die Tage und gehe davon aus es kommende Woche ins svn zu geben.
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

CoolTux

So Testumgebung steht, leider bräuchte ich bitte einmal eine entsprechende Definition. Könntest Du mir Deine zur Verfügung stellen? Einfach per PM oder Mail senden.
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

CoolTux

Die verbesserte Version von stefanru ist nun im SVN. Vielen lieben Dank für die tolle Arbeit stefanru!



Grüße
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

stefanru

Danke CoolTux!

Jetzt hoffen wir mal, dass es bei niemandem Probleme gibt ;-)

Ich werde jetzt noch die API Calls pro Tag beobachten und basierend auf meiner Station die alle 65 Sekunden Livedaten meldet hier die meiner Meinung nach Idealen Settings beschreiben.

Ich würde mir auch gerne noch den Forecast Tag/Nacht wechsel ansehen.
Der Tag Forecast scheint schon um 15Uhr zu enden.
In der Doku steht:"For any given forecast day we offer day (7am - 7pm), night (7pm - 7am), and a 24-hour forecast (daily summary)"

Ich zeige gern das Tag Icon an bis es bei mir dämmert.
Das Modul schiebt aber nach 15 Uhr die Tag Daten weg, was ja auch nicht verkehrt ist wenn sie nicht mehr aktualisiert werden.

Ich muss mir da mal noch etwas überlegen was für alle Sinn ergibt.
Oder ich speichere mir das Icon in einem User Reading.
Falls jemand ähnliche Gedanken hat und eine Idee für eine gute Lösung bitte melden.

Danke und Gruß,
Stefan



stefanru

Hi CoolTux,

ich teste gerade massiv die Wunderground API mit Debug Ausgaben.

Ich habe festgestellt, dass wenn man in der definition das Interval ändert auf einmal mehrere Timer laufen.
Es war mir nur möglich über einen Neustart von FHEM wieder nur einen Timer mit dem richtigen Interval zu haben.

Ich denke der Timer wird im Weather Core verwaltet.
Ist dir da eine Lücke bewusst?

Danke und Gruß,
Stefan

CoolTux

Bewusst ist mir da nichts. Kann aber gerne die Tage einmal schauen.
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

stefanru

Hi,

habe mich noch etwas weiter mit dem Modul beschäftigt.

Intervall:
Durch den Umbau ist es jetzt möglich die Wetterstations Daten alle 65 Sekunden zu holen und den Forecast alle 900 Sekunden (cachemaxage).
Damit sollte man immer die aktuellsten Daten haben.
Dabei landet man bei 1330 + 96 = 1426 API Calls und hat somit noch 74 Calls frei, sollte man auch an anderen Geräten Daten via API holen.


Neues Reading codeDay:
Da die Wunderground Vorhersage ab 15 Uhr die Tagesvorhersage nicht mehr liefert und nur noch Nacht werte habe ich
noch ein reading codeDay eingeführt welches das icon des Tages speichert und auch nach 15 Uhr behält.

Für mein Tablet UI zeige ich dies an bis es bei mir dämmert, dann wechsle ich auf das aktuelle Nacht Icon (Reading code).
Alle anderen Werte nehme ich natürlich aus der Nachtvorhersage.
Ich möchte einfach nicht um 15 Uhr schon einen Mond auf meinem UI sehen.

Code Verbesserungen:
Des weiteren hatte ich noch den Dumper definiert, ist nun auch wieder auskommentiert.

Ändern des Intervalls:
Ich hatte beim Ändern des Intervalls festgestellt, dass auf einmal 2 Timer liefen.
Das Timer Handling wird aber im Weather.pm (Core) gemacht.
Ich kenne mich mit dem Handling von Timern nicht wirklich aus, habe aber mal reingeschaut.
Kann mir vorstellen, dass beim Ändern des Intervalls während gerade ein Update läuft sowohl ein neuer Timer gesetzt wird (disarm / rearm) als auch am Ende des Updates das parallel läuft wieder dieser Timer gerearmed wird.
Eventuell müsste man über eine Variable im Hash Timer Änderungen während anderer Aktionen verhindern bzw. abwarten bis die andere Aktion fertig ist.
@CoolTux: Macht das Sinn was ich mir hier vorstelle?`

Im Anhang noch die Version mit den Änderungen codeDay und auskommentieren von Dumper.
@CoolTux: könntest du das wieder ins SVN stellen?

Danke und Gruß,
Stefan




Wach69

Hallo, vielen Dank für die vielen Beiträge.

Ich kann über Tasker auf meinem Androiden meine Wetterstationsdaten mit folgender Abfrage erfolgreich abholen und extrahieren:

https://api.weather.com/v2/pws/observations/current?stationId=xxxxxyyyy&format=json&units=m&numericPrecision=decimal&apiKey=c0cb742f146xxxxxxxxyyyyy

Meine Frage an die Community ist nun, ist es grundsätzlich möglich auch über weatherunderground meine Innenraumtemperatur abzufragen. Und falls ja wie müsste ich dann die Abfrage ändern?

stefanru

Hi Wach69,

mir ist nicht bekannt dass die Innentemperatur an Weather Underground übermittelt wird.
Ich denke an die Werte kommst du leider nicht.

Gruß,
Stefan

rabehd

Zitat von: Wach69 am 02 Dezember 2024, 10:07:50Meine Frage an die Community ist nun, ist es grundsätzlich möglich auch über weatherunderground meine Innenraumtemperatur abzufragen.
Wenn Du erklärst wie Deine Innentemperatur dorthin kommt, dann ....
Auch funktionierende Lösungen kann man hinterfragen.