neues Wetter Modul - DWD Open Data

Begonnen von somansch, 10 April 2018, 23:49:05

Vorheriges Thema - Nächstes Thema

curt

Hallo Andreas @somansch

zunächst einmal herzlichen Dank für die Veröffentlichung!

Zitat von: somansch am 13 November 2018, 22:05:13Bin kein Entwickler, stehe aber gern als Betatester zur Verfügung  ;).

Dann sind wir schon mal drei, also an Beta-Testern besteht wohl kein Mangel. <lacht>

Ok, ich verstehe in der Tendenz, was da gemacht wird. Für einen Test würde ich Dich um Deine Stationsdaten (PN) bitten: Ich muss verstehen, warum er bei mir nicht alle Daten auswirft.

Aber der Reihe nach:
Ich habe das im ersten Schritt fast 1:1 übernommen - Ergebnis: Das fängt zwei Tage später an, alles (wirklich alles) untereinander und die Sonne lacht mich über den kompletten Bildschirm an (sieht wirklich lustig aus). Ok, ich nutze gridster. Die von Dir verwendeten class-Angaben riechen nach flex, damit habe ich keine Erfahrungen.

Ich habe dann mit nur einem Tag (verschiedene nacheinander) getestet: Außer zwei Temperaturen, der Sonnenscheindauer und dem riesigen Symbol kommt nix. Die Readings sind aber scheinbar da. Bzw. das wäre als Fleißarbeit genauer zu prüfen. Leider weiß ich momentan nicht, wie man sich im Template einfach mal die angesprochenen Readings ausgeben läßt - also wie die heißen, die angesprochen werden.

Den Teil würde ich gern abkürzen wollen: Ich würde gern ganz kurz mit Deinen beiden Stationsangaben testen wollen. Natürlich nur PN.

Ach so, Versionsvergleich:

# ls -l *DWD*
-rw-r--r-- 1 fhem dialout 77974 Sep 30 01:16 55_DWD_OpenData.pm
-rw-r--r-- 1 fhem dialout 65239 Sep 30 02:26 99_DWD_OpenData_Weblink.pm


Bei Dir identisch?
RPI 4 - Jeelink HomeMatic Z-Wave

curt

Stunden und einige graue Haare später: Kommando zurück!
Die Readings purzelten so nach und nach rein. EDV ist halt doch Magie mit Zaubersalz.

Im Moment überlege ich, wie man nun damit umgeht: Der eine möchte es so wie Du, der nächste (wie ich) nutzt das Gridster-Kachelformat, der übernächste möchte eine große Sonne und die Werte ringsrum klein - das ist ja alles Geschmackssache.

Die Idee mit Templates ist genial. Nach der reinen Lehre der Informatik würden da allerdings die Formatierungen nicht rein gehören: Die Formatierungen sollten alle vom aufrufenden Element vorgegeben werden. Keine Ahnung ob FTUI da an seine Template-Grenzen stößt.

Rein gefühlt (und ganz unfertig gedacht) müsste man wohl aus dem einen Template mehrere Templates machen - pro Objekteigenschaft eine. Also Template Sonnenscheindauer am x-Tag, Minimumtemperatur am x-Tag und so weiter.

Das wäre nur dann vermeidbar, wenn man einem Template gleich ZWEI Parameter übergeben könne: Der Ziel-Tag sowie die konkrete Objekteigenschaft. Das scheint nicht zu gehen, zumindest habe ich dazu nichts gefunden. Vielleicht kann @setstate kurz sagen, ob man mehr als einen Parameter übergeben kann - und wenn ja: Wie.

BTW: Was Du mit "nacht" meinst habe ich leider nicht verstanden.
RPI 4 - Jeelink HomeMatic Z-Wave

OdfFhem

https://wiki.fhem.de/wiki/FHEM_Tablet_UI#Templates und dann unter Wetter-Slider mit Template.

Hier werden 4 Parameter übergeben.

Im Beispiel von somansch werden allerdings auch schon 2 Parameter übergeben ...

Knallkopp_02

#18
Sorry für die späte Antwort,

hier nochmal mein HTML DIV Block für FTUI


<div style="width:20%; margin:0px; float:left; border-style: solid; border-color: transparent">
<div class="inline left big left-space" data-type="label" data-device="Wetter_DWD" data-get="fc0_weekday"></div>
<div class="inline right big right-space" data-type="label" data-device="Wetter_DWD" data-get="fc0_0_time"></div>
<div class="tiny inline" data-imageset="kleinklima" data-type="weather" data-device="Wetter_DWD" data-get="fc0_0_wwd"></div>
<div class="tall" data-type="label" data-device="Wetter_DWD" data-get="fc0_0_TTT" data-unit="&deg;C" data-fix="0"></div>
<div class="inline">Regen: </div><div class="inline" data-type="label" data-device="Wetter_DWD" data-get="fc0_0_wwP" data-unit="%" data-fix="0"></div>
<div></div>
<div class="inline">Wind: </div><div class="inline" data-type="label" data-device="Wetter_DWD" data-get="fc0_0_FF" data-unit="Km/h"></div>
</div>


und das was ich in Fhem definiert habe.


defmod Wetter_DWD DWD_OpenData
attr Wetter_DWD forecastDays 5
attr Wetter_DWD forecastProperties wwP,FF,DD,FX1,Neff,TTT,ww,Tg,Tn,Tx,RR6c,RRhc,Rh00
attr Wetter_DWD forecastResolution 3
attr Wetter_DWD forecastStation !!!!!HIER DEIN STATIONSCODE!!!!!
attr Wetter_DWD forecastWW2Text 1

Die Frage ist wie man am einfachsten und am schönsten und variabelsten die Daten in FTUI oder einem andern Frontend angezeigt bekommt, ohne das man sich als Laie immer wieder fragen muß was oder wie muss ich was machen.

Ich würde hier gern eine Art Liste aufstellen, mit Wünschen, Ideen etc.

Wünsche:
-Generelle Tag/Nacht Icons
-Variable Beschreibungen/Texte des Wetters
-Mehr Grafiken (Kleinklima ödere andere)

Ideen:
-Umsetzungen der Beschreibungen/Texte evtl. extern in einer separaten Datei die der User einfacher für sich anpassen kann. (Beispiel: ,,leichtes oder mäßiges Gewitter mit Graupel oder Hagel" ist als Infotext auf einem kleinen Display sehr viel)
-Definition der Icons generell sehr eingeschränkt was Kleinklima angeht. (Beispiel: egal ob es wenig oder viel regnet, laut Icon geht immer die Welt unter.)
-Vereinfachung der JS


@setstate, ich weiß, wir hatten das schonmal angerissen, dass du das nur ungern anpackst und ach nicht selber testen kannst, da du das nicht selbst im Einsatz hast, aber evtl könnte man das ja doch mal angehen, wenn du etwas Zeit entbehren kannst.


Gruß
Ich bin kein Programmierer und habe keine Ahnung.

Raspberry PI 3B+ mit HM-MOD-RPI-PCB,     
HM-TC-IT-WM-W-EU, HM-CC-RT-DN, HM-SEC-SCo
Raspberry PI 3B+ mit 7" Touchdisplay

curt

Zitat von: OdfFhem am 14 November 2018, 03:11:26
https://wiki.fhem.de/wiki/FHEM_Tablet_UI#Templates und dann unter Wetter-Slider mit Template.
Hier werden 4 Parameter übergeben.
Im Beispiel von somansch werden allerdings auch schon 2 Parameter übergeben ...

@OdfFhem : Hmmm. Ja. Nein.
Das weather-Widget funktioniert (wohl) wie ein Filter für eingegebene Werte (Readings) eines der Wettermodule. Entweder leitet es durch oder gibt zugehörige Grafiken aus. Daher ist es auch für DWD-opendata-Wetter nutzbar.

@somansch macht nun folgendes: Er hat ein Template, in dem die Codierung des anzusteuernden Tages mit der Codierung des konkreten Wertes (zB Sonnenscheindauer) kombiniert/zusammengefügt werden. Das ist schon sehr pfiffig - zumal (derzeit) die Programmierer beim DWD wohl immer mal wieder die Parameter umbenennen. In solchen Fällen müsste man nur einmal das Template anfassen.

Sein derzeitiges Template hat aus meiner Sicht mehrere konzeptionelle Nachteile: Die Formatierung/optische Steuerung passiert im Template, da gehört sie im Idealfall aber nicht hin. Das muss im eigentlichen File erfolgen. Zudem ist im Template vorab vorgegeben, was ausgegeben werden muss, auch nicht sooo günstig.

Die Frage (die ich derzeit nur mit "vielleicht" beantworten kann) ist nun, ob man eine if-then-Steuerung im Template realisieren kann: Ein Parameter sagt an, was ausgegeben werden soll. Ein anderer Parameter sagt an, welcher Tag adressiert wird ... Vorteil wäre: Alles in einem Template. Sonst liefe es auf mehrere Templates hinaus. Ob ich das kann - keine Ahnung.

@Knallkopp_02
Danke für Deine Codeveröffentlichung (noch nicht angesehen). Ich würde denken, dass wir im Moment @setstate in Ruhe lassen: Zunächst müssen wir mal schauen, was wir selbst hinbekommen. Ich bin da ja nun wirklich kaum 24 Stunden dran. Und vielleicht ist @OdfFhem ja genau unser Mann.

Zu Den Grafiken:
Du könntest mal bitte im Forum rumsuchen: Es gibt einen Thread, da geht es um WEITERE FREIE Icon/Bildersammlungen. Da wurden mindestens zwei weitere erwähnt, die riesig sind und die man selbst einbinden könne. Falls Du die findest, könntest Du vielleicht bitte da mal nachschauen, ob da passende Wetter-Icons dabei sind.

Ich selbst: Ich werde heute und in den nächsten Tagen mit den von Euch dankenswerterweise gegebenen Vorlagen rumspielen. Wenn da was Sinnvolles herauskommt, sage ich das natürlich.
RPI 4 - Jeelink HomeMatic Z-Wave

curt

@somansch
Ich muss mal ein paar dumme Fragen fragen ...

In #2 hast Du ja einen Screenshot. Der stimmt leider nicht mit Deinem Template überein, Stichwort Windrichtung. Kannst Du bitte einen aktuellen Screenshot zeigen?

Wie ist das Template eigentlich entstanden: Selbst geschrieben oder selbst gefunden und angepasst?

Folgendes bitte nicht als Kritik verstehen (ist ja Deins, Dir gefällt es), sondern als Verständnisfrage:
Bei Temperatur hast Du Min/Max - entstand das nach der Schrotschussmethode "ich nehme 0600 und 1500 Uhr" oder so? Oder wie genau?

Alles andere (Regenmenge, Regenwahrscheinlichkeit, Windrichtung) ist dann Vormittag/Nachmittag? Welche Zeiten genau?

@Knallkopp_02
Das Modul gibt sehr viel mehr als nur eine Wolkenbruch-Wolke her. Wir brauchen also mehr Wolken (im Sinne von verschiedenen Icons). Ich habe keine Ahnung, ob im Set "kleinklima" diese verschiedenen Wolken vielleicht sogar schon drin sind. Und heute auch keine Nerven dafür - magst Du da mal nachschauen?
RPI 4 - Jeelink HomeMatic Z-Wave

Knallkopp_02

@curt,

ich habe mir schon vor einigen Tagen die Grafiken von Kleinklima angesehen, dort sind ca. 50 Stück (Tag/Nacht und Allgemeine).
Diese bilden viel ab, aber warscheinlich nicht alles was DWD könnte.

Hauptsächlich ist die "Übersetzung" der verschiedenen Wettermodule in ein einheitliches Muster wichtig, damit die Icons angezeigt werden. Aktuell ist es bei DWD egal, ob es nieselt oder heftig regnet, es ist beides mit dem gleichen Icon definiert.

ich werde mich jetzt mal an die Geschichte mit den Templates machen, das ist eine Sache die ich sehr interessant finde.

Gruß
Ich bin kein Programmierer und habe keine Ahnung.

Raspberry PI 3B+ mit HM-MOD-RPI-PCB,     
HM-TC-IT-WM-W-EU, HM-CC-RT-DN, HM-SEC-SCo
Raspberry PI 3B+ mit 7" Touchdisplay

curt

@Knallkopp_02
Zitat von: Knallkopp_02 am 15 November 2018, 13:31:19
ich habe mir schon vor einigen Tagen die Grafiken von Kleinklima angesehen, dort sind ca. 50 Stück (Tag/Nacht und Allgemeine). Diese bilden viel ab, aber warscheinlich nicht alles was DWD könnte.

Hast Du Lust, ein gutes Werk zu tun?


cd /opt/fhem/www/tablet/js


Die spannende Datei ist widget_weather.js. Als erstes machst Du sinnvollerweise eine Sicherungskopie der Datei. In der Datei suchst Du dann nach "// DWD_OpenData (by somansch)". Der fragliche Abschnitt geht bis VOR die Zeile " //Wunderground". Schau mal bitte genau hin.

Das scheint mir die Umsetzung der Texte von DWD nach den Grafiken von Kleinklima zu sein. Dir wird auffallen, dass ganz verschiedene Zustände nach rain.png gemappt werden (analog andere wie Schnee usw.). Du könntest jetzt einfach nach besseren Grafiken von Kleinklima suchen - und den passenderen Dateinamen einsetzen.

Du weißt sicher, dass Du dann FHEM neu starten musst: Kommandozeile von FHEM im Browser: "download restart".

BTW: Es gibt eine WebSite kleinklima.de - vermutlich sind die Grafiken von dort. Was ich nun nicht weiß: Ob der Betreiber (das ist wohl ein Designer) FHEM die Grafiken schenkte - oder ob die schnöde "weggefunden" wurden.

Zitat von: Knallkopp_02 am 15 November 2018, 13:31:19
ich werde mich jetzt mal an die Geschichte mit den Templates machen, das ist eine Sache die ich sehr interessant finde.

Ich hatte wenig Zeit, bin aber gedanklich inzwischen an folgendem Punkt:
Aus dem Template von @somansch werde ich (zumindest testweise) ganz viele Templates machen. Für jeden Zustand ein Template. Ohne das schon getestet zu haben, scheint mir das im Moment der beste Weg.

Es scheint (Vermutung) ein Problem zu geben: Die Einzelwerte sind ein 3-Stunden-Raster der Vorhersage, also vermutlich; ich muss da mal den Entwickler des DWD-Moduls (wohl @jensb) fragen und hoffen, dass da nicht die Antwort "lies Doku" kommt: Die DWD-opendata-Doku des DWD scheint sehrsehr umfangreich zu sein.

Wenn wir aber nur 2-Stunden-Werte haben, dass ist "Min/Max" eine wilde Annahme: Das mag gerade so bei Temperatur noch gehen, bei Wind und Windrichtung geht das dann definitiv schief. Und bei dem Sonnensymbol auch.
RPI 4 - Jeelink HomeMatic Z-Wave

somansch

Sorry, bin etwas im Stress und klinke mich jetzt wieder ein, um ein paar Fragen zu beantworten.

Der angefragte Screenshot zu meinen Templates ist aktuell in #14. Musst eventuell nach rechts scrollen ;).

Das Template habe ich auf Basis von anderen Templates erstellt, welche ich irgendwann einmal von einem anderen User bekommen habe...

Die grafische Darstellung ist so zu verstehen: alles ab dem linken Wettersymbol ist "Tag", alles nach dem rechten Wettersymbol ist "Nacht". Bei Proplanta nutze ich ein ähnliches Template, dort gibt es auch für nachts ein Wettersymbol, somit ist es eindeutiger. Wäre also schön, wenn auch für DWD solch ein Reading irgendwann einmal zur Verfügung stehen würde.

Die min und max Temperatur für den Tag gibt es als direktes "Tagesreading": Tx bzw. Tn.

Für die anderen Readings musste ich mir die passende Uhrzeit raussuchen. Ein komplette Übersicht der Inhalte der Readings ist hier gelistet: https://www.dwd.de/DE/leistungen/opendata/help/inhalt_allgemein/opendata_content_de_en_xls.xls (Scheint gerade nicht erreichbar zu sein).

Für das Icon-mapping im Weather-Widget hatte ich mir eine Tabelle angelegt. Im Anhang als Referenz.

Ich hoffe, das hilft.

Viele Grüße
Andreas


Knallkopp_02

#24
@curt,

Als Alternative Grafik Ressource könnte man bei Deviantart mal vorbei schauen, ob man dort frei zur Verfügung stehenden icons bekommt,das war vor Jahren mal ein interessantes Portal dafür.

Was die Templates angeht bin ich bei mir in eine Sackgasse geraten, da sich mein Aufbau der FTUI Oberfläche nicht damit verträgt. Hätte das auch gern so übernommen aber die Listen werden nicht so angezeigt wie ich das brauche. Oder ich habe den Dreh noch nicht raus. Das wäre sonst nämlich eine große Erleichterung.


@somansch,

Ich habe gestern Abend eine Tag/Nacht Funktion in der widget_weather.js für DWD testweise realisieren können. Habe dazu einiges umbauen müssen, aber die Anzeige scheint soweit zu laufen.

Leider habe ich eine sehr unangenehme Nebenwirkungen dass sich mein FHEM/Raspberry in unregelmäßigen Abständen aufhängt/nicht reagiert. Die Anzeige auf dem Display funktioniert weiter, nur habe ich keinen Zugriff mehr auf das Gerät. Nur Stecker ziehen und neu starten hilft.

Da ich nicht genau weiß, ob es evtl an einer schlechten WLAN Verbindung hängt -vorher ging es aber- oder an meinen Anpassungen, will ich noch mehr testen.

Gruß
Ich bin kein Programmierer und habe keine Ahnung.

Raspberry PI 3B+ mit HM-MOD-RPI-PCB,     
HM-TC-IT-WM-W-EU, HM-CC-RT-DN, HM-SEC-SCo
Raspberry PI 3B+ mit 7" Touchdisplay

curt

Auch ich habe leider nicht immerzu für FHEM, FTUI Zeit.

@somansch
Herzlichen Dank!

Übrigens hatte sich auch @jensb (der Modulautor auf der FHEM-Ebene) in einem anderen Thread erklärend gemeldet.

@Knallkopp_02
Blockieren von FHEM hatte ich noch nie. Aber dazu gibt es Threads. Suchbegriff sollte "blocking" und Derivate wie noblocking nonblocking usw. sein. Im Grunde müsstest Du zunächst herausfinden, wer der Übeltäter ist.

Bei dem Template bin ich schon weiter. Das sind jetzt ganz viele kleine Templates. Allerdings kam ich noch nicht dazu, einzelne Werte (ich denke an jeweils höchstens drei) in eine Kachel einzubinden. Wenn ich da weiter bin, melde ich mich wieder.
RPI 4 - Jeelink HomeMatic Z-Wave

jensb

@Knallkopp_02
ZitatLeider habe ich eine sehr unangenehme Nebenwirkungen dass sich mein FHEM/Raspberry in unregelmäßigen Abständen aufhängt/nicht reagiert. Die Anzeige auf dem Display funktioniert weiter, nur habe ich keinen Zugriff mehr auf das Gerät. Nur Stecker ziehen und neu starten hilft.
Wenn du einen Browser direkt auf dem Raspi laufen lässt, könnte das z.B. auch von JavaScript verursacht werden, dass alle CPU-Resourcen verbraucht oder über Websockets alle Netzwerk-Resourcen. Auch Swappen kommt in Frage, wenn kein Hauptspeicher mehr da ist. Check dein Raspi-Syslog und dein FHEM-Log, manchmal wird man da fündig. Habe selbst einen Epiphany-Browser für die FTUI auf dem Raspi laufen und der gönnt sich für eine Mini-FTUI-Seite (3 Icons) 13% des Hauptspeichers.

Wenn es relativ schnell passiert, kannst du auch eine Weile auf der Kommanodzeile mit top und netstat prüfen, was es sein könnte.

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

curt

Zitat von: Knallkopp_02 am 15 November 2018, 13:31:19
ich habe mir schon vor einigen Tagen die Grafiken von Kleinklima angesehen, dort sind ca. 50 Stück (Tag/Nacht und Allgemeine).

@Knallkopp_02
Kannst Du mir bitte mal schnell sagen, wo ich diese ca. 50 Kleinklima-Grafiken finde (ehe ich selbst lange suche)?

Zu Deinem Blocking-Problem:
Ich bin ganz zufällig über ein Modul gestolpert, welches Dir beim Raten der Ursache des Blocking hilft: https://forum.fhem.de/index.php/topic,83909.0.html . Nein, ich habe es weder im Einsatz - noch getestet. Nur als Hinweis.

Allgemein: Ich bin noch/wieder an dem Thema dran.
RPI 4 - Jeelink HomeMatic Z-Wave

Knallkopp_02

@curt

Der Pfad ist "/opt/fhem/www/images/default/weather" dort sind die Grafiken zu finden.

Das Problem mit dem "einfrieren" scheint am WLAN zu liegen, hatte jetzt mit Kabel getesttet und da ist nichts passiert.
WLAN reichweite Vom PI ist ja nicht die beste, weiß man ja.

Zum Thema Icons Tag/Nacht und vorallem einheitlicher Nutzung für FTUI oder andere Frontends stecke ich fest.

Das Tag/Nacht scheint zu klappen, aber nur für DWD->Kleinklima.
Für mich selbst wäre das jetzt erledigt, da ich diese Konstellation für mich angepasst habe.
Aber für die Allgemeinheit ist es keine Lösung. Ich habe testweise Proplanta, Yahoo und DWD mal als Datenlieferanten erstellt und für die 3 FTUI Anzeigemöglichkeiten meteocons, weathericons und Kleinklima einen Bereich in FTUI definiert.
Mal funktioniert diese Anzeige, mal eine andere. Je nach dem was man kombiniert.

Was fällt euch dazu ein, sowas global Nutzbar zu machen, damit der User einfach nur sein Frontend mit dem passenden Modul wählen muss und die Anpassungen für die anzuzeigenden Daten erstellen muss.

Gruß
Ich bin kein Programmierer und habe keine Ahnung.

Raspberry PI 3B+ mit HM-MOD-RPI-PCB,     
HM-TC-IT-WM-W-EU, HM-CC-RT-DN, HM-SEC-SCo
Raspberry PI 3B+ mit 7" Touchdisplay

curt

@Knallkopp_02
Ich antworte im FTUI-widget-Thread, da passt es besser hin.

BTW: Den FHEM-Server würde ich persönlich immer am Kabel betreiben wollen.
RPI 4 - Jeelink HomeMatic Z-Wave