neues Wetter Modul - DWD Open Data

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

Vorheriges Thema - Nächstes Thema

somansch

Hallo FTUI Gemeinde,

Jens entwickelt gerade ein neues Wettermodul auf Basis der Open Data Schnittstelle des Deutschen Wetterdienstes. Um dies in FTUI nutzen zu können, fehlen noch die Wetter-Icons bzw. Definition.

Wer kann in diesem Thread unterstützen? https://forum.fhem.de/index.php/topic,83097.msg792440.html#new

Danke und Gruß
Andreas

somansch

#1
Das Modul ist jetzt soweit fertig und wird von Jens offiziell eingecheckt. Ein zusätzliches Reading für den Wochentag ist hinzugefügt. Jetzt fehlt eigentlich nur noch eine Logik, das korrekte Wetter-Icon anzuzeigen.

Daher nochmal die Frage, wer hier unterstützen kann. Eventuell ein User-Reading mit einer entsprechenden Logik?!

PS: Es gibt sogar Daten für eine Vorhersage im 3-Stunden-Rythmus!

Danke und Gruß
Andreas


somansch

Ich habe heute mal das "weather_widget" angepasst, sodass ich die kleinklima Icons im neuen DWD Open Data verwenden kann. Folgende Ergänzung ab Zeile 274:        // DWD_OpenData (by somansch)
'äußerst heftiger Regenschauer': 'showers.png',
'Bewölkung abnehmend': 'partly_cloudy.png',
'Bewölkung unverändert': 'cloudy.png',
'Bewölkung zunehmend': 'overcast.png',
'Bewölkungsentwicklung nicht beobachtet': 'sunny.png',
'durchgehend leichter Regen': 'rain.png',
'durchgehend leichter Schneefall': 'snow.png',
'durchgehend leichter Sprühregen': 'drizzle.png',
'durchgehend mäßiger Regen': 'rain.png',
'durchgehend mäßiger Schneefall': 'snow.png',
'durchgehend mäßiger Sprühregen': 'drizzle.png',
'durchgehend starker Regen': 'rain.png',
'durchgehend starker Schneefall': 'snow.png',
'durchgehend starker Sprühregen': 'drizzle.png',
'leichter gefrierender Regen': 'rainsnow.png',
'leichter gefrierender Sprühregen': 'rainsnow.png',
'leichter Regenschauer': 'scatteredshowers.png',
'leichter Schneeregen': 'rainsnow.png',
'leichter Schneeregenschauer': 'rainsnow.png',
'leichter Schneeschauer': 'snow.png',
'leichter Sprühregen mit Regen': 'rain.png',
'leichtes oder mäßiges Gewitter mit Graupel oder Hagel': 'scatteredthunderstorms.png',
'leichtes oder mäßiges Gewitter mit Regen oder Schnee': 'scatteredthunderstorms.png',
'mäßiger oder starker gefrierender Regen': 'rainsnow.png',
'mäßiger oder starker gefrierender Sprühregen': 'rainsnow.png',
'mäßiger oder starker Graupelschauer': 'storm.png',
'mäßiger oder starker Hagelschauer': 'storm.png',
'mäßiger oder starker Regenschauer': 'showers.png',
'mäßiger oder starker Schneeregen': 'rainsnow.png',
'mäßiger oder starker Schneeregenschauer': 'rainsnow.png',
'mäßiger oder starker Schneeschauer': 'snow.png',
'mäßiger oder starker Sprühregen mit Regen': 'rain.png',
'Nebel in einiger Entfernung': 'fog.png',
'Nebel in Schwaden oder Bänken': 'fog.png',
'Nebel mit Reifansatz, Himmel erkennbar': 'fog.png',
'Nebel mit Reifansatz, Himmel nicht erkennbar': 'fog.png',
'Nebel, Himmel erkennbar, dichter werdend': 'fog.png',
'Nebel, Himmel erkennbar, dünner werdend': 'fog.png',
'Nebel, Himmel erkennbar, unverändert': 'fog.png',
'Nebel, Himmel nicht erkennbar, dichter werdend': 'fog.png',
'Nebel, Himmel nicht erkennbar, dünner werdend': 'fog.png',
'Nebel, Himmel nicht erkennbar, unverändert': 'fog.png',
'Sicht durch Rauch oder Asche vermindert': 'fog.png',
'starkes Gewitter mit Graupel oder Hagel': 'thunderstorms.png',
'starkes Gewitter mit Regen oder Schnee': 'thunderstorms.png',
'starkes Gewitter mit Sandsturm': 'thunderstorms.png',
'unterbrochener leichter Regen oder einzelne Regentropfen': 'rain.png',
'unterbrochener leichter Schneefall oder einzelne Schneeflocken': 'snow.png',
'unterbrochener leichter Sprühregen': 'drizzle.png',
'unterbrochener mäßiger Regen': 'rain.png',
'unterbrochener mäßiger Schneefall': 'snow.png',
'unterbrochener mäßiger Sprühregen': 'drizzle.png',
'unterbrochener starker Regen': 'rain.png',
'unterbrochener starker Schneefall': 'snow.png',
'unterbrochener starker Sprühregen': 'drizzle.png',


@setstate, kannst du diese Ergänzung offiziell übernehmen?

setstate


curt

Zitat von: somansch am 15 April 2018, 23:41:45
Das Modul ist jetzt soweit fertig und wird von Jens offiziell eingecheckt.

Hallo,
darf ich bitte fragen, wie das Modul für FTUI heißt und wie man es nutzt? Ein Beispiel wäre auch sehr schön.
RPI 4 - Jeelink HomeMatic Z-Wave

moonsorrox

gib mal in die Befehlszeile deines Fhem folgendes ein
help DWD_OpenData
Intel-NUC i5: FHEM-Server 6.1 :: Perl v5.18.2

Homematic: HM-USB-CFG2,HM-CFG-LAN Adapter, HM-LC-BL1-FM, HM-LC-Sw1PBU-FM, HM-LC-Sw1-PI-2, HM-WDS10-TH-O, HM-CC-TC, HM-LC-SW2-FM

grossmaggul

Ich vermute, das ist nicht das was curt wissen möchte, er fragt nach dem Namen des Moduls in FTUI.
FHEM auf Debian Buster Server, 2 x nanoCUL868, 1xnanoCUL465; Homematic, MAX, MiLight, HUE,  2 x Gosund SP1

curt

Du vermutest recht. Es gibt in den Weiten des Forums (mindestens) ein inoffizielles FTU-Modul für DWDopendata. Das ist aber nicht mehr funktional, alternativ ich zu doof.

Ich habe eine Teilerkenntnis, es (siehe oben) ist wohl in widget_weather.js integriert.


# grep "by somansch" *
widget_weather.js:        // DWD_OpenData (by somansch)


Nun wäre ein Beispiel (gern mehrere) gar nicht schlecht; ich habe keinerlei Erfahrungen mit widget_weather und gleich gar nicht in Zusammenhang mit DWDopendata.

@somansch
RPI 4 - Jeelink HomeMatic Z-Wave

moonsorrox

OK, ich hatte vermutet das sich in den Weiten der commandref etwas findet...!
Was mir noch einfällt ist der User Romanxxx weiter weiß ich nicht hat auf seiner Seite etwas dazu schau mal hier

Er hat das ehemalige GDS Widget für DWD genutzt, evtl. ist das was du suchst
Intel-NUC i5: FHEM-Server 6.1 :: Perl v5.18.2

Homematic: HM-USB-CFG2,HM-CFG-LAN Adapter, HM-LC-BL1-FM, HM-LC-Sw1PBU-FM, HM-LC-Sw1-PI-2, HM-WDS10-TH-O, HM-CC-TC, HM-LC-SW2-FM

curt

Zitat von: moonsorrox am 09 November 2018, 16:50:38
OK, ich hatte vermutet das sich in den Weiten der commandref etwas findet...!

Das ist grundsätzlich falsch, da FTUI-Widgets eine völlig andere Ebene sind. Ich wurde gerade (Link unten) genau darüber belehrt.

Im Einzelfall hast Du aber vermutlich sogar recht: Ich kann das nicht im einzelnen beurteilen, da ich das weather-Widget noch nie einsetzte, aber es sieht so aus als ob das Widget "nur" den Durchgriff auf verschiedene Wetter-Devices sicherstellt sowie noch Bildchen dafür hat - die einzelnen Variablen muss man sich wohl selbst zusammenklauben. Und an dem Punkt würde Dein help-Hinweis wieder stimmen.

Zitat von: moonsorrox am 09 November 2018, 16:50:38
Was mir noch einfällt ist der User Romanxxx weiter weiß ich nicht hat auf seiner Seite etwas dazu schau mal hier

Dieses Widget steht in einem Thread in den Weiten des Forums: https://forum.fhem.de/index.php/topic,89570.msg820325.html#msg820325 . Download uswusf - funktioniert nicht. Dafür gibt es zig Möglichkeiten. Von "bin selbst zu dumm" über "wird nicht mehr gepflegt" bis hin zu "DWD hat was geändert", der Maintainer von DWD-opendata jammert regelmäßig darüber.

Dieser Problemkreis (unklare Versionsstände, fehlende Dokus) wird übrigens gerade hier diskutiert: https://forum.fhem.de/index.php?topic=92218.msg847362#msg847362

Zitat von: moonsorrox am 09 November 2018, 16:50:38
Er hat das ehemalige GDS Widget für DWD genutzt, evtl. ist das was du suchst

Ich habe -zugegeben- @roman1528 noch gar nicht angesprochen. Hiermit Marker gesetzt.
RPI 4 - Jeelink HomeMatic Z-Wave

curt

Tage später:
Ja, es ist so, dass widget_weather.js "lediglich" die Daten eines (beliebigen) FHEM-Wettermoduls durchleitet, ggf. filtert. Somit hast Du recht: Man muss eigentlich "nur" die richtigen Readings heraussuchen, dann [es würde lang].

Auf Anregung von @somansch ist im widget_weather.js auch die Filterung "Textmeldung -> Bildchen" drin. Leider ist mir völlig unklar, wie man die konkret anspricht.

Ich habe @somansch via PN gebeten, seine konkrete Nutzung vorzustellen.
RPI 4 - Jeelink HomeMatic Z-Wave

Knallkopp_02

Hallo curt,

ich bin aktuell auch an der Stelle das ausgelesene Wetter in das grafische des FTUI umzusetzen. Leider habe ich noch keine Lösung gefunden, die mir zu 100% gefällt.

Ich habe zuerst mit Proplanta angefangen und die Weathericons eingebunden und etwas herum gespielt. Setstate war so net und hat auch ein paar Änderungen im JS gemacht, damit man es besser nutzen konnte.

Aktuell bin ich dabei DWD und die Kleinklima Icons unter einen Hut zu bekommen. Leider bin ich kein Programmierer und stocher nur im Nebel rum um meine Anzeige so zu bekommen, wie ich mir das vorstelle. Setstate sagte mir, das er das JS nur übernommen hat und es auch ungern anffast, da es sehr undurchsichtig ist.

Wenn du möchtest, kann ich dir gern meinen bislang erzeugten Code für FTUI bereit stellen.

Evtl findet sich ja ein Programmierer der die Umsetzung für ein überarbeitetes JS in Angriff nimmt. Ich selbst würde mich sofort als Tester zur Verfügung stellen. Ebenso bin ich der Meinung, dass noch Icons fehlen was Kleinkima angeht.

DWD + widget_weather.js + Kleinklima machen einen sehr guten Eindruck. Mir persönlich fehlen nur noch ein paar Sachen um meine 100% zu erreichen.
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

Ja, bitte. Ich würde das gern sehen.
RPI 4 - Jeelink HomeMatic Z-Wave

jensb

Wenn widget_weather.js im Wesentlichen Readings durchreicht, wie es @curt schreibt, dann kommt es stark darauf an, was man in der FTUI darstellen will. Die 2-Icons-Lösung pro Tag mit uhrzeitabhängigem 1. Tag, wie es der Weblink für das OpenData Modul anbietet, funktioniert nicht mit fixen Readings. Man könnte jedoch im Weblink-Modul die aufbereiteten Daten nicht nur als HTML ausgeben sondern optional als Readings zur Verfügung stellen, wie ich es @Knallkopp_02 bereits angedeutet hatte.

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

Zitat von: curt am 12 November 2018, 23:11:32
Tage später:
Ja, es ist so, dass widget_weather.js "lediglich" die Daten eines (beliebigen) FHEM-Wettermoduls durchleitet, ggf. filtert. Somit hast Du recht: Man muss eigentlich "nur" die richtigen Readings heraussuchen, dann [es würde lang].

Auf Anregung von @somansch ist im widget_weather.js auch die Filterung "Textmeldung -> Bildchen" drin. Leider ist mir völlig unklar, wie man die konkret anspricht.

Ich habe @somansch via PN gebeten, seine konkrete Nutzung vorzustellen.

Hier meine Konfig. Das DWD Modul ist wie folgt definiert:
defmod DWD DWD_OpenData
attr DWD alertArea %DEINE_LOKATION%
attr DWD alertLanguage DE
attr DWD event-on-update-reading 1
attr DWD forecastDays 4
attr DWD forecastProperties DD,FF,RRhc,Rh00,SunD,TTT,Tx,Tn,ww,wwd
attr DWD forecastResolution 3
attr DWD forecastStation %DEINE_LOKATION%
attr DWD forecastWW2Text 1
attr DWD room 096_Wetter
attr DWD userReadings fc0_SunDh {ReadingsVal("DWD","fc0_SunD","")/3600},\
fc1_SunDh {ReadingsVal("DWD","fc1_SunD","")/3600},\
fc2_SunDh {ReadingsVal("DWD","fc2_SunD","")/3600},\
fc3_SunDh {ReadingsVal("DWD","fc3_SunD","")/3600},\
fc4_SunDh {ReadingsVal("DWD","fc4_SunD","")/3600}


In FTUI nutze ich Templates. Hier das Content-File:
<!DOCTYPE html>
<html>
<body>
    <div class="page" id="content_weather_DWD_new">
<div class="phone-back-btn">
<div data-type="link" data-url="#content_weather.html" data-load="#content_weather" data-color="white" data-icon="mi-chevron_left" class="large"></div>
</div>

<div class="hbox">
<div class="vbox phone-width">
<div class="card lift">
<header>DWD Vorhersage</header>
<section>
<div data-template="template_weather_DWD.html" data-parameter='{"var_device":"DWD","var_day":"fc0"}'></div>
</section>
<section>
<div data-template="template_weather_DWD.html" data-parameter='{"var_device":"DWD","var_day":"fc1"}'></div>
</section>
<section>
<div data-template="template_weather_DWD.html" data-parameter='{"var_device":"DWD","var_day":"fc2"}'></div>
</section>
<section>
<div data-template="template_weather_DWD.html" data-parameter='{"var_device":"DWD","var_day":"fc3"}'></div>
</section>
<section>
<div data-template="template_weather_DWD.html" data-parameter='{"var_device":"DWD","var_day":"fc4"}'></div>
</section>
</div>
</div>
</div>
</div>
</body>

</html>


...und hier das Template-File:
<!DOCTYPE html>
<html>
<head>
<!-- FHEM Tablet UI V2.6 -->
<!-- Template für DWD -->
</head>
<body>
<div class="hdm-flexbox-container">
<div class="hdm-flexbox-item-10">
<div class="bigger" data-type="label" data-device="var_device" data-get="var_day_weekday"></div>
</div>
<div class="hdm-flexbox-item-10">
<div class="readonly" data-type="weather" data-device="var_device" data-get="var_day_4_wwd" data-imageset="kleinklima"></div>
</div>
<div class="hdm-flexbox-item-10">
<div class="" data-type="symbol" data-icon="oa-temp_temperature_max" data-off-color="blue"></div>
<div class="bigger" data-type="label" data-device="var_device" data-get="var_day_Tx" data-limits="[-50,-10,0,10,20,25,30]" data-colors='["#0000ff","#9999ff","#ffbdff","#FAA460","#ff6900","#ff3333","#ff0000"]' data-unit="&deg;C" data-fix="0"></div>
</div>
<div class="hdm-flexbox-item-10">
<div class="" data-type="symbol" data-icon="oa-weather_rain_light" data-off-color="blue"></div>
<div class="bigger" data-type="label" data-device="var_device" data-get="var_day_2_RRhc" data-limits="[0,1,5,10,20,30]" data-colors='["#00ff00","#bfff00","#ffff00","#ff6900","#ff3333","#ff0000"]' data-unit="mm" data-fix="0"></div>
</div>
<div class="hdm-flexbox-item-10">
<div class="" data-type="symbol" data-icon="fa-umbrella" data-off-color="blue"></div>
<div class="bigger" data-type="label" data-device="var_device" data-get="var_day_6_Rh00" data-limits="[0,1,10,25,50,75]" data-colors='["#00ff00","#bfff00","#ffff00","#ff6900","#ff3333","#ff0000"]' data-unit="%" data-fix="0"></div>
</div>
<div class="hdm-flexbox-item-10">
<div class="" data-type="symbol" data-icon="wi wi-sandstorm" data-off-color="blue"></div>
<div class="bigger" data-type="label" data-device="var_device" data-get="var_day_3_FF" data-limits="[0,5,10,30,50,100]" data-colors='["#00ff00","#bfff00","#ffff00","#ff6900","#ff3333","#ff0000"]' data-part="1" data-fix="0" data-unit="km/h"></div>
</div>
<div class="hdm-flexbox-item-10">
<div class="mini" data-type="wind_direction" data-device="var_device" data-direction="var_day_3_DD" data-speed="var_day_3_FF" data-calm="~" data-tickstep="45" data-angleoffset="0" data-hdcolor="#6699FF"></div>
</div>
<div class="hdm-flexbox-item-10">
<div class="" data-type="symbol" data-icon="fa-sun-o" data-off-color="blue"></div>
<div class="bigger" data-type="label" data-device="var_device" data-get="var_day_SunDh" data-limits="[0,2,4,6,8,10]" data-colors='["#ff0000","#ff3333","#ff6900","#ffff00","#bfff00","#00ff00"]' data-unit="h" data-fix="0"></div>
</div>
<div class="hdm-flexbox-item-10">
<div class="readonly" data-type="weather" data-device="var_device" data-get="var_day_0_wwd" data-imageset="kleinklima"></div>
</div>
<div class="hdm-flexbox-item-10">
<div class="" data-type="symbol" data-icon="oa-temp_temperature_min" data-off-color="blue"></div>
<div class="bigger" data-type="label" data-device="var_device" data-get="var_day_Tn" data-limits="[-50,-10,0,10,20,25,30]" data-colors='["#0000ff","#9999ff","#ffbdff","#FAA460","#ff6900","#ff3333","#ff0000"]' data-unit="&deg;C" data-fix="0"></div>
</div>
<div class="hdm-flexbox-item-10">
<div class="" data-type="symbol" data-icon="oa-weather_rain_light" data-off-color="blue"></div>
<div class="bigger" data-type="label" data-device="var_device" data-get="var_day_6_RRhc" data-limits="[0,1,5,10,20,30]" data-colors='["#00ff00","#bfff00","#ffff00","#ff6900","#ff3333","#ff0000"]' data-unit="mm" data-fix="0"></div>
</div>
<div class="hdm-flexbox-item-10">
<div class="" data-type="symbol" data-icon="fa-umbrella" data-off-color="blue"></div>
<div class="bigger" data-type="label" data-device="var_device" data-get="var_day_2_Rh00" data-limits="[0,1,10,25,50,75]" data-colors='["#00ff00","#bfff00","#ffff00","#ff6900","#ff3333","#ff0000"]' data-unit="%" data-fix="0"></div>
</div>
<div class="hdm-flexbox-item-10">
<div class="" data-type="symbol" data-icon="wi wi-sandstorm" data-off-color="blue"></div>
<div class="bigger" data-type="label" data-device="var_device" data-get="var_day_7_FF" data-limits="[0,5,10,30,50,100]" data-colors='["#00ff00","#bfff00","#ffff00","#ff6900","#ff3333","#ff0000"]' data-part="1" data-fix="0" data-unit="km/h"></div>
</div>
<div class="hdm-flexbox-item-10">
<div class="mini" data-type="wind_direction" data-device="var_device" data-direction="var_day_7_DD" data-speed="var_day_7_FF" data-calm="~" data-tickstep="45" data-angleoffset="0" data-hdcolor="#6699FF"></div>
</div>
</div>
</body>
</html>


Ich hoffe, das hilft weiter.

Leider ist noch keine Icon-Unterscheidung zwischen Tag und Nacht möglich. Bin kein Entwickler, stehe aber gern als Betatester zur Verfügung  ;).

Viele Grüße
Andreas

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

curt

RPI 4 - Jeelink HomeMatic Z-Wave

Knallkopp_02

Das ist eine der 3 Anzeigemöglichkeiten, die in Fhem integriert sind.

Hier die Info dazu

https://wiki.fhem.de/wiki/FTUI_Widget_Weather

Leider bekomme ich zur Zeit nur DWD und Kleinklima richtig zum laufen.

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
Was vielleicht daran liegt, dass ... wo ist denn das zugehörige Verzeichnis eigentlich konkret?

Ich hatte mir einen Dateinamen genommen und ein fröhliches grep -r über /opt/fhem laufen lassen. Und dieses gesuchte Icon nicht gefunden.
RPI 4 - Jeelink HomeMatic Z-Wave

Knallkopp_02

Wenn ich das richtig gesehen habe ist das keine Grafik in dem Sinne, sondern eine Schriftart die eingebunden wird. Daher auch die "Übersetzung" auf einzelne Zeichen in der widget_weather.js

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

somansch

Zitat von: setstate am 27 August 2018, 06:28:44
Danke, habe es so eingebaut.

Hallo setstate,

@Knallkopp_02 hat inzwischen weitere Anpassungen im widget_weather vorgenommen, damit unterschiedliche Icons in Abhängigkeit von Tag/Nacht erscheinen. Weiterhin gibt es Optimierung für Proplanta, siehe auch https://forum.fhem.de/index.php/topic,90790.0.html. Habe alle Änderungen im angehängten widget_weather dokumentiert "(by Knallkopp_02 bzw. somansch)". Konnte die Änderungen und Verbesserung erfolgreich mit Proplanta, DWD und Wunderground in Verbindung mit "kleinklima" testen. Zusätzlich müssen noch ein paar Icons für "_night.png" erezugt werden. Habe daher meine gesamten Icons von "/opt/fhem/www/images/default/weather" ebenfalls angehängt.

Leider ist weder Knallkopp_02 noch ich Entwickler. Da es jedoch im Moment keinen Maintainer für das Widget gibt, überlasse ich es dir, es einzuchecken  ;)

Viele Grüße
Andreas

somansch

Ich habe eine neue Version des "Weather_Widgets" zur Darstellung der Icons in FTUI zum Testen bereitgestellt. Diese Version unterstützt DarkSky, OpenWeather, ProPlanta und DWD https://forum.fhem.de/index.php/topic,96954.0.html

Viele Grüße
Andreas