NAV Navbar
  • ◀ Back to Doc's Home
  • HTTP Services API
  • Base API URL
  • Versioning
  • Authentication
  • Accounts
  • Sensors
  • Cost and Consumptions
  • Tariffs
  • Metadata
  • Property
  • Appliances
  • VoltaScore
  • Disaggregation
  • Reports
  • 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:

    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:

    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.