FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: Mitch am 07 Juli 2014, 17:01:23

Titel: Daten aus einer Webseite einlesen und weiter verarbeiten
Beitrag von: Mitch am 07 Juli 2014, 17:01:23
Hallo Zusammen,

ich würde gerne Daten aus einer Webseite einlesen und dann im Webfrontend anzeigen, in einen Log schreiben und Plotten.

Ich habe mit dazu das Modul HTTMOD angeschaut, aber das funktioniert leider nicht mit der Webseite.

Es handelt sich um den Grundwasserstand von dieser Webseite: http://www.nid.bayern.de/grundwasser/stationen/diagramm/index.php?pgnr=16297&gknr=4&wert=grundwasser&thema=niedrigwasser&zw=

Ich möchte diese Werte einlesen:
Situation: niedrig
Grundwasserstand [m ü. NN]: 517,70
Grundwasserstand unter Gelände [m]: 2,26
Geländehöhe [m ü. NN]: 519,96
Letzter Messwert vom 07.07.14
Titel: Antw:Daten aus einer Webseite einlesen und weiter verarbeiten
Beitrag von: Dietmar63 am 07 Juli 2014, 19:07:45
Sieh dir mal Twilight an. Es besorgt sich die Wettervorhersage so wie du es dir wüscht
Titel: Antw:Daten aus einer Webseite einlesen und weiter verarbeiten
Beitrag von: marvin78 am 07 Juli 2014, 19:09:56
Twilight liefert Daten über das Grundwasser? Seit wann?
Titel: Antw:Daten aus einer Webseite einlesen und weiter verarbeiten
Beitrag von: Dietmar63 am 07 Juli 2014, 19:28:49
Nein aber in dem Modul kannst du lernen wie man es machen könnte
Titel: Antw:Daten aus einer Webseite einlesen und weiter verarbeiten
Beitrag von: Mitch am 07 Juli 2014, 20:42:10
Also Twilight kalkuliert doch die "Helligkeit"?

Gut, es holt sich dazu auch Wetterdaten von Yahoo, aber über eine API.
Mit API ist das ja "einfach", aber ich will wirklich Daten aus einem HTML rauslesen, keine API, kein GET oder ähnliches verfügbar.

Was ich brauche, ist eine Art, nach bestimmten Parametern in einem HTML File zu suchen und dann entsprechend raus zu lesen.
In PHP gibt es da ein paar Möglichkeiten, aber mit Perl, keine Ahnung.
Titel: Antw:Daten aus einer Webseite einlesen und weiter verarbeiten
Beitrag von: UliM am 07 Juli 2014, 21:02:54
Hi,
Für sowas gibt's nen sehr einfachen Parser in weather.pm
Nach HTML-Tag suchen und den Text bis zum schließenden HTML-Tag rauslesen.
Vielleicht hilft Dir das ja als Anhaltspunkt, sonst müsstest Du hier mal den relevanten Absxhnitt des HTML posten, dann bekommst Du evtl Hilfe um die regexps zu formulieren.
Gruß Uli
Titel: Antw:Daten aus einer Webseite einlesen und weiter verarbeiten
Beitrag von: P.A.Trick am 07 Juli 2014, 21:07:37
@Mitch: Du kannst doch auch PHP benutzen und dann via system("php mein.php") aufrufen!?
Titel: Antw:Daten aus einer Webseite einlesen und weiter verarbeiten
Beitrag von: JoWiemann am 07 Juli 2014, 21:11:08
Vielleicht hilft Dir das ja weiter: https://packages.debian.org/de/sid/libwww-perl (https://packages.debian.org/de/sid/libwww-perl)

Grüße Jörg
Titel: Antw:Daten aus einer Webseite einlesen und weiter verarbeiten
Beitrag von: justme1968 am 07 Juli 2014, 21:45:51
was funktioniert denn an HTTPMOD nicht ?

wenn es damit wirklich nicht geht kannst du auch einfach eine der routinen aus HttpUtils.pm verwenden. du kannst z.b. einfach mit GetHttpFile eine seite holen und dann beliebig mit perl weiter verarbeiten. etwas so:sub                 
getNiedschlag() 
{                   
  my $html = GetHttpFile("www.heidelberg-ziegelhausen-wetter.de", "/current.html");
                   
  my @lines = split( "\r\n", $html );
  my @niederschlaege = grep /(\d+,\d+) l.m/, @lines;
                   
  my $niederschlag = 0.0;
  if( $niederschlaege[1] =~ m/(\d+),(\d+) l.m/s ) {
    $niederschlag = $1 + $2/10.0;
  }                 
                   
  return $niederschlag;
}


gruss
  andre
Titel: Antw:Daten aus einer Webseite einlesen und weiter verarbeiten
Beitrag von: Mitch am 08 Juli 2014, 11:36:03
Danke euch für die Anregungen, werde ich mir am WE mal alles in Ruhe anschauen.

Bzgl. des Weather Modul verhält es sich genau wie bei Twilight, wird auf die Yahoo API zugegriffen, also funktioniert so nicht.
Titel: Antw:Daten aus einer Webseite einlesen und weiter verarbeiten
Beitrag von: Tobias am 08 Juli 2014, 20:02:46
also ich kann mit HTML::Parser super HTML-Seiten durchparsen und Werte auslesen. Damit habe ich meinen Abfallkalender realisiert der mich nun kurz vor Müllentsorgung per Text2Speech dran erinnernt.