We provide a way to send data from electricity meters, inverters, and battery storage systems via an HTTP request. This allows you to intelligently control devices for which energy data cannot be retrieved via the internet.
One scenario, for example, is running a script on a device in your local network that periodically queries the inverter and then sends the data to us.
Preparation
- Go to "Add device"
- Select "Measuring system"
- Select "PV system > 1kW"
- Select "Push API"
- Agree and click "Continue"
- Generate an API key by clicking the two arrows
- Go back one step
- Click "Continue" again
- Copy the API URL to use it in your target system
Integration
You can send data via HTTP POST request using the displayed URL. Since you have now created a valid URL, you can send your energy data to us. The Content-Type is always application/json. Numerical values must be transmitted as integers. The examples correspond to the body of the POST request.
Examples
Grid import (minus = grid export)
{
"watt": -1000
}This only transmits your household consumption. A negative value means power is being exported to the public grid (surplus). A positive value means grid import (consumption).
Grid import and PV production
{
"watt": -1000,
"producingWatt": 1500
}The current PV production is transmitted in the "producingWatt" field. The value is always positive.
Grid import, PV production, and battery storage
{
"watt": -1000,
"producingWatt": 1500,
"soc": 75,"chargingPower": 500,
"powerStorageState": 1
}batteryControlEnabled = true
{
"watt": -1000,
"producingWatt": 1500,
"soc": 75,"chargingPower": 500,
"powerStorageState": 1
"batteryControlEnabled": true
}The current State of Charge of your battery is transmitted in percent in the "soc" field. The charge/discharge power of your battery is transmitted in the "chargingPower" field. The value is always positive.
Depending on whether your battery is currently charging, discharging, or has another status, this information is transmitted in "powerStorageState". The following values are permitted:
Idle : 0 Charging : 1 Disabled : 2 Discharging : 3
{
"batteryControlState":1,
"batteryForcePowerWatt":null
}
The following mapping applies to batteryControlState:
# Battery control state mapping (API value -> display string)
BATTERY_CONTROL_STATES = {
0: "Normal",
1: "Idle",
2: "Force Charge",
3: "Force Discharge",
4: "Limit Charge Power",
}Upon successful transmission, the system responds with status Code 202 (Accepted).
Note: The transmitted data is not updated immediately in the frontend. Instead, it is temporarily cached for further processing. The value in the display updates approximately every 15 seconds. The API has a rate limit of 180 requests per minute.