Tägliche Regenmenge aus DWD-Radolan Daten einlesen

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

Vorheriges Thema - Nächstes Thema

alkazaa

Zu dem anderen Problem (SVG zeigt nichts an):
Zitat von: JoWiemann am 27 Oktober 2023, 21:56:41dann wird es an meiner Umgebung liegen. Ich werde morgen mal auf meinem Cubie testen.
Wichtig für die Anzeige im SVG sind diese Attribute:
attr SVG_FileLog_DWD_Regen_Radar_1 endPlotNow 1
attr SVG_FileLog_DWD_Regen_Radar_1 fixedoffset 2
attr SVG_FileLog_DWD_Regen_Radar_1 fixedrange 2hours
Falls die bei Dir fehlten, kam das Problem wahrscheinlich daher.

-Franz

JoWiemann

Zitat von: alkazaa am 28 Oktober 2023, 11:32:38Ich schlage vor, den timestamp doch aus dem Namen zu entfernen.

Gruß Franz


Hallo Franz,

die Readings müssen sich im Namen unterscheiden. Durchnummerieren?

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

Zitat von: Gisbert am 26 Oktober 2023, 23:28:01Ich 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.
Hallo Gisbert,
es gibt ja drei Arten von readings (für jeden Ort, falls Du mehrere locations aktiv hast):
  • die rain_radar Werte (25 Stück, werden vom DWD alle 5 Minuten aktualisiert, im Modul evtl. seltener, falls INTERVAL oder cron-specs längere Abstände erzwingen)
  • die '_since_midnight' Werte (stündlich vom DWD aktualisiert, evtl. seltener, s.o.)
  • die '_day_rain' Werte (täglich vom DWD, in der Regel häufiger im Modul)
Welches von denen meinst Du?

Bei 2. und 3. sehe ich generell das Problem, dass ein 'event-on-change' Attribut nicht greift, wenn es nicht regnet, aber dass ein 'event-on-update' immer ausgelöst wird, wenn das Modul ein update macht, also z.B. alle INTERVAL Sekunden.
Bei 3. ist es so, dass Du mehrere Werte hast, falls Du nicht "numberOfDays=1" gesetzt hast. Ich vermute, dass Du dieses reading meinst? Da könnte ein DOIF mit [<deinmodulname>:.*?_day_rain.*] vielleicht funktionieren, wenn 'event-on-update-reading=.*' gesetzt ist. Allerdings (s.o.) bekommst Du dann alle INTERVAL Sekunden ein Event.
Bei 1. würde vielleicht das helfen, was ich in Beitrag #89 vorgeschlagen habe.

Gruß
Franz

alkazaa

Zitat von: JoWiemann am 28 Oktober 2023, 12:29:24
Zitat von: alkazaa am 28 Oktober 2023, 11:32:38Ich schlage vor, den timestamp doch aus dem Namen zu entfernen.
die Readings müssen sich im Namen unterscheiden.
Nein, in der log-Datei nicht. Und im device listing könnte das reading Home_rain_radar ja immer wieder überschrieben werden. Idealerweise sollten aber die next_5, next_15, next_30 readings erzeugt werden.

Aber ich habe mich (noch) nicht mit der internen Logik der Werte-Erzeugung in dem *.pm Modul vertraut gemacht. Wahrscheinlich geht das alles gar nicht so einfach.

Gruß
Franz

JoWiemann

Zitat von: alkazaa am 28 Oktober 2023, 12:40:35Nein, in der log-Datei nicht. Und im device listing könnte das reading Home_rain_radar ja immer wieder überschrieben werden. Idealerweise sollten aber die next_5, next_15, next_30 readings erzeugt werden.

Aber ich habe mich (noch) nicht mit der internen Logik der Werte-Erzeugung in dem *.pm Modul vertraut gemacht. Wahrscheinlich geht das alles gar nicht so einfach.

Gruß
Franz


Hallo Franz,

soweit ich weiß würde das Überschreiben nicht zu einzelnen Einträgen im FileLog führen, kann ich aber mal ausprobieren.

Was meinst du mit: Idealerweise sollten aber die next_5, next_15, next_30 readings erzeugt werden.

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

Das mit next_5 usw. bezog sich auf meinen Beitrag #89: wenn nicht mehr alle 25 einzelnen rain_radar Werte auftauchen, könnten aber zumindest die für 5, 15 und 30 Minuten kumulierten Werte nützlich sein, um Markisenschutz oder Ähnliches auszulösen. Nur als Idee...
-Franz

Gisbert

Hallo Jörg,
hallo Franz,

ich könnte sehr gut die Vorhersagewerte in 5, 10, 15, ... Minuten gebrauchen, die bei jedem Update (INTERVALL) neu geschrieben werden.

In einem DOIF könnte ich dann darauf reagieren.

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

alkazaa

Zitat von: Gisbert am 28 Oktober 2023, 13:57:48ich könnte sehr gut die Vorhersagewerte in 5, 10, 15, ... Minuten gebrauchen
Dann würde ich vorschlagen, auf das Kumulieren der nächsten 5,15,30 Minuten zu verzichten und alle 25 Radarwerte wie bisher zu behalten, aber so, dass aus
Home_rain_radar:2023-10-28_15:15:00
Home_rain_radar:2023-10-28_15:20:00
Home_rain_radar:2023-10-28_15:25:00
Home_rain_radar:2023-10-28_15:30:00
Home_rain_radar:2023-10-28_15:35:00
...
das hier wird:
Home_rain_radar:00
Home_rain_radar:05
Home_rain_radar:10
Home_rain_radar:15
Home_rain_radar:20
...
Die timestamps stehen ja eh in der Spalte mit den timestamps. Ein Vorteil wäre auch, dass sich die readings-Namen nicht ständig ändern und die readings daher vom Modul auch nicht jedesmal gelöscht und neu angelegt würden (wenn ich das richtig verstehe).

Gruß Franz

JoWiemann

Zitat von: alkazaa am 28 Oktober 2023, 15:31:26
Zitat von: Gisbert am 28 Oktober 2023, 13:57:48ich könnte sehr gut die Vorhersagewerte in 5, 10, 15, ... Minuten gebrauchen
Dann würde ich vorschlagen, auf das Kumulieren der nächsten 5,15,30 Minuten zu verzichten und alle 25 Radarwerte wie bisher zu behalten, aber so, dass aus
Home_rain_radar:2023-10-28_15:15:00
Home_rain_radar:2023-10-28_15:20:00
Home_rain_radar:2023-10-28_15:25:00
Home_rain_radar:2023-10-28_15:30:00
Home_rain_radar:2023-10-28_15:35:00
...
das hier wird:
Home_rain_radar:00
Home_rain_radar:05
Home_rain_radar:10
Home_rain_radar:15
Home_rain_radar:20
...
Die timestamps stehen ja eh in der Spalte mit den timestamps. Ein Vorteil wäre auch, dass sich die readings-Namen nicht ständig ändern und die readings daher vom Modul auch nicht jedesmal gelöscht und neu angelegt würden (wenn ich das richtig verstehe).

Gruß Franz

Hallo Franz,

geht dann nur für eine Stunde.

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

Zitat von: JoWiemann am 28 Oktober 2023, 15:35:14geht dann nur für eine Stunde.

Ja, sorry. Dann natürlich eher so:
Home_rain_radar:000
Home_rain_radar:005
Home_rain_radar:010
...
Home_rain_radar:115
Home_rain_radar:120

JoWiemann

Zitat von: alkazaa am 28 Oktober 2023, 15:58:24
Zitat von: JoWiemann am 28 Oktober 2023, 15:35:14geht dann nur für eine Stunde.

Ja, sorry. Dann natürlich eher so:
Home_rain_radar:000
Home_rain_radar:005
Home_rain_radar:010
...
Home_rain_radar:115
Home_rain_radar:120


Hallo Franz,

dann werde ich das mal anpassen.

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

Hallo,

anbei mein Vorschlag.

Die Readings sehen so aus:
2023-10-28 17:20:00 Home_rain_radar/0000 0
2023-10-28 17:25:00 Home_rain_radar/0105 0
2023-10-28 17:30:00 Home_rain_radar/0210 0
2023-10-28 17:35:00 Home_rain_radar/0315 0
2023-10-28 17:40:00 Home_rain_radar/0420 0
2023-10-28 17:45:00 Home_rain_radar/0525 0
2023-10-28 17:50:00 Home_rain_radar/0630 0
2023-10-28 17:55:00 Home_rain_radar/0735 0
2023-10-28 18:00:00 Home_rain_radar/0840 0
2023-10-28 18:05:00 Home_rain_radar/0945 0
2023-10-28 18:10:00 Home_rain_radar/1050 0
2023-10-28 18:15:00 Home_rain_radar/1155 0
...

Im FileLog muss das Attribut outputFormat folgendermaßen gesetzt werden:

{ return $TIMESTAMP." ".$NAME." ".$1." ".$2."\n" if $EVENT =~ /(.*?)\/.*?:\s(.*)/}

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 passt noch nicht so ganz. Zum einen sehen meine readings so aus (ich zeige nur die 1. Spalte):
Home_rain_radar/0000
Home_rain_radar/0105
Home_rain_radar/0210
...
Home_rain_radar/2250
Home_rain_radar/2355
Home_rain_radar/2400
Berlin_rain_radar/0005
Berlin_rain_radar/0110
Berlin_rain_radar/0215
...
Berlin_rain_radar/2255
Berlin_rain_radar/2300
Berlin_rain_radar/2405
Und weitere locations fangen jeweils mit weiteren 5 Minuten Zeitversatz an.

Zum anderen finde ich die Zahlen nach dem "/" redundant:
Die ersten 2 Ziffern zählen von 0 bis 24, das ist OK. Die nächsten beiden zählen die Minuten modulo 60 womit man nicht wirklich was anfangen kann.

Da würd ich es entweder bei der Zählung von 0 bis 24 belassen (mit dem Wissen, dass Multiplikation mit 5 die Zeit in Minuten ergibt). Oder bei drei Ziffern, die von 000,005 bis 115,120 laufen. Oder mit 4 Stellen von 0:00,0:05,...0:55,1:00,1:05 bis 1:55,2:00.

Die einzelnen Dateien in der DWD-tar Datei folgen übrigens der 000...120 Logik:
DE1200_RV2310281705_000
DE1200_RV2310281705_005
DE1200_RV2310281705_010
...
DE1200_RV2310281705_110
DE1200_RV2310281705_115
DE1200_RV2310281705_120

Sorry fürs viele Kritteln, Du hast ja die Arbeit damit...

Beste Grüße Franz



JoWiemann

Hallo Franz,

sehe das weniger als Kritik, sondern eher als Diskussion fürs Ergebnis. Ich habe den Versatz jetzt korrigiert und belasse es bei 00-24.

Anbei die entsprechende Version.

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

Gisbert

#104
Hallo Jörg,

die Readings kommen jetzt wie beschrieben rein - dankeschön :)
Mit dem Attribut
outputFormat
{ return $TIMESTAMP." ".$NAME." ".$1." ".$2."\n" if $EVENT =~ /(.*?)\/.*?:\s(.*)/}
in der Filelog-Datei wird jedoch nichts in die log-Datei geschrieben.
Ich benötige eigentlich die log-Datei (noch) nicht, aber es wäre sicher sinnvoll etwas hineinzuschreiben. Vermutlich haben sich die Änderungen überschnitten.

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