myenergi smart home integration, free and open source

zappi, eddi, harvi and libbi by myenergi: charge, hot water, solar surplus and boosts.
Follow and drive your myenergi devices from Gladys: the zappi car charger, the eddi hot water diverter, the harvi wireless clamp sensor and the libbi battery. Gladys reads them through the myenergi cloud, the same service as the myenergi app: solar and grid power, charge state and energy of the car, hot water diverted from the solar surplus, battery level. It changes the zappi charge mode, starts and stops the boosts, and fires a scene when a charge is complete.
Developed without the hardware: feedback welcome. This integration was built and tested against the answers of the myenergi cloud published by the pymyenergi library, not against real devices. If something does not work as described, please say so on the Gladys forum or in the issues.
This integration is not affiliated with myenergi Ltd.
What you need
- Gladys Assistant 5.2.0 or later.
- A myenergi hub (or a zappi or eddi acting as hub), connected to the internet, with your devices paired to it in the myenergi app.
- The serial number of the hub and an API key. Sign in to your myenergi account, open Products: the serial number is shown next to the hub, with a button to generate an API key (myenergi article: How do I get an API key?). The key is shown only once: copy it.
Set up
- Install the integration from the Gladys catalog.
- In Configuration, enter the Hub serial number (digits only) and the API key, then save.
- Click Test the connection: the message under the button lists the devices found and the myenergi server of your account.
- Open the Discover tab: one device for the installation, plus one per zappi, eddi, harvi and libbi. Click Add, pick a room, save. Only the devices you add are followed.
Options:
- Refresh interval: how often the myenergi cloud is read, from 1 minute (default) to 10 minutes.
- Language of the texts: English, French (default), German or Spanish. Used for the feature names (given when a device is added), the status labels and the messages of the scenes.
The devices
Installation
The device named after your site in the myenergi app.
| Feature | What it is |
|---|---|
| Grid power | Power exchanged with the grid, in W: positive when importing, negative when exporting |
| Solar power | Power of your solar panels, in W |
| Grid voltage | Voltage measured by a zappi, eddi or libbi, in V |
The grid and solar values are those of the clamps typed Grid and Generation in the myenergi app, summed over every device, as the myenergi app computes them.
zappi
| Feature | What it is |
|---|---|
| Connector | Available (no car), Occupied (car plugged in) or Faulted |
| Charge | Charging, Vehicle connected, Paused (vehicle), Paused (charger: waiting for surplus, or Stop mode), Idle (charge complete, or no car) |
| Car plugged in | Yes / no: the simplest way to start a scene when you plug in |
| Charge mode | Command: Fast, Eco, Eco+ (solar surplus only) or Stop |
| Charge power | Power sent to the car, in kW |
| Session energy | Energy added to the car since it was plugged in, in kWh |
| Energy today | Energy the zappi delivered today (solar and grid), in kWh |
| Total energy | Cumulative energy delivered since the zappi was added, in kWh |
| Clamp n (…) | Power read by each clamp assigned in the myenergi app, in W |
Total energy is an index Gladys uses for its energy tracking: it computes
the consumption of every half hour and its cost from your energy contract.
The myenergi cloud has no lifetime counter: the integration adds up the daily
history, day after day, and keeps the result under /data.
eddi
| Feature | What it is |
|---|---|
| Status | Waiting for surplus, Diverting, Boosting, Max temperature reached or Stopped |
| Heating | Yes while the eddi heats the water (surplus or boost) |
| Heating power | Power sent to the heater, in W |
| Diverted today | Solar surplus diverted to the water today, in kWh |
| Total energy | Cumulative energy of the eddi (surplus and boost), in kWh, like the zappi |
| Surplus diversion | Command: on (normal mode) or stopped |
| Boost | Yes while a boost runs |
| Boost time left | Minutes left of the boost in progress |
| Probe 1 temperature, Probe 2 temperature | The temperature probes of the tank, when they are connected |
| Clamp n (…) | Power read by each assigned clamp, in W |
Boosts are started from the widget or a scene, for a set time: there is no on/off switch for heating, on purpose (a boost always ends by itself).
harvi
One power feature per clamp assigned in the myenergi app, in W. A harvi with no clamp assigned is not published.
libbi
| Feature | What it is |
|---|---|
| Battery level | State of charge, in % |
| Charge power | Power going into the battery, in W |
| Discharge power | Power coming out of the battery, in W |
| Status | Charging, Discharging, Idle, Battery full, Stopped, Fault… |
| Clamp n (…) | Power read by each assigned clamp, in W |
The libbi is read only: its modes and its charge target need the myenergi app account (not the API key), which this integration does not use.
Dashboard widget
Add the myenergi widget to a dashboard. It shows four tiles (solar, grid, the power of the zappi, the power of the eddi), the state of the zappi and of the eddi, the energy of the session and the energy diverted today. In its settings, pick a zappi and an eddi when you have several.
Buttons:
- Boost the car: asks for the energy to add, in kWh, and optionally a time it must be ready by (smart boost). Shown in Eco and Eco+ modes only: in Fast mode the zappi already charges at full power.
- Boost hot water: asks for a duration (1 to 240 minutes) and the heater.
- Stop the boost: stops every boost in progress, after a confirmation. Shown while a boost runs.
The tiles follow the live values of the devices added to Gladys. When the myenergi cloud does not answer, the widget shows the last reading and says so.
Scenes
Trigger
- zappi charge completed: the zappi has finished charging the car. Optional filter: the zappi. Variables: the energy of the session (kWh) and the name of the zappi, to put in a message.
For the other events (car plugged in, solar power above a threshold, battery level…), use the usual Device state trigger on the features above.
Actions
- Set the zappi charge mode: Fast, Eco, Eco+ or Stop.
- Boost the zappi: adds this energy (1 to 99 kWh) from the grid, now, or
ready by a time (
07:30) with a smart boost. Eco and Eco+ modes only. - Stop the zappi boost.
- Boost the eddi: heats the water from the grid for 1 to 240 minutes, on heater 1 or 2.
- Stop the eddi boost: cancels the boost of both heaters.
Scene ideas
- Cheap night tariff: at 23:00, Set the zappi charge mode to Fast; at 06:30, back to Eco+.
- Car ready for a trip: on a calendar event "trip", Boost the zappi of
30 kWh ready by
07:00. - Charge finished: on zappi charge completed, send "The car is charged:
{{triggerEvent.data.energy_kwh}}kWh added" to your phone. - Cloudy day: at 17:00, if Diverted today is below 2 kWh, Boost the eddi for 60 minutes.
Refresh and API usage
- One request to the myenergi cloud reads every device, at the refresh interval (1 minute by default, never faster). The hourly history (energy of the day, total energy) is read every 10 minutes per zappi and eddi added to Gladys, and once more just after midnight to close the day.
- Nothing is read while no device is added, except when you click Test the connection or search the Discover tab.
- A command (mode, boost) is one request, followed by a reading 5 seconds later to show what the device applied.
- The API is the one of the myenergi app; myenergi publishes no quota for it. If it answers "too many requests", raise the refresh interval.
Troubleshooting
- Serial number or API key refused by myenergi: check the serial number (digits only, the one of the hub) and generate a new API key; a new hub needs a new key.
- The myenergi cloud does not answer: the integration keeps trying at every interval and says when it answers again; the widget shows the last reading meanwhile. The myenergi app works through the same cloud: check it.
- Total energy starts low: it starts from the energy of the day the device is added. Gladys tracks the increases, not the starting value.
- A clamp appears or disappears: clamps are published as assigned in the myenergi app; after a change there, the Discover tab offers to update the device.
- More details: set the environment variable
LOG_LEVEL=debugon the integration and read its logs. The API key never appears in them.
Limits
- Developed without the hardware: the values and the commands follow the answers documented by pymyenergi; some fields (the zappi charge power, the libbi power sign) are interpreted, not verified on a device.
- Cloud only: no local control, and nothing works when the myenergi cloud or your internet connection is down.
- Not supported: unlocking the zappi (left out on purpose, for safety), the device priorities, the minimum green level, the libbi modes and charge target (they need the app account).
- Total energy is priced by Gladys at your contract tariff, solar share included: it is the cost the energy would have had from the grid.
- The serial numbers shown come from the cloud; names are those given in the myenergi app, read every 6 hours.
Configuration settings
These are the settings myenergi asks for in its configuration screen in Gladys.
| Setting | Type | Required | Description |
|---|---|---|---|
| myenergi account | section | No | Gladys reads your devices through the myenergi cloud, like the myenergi app. You need the serial number of your hub and an API key: sign in to your myenergi account, open Products, and generate an API key next to the hub. It is shown only once. |
| Hub serial number | string | Yes | Digits only, as shown under Products in the myenergi account. |
| API key | secret | Yes | Generated in the myenergi app. Stored in Gladys, never written to the logs. |
| Refresh interval | select | No | How often the myenergi cloud is read. One minute at most, like the myenergi app. |
| Language of the texts | select | No | Feature names (given when a device is added), scene messages, status labels. |
How to install myenergi in Gladys
- In Gladys, open Integrations: myenergi appears in the catalog, next to the native integrations, with a community badge.
- Click Install. Gladys pulls the Docker image (
ghcr.io/guim31/gladys-myenergi: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-myenergi.
myenergi requires Gladys >=5.2.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
myenergi 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