Neu: 77_SMAEM - Modul für SMA Energie Meter. Alternative zum Sunny Home Manager.

Begonnen von Volker Kettenbach, 30 März 2016, 12:42:05

Vorheriges Thema - Nächstes Thema

Volker Kettenbach

Hallo zusammen,

aufgrund der fortwährenden Probleme [1] mit dem SMA Sunny Home Manager und der (vertragswidrigen) Datenabfrage über das SMA-Portal, habe ich ein FHEM-Modul für das SMA Energy Meter (SMAEM) entwickelt, welches oft mit dem SHM zusammen eingesetzt wird, da es den SHM in die Lage versetzt, den aktuellen Bezug und die aktuelle Einspeisung vom/zum Energieversorger aus zu lesen.
Wer also das SMA-EM sein eigen nennt, kann die wesentlichen Werte, die er bisher über das Internet vom SHM-Portal bezogen hat, mit dem Modul 77_SMAEM.pm direkt vom SMA-EM über sein LAN beziehen. Darüber hinaus noch eine ganze Reihe von Werten, die der SHM nicht zur Verfügung stellt.

Das Modul kann hier bezogen werden:
https://github.com/kettenbach-it/FHEM-SMAEM

Über Tests und Verbesserungsvorschläge würde ich mich freuen.

Gruß
VK

[1] https://forum.fhem.de/index.php/topic,27667.0.html

maximat0

Hallo VK
reload reload 77_SMAEM
bringt die Fehlermeldung: Unrecognized character \xC2; marked by <-- HERE after at master <-- HERE near column 45 at ./FHEM/77_SMAEM.pm line 25.

Gruß Klaus

DS_Starter

Hallo Volker,

erstmal vielen Dank für die Arbeit und das Modul .... läuft  :)

Allerdings habe ich  festgestellt, dass die Summation für Saldo_Wirkleistung der Phasen L2, L3 immer 0,0 ist.

SMAEM1900212213_L2_Bezug_Blindleistung               41.9
   
SMAEM1900212213_L2_Bezug_Blindleistung_Zaehler        3.7
   
SMAEM1900212213_L2_Bezug_Scheinleistung               141.0
   
SMAEM1900212213_L2_Bezug_Scheinleistung_Zaehler       21.9
   
SMAEM1900212213_L2_Bezug_Wirkleistung                 134.6

SMAEM1900212213_L2_Bezug_Wirkleistung_Zaehler         21.1
   
SMAEM1900212213_L2_CosPhi                             0.955
SMAEM1900212213_L2_Einspeisung_Blindleistung          0.0
   
SMAEM1900212213_L2_Einspeisung_Blindleistung_Zaehler  1.2
   
SMAEM1900212213_L2_Einspeisung_Scheinleistung         0.0
   
SMAEM1900212213_L2_Einspeisung_Scheinleistung_Zaehler 17.9
   
SMAEM1900212213_L2_Einspeisung_Wirkleistung           0.0
   
SMAEM1900212213_L2_Einspeisung_Wirkleistung_Zaehler   17.6
   
SMAEM1900212213_L2_Saldo_Wirkleistung                 0.0
   
SMAEM1900212213_L2_Saldo_Wirkleistung_Zaehler         8.8

Da ist wahrscheinlich bei der Zuweisung bzw. Auswertung der empfangenen Daten irgendwo ein Fehler.
Ansonsten läuft es schonmal sehr gut.

viele Grüße
Heiko

EDIT:  jetzt sind die Werte plötzlich für alle Phasen gleich was auch eher unwahrscheinlich ist wobei auch hier der Saldo über alle Phasen nicht passt:

2016-03-30_19:22:47 SMA_Energymeter SMAEM1900212213_L1_Saldo_Wirkleistung: -18.7
2016-03-30_19:22:47 SMA_Energymeter SMAEM1900212213_L2_Saldo_Wirkleistung: -18.7
2016-03-30_19:22:47 SMA_Energymeter SMAEM1900212213_L3_Saldo_Wirkleistung: -18.7
2016-03-30_19:23:18 SMA_Energymeter SMAEM1900212213_Saldo_Wirkleistung: -338.7
2016-03-30_19:23:18 SMA_Energymeter SMAEM1900212213_L1_Saldo_Wirkleistung: -19.0
2016-03-30_19:23:18 SMA_Energymeter SMAEM1900212213_L2_Saldo_Wirkleistung: -19.0
2016-03-30_19:23:18 SMA_Energymeter SMAEM1900212213_L3_Saldo_Wirkleistung: -19.0
2016-03-30_19:23:49 SMA_Energymeter SMAEM1900212213_Saldo_Wirkleistung: -339.0
2016-03-30_19:23:49 SMA_Energymeter SMAEM1900212213_L1_Saldo_Wirkleistung: -19.7
2016-03-30_19:23:49 SMA_Energymeter SMAEM1900212213_L2_Saldo_Wirkleistung: -19.7
2016-03-30_19:23:49 SMA_Energymeter SMAEM1900212213_L3_Saldo_Wirkleistung: -19.7
2016-03-30_19:24:20 SMA_Energymeter SMAEM1900212213_Saldo_Wirkleistung: -340.4
2016-03-30_19:24:20 SMA_Energymeter SMAEM1900212213_L1_Saldo_Wirkleistung: -20.0
2016-03-30_19:24:20 SMA_Energymeter SMAEM1900212213_L2_Saldo_Wirkleistung: -20.0
2016-03-30_19:24:20 SMA_Energymeter SMAEM1900212213_L3_Saldo_Wirkleistung: -20.0


ESXi@NUC+Debian+MariaDB, PV: SMA, Victron MPII+Pylontech+CerboGX
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard, PylonLowVoltage
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

Michael

Hallo Volker,

Auch von mir erstmal vielen Dank für die Arbeit das Modul läuft.  :)
 
Einen ersten Vorschlag habe ich.
Bei den Readings (SMAEM1234567890_....) ist immer der EM mit aufgeführt.
Wäre dafür nicht ein Reading angebrachter oder ohne Bezeichung?
Oder gibt es die möglichkeit das man mehr EM 's hat.

Gruß, Michael

FHEM 6.0 auf RPi 3
CUL V3 868 Mhz | JeeLink LaCrosse & PCA301 | CCU3
BMP085(180) | 14x TX29DTH-IT | 5x PCA 301 | SMA Peripheries | MobileAlerts MA-10(100,120PRO,200,251,410,650,660,800) | HM IP

Volker Kettenbach

@Klaus: hast Du den Code des Moduls per Copy and Paste aus dem Browser in eine Datei kopiert?
Anders kann ich mir das nicht erklären.
Bitte das Modul mit dem git-Client herunterladen: "git clone https://github.com/kettenbach-it/FHEM-SMAEM"

@DS_Starter: nimm mal das Testprogramm "smaem_test.pl". Das gibt am Ende einige Plausi-Checks aus, z.B. auch die Summen der Phasen vs. der Summe, die der Zähler liefert. In meiner Anlage geht das zwar nie 100% auf, ab die Größenordnung sollte stimmen.
Auch das Programm hier https://github.com/datenschuft/SMA-EM kannst Du dafür verwenden, das macht aber keine Plausi-Checks.
Eine Abweichung in den Summierung der Phasen stelle ich übrigens auch bei meinen anderen Zählern von NZR fest.
Sehr viel komischer ist aber, dass Deine Werte alle negativ sind. Welche Firmware hast Du auf dem SMA-EM?


@Michael: Ja, das Modul kann (nicht getestet) auch mehrere EMs. Alle EMs werden als Readings innerhalb des definierten Gerätes angezeigt, daher der Präfix um die einzelnen EMs zu unterscheiden.
Es wäre denkbar, das Modul so zu modifizieren, dass beim define eine SMA-EM Seriennummer mit gegeben wird und dann nur die Readings eines SMA-EM ohne den Präfix angezeigt würden.
Ich würde das aber nur optional machen, da man sonst das Problem hat, dass nicht weiss, wie die Seriennummer des SMA-EM lautet und dann kein define eingeben kann.

Gruß
Volker

Michael

Hallo Volker,

Dank dir für die Antwort.
Zitat@Michael: Ja, das Modul kann (nicht getestet) auch mehrere EMs. ...
Ist mir jetzt Einleuchtend.  :)

ZitatInstallation & Dependencies

This module requires:

Perl Module: IO::Socket::Multicast On a Debian (based) system, these requirements can be fullfilled by:
apt-get install install libio-socket-multicast
Muss es hier "https://github.com/kettenbach-it/FHEM-SMAEM" nicht apt-get install libio-socket-multicast-perl lauten.
Denn damit hab ich's unter Debian zum laufen bekommen.

Wenn ich wieder misst Schreibe, nehme es nicht ernst.  ::)
Gruß, Michael

FHEM 6.0 auf RPi 3
CUL V3 868 Mhz | JeeLink LaCrosse & PCA301 | CCU3
BMP085(180) | 14x TX29DTH-IT | 5x PCA 301 | SMA Peripheries | MobileAlerts MA-10(100,120PRO,200,251,410,650,660,800) | HM IP

Volker Kettenbach


DS_Starter

Hallo Volker,

die Firmware auf dem EM ist     1.02.04.R.

Mit dem  Testtool scheint es stimmig zu sein. Hier ein Auszug:

Bezug Wirkleistung: 60.7 + 191.5 + 144.7 = 396.9 ? == 396.8
Bezug Wirkleistung Zähler: 9.6 + 23.7 + 22.3 = 55.6479 ?== 52.6


Das Modul zeigt (Auswertung ist etwas zeitlich versetzt):

L1_Saldo_Wirkleistung           -60.6
L2_Saldo_Wirkleistung           -60.6
L3_Saldo_Wirkleistung           -60.6
Saldo_Wirkleistung                -340.7


Der Saldo könnte realitätsnah sein, ist aber nicht die Summe der Phasen.
Ich habe auf einer anderen Instanz noch eine EM Auslesung über die edl-Software (nicht das Modul) laufen. Die Ergebnisse decken sich mit dem smaem_test.pl, d.h. es muß einen Unterschied zw. Testtool und Modul geben , aber das Testtool hat recht  :)

Auch die negativen Werte sind eigenartig, stimmt. Zumindest jetzt, da nur Bezug vorhanden ist.
Ich habe das Modul sowohl auf Debian als auch auf Windows getestet. Das Ergebnis ist gleich.

viele Grüße
Heiko

ESXi@NUC+Debian+MariaDB, PV: SMA, Victron MPII+Pylontech+CerboGX
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard, PylonLowVoltage
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

mobil750

Hallo Volker,

ich werde mich auch ans Testen machen. Nur vorab ein kleiner Hinweis, im Fix sind nun 2 "install". Das funktioniert dann auch nicht sofort  ;)

Gruß
Helmut

baukater

Läßt sich das Modul nur mit einem Sunny Home Manager betreiben oder kann ich damit auch auf meine Daten aus dem Solar-Wechselrichter
STP 7000TL-20 zugreifen? Bisher nutzte ich den Sunny Explorer dazu.
FB7490,Raspi 2/3,HM-Lan,Jeelink Classic (868),Logilink BT0015 Bluetooth 4.0, 2x mySmartUSB light,RS485USB , entities:272 device:14 channel:27 virtual:1, 6 x HM-LC-BL1-FM,4 x HM-LC-SW4-WM, 1 x HM-LC-SW2-FM,1 x Fensterkontakt,1 1x Türkontakt, 1 1x Bewegungsmelder, DECT-200,DECT100,6xAuthentic Xiaom

Volker Kettenbach

@baukater: das Modul ist für das SMA-Energy-Meter, einen bidirektionalen, 3Phasen Zähler gedacht.
Es hat nichts mit den Sunny Home Manager und auch nichts mit irgendwelchen Wechselrichtern zu tun. Solange Dein WR die Daten nicht - genau wie das SMA-EM - per Multicast verbreitet, wird das Modul nicht für den WR fuktionieren. Da ich diesen WR nicht kenne, kann ich nichts dazu sagen.

@mobil750: args, wieder gefixed. Jetzt müsste es stimmen.

@DS_Starter: negative Werte sollten eigentlich nie auftreten, da das SMA-EM immer positive Werte liefert. Auch bei Einspeisung.
Ich bin mir sehr sicher, dass die bei Dir als L1-L3 und auch als Saldo angezeigten Werte totaler Sonsense sind.

Der einzige Unterschied zwischen sma_test.pl und dem FHEM-Modul ist, dass die Werte im FHEM-Modul auf eine Nachkommastelle gerundet ausgegeben werden. Dazu verwende ich sprintf.
Relevant sind die Zeilen 129 bis 135 in 77_SMAEM.pm.
Hier könntest Du mal das sprintf mit samt der folgenden, runden Klammer rausnehmen und das Modul mit "reload 77_SMAEM" neu laden.
Evtl. ändert das was.....

Gruß
VK

DS_Starter

Hallo Volker,

habe überall die sprinf herausgenommen und es sieht momentan recht gut aus:

2016-04-01_15:06:29 SMA_Energymeter Saldo_Wirkleistung: 3926
2016-04-01_15:06:29 SMA_Energymeter L1_Saldo_Wirkleistung: 1435.5
2016-04-01_15:06:29 SMA_Energymeter L2_Saldo_Wirkleistung: 1257.8
2016-04-01_15:06:29 SMA_Energymeter L3_Saldo_Wirkleistung: 1232.8
2016-04-01_15:06:59 SMA_Energymeter Saldo_Wirkleistung: 3594.1
2016-04-01_15:06:59 SMA_Energymeter L1_Saldo_Wirkleistung: 1323.9
2016-04-01_15:06:59 SMA_Energymeter L2_Saldo_Wirkleistung: 1148.6
2016-04-01_15:06:59 SMA_Energymeter L3_Saldo_Wirkleistung: 1121.6
2016-04-01_15:07:29 SMA_Energymeter Saldo_Wirkleistung: 3991.4
2016-04-01_15:07:29 SMA_Energymeter L1_Saldo_Wirkleistung: 1455.1
2016-04-01_15:07:29 SMA_Energymeter L2_Saldo_Wirkleistung: 1279.3
2016-04-01_15:07:29 SMA_Energymeter L3_Saldo_Wirkleistung: 1257
2016-04-01_15:07:59 SMA_Energymeter Saldo_Wirkleistung: 3971.3
2016-04-01_15:07:59 SMA_Energymeter L1_Saldo_Wirkleistung: 1452.3
2016-04-01_15:07:59 SMA_Energymeter L2_Saldo_Wirkleistung: 1274.4
2016-04-01_15:07:59 SMA_Energymeter L3_Saldo_Wirkleistung: 1244.5


Zur Verbesserung der Übersichtlichkeit habe ich auch den führenden SMAEM...-String herausgenommen.

Aber zum Verständnis .... der Saldo einer Phase bzw. Summe sollte m.M. nach auch negativ werden können, da es sich doch aus Differenz aus Einspeisung und Bezug ergibt, also z.b. Einspeisung (0) - Bezug (+1100) = -1100.  Oder ich habe einen Denkfehler.

Ich werde nun weiter beobachten und berichten wie sich die Tests entwickeln.

EDIT: Was bedeuten eigentlich die Werte mit dem Zusatz "_Zaehler" ??

viele Grüße
Heiko
ESXi@NUC+Debian+MariaDB, PV: SMA, Victron MPII+Pylontech+CerboGX
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard, PylonLowVoltage
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

ujaudio

Zitat von: baukater am 01 April 2016, 08:41:53
Läßt sich das Modul nur mit einem Sunny Home Manager betreiben oder kann ich damit auch auf meine Daten aus dem Solar-Wechselrichter
STP 7000TL-20 zugreifen? Bisher nutzte ich den Sunny Explorer dazu.

Ich glaube wir werden das mal testen müssen  ;) ich habe nämlich auch nur den Wechselrichter von SMA und keinen zusätzlichen Energy Meter. Es ist aber nahelegend, dass SMA nicht unnötig viele verschiedene Dinge implementiert hat. Zumindest meine Firma (ganz andere Branche) schreibt gerne von sich selbst ab, ist ja auch richtig: weniger Entwicklungsaufwand und bereits getestet. Naja, nur ab un dzu will man auch mal neues Geld verdienen und dann muss man auch wieder etwas ändern, um einen Kaufanreiz zu geben.

PS: extra das Gerät anschaffen lohnt wohl kaum - so um die 300 Euro.

Nachtrag:
zum Test muss ich im Testprogramm diese Zeile anpassen?
$socket->mcast_add('239.12.255.254');
Wie finde ich die entsprechende IP bei mir heraus?
Einen lieben Gruß
Jürgen

Waldmensch

Zum SHM anzapfen gibt es Lesestoff hier http://www.photovoltaikforum.com/sma-anlagenueberwachung-f48/geraete-mit-home-manager-koppeln-via-semp-ethernet-t104060-s120.html
und ein GIT Projekt hier: https://github.com/camueller/SmartApplianceEnabler

Allerdings ist das Ziel dort, Dinge durch den HM schalten zu lassen. Ich habe jetzt adHoc nichts gefunden, wie man einfach die HM Daten erhält, die auch ans Portal geliefert werden.

Volker Kettenbach

Zitat von: DS_Starter am 01 April 2016, 15:16:38

Aber zum Verständnis .... der Saldo einer Phase bzw. Summe sollte m.M. nach auch negativ werden können, da es sich doch aus Differenz aus Einspeisung und Bezug ergibt, also z.b. Einspeisung (0) - Bezug (+1100) = -1100.  Oder ich habe einen Denkfehler.

EDIT: Was bedeuten eigentlich die Werte mit dem Zusatz "_Zaehler" ??


Hi Heiko,

"_Zaehler" sind die kWh, die für diesen Wert gezählt wurden. Ohne _Zaehler ist es die derzeitige Leistung in W.

Ein "Saldo" kann auch negativ werden, da es sich in der Tat um die Formel "Saldo = Einspeisung - Bezug" handelt.
Alle Werte mit "Saldo" im Namen werden von 77_SMAEM errechnet und nicht vom SMAEM geliefert.
Der SMAEM liefert generell nur positive Werte für sämtliche Readings (der im UDP-Paket verwendete Datentyp kann gar nicht negativ werden).

Gruß
Volker