FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: The-Holgi am 15 November 2013, 18:51:15

Titel: Script in Fhem einfügen/auslesen
Beitrag von: The-Holgi am 15 November 2013, 18:51:15
Hallo,
ich habe hier ein kleines script mit dem ich meinen Stromzähler auslesen und eine textdatei erstelle in der der aktuelle und durchschnittliche stromverbrauch angezeigt wird.
Nun möchte ich das in Fehm als room einfügen bzw mir die Daten anzeigen lassen. Wie kann ich das am besten umsetzten. Die komplette Website des Stromzählers ist zu groß und unübersichtlich. Es sollen nur die Daten angezeigt werden. Hier das script:
#!/bin/sh


aktuell=$(wget -q -O - http://192.168.178.35/index.html | grep " W" | sed -e 's/<[^<>]*>//g; /^[ ]*$/d' | sed 'N;s/\n/#/g' | cut -d"#" -f1)
durch=$(wget -q -O - http://192.168.178.35/index.html | grep " W" | sed -e 's/<[^<>]*>//g; /^[ ]*$/d' | sed 'N;s/\n/#/g' | cut -d"#" -f2)


#aktuell=$(cat ./index.html | grep " W" | sed -e 's/<[^<>]*>//g; /^[ ]*$/d' | sed 'N;s/\n/#/g' | cut -d"#" -f1)
#durch=$(cat ./index.html | grep " W" | sed -e 's/<[^<>]*>//g; /^[ ]*$/d' | sed 'N;s/\n/#/g' | cut -d"#" -f2)

echo "Durchschnittliche Leistung  - $durch"  >/home/pi/strom.txt
echo "Aktuelle Leistung  - $aktuell"  >>/home/pi/strom.txt

exit 0
Titel: Antw:Script in Fhem einfügen/auslesen
Beitrag von: justme1968 am 15 November 2013, 18:59:57
du kannst z.b. mit

fhem.pl <server> "set <dummy_name> <wert>"

von aussen den wert eines dummy setzen.

gruss
  andre
Titel: Antw:Script in Fhem einfügen/auslesen
Beitrag von: The-Holgi am 15 November 2013, 19:45:02
Hm, kannst du das vielleicht genauer erklären ?

Gruß Holgi
Titel: Antw:Script in Fhem einfügen/auslesen
Beitrag von: justme1968 am 15 November 2013, 19:59:10
du legst in fhem einen dummy an:

define Leistung dummy

in deinem shell script rufst du dann z.b. das auf:fhem.pl localhost "set Leistung $aktuell".

dann hat dein dummy in fhem immer den aktuellen wert. du kannst sogar ein log file dran hängen und das ganze plotten wenn du willst und dir das loggen im script sparen.

gruss
  andre

edit: ich sehe gerade das du in deinem script auch nur ein wget aufrufst. je nach dem wie viele daten da zurück kommen kannst du das komplett innerhalb von fhem machen:sub
getVerbrauch()
{
  my $html = GetHttpFile("192.168.178.35", "/index.html");

  #my @lines = split( "\r\n", $html );
  #my @niederschlaege = grep /(\d+,\d+) l.m/, @lines;

  my $aktuell = 0.0;
  #if( $niederschlaege[4] =~ m/(\d+),(\d+) l.m/s ) {
    #$niederschlag = $1 + $2/10.0;
  #}

  return $aktuell;
}


die auskommentierten zeilen musst du an deine web seite anpassen. ich hole damit niederschlagswerte aus einer webweite.

und dann mit einem notify regelmässig abfragen:{
  my $verbrauch = getVerbrauch();

  return if( $verbrauch < 0 );

  my $hash =  $defs{Leistung};
  readingsSingleUpdate($hash,"Leistung", $niederschlag, 1) if( defined($hash) );
}
Titel: Antw:Script in Fhem einfügen/auslesen
Beitrag von: The-Holgi am 15 November 2013, 20:23:02
Hm, mal der Reihe nach. Ich lege das script von dir mit den geänderten Werten von meinem in den contrip Ordner und nenne es z.b. Leistung.pl.
Dann lege ich einen dummy den ich Leistung nenne an, soweit richtig ?
In notify muß ich mich wohl auch noch einlesen.

Schonmal besten Dank für deine Hilfe
Titel: Antw:Script in Fhem einfügen/auslesen
Beitrag von: justme1968 am 15 November 2013, 20:24:50
für die erste variante legst du  nur den dummy an und rufst in deinem script die eine zusätzliche fhem zeile auf. sonst ist nichts zu ändern.

für die zweite version kommt der code in eine myUtils Datei. schau mal im wiki. da steht etwas darüber.

gruss
  andre
Titel: Antw:Script in Fhem einfügen/auslesen
Beitrag von: The-Holgi am 15 November 2013, 21:00:08
Denke die 2. Variante ist die bessere. Dazu muß ich aber wohl noch ein bißchen lesen. Fhem und pearl ist für mich absolutes Neuland.
Bin für jeden Tipp dankbar.
Titel: Antw:Script in Fhem einfügen/auslesen
Beitrag von: Puschel74 am 15 November 2013, 21:04:11
Hallo,

Bei
Zitatpearl
kann man Dinge bestellen.

Du meinst sicher Perl  8)
Damit sollte sich jeder etwas beschäftigen der ein kleines bischen mehr aus seiner FHEM-Installation herausholen möchte  ;)

Grüße
Titel: Antw:Script in Fhem einfügen/auslesen
Beitrag von: The-Holgi am 15 November 2013, 21:25:27
 ;D Ok ich meinte natürlich nicht den online Händler.
Zumindest weiß ich jetzt wie man perl schreibt.  :)
Titel: Antw:Script in Fhem einfügen/auslesen
Beitrag von: The-Holgi am 16 November 2013, 11:48:50
Hallo,
könnte man nicht auch mittels: define Strom weblink iframe http://192.168.178.35/index.htm
die website einfügen und dann über attr nur den Teil von der site Anzeigen lassen, in dem die Temperaturen dargestellt werden.

Edit: Dann kann ich die Daten aber vermutlich nicht verwenden um einen plot zu erstellen, oder ?

Gruß Holgi