roe-dl / weewx-DWD

Darstellung von Wettersymbolen in WeeWX sowie Vorhersage- und Warndaten herunterladen und für WeeWX und Web-Darstellung aufbereiten
GNU General Public License v3.0
19 stars 4 forks source link

$current.biowetterIssued manchmal undefiniert #69

Closed olwaldi closed 2 months ago

olwaldi commented 3 months ago

Ungefähr zwischen 11:00Uhr und 12:00Uhr ist die Variable $current.biowetterIssued (regelmäßig) undefiniert. Ggf. als Hinweis: In der Fußnote der Biowetter-Tabelle liegt die Vorhersage-Zeit einige Minuten VOR der Herausgabe-Zeit, z.B.

herausgegeben vom [DWD](https://www.dwd.de/) am 03.08.2024 11:00 | Vorhersage erstellt am 03.08.2024 10:58

Bei der Pollen-Tabelle tritt dieses Problem nicht auf.

roe-dl commented 3 months ago

Die Biowettervorhersage gilt immer für halbe Tage, früh also von 00:00 Uhr bis 12:00 Uhr. Die neue Vorhersage kommt aber schon 11:00 Uhr und enthält die Werte für den aktuellen Vormittag nicht mehr. Damit gibt es zwischen 11:00 Uhr und 12:00 Uhr nur Werte für die Zukunft. $current.biowetterIssued müßte in dieser Zeitspanne noch das Veröffentlichungsdatum vom Vortag liefern, denn nur da sind Werte für diesen Zeitraum enthalten.

Grundsätzlich kann $current.biowetterIssued zwischen 11:00 Uhr und 12:00 Uhr nur dann definiert sein, wenn WeeWX zwischen 10:55 Uhr und 12:00 Uhr NICHT neu gestartet wurde.

Die Pollenvorhersage gilt dagegen immer für ganze Kalendertage. Auch die um 11:00 Uhr erscheinende Ausgabe enthält also Werte für den aktuellen Vormittag. Damit besteht das Problem hier nicht.

roe-dl commented 3 months ago

Nachdem es hier seit 4 Tagen keine weiteren Kommentare gegeben hat, gehe ich mal davon aus, daß der Fix das Problem gelöst hat.

olwaldi commented 2 months ago

Habe erst heute das aktualisierte weatherserviceshealth.py angeguckt. Jetzt ist biowetterIssued zwar immer gesetzt, "lügt" aber beim Datum: Gegen 11:00 wird ein neuer Datensatz vom DWD bereitgestellt und auch in der Biowetter-Tabelle angezeigt. biowetterIssued meldet aber weiterhin das Datum vom Vortag (dessen Werte in der Biowetter-Tabelle gar nicht mehr enthalten sind). Nach 12:00 paßt biowetterIssued wieder und zeigt das aktuelle Download-Datum an.

Aus meiner Sicht sollte biowetterIssued "einfach nur" das Datum des Downloads enthalten (so wie's auch in der Fußnote der Biowetter-Tabelle drinsteht).

roe-dl commented 2 months ago

Dann machen wir das Issue mal wieder auf. Sorry, daß ich zu ungeduldig war.

$current.biowetterIssued "lügt" nicht. Neben $current.biowetterIssued gibt es noch $current.biowetterValue.raw und $current.biowetterExpectedThermalStress. Diese drei Variablen gehören zusammen und liefern die jeweils aktuell gültigen Werte (halt "current"). Für den Zeitraum bis 12:00 Uhr sind das die Werte aus dem Datensatz vom Vortag, die für diesen Zweck zwischengespeichert werden.

Für die Tabellendarstellung, die ja selbst ein Ausgabedatum enthält, wird nichts zwischengespeichert. Das bedeutet, daß mit Herausgabe des neuen Datensatzes gegen 11:00 Uhr die Werte für den laufenden Vormittag nicht mehr verfügbar sind. Die Tabelle enthält nur Daten ab dem Nachmittag.

Das Datum des letzten Downloads ist $current.biowetterLastUpdate.

olwaldi commented 2 months ago

Dann habe ich das issued als herausgegeben bzgl. Biowetter-Tabelle falsch interpretiert. Zusammen z.B. mit ExpectedThermalStress machts dann wie implementiert Sinn.

Danke für die Erläuterung, Michael

Nachtrag: Ich nutze dann einfach den ExpectedThermalStress (vermutlich Integer-Werte zwischen -2..2) in meinem Seasons-Skin:

Thermische Belastung $current.biowetterExpectedThermalStress.format("%.0f") für $current.biowetterIssued

Ohne format gibts viele Nullen hinter dem Komma:-)

roe-dl commented 2 months ago

vermutlich Integer-Werte zwischen -2..2

-4...+4

in beide Richtungen schwach, mäßig, stark und extrem

Ohne format gibts viele Nullen hinter dem Komma

Ich ordne den Wert mal group_count zu, dann kommen die Nachkommastellen nicht mehr.

roe-dl commented 2 months ago

Hier mal noch ein Verweis auf die Symbole für die thermische Belastung: https://github.com/roe-dl/weathericons/blob/master/thermalstress/README.md

Im Programm werden die Symbole allerdings berechnet. Die Krümmung des Mundes richtet sich nach einer Formel. Das ist dort keine Auswahl aus Graphikdateien.

olwaldi commented 2 months ago

Ich hatte auch kurz überlegt, ob ich irgendwie die Symbole in meinem Seasons-Skin verwenden kann. Stattdessen mappe ich den ThermalStress auf die Erläuterungsstrings. Klappt prima. Ich habe aber viele Versuche gebraucht, bis ich auf das Suffix .raw gekommen bin:

  <div class="widget_contents">
    #set $thermalstress = $current.biowetterExpectedThermalStress.raw
    #if $thermalstress >= 0
      #set $stresstype = "Wärmebelastung"
    #else
      #set $stresstype = "Kältebelastung"
      #set $thermalstress = -$thermalstress
    #end if
    <p class="widget_forecast">$stresstype:
    #if $thermalstress == 1
      schwach
    #elif $thermalstress == 2
      mäßig
    #elif $thermalstress == 3
      stark
    #elif $thermalstress == 4
      extrem
    #else
      keine
    #end if
    (von $current.biowetterIssued)
    </p>
 </div>