2.2.2 How to start with Fronius Solar.web Query API.................................................................................... 7
2.2.3 Data plans and pricing.......................................................................................................................... 8
3General Information ......................................................................................................................... 10
5.4.1 Aggrdata: Aggregated energy data for a PV system .......................................................................... 51
5.4.2 Aggrdata: Aggregated energy data for a device................................................................................. 59
5.5Historical data calls ............................................................................................................................ 64
5.5.1 Histdata: Historical data for a PV system........................................................................................... 64
5.5.2 Histdata: Historical data for a device.................................................................................................. 68
5.6Realtime data calls ............................................................................................................................. 77
5.6.1 Flowdata: Realtime power flow data of a PV system ......................................................................... 77
5.6.2 Flowdata: Realtime power flow data of a device................................................................................ 80
5.7Weather data calls.............................................................................................................................. 83
6.1Response and error codes ............................................................................................................... 101
6.1.1 HTML error codes............................................................................................................................. 101
6.5Best practices and how-tos .............................................................................................................. 123
6.5.1 Use filters for channels..................................................................................................................... 123
6.5.2 Determine power values from energy values from historical data ................................................... 123
6.5.3 Determine PV Energy and Load Energy .......................................................................................... 123
6.5.4 Determine if new systems were added to account........................................................................... 123
6.5.5 Grant permissions in Solar.web........................................................................................................ 124
Page 6
Solar.web Query API Specification
6/125
1 VERSION HISTORY
VersionModifiedDescription
49.0Oct 12, 2022Updated sections Metadata calls, Aggregation calls, Historical data
48.0Dec 09, 2021Added notes to GenerateJwt call.
/
calls, Realtime data calls, System messages calls:
/
Added Wattpilot data.
/
Updated some example responses.
/
Minor corrections in section Weather data calls.
/
Updated General information section.
/
Updated Supporting UIs section.
/
Updated channel list:
/
Added Wattpilot data
/
Removed reference to outdated Aggregation calls
/
/
Added status code information for maintenance windows.
/
Updated device metadata:
/
Provided lists for Smart Meter locations and categories.
/
Provided list for sensor types.
/
Updated device metadata:
/
Added missing datalogger IDs.
/
Improved examples, e.g. a GEN24 PV system.
/
Added revoke JWT call.
/
Updated metadata calls with meteo filter.
/
Clarifications in error tables.
/
Removed "PowerBattDischarge" channel from channel list, and
updated description of "PowerBattCharge".
/
Clarified positive/negative values for power flow data.
/
Clarified 3301 error code for historical data.
/
Added datalogger and Ohmpilot examples to device metadata.
/
Removed Fronius SSO login method.
47.0Apr 21, 2021Updated camelCase notation in examples for system messages.
46.0Apr 02, 2021Changed supported channel information for aggregated and historical
45.0Feb 02, 2021Version history added.
/
/
data requests.
/
Updated Solar.web screenshots, error code lists and channel list.
/
/
Added additional information about Solar.web Premium to chapter
"User impersonation".
/
Updated chapter "Determine power values from energy values" in
Appendix.
Page 7
Solar.web Query API Specification
7/125
2 INTRODUCTION
2.1 About Fronius Solar.web Query API
Fronius Solar.web
The Fronius Solar.web online portal allows users to easily and conveniently monitor, analyze and compare
their photovoltaic systems by visualizing energy flows and displaying PV (photovoltaic) yields. Intelligent
analysis functions ensure that yield losses are reliably avoided.
Fronius Solar.web Query API
The Solar.web Query Application Programming Interface (SWQAPI) is an application-to-application interface
for accessing the raw data of PV systems stored on Solar.web servers. Two applications (client requesting
data and Solar.web delivering data) are interacting via API to each other without any user intervention, so
that the client application can e.g. display information to end users or do detailed analysis of the data.
2.2 Usage of the Fronius Solar.web Query API
2.2.1 Target audience
SWQAPI is intended to be used by customers who want to have their own visualization of their PV systems
or integrate the data into their existing applications.
For example, a utility which, next to its core business (electricity supply), offers PV systems to its customers,
most likely already provides an online portal or an app where customers can check their electricity
consumption. The utility might want to extend the functionality of the portal and also show the data of the
then visualize it for its customers in its portal.
Another example would be an O&M (operation and monitoring) company which offers extensive monitoring
solutions to their customers. Often an O&M company supports PV systems from different vendors and does
not want to use multiple monitoring portals. By fetching the PV data from Solar.web via API the O&M
company can easily integrate the data in its monitoring solution.
2.2.2 How to start with Fronius Solar.web Query API
Trial access
A Fronius Sales Representative can enable the trial access for interested customers which contains the
same PV systems that are available in the Solar.web demo portal. Using the trial keys, interested customers
can use the Swagger UI to test the SWQAPI. In that case an interested customer does not need to have his/
After completing the registration, please make yourself familiar with the key management. You need to create
atleastonekeyintheSolar.webusersettings,whichyoucanthenuseprogrammatically.Werecommend
getting started by using the Swagger UI (https://api.solarweb.com/swqapi/index.html) and test a few calls
first, e.g. by enumerating PV systems and showing their metadata (unique ID, name of system, address,
etc). Once you are more familiar with the SWQAPI, have a look at the energy flows which show the current
status of PV systems. Fronius also recommends comparingtheAPIresultswithinformationanddiagrams
you see in the Solar.web UI.
Note: If you don't see any PV systems in your account at all, you likely need to add PV systems to your
account either by registering a new PV system in Solar.web for this account or by adding guest or supervisor
permission for this account to an already existing PV system. Guest permissions are sufficient to see most of
the data. However, if you want to see service messages for a certain PV system you need supervisor
permissiontoviewthem.
From there, continue with exploration. If you want to show power curves for the last few days, have a look at
the historical data which gives you 5 min granularity to draw production and consumption diagrams. If you
want to go further into the past, use the aggregation method which has daily, monthly or annual energy data
available for you.
beta.solarweb.com/). It works like the Production environment, i.e. uses the same API keys to access the
same PV systems, so you can test your applications against it.
2.2.3 Data plans and pricing
Trial access is free but there are costs for unlimited access. The costs depend on the number of queried data
points per month. Below is a list showing how the end points and data points are billed.
Response to the following calls are not billed:
/
Release information
/
PV system information
/
Count of systems
/
List of system IDs
/
Count of devices
/
List of device IDs
Each response to the following calls counts as just one data point:
/
PV system information
/
Detailed information about systems
/
Detailed information about devices
/
Power flow data
/
Current weather data
The responses for the following calls count as multiple data points:
Of course, those API keys are limited to the user's permissions in Solar.web.
API keys have the following attributes:
Access key IDA unique ID for the API key, e.g.
"FKIAFEF58CFEFA94486F9C804CF6077A01AB". Access keys are 36
characters long and start with the "FKIA" prefix.
Access key valueA secret value (GUID), e.g. "47c076bc-23e5-4949-37a6-4bcfcf8d21d6", which
you need to know for authorization of API calls.
Please note: When you create a key, please save it to a secure key store.
Fronius does not have means to recover a lost key. If you lose a key, you need
to recreate a new one.
Active statusA key can be active or passive, and you can toggle its status. Active keys can
be used, passive keys cannot be unless you toggle them.
Expiry dateYou can set a validity period for a key, e.g. if you want to enforce key
renewals.
By default, new keys do not have an expiry date; they can be used as long as
you do not delete them, or set an expiry date and the expiry date is not yet
reached. Once you define an expiry date, you cannot delete the expiry date
any longer nor extend the expiry date into the future.
Last used dateThis attribute indicates the time and date when the key was last used for an
API call. This way you can identify unused keys and delete or deactivate them
for security reasons.
API calls expect to receive access key ID and access key value data in the HTTP header.
Examples:
Page 11
Solar.web Query API Specification
11/125
CURL example
curl -X GET "https://api.solarweb.com/swqapi/pvsystems" -H "accept: application/json"
There are situations for applications which require the applications to seePVsystemsincontextofanother
user,e.g.aserviceprovidermightwanttoshowandanalyzethedataoftheircustomers.Forsuchusecases
SWQAPI supports impersonation using JWT tokens in addition to API keys.
Solar.web Premium
Please note that access to Solar.web Premium features through the API is only possible if the
impersonated user owns a Solar.web Premium membership.
3.2.1 JWT token attributes
JWT token
value
JWT expiry
date
Refresh
token
A long string, identifying the customer and providing access to him, for example:
An expiry time (UTC time) for the JWT; a Fronius JWT is valid for exactly one hour and
needs to be refreshed periodically.
Note: A JWT stays valid even if the customer changes his password (for a maximum of
one hour).
A token which can be used to refresh a JWT.
3.2.2 Creating a JWT and using it in a SWQAPI call
You can pass another user's Fronius Solar.web user ID and password, and you receive a JWT and a refresh
token. Please be careful about the user's password and protect it against leaking.
Page 12
Solar.web Query API Specification
12/125
When you call SWQAPI, you need to pass the JWT in addition to your API key credentials. It is not possible
to call without the API key credentials.
Example with Postman how to create a JWT:
Inthefollowingexampleweseethetokenvaluesreturnedinthebody. You need the refreshToken and the
jwtToken. Copy the jwtToken value.
In the Authorization section select "Bearer" and then paste the jwtToken value from previous call.
Example JSON return object with pagination information (see the "links" object type)
{
"pvSystemIds": [
...
Each PV system has its own unique ID (PV system ID) which is a mandatory parameter for many API
endpoints. A PV system ID can be determined by using the /pvsystems API endpoints that provide
// get all historical temperature values (Temp1 channel) using different timezones in
the URL
// all examples below are for October 10th, 2018, from 11am to 12am zulu time
GET api.solarweb.com/swqapi/pvsystems/20bb600e-019b-4e03-9df3-a0a900cda689/histdata?
from=2018-10-10T11:00:00Z&to=2018-10-11T12:00:00Z?channel=Temp1
// zulu time notation
GET api.solarweb.com/swqapi/pvsystems/20bb600e-019b-4e03-9df3-a0a900cda689/histdata?
from=20181010T120000%2b01:00&to=20181011T130000&2b01:00?channel=Temp1
// CET (+01:00 offset to zulu time), compact encoding
// please note that the "+" in the offset needs to be encoded with "%2b"
GET api.solarweb.com/swqapi/pvsystems/20bb600e-019b-4e03-9df3-a0a900cda689/histdata?
from=2018-10-10T06:00:00-05:00&to=2018-10-11T07:00:00-05:00?channel=Temp1
Please note that, for better readability, we do not show the paging objects in the command
reference.
3.5 Date and time formats
SWQAPI supports extended UTC time formats (ISO 8601).
The principle format is either "yyyyMMddThhmmssTZD" or "yyyy-MM-ddThh:mm:ssTZD" - where TZD is a
timezone designator (either "Z" or an offset).
http encoding speciality
If you are using a positive timezone offset, please use "%2b" instead of "+". Negative timezone
offsets are not affected by the http encoding.
Examples:
/
2018-10-11T13:00:00%2b01:00 instead of 2018-10-11T13:00:00+01:00
/
2018-10-11T13:00:00-01:00
3.5.1 Use time in the calling URL
Page 17
Solar.web Query API Specification
17/125
// EST (-05:00 offset to zulu time)
Additionally, you can also use local time of the PV system.
Example URIs, all showing the same time request
// get all historical temperature values (Temp1 channel) for October 10th, 2018, from
11am to 12am local time of the PV system
GET api.solarweb.com/swqapi/pvsystems/20bb600e-019b-4e03-9df3-a0a900cda689/histdata?
from=2018-10-10T11:00:00&to=2018-10-11T12:00:00?channel=Temp1
// local time, depending on where PV system 20bb600e-019b-4e03-9df3-a0a900cda689 is
located
Example responses, all showing the same time
// data for August 31st, 2019; 12am zulu time
// timezone=zulu
"logDateTime": "2019-07-31T12:00:00Z"
// zulu time notation
// timezone=local variations, depending on the timezone location of the queried PV
system
"logDateTime": "2019-07-31T12:00:00+00:00"
// assuming PV system is in zulu time (without offset time)
"logDateTime": "2019-07-31T13:00:00+01:00"
// assuming PV system is in CET (+01:00 offset to zulu time)
"logDateTime": "2019-07-31T07:00:00-05:00"
// assuming PV system is in EST (-05:00 offset to zulu time)
3.5.2 Time in response objects
When returning data, SWQAPI will either return zulu or local UTC time, extended encoding.
By default SWQAPI delivers zulu time, but you can use the "timezone" parameter to request conversion to
the local time zone where the PV system is located. Local time (i.e. without timezone offset) is not returned,
but when you ignore the offset, you have the system's local time.
Page 18
Solar.web Query API Specification
18/125
4 SUPPORTING UIS
4.1 API key management in Solar.web
In Solar.web you can manage the API keys which are required for working with SWQAPI.
For managing API keys in Solar.web, go to User Settings and then got to the REST API tab. This tab has
two views, one of them is Key management.Hereyoucanviewandmanageyourkeys.Pleasenotethat
the time information (creation date, expiry date, and last used date) is given in UTC zulu time.
Actions:
/
If you want to create a new key, please press the CREATE NEW KEY button. This will create a new
key, which will be downloaded in a JSON file containing the API key ID and its secret value.
IfyouwanttosetanexpirydatepleasepressthethreedotsintheActionmenu column and then
selectEdit.
Please note: Expiry dates cannot be removed orchangedtoalaterdateoncetheyareset.Ifakeyis
expired, you can no longer edit it.
/
To deactivate a key, toggle its status in the Status column.
/
Only expired or inactive keys can be deleted. To do so, please press the three dots in the Action menucolumnandthenselectDelete.
Recommendations:
/
If you have multiple developers, create separate keys for each developer. Create another key for
automated tested, staging and production systems.
/
If a key is compromised, especially keys for production, please renew the key:
/
Create a new key.
/
Set an expiry date for the old key or deactivate the old key as soon as the new one is deployed.
/
If you want to implement periodic key renewals for security reasons:
/
Create a new key.
Page 19
Solar.web Query API Specification
19/125
/
If you are using the Swagger UI (https://api.solarweb.com/swqapi/index.html), you need to enter the API keys
only once.
Press the Authorize button in
Swagger UI.
Enter both the accesskey ID
and its value. Press the
Authorize button in both
sections.
Set an expiry date for the old key which gives you enough overlapping time to push the new
key to all relevant systems.
4.2 Working with API keys in Swagger UI
Page 20
Solar.web Query API Specification
20/125
Finally, close the dialog using
the x button on the top right
corner.
Result: The Authorize button
shows a closed lock now.
Swagger UI does not verify the keys
The closed lock in the Authorize button does not mean that your
access keys are correct. They are verified directly by the APIs you
call.
Page 21
Solar.web Query API Specification
21/125
Impersonation / Bearer key:
If you want to use the
impersonation feature you
need to get an JWT for the
user you want to impersonate
(by using the /jwt endpoint
first, see section
Impersonate: Receive a JWT
using the Fronius login).
Press the Authorize button in
Swagger UI again. Under
Bearer enter the JWT and
press Authorize. Close the
dialog using the x button on
the top right corner.
Please note that authentication is reset if a page refresh is done.
Page 22
Solar.web Query API Specification
22/125
5 API REFERENCE
5.1 User impersonation calls
5.1.1 Impersonate: Receive a JWT using userId and password
Use cases for web developers
/
I want to login to Fronius using a customer's user IDandpassword.(E.g.thecustomerentersthe
Fronius login credentials on my website and I am able to store it.)
Security notes
Storing customer passwords needs to be carefully designed, because passwords can easily
leak. Please make use of operating system capabilities, such as iCloud Keychain, Android
Keystore, Credential Manager in Windows, etc.
Additionally, please consider GDPR and other PII regulation.
/
I used the former "ThirdParty API" (predecessor of SWQAPI) and used the customer's credentials to
login. When I migrate from ThirdParty API to SWQAPI I can reuse the credentials, thus the customer
does not notice a change.
Developer best practice
Please use JWT tokens carefully:
/
A JWT token is valid for one hour.
/
After this hour is passed you will get a 401 http error code. Please use the refresh
mechanism to get an updated JWT token instead of creating a new one.
/
Only if the refresh call gives you an error again, you should generate a new JWT token using
this call.
/
Note: Refresh tokens are valid for 40 days.
Make use of the scope parameter!
/
Use a unique scope for you application.
/
If you implement an application for mobile devices, a good idea is to use UUIDs to prevent
that one login on device A logs out users on device B.
Methods
MethodEnd point and
objects
POSTswqapi/iam/jwtGenerateJwtGenerates a JWT and refresh token pair
Event nameDescription
by passing credentials.
Page 23
Solar.web Query API Specification
23/125
Filters and parameters
POST api.solarweb.com/swqapi/iam/jwt?scope=my-app.23423af9afe0af0
// generates a new JWT for impersonation in a specific scope
Please use refresh tokens instead of logging in again and again
/
A refresh token is valid for 40 days and allows you to create new JWT tokens without having
the user to provide the login credentials.
/
Creating new login tokens are costly. Therefore each refresh saves computing power and
storage memory on the Fronius side, thus also login performance.
Notes:
/
After a refresh, you get a new refresh token. The old refresh token gets invalidated.
Methods
MethodEnd point and
Event nameDescription
objects
PATCHswqapi/iam/jwt/
RefreshJwtRefreshes a JWT and refresh token pair.
{refresh-token}
Please note that the old refresh
token gets invalidated by this
call.
Page 25
Solar.web Query API Specification
25/125
Filters and parameters
PATCH api.solarweb.com/swqapi/iam/jwt/98a47454-b650-34b8-9a8c-27adae447ab71?scope=myapp.23423af9afe0af0
// refreshes an existing token and generates a new one, uses the original scope
I want to revoke a refresh token, e.g. when the user logs out from my app
Note: Technically it is not possible to revoke the JWT token, too, but it expires automatically within one hour.
If you want to "revoke" a JWT token, please discard it instead.
Methods
MethodEnd point and objectsEvent nameDescription
DELETEswqapi/iam/jwt/{refresh-token}RevokeJwtRevokes a JWT refresh token
Filters and parameters
n/a
Example calls
Response objects
n/a
Example responses
n/a
Page 27
Solar.web Query API Specification
27/125
5.2 Generic information calls
GET api.solarweb.com/swqapi/info/release
// retrieves the API's full version number and release date
I want to get the meta information of all or specific PV systems: such as name, location, peak power,
picture, activation date etc.
Methods
MethodEnd point and
objects
GETswqapi/pvsystemsGetSystemMetaDataListReturns a list of all PV systems for the
GETswqapi/
pvsystems/{pvsystem-id}
Filters and parameters
FilterDescription
?offset=<offset>&limit=<limit>Supports pagination, returns pv-systems from a starting
Event nameDescription
user. The list is a JSON array containing
PV systems and their metadata.
Parameters allow pagination ("offset" &
"limit"), or filtering for specific PV system
attributes ("type"; for example, if
"type"="ohmpilot" you only get PV
systems which have an Ohmpilot).
GetSystemMetaDataReturns metadata of the PV system with
the given ID, including metadata for the
system's devices.
Filters do not apply.
<offset> and returning not more than <limit> items.
?type=<devicetype>Type filter - one or more (comma separated, no spaces)
types of devices that a PV system should contain:
/
inverter
/
sensor
/
battery
/
smartmeter
Page 31
Solar.web Query API Specification
31/125
FilterDescription
GET api.solarweb.com/swqapi/pvsystems
// retrieves metadata of all PV systems
GET api.solarweb.com/swqapi/pvsystems?offset=200&limit=50
// returns metadata of 50 PV systems, starting at offset 200
GET api.solarweb.com/swqapi/pvsystems?type=battery
// returns metadata of all PV systems which have a battery (caution: does not
retrieve the battery device info)
GET api.solarweb.com/swqapi/pvsystems/20bb600e-019b-4e03-9df3-a0a900cda689
// returns metadata of a specific PV system
GET api.solarweb.com/swqapi/pvsystems?meteo=pro
// returns metadata of all PV systems which have a "pro" weather information
available (which is normally only one PV system in the account)
/
ohmpilot
/
datalogger
/
evcharger
?meteo=<level>Filters for systems with extended (meteo=pro) weather data
or with just basic (meteo=light) weather data.
Example calls
Response objects
JSON object answer construction:
TypeObjects
PV systemslastImport (String, UTC timestamp)
/
/
installationDate (String, UTC timestamp)
/
pvSystemId (String)
/
name (String)
/
address (Object)
/
street (String)
/
zipCode (String)
/
city (String)
/
state (String)
/
country (String)
/
timezone (String, Olson format)
/
pictureURL (String, URL)
/
peakPower (Number)
/
meteoData (String)
Page 32
Solar.web Query API Specification
32/125
Example responses
Example for a single PV system
{
"pvSystemId": "04d81b82-7861-4e36-8e7f-41036ce711a4",
"name": "Fronius AT Wels Reception Hybrid",
"address": {
"country": "AT",
"zipCode": "4600",
"street": "Günter Fronius Straße 1",
"city": "Thalheim bei Wels",
"state": "OÖ"
},
"pictureURL": "https://www.solarweb.com/Image/Show?
through ownership or guest/supervisor permission). The IDs are required for other calls to query data from
those systems.
Use cases for web developers
/
I want to enumerate all PV systems which I can access. With the IDs I can scan these systems in
subsequent calls.
/
I want to know how many devices I need to show in the UI, so I can prepare memory and pagination.
Page 36
Solar.web Query API Specification
36/125
Methods
GET api.solarweb.com/swqapi/pvsystems-list
// returns all PV system IDs
GET api.solarweb.com/swqapi/pvsystems-list?offset=200&limit=50
// returns PV system IDs, starting at offset 200 and returning a page of 50 items
GET api.solarweb.com/swqapi/pvsystems-list?type=battery
// returns PV system IDs which have a battery
GET api.solarweb.com/swqapi/pvsystems-list?meteo=light
// returns PV system IDs which have "light" weather information available
MethodEnd point and
Event nameDescription
objects
GETswqapi/
pvsystems-list
GetSystemIdListReturns the IDs of PV systems.
Parameters allow pagination ("offset" &
"limit"), or filtering for specific PV system
attributes ("type"; for example, if
"type"="battery" you only get PV
systems which have a battery).
Filters and parameters
FilterDescription
?offset=<offset>&limit=<limit>Supports pagination, returns pv-systems from a starting
<offset> and returning not more than <limit> items. The limit
parameter is limited to 1000. If limit is not set, 50 is being
used.
?type=<devicetype>Type filter - one or more (comma separated, no spaces) types
of devices whose messages should be shown:
/
inverter
/
sensor
/
battery
/
smartmeter
/
ohmpilot
/
datalogger
/
evcharger
?meteo=<level>Filters for systems with extended (meteo=pro) weather data or
I want to get the meta information of all or specific devices a specific PV systems has: such as device
types, capabilities, device detail information, attached sensors etc.
n/apvSystemIds (Array of Strings)
Example responses
/
totalItemsCount does not count items within this response, it counts overall available number of systems.
5.3.4 Metadata: Get device information
Page 38
Solar.web Query API Specification
38/125
/
/
/
/
/
/
/
Methods
MethodEnd point and
objects
Event nameDescription
GETswqapi/
pvsystems/{pvsystem-id}/devices
GetDeviceMetaDataListReturns a list of PV components for a
given PV system.ThelistisaJSON
array containing devices and their
metadata.
Filters allow pagination and filtering of
device types.
GETswqapi/
pvsystems/{pvsystem-id}/
devices/{device-id}
GetDeviceMetaDataReturns the metadata information of the
requested PV device of a PV system
with the given ID.
(String)
isActive (Boolean)
activationDate (String,
UTC timestamp)
New inverter types can
have more than two
strings. If there are more
than two strings, they
will be added to the
peakPower object as
"dcN" (where N is the
number of the string).
AC battery
External
Generation meter
Grid
Load meter
Sub meter
AC storage unit
Building services
Climate control / cooling systems
Combined heat and power station (CHP)
Electric vehicle
Heat pump
LGC Meter
Other
Other heating system
Photovoltaic inverter
Photovoltaic inverter + storage unit
Primary Meter
Pumps
White goods
Wind turbine
Sensor types:
sensorType
Energy
Insolation
Irradiation
Precipitation
Temperature
Velocity
5.3.5 Metadata: Count devices
Use cases for web developers
/
I want to know how many devices a specific PV systems has. (Needed for subsequent enumeration
and detail calls.)
/
I want to know how many devices I need to show in the UI, so I can prepare memory and pagination.
Page 48
Solar.web Query API Specification
48/125
Methods
GET api.solarweb.com/swqapi/pvsystems/20bb600e-019b-4e03-9df3-a0a900cda689/devicescount
// counts all devices in the given PV system
GET api.solarweb.com/swqapi/pvsystems/20bb600e-019b-4e03-9df3-a0a900cda689/devicescount?type=smartmeter,ohmpilot
// counts all Smart Meter and Ohmpilot devices in the given PV system
MethodEnd point and
objects
GETswqapi/
pvsystems/{pvsystem-id}/
devices-count
Filters and parameters
FilterDescription
?type=<devicetype>Type filter - one or more (comma separated, no spaces) types
Event nameDescription
GetDeviceCountReturns the count of all devices for a
given PV system.
of devices whose messages should be shown:
/
inverter
/
sensor
/
battery
/
smartmeter
/
ohmpilot
/
datalogger
/
evcharger
?isActive=<state>Filters for active (isActive=true) or inactive (isActive=false)
devices only.
Example calls
Response objects
JSON object answer construction:
TypeObjects
n/acount (Number)
/
Page 49
Solar.web Query API Specification
49/125
Example responses
{
"count": 4
}
GET api.solarweb.com/swqapi/pvsystems/20bb600e-019b-4e03-9df3-a0a900cda689/deviceslist
// returns the device IDs of all devices in the given PV system
5.3.6 Metadata: Enumerate device IDs
Use cases for web developers
/
I want to enumerate all devices a specific PV systems has. With the IDs I can scan these devices in
subsequent calls.
Methods
MethodEnd point and
Event nameDescription
objects
GETswqapi/
pvsystems/{pvsystem-id}/
GetDeviceIdListReturns the IDs of devices in a PV
system. Filters allow pagination and
filtering of device types.
devices-list
Filters and parameters
FilterDescription
?offset=<offset>&limit=<limit>Supports pagination, returns devices from a starting
<offset> and returning not more than <limit> items.
?type=<devicetype>Type filter - one or more (comma separated, no spaces)
types of devices whose messages should be shown:
/
inverter
/
sensor
/
battery
/
smartmeter
/
ohmpilot
/
datalogger
/
evcharger
?isActive=<state>Filters for active (isActive=true) or inactive (isActive=false)
devices only.
Example calls
Page 50
Solar.web Query API Specification
50/125
GET api.solarweb.com/swqapi/pvsystems/20bb600e-019b-4e03-9df3-a0a900cda689/deviceslist?type=inverter,sensor,battery
// returns the device IDs of all inverters, sensors and batteries in the given PV
system
GET api.solarweb.com/swqapi/pvsystems/20bb600e-019b-4e03-9df3-a0a900cda689/deviceslist?offset=0&limit=5
// returns the device IDs of the first five devices in the given PV system
From these you can create diagrams like the following one:
5.4.1 Aggrdata: Aggregated energy data for a PV system
Use cases for web developers
/
I want to show total/lifetime aggregated energy values to an end user.
/
I want to show annually, monthly or daily aggregated energy values to an end user.
/
I want to show aggregated energy values to an end user, but for custom time periods (e.g. a week or
last 6 months).
Methods
MethodEnd point and objectsEvent nameDescription
GETswqapi/pvsystems/{pv-
system-id}/aggrdata
GetSystemAggregate
dData
Gets aggregated data for a given PV
system for a custom period of time.
The custom period can either span
years, months, or days.
The data is returned as a JSON
object.
Filters allow limiting to specific PV
system energy values.
Page 52
Solar.web Query API Specification
52/125
Filters and parameters
GET api.solarweb.com/swqapi/pv-systems/20bb600e-019b-4e03-9df3-a0a900cda689/aggrdata?
period=total
// get aggregated total energy flow values of this system for total lifetime
FilterDescription
?channel=<channel>One or more of the detail data channels.
Channel filters can be concatenated using commas. E.g.: ?
channel=EnergyFeedIn,EnergyPurchased
?from=<start>&to=<end>Limits the time series for the query.
Period types in <from> and <to> need to match (i.e. both
need to be either years, months, or days).
"total" delivers total values over whole system
lifetime
/
"years" delivers values for each year of system
lifetime
/
yyyy delivers all months of requested year
/
yyyy-MM delivers all days of requested month
Note: If <period> parameter is used, then <from>, <to> and
<duration> parameters are not allowed, and vice versa.
?offset=<offset>&limit=<limit>Supports pagination, returns items from a starting <offset>
and returning not more than <limit> items (items = objects in
the "Data" array).
Example calls
Page 53
Solar.web Query API Specification
53/125
GET api.solarweb.com/swqapi/pv-systems/20bb600e-019b-4e03-9df3-a0a900cda689/aggrdata?
period=years
// get aggregated annual energy flow values of this system for all years since the
installation
GET api.solarweb.com/swqapi/pv-systems/20bb600e-019b-4e03-9df3-a0a900cda689/aggrdata?
from=2017&duration=1// get the aggregated annual energy flow values of this system for 2017
GET api.solarweb.com/swqapi/pv-systems/20bb600e-019b-4e03-9df3-a0a900cda689/aggrdata?
period=2017// get the aggregated monthly energy flow values of this system for 2017
GET api.solarweb.com/swqapi/pv-systems/20bb600e-019b-4e03-9df3-a0a900cda689/aggrdata?
from=2017-12&duration=1// get the aggregated monthly energy flow values of this system for December 2017
GET api.solarweb.com/swqapi/pv-systems/20bb600e-019b-4e03-9df3-a0a900cda689/aggrdata?
period=2017-12// get the aggregated daily energy flow values of this system for December 2017
GET api.solarweb.com/swqapi/pv-systems/20bb600e-019b-4e03-9df3-a0a900cda689/aggrdata?
from=2017-12-01&to=2017-12-31// get the aggregated daily energy flow values of this system for December 2017
(alternative to above)
GET api.solarweb.com/swqapi/pv-systems/20bb600e-019b-4e03-9df3-a0a900cda689/aggrdata?
from=2017-12-01&duration=31// get the aggregated daily energy flow values of this system for December 2017
(alternative to above)
GET api.solarweb.com/swqapi/pv-systems/20bb600e-019b-4e03-9df3-a0a900cda689/aggrdata?
from=2017-12-24&duration=1// get the aggregated daily energy flow values of this system for December 24, 2017
GET api.solarweb.com/swqapi/pv-systems/20bb600e-019b-4e03-9df3-a0a900cda689/aggrdata?
from=2017-12-24&duration=7// get the aggregated daily energy flow values of this system for the week December
24-30, 2017
GET api.solarweb.com/swqapi/pv-systems/20bb600e-019b-4e03-9df3-a0a900cda689/aggrdata?
from=2017-12&duration=1&channel=EnergyFeedIn
// get the EnergyFeedIn value of this system for December 2017
GET api.solarweb.com/swqapi/pv-systems/20bb600e-019b-4e03-9df3-a0a900cda689/aggrdata?
from=2017-12&duration=1&channel=EnergyBattCharge,EnergyBattDischarge
// get the EnergyBattCharge and EnergyBattDischarge values of this system for
December 2017
GET api.solarweb.com/swqapi/pv-systems/20bb600e-019b-4e03-9df3-a0a900cda689/aggrdata?
from=2017-01-01&duration=365&channel=EnergyFeedIn&limit=7// get the EnergyFeedIn values of this system for all days of the year 2017, in
weekly pages
Page 54
Solar.web Query API Specification
54/125
Response objects
JSON object answer construction:
Objects
/
pvSystemID
/
data
/
logDate (String - date information like "yyyy", "yyyy-MM" or "yyyy-MM-dd", or "total")
/
channels (Array)
/
channelName (String)
/
channelType (String)
/
unit (String)
/
value (Number)
Supported value channels
TypeChannelsComment
PV system
energy flow
with Smart
Meter
PV system
output
without
Smart Meter
/
EnergyFeedIn
/
EnergyPurchased
/
EnergySelfConsumption
/
EnergyDirectConsumption
/
EnergyBattCharge
/
EnergyBattDischarge
/
EnergyBattChargeGrid
/
EnergyBattDischargeGrid
/
OhmpilotEnergyUses ChannelType.FromGenToOhmPilot,
/
EnergyEVCCharge
/
EnergyEVCChargeGrid
/
EnergyEVCChargeBatt
/
EnergyOutputOnly if there is no Smart Meter; NULL with
Requires Smart Meter; otherwise NULL
Requires Smart Meter and battery; otherwise
NULL
NOT OhmPilotEnergy!
Requires Smart Meter and Ohmpilot;
otherwise NULL
Requires Smart Meter and Wattpilot;
otherwise NULL
Smart Meter
PV system
totals
PV system
CO2 savings
/
EnergyProductionTotal
/
EnergyConsumptionTotal
/
EnergySelfConsumptionTotal
/
SavingsCO2
/
SavingsTrees
/
SavingsTravelCar
/
SavingsTravelPlane
Requires Smart Meter; otherwise NULL
Page 55
Solar.web Query API Specification
55/125
TypeChannelsComment
Example for retrieving all channels for total lifetime
I want to show an inverter's total/lifetime aggregated energy values to an end user.
I want to show an inverter's annually, monthly or daily aggregated energy values to an end user.
5.4.2 Aggrdata: Aggregated energy data for a device
Page 60
Solar.web Query API Specification
60/125
/
//
/
/
//
/
/
//
/
/
/
I want to show an inverter's aggregated energy values to an end user, but for custom time periods
(e.g. a week or last 6 months).
Methods
MethodEnd point and objectsEvent nameDescription
GETswqapi/pvsystems/{pv-
system-id}/devices/
{device-id}/aggrdata
GetDeviceAggregated
Data
Gets aggregated data for a given
device of a given PV system for a
custom period of time. The custom
period can either span years,
months, or days.
The data is returned as a JSON
object.
Filters and parameters
FilterDescription
?channel=<channel>One or more of the detail data channels.
?from=<start>&to=<end>Limits the time series for the query.
Period types in <from> and <to> need to match (i.e. both
need to be either years, months, or days).
Encoding:
yyyy for years
yyyy-MM or yyyyMM for months
yyyy-MM-dd or yyyyMMdd for days
"total" delivers total values over whole system
lifetime
"years" delivers values for each year of system
lifetime
yyyy delivers all months of requested year
yyyy-MM delivers all days of requested month
Page 61
Solar.web Query API Specification
61/125
FilterDescription
Note: If <period> parameter is used, then <from>, <to> and
<duration> parameters are not allowed, and vice versa.
?offset=<offset>&limit=<limit>Supports pagination, returns items from a starting <offset>
and returning not more than <limit> items (items = objects in
the "Data" array).
Example calls
GET api.solarweb.com/swqapi/pv-systems/20bb600e-019b-4e03-9df3-a0a900cda689/devices/
b582f1b9-95b9-49db-800b-6b042e9938b4/aggrdata?from=2010&to=2015// get aggregated annual energy values of this device for the years 2010 to 2015
GET api.solarweb.com/swqapi/pv-systems/20bb600e-019b-4e03-9df3-a0a900cda689/devices/
b582f1b9-95b9-49db-800b-6b042e9938b4/aggrdata?from=2020-02-24&duration=7// get aggregated daily energy values of this device for the week of February 24th
to March 1st, 2020
GET api.solarweb.com/swqapi/pv-systems/20bb600e-019b-4e03-9df3-a0a900cda689/devices/
b582f1b9-95b9-49db-800b-6b042e9938b4/aggrdata?period=total
// get aggregated energy values of this device for its total lifetime
GET api.solarweb.com/swqapi/pv-systems/20bb600e-019b-4e03-9df3-a0a900cda689/devices/
b582f1b9-95b9-49db-800b-6b042e9938b4/aggrdata?period=years
// get aggregated annual energy values of this device for all years since the
installation
GET api.solarweb.com/swqapi/pv-systems/20bb600e-019b-4e03-9df3-a0a900cda689/devices/
b582f1b9-95b9-49db-800b-6b042e9938b4/aggrdata?from=2017&duration=1// get aggregated annual energy values of this device for the year 2017
GET api.solarweb.com/swqapi/pv-systems/20bb600e-019b-4e03-9df3-a0a900cda689/devices/
b582f1b9-95b9-49db-800b-6b042e9938b4/aggrdata?period=2017// get aggregated monthly energy values of this device for 2017
GET api.solarweb.com/swqapi/pv-systems/20bb600e-019b-4e03-9df3-a0a900cda689/devices/
b582f1b9-95b9-49db-800b-6b042e9938b4/aggrdata?from=2017-12&duration=1// get aggregated monthly energy values of this device for the month December 2017
GET api.solarweb.com/swqapi/pv-systems/20bb600e-019b-4e03-9df3-a0a900cda689/devices/
b582f1b9-95b9-49db-800b-6b042e9938b4/aggrdata?period=2017-12// get aggregated daily energy values of this device for December 2017
GET api.solarweb.com/swqapi/pv-systems/20bb600e-019b-4e03-9df3-a0a900cda689/devices/
b582f1b9-95b9-49db-800b-6b042e9938b4/aggrdata?from=2017-12-01&to=2017-12-31// get aggregated daily energy values of this device for December 2017 (alternative
to above)
GET api.solarweb.com/swqapi/pv-systems/20bb600e-019b-4e03-9df3-a0a900cda689/devices/
b582f1b9-95b9-49db-800b-6b042e9938b4/aggrdata?from=2017-12-01&duration=31
Page 62
Solar.web Query API Specification
62/125
/
/
/
/
/
/
/
/
/
/
/
/
// get aggregated daily energy values of this device for December 2017 (alternative
to above)
GET api.solarweb.com/swqapi/pv-systems/20bb600e-019b-4e03-9df3-a0a900cda689/devices/
b582f1b9-95b9-49db-800b-6b042e9938b4/aggrdata?from=2017-12-24&duration=1// get aggregated daily energy values of this device for the day of December 24,
2017
GET api.solarweb.com/swqapi/pv-systems/20bb600e-019b-4e03-9df3-a0a900cda689/devices/
b582f1b9-95b9-49db-800b-6b042e9938b4/aggrdata?from=2017-12-24&duration=7// get aggregated daily energy values of this device for the week December 24-30,
2017
GET api.solarweb.com/swqapi/pv-systems/20bb600e-019b-4e03-9df3-a0a900cda689/devices/
b582f1b9-95b9-49db-800b-6b042e9938b4/aggrdata?from=2017-12&duration=1// get aggregated energy values of this device for the month of December 2017
Response objects
JSON object answer construction:
Objects
pvSystemID
deviceID
data
logDate (String - date information like "yyyy", "yyyy-MM" or "yyyy-MM-dd", or "total")
channels (Array)
channelName (String)
channelType (String)
unit (String)
value (Number)
Historical data points are data points that are logged at the inverter and transferred to Solar.web at regular
intervals (usually every hour). By default the resolution of these data points is 5 minutes. Please note that
power values are logged as energy values. To calculate power values from energy values (to display curves
asshownbelow)pleaserefertosectionBest practices and how-tos at the end of this document.
With the historical data you can create diagrams like this one:
5.5.1 Histdata: Historical data for a PV system
Use cases for web developers
/
I want to show time series graphs for a complete PV system.
Restrictions
Impersonated basic users can only retrieve information not older than 72 hours - like in Solar.web.
Methods
MethodEnd point and
Event nameDescription
objects
GETswqapi/
pvsystems/{pv-
GetSystemHistoricalDataGets historical data for a given PV
systemandtimerange.Thedata
Page 65
Solar.web Query API Specification
65/125
MethodEnd point and
GET api.solarweb.com/swqapi/pvsystems/20bb600e-019b-4e03-9df3-a0a900cda689/histdata?
from=2018-10-10T00:00:00Z&to=2018-10-11T00:00:00Z
// gets all historical values for 10th of October, 2018, for PV system
objects
Event nameDescription
system-id}/
histdata
Filters and parameters
FilterDescription
?channel=<channel>One of the detail data channels from inverter, sensor, battery,
Smart Meter, Ohmpilot, or general type categories.
?offset=<offset>&limit=<limit>Supports pagination, returns items from a starting <offset>
and returning not more than <limit> items (items = objects in
the "Data" array).
Example calls
GET api.solarweb.com/swqapi/pvsystems/20bb600e-019b-4e03-9df3-a0a900cda689/devices/
d2e61bf2-8dd7-4ba1-8733-d55d738c4679/histdata?from=2018-10-10T00:00:00Z&to=2018-10-11
T00:00:00Z
// gets all historical values for 10th of October, 2018, for given device
GET api.solarweb.com/swqapi/pvsystems/20bb600e-019b-4e03-9df3-a0a900cda689/devices/
d2e61bf2-8dd7-4ba1-8733-d55d738c4679/histdata?
from=20181010T000000Z&to=20181011T000000Z?channel=Temp1
// gets all historical temperature values (Temp1 channel) for the 10th of October,
2018, for given device
Response objects
JSON object answer construction:
Objects
pvSystemId (String)
deviceId (String)
data (Array)
The power flow data points are real time data. The data is updated every few seconds. To make use of the
full potential of the power flow data the PV system is required to have a Fronius Smart Meter installed. With
such a meter Solar.web can determine the directions of the power flows (e.g. to the grid, from the battery,
local: returns time in PV system's local UTC time
(local time + UTC offset)
Example calls
Response objects
JSON object answer construction:
Objects
/
pvSystemId (String)
/
status
/
isOnline (Boolean)
/
battMode (String)
/
data
/
logDateTime (UTC
time)
/
channels (Array)
/
channelName
(String)
/
channelType
(String)
/
unit (String)
/
value (Number,
String)
Supported value channels:
TypeChannelsRemarks
PV systemPowerFeedIn
/
/
PowerLoad
/
PowerBattCharge
/
PowerOhmpilot
/
PowerPV
/
PowerOutput
/
BattSOC
/
RateSelfConsumption
If a Smart Meter is attached, it provides the
values for PowerFeedIn, PowerLoad,
PowerBattCharge, PowerOhmpilot, PowerPV.
PowerOutput will return NULL in this case.
Positive values are going to the inverter,
negative values from the inverter to
somewhere else.
5.6.2 Flowdata: Realtime power flow data of a device
Use cases for web developers
/
I want to show current power flow for a a specific device.
Methods
MethodEnd point and objectsEvent nameDescription
GETswqapi/pvsystems/{pv-
system-id}/devices/{device-id}/
flowdata
GetDeviceFlowDataGets the real-time power flow
data of the requested PV device
of a PV system with the given
ID.
The data is returned as a JSON
object.
Page 81
Solar.web Query API Specification
81/125
Filters and parameters
GET api.solarweb.com/swqapi/pv-systems/20bb600e-019b-4e03-9df3-a0a900cda689/devices/
d2e61bf2-8dd7-4ba1-8733-d55d738c4679/flowdata
// gets current power flow information for the given device
This set provides weather and energy forecast information for PV systems.
Two calls can check the current and future weather. The following info graphic gives you an example:
A third call allows you to predict energy production for the next two days. You could might want to create
some diagrams like the following ones (see the hatched areas):
Page 84
Solar.web Query API Specification
84/125
5.7.1 Limitations
Only Solar.web Premium users can access weather forecast information. For "Basic" users the weather
forecast APIs will return no data (403 error code).
Premium users receive full weather information for one "pro" system. For all other systems they receive
"light" information ("pro" channels will return null).
5.7.2 Weather: Current weather for a PV system
Use cases for web developers
/
I want to show the current temperature, wind speed, precipitation for a given PV system.
/
I want to know the time of sunrise and sunset.
/
I want to show weather forecast symbols in my app.
Restrictions
/
This call only works for a Solar.web Premium customer who is entitled to get weather forecast
information, not for a basic customer.
/
The precipitation, cloud coverage and daylight time channels are not available for "light" PV systems.
Methods
MethodEnd point and
objects
GETswqapi/
pvsystems/{pv-
Event nameDescription
GetSystemWeatherCurrentGets the current weather information for
a given PV system.
Page 85
Solar.web Query API Specification
85/125
MethodEnd point and
GET api.solarweb.com/pvsystems/20bb600e-019b-4e03-9df3-a0a900cda689/weather/current
// gets current weather information for PV system
GET api.solarweb.com/pvsystems/20bb600e-019b-4e03-9df3-a0a900cda689/weather/current?
channel=daylight&time=local
// gets today's sunrise and sunset times in local UTC time
GET api.solarweb.com/pvsystems/20bb600e-019b-4e03-9df3-a0a900cda689/weather/current?
channel=temp,symbol
// gets current temperature and symbol information
objects
system-id}/
weather/current
Filters and parameters
FilterDescription
?channel=<channel>One or more of the detail data channels, e.g. temperature
?timezone=<"local", "zulu">Specifies time format in response object:
Example calls
Event nameDescription
or velocity.
/
zulu (default): returns time in UTC zulu time
/
local: returns time in PV system's local UTC time
(local time + UTC offset)
I want to show weather forecast information for the next few days for a given PV system.
/
I want to show weather forecast symbols in my app.
Restrictions
/
This call only works for a Solar.web Premium customer who is entitled to get weather forecast
information, not for a basic customer.
/
The precipitation and daylight time channels are not available for "light" PV systems.
Methods
MethodEnd point and
Event nameDescription
objects
GETswqapi/
pvsystems/{pv-
GetSystemWeatherForecastGets weather forecast information for up
to next 9 days.
system-id}/
weather/forecast
Filters and parameters
FilterDescription
?channel=<channel>One or more of the detail data channels, e.g. temperature or
velocity.
?timezone=<"local", "zulu">Specifies time format in response object:
/
zulu (default): returns time in UTC zulu time.
/
local: returns time in PV system's local UTC time (local
time + UTC offset).
?from=<start>&to=<end>Limits the time series for the query.
/
<start> and <end> are days, local time of the PV
system.
/
Alternatively, <start> can also be "today" (default)
or "tomorrow"; <end> can be "tomorrow".
Page 88
Solar.web Query API Specification
88/125
FilterDescription
GET api.solarweb.com/pvsystems/20bb600e-019b-4e03-9df3-a0a900cda689/weather/forecast
// gets weather forecast for PV system for the next nine days, starting today
GET api.solarweb.com/pvsystems/20bb600e-019b-4e03-9df3-a0a900cda689/weather/forecast?
start=tomorrow&duration=7// gets weather forecast for PV system for the next week, starting with tomorrow
GET api.solarweb.com/pvsystems/20bb600e-019b-4e03-9df3-a0a900cda689/weather/forecast?
channel=temp,daylight&time=local
// gets weather forecast for PV system for the next nine days, starting today// the daylight times are returned in local UTC time
/
Date format encoding: "yyyyMMdd", "yyyy-MM-dd".
?from=<start>&duration=<days>Limits the time series for the query.
/
<start> is a day, local time of the PV system.
/
Alternatively, <start> can also be "today" (default)
or "tomorrow".
/
<duration> is the number of days.
/
<duration>=1 means only one single day.
/
If <duration> is missing, the maximum period is
assumed, i.e. full 9 days of weather forecast.
Precipitation and Daylight channels only for
"pro" systems.
Page 90
Solar.web Query API Specification
90/125
5.7.4 Weather: Energy forecast for a PV system
Use cases for web developers
/
I want to extend an energy production curve (historical information) with forecast information (future
prediction).
Restrictions
/
This call only works for a Solar.web Premium customer who is entitled to get weather forecast
information, not for a basic customer.
/
This call only works for a pro PV system.
/
Data granularity:
/
next 24 hours: 15min resolution
/
following 24 hours: 1h resolution
Methods
MethodEnd point and
objects
GETswqapi/
pvsystems/{pvsystem-id}/
weather/
energyforecast
Filters and parameters
FilterDescription
?timezone=<"local", "zulu">Specifies time format in response object:
?from=<start>&to=<end>Limits the time series for the query.
Event nameDescription
GetSystemWeatherEnergyf
orecast
/
zulu (default): returns time in UTC zulu time.
/
local: returns time in PV system's local UTC time (local
time + UTC offset).
/
<start> and <end> are ISO-8601 time values.
/
Time format encoding: "yyyyMMddTHHmmssTZD",
"yyyy-MM-ddTHH:mm:ssTZD".
Gets energy production forecast
information for up to next 2 days.
?from=<start>&duration=<hours>Limits the time series for the query.
/
<start> is an ISO-8601 time value.
/
<duration> a number of 1 to 48 hours.
/
If <duration> is missing, the maximum period is
assumed, i.e. full two days of energy forecast.
/
Time format encoding: "yyyyMMddTHHmmssTZD",
"yyyy-MM-ddTHH:mm:ssTZD".
Page 91
Solar.web Query API Specification
91/125
Example calls
GET api.solarweb.com/pvsystems/20bb600e-019b-4e03-9df3-a0a900cda689/weather/
energyforecast
// gets energyforecast information for PV system for the next 48 hours
GET api.solarweb.com/pvsystems/20bb600e-019b-4e03-9df3-a0a900cda689/weather/
energyforecast?duration=8// gets energyforecast information for PV system for the next 8 hours
GetSystemMessagesReturns service messages for a given
PV system in English (default
language). The service messages are
provided as JSON objects.
GetSystemMessagesReturns service messages for a given
PV system in a certain language. The
service messages are provided as
JSON objects in the language defined
by the <ISO-country-code> object.
/
zulu (default): returns time in UTC zulu time
/
local: returns time in PV system's local UTC time (local
time + UTC offset)
?offset=<offset>&limit=<limit>Supports pagination, returns messages from a starting
<offset> and returning not more than <limit> items.
?from=<start>&to=<end>Limits the time series for the query.
/
<start> and <end> are ISO-8601 time values.
/
If "to" is missing, then "to" is considered "now".
("from" must not be empty.)
/
Time format encoding:
"yyyyMMddTHHmmssTZD","yyyy-MM-
ddTHH:mm:ssTZD".
?statetype=<type>Filters by StateType, e.g. "Error", "Event".
?stateseverity=<level>Filters by StateSeverity, i.e. "Error", "Warning",
"Information".
Page 94
Solar.web Query API Specification
94/125
FilterDescription
GET api.solarweb.com/swqapi/pvsystems/20bb600e-019b-4e03-9df3-a0a900cda689/messages?
from=2018-10-10T00:00:00Z&to=2018-10-11T00:00:00Z
// gets all system messages for 10th of October, 2018, for PV system
[
{
"pvSystemId": "d587d328-3cac-4953-9caf-a4bb009def43",
"deviceId": "b6f5495d-e0e7-49c2-80d6-e0bcd0ebacdc",
"stateType": "Error",
"stateSeverity": "Error",
"stateCode": 509,
"logDateTime": "2019-01-08T09:32:00Z",
"text": "No Feed In For 24 Hours"
},
{
?statecode=<code>Filters by StateCode.
?type=<devicetype>Type filter - one or more (comma separated, no spaces)
types of devices whose messages should be shown:
/
inverter
/
sensor
/
battery
/
smartmeter
/
ohmpilot
/
datalogger
/
evcharger
Example calls
Response objects
JSON object answer construction:
TypeObjects
PV systemspvSystemId (String)
Example responses
/
/
deviceId (String)
/
stateType (String)
/
stateSeverity (String)
/
stateCode (Integer)
/
logDateTime (String, UTC timestamp)
/
text (String) - language depends on <ISO-country-code>
object
GetSystemMessagesCountReturns number of service messages
pvsystems/{pvsystem-id}/
messages-count
for a given PV system.
Page 96
Solar.web Query API Specification
96/125
Filters and parameters
GET api.solarweb.com/swqapi/pvsystems/20bb600e-019b-4e03-9df3-a0a900cda689/messagescount?from=2018-10-10T00:00:00Z&to=2018-10-11T00:00:00Z
// counts all system messages for 10th of October, 2018, for PV system
{
"count": 5
FilterDescription
?from=<start>&to=<end>Limits the time series for the query.
/
<start> and <end> are ISO-8601 time values.
/
If "to" is missing, then "to" is considered "now".
("from" must not be empty.)
Note: Since the difference is only the language, the event is the same and the language is encoded in the
event log.
Filters and parameters
FilterDescription
Event nameDescription
GetDeviceMessagesReturns service messages for the
requested device of a PV system with
the given ID in English (default
language). The service messages are
provided as JSON objects.
GetDeviceMessagesReturns service messages for the
requested device of a PV system with
the given ID in a certain language. The
service messages are provided as
JSON objects in the language defined
by the <ISO-country-code> object.
local: returns time in PV system's local UTC time (local
time + UTC offset)
?offset=<offset>&limit=<limit>Supports pagination, returns messages from a starting
<offset> and returning not more than <limit> items.
?from=<start>&to=<end>Limits the time series for the query.
/
<start> and <end> are ISO-8601 time values.
/
If "to" is missing, then "to" is considered "now".
("from" must not be empty.)
/
Time format encoding:
"yyyyMMddTHHmmssTZD","yyyy-MM-
ddTHH:mm:ssTZD".
Page 98
Solar.web Query API Specification
98/125
FilterDescription
GET api.solarweb.com/swqapi/pvsystems/20bb600e-019b-4e03-9df3-a0a900cda689/devices/
d2e61bf2-8dd7-4ba1-8733-d55d738c4679/messages?from=2018-10-10T00:00:00Z&to=2018-10-11
T00:00:00Z
// gets all system messages for device for 10th of October, 2018
?statetype=<type>Filters by StateType, e.g. "Error", "Event".
?stateseverity=<level>Filters by StateSeverity, i.e. "Error", "Warning",
"Information".
?statecode=<code>Filters by StateCode.
Example calls
Response objects
JSON object answer construction:
TypeObjects
DevicepvSystemId (String)
Example responses
/
/
deviceId (String)
/
stateType (String)
/
stateSeverity (String)
/
stateCode (Integer)
/
logDateTime (String, UTC timestamp)
/
text (String) - language depends on <ISO-country-code> object
Page 99
Solar.web Query API Specification
99/125
"text": "Current Sensor Deviation On Channel 1"
}
]
5.8.4 Messages: Count device system messages
GET api.solarweb.com/swqapi/pvsystems/20bb600e-019b-4e03-9df3-a0a900cda689/devices/
d2e61bf2-8dd7-4ba1-8733-d55d738c4679/messages-count?from=2018-10-10T00:00:00Z&to=2018-1
0-11T00:00:00Z
// counts all system messages for device for 10th of October, 2018