Mein Stromanbieter ENBW hat mir einen intelligenten Strom Zähler
installiert. Jetzt würde ich den gern per FHEM auslesen, und plotten
lassen.
Jetzt hab ich ein shell script erstellt das die aktuelle leistung in
ein log file schreibt. Das würd ich gern im FHEM verarbeiten. Aber so
ganz optimal scheint das nicht zu werden. Auf meiner fritzbox hab ich
kein cron und ständig das script zu pollen ist eher auch nicht so gut.
Hat jemand eine bessere idee, wie ich vorgehn soll?
Wenn ich das mit dem Zähler hin bekommen habe möchte ich meine
Solaranlage auswerten. Mein Wechselrichter stellt mir auch einen
webserver zur verfügung mit einer aktuellen einspeiseleistung. Aber
das kommt erst später.
vielen dank Gruß
Zwiebel
Was genau ist intelligent an dem Stromzaehler ? :)
> Auf meiner fritzbox hab ich kein cron und st�ndig das script zu pollen ist
> eher auch nicht so gut.
define StromDaten at *+00:05 "schreibeStromLog.sh"
oder
define StromDaten at *+00:05 { fhem "trigger StromDaten ".`leseStromWert.sh`}
define StromLog FileLog log/StromLog.csv StromDaten
Letzteres ist nur zu empfehlen, wenn leseStromWert.sh sich nicht blockieren
kann.
> Hat jemand eine bessere idee, wie ich vorgehn soll?
Fhem Modul schreiben :)
Intelligent würd ich die ned nennen :-) aber die zeigen immerhin in
echtzeit deinen Stromverbrauch an... und man kann an schönen Graphen
verfolgen, welchen Gerät nach dem Einschalten bzw Ausschalten wieviel
Strom verbraucht.
Und wird nur noch der genaue Verbrauch abgerechnet ohne Vorauszahlung
und / oder Hochrechnungen.
Fhem Modul is ne gute Idee - könnt ich auch noch brauchen :-)
Christian
#!/bin/sh
date=`date +"%Y-%m-%d_%H:%M:%S"`
url="http://192.168.0.56/index.html"
logtarget="/var/media/ftp/fhem/log/enbw.log"
mydata="$(wget -q $url -O - | grep " W" | grep akt )"
echo $mydata | sed 's/<div class="akt_leistung">//g' | sed 's/<\/div>//
g' | sed "s/^/$date /" >> $logtarget
dann noch so wie von Rudolf Koenig beschrieben und funktioniert!
auf basis von power4.gplot das unten abgeändert und dann hat man noch
ein plot!
#FileLog 2::0:
plot "<IN>" using 1:2 notitle with lines
Bin sowas von begeistert! :) vielen dank!
noch kleine Anregung:
Die letzten beiden Zeilen würde ich folgendermaßen abändern (dann wird
nicht die zum jeweiligen Zeitpunkt gerade aktuelle Leistung gelesen,
sondern die durchschnittliche Leistung der letzten viertel Stunde):
mydata="$(wget -q $url -O - | grep " W$" )"
echo $mydata | sed "s/^/$date /" >> $logtarget
Im cfg dann folgende Einträge sorgen dafür, dass alle 15 Minuten
gelesen wird (vorher power4enbw wie beschrieben bereitstellen und in
der ersten Zeile +* eintragen anstatt *+):
define EnBWDaten at +*00:15:00 "FHEM/enbw_lesen.sh"
define FileLog_EnBWDaten FileLog ./log/enbw.log EnBWDaten
attr FileLog_EnBWDaten logtype power4enbw
attr FileLog_EnBWDaten room Heizung
das mit dem durchschnittlichen Leistung hat mich auch intressiert.
Ich hab es dann so gelöst.
mydata="$(wget -q $url -O - | grep " W" )"
echo $mydata | sed 's/^M$//' | sed 's/<div class="akt_leistung">//g' |
sed 's/<\/div>//g' | sed "s/^/$date /" >> $logtarget
das liefert dann im log ein:
2011-12-12_22:22:39 543 W 843 W
2011-12-12_22:27:40 1162 W 843 W
das lässt sich dann auch noch schön plotten...
Ich frage den enbw Zähler über ein vpn tunnel ab und der kann von der
netzwerk bandbreite "dicht" sein. Das führt dazu das das shell script
2x oder noch öfters läuft. Und damit FHEM alles blokiert. Das hab ich
halbwegs in den griff bekommen mit diversen kill schleifen.
Aber so ganz gefällt mir das shell scriptchen eh nicht.
Auf welcher basis könnte ich ein perl modul erweitern? Die unter FHEM
sind mir etwas zu kompliziert, die zumindest die ich mir angeschaut
habe.
> Ich frage den enbw Z�hler �ber ein vpn tunnel ab und der kann von der
> netzwerk bandbreite "dicht" sein. Das f�hrt dazu das das shell script
> 2x oder noch �fters l�uft. Und damit FHEM alles blokiert. Das hab ich
> halbwegs in den griff bekommen mit diversen kill schleifen.
>
> Aber so ganz gef�llt mir das shell scriptchen eh nicht.
> Auf welcher basis k�nnte ich ein perl modul erweitern? Die unter FHEM
> sind mir etwas zu kompliziert, die zumindest die ich mir angeschaut
> habe.
Mal abgesehen davon, da� ein simpler wget selbst durch ein verstopftes
DSL-Nadel�hr plus VPN-Overhead noch passen sollte ... w�rde ich sowas
eher als externen Proze�, der ein Logfile/ein date-value-Paar schreibt,
realisieren.
-kai
sourceforge id mir mailen, und Modul einchecken.
Wenn es ein commandref.html Eintrag dafuer gibt und Du es in der naechsten Zeit
auch supporten willst, dann direkt nach fhem/FHEM (damit wird es auch mit
updatefhem verteilt), sonst nach contrib.
Stuendlich (wenn die Stunde sich aendert) ein event generieren, und den mit
einem FileLog abspeichern. Ist aber eigentlich nicht nowedig, weil die
#FileLog Anweisung (.gplot) hat fuer sowas die delta-h Funktion. Alternativ
erfindet man 24 readings, die in fhem.save landen.
...hier noch der Link zum Schreib-/Lesekopf