Hauptmenü

www bzw. Net-Abfrage

Begonnen von cornelius fillmore, 07 Juni 2013, 11:09:05

Vorheriges Thema - Nächstes Thema

cornelius fillmore

Hallo Forum,

wie kann ich denn einen externen Port abfragen und dann die Daten in einen Log-File schreiben.

Leider habe ich dazu kein howto bzw. passenden code-Schnippsel gefunden.

Danke
3 x Fhem 5.9 mit RPI

oniT

Hallo,

bring doch mal ein Beispiel was Du tun möchtest. Dann kann Dir vielleicht geholfen werden.

Gruß,
TinoB
BBB - debian weezy - FHEM 5.7
HMLAN - HM-LC-Bl1-FM, HM-ES-PMSw1-PI, HM-LC-Sw1-FM, HM-TC-IT-WM-W-EU, HM-WDS40-TH-I, HM-Sen-Wa-Od, HM-Sec-RHS
Dimplex Wärmepumpe / Dimplex ZL 300 - Modbus TCP
SDM630M - Modbus TCP
SolarLog 200 / SMA SonnyBoy 1.5/2.5 - Modbus TCP

cornelius fillmore

Ich möchte Wetterdaten einer Web-Adresse aus meinen privaten LAN ins fhem bringen.

Diese Daten werden auf drei verschiedene Arten auf der Wetterstation abgelegt.
sieh Anlage

Da muss es doch eine Möglichkeit geben diese Daten einzulesen und zu speichern, bzw. darzustellen.

Es gibt zwar ein ähnliches Modul für Vantage Pro 2 von Davis, da kommt aber nur zu große Werte bei raus, weil ich die Daten von einem Rechner und nicht von der Wetterstation direkt abgreife.

3 x Fhem 5.9 mit RPI

justme1968

hier findet du ein beispiel wie ich niederschlagsdaten von einer wetterseite abhole und in fhem einbaue:Link

gruss
  andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

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

cornelius fillmore

Zitat von: justme1968 schrieb am Fr, 07 Juni 2013 14:30hier findet du ein beispiel wie ich niederschlagsdaten von einer wetterseite abhole und in fhem einbaue:Link

gruss
  andre

Danke Andre.

Kannst du mir zu besseren Verständnis auch noch den Auszug aus dem fhem.cfg senden.
Den Bereich, wo das abholen und logfile erzeugen vorhanden ist.

Nochmal Danke
3 x Fhem 5.9 mit RPI

justme1968

wenn du in dem link auf 'beispiel anzeigen' klickst steht der genaue auszug aus fhem.cfg wo der dummy und das at angelegt wird.

das loggen geht wie bei jedem anderen device. du gibst die readings die du loggen willst als regex beim filelog bzw dblog an.

das getNiederschlag steckt bei mir in 99_myUtils.pm und schaut so aus:sub                      
getNiedschlag()          
{
  my $html = GetHttpFile("xxx", "/current.html");
 
  my @lines = split( "\r\n", $html );
  my @niederschlaege = grep /(\d+,\d+) l.m/, @lines;
 
  my $niederschlag = 0.0;
  if( $niederschlaege[4] =~ m/(\d+),(\d+) l.m/s ) {
    $niederschlag = $1 + $2/10.0;
  }
 
  return $niederschlag - 210; #21.05.2013
}

das parsen musst du natürlich für dich anpassen. wenn es dir um mehr als einen wert geht ist es sinnvoller das schreiben des readings nicht im at zu machen sonder direkt da wo geparsed wird. bei mehr als einem reading ist es auch noch sinnvoll das erzeugen so zu gruppieren:if( my $hash = $defs{NiederschlagXXX} ) (
 readingsBeginUpdate($hash);
 readingsSingleUpdate($hash,"wert 1", $value1 );
 readingsSingleUpdate($hash,"wert 2", $value2 );
 readingsSingleUpdate($hash,"wert 3", $value3 );
 readingsEndUpdate($hash,1);
)
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

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