SMLUSB

Aus FHEMWiki
Version vom 27. November 2015, 14:36 Uhr von Matzefisi (Diskussion | Beiträge) (Corrected some display problems.)
SMLUSB
Zweck / Funktion
Verbrauchswerte aus SML Smartmetern per IR Lesekopf auslesen
Allgemein
Typ Inoffiziell
Details
Dokumentation siehe Forum
Support (Forum) Codeschnipsel
Modulname 70_SMLUSB.pm
Ersteller matzefisi (Forum / Wiki)
Wichtig: sofern vorhanden, gilt im Zweifel immer die (englische) Beschreibung in der commandref!


Das Modul SMLUSB ermöglicht mit Hilfe eines USB-Infrarot-Lesekopfes das Auslesen von Smartmetern, die ihre Daten im binären SML (Smart Metering Language) Format über die Infrarotschnittstelle ausgeben.

Bislang wurde das Module nur mit dem Volkszähler USB-Schreib und Lesekopfes vom Volkszählerprojekt [1] getestet, sollte aber auch mit anderen seriellen IR-Empfängern gehen. Erfahrungen dazu bitte im Forum posten.

Features

  • Auswertung der Energierichtung (Bezug / Einspeisung)
  • Auswertung und Darstellung als Reading der folgenden Obis Codes:

'77070100010800FF' => 'Zählerstand-Bezug-Total'
'77070100020800FF' => 'Zählerstand-Lieferung-Total'
'77070100010801FF' => 'Zählerstand-Tarif-1-Bezug',
'77070100020801FF' => 'Zählerstand-Tarif-1-Lieferung'
'77070100010802FF' => 'Zählerstand-Tarif-2-Bezug',
'77070100020802FF' => 'Zählerstand-Tarif-2-Lieferung'
'770701000F0700FF' => 'Momentanleistung',
'77070100100700FF' => 'Momentanleistung'

Aktuelle Version

Die aktuelle Version ist zur Zeit noch in meinem eigenen Github Repository abgelegt.
https://github.com/matzefisi/fhem-modules/blob/master/70_SMLUSB.pm

Fragen und Anregungen bitte im Forum abliefern:
http://forum.fhem.de/index.php/topic,14117.0.html

Um die Version zu installieren, ladet die Datei bitte von dort herunter und kopiert sie in Euer FHEM Verzeichnis.

Define

define <name> SMLUSB <serial device>@<baudrate>


Beispiel: define powerZaehler SMLUSB /dev/usbsml@9600

Attribute

Im Prinzip ist nur ein Attribut wichtig. Und zwar event-min-interval. Dieses wird beim define automatisch angelegt und auf den Wert 30 Sekunden gesetzt. Damit wird verhindert, dass zu viele Events generiert werden. attr powerZaehler event-min-interval .*:30

Readings

Je nach Smartmeter-Model werden verschiedene Readings ausgegeben. Folgende Readings werden aktuell unterstützt:

Momentanleistung

  • Zählerstand-Bezug-Total
  • Zählerstand-Lieferung-Total
  • Zählerstand-Tarif-1-Bezug
  • Zählerstand-Tarif-1-Lieferung
  • Zählerstand-Tarif-2-Bezug
  • Zählerstand-Tarif-2-Lieferung

Tips und Tricks

Eigenverbrauch PV-Anlage

Falls eine PV-Anlage oder sonstige Erzeuger oder auch weitere Stromzaehler vorhanden sind, können verschiedene Werte über Userreadings miteinander verrechnet werden.

attr power_Zaehler userReadings energy_current_overall:energy_current
{my $solarpower = ReadingsVal("power_Wechselrichter","AC.Power",0);;
my $mainpower = ReadingsVal("power_Zaehler","energy_current",0);; $solarpower+$mainpower;;}

Stunden-, Tages-, Monats- und Jahreswerte

Mit Hilfe des statistics Modul ist es nun einfach möglich, sich Stunden-, Tages-, Monats- und Jahreswerte ausgegeben zu lassen:

define statisticsPower statistics power_Zaehler
attr statisticsPower deltaReadings Zählerstand-Tarif-1-Bezug,Zählerstand-Tarif-1-Lieferung
attr statisticsPower minAvgMaxReadings Momentanleistung

Beispielausgabe:

Reading Wert Timestamp
Momentanleistung 274.90 2014-07-09 20:37:34
Momentanleistung_Gesamt 301.9 2014-07-09 20:37:34
Zählerstand-Bezug-Total 4289.76 2014-07-09 20:37:34
Zählerstand-Lieferung-Total 7726.96 2014-07-09 20:37:34
Zählerstand-Tarif-1-Bezug 4289.76 2014-07-09 20:37:34
Zählerstand-Tarif-1-Lieferung 7726.96 2014-07-09 20:37:34
statMomentanleistungDay Min: 199.2 Avg: 276.2 Max: 278.3 (since: 2014-07-09_20:34:45 ) 2014-07-09 20:37:02
statMomentanleistungMonth Min: 199.2 Avg: 276.2 Max: 278.3 (since: 2014-07-09_20:34:45 ) 2014-07-09 20:37:02
statMomentanleistungYear Min: 199.2 Avg: 276.2 Max: 278.3 (since: 2014-07-09_20:34:45 ) 2014-07-09 20:37:02
statZählerstand-Tarif-1-Bezug Hour: 0.0 Day: 0.0 Month: 0.0 Year: 0.0 (since: 2014-07-09_20:34:45 ) 2014-07-09 20:37:34
statZählerstand-Tarif-1-Lieferung Hour: 0.0 Day: 0.0 Month: 0.0 Year: 0.0 (since: 2014-07-09_20:34:45 ) 2014-07-09 20:37:34

ToDo

  • Saubere Dokumentation im Quellcode
  • Code aufräumen
  • Performanceprobleme mit der Funktion SMLUSB_Read lösen (Es liegen permanent Daten am seriellen Bus an, so dass SMLUSB_Read kontinuierlich ausgeführt wird und so in APPTIME immer an erster Stelle steht.)
  • Übernahme in das SVN Repository
  • Feature: Lesertypen wie den ACE 3000 unterstützen Link

Links