Skip to content

SolarEdge Cloud Integrations

Matt Magoffin edited this page Nov 21, 2024 · 7 revisions

SolarEdge Cloud Integrations

This page descirbes the Cloud Integrations support for SolarEdge.

SolarEdge Integration service

The SolarEdge integration service identifier is s10k.c2c.i9n.solaredge.v1. The following service properties are supported:

Property Description
apiKey The SolarEdge V1 API key
baseUrl An optional alternate URL to use to access the cloud service

SolarEdge Datum Stream services

The SolarEdge integration supports the following Cloud Datum Stream Service implementations:

Service Identifier Description
SolarEdge s10k.c2c.ds.solaredge.v1 Polling datum stream using the SolarEdge API.

SolarEdge Datum Stream Service

The SolarEdge datum stream service identifier is s10k.c2c.ds.solaredge.v1. The following service properties are supported:

Property Description
resolution The resolution of the data to request. One of QUARTER_OF_AN_HOUR (default) or HOURLY
placeholders An optional Map of placeholder names with asscoiated values, to make available to Datum Stream Mapping Property value references
upperCaseSourceId If true and sourceIdMap not configured, then use upper case device type values in the generated source IDs. For example instead of /inv for inverters, /INV would be used.
indexBasedSourceId If true and sourceIdMap not configured, then use site inventory-based component numbers, starting from 1, in the generated source IDs. For example instead of something like /XYZ-123456 for the first inverter, /1 would be used.
sourceIdMap A map or comma-delimited mapping list of component IDs to associated source ID values. See source ID mapping for more information.

The following placeholders are supported on the placeholders service property:

Placeholder Description
siteId A single SolarEdge site ID value to associate with the datum stream

The following Data Filters are supported:

Filter Key Description
siteId A SolarEdge site ID value
deviceType A SolarEdge device type, one of bat, inv, or met for battery, inverter, or meter
componentId A SolarEdge component ID value

SolarEdge Datum Stream source ID mapping

The SolarEdge API returns data for all devices within a site, and as such the Datum Stream Service can generate SolarNetwork datum streams for multiple devices at once, if desired. To do so, the valueReference for a Datum Stream Mapping Property can use a * wildcard for the 3nd-level identifier. This can be combined with the {siteId} placeholder. SolarNetework will then take the sourceId defined on the Datum Stream and append /TYPE/X to each device in the site, where TYPE is a device type identifier like inv or met and X is the component identifier.

Upper case device type identifiers

If the upperCaseSourceId service property is set to true, then the device type identifiers will be changed to upper case, like INV or MET in the generated source IDs.

Component indexes instead of identifiers

If the indexBasedSourceId service property is set to true, then the position of the component within its device type in the site inventory will be used in the generated source IDs instead of the component identifier. The positions start at 1, like /inv/1, /inv/2, and so on.

Source ID mapping example

Imagine the Data Values method returned an inverter 11111111 and meter Production for site 12345 like this:

{
  "success": true,
  "data": [
    {
      "name": "Inverters",
      "identifiers": [
        "12345",
        "inv"
      ],
      "children": [
        {
          "name": "Inverter 1",
          "identifiers": [
            "12345",
            "inv",
            "11111111"
          ],
          "metadata": {
            "serial": "11111111",
            "manufacturer": "SolarEdge",
            "model": "SE7600A-USS20NHY2",
            "firmwareVersion": "DSP1: 1.210.1623, DSP2: 1.210.1623, CPU: 3.2724.0"
          }
        }
      ]
    },
    {
      "name": "Meters",
      "identifiers": [
        "12345",
        "met"
      ],
      "children": [
        {
          "name": "Production Meter",
          "identifiers": [
            "12345",
            "met",
            "Production"
          ],
          "metadata": {
            "serial": "22222222",
            "manufacturer": "SolarEdge",
            "model": "SE-RGMTR-1D-240C-A",
            "connectedTo": "Inverter 1",
            "connectedToSerial": "11111111",
            "firmwareVersion": "62"
          }
        }
      ]
    }
  ]
}

Assuming your Datum Stream was configured with a sourceId of S01, you could configure mapping properties like this:

Value Reference SolarNetwork Property Property Type
/{siteId}/inv/*/W watts i
/{siteId}/inv/*/TotWhExp wattHours a
/{siteId}/met/*/W watts i
/{siteId}/met/*/TotWh wattHours a

Then SolarNetwork would generate 2 datum streams, both with watts and wattHours properties, according to this table:

upperCaseSourceId indexBasedSourceId Inverter Source ID Meter Source ID
false false S01/inv/11111111 S01/met/Production
true false S01/INV/11111111 S01/MET/Production
false true S01/inv/1 S01/met/1
true true S01/INV/1 S01/MET/1

SolarEdge Datum Stream explicit source ID mapping

You can also define an explicit mapping of components to source IDs with a sourceIdMap service property on a Datum Stream. This can be specified as a map or comma-delimited mapping list of component IDs to associated source ID values. For example in JSON, the sourceIdMap service property could be specified as an object like:

{"/12345/inv/11111111":"S1/INV/01", "/12345/met/Production":"S1/MET/01"}

or a string like:

"/12345/inv/11111111=S1/INV/01, /12345/met/Production=S1/MET/01"

A complete example of the Datum Stream could look like this:

{
  "enabled": true,
  "name": "SolarEdge Example",
  "serviceIdentifier": "s10k.c2c.ds.solaredge.v1",
  "integrationId": 1,
  "schedule": "900",
  "kind": "n",
  "objectId": "123",
  "sourceId": "unused",
  "serviceProperties": {
	"resolution": "QUARTER_OF_AN_HOUR",
	"siteId": 12345,
	"sourceIdMap": {
	  "/12345/inv/11111111": "S1/INV/01",
	  "/12345/met/Production": "S1/MET/01",
	}
  }
}

Here the generated datum streams would be S1/INV/01 and S1/MET/01 because of the sourceIdMap setting. The unused sourceId setting would not be used.

☝️ When sourceIdMap is configured, only the devices explicitly included will be generated into datum streams, and all other devices will be ignored.

Datum Import support

This service supports the Cloud Datum Stream import service.

Clone this wiki locally