SML: Unterschied zwischen den Versionen

Aus FHEMWiki
K (Modultyp korrigiert)
 
(5 dazwischenliegende Versionen von 3 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
== Einleitung ==
{{Infobox Modul
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.
|ModPurpose=Auswertung von SML Zählern (SmartMeter)
|ModType=d
<!-- |ModCategory=?? -->
<!-- |ModCmdRef=http://fhem.de/commandref.html#LightScene -->
|ModForumArea=Sonstiges
|ModTechName=70_SML.pm
|ModOwner=[[SML#Kontakt|bentele]]
}}
 
Das Smart Metering Language ([[SML]], auf XML basierende Syntax) Modul ist ein Modul zur Auswertung von über LAN (TCP/IP) abfragbaren Stromzählern.


== Voraussetzung ==
== 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.
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:
Zur Zeit bekannte Stromzähler, die abgefragt werden können:
Zeile 9: Zeile 18:
* "Intelligenter Strom Zähler" (ENBW)
* "Intelligenter Strom Zähler" (ENBW)
* "Sparzähler" (Yellow Strom)
* "Sparzähler" (Yellow Strom)
== Benutzung ==
== Benutzung ==
Die Definition eines SML Devices erfolgt mit dem Befehl:
Die Definition eines SML Devices erfolgt mit dem Befehl:
Zeile 15: Zeile 25:
Wobei &lt;host&gt; der Hostname und &lt;port&gt; der angegebene TCP Port des Zählers sind.
Wobei &lt;host&gt; der Hostname und &lt;port&gt; der angegebene TCP Port des Zählers sind.


Das &lt;interval&gt; ist per default 300 sec. Das bedeutet, es wird der Durchschnitt aus den letzten 300 sec (5 min) ausgegeben.
Das &lt;interval&gt; ist per default 300 sec. Das bedeutet, es wird der Durchschnitt aus den letzten 300 sec (5 Minuten) ausgegeben.


Der &lt;timeout&gt; gibt an, wie lange ein Verbindungsaufbau versucht wird, default ist hier 4 sec.
Der &lt;timeout&gt; gibt an, wie lange ein Verbindungsaufbau versucht wird, Default ist hier 4 Sekunden.


Zählerstand einzutragen:
Zählerstand einzutragen:


  <nowiki>set &lt;name&gt; TOTALPOWER &lt;wert&gt;</nowiki>
  <nowiki>set &lt;name&gt; TOTALPOWER &lt;wert&gt;</nowiki>
== Loggen ==
== Loggen ==
  <nowiki>define SML_log FileLog /var/log/fhem/enbw-%Y.log sml:.*</nowiki>
  <nowiki>define SML_log FileLog /var/log/fhem/enbw-%Y.log sml:.*</nowiki>
So schaut dann eine log Zeile aus die pro intervall erzeugt wird:
So sieht dann eine Log Zeile aus, die pro Intervall erzeugt wird:


  <nowiki>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</nowiki>
  <nowiki>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</nowiki>
Zeile 31: Zeile 42:
Year: das ist die Jahressumme und wird jedes Jahr 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.
Total: das ist der Zählerstand und wird nicht verändert.


== Plotten ==
== Plotten ==
Zeile 67: Zeile 76:
== Kontakt ==
== Kontakt ==
Bei Problemen/Fragen bitte per Mail an: gabriel AT bentele DOT de, wenden.
Bei Problemen/Fragen bitte per Mail an: gabriel AT bentele DOT de, wenden.
[[Kategorie:HOWTOS]]
[[Kategorie:Glossary]]

Aktuelle Version vom 2. September 2014, 20:30 Uhr

SML
Zweck / Funktion
Auswertung von SML Zählern (SmartMeter)
Allgemein
Typ Gerätemodul
Details
Dokumentation EN / DE
Support (Forum) 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

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.