HTTP Services API
The Services API is suited for integrations with external third-part systems, or extending current functionality.
It allows integrating services to manage a group of sensors with a variety of operations like sign up new users, get sensor information, and configure call-backs.
This API is organised around JSON and REST.
Base API URL
https://reseller-api.voltaware.com
Versioning
Rolling releases with no breaking changes.
Authentication
You must use the credentials issued by Voltaware with the endpoint /auth/token
to generate an access token.
Authentication to the API is performed by submitting the access token in the request header Authorization: Bearer access_token
.
The access token will expire 12 hours after they are issued, after this period you need to refresh the it.
To refresh the access token use the endpoint /auth/token/refresh
.
Access Token
POST /auth/token
Request body
{
"grant_type": "client_credentials",
"client_id": "YOUR_CLIENT_ID",
"client_secret": "YOUR_CLIENT_SECRET"
}
Response body
{
"access_token": "2YotnFZFEjr1zCsicMWpAA",
"token_type": "Bearer",
"expires_in_secs": 43200,
"refresh_token": "tGzv3JOkF0XG5Qx2TlKWIA"
}
Issues a new access token.
Refresh Token
POST /auth/token/refresh
Request body
{
"grant_type": "refresh_token",
"client_id": "YOUR_CLIENT_ID",
"refresh_token": "YOUR_REFRESH_TOKEN"
}
Refreshes an expired token.
Response body
{
"access_token": "2YotnFZFEjr1zCsicMWpAA",
"token_type": "Bearer",
"expires_in_secs": 43200
}
Accounts
Create account
PUT /sensors/{sensor_id}/setup
Request body
{
"email": "email@domain.com",
"password": "secret"
}
Provisions the sensor with a new account consisting of an email and a password. This account can be used to login into the Voltaware App or in the.
Sensors
Provides detailed information about sensors.
List all sensors
GET /sensors
Response body
[
0001,
0002,
0003
]
Retrieves a list of the Ids of all available sensors.
View single sensor
GET /sensors/{sensor_id}
Response body
{
"connection_state": "connected",
"firmware": "112356",
"last_event": "2020-12-08T15:23:05Z",
"first_event": "2018-06-08T10:20:51.287Z",
"locale": {
"isoCountryCode": "DE",
"isoLocaleCode": "de-DE",
"timeZoneId": "Europe/Berlin",
"userDefinedLanguage": "pt-BR"
}
}
Returns sensor's hardware and and firmaware configuration.
Challenge sensor account credentials
POST /sensors/challenge
Request body
{
"email": "email@domain.com",
"password": "secret"
}
Response body
{
"sensorId": 2139,
"status": "VALID"
"errorMessage": null
}
{
"sensorId": null,
"status": "INVALID"
"errorMessage": "Invalid credentials."
}
Verify if provided credentials match with a sensor account.
Cost and Consumptions
Overview by day
GET /sensors/{sensor_id}/stats/period?from=2019-01-01&to=2019-01-31
Response body
{
"from": "2019-01-01",
"to": "2019-01-31",
"sensorId": 2139,
"consumption": 22413,
"cost": 20.47438,
"dailyMetrics": [
{
"date": "2019-01-01",
"consumption": 4024,
"cost": 3.522068
},
{
"date": "2019-01-02",
"consumption": 2069,
"cost": 2.010652
},
...
...
...
]
}
View total cost and consumption metrics for a given period of days.
Overview by thirty minutes
GET /sensors/{sensor_id}/stats/day/30min?date=2021-03-14
Response body
{
"date": "2021-03-14",
"consumption": 5250.0000,
"cost": 0.8595825,
"thirtyMinutesMetrics": [
{
"hourAndMinutes": "00:00:00",
"consumption": 88.00,
"cost": 0.01440824
},
{
"hourAndMinutes": "00:30:00",
"consumption": 149.7483,
"cost": 0.0245183
},
{
"hourAndMinutes": "01:00:00",
"consumption": 262.2517,
"cost": 0.04293846
},
...
{
"hourAndMinutes": "23:30:00",
"consumption": 188.00,
"cost": 0.03078124
}
]
}
View total cost and consumption metrics by 30 minutes for a given day.
Breakdown by period
GET /sensors/{sensor_id}/stats/breakdown/period?from=2019-01-01&to=2019-01-31
Response body
{
"cost": {
"actual": "R$ 40,96",
"actualRaw": 40.96338
},
"consumption": {
"actual": "68.0 kWh",
"actualRaw": 68.035
},
"channelOne": {
"channel": 1,
"cost": {
"actual": "R$ 12,51",
"actualRaw": 12.51434
},
"consumption": {
"actual": "19.8 kWh",
"actualRaw": 19.819
},
"breakdown": [
100,
92
],
"breakdownDescriptions": [
{
"period": 1,
"percentage": 100,
"cost": {
"actual": "R$ 6,47",
"actualRaw": 6.47074
},
"consumption": {
"actual": "10.3 kWh",
"actualRaw": 10.272
}
},
{
"period": 2,
"percentage": 92,
"cost": {
"actual": "R$ 6,04",
"actualRaw": 6.043596
},
"consumption": {
"actual": "9.5 kWh",
"actualRaw": 9.547
}
}
]
},
"channelTwo": {
...
},
"channelThree": {
...
},
"breakdown": [
100,
88
],
"breakdownDescriptions": [
{
"period": 1,
"percentage": 100,
"cost": {
"actual": "R$ 21,67",
"actualRaw": 21.67068
},
"consumption": {
"actual": "36.0 kWh",
"actualRaw": 36.034
}
},
{
"period": 2,
"percentage": 88,
"cost": {
"actual": "R$ 19,29",
"actualRaw": 19.2927
},
"consumption": {
"actual": "32.0 kWh",
"actualRaw": 32.001
}
}
]
}
View cost and consumption breakdown metrics for a given period of days.
Breakdown by day
GET /sensors/{sensor_id}/stats/breakdown/day?date=2019-01-13
Response body
{
"cost":{
"actual":"R$ 21,64",
"actualRaw":21.64457
},
"consumption":{
"actual":"35.9 kWh",
"actualRaw":35.92300
},
"channelOne":{
"channel":1,
"cost":{
"actual":"R$ 6,46",
"actualRaw":6.463672
},
"consumption":{
"actual":"10.2 kWh",
"actualRaw":10.23800
},
"breakdown":[
27,
58,
46,
24,
23,
23,
23,
21,
20,
79,
84,
44,
33,
75,
94,
27,
24,
22,
22,
23,
100,
80,
70,
55
],
"breakdownDescriptions":[
{
"period":0,
"percentage":27,
"cost":{
"actual":"R$ 0,17",
"actualRaw":0.1669859
},
"consumption":{
"actual":"0.3 kWh",
"actualRaw":0.25300000
}
},
{
"period":1,
"percentage":58,
"cost":{
"actual":"R$ 0,34",
"actualRaw":0.3364529
},
"consumption":{
"actual":"0.5 kWh",
"actualRaw":0.54000000
}
},
{
"period":2,
"percentage":46,
"cost":{
"actual":"R$ 0,27",
"actualRaw":0.2726803
},
"consumption":{
"actual":"0.4 kWh",
"actualRaw":0.43200000
}
},
{
"period":3,
"percentage":24,
"cost":{
"actual":"R$ 0,15",
"actualRaw":0.1482753
},
"consumption":{
"actual":"0.2 kWh",
"actualRaw":0.22200000
}
},
{
"period":4,
"percentage":23,
"cost":{
"actual":"R$ 0,15",
"actualRaw":0.1460828
},
"consumption":{
"actual":"0.2 kWh",
"actualRaw":0.21700000
}
},
{
"period":5,
"percentage":23,
"cost":{
"actual":"R$ 0,15",
"actualRaw":0.1474988
},
"consumption":{
"actual":"0.2 kWh",
"actualRaw":0.22000000
}
},
{
"period":6,
"percentage":23,
"cost":{
"actual":"R$ 0,14",
"actualRaw":0.1439583
},
"consumption":{
"actual":"0.2 kWh",
"actualRaw":0.21400000
}
},
{
"period":7,
"percentage":21,
"cost":{
"actual":"R$ 0,14",
"actualRaw":0.1371650
},
"consumption":{
"actual":"0.2 kWh",
"actualRaw":0.20300000
}
},
{
"period":8,
"percentage":20,
"cost":{
"actual":"R$ 0,13",
"actualRaw":0.1306750
},
"consumption":{
"actual":"0.2 kWh",
"actualRaw":0.19100000
}
},
{
"period":9,
"percentage":79,
"cost":{
"actual":"R$ 0,45",
"actualRaw":0.4515736
},
"consumption":{
"actual":"0.7 kWh",
"actualRaw":0.73600000
}
},
{
"period":10,
"percentage":84,
"cost":{
"actual":"R$ 0,48",
"actualRaw":0.4805834
},
"consumption":{
"actual":"0.8 kWh",
"actualRaw":0.78400000
}
},
{
"period":11,
"percentage":44,
"cost":{
"actual":"R$ 0,26",
"actualRaw":0.2600685
},
"consumption":{
"actual":"0.4 kWh",
"actualRaw":0.41100000
}
},
{
"period":12,
"percentage":33,
"cost":{
"actual":"R$ 0,20",
"actualRaw":0.1989817
},
"consumption":{
"actual":"0.3 kWh",
"actualRaw":0.30800000
}
},
{
"period":13,
"percentage":75,
"cost":{
"actual":"R$ 0,43",
"actualRaw":0.4277076
},
"consumption":{
"actual":"0.7 kWh",
"actualRaw":0.69500000
}
},
{
"period":14,
"percentage":94,
"cost":{
"actual":"R$ 0,53",
"actualRaw":0.5311911
},
"consumption":{
"actual":"0.9 kWh",
"actualRaw":0.87100000
}
},
{
"period":15,
"percentage":27,
"cost":{
"actual":"R$ 0,17",
"actualRaw":0.1666143
},
"consumption":{
"actual":"0.3 kWh",
"actualRaw":0.25200000
}
},
{
"period":16,
"percentage":24,
"cost":{
"actual":"R$ 0,15",
"actualRaw":0.1502866
},
"consumption":{
"actual":"0.2 kWh",
"actualRaw":0.22500000
}
},
{
"period":17,
"percentage":22,
"cost":{
"actual":"R$ 0,14",
"actualRaw":0.1384577
},
"consumption":{
"actual":"0.2 kWh",
"actualRaw":0.20500000
}
},
{
"period":18,
"percentage":22,
"cost":{
"actual":"R$ 0,14",
"actualRaw":0.1390052
},
"consumption":{
"actual":"0.2 kWh",
"actualRaw":0.20500000
}
},
{
"period":19,
"percentage":23,
"cost":{
"actual":"R$ 0,14",
"actualRaw":0.1438668
},
"consumption":{
"actual":"0.2 kWh",
"actualRaw":0.21400000
}
},
{
"period":20,
"percentage":100,
"cost":{
"actual":"R$ 0,56",
"actualRaw":0.5635456
},
"consumption":{
"actual":"0.9 kWh",
"actualRaw":0.92500000
}
},
{
"period":21,
"percentage":80,
"cost":{
"actual":"R$ 0,46",
"actualRaw":0.4596142
},
"consumption":{
"actual":"0.7 kWh",
"actualRaw":0.74900000
}
},
{
"period":22,
"percentage":70,
"cost":{
"actual":"R$ 0,40",
"actualRaw":0.4041400
},
"consumption":{
"actual":"0.7 kWh",
"actualRaw":0.65600000
}
},
{
"period":23,
"percentage":55,
"cost":{
"actual":"R$ 0,32",
"actualRaw":0.3182596
},
"consumption":{
"actual":"0.5 kWh",
"actualRaw":0.51000000
}
}
]
},
"channelTwo":{
...
},
"channelThree":{
...
},
"breakdown":[
20,
61,
100,
69,
67,
66,
31,
31,
32,
41,
45,
35,
57,
79,
76,
53,
65,
44,
57,
47,
92,
89,
84,
71
],
"breakdownDescriptions":[
{
"period":0,
"percentage":20,
"cost":{
"actual":"R$ 0,32",
"actualRaw":0.3191245
},
"consumption":{
"actual":"0.5 kWh",
"actualRaw":0.50900000
}
},
{
"period":1,
"percentage":61,
"cost":{
"actual":"R$ 0,93",
"actualRaw":0.9322962
},
"consumption":{
"actual":"1.5 kWh",
"actualRaw":1.54800000
}
},
{
"period":2,
"percentage":100,
"cost":{
"actual":"R$ 1,51",
"actualRaw":1.507557
},
"consumption":{
"actual":"2.5 kWh",
"actualRaw":2.52300000
}
},
...
]
}
View cost and consumption breakdown metrics for a specific day.
Live power
GET /sensors/{sensor_id}/stats/live
Response body
{
"percentage":99.99999300,
"cost":{
"actual":"£0.42",
"actualRaw":0.41847
},
"consumption":{
"actual":"3219Watts",
"actualRaw":3219
},
"categories":{
"alwaysOn":{
"threshold":{
"power":206,
"percentage":6
},
"cost":{
"actual":"£0.03",
"actualRaw":0.026780
},
"consumption":{
"actual":"206Watts",
"actualRaw":206.0000
},
"breakdown":[],
"breakdownDescriptions":[]
},
"normal":{
"threshold":{
"power":1609,
"percentage":44
},
"cost":{
"actual":"£0.18",
"actualRaw":0.18239
},
"consumption":{
"actual":"1403Watts",
"actualRaw":1403.000
},
"breakdown":[],
"breakdownDescriptions":[]
},
"excess":{
"threshold":{
"power":3219,
"percentage":50
},
"cost":{
"actual":"£0.21",
"actualRaw":0.20930
},
"consumption":{
"actual":"1610Watts",
"actualRaw":1610.000
},
"breakdown":[],
"breakdownDescriptions":[]
}
},
"channelOne":{
"channel":1,
"percentage":99.99999300,
"cost":{
"actual":"£0.42",
"actualRaw":0.41847
},
"consumption":{
"actual":"3219Watts",
"actualRaw":3219
},
"categories":{
"alwaysOn":{
"threshold":{
"power":206,
"percentage":6
},
"cost":{
"actual":"£0.03",
"actualRaw":0.026780
},
"consumption":{
"actual":"206Watts",
"actualRaw":206.0000
},
"breakdown":[],
"breakdownDescriptions":[]
},
"normal":{
"threshold":{
"power":1609,
"percentage":44
},
"cost":{
"actual":"£0.18",
"actualRaw":0.18239
},
"consumption":{
"actual":"1403Watts",
"actualRaw":1403.000
},
"breakdown":[],
"breakdownDescriptions":[]
},
"excess":{
"threshold":{
"power":3219,
"percentage":50
},
"cost":{
"actual":"£0.21",
"actualRaw":0.20930
},
"consumption":{
"actual":"1610Watts",
"actualRaw":1610.000
},
"breakdown":[],
"breakdownDescriptions":[]
}
},
"breakdown":[],
"breakdownDescriptions":[]
},
"channelTwo":null,
"channelThree":null,
"breakdown":[],
"breakdownDescriptions":[],
"calculationTimestamp":"2019-06-13T14:00:20.511Z"
}
View current live power values.
Carbon footprint
GET /sensors/{sensor_id}/carbon-footprint?from=2020-01-01&to=2020-01-31
Response body
{
"kgco2": 69.309855,
"trees": 39.6088
}
View consumption carbon footprint values.
Tariffs
View tariff
GET /sensors/{sensor_id}/tariff
Response body
{
"id": 1841,
"name": "Default Tariff",
"paymentType": "On Receipt of the Bill",
"chargeType": "DUAL",
"standingChargePencePerDay": 0.41,
"provider": {
"name": "Other"
},
"schedule": [
{
"from": "23:00:00",
"to": "23:59:59",
"key": "off-peak"
},
{
"from": "00:00:00",
"to": "05:59:59",
"key": "off-peak"
},
{
"from": "06:00:00",
"to": "22:59:59",
"key": "peak-time"
}
],
"composition": {
"offPeak": {
"startTime": "23:00:00",
"endTime": "05:59:59.999999999",
"rate": 0.59
},
"peak": {
"startTime": "06:00:00",
"endTime": "22:59:59.999999999",
"rate": 0.71
}
},
"tariff_country": "BR",
"tariff_type": "MANUAL",
"updated_at": "2019-06-13T16:37:16.871833Z"
}
Create tariff
PUT /sensors/{sensor_id}/tariff
Request body charge type single
{
"sensor_id": 9999,
"tariff_type": "MANUAL",
"tariff_country": "BR",
"tariff": {
"name": "Default Tariff",
"standingChargePencePerDay": 0.42,
"paymentType": "On Receipt of the Bill",
"chargeType": "SINGLE",
"provider": {
"name": "Other"
},
"composition": {
"offPeak": {
"startTime": "00:00",
"endTime": "23:59",
"rate": 0.49
}
}
}
}
Request body charge type dual
{
"sensor_id": 9999,
"tariff_type": "MANUAL",
"tariff_country": "BR",
"tariff": {
"name": "Default Tariff",
"standingChargePencePerDay": 0.42,
"paymentType": "On Receipt of the Bill",
"chargeType": "DUAL",
"provider": {
"name": "Other"
},
"composition": {
"offPeak": {
"startTime": "00:00",
"endTime": "05:59",
"rate": 0.59
},
"peak": {
"startTime": "06:00",
"endTime": "23:59",
"rate": 0.62
}
}
}
}
Setup your own custom tariff.
Accepted values for tariff_type
are: MANUAL.
Accepted values for chargeType
are: SINGLE or DUAL.
Metadata
Property
In order to provide you with more accurate Disaggregation results we need to get some information regarding the property where the sensor is installed and some information about the appliances owned by the end user.
We remind you that the Voltaware algorithm is designed to work in households and that we currently do not support users that produce energy (solar pannels, batteries...)
View property details
GET /sensors/{sensorId}/metadata/property
Response body
{
"property_type": "HOME",
"home_type": "FLAT",
"home_size": 49.8,
"bedroom_amount": 2,
"power_generator_source": "SOLAR",
"people_amount": 2,
"people_amount_in_day_time": 0,
"people": [
{
"age_range": "ADULT",
"amount": 2
}
],
"version": "1.0"
}
View property details.
Set up property details
PUT /sensors/{sensorId}/metadata/property
Request body for
home_type
house
{
"property_type": "HOME",
"home_type": "HOUSE",
"home_usage_type": "PRIMARY",
"home_size": 80,
"bedroom_amount": 2,
"power_generator_source": "NONE",
"people_amount": 3,
"people_amount_in_day_time": 2,
"people": [
{
"age_range": "ADULT",
"amount": 2
},
{
"age_range": "ZERO_TO_FIVE",
"amount": 1
}
],
"version": "1.0"
}
Request body for
home_type
office, commercial or industry
{
"property_type": "INDUSTRY",
"power_generator_source": "SOLAR",
"version": "1.0"
}
Setup the property details associated to a sensor by providing the following information:
In case the property_type
is OFFICE
, COMMERCIAL
, INDUSTRIAL
, the following are the fields needed in the request body.
Field name | Description |
---|---|
property_type string (enum), required |
OFFICE , COMMERCIAL , INDUSTRIAL |
power_generator_source string (enum), required |
SOLAR , HYDROELECTRICITY , WIND , BATTERY , OTHER , NONE |
version string, required |
The current version of the property information is 1.0 |
In case the property_type
is HOME
, we will require a number of information in order to be able to classify people’s homes and create clusters to compare them to similar users.
Field name | Description |
---|---|
property_type string (enum), required |
HOME |
home_type string (enum), required |
FLAT , HOUSE |
home_usage_type string (enum), required |
PRIMARY , SECONDARY |
home_size float, required |
Size of the house in square meters |
bedroom_amount int, required |
Minimum value is 1 |
power_generator_source string (enum), required |
SOLAR , HYDROELECTRICITY , WIND , BATTERY , OTHER , NONE |
people_amount int, required |
Minimum value is 1 |
people_amount_in_day_time int, required |
Minimum value is 0 |
people array, required |
The field must be present in the JSON but it can receive an empty array. |
people[].age_range string (enum), required |
ZERO_TO_FIVE , SIX_TO_EIGHTEEN , ADULT , PENSIONER |
people[].amount int, required |
|
version string, required |
The current version of the property information is 1.0 |
Appliances
View property appliances
GET /sensors/{sensorId}/metadata/appliances
Response body
{
"appliances": [
{
"key": "AC",
"amount": 1,
"type": "CENTRALISED",
"usage_type": "SUMMER"
},
{
"key": "AC",
"amount": 1,
"type": "WINDOW",
"usage_type": "BOTH"
},
{
"key": "ELECTRIC_BOILER",
"amount": 1,
"usage_type": "SPACE_HEATING",
"coupled_with_solar_thermal_system": "NO",
"water_tank": false
},
{
"key": "ELECTRIC_BOILER",
"amount": 1,
"usage_type": "WATER_HEATING",
"coupled_with_solar_thermal_system": "YES",
"water_tank": true
},
{
"key": "FRIDGE",
"amount": 1,
"type": "FRIDGE"
},
{
"key": "GAS_HEATING",
"amount": 1,
"any_electric_heater": false
},
{
"key": "ELECTRIC_OVEN",
"amount": 1,
"type": "REGULAR"
},
{
"key": "OTHER",
"amount": 1,
"name": "A Electronic Device"
},
{
"key": "OTHER",
"amount": 1,
"name": "A Different Electronic Device"
}
],
"version": "1.0"
}
View property appliances.
Set up property appliances
PUT /sensors/{sensorId}/metadata/appliances
Request body
{
"appliances":[
{
"key": "AC",
"amount": 1,
"type": "MINI_SPLIT",
"usage_type": "BOTH"
},
{
"key": "DEHUMIDIFIER",
"amount": 1
},
{
"key": "DISHWASHER",
"amount": 1
},
{
"key": "ELECTRIC_BOILER",
"amount": 1,
"usage_type": "WATER_HEATING",
"coupled_with_solar_thermal_system": "NO",
"water_tank": true
},
{
"key": "ELECTRIC_HEATING",
"amount": 1,
"type": "UNDERFLOOR"
},
{
"key": "ELECTRIC_LAWN_MOWER",
"amount": 1
},
{
"key": "ELECTRIC_OVEN",
"amount": 1,
"type": "INDUCTION"
},
{
"key": "ELECTRIC_SHOWER",
"amount": 2
},
{
"key": "ELECTRIC_STOVE",
"amount": 1
},
{
"key": "ELECTRIC_VEHICLE",
"amount": 1,
"type": "CAR",
"wattages": [7200]
},
{
"key": "ELECTRIC_VEHICLE",
"amount": 2,
"type": "BIKE",
"wattages": [750, 750]
},
{
"key": "FRIDGE",
"amount": 1,
"type": "FRIDGE_AND_FREEZER"
},
{
"key": "FRIDGE",
"amount": 1,
"type": "FREEZER"
},
{
"key": "GAS_HEATING",
"amount": 1,
"any_electric_heater": true
},
{
"key": "HUMIDIFIER",
"amount": 1
},
{
"key": "JACUZZI",
"amount": 1
},
{
"key": "KETTLE",
"amount": 1
},
{
"key": "POOL_PUMP",
"amount": 1
},
{
"key": "TUMBLE_DRYER",
"amount": 1,
"type": "I_DONT_KNOW",
"usage_types": ["AUTUMN", "SPRING", "WINTER"]
},
{
"key": "WASHING_MACHINE",
"amount": 1
},
{
"key": "OTHER",
"amount": 3,
"name": "Sprinklers"
}
],
"version": "1.0"
}
For each appliance object sent, all fields are required.
In case a user doesn’t know an answer or if a question is too technical for them, they will always be able to select the option “I don’t know”. These information allow us to improve the accuracy of our algorithm and help us prioritize our future work.
AC
For the AC, we want to know what type of AC the user has as well as the season when the user uses it. In case the user uses an AC during cold months, this appliance will be displayed on the disaggregation results as Heating.
• For the type
, the accepted values are: CENTRALISED, MINI_SPLIT, WINDOW, OTHER or I_DONT_KNOW.
• For the usage_type
, the accepted values are: SUMMER, WINTER or BOTH.
ELECTRIC BOILER (ELECTRIC WATER HEATER)
For this appliance, we want to know how many units the user have, if the Boiler is used for heating up space or water (or both), if it is coupled with a solar thermal system and if it has a water tank or not.
• For the usage_type
, the accepted values are: SPACE_HEATING, WATER_HEATING or BOTH.
• For the coupled_with_solar_thermal_system
, the accepted values are: YES, NO or NOT_SURE.
• For the water_tank
, the accepted values must be of the type BOOLEAN.
ELECTRIC HEATING (SPACE HEATING)
With the Electric Heating questions we want to know if the user has an electric or gas main heating source, depending on this first answer, we will ask different questions to the user. In case they have an electric main heating source we will ask the type of Heater they have, in case they say it’s gas we will ask whether they have additional electric heating units.
In case they say Electrical:
• For the type
, the accepted values are: HEAT_PUMP, HEAT_STORAGE, RADIATOR, UNDERFLOOR or OTHER.
In case they say Gas:
• For the any_electric_heater
, the accepted values must be of the type BOOLEAN.
ELECTRIC OVEN
Regarding the electric oven question, we want to know what type of oven the user has and how many of each.
• For the type
, the accepted values are: MICROWAVE, MINI or REGULAR. Followed by each type’s quantity.
ELECTRIC OR INDUCTION STOVE
For the stove, we want to know what type of stove the user has.
• For the type
, the accepted values are: ELECTRIC or INDUCTION.
ELECTRIC VEHICLE
In case of the electric vehicles, we want to know the type of vehicle the user has, how many and if they know the wattage of their chargers.
• For the type
, the accepted values are: BIKE, CAR, MOTORBIKE, SCOOTER.
• For the wattages
, the accepted values are a list of integers of size equal to the amount
of the corresponding vehicle.
FRIDGE/FREEZER
In case of the fridge (or cooling devices), we want to know the type of fridge the user has.
• For the type
, the accepted values, followed by their quantity as integers, are: FRIDGE, FREEZER, FRIDGE_AND_FREEZER, SMALL_ELECTRIC_WINE_CELLAR or LARGE_ELECTRIC_WINE_CELLAR.
TUMBLE DRYER
In case of the tumble dryer, we want to know how many units the user has and if they use the appliance all year long or only for some seasons.
• For the type
, the accepted values are: CONDENSER, HEAT_PUMP, VENTED or I_DONT_KNOW. Followed by each type’s quantity.
• The usage_types
several options can be clicked, this property is a list, and the accepted values are: AUTUMN, SPRING, SUMMER and/or WINTER.
OTHER APPLIANCES
Finally, we want to know if the user has any other appliances that are not shown in our list. This helps us to identify the most common ones in order to add them in the future to our disaggregation library. Please have in mind that any appliance added here won’t be displayed on the disaggregation results.
• For the name
, any text value can be accepted.
The current version
of the appliance list is 1.0
.
Property
View property details
GET /sensors/{sensorId}/property/details
Response body
{
"sensorId": 9999,
"propertyType": "HOME",
"houseSize": 134.7,
"bedroomAmount": 4,
"personAmount": 2,
"homeType": "FLAT",
"generatesPower": true,
"powerGeneratorSource": "SOLAR",
"peopleDetail": [
{
"ageRange":"ADULT",
"amount":1
},
{
"ageRange":"PENSIONER",
"amount":1
}
]
}
Set up property details
POST /sensors/{sensorId}/property/details
Request body for property type home
{
"sensorId": 9999,
"propertyType": "HOME",
"houseSize": 134.7,
"bedroomAmount": 4,
"personAmount": 2,
"homeType": "FLAT",
"generatesPower": true,
"powerGeneratorSource": "SOLAR",
"peopleDetail": [
{
"ageRange": "ADULT",
"amount": 1
},
{
"ageRange": "PENSIONER",
"amount": 1
}
]
}
Request body for property type office
{
"sensorId": 9999,
"propertyType": "OFFICE",
"houseSize": 200,
"personAmount": 2,
"generatesPower": true,
"powerGeneratorSource": "SOLAR",
"peopleDetail": [
{
"ageRange": "ADULT",
"amount": 2
}
]
}
Request body for property type commercial
{
"sensorId": 9999,
"propertyType": "COMMERCIAL",
"houseSize": 400,
"generatesPower": true,
"powerGeneratorSource": "SOLAR"
}
Request body for property type industry
{
"sensorId": 9999,
"propertyType": "INDUSTRY",
"generatesPower": true,
"powerGeneratorSource": "SOLAR"
}
Setup the property details associated to a sensor.
Accepted values for propertyType
are: HOME, OFFICE, COMMERCIAL and INDUSTRY.
Accepted values for homeType
are: FLAT and HOUSE.
Accepted values for powerGeneratorSource
are: SOLAR, HYDROELECTRICITY, WIND and OTHER.
Accepted values for peopleDetail
are: ZERO_TO_FIVE, SIX_TO_EIGHTEEN, ADULT and PENSIONER.
Appliances
View property appliances
GET /sensors/{sensorId}/property/appliances
Response body
{
"sensorId": 9999,
"appliances": {
"AC": {
"amount": 1,
"weather": "SUMMER"
},
"DISHWASHER": {
"amount": 1
},
"ELECTRIC_BOILER": {
"amount": 1
},
"ELECTRIC_HEATING": {
"amount": 1,
"mainSource": true
},
"ELECTRIC_OVEN": {
"amount": 1
},
"ELECTRIC_SHOWER": {
"amount": 1
},
"ELECTRIC_STOVE": {
"amount": 1
},
"ELECTRIC_VEHICLE": {
"car": {
"amount": 1,
"wattages": []
},
"motorbike": {
"amount": 1,
"wattages": []
},
"bike": {
"amount": 1,
"wattages": []
},
"scooter": {
"amount": 1,
"wattages": []
}
},
"FRIDGE": {
"fridgeFreezerAmount": 1,
"fridgeAmount": 1,
"freezerAmount": 1
},
"TUMBLE_DRYER": {
"amount": 1
},
"WASHING_MACHINE": {
"amount": 1
},
"KETTLE": {
"amount": 1
}
}
}
Set up property appliances
POST /sensors/{sensorId}/property/appliances
Request body
{
"sensorId": 9999,
"appliances": {
"AC": {
"amount": 1,
"weather": "SUMMER"
},
"DISHWASHER": {
"amount": 1
},
"ELECTRIC_BOILER": {
"amount": 1
},
"ELECTRIC_HEATING": {
"amount": 1,
"mainSource": true
},
"ELECTRIC_OVEN": {
"amount": 1
},
"ELECTRIC_SHOWER": {
"amount": 1
},
"ELECTRIC_STOVE": {
"amount": 1
},
"ELECTRIC_VEHICLE": {
"car": {
"amount": 1,
"wattages": []
},
"motorbike": {
"amount": 1,
"wattages": []
},
"bike": {
"amount": 1,
"wattages": []
},
"scooter": {
"amount": 1,
"wattages": []
}
},
"FRIDGE": {
"fridgeFreezerAmount": 1,
"fridgeAmount": 1,
"freezerAmount": 1
},
"TUMBLE_DRYER": {
"amount": 1
},
"WASHING_MACHINE": {
"amount": 1
},
"KETTLE": {
"amount": 1
}
}
}
To setup your property appliances. Weather attribute in the AC key accepts: SUMMER, WINTER and BOTH.
VoltaScore
The VoltaScore is Voltaware's scoring system, ranging from 1 to 100, designed to show users how efficiently they are using their energy at home. This score is computed based on the user's historical usage, as well as by comparing it with that of similar users. The higher the score, the more efficient the user is being.
The first VoltaScore results will be available 30 days after the sensor installation.
VoltaScore is calculated monthly for each calendar month. The calculation occurs at the beginning of each month, and results are available on the second day of that month. Please note that results are provided only for previous months, not the current month.
View score
GET /sensors/{sensorId}/scores?year=2023&month=8
{
"p2p": {
"score": 51
},
"historical": {
"score": 43
},
"recommendations": [
{
"appliance_key": "air_conditioner",
"recommendation_key": "THERMOSTAT_CORRECT_TEMP_AIR_CONDITIONER"
},
{
"appliance_key": "lighting_entertainment",
"recommendation_key": "USE_LED_LIGHTING_ENTERTAINMENT"
}
],
"overall_score": 47,
"overall_score_previous_month": 28
}
Table describing the meanging of the response body:
Field name | Description |
---|---|
p2p.score float |
Peer-to-peer comparison score |
historical object, nullable |
Results of historical data will be available after 60 days from sensor installation. |
historical.score float |
Historical score based on self-comparison |
recommendations array |
Personalized recommendations for improving energy efficiency |
recommendations[].appliance_key array |
Check table bellow. |
recommendations[].recommendation_key array |
Check table bellow. |
overall_score float |
Overall VoltaScore for the specified device |
version string |
This field may be present in the future |
Table describing all availabe recommendations:
Appliance key | Recommendation Key | Meaning |
---|---|---|
air_conditioner | thermostat_away_from_heat_air_conditioner | Make sure your thermostat is away from a heating source or the sun light. |
air_conditioner | thermostat_correct_temp_air_conditioner | During the summer, you should set your AC between 25ºC and 27ºC. These temperatures will be comfortable for you and will help you save money. |
air_conditioner | isolate_windows_air_conditioner | Changing your windows could help you save a lot in heating and cooling. Making sure that your house is properly insulated can make a huge difference. |
boiler | set_hot_temperature_boiler | Lower Always-on by unplugging electronics to reduce standby power waste and save electricity |
boiler | install_chronothermostat_boiler | To save energy and reduce environmental impact, consider setting the hot water temperature between 45°C and 55°C. This can save up to 5% on energy consumption and be more efficiently operated by the boiler. consider installing a chronothermostat. It allows you to manage the temperature in a centralized and precise way, offering advanced functions like different temperatures for each room and boiler operating times. Modern models can provide up to 20% savings and communicate with the boiler to manage its ignition more efficiently. |
cooking | boil_water_in_kettle_cooking | Using a kettle for boiling water is more efficient and convenient than using the stove. It offers speed and energy efficiency benefits. Kettles heat water faster than a stove, saving you time in the kitchen. They are also designed to be more energy-efficient, using less electricity compared to the energy consumed by a stove. |
cooking | right_size_pan_cooking | When using electric cooktops, it's important to match the pan size to the burner size. Using a small pan on a large burner can result in significant heat loss and inefficiency. By choosing pan sizes that match the burner sizes, you can maximize the heat produced and save energy. |
cooking | batch_cooking | Plan ahead and do a batch cooking. By using your oven to cook several things at the same time you can save a lot of energy and you won't need to cook every day of the week. |
cooking | pressure_cooker_cooking | Think about using a pressure cooker instead of a regular pot. This is more efficient and can help you save up a lot of energy. If you don't have one, you can always cover your pots to avoid the heat to escape. |
cooking | small_pieces_cooking | Did you know that by cutting your food in small pieces you can reduce the cooking time and your energy consumption |
dishwasher | full_dishwasher | Running a full dishwasher is more energy efficient and will reduce energy consumption over time. |
dishwasher | use_eco_dishwasher | Using eco mode on your dishwasher is an effective way to save energy, it optimize its performance and reduce energy consumption. |
electric_vehicle | charge_evening_electric_vehicle | Charge your Electric Vehicle during the night, this is eco-friendlier and in case you have a dual tariff it will help you save money. |
electric_vehicle | charge_evening_electric_vehicle | Charge your Electric Vehicle during the night, this is eco-friendlier and in case you have a dual tariff it will help you save money. |
electric_vehicle | optimize_driving_electric_vehicle | By driving smoothly and using ECO mode or adaptive cruise control, you can optimize your driving. These practices help reduce energy consumption, improve efficiency, and reduce emissions. |
fridge_freezer | avoid_hot_food_fridge_freezer | After cooking, wait for your food to cool down before storing it in the fridge. By avoiding storing hot dishes you will reduce your fridge consumption over time. |
fridge_freezer | check_temperature_fridge_freezer | The optimum temperature for refrigerator operation is between 2°C and 5°C, and -18°C for freezer. As a rule of thumb, for each additional degree of refrigeration your fridge will consume 6% more electricity. An accurate temperature setting can therefore directly save you money. |
fridge_freezer | minimize_open_door_fridge_freezer | Spend as little time as possible with the door open as this will increase the fridge consumption and make sure you close it properly. |
fridge_freezer | check_rubber_seal_fridge_freezer | The rubber seal is used for insulation purposes and prevents heat exchange between the ambient air and the refrigerator. It is important to regularly check that the seal is fully intact and sealing tightly. |
fridge_freezer | check_location_fridge_freezer | Never place your refrigerator next to a heat source such as an oven, hob or radiator, and avoid direct sunlight. Regardless of whether you have a freestanding appliance or a built-in one, always ensure that your refrigerator has sufficient ventilation so that the compressor does not end up running continuously. |
fridge_freezer | defrost_freezer_fridge_freezer | Defrost the freezer compartment if ice has built up. In case there is ice accumulated, your freezer will need to work harder to cool your food, wasting energy in the process. |
fridge_freezer | defrost_food_fridge_freezer | Defrost your food in the fridge, not only this is one of the safest way to do it but it also saves energy by cooling your fridge. Make sure to defrost your food a day in advance as it takes longer than other methods. |
heating | isolate_windows_heating | Make sure your windows are properly insulated, this will avoid the cold to come in and will avoid heating the house longer than it should. |
heating | setup_thermostat_heating | During the winter, you should set your heating to 19ºC. This temperature will be comfortable and will help you save money. |
kettle | boil_accordingly_kettle | By boiling only the amount of water required, you avoid wasting energy. This helps reduce water consumption and lower your energy bill. |
kettle | tea_pot_kettle | If you plan to drink several cups, we recommend you to use a tea pot, as boiling each individual cup can be more expensive. |
lighting_entertainment | use_timer_switch_lighting_entertainment | Lights on but no one home? Leaving your lights on so that your house doesn't look empty while you're away? Then use a timer switch to set them to come on and off. These plug straight into the wall and enable you to programme in several time slots. |
lighting_entertainment | use_led_lighting_entertainment | Save up to 85% on energy costs with LEDs, they are the most energy-efficient bulbs available, and will save you money on your energy bills as they are much cheaper to run. They do cost more to buy, but they rarely need replacing. |
standby | power_strip_standby | Use a power strip with switches to turn off any appliance that might go to standby mode when unused. |
standby | unplug_charger_standby | Did you know that even phone chargers left plugged-in can consume energy when they are not charging your device? |
standby | focus_high_consumption_standby | Focus on turning off appliances with a remote (TV, game consoles, etc.) and appliances with a continuous display. They are the most consuming appliances when in standby mode. |
standby | upgrade_router_standby | If your router is several years old, a newer model might offer energy-saving features or more efficient components. |
standby | use_timer_standby | Purchase a timer so you don't have to think about plugging your appliances off. Some appliances that have Standby mode are not used during the night and this could easily save 12 precious hours of low consumption that builds up over time. |
tumble_dryer | spin_dried_before_tumble_dryer | Make sure you've correctly spin-dried your clothes before using your tumble dryer, this can help you save precious drying minutes. |
tumble_dryer | avoid_tumble_dryer | Avoid using your tumble dryer when it's sunny outside or during hot seasons. This will increase your clothes lifespan as well as help you save energy. |
washing_machine | use_eco_low_temp_washing_machine | 90% of the energy used by a washing machine is for heating up the water. If you run cycles between 30ºC and 40ºC, or in ECO mode in case your machine has it, not only you'll save energy but you will also increase your clothes lifespan. |
washing_machine | full_load_washing_machine | Make sure to wait for a full load before washing your clothes. This will help you run less washing cycles per week and reduce your energy consumption. |
no_appliance | no_recommendation | No recommendation available |
Disaggregation
Our Disaggregation is running every 30 minutes but the analyzed window is larger than 30 minutes. This is because some appliances signature take more time than 30 minutes to be detected: just think about the case of an appliance that is switched on at 8:29 am. It is naturally almost impossible to classify this appliance with a strong confidence.
Every 30 minutes some appliances identification are classified as permanent (and visible on this API) and other are classified as temporary (not visible on any of our API for the moment). The temporary identifications will be sent back to the disaggregation algorithm to be reanalyzed in the next 30 minutes batch. This process will happen until the algorithm gets the confidence that enough temporal context has been acquired to make a permanent identification. If this identification happens at 10:30 am for the appliance that started at 8:29 am then it will be visible on the API at 10:30 am. In case of an extremely noisy sensor, this process could take up to 24h to process. In practice, 99% of the time it will take less than 2h after the appliance’s cycle ended.
Here are the appliances or family of appliances we are able to disaggregate so far:
- Air conditioner
- Cooking appliances (Electric oven, Electric stove...)
- Dishwasher
- Electric boiler
- Electric heating
- Electric shower
- Electric vehicle
- Fridge & Freezer
- Kettle
- Lighting & Entertainment: this model represents the lights of a house and some appliances like TV
- Others: this model represents the consumption that cannot be associated to a proper model
- Tumble dryer
- Standby: this model represents all the appliances that are always on or that have a standby mode (computer monitors, Wifi, etc.)
- Washing machine
The appliances displayed on the appliances information list can be merged into a single category. For example, Electric Oven and Electric Stove will be merged into the category: Cooking.
In case the user doesn’t fill out the appliances information list page inside the app, through the monthly report or by sending it directly through our API, we will display most of the appliances, depending on if our training model detects an appliance or not.
Appliances with consumption percentage smaller than 1% in the specified period will NOT be shown in the returned results (their consumption will be computed in the "others" category). For this reason, some appliances estimations may diverge slightly depending on the date range the results were retrieved (i.e. querying every day of a month individually may diverge slightly from retrieving the results of the whole month at once).
Day
GET /sensors/{sensor_id}/disag/day?date=2019-01-31
Response body
{
"sensor_code":"2137",
"number_of_phases":"1",
"from_date":"2019-01-31",
"to_date":"2019-01-31",
"total_consumption":242.958,
"total_cost":63.5916,
"consumption":{
"washing_machine":21.07283991575241,
"lighting_entertainment":58.216418385505676,
"fridge_freezer":33.737164199352264,
"others":40.17291032838821,
"cooking_radiator":72.07066714763641,
"standby":17.68800002336502
},
"cost":{
"washing_machine":4.214606940746307,
"lighting_entertainment":11.646985083818436,
"fridge_freezer":6.499842897057533,
"others":23.2699080548048,
"cooking_radiator":14.427911937236786,
"standby":3.532345086336136
},
"consumption_percentage":{
"washing_machine":8.67344969737667,
"lighting_entertainment":23.96151531767041,
"fridge_freezer":13.886006716943777,
"others":16.534919750898595,
"cooking_radiator":29.663837843428254,
"standby":7.280270673682292
},
"cost_percentage":{
"washing_machine":8.67344969737667,
"lighting_entertainment":23.96151531767041,
"fridge_freezer":13.886006716943777,
"others":16.534919750898595,
"cooking_radiator":29.663837843428254,
"standby":7.280270673682292
}
}
Returns the total consumption by appliances for a specific day.
Period
GET /sensors/{sensor_id}/disag/period?from=2019-01-01&to=2019-01-31
Response body
{
"sensor_code":"2137",
"number_of_phases":"1",
"from_date":"2019-01-01",
"to_date":"2019-01-31",
"total_consumption":242.958,
"total_cost":63.5916,
"consumption":{
"washing_machine":21.07283991575241,
"lighting_entertainment":58.216418385505676,
"fridge_freezer":33.737164199352264,
"others":40.17291032838821,
"cooking_radiator":72.07066714763641,
"standby":17.68800002336502
},
"cost":{
"washing_machine":4.214606940746307,
"lighting_entertainment":11.646985083818436,
"fridge_freezer":6.499842897057533,
"others":23.2699080548048,
"cooking_radiator":14.427911937236786,
"standby":3.532345086336136
},
"consumption_percentage":{
"washing_machine":8.67344969737667,
"lighting_entertainment":23.96151531767041,
"fridge_freezer":13.886006716943777,
"others":16.534919750898595,
"cooking_radiator":29.663837843428254,
"standby":7.280270673682292
},
"cost_percentage":{
"washing_machine":8.67344969737667,
"lighting_entertainment":23.96151531767041,
"fridge_freezer":13.886006716943777,
"others":16.534919750898595,
"cooking_radiator":29.663837843428254,
"standby":7.280270673682292
}
}
Returns the total consumption by appliances for a specific period of days.
Previous day - 30 min
GET /sensors/{sensor_id}/disag/day/30min?date=2020-08-01
Response body
{
"sensor_code": "4103",
"number_of_phases": "1",
"day": "2020-08-01",
"estimations": {
"00:00": {
"consumption": {
"fridge_freezer": 0.012197500094771385,
"heating_cooking": 0.0,
"lighting_entertainment": 0.0017111111665144563,
"others": 0.009591388552449641,
"standby": 0.012500000186264515,
"washing": 0.0
},
"cost": {
"fridge_freezer": 0.00941331614329329,
"heating_cooking": 0.0,
"lighting_entertainment": 0.0013205353522231372,
"others": 0.0,
"standby": 0.009646768504483571,
"washing": 0.0
}
},
"00:30": {
"consumption": {
"fridge_freezer": 0.027161944657564163,
"heating_cooking": 0.0,
"lighting_entertainment": 0.00029583333525806665,
"others": 4.222182091325605e-05,
"standby": 0.012500000186264515,
"washing": 0.0
},
"cost": {
"fridge_freezer": 0.015178756336144735,
"heating_cooking": 0.0,
"lighting_entertainment": 0.00016531887393945928,
"others": 0.0,
"standby": 0.006985304789915804,
"washing": 0.0
}
},
...
"23:00": {
"consumption": {
"fridge_freezer": 0.006538888905197382,
"heating_cooking": 0.0,
"lighting_entertainment": 0.002475277753546834,
"others": 0.007485833154991271,
"standby": 0.012500000186264515,
"washing": 0.0
},
"cost": {
"fridge_freezer": 0.003857944393530488,
"heating_cooking": 0.0,
"lighting_entertainment": 0.0014604139141738415,
"others": 0.012966201647592188,
"standby": 0.007375000044703484,
"washing": 0.0
}
},
"23:30": {
"consumption": {
"fridge_freezer": 0.02196722504481729,
"heating_cooking": 0.0,
"lighting_entertainment": 0.0019051199354662663,
"others": 0.0,
"standby": 0.012127655019716443,
"washing": 0.0
},
"cost": {
"fridge_freezer": 0.0133585836738348,
"heating_cooking": 0.0,
"lighting_entertainment": 0.001168030546978116,
"others": 0.0087933991246897,
"standby": 0.007454166654497385,
"washing": 0.0
}
}
}
}
Returns the total consumption by appliances for a specific day with a 30 minutes precision.
Appliance cycles
GET /sensors/{sensor_id}/disag/day/cycles?day=2022-04-12
Response body
[
{
"applianceKey": "heating",
"totalCycles": 2,
"totalConsumption": 1917.0650024414062,
"cycles": [
{
"applianceKey": "heating",
"timestampMin": "2022-04-12T03:32:53",
"timestampMax": "2022-04-12T07:29:10",
"totalEnergyConsumption": 838.8944702148438
},
{
"applianceKey": "heating",
"timestampMin": "2022-04-12T07:17:24",
"timestampMax": "2022-04-12T11:48:14",
"totalEnergyConsumption": 1078.1705322265625
}
]
},
{
"applianceKey": "washing_machine",
"totalCycles": 1,
"totalConsumption": 164.13987731933594,
"cycles": [
{
"applianceKey": "washing_machine",
"timestampMin": "2022-04-12T07:10:00",
"timestampMax": "2022-04-12T08:07:29.500000",
"totalEnergyConsumption": 164.13987731933594
}
]
}
]
Returns the quantity of appliance cycles that happened in a day.
The supported appliances are:
- Cooking
- Dishwasher
- Electric Vehicle
- Kettle
- Tumble Dryer
- Washing Machine
Reports
Monthly
GET /sensors/{sensorId}/reports/monthly?month={month}&year={year}
Response body
{
"sensor_id":"2000",
"integrator_id":null,
"event_type":"EVENT",
"token":"7dbdcdc774f6100e6ab2274d3080bbd9",
"template":"monthly-007",
"account_properties":{
"account":{
"email":"volta2000@voltaware.com",
"first_name":"2000",
"last_name":"2000"
},
"property":{
"account_id":"2000",
"iso_country_code":"US",
"iso_locale_code":"en-US",
"time_zone_id":"America/Chicago",
"user_defined_language":"en-US",
"currency_info":{
"international_currency_symbol":"USD",
"display_name":"US Dollar",
"unit":"$",
"delimiter":",",
"separator":"."
}
}
},
"summary":{
"current":{
"period":{
"begin":"2020-06-01",
"end":"2020-06-30"
},
"days_range":{
"total":30,
"available":3
},
"total":{
"cost":{
"actualRaw":15.67965,
"actual":16
},
"consumption":{
"actualRaw":152.523,
"actual":153
},
"percentages":{
"cost":{
"percentage":100.0,
"difference_percentage":129,
"difference_percentage_raw":131.04351038370731
},
"consumption":{
"percentage":100.0,
"difference_percentage":164,
"difference_percentage_raw":163.44762069263317
}
}
}
},
"previous":{
"period":{
"begin":"2020-05-01",
"end":"2020-05-31"
},
"days_range":{
"total":31,
"available":2
},
"total":{
"cost":{
"actualRaw":6.786449,
"actual":7
},
"consumption":{
"actualRaw":57.895,
"actual":58
},
"percentages":{
"cost":{
"percentage":null,
"difference_percentage":null,
"difference_percentage_raw":null
},
"consumption":{
"percentage":null,
"difference_percentage":null,
"difference_percentage_raw":null
}
}
}
}
},
"days_detail":[
{
"date":"2020-06-01",
"weekend_day":false,
"total":{
"cost":{
"actualRaw":3.03734,
"actual":3
},
"consumption":{
"actualRaw":28.949,
"actual":29
}
}
},
{
"date":"2020-06-02",
"weekend_day":false,
"total":{
"cost":{
"actualRaw":7.639272,
"actual":8
},
"consumption":{
"actualRaw":74.968,
"actual":75
}
}
},
...
{
"date":"2020-06-30",
"weekend_day":false,
"total":{
"cost":{
"actualRaw":5.003044,
"actual":5
},
"consumption":{
"actualRaw":48.606,
"actual":49
}
}
}
],
"key_days":{
"average":{
"cost":{
"actualRaw":5.226552,
"actual":5
},
"consumption":{
"actualRaw":50.841,
"actual":51
},
"weekday":{
"cost":{
"actualRaw":5.226552,
"actual":5
},
"consumption":{
"actualRaw":50.841,
"actual":51
}
},
"weekend":{
"cost":{
"actualRaw":null,
"actual":null
},
"consumption":{
"actualRaw":null,
"actual":null
}
}
},
"least_active_day":{
"total":{
"cost":{
"actualRaw":3.03734,
"actual":3
},
"consumption":{
"actualRaw":28.949,
"actual":29
}
},
"date":"2020-06-01",
"weekend_day":false
},
"busiest_day":{
"total":{
"cost":{
"actualRaw":7.639272,
"actual":8
},
"consumption":{
"actualRaw":74.968,
"actual":75
}
},
"date":"2020-06-02",
"weekend_day":false
}
},
"carbon_footprint":{
"kgCO2":79.159437,
"number_trees":43.7344955801105
},
"report_count":110,
"disaggregation":{
"standby":{
"consumption":16.77753,
"cost":1.7247615,
"percentage":11
},
"heating_cooking":{
"consumption":6.10092,
"cost":0.627186,
"percentage":4
},
"lighting_entertainment":{
"consumption":18.30276,
"cost":1.881558,
"percentage":12
},
"fridge_freezer":{
"consumption":4.57569,
"cost":0.4703895,
"percentage":3
},
"dishwasher":{
"consumption":35.08029,
"cost":3.6063195,
"percentage":23
},
"boiler":{
"consumption":50.33259,
"cost":5.174284500000001,
"percentage":33
},
"air_conditioner":{
"consumption":18.30276,
"cost":1.881558,
"percentage":12
},
"others":{
"consumption":3.05046,
"cost":0.313593,
"percentage":2
}
},
"warnings":[
{
"name":"disconnection",
"info":{
"hours":671.0,
"minutes":59.0,
"seconds":35.0,
"total_seconds":2419175.0
},
"checkers":{
"1":{
"high_connection_rate":{
"passed":false,
"expected value":90,
"result value":6.669984499613444,
"info":"It is on line at least expected % of the time"
},
"disconnection_time":{
"passed":false,
"expected value":2332800,
"result value":2419114.0,
"info":"It is offline more than 2332800 seconds in the period."
}
},
"2":{
"high_connection_rate":{
"passed":false,
"expected value":90,
"result value":6.667631149291992,
"info":"It is on line at least expected % of the time"
},
"disconnection_time":{
"passed":false,
"expected value":2332800,
"result value":2419175.0,
"info":"It is offline more than 2332800 seconds in the period."
}
},
"3":{
"high_connection_rate":{
"passed":false,
"expected value":90,
"result value":6.669405873616537,
"info":"It is on line at least expected % of the time"
},
"disconnection_time":{
"passed":false,
"expected value":2332800,
"result value":2419129.0,
"info":"It is offline more than 2332800 seconds in the period."
}
}
}
},
{
"name":"low_activity",
"info":{
},
"checkers":{
"3":{
"high_positive_active_power_delta":{
"passed":false,
"expected value":1,
"result value":0.0,
"info":"It has an events with active_power_delta > 500 W"
},
"high_negative_active_power_delta":{
"passed":false,
"expected value":1,
"result value":0.0,
"info":"It has an events with active_power_delta < -500 W"
},
"high_positive_active_power":{
"passed":false,
"expected value":1,
"result value":0.0,
"info":"It has an events with active_power > 1000 W"
},
"high_average_consumption":{
"passed":false,
"expected value":0.5,
"result value":0.0,
"info":"In average, the daily consumption is more than expected kWh"
}
}
}
},
{
"name":"high_activity",
"info":{
},
"checkers":{
"1":{
"moderate_active_power_1500":{
"passed":false,
"expected value":0.5,
"result value":0.5453264911969503,
"info":"active_power > 1500 W less than expected%% of the time"
}
},
"2":{
"moderate_active_power_1500":{
"passed":false,
"expected value":0.5,
"result value":0.5397432446479797,
"info":"active_power > 1500 W less than expected%% of the time"
}
}
}
}
]
}
Returns sumarized data for a specific month.