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

Zitat von: ujaudio am 01 April 2016, 15:28:56
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?

Nein, da musst Du nichts anpassen. Diese IP - genauer gesagt handelt es sich um eine Multicastgruppe - ist überall (in allen Netzen) gleich (und das ist gut so).

Gruß
VK

Volker Kettenbach

Zitat von: Waldmensch am 01 April 2016, 16:32:50
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.

Bitte den Beitrag lieber hier posten: https://forum.fhem.de/index.php/topic,27667.225.html

Für mich persönlich ist der SHM gestorben. Evtl. nehme ich das Ding mal auseinander und schaue, ob man ein Jailbreak dafür entwickeln kann, so dass man es für was sinnvolles einsetzen kann.

DS_Starter

Hallo Volker,

danke für deine Erläuterungen.

Jetzt wird das Bild zu dem oben beschriebenen Fehler langsam etwas deutlicher. Solange alle Phasen nur positive Werte aufweisen, wird auch der Gesamtsaldo richtig ausgerechnet, z.B.:

2016-04-01_18:01:59 SMA_Energymeter Saldo_Wirkleistung: 613.1
2016-04-01_18:01:59 SMA_Energymeter L1_Saldo_Wirkleistung: 292.8
2016-04-01_18:01:59 SMA_Energymeter L2_Saldo_Wirkleistung: 115.5
2016-04-01_18:01:59 SMA_Energymeter L3_Saldo_Wirkleistung: 204.8
2016-04-01_18:02:29 SMA_Energymeter Saldo_Wirkleistung: 573.8
2016-04-01_18:02:29 SMA_Energymeter L1_Saldo_Wirkleistung: 277.7
2016-04-01_18:02:29 SMA_Energymeter L2_Saldo_Wirkleistung: 105.9
2016-04-01_18:02:29 SMA_Energymeter L3_Saldo_Wirkleistung: 190.2


Sobald eine oder mehrere Phasen 0 oder negative Salden aufweisen, wird die Gesamtleistung falsch berechnet, z.B.:

2016-04-01_18:27:33 SMA_Energymeter Saldo_Wirkleistung: 51.6
2016-04-01_18:27:33 SMA_Energymeter L1_Saldo_Wirkleistung: 84.1
2016-04-01_18:27:33 SMA_Energymeter L2_Saldo_Wirkleistung: 0
2016-04-01_18:27:33 SMA_Energymeter L3_Saldo_Wirkleistung: 0
2016-04-01_18:28:03 SMA_Energymeter Saldo_Wirkleistung: 107.1
2016-04-01_18:28:03 SMA_Energymeter L1_Saldo_Wirkleistung: 102.3
2016-04-01_18:28:03 SMA_Energymeter L2_Saldo_Wirkleistung: 0
2016-04-01_18:28:03 SMA_Energymeter L3_Saldo_Wirkleistung: 9.5

2016-04-01_18:46:37 SMA_Energymeter Saldo_Wirkleistung: -33
2016-04-01_18:46:37 SMA_Energymeter L1_Saldo_Wirkleistung: 55.6
2016-04-01_18:46:37 SMA_Energymeter L2_Saldo_Wirkleistung: 0
2016-04-01_18:46:37 SMA_Energymeter L3_Saldo_Wirkleistung: 0

2016-04-01_18:58:38 SMA_Energymeter Saldo_Wirkleistung: -316.3
2016-04-01_18:58:38 SMA_Energymeter L1_Saldo_Wirkleistung: -96.4
2016-04-01_18:58:38 SMA_Energymeter L2_Saldo_Wirkleistung: -96.4
2016-04-01_18:58:38 SMA_Energymeter L3_Saldo_Wirkleistung: -96.4
2016-04-01_18:59:08 SMA_Energymeter Saldo_Wirkleistung: -323.3
2016-04-01_18:59:08 SMA_Energymeter L1_Saldo_Wirkleistung: -100.2
2016-04-01_18:59:08 SMA_Energymeter L2_Saldo_Wirkleistung: -100.2
2016-04-01_18:59:08 SMA_Energymeter L3_Saldo_Wirkleistung: -100.2
2016-04-01_18:59:38 SMA_Energymeter Saldo_Wirkleistung: -288
2016-04-01_18:59:38 SMA_Energymeter L1_Saldo_Wirkleistung: 0.1
2016-04-01_18:59:38 SMA_Energymeter L2_Saldo_Wirkleistung: 0
2016-04-01_18:59:38 SMA_Energymeter L3_Saldo_Wirkleistung: 0


Es muß irgendwo ein Fehler in den Rechenregeln stecken. Bin leider noch nicht dazu gekommen mir das mal genauer anzusehen.
Aber das ist eine heiße Spur ....

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

DS_Starter

Hallo Volker,

jetzt habe ich genauer geschaut und auch die zwei Fehler gefunden. In den Zeilen wie unten angegeben wurde immer die Phase 1 von den anderen beiden subtrahiert.

Originalzeilen 201, 202
    readingsBulkUpdate($hash, "L2_Saldo_Wirkleistung", sprintf("%.1f",$l2_einspeisung_wirk-$l1_bezug_wirk));
    readingsBulkUpdate($hash, "L2_Saldo_Wirkleistung_Zaehler", sprintf("%.1f",$l2_einspeisung_wirk_count-$l1_bezug_wirk_count));

Originalzeilen 238, 239
    readingsBulkUpdate($hash, "L3_Saldo_Wirkleistung", sprintf("%.1f",$l3_einspeisung_wirk-$l1_bezug_wirk));
    readingsBulkUpdate($hash, "L3_Saldo_Wirkleistung_Zaehler", sprintf("%.1f",$l3_einspeisung_wirk_count-$l1_bezug_wirk_count));


Ich habe das mal korrigiert und die Readings gekürzt sowie zusätzlich die SUSy-ID und Seriennummer als Reading erfasst.
Finde ich übersichtlicher.
Mit den "_Zaehler" -Werten kann ich momentan auch noch nichts brauchbares anfangen. Der Meter ist seit über einem Jahr eingebaut und dafür erscheinen mir die dargestellten Werte nicht plausibel, z.B.:

Bezug_Wirkleistung_Zaehler            73.7
Einspeisung_Wirkleistung_Zaehler   99.5


Ich habe das korrigierte Modul mit angehängt.

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

Michael

Moin

@DS_Starter
ZitatIch habe das mal korrigiert und die Readings gekürzt ...
Das war auch mein Vorschlag, aber Volker wollte dies nur Optional machen, wenn Überhaupt.

Zitat
Antwort #4 am: 31 März 2016, 08:44:33 »
@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.

Zitat... da man sonst das Problem hat, dass nicht weiss, wie die Seriennummer des SMA-EM lautet
Die Seriennummer kann man durch Eingabe der IP des EM heraus bekommen.
Die IP des EM kann ich in meinem Router sehen.

Was mir noch auffiel.
Wenn ich den Intervall ändere bekomme ich die Meldung (sh. Anhang sma1.png) und wenn dann ins Modul sehe ich folgendes (sh. Anhang sma2.png)
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

DS_Starter

Morgen Michael,

ah .... ok, verstehe. Allerdings finde ich es persöniich wie du auch wirklich übersichlticher, zumal meiner Meinung nach im "Standardhaushalt" meistens nur ein E-Meter eingebaut sein wird.
Ich würde Volker vorschlagen ein Attribut, z.B. "mulimetersupport",  einzubauen und wenn "1" gesetzt dann eben den kompletten String auszugeben.... sowas in der Art.

Deinen Fehler habe ich auch (gerade getestet). Das kommt weil der Socketaufbau im Define des Moduls stattfindet. Wenn das Define geändert wird und der Socket ja schon generiert wurde kommt es zu dieser Nachricht. Abhilfe würde auch hier z.B. ein Attribut schaffen, welches das Intervall steuert.
Vielleicht baue ich einen Vorschlag ....

@Volker, ich habe noch die Zeile 104 so geändert (das "|" in "||" ):
if ($hash->{LASTUPDATE} == 0 || time() >= $hash->{LASTUPDATE}+$hash->{INTERVAL})  {

Ansonsten kam beim Start immer die Meldung "Possible precedence problem on bitwise | operator at ./FHEM/77_SMAEM.pm line 104, <$fh> line 40."

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

Volker Kettenbach

Zitat von: DS_Starter am 03 April 2016, 09:09:21
In den Zeilen wie unten angegeben wurde immer die Phase 1 von den anderen beiden subtrahiert.

Mit den "_Zaehler" -Werten kann ich momentan auch noch nichts brauchbares anfangen. Der Meter ist seit über einem Jahr eingebaut und dafür erscheinen mir die dargestellten Werte nicht plausibel, z.B.:


Hi Heiko,

danke für das Finden der Bugs. Ich habe das Modul aktualisiert. (Auch das ||).

Wg. _Zaehler: bitte nochmal mit dem sma_test.pl schauen. Es handelt sich um die Zählerstände in kWh der jew. Wirkleistungen.

Attribut, z.B. "multimetersupport": ja, da mache ich mich dran.

Fehler beim Redefine: ja, kann ich nach vollziehen. Werde sehen, was sich da machen lässt. Entweder Fehler beheben (bei anderen Modulen geht das ja auch) oder zusätzliches Attribut für das Update-Interval. Ich denke, abfragen, ob das Socket bereits existiert und dann nur das Interval aktualsisieren macht mehr Sinn. Ich bin dran.

Gruß
Volker

Blablubblaber

Ich habe mal eine Frage wird das ganze später wenn es Fertig entwickelt ist und alle Bugs soweit entfernt sind auch Offiziell in FHEM eingecheckt?

Testen kann ich leider noch nix da mein SMA EM noch nicht da und noch nicht eingebaut ist.
Finde es aber super das es jetzt dann eine Möglichkeit gibt die Daten direkt über LAN anzugreifen das war nun auch der ausschlaggebende Grund für mich es zu bestellen.  :) :)


Waldmensch

Naja, es sind nur die Verbrauchsdaten, die Du an deinem Zweiwegezähler vom EV mit S0 Schnittstelle auch abzapfen kannst (so holt sich ja der SHM die Daten, wenn er kein EM hat). Es fehlt halt das wichtigste: Wieviel kommt grad vom Dach, bzw. wieviel speise ich grad ein. Dafür sind mir die 300EUR ehrlich zu heftig.

Edit: mag sein, das es für manche Leute wichtig ist, zu sehen, was auf den einzelnen Phasen los ist. Dann hätte das EM natürlich seine Berechtigung.

Blablubblaber

ich habe halt nur einen alten Ferraris Zähler bei dem ich auch nicht wirklich sicher bin ob er noch richtig zählt da ist dann des EM nicht schlecht.

Und der Sensor von HomeMatic ist mir zu ungenau bzw hat eine zu große Abtastung da kommen nur alle 3,5 Minuten Messwerte und dann auch nur der aktuelle Wert nicht ein Durchschnittswert oder sonst irgendwas da gehen viele werte dazwischen verloren.

Da ist das EM mit alle 30 Sekunden ein wert schon genauer.

Volker Kettenbach

@Waldmensch: ich muss Dich korrgieren: die Einspeisung wird vom SMA-EM gezählt. Und das auch deutlich flotter als durch den SHM.

Einzig "was kommt vom Dach" fehlt.

Waldmensch

Okay, ich dachte es wird nur die Differenz aus Einspeisung und Eigenverbrauch gezählt, weil der EV ja quasi im Haus bleibt. Dann wäre es auch schwer, den aktuellen Verbrauch zu erfassen ohne zu wissen, was vom Dach kommt.

Also angezeigt wird durch das EM 

Fall 1 - voller Sonnenschein: die Einspeisung als wert kleiner 0 welche die Differenz aus PV-EV ist, beide unbekannt, Gleichung mit 2 Unbekannten
Fall 2 - Dämmerung: der Verbrauch als Wert größer 0 welcher die Differenz aus Verbrauch - PV ist, beide unbekannt, Gleichung mit 2 Unbekannten

Eine Absolut genaue Aussage hat man nur nachts, weil die 2. Unbekannte in der Gleichung, nämlich PV, 0 ist

In Jedem Fall muß zusätzlich zum EM dann ein zweiter Wert erfasst werden um nach Adam Riese auf den dritten Wert zu kommen. Also entweder man kann genau sagen was der Eigenverbrauch ist (Zusätzlicher Zähler, der immer einen negativen Wert liefert) oder man erfasst die PV Leistung aus dem Wechselrichter.

Die reinen Daten aus dem EM sind für Schaltvorgänge m.E. nur bedingt zu gebrauchen, zumindest wenn man an gewisse Limits gehen will. Wenn mir das EM 1000W Einspeisung anzeigt, weiß ich ja noch lange nicht, wieviel Last ich noch aufschalten kann, weil ich keine Ahnung habe ob vom Dach grad nur 1500W PV - 500W EV kommen oder 10000W PV - 9000W EV

Oder habe ich irgendwas übersehen?

DS_Starter

Nabend zusammen,

@Volker .. . ich habe mit dem Testmodul mir noch einmal die "_Zaehler" - Werte angeschaut. Ich sehe keinen Unterschied zu den Werten die das Modul liefert und gehe davon aus das die richtig sind. Nur verstehe ich sie nicht.

Der Meter liefert z.B.:

Bezug_Wirkleistung_Zaehler            79.6
Einspeisung_Wirkleistung_Zaehler    134.0


Die einzelnen Phasenwerte passen auch zu den Summen. Nur würde es ja bedeuten, dass ich in einem Jahr (so lange läuft der Meter inzwischen) nur rund 80 kWh bezogen und 134 kWh an Leistung eingespeist hätte. Und das ist natürlich falsch.

Hast du dafür eine Erklärung Volker ?  Also für Steuerungszwecke braucht man diesen Wert m.M. nach nicht, eigentlich ist er überflüssig. Aber da er nun schonmal ausgewertet wird würde ich ihn natürlich auch gern verstehen  ;)

@Waldmensch .... die Erzeugung des Wechselrichters erfasse ich momentan noch mit sbfspot und SMAUtils und bekomme so die Erzeugung geliefert. Super wäre es ein Modul zu bauen welches den Wechselrichter (wie VK dem SMA-Meter) direkt anzapft.

Aber was beide zusammen nicht können, ist einen Forecast zu liefern wie es vom SHMForecast_(Relative) getan wird. Das finde ich einen interessanten Ansatz weil man dadurch abschätzen kann ob es sich lohnt einen Verbraucher zu schalten der über eine längere Zeit laufen wird/muß wenn er einmal im Betrieb ist.

Ich denke es wird nicht die eine universelle Lösung geben, sondern die Möglichkeit verschiedene Quellen zur Entscheidungsfindung heranzuziehen macht die Sache rund... und interessant  :)

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

Michael

Moin

@All
Habt ihr die Arbeit von SpenZerX gesehen.
https://forum.fhem.de/index.php/topic,42688.msg358162.html#msg358162
Klappt bei mir leider noch nicht.
Aber ein Ansatz ist es auf alle Fälle.  :)
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

Waldmensch

Ich wusste bis dato nicht mal, dass mein Tripower einen Netzwerkanschluss hat. Laut http://files.sma.de/dl/17781/STP5-10TL-20-BE-de-13.pdf hat er den aber. Na da schau ich heute abend mal - das wird ja spannend. Das wäre der "Missing Link" zur EM Abfrage. Das Protokoll wird ja sehr ähnlich sein und vielleicht kann man Beides in ein Modul packen.  :D