Hallo guten Tag,
ich hoffe ich bin im richtigen Forum gelandet für meine Frage bzgl. Httpmod.
Ich möchte von dieser Seite:
http://213.139.159.46/prj-wwvauskunft/projects/messstellen/wasserstand/register3b.jsp?intern=false&msn=2392080300&dfue=1&pegelname=Pfeddersheim&gewaesser=Pfrimm&set1 (http://213.139.159.46/prj-wwvauskunft/projects/messstellen/wasserstand/register3b.jsp?intern=false&msn=2392080300&dfue=1&pegelname=Pfeddersheim&gewaesser=Pfrimm&set1)
den Wert "Wasserstand" auslesen. Ich habe mir die Seite im Firefox Inspektor angesehen und den Wert in "cell4" gefunden.
Er wird dort stündlich gesetzt. "cell4" ist wiederum unter </div><div id="scrollWrapper3"> zu finden.
cell4 findet man in einer td wie folgt: <td class="cell4">-</td>
#scrollWrapper3<div id="scrollWrapper3">
<table border="0" cellpadding="0" cellspacing="0">
<tbody><tr>
<td class="cell1">2392080300</td>
<td class="cell2">18.03.2016 23:00</td>
<td class="cell4">-</td>
</tr>
<tr>
<td class="cell1">2392080300</td>
<td class="cell2">18.03.2016 22:00</td>
<td class="cell4">-</td>
</tr>
Meine definition sieht wie folgt aus:
define Pegelstand HTTPMOD http://213.139.159.46/prj-wwvauskunft/projects/messstellen/wasserstand/register3b.jsp?intern=false&msn=2392080300&dfue=1&pegelname=Pfeddersheim&gewaesser=Pfrimm&set1 (http://213.139.159.46/prj-wwvauskunft/projects/messstellen/wasserstand/register3b.jsp?intern=false&msn=2392080300&dfue=1&pegelname=Pfeddersheim&gewaesser=Pfrimm&set1) 200
attr Pegelstand userattr disable enableControlSet icon readingsName_Pegel1 readingsRegex_Pegel1 stateFormat timeout
attr Pegelstand disable 0
attr Pegelstand enableControlSet 1
attr Pegelstand icon scene_swimming
attr Pegelstand readingsName_Pegel1 Pegel1
attr Pegelstand readingsRegex_Pegel1 </div><div id="scrollWrapper3"><td class="cell4">-</td></div>[^0-9]+([0-9\.]+)
attr Pegelstand room Test
attr Pegelstand stateFormat Pegel1: Pegel1
attr Pegelstand timeout 5
Leider wird kein Wert ausgelesen. Ich habe auch schon anstelle von: </div><div id="scrollWrapper3"><td class="cell4">-</td></div>[^0-9]+([0-9\.]+)
</div><div id="scrollWrapper3"><td class="cell4"></td></div>[^0-9]+([0-9\.]+) probiert.
Ich habe auch noch weitere regex probiert (nur cell4 mit - und ohne) leider alles ohne Erfolg
Könnte mir bitte jemand einen Tipp geben bzw. mir mit dem Code etwas helfen.
Im Vorraus schon mal vielen Dank und allen ein schönes Wochenende
Marko
schon mal probiert die "normalen" attribute zu benutzen? ändere also
readingsName_Pegel1 => reading01Name
readingsRegex_Pegel1 => reading01Regex
das wiki und commandref kennst du?
Zitat von: frank am 19 März 2016, 17:09:21
schon mal probiert die "normalen" attribute zu benutzen? ändere also
readingsName_Pegel1 => reading01Name
readingsRegex_Pegel1 => reading01Regex
Das neue Namensschema wird durch das "set upgradeAttributes" (auch hier wieder: siehe commandref) recht zuverlässig hergestellt ... aktuelles Fhem/HTTPMOD vorausgesetzt.
Peter
(?s)id="scrollWrapper3".*?cell4">(.*?)<
damit bekomme ich das "-" beim ersten cell4.
probiere mal hier https://regex101.com/ (https://regex101.com/)
Zitat von: frank am 19 März 2016, 18:28:48
(?s)id="scrollWrapper3".*?cell4">(.*?)<
damit bekomme ich das "-" beim ersten cell4.
probiere mal hier https://regex101.com/ (https://regex101.com/)
Hallo und erst mal vielen Danke für die Tipps.
JA ich habe das Wiki in
englischer Sprache?? gelesen. JA auch der Rest ist mir bekannt.
Eine sehr gute Anleitung gibt es auch hier: https://wiki.selfhtml.org/wiki/Perl/Regul%C3%A4re_Ausdr%C3%BCcke
Mit Deinem Tipp erhalte ich in den Readings schon mal Datum und ein "-" angezeigt. Das ist aber noch nicht der Pegelwert. Habe selbst noch etwas weiter probiert leider aktuell immer noch ohne Erfolg was den Pegelwert betrifft :'(
Readings
Datum
19.03.2016 23:00
2016-03-19 20:04:05
Pegel
-
2016-03-19 20:04:05
Viele Grüß Marko
wenn du die erste zahl nach den "-" in dieser spalte willst, geht:
(?s)id="scrollWrapper3".*?cell4">([^-]*?)<
Super vielen Dank Deine Lösung geht!!
Ich habe aber auch eine Lösung gefunden: class="cell4">([\w \d.\d.\d]+)
Readings
Datum
20.03.2016 23:00
2016-03-20 01:09:57
Pegel
34
2016-03-20 01:09:57
Pegel_aktuell
34
2016-03-20 00:28:20
Pegel_alt
32
2016-03-20 00:28:20
Ein schönes Wochenende
Marko