Overview
The Full NOX Control Package provides access to:- Device information
- Energy consumption data.
- Forecasted consumption (= nomination)
- Actual consumption
- Typical consumption if NOX would not have altered the device steering.
- Changing user Settings
- Deleting a user
Getting Started
Prerequisites
- Valid NOX API key (see Authentication)
Base URL
All endpoints use the base URL:- Sandbox:
https://api.sandbox.nox.energy - Production:
https://api.nox.energy
Core Workflows
All our collection api endpoints use a
next_token to paginate through results if the size limit of the response has been reached.
To paginate through a response, you can use the next_token received in the response as a query parameter and call the same endpoint with
the same parameters again. You can repeat this process until you have received the last page of the response, which is signified
by the next_token field becoming null.1. Getting Device Information
To fetch all devices configuration data you can call the following endpoint:cURL
user_id and/or device_id in the
redirect_uri callback parameters. Use the parameters received from the redirect and the
/devices endpoint to fetch on a per user_id or per device_id basis.
This can be done using the query parameters like the below example:
cURL
device_id- Unique identifier per device. Each nox user_id can have multiple device_id’s.brand- Manufacturer brand of the device. We currently only support 1 heat pump brand per user.model_type- Signifies the type of device (e.g. air-to-water/air-to-air/… device)has_delayed_power_data_1d- Signifies if the device can or cannot provide real-time power data but instead provides its power data with a delay of 1 day between 2-4 AM UTC of the full previous day.
steerable_status and legionella_config. You will not see these fields
in the full control package as they mostly provide information that is useful for the
supplier control package.
You can however request us to see data change events from some of these fields like
needs_reauthentication through our webhook. You can communicate to us which fields you are interested in and
we can set up a custom webhook with a POST endpoint you provide to us and you will receive real-time updates on change events.
We suggest you read Partner webhooks page for more info.
A lot of query parameters exist on the /devices we recommend you to use them
if relevant, to reduces the size of data transfer.
2. Retrieving Consumption Data
2.1 Historical Consumption
Get actual measured consumption data of all devices of a certain timeframe:cURL
aggregated=true query parameter to
get the aggregated consumption across all devices.
If you are not interested in aggregated data but on a per device basis, you should use the query parameter device_id to get the consumption data on a per device basis.
Another option is to query without providing the device_id query parameter but loop over the same api call using the next_token query parameter
to paginate through the data of all devices. We would only recommend this option if you are interested in all devices data and if your timeframe you are querying is small (e.g. 15minutes)
as the amount of data can become quite large if you query a long timeframe and have many devices.
More info about the /device/consumption/historical endpoint.
2.2 Forecasted Consumption
Get forecasted (= nominated) consumption data for all devices of a certain timeframe:cURL
device_id query parameter.
More info about the /device/consumption/forecast/historical endpoint.
2.3 Typical Consumption:
Get baseline consumption:cURL
3. Managing User/Device Settings
Update user preferences and optimization settings on a per user/device basis. We recommend to directly go to the endpoint documentation of /devices/settings to seel all possible settings you can change. We recommend to at least implement the following settings options in your UI components of your website/app:- Preferred temperature
- Room comfort bounds
- Manufacturer schedule on/off
- Optimization Settings (but not flex trading as this is mutually exclusive with other optimizations and should only be enabled if the supplier has the supplier control package)
- Location information for better forecasting and optimization results:
- Country
- Postal code
- Webhooks setup -> Real-time settings sync between all parties
4. Deleting a User
You can delete a single user. This operation will delete all data associated with the user_id. This is a irreversible operation and disconnects the devices. Once deleted, we can no longer provide energy consumption data of the devices of the user. We recommend to only use this endpoint if the user explicitly requests to delete their data from your side or when the user switches to another energy supplier. More info at the endpoint documentation of /user.Next Steps
- Set up Partner Webhooks for real-time data updates.