Das funktioniert mit folgendem code:
define WR1 ModbusAttr 5 600 <Adresse>:502 TCP
attr WR1 dev-h-defPoll 1
attr WR1 enableControlSet 1
Zusätzlich braucht man Objekte, die über Modbus interessante Register auslesen, formatieren und als reading bereitstellen. Das sind z.B.:
attr WR1 obj-h4101-expr $val / 100
attr WR1 obj-h4101-len 1
attr WR1 obj-h4101-reading Frequenz
attr WR1 obj-h4124-expr $val
attr WR1 obj-h4124-format %d °C
attr WR1 obj-h4124-len 1
attr WR1 obj-h4124-reading Temperatur
attr WR1 obj-h4129-expr $val
attr WR1 obj-h4129-format %.2f kWh
attr WR1 obj-h4129-len 2
attr WR1 obj-h4129-reading EnergieTotal
attr WR1 obj-h4129-unpack L>
attr WR1 obj-h4131-expr $val
attr WR1 obj-h4131-len 2
attr WR1 obj-h4131-reading StundenTotal
attr WR1 obj-h4131-unpack L>
attr WR1 obj-h4151-expr $val / 10
attr WR1 obj-h4151-len 2
attr WR1 obj-h4151-reading Wirkleistung
attr WR1 obj-h4151-unpack L>
attr WR1 obj-h4153-expr $val / 10
attr WR1 obj-h4153-len 2
attr WR1 obj-h4153-reading Blindleistung
attr WR1 obj-h4153-unpack L>
attr WR1 obj-h4155-expr $val /10000
attr WR1 obj-h4155-len 2
attr WR1 obj-h4155-reading MaxLeistung
attr WR1 obj-h4155-unpack L>
attr WR1 obj-h4157-expr $val / 1000
attr WR1 obj-h4157-len 1
attr WR1 obj-h4157-reading Leistungsfaktor
attr WR1 obj-h6672-expr $val
attr WR1 obj-h6672-len 8
attr WR1 obj-h6672-reading SW-Version
attr WR1 obj-h6672-unpack (a*)
attr WR1 obj-h6724-expr $val / 10
attr WR1 obj-h6724-len 1
attr WR1 obj-h6724-reading SpannungL1
Diese Attribute müssen vorher jeweils mit userattrib erzeugt werden:
attr WR1 userattr obj-h4129-expr obj-h4129-len obj-h4129-reading obj-h4129-unpack obj-h4129-format
Das ganze läuft bei mir erst seit ein paar Tagen. Fehler und Anregungen bitte an mich!
Gruss,
Harald
Welche Register nun interessant sind und wie sie decodiert werden müssen ist nicht ganz einfach. Die Registerbelegung wird vom Hersteller nicht bekanntgegeben und müsste erst herausgefunden werden.
Dafür wäre ich für Unterstützung dankbar!
Wie macht man das? Den Verkehr auf Port 502 zwischen dem Wechselrichter und einer Anwendung (z.B. der Solarmax App MaxLink) mitschneiden (z.B. mit Wireshark), die enthaltenen Modbus Nachrichten analysieren und raten, welche Register zu welchen Werten der Anwendung passen.
Hallo Harald,
nochmals vielen Dank fürs anschreiben per PM!
Ich weiß nicht genau ob ich hier eine große Hilfe sein werde, aber ich gebe mein bestes! ;)
Seitens Solarmax wird es keine Hilfe geben, zumindest habe ich auf meine Problemanfragen bisher keine Antwort bekommen. :(
Wie hast du die Register gefunden? Per Scan?
Ich hänge mal ein List meines ersten Versuchs (scans) mit den entsprechenden Readings/Attribute an!
Es sind schon recht viele. Alle einzeln Probieren wird eine Weile dauern ;)
Gruß
Hallo zusammen,
seid ihr in der Sache weiter gekommen?
Viele Grüsse,
Manfred
Mit den ca. 10 angegebenen Messwerten war ich bisher zufrieden und es läuft zuverlässig. Daher hab ich keine weiteren Nachforschungen angestellt.
Hallo,
kein Problem. Ich selbst habe auch einen 5000SP im Einsatz, allerdings sind die Register zum Teil etwas "verschoben". Hier mal die Register, wie sie bei mir sind:
4097 UL1
4098 IL1
4099 + 4100 HB & LB PAC
4101 Frequenz
4112 UDC (String 1)
4113 IDC (String 1)
4114 + 4115 HB & LB PDC (String 1)
4116 UDC (String 2)
4117 IDC (String 2)
4118 + 4119 HB & LB PDC (String 2)
4124 Temperatur
4125 Status
4127 Temperatur ? eher nicht
4129 KT0 HB Gesamtertrag
4130 KT0 LB Gesamtertrag
4131 Stunden total HB
4132 Stunden total LB
4136 KDY Tagesertrag
4150 Error Code
4151 + 4152 Wirkleistung
4153 + 4154 Blindleistung
4155 + 4156 MaxLeistung
4157 Leistungsfaktor
Noch eine Frage - kommt Ihr auf den Port 80 des Wechselrichters drauf? Das hat bei mir schon mal funktioniert, allerdings kann ich mich nicht mehr daran erinnern, wie der Benutzername und das Passwort lauten - "admin" / "admin" funktionieren bei mir jedenfalls nicht....
Viele Grüsse,
Manfred
Ja, "admin" / "admin" sind die Zugangsdaten. Da wirst du sie wohl mal geändert haben ...
Laut Auskunft der Hotline kannst du das zurücksetzen. Du musst dir nur deren sündhaft teures RS485-Modul kaufen. Da ist dann auch ein Reset-Taster drauf.
Oder du verbindest kurz die richtigen zwei Kontakte an der D-SUB Buchse ;)
Interessant. Ich habe die RS485 Schnittstelle für die SP-Serie vor mir liegen, allerdings fehlt da der Taster und auch die Anschlussleiste hat nur vier Anschlüsse. Auf dem Bild im Solarmax-Shop sieht die Karte fast gleich aus, allerdings ist da tatsächlich ein Taster drauf und die Anschlussleiste hat zehn Anschlüsse. Welche zwei PINs müsste ich denn schliessen, um da ein Reset durchzuführen? Hatte auch schon ein "Werksreset" aus MaxLink ausgeführt, komme aber nach wie vor nicht auf die Seite.
In den Modbus-Registern 12351 - 12353 bzw. 12368-12370 sehe ich aber, dass admin/admin da hinterlegt ist.
Zur Sicherheit - ich meine hier den Login über http://<<IP-Adresse Wechselrichter>>, nicht den Admin-Login über MaxLink.
Ich hatte vor ein paar Monaten mal die Schnittstelle genauer angeschaut und einen UART TTL zu RS485 Adapter (für 3€ ) an die Schnittstelle gehängt. Hat auf Anhieb tadellos funktioniert.
Ohne Gewähr die Belegung, Benutzung auf eigene Gefahr:
Pin 5 und 7 sind GND (0 Ohm Widerstand zur Erdungsschraube)
Pin 3 ist reset.
Über RS485 läuft am 5000SP ja das MaxComm Protokoll. Diese Kommunikation ist im FHEM Modul 'SOLARMAX' implementiert, d.h. wäre eine Alternative zu Modbus.
Nun wird es spannend. Ich habe vor Jahren einen Datenlogger für Solarmax basierend auf dem MaxCom Protokoll programmert (und später auch diverse andere Hersteller angebund). Der Logger hat mit sämtlichen und zahlreichen E, C, S, MT und Zentralwechselrichtern etc. von Solarmax funktioniert, läuft aber nun nicht zusammen mit dem SP über die RS485 - Schnittstelle. Ich bin mir also ziemlich sicher, dass ich das richtig implementiert habe. Ich habe mir aus dem Grund die Schnittstelle gekauft, bekomme aber keine Antwort vom Wechselrichter auf entsprechende Anfragen. Derzeit versuche ich vom Solarmax-Support nähere Informationen zu erhalten, die sind sich da aber nicht einig. In der Doku zu MaxCom wird der SP5000 aufgeführt, laut Support funtioniert deren Programm Maxtalk (welches ja MaxCom spricht) aber nicht mehr mit dem SP - Wechselrichter. Du hattest MaxCom erfolgreich mit einem SP-Gerät getestet?
Viele Grüsse,
Manfred
Hallo
@HarryCopter
Danke für den Tipp per PM!
So langsam fange ich an dieses ModBus Modul zu verstehen ;)
Hier mal ein kleiner Beitrag:
attr WR1 obj-h6912-expr $val
attr WR1 obj-h6912-len 5
attr WR1 obj-h6912-reading Hersteller
attr WR1 obj-h6912-unpack (a*)
Ich habe das Reading einfach mal Hersteller gennant. Zumindest lässt die Suche das vermuten......
https://www.senergytec.com/product/residential-inverter/se-4-5-6ktl-d1/ (https://www.senergytec.com/product/residential-inverter/se-4-5-6ktl-d1/)
Kommt der Euch auch bekannt vor? 8)
Gruß
Ja, genau dasselbe habe ich heute auch rausgefunden.
Hast du zufällig einen RS485 Adapter an deinem WR?
Zitat von: HarryCopter am 24 November 2021, 17:07:49
Hast du zufällig einen RS485 Adapter an deinem WR?
Nein!
Hallo Leute,
ich dachte ich bin mit meinen Solarmax WR alleine....
Habe insgesamt 3 Anlagen, zwei andere Anlagen mit einem 7TP2 und 20HT4 ( Kommunikation über TCP via MaxTalk Protokoll klappt einwandfrei) und eine mit einem 20SHT samt MaxWebXPN (eigentlich für für den FRE).
Ich brauche aus der Anlage 3 (mit dem 20 SHT) eigentlich immer nur den Momentanwert der Anlage, der Rest ist mir eigentlich egal. Via MaxTalk Protokoll kann ich weder auf den WR noch den MaxWeb XPN. Beide sind via RS485 Verbunden, wobei der WR selber noch ein WLAN Interface hat. ModBus TCP auf Port 502 haben Sie auch, aber ich bin anscheinend zu doof (oder zu unerfahren) auch nur Herauszufinden welches Register das richtige ist. Bräuchte da etwas Hilfestellung
Falls Du mit "Momentanwert" die aktuelle Leistung meinst - die steht IMHO in den Registern 4151 + 4152 (Wirkleistung).
Grüsse,
Manfred
Hallo,
ich werde mit meiner PV einen MAX.STORAGE Ultimate bekommen. Ist es mit dieser Lösung auch möglich den MAX.STORAGE Ultimate auszulesen.
Viele Grüße
Ralph