Modul für DWD Open Data

Begonnen von jensb, 21 Januar 2018, 14:38:48

Vorheriges Thema - Nächstes Thema

Guenni1404

Danke für die Hilfe.
Ich konnt die Variable über /etc/profile setzen.
Funktioniert jetzt einwandfrei

somansch

Hallo Jens,

erst einmal vielen Dank für die Entwicklung dieses Moduls!

Ich habe die letzte Version erfolgreich ans Laufen bekommen. Hier ein paar wünschenswerte Ergänzungen:


  • zusätzliches Reading für den Wochentag
  • zusätzliches Reading für die Darstellung der passenden Icons im FTUI: Daher mein Vorschlag, sich an die Namenskonvention von Proplanta zu orientieren, da dort bereits zwischen Tag und Nacht unterschieden wird (t1, t2, t3 bzw. n1, n2, n3 usw)

Hier der Auszug aus "widget_weather.js" vom FTUI:
        // PROPLANTA fc#_weather(Day|Evening|Morning|Night)Icon
        // thx to Risiko (http://forum.fhem.de/index.php/topic,34233.msg292189.html#msg292189)
        't1': ':sunny',
        't2': ':partly cloudy',
        't3': ':partly cloudy',
        't4': ':mostly cloudy',
        't5': ':cloudy',
        't6': ':chance of rain',
        't7': ':showers',
        't8': ':chance of storm',
        't9': ':light snow showers',
        't10': ':mixed rain and snow',
        't11': ':snow',
        't12': ':haze',
        't13': ':haze',
        't14': ':rain',
        'n1': ':sunny night',
        'n2': ':partly cloudy night',
        'n3': ':partly cloudy night',
        'n4': ':mostly cloudy night',
        'n5': ':overcast',
        'n6': ':chance of rain night',
        'n7': ':showers night',
        'n8': ':chance of storm night',
        'n9': ':sleet',
        'n10': ':mixed rain and snow',
        'n11': ':snow',
        'n12': ':haze night',
        'n13': ':haze night',
        'n14': ':rain',


Danke im Voraus und viel Grüße
Andreas

jensb

Hallo Andreas,

danke für die Rückmeldung und die Anregungen.

Zitat1. zusätzliches Reading für den Wochentag
Prinzipiell kein Problem und konsistent umsetzbar, wahrscheinlich sogar mehrsprachig in Abhängigkeit der Systemsprache. Werde ich mir ansehen.

Zitat2. zusätzliches Reading für die Darstellung der passenden Icons im FTUI
Proplanta ist hier nicht der Maßstab, denn die Daten vom DWD geben sehr viel mehr Details her. Genau hierin liegt ein Poblem, auch bei der Umsetzung im Weblink. Der DWD liefert Achtel-Bedeckungsgrade, also Werte zwischen 0 - 9 (siehe z.B. hier). Damit noch nicht genug, der DWD liefert einen Bedeckungsgrad für niedrige, mittlere und hohe Elevation, sowie einen Werte für die effektive Bedeckung. Das wären dann schon mal 4 Werte, für die eine zusätzliche Zuordnung erforderlich ist, da das Modul nicht weiß, was den Anwender interessiert.

Der Kern des Problem besteht aber darin, die 10 Werte auf t1 bis t5 abzubilden, so dass die Darstellung des Icon mit der "gefühlten" Bedeckung übereinstimmt. Das ist nicht ganz so einfach wie es zunächst aussieht, da hier auch ein individueller Faktor zu berücksichtigen ist. Schaut man sich die Definition für Proplanta von t1 bis t5 an, sieht man, dass t2 und t3 identische Zuordnungen habe. Hier hat schon jemand einen Kompromiss gemacht.

Daher möchte ich keine FTUI-Readings in das DWDOD-Modul einbauen. Die Interpretation der Daten - genau das macht man nämlich mit den Icons - muss der Anwender (oder derjenige, der die Daten weiterverarbeitet) selbst durchführen. Auch meine eigene Umsetzung im DWDOD-Weblink halte ich an dieser Stelle nicht für ausgereift und experimentiere gerade mit modifizierten Bewertungen der DWD-Daten.

Wenn du eine Lösung kurzfristig selbst implementieren willst, dann sieh dir bitte den Quelltext des Weblinks an. In Zeile 519 beginnt die Funktion DWDOD_IconIMGTag, die für die vorhandenen Readings den Namen des Icons ermittelt. Diese Funktion könntest du für das FTUI umschreiben.

Es würde mir helfen, wenn jemand, der sich mit Meteorologie auskennt, einen Vorschlag macht, wie man die Bedeckungswerte am sinnvollsten auf 4 Icons (wolkenlos, leicht bewölkt, stark bewölkt, bedeckt) umsetzt.

Grüße,
Jens
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

somansch

Hallo Jens,

zu 1.
Danke, das wäre super.

zu 2.
ich verstehe die Problematik, da ich bereits in deinen Code des DWDOD-Weblinks geschaut hatte. Daher der Vorschlag, die Logik für das Definieren der Grafiken nicht dort zu verankern, sodern direkt im DWDOD-Modul. Dies hätte den Vorteil, dass nicht die gleiche Logik wiederum auch im Widget für FTUI nochmals hinterlegt werden muß  ;) und die Readings direkt verwendet werden können. Um jetzt noch ein weiteres "Aufblähen" des Weather-Widgets zu verhindern, ist mein Vorschlag die bestehenden Icon-Bezeichnungen von Proplanta (oder einem anderen Wettermodul des Widgets) zu verwenden. Somit wäre dann das DWDOD-Modul direkt im FTUI nutzbar!

Leider kann ich dir bei der Definition der Zustände aus meteorologisches Sicht keine Zusatzinfos liefern. Auch bin ich kein Programmierer, kann lediglich Code lesen und größtenteils verstehen  ;)

VG
Andreas

jensb

Hallo Andreas,

ohne die beiden Listen mit jeweils 100 Einträgen aus dem DWDOD-Weblink "@dwdod_dayWeatherIconMap" und "@dwdod_NightWeatherIconMap" für das Wettercode-Reading wird sich die Umsetzung für Proplanta nicht realisieren lassen. Diese Listen werde ich nicht in das DWDOD-Modul übernehmen, weil sie von mir innerhalb von ein paar Viertelstunden Tipparbeit aufgrund meiner spontanen subjektiven Bewertung und der zur Verfügung stehenden FHEM-Icons erstellt worden sind.

Hier mein Gegenvorschlag:

Der DWDOD-Weblink bekommt noch eine Perl-Funktion, um für die Parameterkombination aus DWDOD-Hash, Tages-Index, Stunden-Index und Ausgabetyp wahlweise den FHEM-Icon-Namen oder den Proplanta-Typ zu lieferen. Für Proplanta stellst du mir entweder 2 neue Wettercode-Listen zur Verfügung oder eine "Übersetzungstabelle" von FHEM-Icon-Name zu Proplanta-Typ. Würde das für dich funktionieren?




Thema Wetter-Icon

Ich möchte noch einmal auf das Problem mit dem von mir als "subjektiv" bezeichneten Wetter-Icon-Zuordnung zurück kommen. Wenn man draußen die Sonne sehen kann, sollte meiner Meinung nach auch das Wetter-Icon eine Sonne zeigen, selbst wenn der Himmel insgesamt trüb ist.

Nach etwas Grübeln und erneutem Lesen des Wikipedia-Artikels ist mir klar geworden, dass man diese Zuordnung nicht gut am Bedeckungsgrad festmachen kann, da der Bedeckungsgrad die Transparenz des Himmels nur unzureichend abbildet. Für eine bessere Umsetzung der Wettercodes 0 bis 3 in Icons würde der Messwert für den Standardhimmel (nach ISO 15469:2004(E) / CIE S 011/E:2003) helfen. Leider wird dieser Wert vom DWD nicht zur Verfügung gestellt.

Somit bleibt meiner Meinung nach die bisherige Zuordnung anhand des Bedeckungsgrads die einzige Möglichkeit. Spielraum bieten noch die Zuordnung der Bedeckungswerte 0-9 zu den Icons und die Auswahl aus den 4 verschiedenen Bedeckungsgraden für niedrig, mittel, hoch und effektiv. Bei der Auswahl des Bedeckungsgrades könnte man z.B. den Effektivwert nehmen, aber es kommt z.B. auch das Maximum aus niedrig, mittel und hoch in Frage, das z.T. kleiner ausfällt als der Effektivwert. Aktuell kann ich nicht sagen, welcher Ansatz besser ist. Hat jemand einen Vorschlag?

Grüße,
Jens
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

Im 1. Post dieses Threads ist ein Update des DWD_OpenData-Moduls und des Weblinks zu finden, das den Wunsch von @somansch nach einem Wochentag-Reading für die Vorhersage umsetzt.

Wer mit der neuen Version z.B. englische Wochentage angezeigt bekommt, findet am Ende der Installationshinweise in der Modulhilfe Informationen, wie man die Sprache der Wochentage anpassen kann.

Der "neue" Weblink verwendet außerdem den Effektivwert "Nf" statt des Werts aus mittlerer Höhe "NM" für die Bedeckung. Dadurch wird die Anzeige für den niederschlagsfreien Himmel typischerweise pessimistischer als vorher, aber wahrscheinlich realistischer.

Das DWD_OpenData-Modul erscheint mir inzwischen ausreichend stabil. Daher werde ich es demnächst in FHEM einchecken.

Grüße,
Jens
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

Tsturm

#111
Hallo zusammen,

schön, dass es mit dem DWD weitergeht - vielen Dank. Wollte das Modul heute einspielen, habe aber einen Fehler im Log:

018.04.15 22:16:31 1: reload: Error:Modul 55_DWD_OpenData deactivated:
Experimental push on scalar is now forbidden at ./FHEM/55_DWD_OpenData.pm line 1115, near "])"
Experimental push on scalar is now forbidden at ./FHEM/55_DWD_OpenData.pm line 1165, near "))"
Experimental push on scalar is now forbidden at ./FHEM/55_DWD_OpenData.pm line 1166, near "))"
Experimental push on scalar is now forbidden at ./FHEM/55_DWD_OpenData.pm line 1167, near "))"
Experimental push on scalar is now forbidden at ./FHEM/55_DWD_OpenData.pm line 1168, near "))"


Version:
This is perl 5, version 24, subversion 1 (v5.24.1) built for arm-linux-gnueabihf-thread-multi-64int
(with 80 registered patches, see perl -V for more detail)


Der Fehler ist schon mal diskutiert worden, scheint an Perl zu liegen - ich bin aber wirklich kein Perl-Guru... :-\
https://forum.fhem.de/index.php/topic,58924.15.html

Any hints?

VG timmo


moskito

Hups, da war jemand noch schneller... :)

Hallo Jens,

habe noch ein Testsystem mit Armbian am laufen, bei dem das Modul nicht geladen wird.

perl -v

This is perl 5, version 24, subversion 1 (v5.24.1) built for arm-linux-gnueabihf-thread-multi-64int


Als Fehlermeldung nach dem definieren erscheint im Log:
reload: Error:Modul 55_DWD_OpenData deactivated:
Experimental push on scalar is now forbidden at ./FHEM/55_DWD_OpenData.pm line 1115, near "])"
Experimental push on scalar is now forbidden at ./FHEM/55_DWD_OpenData.pm line 1165, near "))"
Experimental push on scalar is now forbidden at ./FHEM/55_DWD_OpenData.pm line 1166, near "))"
Experimental push on scalar is now forbidden at ./FHEM/55_DWD_OpenData.pm line 1167, near "))"
Experimental push on scalar is now forbidden at ./FHEM/55_DWD_OpenData.pm line 1168, near "))"


Auf meinem Produktivsystem mit Perl 5.20 funktioniert das Modul einwandfrei.

Könntest Du da mal nach schauen?

Gruß
Danny
FHEM auf Intel NUC/Proxmox & Debian 12 + HM-CFG-USB + zigbee2mqtt + Zwave + Enocean

curt

Hallo allerseits,

gewünscht wird ein aktuelles howto - um die Sache zum Laufen zu bekommen. (Ich bin blond, jung, naiv , Anfänger, immer noch Anfänger. Ein aktuelles Beispiel an Hand eines konkreten deutschen Ortes - das wäre sehr-sehr schön.

Nebenbei: ich kann dann auf Grund der Regenvorhersage dem Rasen-Movie sagen, dass er heute in seinem Garagen-Nest durchschlafen kann?

Ich will aber nicht weiter stören, ich bin ja ... siehe oben.
Freundliche Grüße.
RPI 4 - Jeelink HomeMatic Z-Wave

jensb

Hallo Timmo und Danny,

danke für die konstruktiven Rückmeldungen. Wenn es die neueren Perl-Version genau nehmen, ist das nicht zu ändern. Im 1. Post ist nun ein Update. Bei mir macht es keinen Unterschied. Bitte prüft ob es für euch das Problem löst.

Grüße,
Jens
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

Intruder1956

habe die gleichen Fehler gehabt,
die gerade von dir neue Datei läuft bei mir, mit Perl  (v5.24.1)

Gruß Werner
Zotac CI547 32GB RAM 500GB SSD,ESXI 6.5, VM-Fhem5.8, VM-ioBroker, Cul 868Mhz;Cul 433Mhz = Busware, LGW, HM-MOD-RPI-PCB, Uniroll, IT YCR-100 TMT2100,ITR-1500, LD382 mit Wifilight, ESA 2000 + SENSOR WZ SET,FS20 TFK, HM-Sec-SC, HM-CC-RT-DN,PCA301,

jensb

#116
@curt

Zitatgewünscht wird ein aktuelles howto
Wünsche ich mir auch. Weder das Modul noch die Modulhilfe sind vom DWD/Himmel/Wasauchimmer gefallen. Wir wärs mit Mithilfe?

HowTo: Zuerst aktuelle FHEM-Konfiguration sichern. Dann einfach mal versuchen das Modul mit define anzulegen. Wahrscheinlich klappt das nicht auf Anhieb. FHEM-Logfile überprüfen und in der Modulhilfe nachlesen, woran es liegen könnte. Änderungen durchführen und noch mal versuchen. Solange wiederholen bis sich Erfolg einstellt. Bei Verzweiflung hier noch einmal mit konkreter Frage melden.

Zitatich <> kann dann auf Grund der Regenvorhersage dem Rasen-Movie sagen, dass er heute in seinem Garagen-Nest durchschlafen kann?
Was dein Rasen-Dings versteht und wieviel Schlaf es braucht kann ich nicht beurteilen, aber genau das mach ich vom Prinzip her, nur dass ich damit den Wasserhahn auf- und zudreh. Dazu nehme ich noch die Taupunktdifferenz und das Integral über die Infraroteinstrahlung und ein paar magische Zahlen. Das funktioniert ganz gut, gehört aber nicht wirklich in diesen Thread.

Grüße,
Jens
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

fini

ich bin zu doof oder zu alt dafür  ???
wie muss ich das jetzt installieren?
habe alle einträge durch, nichts genaues gefunden...

fini

jensb

Der 17.04.2018 ist gekommen und gegangen und keiner hat es gemerkt 8) Trotz anders lautender Unkenrufe funktionieren bei mir die Wetterwarnungen noch. Ich hoffe das ist bei euch genauso.

Es empfiehlt sich aber beim nächsten schlechten Wetter zu überprüfen, ob für die eigenen Warnzelle immer noch Daten geliefert werden.

Grüße,
Jens
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

@fini

Zitathabe alle einträge durch, nichts genaues gefunden...
In mehreren Posts zu diesem Thema steht, dass die Installation in der Modulhilfe beschrieben wird (u.a. auch in dem Post unmittelbar vor deinem). Hier noch einmal das prinzipielle Vorgehen:


  • Modul-Datei 55_DWD_OpenData.pm aus dem 1. Post herunterladen und im FHEM-Ordner speichern
  • Auf dem FHEM-Server in das FHEM-Hauptverzeichnis wechseln und das Kommando "contrib/commandref_join.pl" ausführen, um die Commandref zu aktualisieren, anschließend die Commandref aufrufen und die Installationsbeschreibung zu DWD_OpenDaten durchlesen. Alternativ die Modul-Datei mit einem Texteditor öffnen: die Modulhilfe ist ganz am Ende
  • Es müssen zusätzliche Perl-Module installiert sein und die Betriebssystemeinstellungen für Zeitzone (TZ) und Sprache (LANG) müssen korrekt eingestellt werden. Diese Installationsdetails sind in der Modulhilfe beschrieben - also lesen und anpassen
  • In der Modulhilfe steht: "define <name> DWD_OpenData" um das Modul zu laden - also ausprobieren
  • Je nach gewünschter Funktion (Vorhersage bzw. Wetterwarnung) den jeweiligen Link aus der Modulhilfe aufrufen, um vom DWD ein Dokument mit der Warnzellenliste bzw. Stationsliste herunterzuladen. Aus diesem Dokument die gewünschte Wanrzellen-ID bzw. den Stationscode auswählen und als Attribut im Modul eintrage. Alle das und weitere Details stehen ebenfalls in der Modulhilfe
  • Abschließend "get alers" bzw. "get forecast" aufrufen, um auszuprobieren, ob es funktioniert

Grüße,
Jens
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