Device Information Models — SunSpec Modbus · SunSpec JSON · IEEE 1547-2018 / IEEE 2030.5 interoperability
SunSpec defines vendor-neutral information models for inverters, storage, meters, and other DER. The same model can be encoded as Modbus registers (field / installer) or as JSON (MQTT, REST, OpenAMI). IEEE 1547-2018 names SunSpec Modbus and IEEE 2030.5 as the two interoperable communications methods for the same DER functions. The 701–712 series is that shared schema.
Give every DER a single named point map (Model ID, point names, types, scale factors, curve groups) so a gateway can talk to any certified inverter without an OEM register spreadsheet. IEEE 2030.5 does not invent a second data model for grid-support functions — its DER function set is the WAN/XML encoding of this same SunSpec inverter-control model (IEEE 2030.5-2018 §10.10).
SunSpec is a device information model, not a WAN protocol. Three layers:
SunS marker) or JSON (canonical definition encoding; JSON instances for MQTT/REST).SunSpec is the generation / inverter track, not prepaid STS revenue metering. OpenAMI MQTT northbound is shaped like SunSpec JSON so a pole EMS can translate Modbus RTU, CAN, or RF into one payload. IEEE 2030.5 wrapping of that same model is Roadmap Phase 3 (utility DERMS). Do not score SunSpec on Donsun/Calin/Inhemeter STS meter rows.
SunS marker, then a scan of model ID + length blocks.DERControl / DefaultDERControl (Table 9).standards array on each point. 701–712 points that implement 1547 behavior are tagged "IEEE 1547-2018" — the behavior standard those IEEE 2030.5 resources configure.Two files matter:
schema.json — JSON Schema (draft-07) for how every SunSpec model is written. The standards array on each point is where 1547/2030.5 alignment is declared.sunspec-models/json/ (Apache-2.0, sunspec/models).IEEE 2030.5 does not get a second SunSpec model set. CSIP maps functions onto 2030.5 resources; the 700-series is the device-side schema for those same functions. Official point tags say IEEE 1547-2018 (behavior). IEEE 2030.5 is the WAN protocol that writes the equivalent DERControl objects.
Mn Md Vr SN — maps to IEEE 2030.5 EndDevice (lFDI/sFDI live on the cert, not in Modbus).
St ConnSt Alrm W Var Hz LLV/LNV + per-phase V/I/P → DERStatus / metering (/mr).
WMaxRtg VAMaxRtg VarMaxInjRtg + CtrlModes bitfield → DERCapability / DERSettings.
ES permit enter service, V/Hz windows, delay/ramp → opModEnergize / connect.
WMaxLimPct, WSet, VarSet, WRmp → opModFixedPF, opModMaxLimW, opModFixedW / opModTargetW, opModFixedVar, setGradW.
opModVoltVar · DERVoltWatt → opModVoltWatt (curve groups Crv[] / Pt[]).
opModLVRT* opModHVRT* opModLFRT* opModHFRT*.
opModFreqDroop / opModFreqWatt · DERWattVar → opModWattVar (IEEE 1547 Category B; CSIP Table 9 lists freq-watt, not always watt-var).
Cited from the SunSpec CSIP Implementation Guide v2.1 (Table 9) plus the official 701–712 JSON group names. Empty CSIP cells mean the function is default-only or not scheduled as a DERControl event.
| Grid function (CSIP) | SunSpec model | IEEE 2030.5 DERControl | IEEE 2030.5 DefaultDERControl |
|---|---|---|---|
| Identity / capability | 1 common · 702 DERCapacity |
EndDevice · DERCapability |
DERSettings |
| Status / metering | 701 DERMeasureAC |
DERStatus · /mr |
— |
| Connect / disconnect · enter service | 703 DEREnterService · 701 ConnSt |
opModEnergize |
opModEnergize |
| Fixed power factor | 704 DERCtlAC PFWInj / PFWAbs |
opModFixedPF |
opModFixedPF |
| Real power output limit | 704 WMaxLimPct |
opModMaxLimW |
opModMaxLimW |
| Set active power (W or %) | 704 WSet / WSetPct |
opModFixedW · opModTargetW |
opModFixedW · opModTargetW |
| Ramp rate | 704 WRmp / WRmpRef |
— | setGradW · setSoftGradW |
| Dynamic volt-var | 705 DERVoltVar |
opModVoltVar |
opModVoltVar |
| Volt-watt | 706 DERVoltWatt |
opModVoltWatt |
opModVoltWatt |
| Frequency-watt / droop | 711 DERFreqDroop |
opModFreqWatt · opModFreqDroop |
opModFreqWatt · opModFreqDroop |
| Low/high voltage ride-through | 707 DERTripLV · 708 DERTripHV |
opModLVRTMustTrip · MayTrip · MomentaryCessation (and HVRT twins) |
same |
| Low/high frequency ride-through | 709 DERTripLF · 710 DERTripHF |
opModLFRTMustTrip · MayTrip (and HFRT twins) |
same |
| Watt-var (1547 Cat. B; not in CSIP Table 9) | 712 DERWattVar |
opModWattVar |
opModWattVar |
CtrlModes — advertised functionsThis bitfield is the SunSpec-side equivalent of IEEE 2030.5 DERCapability.modesSupported. Bits from official model_702.json:
| Bit | SunSpec symbol | Label | IEEE 2030.5 mode |
|---|---|---|---|
| 0 | MAX_W | Limit maximum active power | opModMaxLimW |
| 1 | FIXED_W | Fixed active power | opModFixedW |
| 2 | FIXED_VAR | Fixed reactive power | opModFixedVar |
| 3 | FIXED_PF | Fixed power factor | opModFixedPFInjectW / opModFixedPFAbsorbW |
| 4 | VOLT_VAR | Volt-var | opModVoltVar |
| 5 | FREQ_WATT | Freq-watt | opModFreqWatt / opModFreqDroop |
| 6 | DYN_REACT_CURR | Dynamic reactive current | not a CSIP Table 9 mandatory; 2030.5 has no 1:1 CSIP name here |
| 7 | LV_TRIP | Low-voltage trip | opModLVRT* |
| 8 | HV_TRIP | High-voltage trip | opModHVRT* |
| 9 | WATT_VAR | Watt-var | opModWattVar |
| 10 | VOLT_WATT | Volt-watt | opModVoltWatt |
| 11 | SCHEDULED | Scheduling | DERProgram / DERControl events |
| 12 | LF_TRIP | Low-frequency trip | opModLFRT* |
| 13 | HF_TRIP | High-frequency trip | opModHFRT* |
schema.json)This is the official SunSpec JSON Schema for model definitions — including the standards field used to mark IEEE 1547-2018 (and therefore IEEE 2030.5-compatible) points. Source: sunspec/models json/schema.json.
Loading schema.json…
schema.json requiresRequired id (1–65535) and group. Optional label, desc, detail, notes, comments.
Required name + type (group or sync). Nested points[] then groups[]. count is an integer or a point name (repeating curves).
Required name, type, size. Optional sf, units, access (R/RW), mandatory (M/O), static (D/S), symbols[].
Array of strings on each point. 701–712 tags 1547-required points "IEEE 1547-2018". That is the IEEE 2030.5-compatible subset — empty array means SunSpec-only / optional.
IEEE 2030.5 DERCurve resources are this nested group, not a flat register list. Official Model 705 skeleton:
{
"id": 705,
"group": {
"name": "DERVoltVar",
"label": "DER Volt-Var",
"type": "group",
"points": [
{ "name": "ID", "value": 705, "type": "uint16", "mandatory": "M", "standards": ["IEEE 1547-2018"] },
{ "name": "L", "type": "uint16", "mandatory": "M", "standards": ["IEEE 1547-2018"] },
{ "name": "Ena", "type": "enum16", "access": "RW", "standards": ["IEEE 1547-2018"] },
{ "name": "AdptCrvReq", "type": "uint16", "access": "RW", "standards": ["IEEE 1547-2018"] },
{ "name": "NPt", "type": "uint16", "standards": ["IEEE 1547-2018"] },
{ "name": "NCrv", "type": "uint16", "standards": ["IEEE 1547-2018"] }
],
"groups": [
{
"name": "Crv",
"count": "NCrv",
"type": "group",
"points": [
{ "name": "ActPt", "type": "uint16", "access": "RW", "standards": ["IEEE 1547-2018"] },
{ "name": "DeptRef", "type": "enum16", "access": "RW", "standards": ["IEEE 1547-2018"] }
],
"groups": [
{
"name": "Pt",
"count": "NPt",
"type": "group",
"points": [
{ "name": "V", "type": "uint16", "units": "VNomPct", "access": "RW", "standards": ["IEEE 1547-2018"] },
{ "name": "Var", "type": "int16", "units": "DeptRef", "access": "RW", "standards": ["IEEE 1547-2018"] }
]
}
]
}
]
}
}
Use the file picker above for the full official model_705.json (symbols, scale factors, reversion timers). Ride-through models 707–710 nest three curves per stored set: MustTrip, MayTrip, MomCess — the three IEEE 2030.5 LVRT/HVRT/LFRT/HFRT mode families.
| Standard | Relationship to SunSpec |
|---|---|
| IEEE 1547-2018 | Defines DER behavior. Annex E names SunSpec Modbus as one of two interoperable interfaces. 701–712 points tagged IEEE 1547-2018 are that interface. |
| IEEE 2030.5 | WAN application protocol (HTTPS/XML, TLS, certs). DER function set is based on the SunSpec inverter control model. CSIP is the SunSpec profile of 2030.5. |
| CSIP | Which 2030.5 function sets are mandatory (Rule 21). Table 9 is the control mapping; 701–712 are the device schema behind it. |
| Modbus RTU/TCP | Transport for the register encoding. RS-485 carries the map; SunSpec is the map. |
| TLS 1.2 | Required for IEEE 2030.5. Not required for local SunSpec Modbus on an isolated RS-485 bus (Phase 1–2). |
| OpenAMI MQTT | Village northbound. Payloads align to SunSpec JSON group/point names so a later 2030.5 gateway has a known model to wrap — not a second register language. |
Use SunSpec on the inverter / hybrid / feeder EMS path (Victron, Enphase, Deye, Street Pole EMS). Do not expect STS keypad meters to speak it.
DERControl XML for the utility DERMS.standards: ["IEEE 1547-2018"] array — that is the documented 1547/2030.5 subset. Empty means optional / SunSpec-only.sunspec-models/json/schema.json and model_701.json…model_712.json.