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

Waldmensch

das funktioniert auch nicht. Ich glaube aber auch nicht, das das im Wechselrichter angekommen ist. Der hing ja nur über Bluetooth am SHM.

DS_Starter

Ich habe das Modul auf einer Testmaschime noch laufen (hatte es auch etwas angepasst)
Vielleicht fällt mir heute Abend noch etwas auf/ein. Wenn ja, dann melde ich mich wieder.
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

Ich habe mal bei meiner Installation bewußt ein falsches Paßwort gesetzt .... es kommt sofort der Fehler wie bei dir:

InVERTER_CoNNECT_SW_GetStatus (SMA.Wechselrichter) from (192.168.2.40): ERROR. Wrong or to less data!

Allerdings werden überhaupt keine Received-Daten ausgegeben. Bei dir kommen offensichtlich, wenn auch falsche, Daten an.
Ich hatte ein paar kleiner Änderungen für mich gemacht, unter andrem den Namen geändert.
Du kannst es gern auch mal mit der angehängten Variante probieren.
Das define ist dann wie folgt:

define SMA.Wechselrichter INVERTER <Seriennummer> <PW> <Adresse>
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

Waldmensch


Dieselbe Fehlermeldung mit Deinem Modul
2016.04.15 00:26:13 1 : PERL WARNING: substr outside of string at /media/usbdisk/fhem/FHEM/23_INVERTER.pm line 178.
2016.04.15 00:26:13 1 : PERL WARNING: Use of uninitialized value in unpack at /media/usbdisk/fhem/FHEM/23_INVERTER.pm line 178.
2016.04.15 00:26:13 3 : InVERTER_CoNNECT_SW_GetStatus (Wechselrichter) from (192.168.178.86): ERROR. Wrong or to less data!



Das Passwort 0000 muss funktionieren. Zumindest funktioniert es mit SBFspot

root@lemaker ~ > /media/usbdisk/fhem/FHEM/sbfspot/bin/Release/SBFspot -nocsv -v -finq
SBFspot V3.1.5
Yet another tool to read power production of SMA solar inverters
(c) 2012-2015, SBF (https://sbfspot.codeplex.com)
Compiled for Linux (LE) 32 bit

Commandline Args: -nocsv -v -finq
Reading config '/media/usbdisk/fhem/FHEM/sbfspot/bin/Release/SBFspot.cfg'
Thu Apr 14 21:47:00 2016: INFO: Starting...
sunrise: 06:50
sunset : 20:35
Connecting to Local Network...
Initializing...
SUSyID: 125 - SessionID: 854294643 (0x32EB8073)
Inverter IP address: 192.168.178.86 from SBFspot.cfg
Logon OK
SUSyID: 128 - SN: XXXXXXXXXX
Device Name:      SN: XXXXXXXXXX
Device Class:     Solar Inverters
Device Type:      STP 10000TL-10
Software Version: 02.55.00.N
Serial number:    XXXXXXXXXX
SUSyID: 128 - SN: XXXXXXXXXX
Device Status:      Ok
SUSyID: 128 - SN: XXXXXXXXXX
Device Temperature: 0.0°C
SUSyID: 128 - SN: XXXXXXXXXX
GridRelay Status:      Information not available
SUSyID: 128 - SN: XXXXXXXXXX
Pac max phase 1: 10000W
Pac max phase 2: 10000W
Pac max phase 3: 10000W
SUSyID: 128 - SN: XXXXXXXXXX
Energy Production:
        EToday: 26.995kWh
        ETotal: 17524.810kWh
        Operation Time: 7993.41h
        Feed-In Time  : 7778.34h
SUSyID: 128 - SN: XXXXXXXXXX
DC Spot Data:
        String 1 Pdc:   0.000kW - Udc:   0.00V - Idc:  0.000A
        String 2 Pdc:   0.000kW - Udc:   0.00V - Idc:  0.000A
SUSyID: 128 - SN: XXXXXXXXXX
AC Spot Data:
        Phase 1 Pac :   0.000kW - Uac:   0.00V - Iac:  0.000A
        Phase 2 Pac :   0.000kW - Uac:   0.00V - Iac:  0.000A
        Phase 3 Pac :   0.000kW - Uac:   0.00V - Iac:  0.000A
        Total Pac   :   0.000kW
SUSyID: 128 - SN: XXXXXXXXXX
Grid Freq. : 0.00Hz
SUSyID: 128 - SN: XXXXXXXXXX
Current Inverter Time: 14/04/2016 21:47:00
Inverter Wake-Up Time: 14/04/2016 13:14:24
Inverter Sleep Time  : 14/04/2016 20:10:59
********************
* ArchiveDayData() *
********************
startTime = 570EC160 -> 14/04/2016 00:00:00
**********************
* ArchiveMonthData() *
**********************
startTime = 56FE54B0 -> 01/04/2016 13:00:00
Reading events: 2016-Apr-01
Thu Apr 14 21:47:01 2016: INFO: Done.
root@lemaker ~ >

DS_Starter

Guten Morgen,

naja einen Versuch war es wert. Die Spur mit dem Passwort war natürlich ein Holzweg wenn es mit SBFSpot und 0000 bei dir funktioniert. Bei mir geht, wie gesagt, nur das Anlagenpasswort.
Das ganze Inverter-Modul verwendet nicht die Multicast-Technologie und SpenZerX war hier kreativ am Werk ... da müßte man tiefer eindringen denke ich bzw. er schaut ja auch.
Aber unter dem Gesichtspunkt dass hier mit Volkers SMA-Modul eine Multicast-Lösung entsteht, die ich persönlich für den richtigen Weg halte, lohnt es sich m.M. nach nicht viel Energie in die Fehlersuche zu stecken.
Ich selbst werde mit der SBFSpot / SMAUtils -Lösung weiter arbeiten (funktioniert ja prima) bis das neue Multicast-Modul rund ist.

Das Inverter-Modul habe ich nur aus Interesse mal ausprobiert ....
   
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

Waldmensch

Ich habe die SBFspot / SMAutils Lösung heute früh ans laufen gekriegt nachdem ich SBFspot nach apt-get upgrade nochmal neu kompiliert habe. Ich denke auch, das die SBFspot Technologie, verwendet in Volkers Modul, die perfekte Lösung wäre. Dann hätte man alles beieinander. Meinen Verbrauch hole ich mir jetzt über einen modifizierten FS20S8M, beschrieben hier https://forum.fhem.de/index.php/topic,24204.0.html , da ich zufällig genau den dort verwendeten Eigenverbrauchszähler mit S0 Anschluss im Sicherungskasten habe - Kosten unter 20EUR für den FS20S8M. Wenn nun die SMAutils fehlerfrei laufen, habe ich

- aktuellen Eigenverbrauch
- aktuelle WR Leistung

Daraus kann ich den dritten Wert "Feed IN" errechnen. Somit habe ich alles was ich brauche und bin vom Sunny Portal komplett unabhängig - Halleluja  ;D. Die 300 EUR fürs SMA-EM kann ich erstmal sparen, wobei es sicher als Lösung noch sauberer wäre. Mal schauen, ob nach der Urlaubszeit noch was im Budget ist.

Edit: Bild zugefügt. Oberes Chart die Lösung aus SBFspot und S0 Zähler, unteres Chart die SMA Portal Abfrage. Abfrageintervall ist beim Portal 2Min, bei der neuen Lösung 1Min. Beim oberen Chart fehlt ein Stück vom WR am Morgen, hab es erst gegen 9 zum Laufen gekriegt.

(http://uploads.tapatalk-cdn.com/20160415/398bcddb89f2562726e44b6e7698bb8a.jpg)

Waldmensch

Zitat von: DS_Starter am 15 April 2016, 09:06:23
Guten Morgen,

naja einen Versuch war es wert. Die Spur mit dem Passwort war natürlich ein Holzweg wenn es mit SBFSpot und 0000 bei dir funktioniert. Bei mir geht, wie gesagt, nur das Anlagenpasswort.
Das ganze Inverter-Modul verwendet nicht die Multicast-Technologie und SpenZerX war hier kreativ am Werk ... da müßte man tiefer eindringen denke ich bzw. er schaut ja auch.
Aber unter dem Gesichtspunkt dass hier mit Volkers SMA-Modul eine Multicast-Lösung entsteht, die ich persönlich für den richtigen Weg halte, lohnt es sich m.M. nach nicht viel Energie in die Fehlersuche zu stecken.
Ich selbst werde mit der SBFSpot / SMAUtils -Lösung weiter arbeiten (funktioniert ja prima) bis das neue Multicast-Modul rund ist.

Das Inverter-Modul habe ich nur aus Interesse mal ausprobiert ....
   

Um das zum Abschluss zu bringen, habe die Lösung gefunden. Erklärung hier https://forum.fhem.de/index.php/topic,42688.msg440122.html#msg440122

Blablubblaber

Hallo alle zusammen,

ich wollte mal Fragen ob es den schon was neues gibt zum Modul?  :)

Gruß
Dennis

Volker Kettenbach

Kurzer Statusbericht von mir:

ich musste mir erstmal einen zweiten Raspi kaufen, weil ich auf meinem Produktivsystem die Modulerweiterung nicht entwickeln kann.
Der Raspi ist mittlerweile installiert und empfängt wie erwartet den Multicast-Stream vom STP-10000 (über Ethernet).

Jetzt muss ich noch mal ein paar Stunden Zeit finden, um das Protokoll zu implementieren.
Ggf. wird die Arbeit von Waldmensch & Co aus dem anderen Thread nützlich sein.

Ich werde aber auf jeden Fall ein Modul 77_SMA_Speedwire entwickeln, da ich die direkte Abfrage des STP nicht zielführend finde.
Also bitte noch ein paar Tage Geduld.

Wenn mich jemand unterstützen will: der entscheidende Punkt wird die Decodierung der 58-Bytes großen UDP-Pakete des STP sein.
In 77_SMAEM kann man sehen, wie das geht (lesen vom socket, binär nach hex konvertieren (unpack), hex-daten byteweise lesen und nach decimal konvertieren).
Ich müsste jetzt wissen, welches byte in dem 58-Bytes (=116 Zeichen) großen Paket, welcher Wert vom STP ist.

Gruß
VK

Waldmensch

@Volker, ich weiß nicht wie Du das machst, aber ich sehe in Wireshark absolut nichts vom Wechselrichter. Also keinen Broadcast. Mit den Wireshark Standard Einstellungen und Filter auf die IP vom WR müßte doch irgendwas kommen?! Aus dem Grund habe mich in das andere Script gestürzt, was aber nun ziemlich "ausentwickelt ist und bei allen Usern und WR funktionieren sollte.

Volker Kettenbach

Hi Waldmensch,

Du musst verstehen, wie Multicast funktioniert: https://de.wikipedia.org/wiki/Multicast
Die IP-Adresse des WR spielt keine Rolle in der Kommunikation.
Die IP-Adresse (Multicastgruppe), die Du abhören musst, ist die 239.12.255.255. Da wirst Du alle STP im lokalen Netz drauf finden. auf der .254 alle EMs im lokalen Netz.

Es tut mir leid das zu sagen, aber das, was 23_InVERTER_CoNNECT_SW.pm macht, ist in der Spezifikation von Speedwire meiner Kenntnis nach gar nicht vorgesehen. Das es funktioniert, ist erstaunlich. Vlt. habt ihr dazu zufällig eine Debugging-Funktion des WR gefunden oder so. Aber es ist auch nicht zielführend das so zu machen, da Multicast das wesentlich robustere System ist und der offizielle Weg wie die SMA Geräte untereinander kommunizieren.
Ich würde es per Unicast - auch wenn es funktioniert -  nicht implementieren, weil es nur eine Frage der Zeit ist, bis das wieder Ärger macht.
Speedwire ist das offizielle Protokoll und da würde ich drauf setzen.

Gruß
Volker

Waldmensch

Zitatist in der Spezifikation von Speedwire meiner Kenntnis nach gar nicht vorgesehen. Das es funktioniert, ist erstaunlich

Das ist 1:1 das, was SBFspot macht, nur sehr abgespeckt. Das Kommando für PDC, was ich dort nachgerüstet hab, habe ich aus dem Source von SBFspot.

maximat0

Hallo Volker
ZitatDu musst verstehen, wie Multicast funktioniert: https://de.wikipedia.org/wiki/Multicast
Die IP-Adresse des WR spielt keine Rolle in der Kommunikation.
Die IP-Adresse (Multicastgruppe), die Du abhören musst, ist die 239.12.255.255. Da wirst Du alle STP im lokalen Netz drauf finden. auf der .254 alle EMs im lokalen Netz.

Auf der Adresse 239.12.255.255 kommt nichts, die 254 funktioniert.
Kann es sein, dass der Sunny Island WR auf einer anderen Adresse sendet. Ich konnte nichts dazu finden. Hat jemand eine Idee?
Grüße
Klaus

Waldmensch

Bei mir kommt weder auf der 255 noch auf der 254 etwas. Habe Wireshark die ganze Nacht laufen lassen.

Volker Kettenbach

Zitat von: maximat0 am 27 April 2016, 21:34:40
Auf der Adresse 239.12.255.255 kommt nichts, die 254 funktioniert.
Kann es sein, dass der Sunny Island WR auf einer anderen Adresse sendet. Ich konnte nichts dazu finden. Hat jemand eine Idee?

Das kann gut sein. Ich habe keinen Sunny Island sondern einen Sunny Tripower und ein EnergyMeter.
Das EM ist auf der .254, der STP auf der .255.

Letztlich ist es auch egal: man muss nur die Multicastgruppen, die die SMA Geräte verwenden im Modul eintragen.

@Waldmensch: dann stimmt in Deinem lokalen Netz etwas nicht mit dem Multicast. Es gibt Switche aus der Billig-Liga, die Multicast (unkontrolliert und unkontrollierbar) filtern.

Ein guter Switch kann IGMP v2 oder v3 und verarbeitet Multicast korrekt.
Ich kann nur empfehlen, darauf zu achten, da Multicast sich mitterweile immer weiter verbreitet, da viele Apple-, Google- und IP-TV-Produkte Multicast verwenden.