FHEM Forum

FHEM => Sonstiges => Thema gestartet von: marko67 am 18 März 2016, 17:35:39

Titel: Gelöst HTTPMOD benötige Hilfe
Beitrag von: marko67 am 18 März 2016, 17:35:39
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
Titel: Antw:HTTPMOD benötige Hilfe
Beitrag 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 wiki und commandref kennst du?
Titel: Antw:HTTPMOD benötige Hilfe
Beitrag von: ph1959de am 19 März 2016, 18:02:47
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
Titel: Antw:HTTPMOD benötige Hilfe
Beitrag 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/)
Titel: Antw:HTTPMOD benötige Hilfe
Beitrag von: marko67 am 19 März 2016, 20:15:43
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
Titel: Antw:HTTPMOD benötige Hilfe
Beitrag von: frank am 20 März 2016, 00:52:15
wenn du die erste zahl nach den "-" in dieser spalte willst, geht:
(?s)id="scrollWrapper3".*?cell4">([^-]*?)<
Titel: Gelöst HTTPMOD benötige Hilfe
Beitrag von: marko67 am 20 März 2016, 01:15:28
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