Daten aus einer Webseite einlesen und weiter verarbeiten

Begonnen von Mitch, 07 Juli 2014, 17:01:23

Vorheriges Thema - Nächstes Thema

Mitch

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
FHEM im Proxmox Container

Dietmar63

Sieh dir mal Twilight an. Es besorgt sich die Wettervorhersage so wie du es dir wüscht
Gruß Dietmar
FB7390, CUL, 2 FHT, FS20
modules: 98_WOL.pm, 98_Heating_Control.pm,   98_WeekdayTimer.pm, 98_RandomTimer.pm, 59_Twilight.pm

marvin78

Twilight liefert Daten über das Grundwasser? Seit wann?

Dietmar63

Nein aber in dem Modul kannst du lernen wie man es machen könnte
Gruß Dietmar
FB7390, CUL, 2 FHT, FS20
modules: 98_WOL.pm, 98_Heating_Control.pm,   98_WeekdayTimer.pm, 98_RandomTimer.pm, 59_Twilight.pm

Mitch

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.
FHEM im Proxmox Container

UliM

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
RPi4/Raspbian, CUL V3 (ca. 30 HomeMatic-devices), LAN (HarmonyHub, alexa etc.).  Fördermitglied des FHEM e.V.

P.A.Trick

@Mitch: Du kannst doch auch PHP benutzen und dann via system("php mein.php") aufrufen!?
Cubietruck,RPI,QNAP Ts-419p+, FS20, FRITZ!DECT200, 7 MAX! Thermostate, 3 MAX! Fensterkontakte, Kodi, CUL V3.3, EM1000S, LW12, LD382, HUE, HM-CFG-USB-2, 1x HM-LC-SW1-FM, 2x HM-LC-SW2-FM, 2x HM-LC-Sw1PBU-FM, 3xHM-LC-Bl1PBU-FM,HM-SEC-RHS, 2xHM-SEC-SD,HM-WDS30-T-O, 3x HM-LC-Dim1TPBU-FM, RPI+AddOn

JoWiemann

Jörg Wiemann

Slave: RPi B+ mit 512 MB, COC (868 MHz), CUL V3 (433.92MHz SlowRF); FHEMduino, Aktuelles FHEM

Master: CubieTruck; Debian; Aktuelles FHEM

justme1968

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
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

Mitch

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.
FHEM im Proxmox Container

Tobias

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.
Maintainer: Text2Speech, TrashCal, MediaList

Meine Projekte: https://github.com/tobiasfaust
* PumpControl v2: allround Bewässerungssteuerung mit ESP und FHEM
* Ein Modbus RS485 zu MQTT Gateway für SolarWechselrichter