Easee smart home integration, free and open source

Easee EV chargers and Equalizer in Gladys: status, power, energy, charge control.
Overview
This integration brings your Easee EV chargers (Easee Home, Easee Charge, Charge Lite, Charge Max, Charge Up, Charge Core, Charge Pro, Easee One) and your Easee Equalizer into Gladys, through the official Easee cloud API, the same one the Easee app uses.
- Each charger becomes a Gladys device: connector status, charging state, power, current per phase, session energy, total energy, current limit, and the charge controls.
- The Equalizer becomes a device that measures the house: grid import and export, current per phase, imported and exported energy.
- The total energy of a charger is a meter index: the energy monitoring of Gladys turns it into a consumption every 30 minutes.
- A dashboard widget, two scene triggers and a scene action complete it.
Smart (solar) charging stays in the Easee app, or in evcc, which Gladys already supports: this integration does not duplicate it.
This integration is not affiliated with Easee. It was developed without the hardware: feedback is welcome on the GitHub repository.
Requirements
- Gladys Assistant 5.1.0 or later (5.2 for the energy monitoring of the total energy).
- An Easee account (the one of the Easee app) that owns or has access to the chargers.
- The chargers set up in the Easee app and connected to the internet (Wi-Fi or 4G).
- Gladys needs internet access: everything goes through the Easee cloud (
api.easee.com).
Configuration
- In Gladys, open Integrations, install Easee, then open its configuration.
- Fill in the e-mail address or phone number and the password of the Easee account. A phone number starts with the country code, e.g.
+33612345678. - Choose the language of the device texts: the names of the features (set when you add a device) and the detailed status of the chargers. French by default.
- Choose the refresh interval: 1 minute (default), 2 or 5 minutes.
- Save, then press Test the connection: the message lists the chargers and Equalizers found.
- Open the Discovery tab and add the devices you want.
How the integration talks to Easee:
- It logs in once, then keeps the access token and its refresh token in its private
/datavolume. The password stays in the Gladys configuration and is never written in the logs. - Easee limits the number of requests of an account (HTTP 429 beyond). The integration reads the state of each added device once per interval, the settings of each charger every ten minutes, and nothing for the devices you did not add. On a 429 it pauses for the delay Easee asks (5 minutes otherwise).
- If Easee refuses the credentials, the integration stops trying until you save the configuration again, so the account is not locked by repeated attempts.
Devices
Charger
| Feature | Type in Gladys | Content |
|---|---|---|
| Connector | Charging station, connector | Available (no vehicle), occupied (vehicle plugged in), unavailable (offline), faulted |
| Charging state | Charging station, charging | Charging, vehicle connected, paused by the vehicle, paused by the charger, idle |
| Easee status | Text | The detailed Easee status: waiting to start, charging completed, waiting for authorization... |
| Charging power | Power (W) | Power delivered to the vehicle |
| Current L1, L2, L3 | Current (A) | Current of each phase |
| Session energy | Energy added (kWh) | Energy of the session in progress, or of the last one |
| Total energy | Index (kWh) | Energy meter of the charger since its installation (updated by Easee about once an hour) |
| Current limit | Target current (A), control | Dynamic limit of the charger: 0 (no current) or 6 A to the maximum of the charger |
| Charging allowed | Charge switch, control | On: start or resume the charge. Off: pause it. Needs a vehicle plugged in |
| Charger enabled | Switch, control | Enables or disables the charger in its settings |
The charger is also shown with a cloud badge, which turns to unreachable when the charger is offline.
The current limit is the dynamic limit of Easee, meant to be changed often (load management). It does not touch the maximum current set by the installer.
Equalizer
| Feature | Type in Gladys | Content |
|---|---|---|
| Grid import | Grid, import power (W) | Power taken from the grid by the house |
| Grid export | Grid, export power (W) | Power sent to the grid (solar panels) |
| Current L1, L2, L3 | Current (A) | Current of each phase of the house |
| Imported energy | Grid, import index (kWh) | Import meter of the Equalizer |
| Exported energy | Grid, export index (kWh) | Export meter of the Equalizer |
Widget
The Easee charger widget shows one charger: charging power, session energy and current limit as live tiles, the Easee status and the connection, and the buttons that fit the situation:
- while charging: Pause and Stop;
- vehicle plugged in, not charging: Start (or Resume) and Stop;
- no vehicle or charger offline: no button.
Stop asks for a confirmation: it ends the session (with an authorization required, the vehicle must be authorized again). Choose the charger in the widget settings.
Scene triggers and action
Triggers
- Vehicle plugged in: a vehicle was plugged into a charger that had none. Variable: the charger name.
- Charging completed: the vehicle stopped taking current by itself (full battery or its own limit) and is still plugged in. Variables: the charger name, the session energy in kWh.
Both are detected at each reading, so within one refresh interval. A charger coming back online with a vehicle already plugged in does not fire Vehicle plugged in. Each trigger can be limited to one charger.
Action
Control an Easee charge starts (or resumes), pauses or stops the charge of a charger. Its output is the Easee command sent (resume_charging, start_charging, pause_charging, stop_charging). The action fails when no vehicle is plugged in.
The controllable features (current limit, charging allowed, charger enabled) can also be set by the standard Control a device action of Gladys.
Scene examples
- Off-peak charging: at 22:00 on weekdays, Control an Easee charge with "Start or resume"; at 6:00, "Pause".
- Reminder: every weekday at 21:00, if the Connector of the charger is "available" (no vehicle), send the message "The car is not plugged in".
- Welcome home: trigger Vehicle plugged in → turn on the garage light for 5 minutes.
- End of charge: trigger Charging completed → send "Charge done:
{{triggerEvent.data.session_energy}}kWh on{{triggerEvent.data.charger_name}}". - Load shedding: when the Grid import of the Equalizer goes above 9000 W, set the Current limit to 6 A; back below 6000 W, set it to 16 A.
Troubleshooting
- "Easee refused the e-mail address (or phone number) and password": check them in the Easee app, then save the configuration again (the integration does not retry before that).
- "Cannot reach the Easee cloud": Gladys has no internet access, or the Easee cloud is down. The integration retries at each interval and says when it works again.
- A charger stays "unavailable": the charger itself is offline for Easee (Wi-Fi or 4G). Check it in the Easee app.
- "No vehicle connected" on a command: start, pause and stop need a plugged-in vehicle.
- Too many requests: other tools use the same Easee account at the same time. Choose a longer refresh interval.
- Total energy does not move: Easee updates it about once an hour; the session energy moves during the charge.
- Detailed logs: in the container settings, set
LOG_LEVEL=debug. A normal reading writes nothing at the default level.
Limitations
- Developed without the hardware: the answers of the Easee API come from the open-source clients (pyeasee, Home Assistant), not from a real charger. Feedback is welcome.
- Cloud only: no local connection to the charger, nothing works without internet.
- No real-time stream: the state is read every 1, 2 or 5 minutes, and once more 10 seconds after a command.
- The current per phase reads the terminals of a TN grid (most of Europe). On an IT grid (Norway), the phases may be shifted.
- Not handled: smart and solar charging, charging schedules, RFID authorization, cable lock, phase mode, Equalizer load balancing settings. Unlocking the cable is deliberately not offered.
Configuration settings
These are the settings Easee asks for in its configuration screen in Gladys.
| Setting | Type | Required | Description |
|---|---|---|---|
| Easee account | section | No | Use the account of the Easee app (e-mail address or phone number). Gladys reads your chargers and Equalizer through the Easee cloud every minute. Not affiliated with Easee. |
| E-mail or phone number | string | Yes | The login of the Easee app. A phone number starts with the country code, e.g. +33. |
| Password | secret | Yes | |
| Language of the device texts | select | No | Names of the features (set when a device is added) and detailed status of the chargers. |
| Refresh interval | select | No | How often the Easee cloud is read. Easee limits the number of requests: keep one minute or more. |
How to install Easee in Gladys
- In Gladys, open Integrations: Easee appears in the catalog, next to the native integrations, with a community badge.
- Click Install. Gladys pulls the Docker image (
ghcr.io/guim31/gladys-easee:1.0.1), 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/guim31/gladys-easee.
Easee 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
Easee 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 guim31, 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