Sunspec Inverters


Sunspec Alliance ( is a trade alliance of more than 100 solar and storage distributed energy industry participants, together pursuing information standards to enable “plug & play” system interoperability. SunSpec standards address operational aspects of solar PV power and energy storage plants on the smart grid—including residential, commercial, and utility-scale systems—thus reducing cost, promoting technology innovation, and accelerating industry growth. This plugin will read data from Sunspec enabled devices.


Inverter and strings data will be collected to the solar table, and will be run every 5 minutes, by default. Strings and combiner data may be sent to the strings table if required (see below). Command argument can be browse, log or discover. Data collected can be any Sunspec Model data offered by the inverter, and as a default is any one of these models: 101, 103, 111, 112, 113, 122, 124, 160, 401, 402, 403, 404. A browse verb will show all data offered by the Sunspec device. A discover verb will show the data that is to be collected. A log verb will collect data and send it to the cloud. Run a discover to determine the data that will be collected. This is very much dependent on the inverter make and model.


Mandatory arguments are as follows

  • endpoint. This is either a serial device like /dev/ttyS0 or an IP or DNS like

  • inverter_addresses. A Sunspec address is in the range 1-247. This can be a hyphenated list like 3-10 or a list like 2,5,7,9, or a combination of the two.

Optional arguments are as follows

  • --required_models. These are the model IDs that will be collected, and will be a comma separated list such as 111,112,401. Model IDS that are able to be collected include;

a.  "Inverter" types collected are Sunspec Models "101, 103, 111, 112, 113". 
b.  "Storage" types collected are Sunspec Model "124". 
c.  "Strings" types collected are Sunspec Model "160". 
d.  "String Combiner" types collected are Sunspec Model "401, 402, 403, 404". 
e.  "Measurement Status" types collected are Sunspec Model "122". 
f.  "AC Meter" types collected are Sunspec Model "203". 
  • --string_combiner_addresses. This is optional, and if defined will INCLUDE only the string combiner addresses. This can be a hyphenated list like 3-10 or a list like 2,5,7,9, or a combination of the two.

  • --serial lock. This is to ensure that only 1 user/application/command can access the device at one time. This is turned on by default.

  • --baud. This is the baud rate when using a serial device. The default is 115200

  • --port. This is an optional parameter used in an Ethernet gateway, and is the TCP port used for the Aurora gateway. Default is 502

  • --attempts. This is an optional parameter, and determines how many times to times to attempt to read an inverter value. Default is 3

  • --delay. This is the delay in seconds between inverter send and receive commands, AND if attempts > 1. Fractions like 0.3 can be used. Default is 0.3

  • --raw. This is used in discovery only, and is used to display the raw Sunspec values.

  • --table_strings. This is optional. If used, it will send the combiner and strings data to the strings table, not the solar table.

  • --rtu_over_tcp. This is for running in RTU over TCP mode. Note for some connections this will take much more time to collect data.

Last updated