SML
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 muss 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
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.