FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: hein21 am 05 Januar 2019, 23:59:31

Titel: gelöst: Geigerzählerwerte von Webseite mittels HTTPMOD auslesen, Regex-Problem
Beitrag von: hein21 am 05 Januar 2019, 23:59:31
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



Titel: Antw:Geigerzählerwerte von Webseite mittels HTTPMOD auslesen, Regex-Problem
Beitrag von: Vaddi am 06 Januar 2019, 10:52:52
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
Titel: Antw:Geigerzählerwerte von Webseite mittels HTTPMOD auslesen, Regex-Problem
Beitrag von: Christoph Morrison am 06 Januar 2019, 15:24:45
Hast du Neues Modul: 32_gmc320.pm - Messung von Radioaktivität (https://forum.fhem.de/index.php?topic=80993.0) gesehen?
Titel: Antw:Geigerzählerwerte von Webseite mittels HTTPMOD auslesen, Regex-Problem
Beitrag von: hein21 am 06 Januar 2019, 18:56:46
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
Titel: Antw:gelöst: Geigerzählerwerte von Webseite mittels HTTPMOD auslesen, Regex-Problem
Beitrag von: Pfriemler am 25 August 2019, 15:49:11
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>
Titel: Antw:gelöst: Geigerzählerwerte von Webseite mittels HTTPMOD auslesen, Regex-Problem
Beitrag von: Ainadilion am 12 Oktober 2021, 16:07:41
Hallo, seit 30.09.2021 funktioniert der Abruf nicht mehr, hat sich hier etwas geändert?

Gruß
Ainadilion
Titel: Antw:gelöst: Geigerzählerwerte von Webseite mittels HTTPMOD auslesen, Regex-Problem
Beitrag von: Pfriemler am 12 Oktober 2021, 16:46:27
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?