Wert von einer Webseite per HTTPMOD auslesen

Begonnen von d0m2011, 22 April 2017, 23:44:47

Vorheriges Thema - Nächstes Thema

CoolTux

Ist aber nicht das richtige. Aber zu mindest kommt jetzt was.
Die zwei kommt wohl aus dem Text "Wassertemperatur der letzten 2 Monate"
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

d0m2011

Ja das könnte sein.
Ich habe jetzt auch mit Regex.com rumprobiert.
Leider schaffe ich es nicht, nur die in diesem Fall 11,1 Grad zu erwischen  :-\

Ich ich nicht einfach einen fixen Bereich (von Zeichen Nr. bis Zeichen Nr.) definieren.
Dieser sollte auf der Seite ja immer gleich sein.

Thorsten Pferdekaemper

Zitat von: d0m2011 am 23 April 2017, 16:12:42
Leider schaffe ich es nicht, nur die in diesem Fall 11,1 Grad zu erwischen  :-\
Versuch jetzt mal das hier als Regex:

Wassertemperatur[\x20]\[°C\]:[\x20]<strong>([\d\,]+)

...oder so:

Wassertemperatur[\x20].*[\x20]<strong>([\d\,]+)


Zitat
Ich ich nicht einfach einen fixen Bereich (von Zeichen Nr. bis Zeichen Nr.) definieren.
Dieser sollte auf der Seite ja immer gleich sein.
Naja, aber wie lange?
Ansonsten könnte sowas gehen:

.{75}(.{5})

Das sollte Dir Zeichen an der Stelle 76 bis 80 liefern.
Gruß,
   Thorsten
FUIP

d0m2011

Es funktioniert!!

Hiermit gehts
Wassertemperatur[\x20]\[°C\]:[\x20]<strong>([\d\,]+)

Ich habs zwar noch nicht zu 100% verstanden aber es geht wohl...
Die andere Möglichkeit mit dem Bereich werde ich nachher mal an anderer Stelle testen.

Thorsten Pferdekaemper

Zitat von: CoolTux am 23 April 2017, 11:30:22
Vor ein paar Wochen gab es da schon mal so etwas. Dabei wurde erklärt das in der Regex ein Zeichen eingebaut ist wo dann erkannt wird das alles nach dem Zeichen das Value ist.
Das sind die Klammern (). Alles was innerhalb ist, ist der Wert.
Gruß,
   Thorsten
FUIP

Thorsten Pferdekaemper

Zitat von: d0m2011 am 23 April 2017, 19:22:20Wassertemperatur[\x20]\[°C\]:[\x20]<strong>([\d\,]+)

Ich habs zwar noch nicht zu 100% verstanden aber es geht wohl...
Das ganze sucht sozusagen nach

Wassertemperatur [°C]: <strong>

Ein paar Zeichen müssen "escaped" werden, da sie in RegEx eine eigene Bedeutung haben. "Blank" ist halt [\x20].

[\d\,]+

Das bedeutet soviel wie "beliebig viele Ziffern und Kommata, aber mindestens eine/eins". Die Klammern außenherum sagen, dass das der Wert ist, nach dem wir suchen.
Gruß,
   Thorsten


FUIP

d0m2011

Ah jetzt, genial.
Morgen wollte ich evtl. noch etwas von einer anderen Seite auslesen, mal sehen obs klappt.

So nun möchte ich das Ganze im Tablet UI darstellen wie folgt:

<li data-row="5" data-col="1" data-sizex="1" data-sizey="1">
    <Header>Main-Temp</header>
<div class="bigger">
<div data-type="label"
     data-device="Maintemp"
     data-get="Wassertemp"
     data-post-text="°C"></div>
         </div>
   
</li> 


Leider funktioniert es nicht. Mein Device heißt Maintemp und das Reading darin Wassertemp (mit dem Wert aktuell von 11,1).
Wo ist der Fehler?

Thorsten Pferdekaemper

Hi,
was heißt "es funktioniert nicht"? Wie sieht es denn aus?
Gruß,
   Thorsten
FUIP

d0m2011

Er zeigt einfach nichts an.
Es kommt kein Wert.
Setze ich die Quelle auf den "state"

Heißt:
<li data-row="5" data-col="1" data-sizex="1" data-sizey="1">
    <Header>Main-Temp</header>
<div class="bigger">
<div data-type="label"
     data-device="Maintemp"
     data-post-text="°C"></div>
         </div>
   
</li>


funktioniert es.
Dazu müsste ich jedoch das Reading in den State übernehmen.
Geht das?

CoolTux

Heißt Dein Reading nicht Wassertemperatur  und nicht Wassertemp?
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

d0m2011

Als Namen hab ich es folgendermaßen definiert:

reading01Name Wassertemp

Unter readings steht nun auch Wassertemp mit dem Namen.

Kann ich den Wert nicht in einen dummy schreiben (Wassertemp_dummy)?

Thorsten Pferdekaemper

Zitat von: d0m2011 am 24 April 2017, 10:31:47
Kann ich den Wert nicht in einen dummy schreiben (Wassertemp_dummy)?
Könnte man schon, aber eigentlich sollte das mit dem data-get auch so funktionieren. Ich würde Dir empfehlen, das mal im Tablet-UI Unterforum zu fragen.
Gruß,
   Thorsten
FUIP

d0m2011

Hallo zusammen,

ich benötige wieder einmal eure Hilfe.

Von folgender Seite möchte ich den Wasserstand auslesen:
https://www.hnd.bayern.de/pegel/unterer_main/wuerzburg-24042000

Ich habe es mit folgendem Regex versucht, leider ohne Erfolg:
Uhr:[\x20]<strong>([\d\+]+)

Leider ohne Erfolg aber so weit von der Lösung kann ich nicht entfernt sein.

Vielleicht könnt ihr mir ja helfen.
Grüße

weldel60

Seit etwa 14 Tagen erhalte ich keine Readings mehr. Am Quelltext hat sich meines Erachtens nichts geändert.
Kann mir jemand helfen?

Quelle:
https://www.nid.bayern.de/wassertemperatur/isar/stegen-16602008

reading01Regex  Vortages[\x20]\[°C\]:[\x20]<strong>([\d\.]+)

amenomade

Zitat von: weldel60 am 29 November 2020, 11:46:01
Seit etwa 14 Tagen erhalte ich keine Readings mehr. Am Quelltext hat sich meines Erachtens nichts geändert.
Kann mir jemand helfen?

Quelle:
https://www.nid.bayern.de/wassertemperatur/isar/stegen-16602008

reading01Regex  Vortages[\x20]\[°C\]:[\x20]<strong>([\d\.]+)

Was sagt die Log?
Warum [\x20] und nicht einfach space?
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus