[Modul] SMA Wechselrichter (ModBus)

Hallo zusammen,

Ich bräuchte da mal bitte Hilfe:

Ich habe sein kurzem eine PV-Anlage mit SMA Wechselrichter STP10.0-3AV-40 und dem SMA Sunny Home Manager 2.0

Ich habe es nun erfolgreich geschafft, über das Programm Sunny Explorer Modbus zu aktivieren und die Anlage über das Modul in IPS zu integrieren.

Nun hätte ich aber gerne noch den ein oder anderen Wert, welchen ich zwar über das Sunny Portal anzeigen lassen kann, mir allerdings nicht in IPS angezeigt wird:

  1. PV-Erzeugung
  2. Gesamtverbrauch
  3. Netzbezug

Im Sunny Portal wird mir das recht schön dargestellt.

Ich würde gerne die Werte benutzen, um eine LED am KNX-Taster grün leuchten zu lassen, wenn wir Stromüberschuss produzieren, bzw. rot, wenn wir Strom aus dem Netz beziehen…

Geht das überhaupt?

@GerhardBS berichtete davon, dass man in manchen Fällen eine Datei mit den Modbus Adressen ändern müsste. Da weiß ich allerdings nicht weiter.

Wäre klasse, wenn mir hier jemand unter die Arme greifen könnte.

Danke! Grüße

bsp.JPG

Hallo Matte1987,

von welchem Modul sprichst Du? Wenn Du das Modul von Codeking meinst, dort findet sich eine Datei mit Registeradressen. Die müsste ggf auf Deine (neuen) Adressen angepasst werden.

Grüße, Gerhard

Guten Morgen Gerhard,

danke für deine Antwort! Ja, ich nutze das Modul von Codeking. Sorry für die Verwirrung, dachte das wäre klar, da ich das hier als den passenden Thread dafür interpretiert hatte.

Ich wusste bisher nichtmal, dass ich für IPS Dinge auch im Explorer ändern kann/muss. Ich bin über RDP auf mein NAS (Windows 10) und hab dann dort gesucht.
Ich meine, nun die Datei gefunden zu haben, welche du meinst?
Sie heißt „SMARegister“ und liegt unter dem Pfad „C:\IP-Symcon\modules\de.codeking.symcon.sma\SMAModbus“

Allerdings steht ich da nun echt wie mit nem Brett vorm Kopf. Programmiersprache ist für mich Chinesisch… :frowning:

Wäre es vl für dich möglich, mir zu erklären, was ich da ändern muss?

Danke schonmal und Grüße

€: Ich meine, hier die Registeradressen für meinen Wechselrichter gefunden zu haben.
In der Dort verlinkten ZIP-Datei gibt´s auf Deutsch ne HTML-Datei in der alle Adressen inkl. Datentyp/Format usw auftauchen.
Nun gehe ich davon aus, dass unter der Adresse 30865 die Bezugsleistung und unter 30867 die Einspeiseleistung gesendet wird. (Screenshot anbei)

Doch wo muss ich diese nun eintragen und wie gehe ich dabei vor? Habe Angst, iwas Falsch zu machen .
Spontan würd ich jetzt hergehen und in die o.g. .php-Datei einfach über den Windows-Explorer öffnen und im Editor bearbeiten wie im Anhang. Darf ich das so einfach, oder muss ich das über nen speziellen Editor in IPS machen?

Danke! :slight_smile:

SMAregister_Einträge.JPG

Hallo,

ich würde mir vom SMA-Register-Original eine Kopie anlegen und die mit Noteüpad++ bearbeiten. Die beiden Registerwerte würde ich passend in die jeweilge Reihenfolge einreihen. Klammern und Komma beachten.
Dazu muß IPS natürlich gestoppt werden. Wenn es nicht klappen sollte (Meldungsfenster), dann wieder zurück auf das Original.

Dann müßten wir sehen, warum es nicht funktioniert.

Grüße, Gerhard

Wie unterschiedlich sind die Protokolle von sma und Solaredge , bekommt man mit dem Modul einen Solaredge ausgelesen ?

Hallo Richard,

die Frage könnte nur jemand sicher beantworten, der beide Systeme im Einsatz hat. Es käme auf einen Versuch an. Das Modul baut auf der Bibliothek ‚PhpModBus‘ auf. Damit wird (über IP und Port) ein ModbusMaster erzeugt, der dann für das Auslesen der Register zuständig ist. Im Modul gibt es eine Datei mit der Registern der verschiedenen SMA-Module. Diese Datei müsste auf die Register von Solaredge angepasst werden. Ob die Inhalte der Register dann genauso gelesen werden können, wäre der nächste Versuch - jeder Hersteller hat da vielleicht seine Eigenheiten. Es könnte auch sein, dass die IPS-Modbus-Module damit funktionieren. Bei mir mit SMA ging es nicht.
SMA möchte natürlich gerne seine Cloud-Lösung anbieten, Modbus muß extra freigeschaltet werde. Wie Solaredge es macht, weiß ich nicht. Du brauchst die IP, den Port und die Registerdaten (Nummer, Länge, Typ, etc).

Wär schön, wenn Dir das weiterhilft, Gerhard

Hallo Gerhard,
Danke für die Info, die Solaredge sind sunspec kompatibel, gefunden habe ich das:

Vielleicht sollte ich damit einen Versuch starten,

Glaube das funktioniert nicht oder muss bei SMA auch jeder Wert mit einem dynamischen Skalierungsfaktor umgerechnet werden?

Gruß Stephan

Bei SMA beginnen die Register ab 30000. Sie haben unterschiedliche Längen, unterschiedliche Typen (uint16, uint32), unterschiedliche Formate (raw, enum, fix). Dies wäre in die Registerdefinition des Moduls zu übernehmen. Die Berechnung der Werte erfolgt dann im Modul. Die Definitionsdatei läßt sich mit einem Editor bearbeiten. Das läßt sich sicherlich in kleinen Schritten entwickeln.
Beispiel:


30057 =>
[
   'name' => 'Seriennummer',
   'Ident' => 'SMA_serial',
   'count' => 2,
   'type' => 'U32',
   'format' => 'RAW'
],    ...

Grüße, Gerhard

Das gibt dann wohl eine größere Aufgabe, ich dachte eigentlich dass das über sun spec einheitlich sei

Das Modul von Codeking bezieht sich auf die Registeradressen nach dem SMA-Modbusprofil (ab 30000). Diese Adressen habe ich auch benutzt. SMA hat auch Adressen nach Sunspec veröffentlicht (ab 40000). Mit denen habe ich bisher nicht gearbeitet, will das aauch nicht tun, da bei mir ja alle Daten ankommen.
Nach der SMA-Doku müsste es also mit den 40000-Adressen auch klappen. Käme auf einen Versuch an. Der Test mit einer Adresse kann ja nicht so schwierig sein.

Viel Erfolg, Gerhard

Hallo
Supermodul von Codeking:)
Wie kann man Variablen „ausblenden“ oder gar nicht erst abfragen? Sind viele drin wo ich gar nicht brauche oder auch nur 0 anzeigen…
Schönen Gruß:)
Egon

@GerhardBS. Habe es probiert , geht leider nicht

@Egon: So genau kenne ich das Modul von CodeKing nicht, könnte mir aber vorstellen, das man die Datei mit den Registeradressen anpasst und nur die Adressen drin behält, die gewünscht sind. Also Origial sichern, Kopie bearbeiten und testen …
@Weimigolf: welche Adressen hast Du denn versucht? Vielleicht sind die Parameter noch nicht richtig?

Grüße, Gerhard

Guten Morgen,

wir haben das CodeKing Modul seit Nov.19 an 2 SMA Core1 Wechselrichtern im Einsatz, ein tolles Modul. Die WR haben eine max. Leistung von 50kW / WR. Jetzt kommen die schönen Tage und wir erhalten bei einer Leistung von > ca. 33kW keine Werte bzw. „0“ in IPS.

Die Firmware wurde an den WR bereits aktualisiert, das Problem besteht jedoch weiterhin.

Die Strommessung an der Zähleranlage zeigt aber, dass die Leistung nicht einbricht, hier haben wir ganz saubere und nachvollziehbare Werte.

Nun meine Frage: Gibt es ein Einschränkung im Modul, das den Wert „AC Wirkleistung über alle Phasen“ bei ca. 33kW abschneidet?

Hallo Max,

SMA hat ja auch ein lokales Web-Interface. Kommen da die Daten wenigstens an? Gibt es für die Leistungsvariable Debug-Informationen?

Grüße, Gerhard

Hallo,

@max zuerst hatte ich vermutet, das es wohl ein Problem mit Variablenüberläufen ist. Der Wert 30775 ist aber signed 32 (S32). Sollte also nicht überlaufen.
Details siehe
https://files.sma.de/dl/24399/SC-COM-MODBUS-TB-de-22.pdf

Bei mir ist das heute aber bei der 30535 Tagesertrag Wh (65535 -> 65,5 kWh; danach 0 Durchgang) (U32) auch passiert. Ich hab den Fehler noch nicht gefunden. Auf den ersten Blick sieht es mir aber so aus, das vielleicht nur 16 Bit ausgewertet werden und nicht 32.

Ich werde mir erstmal einen privaten Fork machen, um mir das Problem genauer anschauen zu können.

In der SMARegister.php sind alle 32Bit Variablen mit byte count = 2 angegeben. Da müsste auf den ersten Blick mal eine 4 stehen, da sonst aus dem Modbus Register nur zwei Bytes gelesen werden. In module.php muss ich dann auch readData checken. da sind Typwandlungen, die vielleicht auch noch ein Problem bereiten.

Ist @codeking hier gar nicht mehr aktiv?

Hat das nicht auch was mit php zu tun und ob das auf einem 32bit oder 64Bit System läuft?

Gruß Stephan

Danke für den Hinweis. Bin auch gerade erst durch Zufall darauf gestossen. Ist das erste Mal seit IBN, dass ich da in einen Überlauf geraten bin. Bei mir läuft es unter Raspbian 32 Bit auf einem Raspi. Hab mal geforked und schaue mir das mal genauer an. Kann aber noch dauern. Sollte ja auch unter 32 und 64 Bit laufen.

Hallo,

eigentlich schön, dass nicht nur ich das Problem habe :slight_smile:

@Gerhard: Über das interne Webinterface der WR kommen die Werte an, gestern >40kW. In IPS wird das irgendwann 0.

Wir haben heute einen wolkenfreien Tag, knapp 0°C und wir sind schon bei beiden WR bei >31kW. Lang wird es nicht mehr dauern. Ich verfolge das mal live im Objektbaum.

Zum OS. IPS läuft bei uns auf einem WindowsServer 2016 - 64bit - Patches / Updates aktuell