Autor Thema: Neu: 77_SMAEM - Modul für SMA Energie Meter. Alternative zum Sunny Home Manager.  (Gelesen 127795 mal)

Offline Volker Kettenbach

  • Developer
  • Full Member
  • ****
  • Beiträge: 361
    • Meine Open Source Projekte
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
« Letzte Änderung: 30 März 2016, 12:50:52 von Volker Kettenbach »
Gefällt mir Gefällt mir x 2 Gefällt mir nicht Gefällt mir nicht x 1 Liste anzeigen

maximat0

  • Gast
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

Offline DS_Starter

  • Developer
  • Hero Member
  • ****
  • Beiträge: 7473
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

« Letzte Änderung: 30 März 2016, 19:27:05 von DS_Starter »
ESXi 6.5 @NUC6i5SYH mit FHEM auf Debian 10, DbLog/DbRep mit MariaDB auf VM
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

Offline Michael

  • Full Member
  • ***
  • Beiträge: 470
  • Rechtschreibfehler dürfen Behalten werden!
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

Offline Volker Kettenbach

  • Developer
  • Full Member
  • ****
  • Beiträge: 361
    • Meine Open Source Projekte
@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

Offline Michael

  • Full Member
  • ***
  • Beiträge: 470
  • Rechtschreibfehler dürfen Behalten werden!
Hallo Volker,

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

Zitat
Installation & 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

Offline Volker Kettenbach

  • Developer
  • Full Member
  • ****
  • Beiträge: 361
    • Meine Open Source Projekte
Muss es hier "https://github.com/kettenbach-it/FHEM-SMAEM" nicht apt-get install libio-socket-multicast-perl lauten.

Danke, ist gefixed!

Offline DS_Starter

  • Developer
  • Hero Member
  • ****
  • Beiträge: 7473
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 6.5 @NUC6i5SYH mit FHEM auf Debian 10, DbLog/DbRep mit MariaDB auf VM
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

mobil750

  • Gast
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

Offline baukater

  • Full Member
  • ***
  • Beiträge: 206
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

Offline Volker Kettenbach

  • Developer
  • Full Member
  • ****
  • Beiträge: 361
    • Meine Open Source Projekte
@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

Offline DS_Starter

  • Developer
  • Hero Member
  • ****
  • Beiträge: 7473
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
« Letzte Änderung: 01 April 2016, 15:36:33 von DS_Starter »
ESXi 6.5 @NUC6i5SYH mit FHEM auf Debian 10, DbLog/DbRep mit MariaDB auf VM
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

Offline ujaudio

  • Sr. Member
  • ****
  • Beiträge: 832
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?
« Letzte Änderung: 01 April 2016, 15:33:42 von ujaudio »
Einen lieben Gruß
Jürgen

Offline Waldmensch

  • Hero Member
  • *****
  • Beiträge: 1037
    • Github Repos
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.

Offline Volker Kettenbach

  • Developer
  • Full Member
  • ****
  • Beiträge: 361
    • Meine Open Source Projekte

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


 

decade-submarginal