Gelöst HTTPMOD benötige Hilfe

Begonnen von marko67, 18 März 2016, 17:35:39

Vorheriges Thema - Nächstes Thema

marko67

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

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 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

frank

schon mal probiert die "normalen" attribute zu benutzen? ändere also

readingsName_Pegel1 => reading01Name
readingsRegex_Pegel1 => reading01Regex

das wiki und commandref kennst du?
FHEM: 6.0(SVN) => Pi3(buster)
IO: CUL433|CUL868|HMLAN|HMUSB2|HMUART
CUL_HM: CC-TC|CC-VD|SEC-SD|SEC-SC|SEC-RHS|Sw1PBU-FM|Sw1-FM|Dim1TPBU-FM|Dim1T-FM|ES-PMSw1-Pl
IT: ITZ500|ITT1500|ITR1500|GRR3500
WebUI [HMdeviceTools.js (hm.js)]: https://forum.fhem.de/index.php/topic,106959.0.html

ph1959de

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
Aktives Mitglied des FHEM e.V. | Moderator im Forenbereich "Wiki"

frank

(?s)id="scrollWrapper3".*?cell4">(.*?)<
damit bekomme ich das "-" beim ersten cell4.
probiere mal hier https://regex101.com/
FHEM: 6.0(SVN) => Pi3(buster)
IO: CUL433|CUL868|HMLAN|HMUSB2|HMUART
CUL_HM: CC-TC|CC-VD|SEC-SD|SEC-SC|SEC-RHS|Sw1PBU-FM|Sw1-FM|Dim1TPBU-FM|Dim1T-FM|ES-PMSw1-Pl
IT: ITZ500|ITT1500|ITR1500|GRR3500
WebUI [HMdeviceTools.js (hm.js)]: https://forum.fhem.de/index.php/topic,106959.0.html

marko67

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/

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

frank

wenn du die erste zahl nach den "-" in dieser spalte willst, geht:
(?s)id="scrollWrapper3".*?cell4">([^-]*?)<
FHEM: 6.0(SVN) => Pi3(buster)
IO: CUL433|CUL868|HMLAN|HMUSB2|HMUART
CUL_HM: CC-TC|CC-VD|SEC-SD|SEC-SC|SEC-RHS|Sw1PBU-FM|Sw1-FM|Dim1TPBU-FM|Dim1T-FM|ES-PMSw1-Pl
IT: ITZ500|ITT1500|ITR1500|GRR3500
WebUI [HMdeviceTools.js (hm.js)]: https://forum.fhem.de/index.php/topic,106959.0.html

marko67

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