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
du kannst z.b. mit
fhem.pl <server> "set <dummy_name> <wert>"
von aussen den wert eines dummy setzen.
gruss
andre
Hm, kannst du das vielleicht genauer erklären ?
Gruß Holgi
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) );
}
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
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
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.
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
;D Ok ich meinte natürlich nicht den online Händler.
Zumindest weiß ich jetzt wie man perl schreibt. :)
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