Pegelabfrage über HTTPMOD

Begonnen von J0nny12, 18 Februar 2019, 16:41:18

Vorheriges Thema - Nächstes Thema

J0nny12

Liebe Nutzer!
Ich versuche mittlerweile seit Tagen den Wasserstand der Ruhr (erster Wert auf der Seite) per HTTPMOD von

https://www.talsperrenleitzentrale-ruhr.de/online-daten/gewaesserpegel/2769510000100/?tx_onlinedata_gauges%5Baction%5D=show&tx_onlinedata_gauges%5Bcontroller%5D=Gauges

als einfaches Reading auszulesen, um es in unserem Wassersportverein auf einem Display darzustellen.
Leider gehts mir da wie vielen Regexp-neulingen - Ich komme nicht weiter, die vielen Tutorials zu zB. Benzinpreisen halfen mir nicht.

Kann mir jemand sagen wie in etwa die Regexp aussehen kann, und am besten auchhnoch kurz wieso?

beste Grüße
Jonny

t1me2die

Moin Jonny,

probiere es mal mit:


attr DEIN_DEVICE_NAME reading01Regex (\d.*)cm
attr DEIN_DEVICE_NAME reading01RegOpt g
attr DEIN_DEVICE_NAME reading01Name Wasserstand


Hab es nicht getestet, aber so ungefähr könnte es vielleicht aussehen?!  ::)

Gruß
Mathze

J0nny12

Vielen Dank!
Ich hatte einen viel aufwändigeren Weg im Kopf.
Das funktioniert nur, weil auf der Seite nur ein Wert in "cm" angegeben ist, richtig?

t1me2die

Moin Jonny,

soweit ich das richtig überflogen habe, war tatsächlich nur ein Wert in dieser Konstellation vorhanden.
Ich nutze gerne regex101.com um das mal fix zu testen.
Da ich es in FHEM nicht probiert hatte, war dies auch erstmal nur ein "Versuch"  ;)

Aber schön, wenn das Ergebnis wie gewünscht ist.

Gruß
Mathze

curt

Zitat von: J0nny12 am 18 Februar 2019, 16:41:18
den Wasserstand der Ruhr
@J0nny12
Hallo Jonny,

ich habe für Pegel einen einfacheren sowie allgemeingültigen Weg gefunden. Seit Wochen nehme ich mir vor, das zu dokumentieren. Immerhin habe ich die Einleitung schon ... wie viel Zeit gibst Du mir?
RPI 4 - Jeelink HomeMatic Z-Wave

curt

@J0nny12

Danke für den Schubs, mein Artikel ist als Entwurf fertig: https://wiki.fhem.de/wiki/Flusspegel

Der Vorteil dieses Vorgehens ist, dass Du nicht mehr von irgendwelchen unerwarteten Änderungen der von Dir beobachteten Webseite abhängig bist.

Schreib bitte kritisch, wo mein Text unverständlich ist.
RPI 4 - Jeelink HomeMatic Z-Wave

mi.ke

Man muss auch nicht zwingend über die UUID gehen, Ort der Messtelle und FlussName ist manchmal einfacher:
https://www.pegelonline.wsv.de/webservices/rest-api/v2/stations.json?ids=HATTINGEN&waters=RUHR

Oder ausführlicher:
https://www.pegelonline.wsv.de/webservices/rest-api/v2/stations.json?ids=HATTINGEN&waters=RUHR&includeTimeseries=true&includeCurrentMeasurement=true

Wichtig ist das Attribut:
extractAllJSON 1

Cheers
mi.ke
FHEM 5.9 | RPi4 + 5 x RPi(Z) + FB7590 + FB 6890 LTE via LAN und WAN (VPN) verbunden.
2 x CUL868 + 3 x RFXTRX(e) + 6 x HMwLanGW + 4 x z2tGw + 5 x LGW + 2 x IRBlast + CO2 +++
FS20, FHT, FMS, Elro(mod), CM160, Revolt, LGTV, STV, AVR, withings, HM-sec-*, HM-CC-RT-DN, AMAD, PCA301, arlo, Aqara

Beta-User

Habe mal ein template für die Entwickler-Version gebastelt:

#German river water levels, Wiki: https://wiki.fhem.de/wiki/Flusspegel
name:A_02d_pegelonline
filter:TYPE=HTTPMOD
desc: Get water level infor for german rivers from www.pegelonline.wsv.de.<br>Define a HTTPMOD device like <br>defmod Pegelstaende HTTPMOD https://www.pegelonline.wsv.de/webservices/rest-api/v2/stations/070b1eb4-3872-4e07-b2e5-e25fd9251b93/W/currentmeasurement.json 3600<br>Change station argument to your needs <br><a href="https://wiki.fhem.de/wiki/Flusspegel">Source: Wiki</a><br><a href="https://forum.fhem.de/index.php/topic,97560.msg908176.html#msg908176">Source: Forum</a>
attr DEVICE enableControlSet 1
attr DEVICE extractAllJSON 1
attr DEVICE event-on-change-reading value,stateMnwMhw,stateNswHsw,timestamp,trend
attr DEVICE event-on-update-reading value
attr DEVICE sortby 1
attr DEVICE stateFormat {sprintf("%.0f",ReadingsVal("DEVICE","value",0))}
attr DEVICE timeout 5
attr DEVICE model A_02d_pegelonline


Das paßt allerdings nur für die Version von curt, an sich finde ich aber die Textabfrage von mi.ke auch nicht schlecht (da kann man auch einfach experimentieren, ob da was kommt...), das ergibt aber wieder andere Readings...
Mit welcher HTTPMOD-Version seid ihr grade unterwegs?
In der letzten gibt es noch zwei Attribute, die evtl. für die Textabfrage interessant sein könnten:  extractAllJSONFilter und preProcessRegex, habe mich da aber zugegebenermaßen nicht intensiver eingedacht.

Vermutlich checke ich das bei Gelegenheit mal ein (man benötigt aber wie gesagt die/eine aktualisierte HTTPMOD-Version aus dem Forum).

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

J0nny12

Zitat von: curt am 18 Februar 2019, 19:47:14
@J0nny12

Danke für den Schubs, mein Artikel ist als Entwurf fertig: https://wiki.fhem.de/wiki/Flusspegel

Der Vorteil dieses Vorgehens ist, dass Du nicht mehr von irgendwelchen unerwarteten Änderungen der von Dir beobachteten Webseite abhängig bist.

Schreib bitte kritisch, wo mein Text unverständlich ist.

Vielen Dank, super Sache!

mi.ke

Zitat von: Beta-User am 19 Februar 2019, 07:51:47
Mit welcher HTTPMOD-Version seid ihr grade unterwegs?
In der letzten gibt es noch zwei Attribute, die evtl. für die Textabfrage interessant sein könnten:  extractAllJSONFilter und preProcessRegex, . . . .

98_HTTPMOD.pm             12220 2016-09-29 18:25:09Z ststrobel

hat schon "extractAllJSON" nur kein "extractAllJSONFilter"

Das ist ein alter RPi1 der sich nur um WebAbfragen kümmert, um das Hauptsystem nich zu belasten.
Der läuft so schön, die SD ist auch schon randvoll, deswegen kein Update gemacht.

Cheers
mi.ke
FHEM 5.9 | RPi4 + 5 x RPi(Z) + FB7590 + FB 6890 LTE via LAN und WAN (VPN) verbunden.
2 x CUL868 + 3 x RFXTRX(e) + 6 x HMwLanGW + 4 x z2tGw + 5 x LGW + 2 x IRBlast + CO2 +++
FS20, FHT, FMS, Elro(mod), CM160, Revolt, LGTV, STV, AVR, withings, HM-sec-*, HM-CC-RT-DN, AMAD, PCA301, arlo, Aqara

Beta-User

Zitat von: mi.ke am 21 Februar 2019, 20:39:23
98_HTTPMOD.pm             12220 2016-09-29 18:25:09Z ststrobel
Wow, eine Antiquität ;D ...

Übrigens ist jetzt auch die Version "template-fähig", die über das normale update kommt. Hatte ich gar nicht mitgekriegt...

Das template ist jetzt erst mal mit UUID im svn.
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: ZigBee2mqtt, MiLight@ESP-GW, BT@OpenMQTTGw | ZWave | SIGNALduino | MapleCUN | RHASSPY
svn: u.a Weekday-&RandomTimer, Twilight,  div. attrTemplate-files, MySensors

curt

Zitat von: mi.ke am 18 Februar 2019, 23:09:54
Man muss auch nicht zwingend über die UUID gehen, Ort der Messtelle und FlussName ist manchmal einfacher:
https://www.pegelonline.wsv.de/webservices/rest-api/v2/stations.json?ids=HATTINGEN&waters=RUHR

Genau davon raten die Kollegen von ITZBund ab. Die sprechenden Namen seien nicht sicher im Sinne möglicher Änderungen. Allein sicher sei UUID.
RPI 4 - Jeelink HomeMatic Z-Wave