[patch] GDS 4-Tage-Wettervorhersage für einen ausgewählten Ort

Begonnen von jensb, 13 Juni 2015, 22:38:26

Vorheriges Thema - Nächstes Thema

jensb

Hallo,

eigentlich habe ich nur nach einer Möglichkeit gesucht, meine Gartenbewässerung auszusetzten, wenn es regnet, vor kurzem viel geregnet hat oder bald regnen wird, da ich mit direktschaltenden Bodenfeuchtesensoren nicht zufrieden bin. Das GDS-Modul habe ich schon eine ganze Zeit im Einsatz und so konnte ich einige der erforderlichen Daten auch sofort in ein "Wetterfrosch"-DOIF einbauen. Gefehlt hat nur die ortsbezogene Vorhersage von Regen, denn das GDS-Modul unterstützte bisher nur den Abruf von Vorhersagegrafiken (forecastmap).

Ein Blick in das GDS-Modul und die vom DWD verfügbaren Daten hat gezeigt, dass eine ortsbezogene Vorhersage von Niederschlag (und Starkwind) möglich ist, ähnlich wie es das Weather-Modul macht.

Der DWD stellt 4 Vorhersagen für den aktuellen Tag und je 2 für die 3 folgenden Tage in nach Regionen organisierten Textdateien zur Verfügung. Die Dateien für den aktuellen Tag werden abhängig von der Uhrzeit schrittweise durch Leerdateien ersetzt und zum Tageswechsel dauert es fast 1 Stunde, bis Daten für den neuen Tag zur Verfügung stehen. Durch eine Rotation der Vorhersage zum Tageswechsel wird das aber kompensiert.

Heraus gekommen ist der beigefügte Patch mit folgenden Eigenschaften:


  • Vorhersage für eine Region als GET-Kommando in Textform (eigentlich nur um zu sehen, welche Daten zur Verfügung stehen)
  • Vorhersage für eine Station als SET-Kommando als Readings mit Update alle 20 Minuten
  • HTML-Generator für Weblinks, der die 4-Tage-Vorhersage entweder horizontal oder vertikal aufbereitet

Screenshots von den neuen Readings und den beiden Weblinks sind beigefügt, zusammen mit dem Patch.

Wer es ausprobieren möchte, muss vor allem das neue Attribut gdsSetForecast konfigurieren. Das geht am einfachsten, indem man set rereadcfg aufruft und anschließend die gewünschte Station aus der Liste von set forecasts auswählt. Einige Stationen haben beim DWD für die aktuellen Werte und die Vorhersage leicht unterschiedliche Namen (z.B. Münster), und deshalb war das neue Attribut erforderlich. Natürlich kann man sich damit auch einen Spaß machen, indem man für die aktuellen Werte und die Vorhersage wirklich unterschiedlichen Stationen einstellt und jemandem die resultierenden Vorhersage zeigt.

Über Rückmeldungen und Anregungen würde ich mich freuen.

Viel Spaß,

jensb
FHEM 6.1 - RPi 4 Raspbian 12 + PiTFT - OPi Zero Armbian 5.35
EnOcean - (W)LAN/Firmata: BMP180, TSL2561, SHT21, Heatronic 3, OBIS - WLAN/ESP8266: Gardena 1251, Zirkulationspumpe - RTL433: Oregon - Bluetooth - MQTT
Contributions: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/jensb

baumeister

Hallo,

ich finde den Patch sehr gut. Ist er mittlerweile in das offizielle GDS Modul integriert worden? Wäre doch super, wenn man auch die Forcastmeldungen bekommen kann.

Hauswart

1. Installation:
KNX, Tasmota (KNX), Sonos, Unifi

2. Installation:
HM-CFG-USB, Unifi (, SIGNALduino 868, MySensors, SIGNALduino 433)

jensb

Danke für eure positiven Rüchmeldungen.

Habe noch eine kleine Verbesserung vorbereitet, da es in der geposteten Version unmittelbar beim Neustart von FHEM ein paar hässliche Logs geben kann.

Für die mögliche Übernahme der Erweiterung fehlt mir aber noch der Kontakt zum Maintainer des GDS Moduls. Bin momentan unterwegs und komme nur selten ins Netz. Werde mich ab nächster Woche wieder darum kümmern.

jensb
FHEM 6.1 - RPi 4 Raspbian 12 + PiTFT - OPi Zero Armbian 5.35
EnOcean - (W)LAN/Firmata: BMP180, TSL2561, SHT21, Heatronic 3, OBIS - WLAN/ESP8266: Gardena 1251, Zirkulationspumpe - RTL433: Oregon - Bluetooth - MQTT
Contributions: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/jensb

chris1284

http://fhem.de/MAINTAINER.txt

FHEM/55_GDS.pm               betateilchen         http://forum.fhem.de Unterstuetzende Dienste

betateilchen ließt jecoh, wenn überhaupt, nur als gast mit. seinen forum-account hat er gelöscht. ggf muss jemand anderes hier eingreifen und das modul / den patch einchecken

CoolTux

Hallo. Ich wollte das Modul gestern mal testen. Aber nach dem ich nur Abstürze von FHEM beim ziehen der Daten hatte habe ich das erstmal auf Eis gelegt. Ich würde mich sehr freuen wenn hier jemand der Ahnung hat das Modul weiter pflegen und entwickeln würde.


LG
Leon
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

Prof. Dr. Peter Henning

Selber machen, und nicht nur immer von der Arbeitz anderer profitieren ?

Keine Ahnung ? - hatten wir alle mal.

pah

chris1284

#7
Zitat von: CoolTux am 08 Juli 2015, 07:46:31
Hallo. Ich wollte das Modul gestern mal testen. Aber nach dem ich nur Abstürze von FHEM beim ziehen der Daten hatte habe ich das erstmal auf Eis gelegt. Ich würde mich sehr freuen wenn hier jemand der Ahnung hat das Modul weiter pflegen und entwickeln würde.

das liegt nicht am modul, ehr an deiner installation. zur hilfe: http://fhem.de/commandref.html#GDS  attribut gdsPassiveFtp könnte helfen + ein eigener post + logiles. hier sollte das nicht weiter thematisiert werden.

das modul einzuchecken sollte nicht das problem sein, support schon ehr. ich würde erstmal warten ob der gute betateilchen sich noch meldet

chris1284

hallo jensb,

ich würde sagen da keine rückmeldung mehr erfolgte solltest du dir einen svn-account anlegen lassen und es einchecken.
dein modul läuft hier bisher stabil

chris1284

#9
evtl noch ein paar anmrkungen.
warum frueh/spät und nicht den ganzen tag? liefert der dwd dies nicht?
warum die readings nicht einfach halten wie im Weather? die zahlen hinter den readings sind verwirrend (0-12 0-24), warum nicht auch _frueh/_spaet?
die readings der tage bei einander und  nicht verstreut wäre auch schöner (fc1_weakday, fc1_minair, fc1_maxair, fc1_... / fc2_weekday usw bzw fc1_weakday, fc1_minair_frueh, fc1_minair_spaet)
warum den forcast nicht per attribut auf 1-4 tage stellen und dann die daten holen anstatt forcast heute, forcat morgen, forcast übermogen, forcast für tag 4?
Attribut gdsSetForecast sollte ein multiselect der verfügbaren stationen bekommen so das dann zb steht attr gds gdsSetForecast Nordwest....

Hollo

Meine persönliche Meinung:
- es gibt mittlerweile genug Wetter(-vorhersage) Module
- gerade beim GDS-/DWD-Modul habe ich KEINE passende Messstelle in der Nähe (obwohl es laut DWD eine geben soll)
- kleine Module, die nur "eine" Sache, die dafür "richtig" können, finde ich übersichtlicher und stabiler

Dementsprechend hätte ich nichts dagegen, wenn man das GDS-Modul so lassen würde wie es ist.
Abgesehen von evtl. erforderlichen Fehlerbereinigen natürlich.
FHEM 6.x auf RPi 3B Buster
Protokolle: Homematic, Z-Wave, MQTT, Modbus
Temp/Feuchte: JeeLink-Clone und LGW mit LaCrosse/IT
sonstiges: Linux-Server, Dreambox, "RSS-Tablet"

jensb

@chris1284

Bitte sieh dir nochmal mein 1. Posting an. Der DWD liefert für den aktuellen Tag 6-Stunden-Vorhersagen und für die Folgetage 12-Stunden-Vorhersagen. Je nach Vorhersagestunde werden min, mittel oder max-Temperaturen zur Verfügung gestellt. Habe mich deshalb dafür entschieden, als Postfix der Readings die letzte Gültigkeitsstunde zu verwenden. Es ist so zumindest eindeutig. Natürlich könnte man auch morgens, frueh, mittags, spaet und nachts im Namen verwenden, aber das reduziert die Eindeutigkeit wieder.

Im Präfix mit fc zu beginnen, habe ich inzwischen auch schon erwogen, und auch fc1 bis fc4 wären möglich.

Auf die Frage, warum die Forecasts nacheinander geholt werden: Die Modul-Infrastruktur kann derzeit noch kein FTP mget sondern immer nur ein Dokument holen. Holt man die Dokumente alle einzeln unmittelbar hintereinander, wird FHEM zu lange blockiert. Man könnte allerdings über ein Attribut die Tagesanzahl einstellbar machen, die vom DWD abgefragt wird.

Ob man dem Attribut gdsSetForecast eine Auswahlliste der Stationen zur Eingabeunterstützung zur Verfügung stellen kann, werde ich mir ansehen.

Habe gestern versucht, betateilchen, den aktuellen Maintainer des Moduls per Mail zu erreichen, aber noch keine Antwort erhalten. Sollte es dabei bleiben, werde ich die Anpassungen posten und mir einen SVN-Account zum einchecken besorgen.

LG, jensb
FHEM 6.1 - RPi 4 Raspbian 12 + PiTFT - OPi Zero Armbian 5.35
EnOcean - (W)LAN/Firmata: BMP180, TSL2561, SHT21, Heatronic 3, OBIS - WLAN/ESP8266: Gardena 1251, Zirkulationspumpe - RTL433: Oregon - Bluetooth - MQTT
Contributions: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/jensb

jensb

@Hollo

Wie du selbst sagst, gibt es bereits viele Wettervorhersagemodule. Die meisten bieten zumindest eine genauere Ortsauswahl und mehr Daten. Ob die Vorhersagequalität dadurch besser ist, sei dahin gestellt.

Das GDS Modul ist aber meines Wissens das Einzige mit Wetter Made in Germany eines nichtkommerziellen öffentlichen Anbieters. Das kann je nach persönlichem Datenschutzbedürfnis für den einen oder anderen auch ein Grund sein, kein weiteres Modul einzusetzen oder dieses Modul nicht einzusetzen.

Der DWD bietet sehr viel mehr Daten an, als das Modul bisher abfragt. Hier ist noch Luft nach oben. Eine Funktionserweiterung sollte die Stabilität natürlich nicht negativ beeinflussen und optional sein. Die Modulgröße allein kann aber kein Kriterium sein (sonst hätten wir heute vielleich immer noch CPM oder MS-DOS  ;)).

Die Messstellen des DWD sind leider nicht immer auch Meldestellen. Die nächste Messstelle ist bei mir keine 10 km entfernt und die nächste Meldestelle über 30 km.

LG, jensb
FHEM 6.1 - RPi 4 Raspbian 12 + PiTFT - OPi Zero Armbian 5.35
EnOcean - (W)LAN/Firmata: BMP180, TSL2561, SHT21, Heatronic 3, OBIS - WLAN/ESP8266: Gardena 1251, Zirkulationspumpe - RTL433: Oregon - Bluetooth - MQTT
Contributions: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/jensb

Prof. Dr. Peter Henning

Es ist einfach Käse, diese Daten jeweils als Klartext zu holen. Es gibt vor allem beim DWD sehr viel intelligentere Formate, die Wetterdaten enthalten - und damit wäre FHEM auch nicht "blockiert".
Eine genaue Erklärung, wo welche Daten der Grundversorgung zu finden sind, gibt es auf dem FTP-Server des DWD in der Datei /help/legend_basic_service_level.pdf

LG

pah

jensb

Bei der Implementierung der Vorhersage habe ich die vorhandene Funktionsweise des Moduls aufgegriffen, wobei das Parsen der im Verzeichnis gds/specials hinterlegten Textdokumente definitiv in die Kategorie "Käse" fällt.

Die vom DWD zur Verfügung gestellten XML Dokumente sind ein großer Fortschritt, aber es gibt scheinbar nicht für alle Wetterdaten XML-Varianten. Das PDF vom DWD kenne ich und da hatte ich gesucht, bevor ich überhaupt angefangen habe, doch nichts passenderes für Ortsvorhersagen gefunden und mich daher für die Position 25 im PDF entschieden.

Wenn jemand weiß, wo der DWD eine modere Variante der GDS-Ortsvorhersage versteckt hat, wäre ich für einen entsprechenden Tip dankbar.

LG, jensb
FHEM 6.1 - RPi 4 Raspbian 12 + PiTFT - OPi Zero Armbian 5.35
EnOcean - (W)LAN/Firmata: BMP180, TSL2561, SHT21, Heatronic 3, OBIS - WLAN/ESP8266: Gardena 1251, Zirkulationspumpe - RTL433: Oregon - Bluetooth - MQTT
Contributions: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/jensb