gelöst: Geigerzählerwerte von Webseite mittels HTTPMOD auslesen, Regex-Problem

Begonnen von hein21, 05 Januar 2019, 23:59:31

Vorheriges Thema - Nächstes Thema

hein21

Hallo,
ich habe einen Geigerzähler installiert, der regelmäßig Daten an eine Webseite funkt. Leider kann ich die Daten nur von dort wieder in mein FHEM bekommen, eine direkte Verbindung ist nicht möglich.
Grundsätzlich geht das wohl mit HTTPMOD, aber Regex macht mir mächtig Probleme. Ich habe schon einiges versucht, u.a. hiermit ganz viel ausprobiert http://chris.photobooks.com/regex/

Aber leider erschließt sich mir das Thema nicht wirklich...

Hier ist die Internetseite: http://www.gmcmap.com/historyData.asp?Param_ID=11428781863, von der ich die Daten abrufe.
Ich möchte jeweils den letzten Wert in uSv/h auslesen, alternativ ginge auch der letzte Wert in CPM.
Über Regex habe ich versucht, nach "Longitude" zu suchen, durch Ausprobieren diverser Codeschnipsel habe ich es immerhin erreicht, dass der ACPM-Wert angezeigt wird (genau den möchte ich aber nicht haben :-(
Leider gelingt es mir nicht, was anderes anzeigen zu lassen.
Kann mir bitte jemand helfen ?

Hier mein bisheriger Versuch:

define GMC HTTPMOD http://www.gmcmap.com/historyData.asp?Param_ID=11428781863 600
attr GMC userattr reading01Name reading01RegOpt reading01Regex
attr GMC enableControlSet 1
attr GMC reading01Name Messwert
attr GMC reading01RegOpt s
attr GMC reading01Regex Longitude.*?([\d]+\.[\d\.])
attr GMC room Geigerzaehler
attr GMC stateFormat Messwert

Danke,
Stefan




Vaddi

Hey,
ich bin bei weitem kein RegEx Profi, aber bei mir funktionierts so:
Lösch das Attribut reading01RegOpt s
und dein reading01Regex musst du wie folgt ändern
attr GMC reading01Regex <td>([\d]\.[\d]+)<\/td>
Wie gesagt, gerade bei mir mal getestet und es funktioniert.

Gruß
Vaddi
fhem auf RPi 3
HM-MOD-RPI-PCB sowie 433mhz Sender
Mehrere HM und 433mhz Produkte


hein21

Hi Vaddi,
super, damit funktioniert es! Danke, Du hast mir sehr geholfen! (auch wenn ich die Systematik immer noch nicht verstehe...)

@Christoph, ich hatte das Modul schon ausprobiert, leider funktioniert das bei mir nicht, FHEM hängt sich damit reproduzierbar auf.

Danke Euch allen,
viele Grüße,
Stefan

Pfriemler

Da auch mir dieser Beitrag sehr geholfen hat, will ich meine Fortschreibung als Dank hier aufführen:
Ich habe noch drei weitere Readings angelegt. Halbwegs sicher sind nur CPM (reine Dezimalzahl) und der Zeitstempel (yyyy-...) zu erfassen. µSv/h orientiert sich an einer Dezimalstelle vor dem . (x.) und der über die Laufzeit des Zählers gemittelte Durchschnittswert ACPM liegt meist zweistellig mit Dezimalpunkt (xx.).
Wenn jemand schönere Regexe findet ...

defmod GMC HTTPMOD http://www.gmcmap.com/historyData.asp?Param_ID=xxxxxxxxxxxx&systemTimeZone=2 600
attr GMC userattr reading01Name reading01Regex reading02Name reading02Regex reading03Name reading03Regex reading04Name reading04Regex
attr GMC alias Geigerzähler GMC500+
attr GMC reading01Name mikroSievertPerHour
attr GMC reading01Regex <td>([\d]\.[\d]+)<\/td>
attr GMC reading02Name CPM
attr GMC reading02Regex <td>([\d]+)<\/td>
attr GMC reading03Name lastreadout
attr GMC reading03Regex <td>([\d]{4}\-.*)<\/td>
attr GMC reading04Name ACPM
attr GMC reading04Regex <td>([\d][\d]\.[\d]+)<\/td>
attr GMC stateFormat [$name:CPM] CPM (aktuell) = [$name:mikroSievertPerHour] µSv/h, [$name:ACPM] CPM (Mittelwert), aktualisiert [$name:lastreadout]

Empfehlenswert ist das TimeZone in der URL - so bekommt man mitteleuropäische Zeiten.

Das Ergebnis sieht so aus:
ZitatGeigerzähler GMC500+     18 CPM (aktuell) = 0.12 µSv/h, 18.39 CPM (Mittelwert), aktualisiert 2019-08-25 14:40:45

und für die Regextüftler: Das sind die zu analysierenden Rohdaten:
<tbody>
  <tr>
    <td>2019-08-25 15:46:09</td>
    <td>16</td>
    <td>18.29</td>
    <td>0.10</td>
   
    <td>52.402339</td>
    <td>13.25318184</td>
 
  </tr>
 
</tbody>
"Änd're nie in fhem.cfg, denn das tut hier allen weh!" *** Wheezy@Raspi(3), HMWLAN+HMUART, CUL868(SlowRF) für FHT+KS+FS20, miniCUL433, Rademacher DuoFern *** "... kaum macht man es richtig, funktioniert es ..."

Ainadilion

Hallo, seit 30.09.2021 funktioniert der Abruf nicht mehr, hat sich hier etwas geändert?

Gruß
Ainadilion

Pfriemler

Nö. Habe meinen gerade mal in Betrieb genommen wieder (musste die Uhr stellen, 3h falsch). Nach ca 10 Minuten hatte ich auf der Website wieder "historical Data" (war tatsächlich leer, letzter Zeitstempel Dezember 2020) und nach einem ReRead in der Def auch sofort aktuelle Daten. Keine Änderung.

edit: was mir allerdings auch aufstößt: Ich hatte das Teil zwischendurch definitiv in Betrieb.
Wann hast Du Dich das letzte Mal bei gcmmap.com eingeloggt?
"Änd're nie in fhem.cfg, denn das tut hier allen weh!" *** Wheezy@Raspi(3), HMWLAN+HMUART, CUL868(SlowRF) für FHT+KS+FS20, miniCUL433, Rademacher DuoFern *** "... kaum macht man es richtig, funktioniert es ..."