SML

Aus FHEMWiki
Version vom 23. Juli 2014, 07:40 Uhr von Ph1959de (Diskussion | Beiträge) (Infobox eingefügt und kleinere Korrekturen/Ergänzungen)
SML
Zweck / Funktion
Auswertung von SML Zählern (SmartMeter)
Allgemein
Typ Hilfsmodul
Details
Dokumentation EN / DE
Support (Forum) [http://forum.fhem.de/index.php/board,46.0.html Sonstiges]
Modulname 70_SML.pm
Ersteller bentele
Wichtig: sofern vorhanden, gilt im Zweifel immer die (englische) Beschreibung in der commandref!


Das Smart Metering Language (SML, auf XML basierende Syntax) Modul ist ein Modul zur Auswertung von über LAN (TCP/IP) abfragbaren Stromzählern.

Voraussetzung

Der Stromzähler muß von FHEM aus über das Netzwerk erreichbar sein, üblich ist der Port 80, es ist aber auch jeder andere Port denkbar.

Zur Zeit bekannte Stromzähler, die abgefragt werden können:

  • "Intelligenter Strom Zähler" (ENBW)
  • "Sparzähler" (Yellow Strom)

Benutzung

Die Definition eines SML Devices erfolgt mit dem Befehl:

define <name> SML <host> <port> [<interval> [<timeout>]]

Wobei <host> der Hostname und <port> der angegebene TCP Port des Zählers sind.

Das <interval> ist per default 300 sec. Das bedeutet, es wird der Durchschnitt aus den letzten 300 sec (5 Minuten) ausgegeben.

Der <timeout> gibt an, wie lange ein Verbindungsaufbau versucht wird, Default ist hier 4 Sekunden.

Zählerstand einzutragen:

set <name> TOTALPOWER <wert>

Loggen

define SML_log FileLog /var/log/fhem/enbw-%Y.log sml:.*

So sieht dann eine Log Zeile aus, die pro Intervall erzeugt wird:

2012-08-08_19:03:08 enbw min: 441 max: 1935 last: 672 avg: 771.35 day: 5.124356 month: 66.241639 year: 11834.708207 total: 11834.708207

Day: das ist die Tagessumme, und wird um 24 Uhr wieder auf 0 KW gesetzt. Month: das ist die Monatssumme und wird jeden Monat wieder auf 0 KW gesetzt. Year: das ist die Jahressumme und wird jedes Jahr auf 0 KW gesetzt. Total: das ist der Zählerstand und wird nicht verändert.


Plotten

define wl_ENBW weblink fileplot SML_log:smartmeter:CURRENT

Beispiel eines SML-Plots

smartmeter.gplot:

set terminal png transparent size <SIZE> crop
 set output '<OUT>.png'
 set xdata time
 set timefmt "%Y-%m-%d_%H:%M:%S"
 set xlabel " "
 set title '<TL>'
 set y2label "currentPower (W)"
 set ylabel "totalEnergyDay (kWh)"
 #FileLog 12:enbw:0:
 #FileLog 10:enbw:0:
 #FileLog 8:enbw:0:
 #FileLog 6:enbw:0:
 #FileLog 4:enbw:0:
 plot \
 "< awk '/enbw:/ {print $1, $12}' <IN>"\
   using 1:2 ls l9 axes x1y1 title 'day' with filledcurve,\
 "< awk '/totalEnergyDay:/ {print $1, $10}' <IN>",\
   using 1:2 ls l2 axes x1y2 title 'averange' with histeps,\
 "< awk '/totalEnergyDay:/ {print $1, $8}' <IN>",\
   using 1:2 ls l3 axes x1y2 title 'last' with histeps,\
 "< awk '/totalEnergyDay:/ {print $1, $6}' <IN>",\
   using 1:2 ls l1 axes x1y2 title 'max' with histeps,\
 "< awk '/totalEnergyDay:/ {print $1, $4}' <IN>",\
   using 1:2 ls l0fill axes x1y2 title 'min' with histeps

Kontakt

Bei Problemen/Fragen bitte per Mail an: gabriel AT bentele DOT de, wenden.