Skip to content

SolrenView Cloud Integrations

Matt Magoffin edited this page Nov 6, 2024 · 3 revisions

SolrenView Cloud Integrations

This page descirbes the Cloud Integrations support for SolrenView.

SolrenView Integration service

The SolrenView integration service identifier is s10k.c2c.i9n.solrenview. The following service properties are supported:

Property Description
baseUrl An optional alternate URL to use to access the cloud service

SolrenView Datum Stream services

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

Service Identifier Description
SolrenView s10k.c2c.ds.solrenview Polling datum stream using the SolrenView API.

SolrenView Datum Stream Service

The SolrenView datum stream service identifier is s10k.c2c.ds.solrenview. The following service properties are supported:

Property Description
granularity The resolution of the data to request. One of 1min, 5min, 10min ,15min, 20min, 30min, hourly, daily, monthly, yearly
placeholders An optional Map of placeholder names with asscoiated values, to make available to Datum Stream Mapping Property value references
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 SolrenView site ID to associate with the datum stream

The following Data Filters are supported:

Filter Key Description
siteId A SolrenView site ID value (required)

⚠️ Note the SolrenView service does not offer a top-level Data Value hierarchy discovery option to find a list of available siteId values. You must know the ID of the site you want to use, and provide that as query parameter.

SolrenView Datum Stream source ID mapping

The SolrenView 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 2nd-level identifier. This can be combined with the {siteId} placeholder. SolarNetework will then take the sourceId defined on the Datum Stream and append /X to each device in the site, where X is a number: the offset of the device within the site, starting from 1.

For example, imagine the Data Values method returned the devices 1111111111111 and 2222222222222 for site 1111 like this:

{
  "success": true,
  "data": [
	{
	  "name": "My Solar Site",
	  "identifiers": [
		"1111"
	  ],
	  "metadata": {
		"street": "123 Main Street",
		"l": "Anytown",
		"st": "CT",
		"postalCode": "06825",
		"tz": "-4:00"
	  },
	  "children": [
		{
		  "name": "1111111111111",
		  "identifiers": [
			"1111",
			"1111111111111"
		  ],
		  "children": [
			{
			  "name": "WHL",
			  "reference": "/1111/1111111111111/WHL",
			  "identifiers": [
				"1111",
				"1111111111111",
				"WHL"
			  ]
			},
			{
			  "name": "W",
			  "reference": "/1111/1111111111111/W",
			  "identifiers": [
				"1111",
				"1111111111111",
				"W"
			  ]
			}
		  ]
		},
		{
		  "name": "2222222222222",
		  "identifiers": [
			"1111",
			"2222222222222"
		  ],
		  "children": [
			{
			  "name": "WHL",
			  "reference": "/1111/2222222222222/WHL",
			  "identifiers": [
				"1111",
				"2222222222222",
				"WHL"
			  ]
			},
			{
			  "name": "W",
			  "reference": "/1111/2222222222222/W",
			  "identifiers": [
				"1111",
				"2222222222222",
				"W"
			  ]
			}
		  ]
		}
	  ]
	}
  ]
}

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

Value Reference SolarNetwork Property Property Type
/{siteId}/*/W watts i
/{siteId}/*/WHL wattHours a

Then SolarNetwork would generate 2 datum streams: INV/1 and INV/2, both with watts and wattHours properties.

SolrenView 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/1", "23456":"INV/2"}

or a string like:

"12345=INV/1,23456=INV/2"

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

{
  "enabled": true,
  "name": "SolrenView Example",
  "serviceIdentifier": "s10k.c2c.ds.solrenview",
  "integrationId": 1,
  "schedule": "300",
  "kind": "n",
  "objectId": "123",
  "sourceId": "unused",
  "serviceProperties": {
	"granularity": "5min",
	"siteId": 1111,
	"sourceIdMap": {
	  "1111111111111": "S1/INV/01",
	  "2222222222222": "S1/INV/02",
	}
  }
}

Here the generated datum streams would be S1/INV/01 and S1/INV/02 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