SMLUSB: Unterschied zwischen den Versionen

Aus FHEMWiki
(Ersetzung von Forum-Links mit Vorlage Link2Forum)
 
(14 dazwischenliegende Versionen von 4 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
Das Modul 70_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-lesekopf-usb-ausgang] getestet, sollte aber auch mit anderen seriellen IR-Empfängern gehen. Erfahrungen dazu bitte im Forum posten.
 
{{Hinweis|'''Abgelöst durch 47_OBIS'''
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: {{Link2Forum|Topic=51948}}}}
 
{{Infobox Modul
|ModPurpose=Verbrauchswerte aus SML Smartmetern per IR Lesekopf auslesen
|ModType=x
|ModCmdRef=SMLUSB
|ModForumArea=Codeschnipsel
|ModTechName=70_SMLUSB.pm
|ModOwner=matzefisi ([http://forum.fhem.de/index.php?action=profile;u=1429 Forum] / [[Benutzer:Matzefisi|Wiki]])
}}
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 ==
== Features ==
Zeile 7: Zeile 21:
* Auswertung und Darstellung als Reading der folgenden Obis Codes:
* Auswertung und Darstellung als Reading der folgenden Obis Codes:
<code>
<code>
'77070100010800FF' => 'Zählerstand-Bezug-Total'
'77070100010800FF' => 'Zählerstand-Bezug-Total'<br>
'77070100020800FF' => 'Zählerstand-Lieferung-Total'
'77070100020800FF' => 'Zählerstand-Lieferung-Total'<br>
'77070100010801FF' => 'Zählerstand-Tarif-1-Bezug',
'77070100010801FF' => 'Zählerstand-Tarif-1-Bezug',<br>
'77070100020801FF' => 'Zählerstand-Tarif-1-Lieferung'
'77070100020801FF' => 'Zählerstand-Tarif-1-Lieferung'<br>
'77070100010802FF' => 'Zählerstand-Tarif-2-Bezug',
'77070100010802FF' => 'Zählerstand-Tarif-2-Bezug',<br>
'77070100020802FF' => 'Zählerstand-Tarif-2-Lieferung'
'77070100020802FF' => 'Zählerstand-Tarif-2-Lieferung'<br>
'770701000F0700FF' => 'Momentanleistung',
'770701000F0700FF' => 'Momentanleistung',<br>
'77070100100700FF' => 'Momentanleistung'
'77070100100700FF' => 'Momentanleistung'<br>
</code>
</code>


==Aktuelle Version ==
==Aktuelle Version ==
Die aktuelle Version ist zur Zeit noch in meinem eigenen Github Repository abgelegt. <br />
'''Bitte verwendet in Zukunft nur noch das Modul 47_OBIS, welches mit FHEM ausgeliefert wird.'''
https://github.com/matzefisi/fhem-modules/blob/master/70_SMLUSB.pm
 
Fragen und Anregungen bitte im Forum abliefern:<br />
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 ==
<code>
<code>
  define <name> SMLUSB <serial device>@<baudrate>
define <name> SMLUSB <serial device>@<baudrate>
</code>
</code>


Zeile 34: Zeile 42:
'''Beispiel:'''
'''Beispiel:'''
<code>
<code>
  define powerZaehler SMLUSB /dev/usbsml@9600
define powerZaehler SMLUSB /dev/usbsml@9600
</code>
</code>


Zeile 40: Zeile 48:
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.
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.
<code>
<code>
attr powerZaehler event-min-interval .*:30
attr powerZaehler event-min-interval .*:30
</code>
</code>


Zeile 59: Zeile 67:


<code>
<code>
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;;}
attr power_Zaehler userReadings energy_current_overall:energy_current.*<br>
{my $solarpower = ReadingsVal("power_Wechselrichter","AC.Power",0);;<br>
my $mainpower = ReadingsVal("power_Zaehler","energy_current",0);; $solarpower+$mainpower;;}  
</code>
</code>


Zeile 66: Zeile 76:


<code>
<code>
define statisticsPower statistics power_Zaehler
define statisticsPower statistics power_Zaehler<br>
attr statisticsPower deltaReadings Zählerstand-Tarif-1-Bezug,Zählerstand-Tarif-1-Lieferung
attr statisticsPower deltaReadings Zählerstand-Tarif-1-Bezug,Zählerstand-Tarif-1-Lieferung<br>
attr statisticsPower minAvgMaxReadings Momentanleistung
attr statisticsPower minAvgMaxReadings Momentanleistung<br>
</code>
</code>


Zeile 97: Zeile 107:
|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
|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 [http://wiki.volkszaehler.org/hardware/channels/meters/power/edl-ehz/itron_ace3000_type_260 Link]


== Links ==
== Links ==
* [[SML]]
* [[SML]]
* [http://wiki.volkszaehler.org/hardware/controllers/ir-schreib-lesekopf-usb-ausgang IR-Schreib-Lesekopf vom Volkszähler Projekt ]
* [http://wiki.volkszaehler.org/hardware/controllers/ir-schreib-lesekopf-usb-ausgang IR-Schreib-Lesekopf vom Volkszähler Projekt ]
* [http://forum.fhem.de/index.php/topic,14117.0.html Diskussion im FHEM-Forum]
* {{Link2Forum|Topic=14117|LinkText=Diskussion im FHEM-Forum}}


[[Kategorie:Other Components]]
[[Kategorie:Other Components]]
[[Kategorie:Energieverbrauchsmessung]]
[[Kategorie:Energieverbrauchsmessung]]
[[Kategorie:Energieerzeugungsmessung]]
[[Kategorie:Energieerzeugungsmessung]]

Aktuelle Version vom 19. März 2017, 20:50 Uhr


Info blue.png
Abgelöst durch 47_OBIS

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: Thema



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

Links