SolrenView Cloud Integrations - SolarNetwork/solarnetwork GitHub Wiki
This page descirbes the Cloud Integrations support for SolrenView.
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 |
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. |
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. |
virtualSourceIds |
A list or comma-delimited list of virtual source IDs. See Virtual datum streams 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 availablesiteIdvalues. You must know the ID of the site you want to use, and provide that as query parameter.
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.
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 or component references 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"Full component references can also be used, for example if the siteId is 1111 the mapping
could be specified like this:
{"/1111/12345":"INV/1", "/1111/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",
}
}
}or alternatively using component references the same configuration would look like:
"siteId": 1111,
"sourceIdMap": {
"/1111/1111111111111": "S1/INV/01",
"/1111/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
sourceIdMapis configured, only the devices explicitly included will be generated into datum streams, and all other devices will be ignored.
This service supports the Cloud Datum Stream import service.