SMA Developer

Integrate SMA products in your PV applications

Information for developers

SMA Developer acts as a central repository for documentation on the interfaces used in SMA products. With the documentation published here, SMA primarily uses open and standardized interfaces for the easy system integration of SMA products in a wide range of PV applications.

In this way, SMA provides you with easy, user-friendly access to our products without the need for an additional personal non-disclosure agreement (NDA). Many of the documents can be downloaded immediately, although a few require you to register beforehand (this only takes a short time).

SMA Blog

SMA is Opening its Doors to Third-Party Suppliers

Read blog article

Connecting SMA inverters

Areas of application

With the information offered here, we are emphasizing the use of standards as a way of minimizing the time and effort involved in integration. The first major step here has already been made with the implementation of a direct SMA Modbus® interface and SunSpec®-Modbus® interface in the inverter. This means that no additional components are needed for directly accessing the data on our devices. This is an important step toward cutting system costs for you and your customers.

Connection via a higher-level communication device

To enable the central monitoring and control of string inverters, SMA inverters can also be connected via a standardized SMA Modbus® interface and higher-level communication device.

With these solutions, SMA is offering—among other things—a universal monitoring solution, a solution for direct energy marketing and an interface for active and reactive power setpoints.

A great solution for connecting to the energy management system

SMA also already offers an energy management solution. Until this segment becomes more standardized, you can now already use the full functionality of the existing SEMP (Simple Energy Management Protocol) protocol interface in Sunny Home Manager.

Downloads

Here you can download all freely available downloads

SMA Modbus® protocol interface (Ethernet + WLAN)
SMA Data1 – software library (RS485)
SEMP Protocol-Interface
Speedwire Device Discovery protocol interface
Meter Protocol Interface
Meter Protocol Interface; Source code example for integration

Register now

To receive the following documentation (for which you have to agree to the terms of use): Sunny Island CAN protocol for the communication with an external BMS

CAN Protocol for Sunny Island

Service & Support for SMA Developer

Please note that, except for the information available here, we cannot provide you with any additional development support in the integration of our products.

1 SMA Modbus: General Information

Reaction time

Question:

Why is the Modbus interface reaction time defined as only five to ten seconds in the technical documentation?

Answer:

The reaction time given is based on the worst-case reaction time analysis. This is with the intention of providing a reliable estimate for customers to minimize planning risks.
However, the reaction time of the SMA Modbus interface depends on many factors and is normally significantly less.


Number of MPP trackers

Question:

How do I read the number of MPP trackers?

Answer:

The number of MPPs cannot be read directly. However, if values relating to DC voltage (30771, 30957, 30963) are available in the case of solar irradiation, the number of MPPs can be determined using them.


Modbus crashes after a few days

Question:

Why does Modbus crash after a few days?

Answer:

This is not a crash, but instead a reaction to when more than the maximum of four TCP/Modbus connections is made.

If an attempt is made to do so, the system waits for precisely two hours. Once this time has elapsed and an existing connection has been inactive for that period, this connection is removed from our inverter bridge.

The same applies to all devices making requests to Modbus that establish a Modbus/TCP connection to the inverter but are not removed properly under fault conditions, for example.

Because we do not have any appropriate criteria for this, the inverter or the data module installed in the inverter as a TCP server cannot actively terminate the connection.


Errors with certain registers at night

Question:

Why do I receive a NaN instead of a value for some registers at night?

Answer:

SMA inverters are controlled by two processors:

a central processing unit (CPU; usually a DSP) for controlling the power electronics and measuring PV and grid variables, and a communications processor (CP; ARM or similar) for the outward-facing interfaces.

The following apply in this respect:

  • The CPU is supplied via the PV voltage and therefore runs only when solar irradiation is available.

  • The CP is supplied via both the PV system and the grid and is therefore active at all times.


If the CPU is not active, “NaN” is shown for registers with CPU data. In most cases, this can be interpreted as “0” for the power fed in, as feeding in does not take place without the CPU.

Below a particular PV voltage (much less than 80 V), it is expected that the CPU supply voltage is no longer stable and that the measured values are therefore no longer sufficiently precise. In this case, “0” is output for some devices instead of the actual measured value. This applies in particular to the measured value for PV voltage. However, this is not relevant to the grid variables, as feeding in no longer takes place below this PV voltage.

In summary, NaN can be interpreted as “0” in practically all relevant cases for the power fed in.


Values are invalid

Question:

Why is the register's current value not displayed and only is -1 or the maximum value showing up?

Answer:

It may be a NaN answer (Not a Number). Check in the device-specific Modbus list whether the requested device has this register address.


Connection problems with a high number of faulty responses

Question:

Why were only 9 requests (polls) out of 270 answered with OK, for example, and how can these connection problems be resolved?

Answer:

Depending on the IP stack used, it may be the case that the responses are not always sent in a package. Some IP stacks fragment responses.

The standard Modbus specification expects the following in such a case:

Before the actual Modbus data, the TCP Modbus response includes a seven-byte header, known as an MBAP header, which includes length information.

With TCP reception of a Modbus response, please check that the number of databytes received matches the length information. This is how a fragmented Modbus response can be recognized and completed with further TCP receive calls.

Source: Modbus Organization, “MODBUS Messaging on TCP/IP Implementation Guide V1.0b”, January 29, 2018

Quelle: Modbus Organization, “MODBUS Messaging on TCP/IP Implementation Guide V1.0b”, 29.01.2018


Modbus provides two answers upon request

Question:

Why are two answers occasionally sent via Modbus upon request?

Answer:

Depending on the IP stack used, it may be the case that the responses are not always sent in a package. Some IP stacks fragment responses.

The standard Modbus specification expects the following in such a case:

Before the actual Modbus data, the TCP Modbus response includes a seven-byte header, known as an MBAP header, which includes length information.

With TCP reception of a Modbus response, please check that the number of databytes received matches the length information. This is how a fragmented Modbus response can be recognized and completed with further TCP receive calls.


The inverter only provides the response with error code 11 via Modbus

Question:

What does error code 11 mean when requesting some Modbus registers?

Answer:

Error code 11 is sent in response when the Modbus request contains a unit ID that is different from the one set for the inverter.

Example:
If the inverter is set to unit ID = 5 and the Modbus request is made for unit ID = 3 (SMA Modbus) or unit ID = 126 (SunSpec Modbus), error code 11 is sent.

If the inverter is set to unit ID = 5, the correct Modbus request would also be for unit ID = 5 (SMA-Modbus) or unit ID = 128 (SunSpec Modbus). The unit ID in the SunSpec Modbus profile for SMA inverters derives from the preset unit ID in the SMA Modbus profile + 123.

Please check the setting of the unit ID on the inverter.


2 SMA Modbus: Registers

The following information is sorted by register number

30797 – grid current of line conductor

Question:

Why do registers 30797, 30799 and 30801 no longer work in the SMA Cluster Controller?

Answer:

The registers referred to represent the line conductor grid current (AC phase currents). There has been a new definition in the SMA Data2+ object model for the AC phase currents. The old objects were unsigned by the data type.

These objects are obsolete, and new signed objects have been defined accordingly. The new SMA Data2+ objects are represented in the SMA Modbus profile on new, separate register addresses. The benefit of this adjustment for SMA and customers is that an additional SunSpec requirement (signed current) can be fulfilled.

The old objects are gradually being replaced by these new objects in every CPU at SMA (e.g., in case of new developments). This means that at the same time there is an effect on the Modbus register addresses. There is currently still some overlap in terms of SMA devices, equipped with a certain communications processor (KP-COM30), that support both old and new addresses. A general switchover is planned in the future for new development projects and forthcoming product lifecycle support products.

Old SMA addresses:

30797 MB_TYPE_U32 /* GridMs.A.phsA */
30799 MB_TYPE_U32 /* GridMs.A.phsB */
30801 MB_TYPE_U32 /* GridMs.A.phsC */

New SMA addresses:

30977 166 MB_TYPE_S32 /* GridMs.A.phsA */
30979 167 MB_TYPE_S32 /* GridMs.A.phsB */
30981 168 MB_TYPE_S32 /* GridMs.A.phsC */

30799 – grid current of line conductor

Question:

Why do registers 30797, 30799 and 30801 no longer work in the SMA Cluster Controller?

Answer:

The registers referred to represent the line conductor grid current (AC phase currents). There has been a new definition in the SMA Data2+ object model for the AC phase currents. The old objects were unsigned by the data type.

These objects are obsolete, and new signed objects have been defined accordingly. The new SMA Data2+ objects are represented in the SMA Modbus profile on new, separate register addresses. The benefit of this adjustment for SMA and customers is that an additional SunSpec requirement (signed current) can be fulfilled.

The old objects are gradually being replaced by these new objects in every CPU at SMA (e.g., in case of new developments). This means that at the same time there is an effect on the Modbus register addresses. There is currently still some overlap in terms of SMA devices, equipped with a certain communications processor (KP-COM30), that support both old and new addresses. A general switchover is planned in the future for new development projects and forthcoming product lifecycle support products.

Old SMA addresses:

30797 MB_TYPE_U32 /* GridMs.A.phsA */
30799 MB_TYPE_U32 /* GridMs.A.phsB */
30801 MB_TYPE_U32 /* GridMs.A.phsC */

New SMA addresses:

30977 166 MB_TYPE_S32 /* GridMs.A.phsA */
30979 167 MB_TYPE_S32 /* GridMs.A.phsB */
30981 168 MB_TYPE_S32 /* GridMs.A.phsC */

30801 – grid current of line conductor

Question:

Why do registers 30797, 30799 and 30801 no longer work in the SMA Cluster Controller?

Answer:

The registers referred to represent the line conductor grid current (AC phase currents). There has been a new definition in the SMA Data2+ object model for the AC phase currents. The old objects were unsigned by the data type.

These objects are obsolete, and new signed objects have been defined accordingly. The new SMA Data2+ objects are represented in the SMA Modbus profile on new, separate register addresses. The benefit of this adjustment for SMA and customers is that an additional SunSpec requirement (signed current) can be fulfilled.

The old objects are gradually being replaced by these new objects in every CPU at SMA (e.g., in case of new developments). This means that at the same time there is an effect on the Modbus register addresses. There is currently still some overlap in terms of SMA devices, equipped with a certain communications processor (KP-COM30), that support both old and new addresses. A general switchover is planned in the future for new development projects and forthcoming product lifecycle support products.

Old SMA addresses:

30797 MB_TYPE_U32 /* GridMs.A.phsA */
30799 MB_TYPE_U32 /* GridMs.A.phsB */
30801 MB_TYPE_U32 /* GridMs.A.phsC */

New SMA addresses:

30977 166 MB_TYPE_S32 /* GridMs.A.phsA */
30979 167 MB_TYPE_S32 /* GridMs.A.phsB */
30981 168 MB_TYPE_S32 /* GridMs.A.phsC */

40016 – Maximum change limit value

Question:

Does the active power set point need to be changed in small or specific increments?

Answer:

If, for example, you want to change the active power set point from 70% to 10%, it is not required to do it in small or specific increments. Just transmit the new value. The inverter accepts this command and generates the curve in both directions.


40016 – Active power set point default setting

Question:

If active power limitation by the system controls is absent and the inverter no longer receives any control commands (e.g., due to an interruption in communication), does it return to a default value?
What is this default value and how long is the timeout?

Answer:

The action that the inverter is to perform in the event of an interruption in communication can be set via Modbus.
Register 41193 is used for the operating mode for absent active power limitation. The time for the timeout, during which the previously defined action is to be performed, must also be set in register 41195. If you have opted for a fallback power, the power level must be set as a % in register 41197.


40155 – MAC address

Question:

Why are multiple registers (40155/40497) available for MAC addresses?

Answer:

SMA register 40155 for the MAC address is incorrect, obsolete and marked as not to be used. Use the newer register, 40497.


40497 – MAC address

Question:

Why are multiple registers (40155/40497) available for MAC addresses?

Answer:

SMA register 40155 for the MAC address is incorrect, obsolete and marked as not to be used. Use the newer register, 40497.


3 SMA SunSpec Modbus: General Information

Cyclical system control

Question:

Which registers may be cyclically written for system control without destroying the device’s flash memory?

Answer:

Please observe the relevant safety information in the documentation (safety information section). Registers for cyclical changes are marked with the addition „Parameters for system control.“


4 SMA SunSpec Modbus: Register

The following information is sorted by register number

40186 – model ID (ID)

Question:

Why is a value of 325 returned instead of the expected ID:101 for a single-phase inverter in the case of the SB nn00TL-21, PKG 2.60 and SB nn00TLST-21, PKG 2.60 inverters?

Answer:

This is an error in SMA mapping that no longer occurs in this way with other inverters. The aim is to eliminate this error in future versions. The value of 325 can be set as equal to 101.


40217 – DC power (DCW), in W*10

Question:

Why is the value not available for the SMA inverters?

Answer:

The DC power is not available as a cumulative value. It must be added up individually in SunSpec model 160 in consideration of the existing MPP-Trackers (see registers 40632 et seq.).


40219 – internal temperature (TmpCab), in °C

Question:

Why is the value not available for the SMA inverters?

Answer:

The internal temperature value is currently available only for certain inverters.


40224 – operating status (St)

Question:

Why is the value not available for the SMA inverters?

Answer:

Register 40224 with information on the operating status was introduced at SMA only in July 2016 for the SB n000TL-US-22 device series. It may be that it cannot be offered in all inverters for this reason.


40353 – choking (WMaxLim_Ena)

(SMA: feed-in management operating mode): activation of active power limitation setpoint

Question:

Why can I not activate the value?

Answer:

This value must be activated within the inverter’s first ten operating hours. After that, an SMA Grid Guard password is required.


Question:

Why can I not deactivate this control element by using the value “0”?

Answer:

Deactivation would not make sense for ensuring faultless operation. The inverter would ideally have to be set to default; however, SunSpec does not allow this setting. SMA therefore does not offer deactivation via SunSpec.


40358 – fixed power factor (OutPFSet_Ena)

(SMA: operating mode of static voltage stability): activation of cos φ setpoint

Question:

Why can I not activate the value?

Answer:

This value must be activated within the inverter’s first ten operating hours. After that, an SMA Grid Guard password is required.


Question:

Why can I not deactivate this control element by using the value “0”?

Answer:

Deactivation would not make sense for ensuring faultless operation. The inverter would ideally have to be set to default; however, SunSpec does not allow this setting. SMA therefore does not offer deactivation via SunSpec.


40366 – control of reactive power limitation percentage (VArPct_Ena)

(SMA: operating mode of static voltage stability): activation of reactive power setpoint

Question:

Why can I not activate the value?

Answer:

This value must be activated within the inverter’s first ten operating hours. After that, an SMA Grid Guard password is required.


Question:

Why can I not deactivate this control element by using the value “0”?

Answer:

Deactivation would not make sense for ensuring faultless operation. The inverter would ideally have to be set to default; however, SunSpec does not allow this setting. SMA therefore does not offer deactivation via SunSpec.


40632 – ID of MPP tracker (ID): 1

Question:

Why is the value not available for the STP nn000TL-10, PKG 2.65 inverters?

Answer:

The register is present in the inverter. For technical reasons with the STP nn000TL-10, this register cannot currently be documented in the device-specific list. There is no reason not to use the register.


40641 – DC input 1 (DCA), in A*10

Question:

Why is the value not available for the STP nn000TL-10, PKG 2.65 inverters?

Answer:

The register is present in the inverter. For technical reasons with the STP nn000TL-10, this register cannot currently be documented in the device-specific list. There is no reason not to use the register.


40642 – DC voltage input 1 (DCV), in V*10

Question:

Why is the value not available for the STP nn000TL-10, PKG 2.65 inverters?

Answer:

The register is present in the inverter. For technical reasons with the STP nn000TL-10, this register cannot currently be documented in the device-specific list. There is no reason not to use the register.


40643 – DC power input 1 (DCW), in W*10

Question:

Why is the value not available for the STP nn000TL-10, PKG 2.65 inverters?

Answer:

The register is present in the inverter. For technical reasons with the STP nn000TL-10, this register cannot currently be documented in the device-specific list. There is no reason not to use the register.


40652 – ID of MPP tracker (ID): 2

Question:

Why is the value not available for the STP nn000TL-10, PKG 2.65 inverters?

Answer:

The register is present in the inverter. For technical reasons with the STP nn000TL-10, this register cannot currently be documented in the device-specific list. There is no reason not to use the register.


40661 – DC input 2 (DCA), in A*10

Question:

Why is the value not available for the STP nn000TL-10, PKG 2.65 inverters?

Answer:

The register is present in the inverter. For technical reasons with the STP nn000TL-10, this register cannot currently be documented in the device-specific list. There is no reason not to use the register.


40662 – DC voltage input 2 (DCV), in V*10

Question:

Why is the value not available for the STP nn000TL-10, PKG 2.65 inverters?

Answer:

The register is present in the inverter. For technical reasons with the STP nn000TL-10, this register cannot currently be documented in the device-specific list. There is no reason not to use the register.


40663 – DC power input 2 (DCW), in W*10

Question:

Why is the value not available for the STP nn000TL-10, PKG 2.65 inverters?

Answer:

The register is present in the inverter. For technical reasons with the STP nn000TL-10, this register cannot currently be documented in the device-specific list. There is no reason not to use the register.


Sunny Island CAN protocol for the communication with an external BMS

developer.sma.de: Regsitter before download