Tägliche Regenmenge aus DWD-Radolan Daten einlesen

Begonnen von alkazaa, 12 August 2023, 21:12:09

Vorheriges Thema - Nächstes Thema

Gisbert

Hallo Jörg,

ich bin auf dieses Modul gestoßen und hab es gleich genutzt.
Ich würde es gerne in der Weise nutzen, dass ich das Reading, das am nächsten zur Abfragezeit ist, als Event/Trigger für ein DOIF einsetzen will.
Geht das und wenn ja, wie?

Viele Grüße Gisbert
Aktuelles FHEM | PROXMOX | Fujitsu Futro S740 | Debian 12 | UniFi | Homematic, VCCU, HMUART | ESP8266 | ATtiny85 | Wasser-, Stromzähler | tuya local | Wlan-Kamera | SIGNALduino, Flamingo Rauchmelder FA21/22RF | RHASSPY | DEYE | JK-BMS | ESPHome

JoWiemann

#76
Zitat von: alkazaa am 26 Oktober 2023, 21:44:47Anscheinend noch ein Problem issue:
Wenn ich "enableDWDdata = rainByDay,rainSinceMidnight,rainRadarbyLocation" habe, tauchen die since_midnight readings nicht mehr auf

Hallo Franz,

anbei eine neue Version:

- fehlende Readings since_midnight bei enableDWDdata = rainByDay,rainSinceMidnight,rainRadarbyLocation behoben
- Readings rain_radar bekommen Readings-Timestamp des DWD timestamp. Somit ist das Attribut outputFormat im FileLog Device nicht mehr notwendig und die Readings sind richtig sortiert.

Grüße Jörg

PS: (%hash) = split(/\\/, $string); Führt zu einem unsortierten Ergebnis :-(
Jörg Wiemann

Slave: RPi B+ mit 512 MB, COC (868 MHz), CUL V3 (433.92MHz SlowRF); FHEMduino, Aktuelles FHEM

Master: CubieTruck; Debian; Aktuelles FHEM

alkazaa

Hallo Jörg,
Zitatanbei eine neue Version:
Ist leider die gleiche Datei wie vorher...

JoWiemann

Zitat von: alkazaa am 27 Oktober 2023, 14:24:16Hallo Jörg,
Zitatanbei eine neue Version:
Ist leider die gleiche Datei wie vorher...


Ups, mein Fehler  :(
Jörg Wiemann

Slave: RPi B+ mit 512 MB, COC (868 MHz), CUL V3 (433.92MHz SlowRF); FHEMduino, Aktuelles FHEM

Master: CubieTruck; Debian; Aktuelles FHEM

alkazaa

Super Jörg, Danke!
Es scheint jetzt alles OK, bis auf eine Kleinigkeit, die ich aber selber fixen konnte:
Im log-File stehen Zeilen der Form
2023-10-27_16:15:00 myCDC Home_rain_radar:2023-10-27_16:15:00: 0
2023-10-27_16:20:00 myCDC Home_rain_radar:2023-10-27_16:20:00: 0
usw.
D.h. jedes reading hat einen anderen Namen, da der timestamp im reading auftaucht ("Home_rain_radar:2023-10-27_16:15:00:"). Im SVG-Plot Editor kann man dann den interessierenden Ort nicht auswählen (ich habe auch mehrere locations).
Gefixt habe ich das durch     
attr FileLog_DWD_Regen_Radar outputFormat { return $TIMESTAMP." ".$NAME." ".$1." ".$2."\n" if $EVENT =~ /(.*?):.*?:\s(.*)/}Die Zeilen der log-Datei sind dann
2023-10-27_18:15:00 myCDC Home_rain_radar 0
2023-10-27_18:20:00 myCDC Home_rain_radar 0
2023-10-27_16:20:00 myCDC CW78_rain_radar 0.08
2023-10-27_16:25:00 myCDC CW78_rain_radar 0.16
usw.

Noch ne Neugierfrage:
wie lange dauert auf Deiner hardware ein kompletter "set <CDC-device> update"? Bei mir (Raspi 3B+) sind es 6...6,5 sec.

Beste Grüße
Franz

JoWiemann

#80
Zitat von: alkazaa am 27 Oktober 2023, 16:34:45Super Jörg, Danke!
Es scheint jetzt alles OK, bis auf eine Kleinigkeit, die ich aber selber fixen konnte:
Im log-File stehen Zeilen der Form
2023-10-27_16:15:00 myCDC Home_rain_radar:2023-10-27_16:15:00: 0
2023-10-27_16:20:00 myCDC Home_rain_radar:2023-10-27_16:20:00: 0
usw.
D.h. jedes reading hat einen anderen Namen, da der timestamp im reading auftaucht ("Home_rain_radar:2023-10-27_16:15:00:"). Im SVG-Plot Editor kann man dann den interessierenden Ort nicht auswählen (ich habe auch mehrere locations).
Gefixt habe ich das durch     
Hallo Franz,

Da ich ja jetzt den Reading Timestamp anpasse, kann der Timestamp aus dem Name ja raus. Soll ich das so ändern? Geht natürlich nicht, weil identische Reading Namen.

Ich werde beim Generieren eines FileLog über das Attribut RainRadarFileLog Deine Idee einbauen.

Zitat von: alkazaa am 27 Oktober 2023, 16:34:45Noch ne Neugierfrage:
wie lange dauert auf Deiner hardware ein kompletter "set <CDC-device> update"? Bei mir (Raspi 3B+) sind es 6...6,5 sec.

Sie bei mir genauso aus.

Grüße Jörg
Jörg Wiemann

Slave: RPi B+ mit 512 MB, COC (868 MHz), CUL V3 (433.92MHz SlowRF); FHEMduino, Aktuelles FHEM

Master: CubieTruck; Debian; Aktuelles FHEM

JoWiemann

Zitat von: alkazaa am 27 Oktober 2023, 16:34:45Super Jörg, Danke!
Es scheint jetzt alles OK, bis auf eine Kleinigkeit, die ich aber selber fixen konnte:
Im log-File stehen Zeilen der Form
2023-10-27_16:15:00 myCDC Home_rain_radar:2023-10-27_16:15:00: 0
2023-10-27_16:20:00 myCDC Home_rain_radar:2023-10-27_16:20:00: 0
usw.
D.h. jedes reading hat einen anderen Namen, da der timestamp im reading auftaucht ("Home_rain_radar:2023-10-27_16:15:00:"). Im SVG-Plot Editor kann man dann den interessierenden Ort nicht auswählen (ich habe auch mehrere locations).
Gefixt habe ich das durch     
Hallo Franz,

leider funktioniert das nicht wirklich. Entstehen durch mehrere Lokationen unterschiedliche Zeilenlängen, so werden, sofern das Log mit kürzen Zeilen startet, diese nicht geplottet. Im gezeigten Fall wird kein Plot für DWD_Regen_Radar Home_rain_radar. Kopiere ich die DWD_Regen_Radar Home_rain_radar Zeilen nach hinten funktioniert es.

2023-10-27_19:10:00 DWD_Regen_Radar Home_rain_radar: 0
2023-10-27_19:15:00 DWD_Regen_Radar Home_rain_radar: 0
...
2023-10-27_21:00:00 DWD_Regen_Radar Home_rain_radar: 0
2023-10-27_21:05:00 DWD_Regen_Radar Home_rain_radar: 0
2023-10-27_21:10:00 DWD_Regen_Radar Home_rain_radar: 0
2023-10-27_19:10:00 DWD_Regen_Radar Bad_Soden_rain_radar: 0
2023-10-27_19:15:00 DWD_Regen_Radar Bad_Soden_rain_radar: 0
...
2023-10-27_21:00:00 DWD_Regen_Radar Bad_Soden_rain_radar: 0
2023-10-27_21:05:00 DWD_Regen_Radar Bad_Soden_rain_radar: 0
2023-10-27_21:10:00 DWD_Regen_Radar Bad_Soden_rain_radar: 0

Grüße Jörg
Jörg Wiemann

Slave: RPi B+ mit 512 MB, COC (868 MHz), CUL V3 (433.92MHz SlowRF); FHEMduino, Aktuelles FHEM

Master: CubieTruck; Debian; Aktuelles FHEM

alkazaa

Hallo Jörg,
das ist merkwürdig. Bei mir funktioniert es. Mit diesen Log-Datei Einträgen
...
2023-10-27_21:30:00 myCDC Home_rain_radar 0.03
2023-10-27_21:35:00 myCDC Home_rain_radar 0.03
2023-10-27_19:35:00 myCDC A_Dorf_rain_radar 0.06
2023-10-27_19:40:00 myCDC A_Dorf_rain_radar 0.16
...
führt zu diesem Plot:
Du darfst diesen Dateianhang nicht ansehen.

Allerdings ist bei mir auch der ":" vor dem Zahlenwert entfernt worden, vielleicht liegt's daran?

Gruß Franz

JoWiemann

Zitat von: alkazaa am 27 Oktober 2023, 19:50:56Allerdings ist bei mir auch der ":" vor dem Zahlenwert entfernt worden, vielleicht liegt's daran?

Hallo Franz,

ich hatte den : entfernt, da ich ihn zunächst in Verdacht hatte. Komisch, komisch

Grüße Jörg
Jörg Wiemann

Slave: RPi B+ mit 512 MB, COC (868 MHz), CUL V3 (433.92MHz SlowRF); FHEMduino, Aktuelles FHEM

Master: CubieTruck; Debian; Aktuelles FHEM

alkazaa

Der Auswahldilog beim SVG Ploteditor sieht bei mir so aus (sind hier andere Orte als im vorigen Beispiel):Du darfst diesen Dateianhang nicht ansehen. 
-Franz

alkazaa

Zitat von: JoWiemann am 27 Oktober 2023, 16:48:00Ich werde beim Generieren eines FileLog über das Attribut RainRadarFileLog Deine Idee einbauen.
D.h. Du hast es im *.pm Modul gemacht, nicht per outputFormat Attribut?
Falls ja, lad doch mal den modifizierten 98_CDCOpenData.pm Code hoch.

JoWiemann

Zitat von: alkazaa am 27 Oktober 2023, 20:10:17
Zitat von: JoWiemann am 27 Oktober 2023, 16:48:00Ich werde beim Generieren eines FileLog über das Attribut RainRadarFileLog Deine Idee einbauen.
D.h. Du hast es im *.pm Modul gemacht, nicht per outputFormat Attribut?
Falls ja, lad doch mal den modifizierten 98_CDCOpenData.pm Code hoch.

Hallo Franz,

nein, dass habe ich verworfen. Ich habe ein FileLog Device mit Deiner Ergänzung.

defmod FileLog_DWD_Regen_Radar FileLog ./log/DWD_Regen_Radar-%Y-%m.log DWD_Regen_Radar:.*
attr FileLog_DWD_Regen_Radar logtype text:linesInTheFile
attr FileLog_DWD_Regen_Radar outputFormat { return $TIMESTAMP." ".$NAME." ".$1." ".$2."\n" if $EVENT =~ /(.*?):.*?:\s(.*)/}
attr FileLog_DWD_Regen_Radar room Wetter

Ich hänge Dir mal das FileLog an. Bitte kopier es doch mal in Dein System und prüfe, ob es bei Dir funktioniert.

Danke und Grüße Jörg
Jörg Wiemann

Slave: RPi B+ mit 512 MB, COC (868 MHz), CUL V3 (433.92MHz SlowRF); FHEMduino, Aktuelles FHEM

Master: CubieTruck; Debian; Aktuelles FHEM

alkazaa

Ich habe dieses FileLog erstellt:
defmod FileLog_DWD_Regen_Radar2 FileLog ./log/DWD_Regen_Radar-%Y-%m.log DWD_Regen_Radar:.*?_rain_radar:.*
attr FileLog_DWD_Regen_Radar2 outputFormat { return $TIMESTAMP." ".$NAME." ".$1." ".$2."\n" if $EVENT =~ /(.*?):.*?:\s(.*)/}

und von dort dann mit 'Create SVG Plot' das SVG device, dessen raw definition so aussieht:
defmod SVG_FileLog_DWD_Regen_Radar2_1 SVG FileLog_DWD_Regen_Radar2:SVG_FileLog_DWD_Regen_Radar2_1:CURRENT

setstate SVG_FileLog_DWD_Regen_Radar2_1 initialized

Damit konnte ich was plotten. Ich habe allerdings einige der 0-Werte in der Log-Datei durch !=0 Werte ersetzt, um was zu sehen.

JoWiemann

Hallo Franz,

dann wird es an meiner Umgebung liegen. Ich werde morgen mal auf meinem Cubie testen.

Danke und Grüße Jörg
Jörg Wiemann

Slave: RPi B+ mit 512 MB, COC (868 MHz), CUL V3 (433.92MHz SlowRF); FHEMduino, Aktuelles FHEM

Master: CubieTruck; Debian; Aktuelles FHEM

alkazaa

#89
Hallo Jörg, Du schriebst:
Zitat von: JoWiemann am 27 Oktober 2023, 16:48:00Da ich ja jetzt den Reading Timestamp anpasse, kann der Timestamp aus dem Name ja raus. Soll ich das so ändern? Geht natürlich nicht, weil identische Reading Namen.
Ich schlage vor, den timestamp doch aus dem Namen zu entfernen.
Grund: Das eigentliche "reading" ist ja in diesem Fall ein Array von 25 Werten, die anzuschauen nur in der SVG-Graphik Sinn macht. Solange im Modul die Werte in der FileLog Datei landen, können sie in der readings-Liste ohne Not entfallen.
Und buchstäblich 'Anschauen' wird man sie sich dort ohnehin nicht. Für etwaige automatisierte Auswertungen (z.B. DOIFs oder notifies für Markisensteuerung etc.) wären aber 'verdichtete' Angaben hilfreich: z.B. könnten (bei jedem update des 25-Werte Radars fürs nächste 2-Stunden-Intervall) die readings "<location>_rain_next_5_minutes", "<location>_rain_next_15_minutes" und "<location>_rain_next_30_minutes" erzeugt werden. Die ließen sich dann für solche DOIFs gut automatisiert auswerten.

Gruß Franz