SMLUSB
Icinger hat das SML Protokoll in sein Obis Modul aufgenommen, so dass wir die beiden verschiedenen Stromzähler Protokolle nun in einem Modul vereint haben. Ich konnte ihn durch ein paar Tests unterstützen und bei mir läuft es einwandfrei und sogar deutlich performanter als mein SMLUSB.
Daher jetzt mein Vorschlag an alle SMLUSB Benutzer: Guckt Euch bitte das 47_OBIS Modul von Icinger an und stellt wenn möglich um, da ich mein Modul nicht weiterentwickeln werde, sondern Icinger dann beim 47_OBIS unterstütze. Weitere Informationen zu dem Modul findet ihr hier: [1]
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 [http://wiki.volkszaehler.org/hardware/controllers/ir-schreib-
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
Bitte verwendet in Zukunft nur noch das Modul 47_OBIS, welches mit FHEM ausgeliefert wird.
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