IAMMETER unterstützt jetzt SunSpec Modbus/TCP: Modellzuordnung und Integrationsanleitung
Die IAMMETER-Firmware i.91.065.18 ergänzt den bestehenden Modbus/TCP-Dienst um eine schreibgeschützte SunSpec-Zuordnung für ganzzahlige Zählermodelle. Software, die SunSpec-Modelle versteht, erhält damit eine standardisierte Möglichkeit, einen IAMMETER-Zähler zu erkennen und ausgewählte elektrische Werte über das lokale Netzwerk zu lesen.
Dies ist eine zusätzliche Schnittstelle, kein Ersatz für das bestehende Messsystem. Der Zähler erfasst die Daten weiterhin auf dieselbe Weise. Die vorhandenen IAMMETER-Modbus-Register, die HTTP-API, die MQTT-Nutzlasten und die NEM-Einstellungen bleiben unverändert.
SunSpec definiert standardisierte Geräteinformationsmodelle, die auf Modbus-Holding-Register abgebildet werden können. Die Zuordnung beginnt mit einer Kennung SunS, gefolgt von Common- und gerätespezifischen Modellen, die ein Client durch sequenzielles Lesen der jeweiligen Modell-ID und Länge ermitteln kann. Das SunSpec-Modbus-Spezifikationspaket dokumentiert das Muster der Modellerkennung, einschließlich der 0-basierten Positionen in der Modbus-Zuordnung und der Regeln für nicht implementierte Werte. SunSpec Modbus wird in zahlreichen Integrationen im Bereich der verteilten Energieerzeugung eingesetzt, darunter Zähler, Wechselrichter und Speichergeräte.
IAMMETER implementiert eine fokussierte, schreibgeschützte Teilmenge für Zählerdaten. Diese Firmware wurde nicht für eine SunSpec-Zertifizierung eingereicht. Betrachten Sie diese Funktion nicht als Zertifizierung, als vollständige SunSpec-Konformität oder als Garantie dafür, dass jeder SunSpec-Client von Drittanbietern ohne Konfiguration funktioniert.
Unterstützte IAMMETER-Modelle und Zählerzuordnungen
| IAMMETER-Zähler | SunSpec-Zählermodell (integer) | Elektrische Interpretation |
|---|---|---|
| WEM3080 | 201 | Einphasig |
| WEM2067 | 202 | Zwei Phasen (Split Phase) |
| WEM3050T | 203 | Dreiphasig, Sternschaltung (Wye) |
| WEM3080T | 203 | Dreiphasig, Sternschaltung (Wye) |
| WEM3046T | 203 | Dreiphasig, Sternschaltung (Wye) |
| WEM3063T | 203 | Dreiphasig, Sternschaltung (Wye) |
Bei WEM2067 steht Modell 202 für eine echte Split-Phase-Installation. Es beschreibt nicht zwei unabhängige einphasige Stromkreise als dieselbe elektrische Anordnung.
Der Code für Modell 204 ist durch Host-Tests abgedeckt, die Firmware erkennt und wählt es für den WEM3080TD jedoch noch nicht automatisch aus. Dieser Artikel erhebt daher keinen Anspruch auf die Verfügbarkeit von Modell 204. Auch der WEM3046TE hat noch keine eigene Verifizierung der Modellidentifikation erhalten. Die erste Version liefert ausschließlich ganzzahlige Modelle: Die Float-Modelle 211 bis 214 sind nicht verfügbar.
Was ein Client lesen kann
Die ganzzahligen Zählermodelle stellen Phasenspannung, Phasenstrom, Phasenwirkleistung, gesamte Wirkleistung, Frequenz, Phasenleistungsfaktor sowie Wirkenergiezähler für Import/Export je Phase und insgesamt bereit. Das Common-Modell liefert Geräteidentifikationsdaten wie Modell, Firmware-Version und Seriennummer.
Energie wird in der SunSpec-Zuordnung in Wh dargestellt; der Leistungsfaktor wird als Prozentsatz dargestellt. Die Gesamtenergie-Punkte verwenden die vorhandenen Gesamtfelder des Zählers und die NEM-Semantik. IAMMETER berechnet in dieser Zuordnung keine dreiphasige Gesamtsumme durch Addition der Phasenzähler. Da die NEM-Einstellung die Bedeutung dieser Zähler beeinflusst, darf ein Client nicht davon ausgehen, dass die Gesamtenergie stets der Summe der Phasenenergie entspricht.
Einige Felder fehlen in dieser ersten Version bewusst: Blindleistung und Blindenergie, Scheinleistung und Scheinenergie, mehrphasiger Gesamtleistungsfaktor sowie Ereignis-Flags. Ihre Standardpositionen bleiben im Modell erhalten und geben die entsprechende Kennung für „nicht verfügbar“ zurück. Ein SunSpec-Client muss nicht verfügbare Werte erkennen, statt sie als Messwerte zu interpretieren.
Die Spannungsinterpretation ist entscheidend
Die Phasenwerte stammen direkt vom Zähler. Einige Außenleiterspannungs-Punkte werden für die Modellzuordnung abgeleitet:
- Die Außenleiterspannung von Modell 202 ist
UA + UB. - Die Außenleiterspannung von Modell 203 ist eine Näherung der Phasenspannung multipliziert mit
√3; sie ist keine direkte Messung zwischen zwei Außenleitern. Ein unsymmetrisches System oder eine Abweichung des Phasenwinkels kann Fehler verursachen.
Diese Unterscheidung ist wichtig für Anwendungen, die eine direkt gemessene Außenleiterspannung benötigen. Prüfen Sie die Punktdefinition des Modells und die Anschlusskonfiguration, bevor Sie einen abgeleiteten Wert für Steuerungs- oder Konformitätsentscheidungen verwenden.
Verbindung über Modbus/TCP
Aktivieren Sie den vorhandenen Modbus/TCP-Dienst des Zählers und stellen Sie eine Verbindung zu seiner LAN-Adresse her:
| Element | Einstellung |
|---|---|
| Host | LAN-IP-Adresse des Zählers |
| TCP-Port | 502 |
| Lesefunktion | 03 — Read Holding Registers |
| SunSpec-Startadresse | 40000 |
| Schreibzugriff | Von der IAMMETER-SunSpec-Zuordnung nicht unterstützt |
Die Adressen in dieser Anleitung sind 0-basierte Modbus-Anfrageadressen. Manche Anwendungen zeigen 1-basierte Registernummern an; prüfen Sie daher deren Konvention, bevor Sie einen Lesevorgang konfigurieren. Eine um eins verschobene Adresse liefert nicht die erwartete Kennung.
Verwenden Sie die folgende Erkennungssequenz:
- Lesen Sie zwei Register an der Adresse
40000. Erwartete Wörter sind0x5375und0x6E53, die ASCII-KennungSunS. - Lesen Sie das Common-Modell 1 ab
40002. - Lesen Sie das Zählermodell ab
40070. Das Lesen von 107 Registern liefert dessen Modell-ID, Länge und den vollständigen Datenbereich. - Lesen Sie die Endkennung an
40177.
Eine einzelne Modbus-Anfrage kann nicht mehr als 125 Register lesen; lesen Sie das Common-Modell und das Zählermodell daher getrennt. Clients sollten Modell-IDs und Längen ermitteln, statt eine Annahme über jede künftige Modellsequenz fest zu codieren.
Ganzzahlige Werte und Skalierungsfaktoren
SunSpec-Integer-Punkte verwenden Skalierungsfaktoren. Rechnen Sie einen Rohwert wie folgt um:
tatsächlicher Wert = Register-Ganzzahl × 10^Skalierungsfaktor
Zum Beispiel:
W = 12345
W_SF = 1
tatsächliche Wirkleistung = 123450 W
Skalierungsfaktoren können sich mit dem Bereich ändern. Lesen Sie in jedem Abfragezyklus ein vollständiges Zählermodell, damit ein Wert und sein Skalierungsfaktor aus derselben Antwort stammen. Skalierungsfaktoren dürfen nicht dauerhaft zwischengespeichert werden.
Validierung und aktuelle Einschränkungen
Host-Tests decken das Modell-Layout, die Umrechnung, Überläufe, das schreibgeschützte Verhalten und Regressionstests für bestehende Register ab. Ein WEM3080T-Testzähler hat die Erkennung von Modell 203 und kontinuierliche Lesevorgänge bestätigt, wobei Spannung und Leistung gegen die bestehenden HTTP- und Modbus-Schnittstellen geprüft wurden.
Andere Zählermodelle und einzelne Clients von Drittanbietern benötigen weiterhin physische Tests. Die Firmware i.91.065.18 wurde erstellt, hochgeladen und zur Dateiverifizierung erneut heruntergeladen; diese Release-Datei selbst wurde in diesem Validierungszyklus nicht geflasht.
Die Firmware enthält nicht die noch ausstehende Verbesserung des TCP-Framings. Sie erwartet derzeit eine vollständige Anfrage in einem Empfangsvorgang. Geteilte oder kombinierte TCP-Anfragen können die Verbindung schließen. Senden Sie eine Anfrage und warten Sie auf die Antwort, bevor Sie die nächste senden; beachten Sie dabei, dass dies nicht jedes Risiko einer TCP-Segmentierung ausschließt.
Wo dies in eine IAMMETER-Installation passt
Verwenden Sie die SunSpec-Zuordnung, wenn ein lokaler Client darauf ausgelegt ist, SunSpec-Zählermodelle zu erkennen und zu lesen. Verwenden Sie die vorhandene IAMMETER-Modbus/TCP-Registerzuordnung, wenn eine Anwendung IAMMETER-spezifische Register benötigt. Der bestehende lokale Modbus-Pfad bleibt für die Home-Assistant-Integration von Energiezählern nützlich, während HTTP, MQTT und IAMMETER Cloud unabhängige Optionen bleiben.
Laden Sie die Firmware herunter: i.91.065.18.bin.
Prüfen Sie vor dem Update Ihr Zählermodell, die Verbindungsmethode und den lokalen Netzwerkzugriff. Dies ist eine schreibgeschützte Datenschnittstelle; sie bietet keine Wechselrichtersteuerung, keine Schreibvorgänge und keinen Anspruch auf vollständige Interoperabilität mit SunSpec-Clients von Drittanbietern.