Flusspegel Hochwasser

Begonnen von curt, 18 Februar 2019, 20:01:15

Vorheriges Thema - Nächstes Thema

curt

Flusspegel sind immer dann von Interesse, wenn das Hochwasser schon an der Türschwelle schwappt, der Nachbar Sandsäcke schleppt und von Ferne Hubschrauber zu hören sind. Dann ist es allerdings zu spät für die Integration von Flusspegeln in FHEM.

Seit dem Elbehochwasser 2002 (ich war nicht betroffen, aber involviert) verfolge ich das Thema näher. Es ist zu sagen, dass es für jeden amtlichen Pegel nur einen Betreiber, aber recht viele unterschiedliche Internetdienste gibt: Gleich mehrere Bundesämter, dazu die Landeszentralen für Hochwasserschutz sowie private Betreiber halten Pegeldaten im Internet vor. Aber welchen nehmen? Mit welchen regex sich rumärgern?

Da mein seit 2002 genutzter Dienst ausläuft, wandte ich mich an ITZBund und die zeigten mir den Vorzugsweg: Die Wasserstraßen- und Schifffahrtsverwaltung des Bundes stellt über den Dienst "Pegelonline" für jeden amtlichen Pegel json-Daten zur Verfügung - damit ist die Integration in FHEM simpel. Darüber hinaus ist der Dienst stabil (200 Mio Anfragen ähnlich) sowie (opendata) langfristig.

Ein mögliches Vorgehen bei der Integration in FHEM beschrieb ich soeben unter https://wiki.fhem.de/wiki/Flusspegel .

Soweit der Artikel nicht schlüssig, unklar oder sonst irgendwie schlecht ist: Ich bitte um Kritik.
RPI 4 - Jeelink HomeMatic Z-Wave

marv99

Hallo curt,

die Einrichtung funktioniert sehr gut  :)

Im Wiki steht in der FHEM Definition noch die Station WITTENBERG, nicht die UUID. Das könnte unter Umständen verwirrend sein, bzw. schreibt Pegelonline ja, dass sich Namen ändern können.

Viele Grüße
Marv

curt

Zitat von: marv99 am 18 Februar 2019, 21:41:53
die Einrichtung funktioniert sehr gut  :)

Das freut mich.

Zitat von: marv99 am 18 Februar 2019, 21:41:53
Im Wiki steht in der FHEM Definition noch die Station WITTENBERG, nicht die UUID. Das könnte unter Umständen verwirrend sein, bzw. schreibt Pegelonline ja, dass sich Namen ändern können.

Danke für den Hinweis. - Das war ein Flüchtigkeitsfehler: Wegen einer Anfrage in einem anderen Thread wollte ich das tun, was ich seit Wochen vor habe: Doku schreiben. So entstand der Flüchtigkeitsfehler. Korrigiere ich gleich.
RPI 4 - Jeelink HomeMatic Z-Wave

Beta-User

Danke für den Code und die Darstellung im Wiki.

Habe vorhin noch ein template ins svn hochgeladen, wobei das auch mit der UUID arbeitet.

Gruß, Beta-User
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

DeeSPe

#4
Nette Idee!

Ich würde folgende Änderung an der Beschreibung der Integration ändern um es universeller zu halten:
attr ElbePegelWittenberg stateFormat {sprintf("%.0f",ReadingsVal($name,"pegel",0))}
attr ElbePegelWittenberg userReadings pegel:value.* {ReadingsVal($name,"value",0)}


Ja, ich schlage auch vor Pegel als Reading klein zu schreiben (weil es so üblich ist) und das userReading anhand vom value-Event zu ändern weil es einfach Sinn macht. Dafür müssen dann auch die folgenden Attribute angepasst werden.
attr ElbePegelWittenberg event-on-change-reading stateMnwMhw,stateNswHsw,timestamp,trend
attr ElbePegelWittenberg event-on-update-reading pegel,value


Gruß
Dan

EDIT: Die Attribute fp_Hauptseite, group, room und sortby würde ich im Wiki weg lassen.
MAINTAINER: 22_HOMEMODE, 98_Hyperion, 98_FileLogConvert, 98_serviced

Als kleine Unterstützung für meine Programmierungen könnt ihr mir gerne einen Kaffee spendieren: https://buymeacoff.ee/DeeSPe

Beta-User

Im template habe ich auf das userreading ganz verzichtet, da landet einfach der Pegel via stateFormat als "value" im STATE.
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

BillyPbg

Tolle Idee!

Könntest Du noch der Vollständigkeit halber die Plot-Definition "SVG_FileLog_ElbePegelWittenberg_1" ins WIKI einstellen.

Gruß aus Bayern!

curt

Zitat von: Beta-User am 19 Februar 2019, 20:37:40
Habe vorhin noch ein template ins svn hochgeladen, wobei das auch mit der UUID arbeitet.

Kannst Du bitte erläutern, wofür das gut ist, was man damit macht?

Zitat von: DeeSPe am 19 Februar 2019, 20:40:05
Nette Idee!

Da geht noch mehr: Exotische Kraftstoffsorten, Überwachung auf Updates ...

Zitat von: DeeSPe am 19 Februar 2019, 20:40:05
Ich würde folgende Änderung

Alle Änderungen ins Wiki übernommen, danke.

Zitat von: DeeSPe am 19 Februar 2019, 20:40:05
Ja, ich schlage auch vor Pegel als Reading klein zu schreiben

Zwar auch übernommen - privat lasse ich es aber so. Es wäre schade um die vier Zeitreihenpegel, die über ein Jahr laufen; dann wäre die grafische Darstellung hin.

Zitat von: BillyPbg am 19 Februar 2019, 20:59:49
Könntest Du noch der Vollständigkeit halber die Plot-Definition "SVG_FileLog_ElbePegelWittenberg_1" ins WIKI einstellen.

Ist jetzt im Artikel.
RPI 4 - Jeelink HomeMatic Z-Wave

Beta-User

Zitat von: curt am 19 Februar 2019, 23:49:23
Kannst Du bitte erläutern, wofür das gut ist, was man damit macht?
Ganz allgemein ist attrTemplate eine FHEM-Funktion, die ein Modulautor entweder separat implementieren kann oder verfügbar ist, wenn setExtensions genutzt werden. Gedacht ist das im Kern dazu, dem user Konfigurationsarbeit abzunehmen, indem (v.a.) die jeweils sinnvollen Attribute "auf einen Rutsch" angewendet werden können. Da aber praktisch jede FHEM-Funktion aufgerufen werden kann und auch Variablen möglich sind, kann man damit auch mehr machen (z.B. tasmota-Geräte dazu überreden, in Klein- statt Großschreibung zu kommunizieren).

Die Funktionsweise ist wie folgt:
Man benötigt ein passendes Device (derzeit: MQTT2_DEVICE und HTTPMOD; ESPEasy geht prinzipiell auch, es gibt aber noch keine .template im svn, MQTT_DEVICE müßte es auch können). Dann ist "set <device> attrTemplate ..." verfügbar, wobei man über das "?" eine Liste der für den Geräte-TYPE verfügbaren templates bekommt. In der dropdown-Liste einfach auswählen, was man haben möchte, ggf. Parameter angeben, that's it...

Zum Testen des "?" kannst du den Flußpegel nehmen oder "sicherheitshalber" z.B.
defmod spiegel_de HTTPMOD www.spiegel.de 0set spiegel_de attrTemplate ?
In der template-file zu HTTPMOD sind btw. auch Spritpreise und diverse Druckertypen enthalten, in der Regel samt Fundstelle im Forum, so dass man dann auch Hinweise zur weiteren Anpassung an die eigenen Bedürfnisse findet. (So jedenfalls meine Idee).

Bei den MQTT2-Praxisbeispielen im Wiki findet sich da einiges, das kann man m.E. eigentlich recht gut nach HTTPMOD übertragen.

Hoffe, das einigermaßen verständlich erläutert zu haben,

Beta-User

Anmerkung:
Wenn du mehr mit HTTPMOD machst, sowieso am Sammeln für diese Dinge bist und das für's Wiki etc. aufbereitest: Ich hätte kein Problem damit, die svn-Verantwortung für die HTTPMOD-templates weiterzugeben....
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

curt

#9
Ich habe den Wiki-Artikel https://wiki.fhem.de/wiki/Flusspegel um zwei Punkte ergänzt:

1) Abflusspegel über eine zweite (sehr ähnliche) URL.
2) Einzelwert "trend" deprecated.

P.S: @Beta-User
Danke nein. Unsere Arbeitsteilung funktioniert doch sehr schön. Zudem habe ich erstens mit meinen kleinen Projekten gut zu tun und zweitens damit, dass ich -wie in diesem Job gewohnt- klar sage, was ich für dysfunktional halte. Das kommt in einem Forum, in dem kritische Beiträge mit einer Entschuldigung und einem Kniefall einzuleiten sind, deutlich ungut. Ich muss da ja auch noch die benni-Baustelle befrieden. Aber das wird jetzt OT.
RPI 4 - Jeelink HomeMatic Z-Wave

Pr3mut05

Danke
Schon mal sehr interessant
Auch wenn mein Ort bei diesen Datenlieferanten nicht dabei ist.

Mal schaun ob ich es schaffe für mich https://www.hnd.bayern.de abzufragen

curt

Zitat von: Pr3mut05 am 25 Mai 2019, 21:09:24
Auch wenn mein Ort bei diesen Datenlieferanten nicht dabei ist.

Ich weiß nicht, ob es ein Verständnisproblem ist: So eine gelb-schwarze Latte kann jeder in den Fluss nageln. Sieht aus wie ein Pegel, riecht wie ein Pegel - ist aber keiner.

Zitat von: Pr3mut05 am 25 Mai 2019, 21:09:24
Mal schaun ob ich es schaffe für mich https://www.hnd.bayern.de abzufragen

Ein Flusspegel ist in Deutschland eine hochoffizielle Sache. Wenn es den Pegel im abtrünnigen Bayern gibt, dann musst Du den auch auf dem oben beschriebenen Weg beim Bund finden: Soweit haben wir Bayern schon noch in Griff. ;)

Gibt es Dein Flüsslein denn bei Pegelonline?

In dem Falle würde ich empfehlen, den stromaufwärts gelegenen Pegel zu nehmen, das hat ja auch den Vorteil, dass man eine minimale Vorwarnzeit hat ...
RPI 4 - Jeelink HomeMatic Z-Wave

Ainadilion

Hallo, habe den Code aus dem Wiki in FHEM eingebunden. Allerdings bekomme ich keine Ergebnisse. Haben sich Aufrufe verändert?

Gruß
Steffen

kumue

#13
habe eben den beispielcode aus dem wiki eingebunden und bekomme einen wert zurück...
hier die readings:

pegel       122                         2019-12-16 21:33:45
stateMnwMhw normal                      2019-12-16 21:33:45
stateNswHsw normal                      2019-12-16 21:33:45
timestamp   2019-12-16T21:30:00+01:00   2019-12-16 21:33:45
trend       -1                          2019-12-16 21:33:45
value       122                         2019-12-16 21:33:45


also muss es an was anderem liegen...

Nachtrag:
was anscheinend nicht (mehr) funktioniert, ist die Anfrage der Abflussmenge... also W durch Q ersetzen wie hier beschrieben
Die eigentlich interessantere Abflussmenge kann über eine geringfügig andere URL abgefragt werden: In der ermittelten URL ist lediglich das "W" durch "Q" zu ersetzen
Da bekomme ich unter den Readings die Meldung
Current measurement for station '003200ab-d138-49d9-aa52-217817941f85' and id 'Q' does not exist.

Ainadilion

Hallo, nochmals eine Frage, fehlen mir eventuell Grundeinstellungen für FHEM? Ich bekomme keinerlei Ergebnisse mit diesem Code.

Gruß
Steffen