SML

Aus FHEMWiki
Version vom 10. Mai 2013, 21:53 Uhr von Generix (Diskussion | Beiträge) (Die Seite wurde neu angelegt: „== Einleitung == Das Smart Metering Language (SML, auf XML basierende Syntax) Modul ('''''70_SML.pm''''') ist ein Modul zur Auswertung von über LAN (TCP/IP) a…“)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)

Einleitung

Das Smart Metering Language (SML, auf XML basierende Syntax) Modul (70_SML.pm) 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 min) ausgegeben.

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

Zählerstand einzutragen:

set <name> TOTALPOWER <wert>

Loggen

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

So schaut 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

Datei:/w/images/c/ca/SML2.png

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.