Zonneplan smart home integration, free and open source

Zonneplan dynamic energy prices, P1 meter, solar panels, home battery and charge point.
This integration brings your Zonneplan account into Gladys: the dynamic electricity and gas prices, and the equipment Zonneplan monitors — P1 meter (Zonneplan Connect), solar panels, home battery (Nexus) and charge point.
It talks to Zonneplan's servers over the internet (cloud): nothing to install on your network. It needs Gladys 5.1 or later.
Sign in
Zonneplan has no password: it e-mails you a one-time code.
- In Integrations → Zonneplan → Configuration, enter the e-mail address of your Zonneplan account and save.
- Click Send me a sign-in code. Zonneplan e-mails you a code.
- Type the code in Sign in with the code, then confirm. The code is valid for a few minutes: if it expired, ask for a new one.
The answer under the button lists what was found on your account. The session then renews itself; you only sign in again if it is ended (for example from the Zonneplan app). Test the connection checks the session at any time, Sign out deletes it from Gladys.
Settings
| Setting | What it does |
|---|---|
| Zonneplan account e-mail | The address the sign-in code is sent to. |
| Price slots | Hourly (default) or every quarter of an hour: since October 2025 the market sets a price every 15 minutes; Zonneplan also publishes hourly averages. |
| Refresh interval (s) | How often the P1 meter, solar panels, battery and charge point are read (60 to 3600 s, default 300). Zonneplan limits the number of calls: keep 300 s unless you need faster. |
Devices
Open the Discovery tab of the integration and create the devices you want. There is one device per installation of your account:
| Device | Features |
|---|---|
| Zonneplan electricity price | Price per kWh now, price of the next slot, tariff group (low / normal / high), sustainable energy (%) |
| Zonneplan gas price | Price per m³ today, price of the next day (once known) |
| Zonneplan P1 meter | Power drawn from the grid, power returned to the grid (W) |
| Zonneplan solar panels | Production power (W), total production (kWh) |
| Zonneplan home battery | Battery level (%), charge power, discharge power (W) |
| Zonneplan charge point | Charge power (W), energy of the session (kWh), Charge now (boost) switch |
Prices include VAT and taxes, as shown in the Zonneplan app. The electricity price changes exactly at the start of each slot. The P1 and solar readings come through Zonneplan's cloud every few minutes: they are not second-by-second readings.
The Charge now switch starts a boost charge (full power now, whatever the price); off stops the charge. Outside a boost, Zonneplan charges on the cheap hours by itself, and the switch shows ON while such a charge runs.
Every device shows a cloud badge. An orange dot on it means Zonneplan asked to slow the calls down for a while; the data comes back by itself.
Scenes
Triggers
| Trigger | When | Variables |
|---|---|---|
| Zonneplan tariff group changed | The new price slot is in another group; filter on the group | new group, previous group, price |
| Zonneplan price below zero | The electricity price just went below zero | price, end of the slot (HH:mm) |
| Zonneplan prices of tomorrow published | Tomorrow's prices are known (usually in the afternoon) | date, cheapest and most expensive slot and price, average |
| Zonneplan charging started / stopped | A charge point starts or stops charging; filter on the charge point | power, energy of the session |
Actions
| Action | What it does |
|---|---|
| Read the Zonneplan price | Gives the price now and next, the tariff group, the sustainable share and the cheapest slot of the day |
| Find the cheapest Zonneplan period | The cheapest run of consecutive slots of the given length (in hours) within the coming hours: start, end, average price, "starts in" minutes, "starts now" |
| Zonneplan: charge now | Boost charge on the chosen charge point |
| Zonneplan: stop charging | Stops the charge of the chosen charge point |
Example — run the dishwasher during the cheapest 2 hours of the night: a scene triggered at 22:00 runs Find the cheapest Zonneplan period (duration 2, within 10), then waits starts in minutes and switches the dishwasher plug on.
Example — charge the car when the price goes negative: trigger Zonneplan price below zero, action Zonneplan: charge now.
The times (HH:mm) are those of the Netherlands.
Widgets
Add them from Dashboard → Edit → Add a widget:
- Zonneplan prices: price now and next (colored by tariff group), sustainable share, the price curve of the coming hours with the cheapest and most expensive slot of the day.
- Zonneplan overview: live power from and to the grid, solar production, battery level and charge power, the connection, and the Charge now / Stop charging buttons.
Troubleshooting
| Message in the Configuration screen | What to do |
|---|---|
| Not signed in | Follow Sign in. |
| The Zonneplan session expired | Request a new sign-in code: the session was ended or is too old. |
| Zonneplan asked to slow down | Nothing: the calls resume at the time shown. Raise the refresh interval if it happens often. |
| Zonneplan cannot be reached | Check the internet access of Gladys; the integration retries every minute. |
A device is missing? Check that its contract is active in the Zonneplan app, then click Scan in the Discovery tab.
Privacy
The integration only talks to app-api.zonneplan.nl. The session tokens are stored in the
private data volume of the integration, readable by it only, and never written to the logs.
Sign out deletes them. This integration is not made nor supported by Zonneplan; it uses
the same API as the Zonneplan app.
Configuration settings
These are the settings Zonneplan asks for in its configuration screen in Gladys.
| Setting | Type | Required | Description |
|---|---|---|---|
| Getting started | section | No | Zonneplan has no password: it e-mails you a sign-in code. 1. Enter the e-mail address of your Zonneplan account below and save. 2. Click "Send me a sign-in code". 3. Type the code received by e-mail in "Sign in with the code". The devices of your account (prices, P1 meter, solar panels, battery, charge point) then appear in the Discovery tab. |
| Zonneplan account e-mail | string | Yes | The address you sign in to the Zonneplan app with. The sign-in code is sent there. |
| Price slots | select | No | Since October 2025 the market sets a price every quarter of an hour; Zonneplan also publishes hourly averages. |
| Refresh interval (s) | number | No | How often the P1 meter, solar panels, battery and charge point are read, in seconds (one minute minimum). Zonneplan limits the number of calls: 300 s is what its app uses. |
How to install Zonneplan in Gladys
- In Gladys, open Integrations: Zonneplan appears in the catalog, next to the native integrations, with a community badge.
- Click Install. Gladys pulls the Docker image (
ghcr.io/prohand/gladys-zonneplan:0.1.2), starts it in a sandbox isolated from the core, and generates the integration's interface (devices, discovery and configuration). - Open the Configuration screen of the integration, fill in the settings, and save.
- You can also install it directly from its repository URL: https://github.com/prohand/gladys-zonneplan.
Zonneplan requires Gladys >=5.1.0. The catalog inside Gladys refreshes every hour, so a new version becomes available at most one hour after its release.
Not running Gladys yet? It is free and open source: follow the installation guide to get started.
About external integrations
Zonneplan is an external integration: a community integration packaged as a Docker container and published on GitHub, that Gladys installs in one click and runs in a sandbox isolated from its core. It is published and maintained by prohand, not by the Gladys core team.
- Browse all integrations, native and community
- Build and publish your own external integration
- Source code on GitHub — source of this documentation