Skip to main content

Electrolux / AEG smart home integration, free and open source

Electrolux / AEG integration for Gladys Assistant

Electrolux and AEG appliances: cycles, time left, fridges, air conditioners and purifiers.

Follow and control your connected Electrolux group appliances in Gladys — Electrolux, AEG, Zanussi, Frigidaire: washing machines, washer-dryers, tumble dryers, dishwashers, ovens, fridges, portable and window air conditioners, air purifiers, dehumidifiers and Pure i9 robot vacuums. The integration uses the official Electrolux Group Developer API (developer.electrolux.one), with the account of your Electrolux or AEG app.

Developed without the hardware nor an Electrolux account: feedback welcome. The code is checked against real answers of the API published with Electrolux's official SDK, not yet on a real appliance.

Community integration, not affiliated with Electrolux Group. Electrolux, AEG, Zanussi and Frigidaire are trademarks of their owners.

Overview​

Each appliance of your account becomes a Gladys device. Its features are built from what the appliance declares to Electrolux (its "capabilities"), not from a list of models: a washing machine without a door sensor gets no door feature, a fridge with a third compartment gets its setpoint.

  • Washing machines, washer-dryers, dryers, dishwashers: state (off, ready, delayed start, running, paused, finished, alarm), program, cycle phase, remaining time, expected end, time before a delayed start, door, "remote start armed", alerts.
  • Ovens (single or double cavity): state, program, cavity temperature, setpoint (read only), food probe, remaining time, expected end, door, light.
  • Fridges: setpoint of each compartment (fridge, freezer, extra compartment), door of each compartment, fast mode, humidity, water and air filters, alerts (door left open, temperature alarm).
  • Air conditioners (classic and the newer "DAM" portable models): on/off, mode, setpoint, fan speed, room temperature, filter.
  • Air purifiers: on/off, mode, fan speed, PM2.5, PM10, volatile organic compounds, CO2, humidity, temperature, filter life, when the model has them.
  • Dehumidifiers: on/off, humidity, filter. Robot vacuums: state and battery. Hobs and hoods: state and alerts.

Plus a dashboard widget of the running cycles, two scene triggers ("cycle finished", "appliance alert") and a scene action to pause, resume, stop — and, when you allow it, start — a cycle.

Requirements​

  • Gladys 5.1.0 or later.
  • Your appliances paired in the Electrolux or AEG app (My Electrolux, My AEG, Electrolux Kitchen…), with a password on the account (an account created only with Google or Apple sign-in cannot log in to the portal: add a password from the app first).
  • An internet connection: Electrolux has no local API, everything goes through the Electrolux cloud.

Configuration​

  1. Go to the Electrolux developer portal (developer.electrolux.one) and sign in with the account of your app.
  2. In the dashboard, create an API key. Copy it.
  3. Still in the dashboard, generate a token pair (an access token and a refresh token). Copy the refresh token: the access token is not needed.
  4. In Gladys, open Integrations → Electrolux / AEG → Configuration, paste the API key and the refresh token, choose the language of the feature names and save.
  5. Click Test the connection: the message lists your appliances and the API calls made over the last 24 hours.
  6. Open the Discover tab and add the appliances you want.

The refresh token is single use. Each time the integration renews its access (every 12 hours), Electrolux gives a new refresh token and the old one stops working. The integration keeps the current one in its own storage (/data), so you paste a token only once. If you paste a different one later, it replaces the stored one. Do not reuse in another tool the token you pasted in Gladys: one of them would lose its access.

Remote start of washing machines is off by default. Switch on "Allow remote start of washing machines" only if you want a scene to start a washing machine (see "Commands and safety").

What each device does​

FeatureAppliancesValues
StateallOff, Ready to start, Delayed start, Running, Paused, Finished, Alarm, Not connected…
Alertswhen the appliance reports themThe active alerts in words ("Salt missing", "Door left open"), "—" when none
Program, cycle phaselaundry, dishwashers, ovensProgram name as Electrolux names it (English), phase in your language
Remaining time, delayed start inlaundry, dishwashers, ovensMinutes
Expected endlaundry, dishwashers, ovensTime of day ("14:35"), "—" when nothing runs
Doorlaundry, dishwashers, ovens, fridge compartmentsOpen / closed
Remote start armedlaundry, dishwashersOn when remote start is enabled on the appliance
Temperature, setpoint, food probeovens°C, read only
LightovensOn / off (controllable)
Setpoint, fast modefridge compartments°C within the appliance's range / on-off (controllable)
On/Off, mode, setpoint, fan speedair conditionersControllable
On/Off, mode, fan speedair purifiersControllable (fan speed in Manual mode only)
PM2.5, PM10, VOC, CO2, humidity, temperature, filter lifeair purifiersWhen the model measures them
Humidity, filterfridges, dehumidifiers% / Good, Buy soon, Replace, Clean
Batteryrobot vacuums% (six levels)

Each appliance also shows a cloud badge, or unreachable when the appliance is not connected to the Electrolux cloud; its other values then stay at the last known ones.

Commands and safety​

The rule is the one of the Miele integration: nothing that heats is started remotely.

  • Ovens and hobs: read only, except the oven light. An oven may be stopped by the scene action (the safe direction), never started nor set.
  • Dryers and washer-dryers: pause and stop only. No start, no resume (it would heat again).
  • Dishwashers: pause, resume, stop. No remote start.
  • Washing machines: pause, resume, stop, and start only when all three are true: "Allow remote start of washing machines" is on in Gladys, remote start is armed on the machine (you loaded it, chose the program and pressed the remote start button), and the machine is ready to start.
  • Fridges, air conditioners, purifiers, dehumidifiers: the device features are controllable (setpoints, modes, on/off).

Before sending anything, the integration checks that the appliance is connected, that its remote control is enabled, and that the appliance accepts the command in its current state (Electrolux describes it in the capabilities). Otherwise the command is refused with a clear message instead of an error from Electrolux.

Refresh and quotas​

The Electrolux API allows 5000 calls a day per API key, 10 per second and 5 at once. The integration stays well below:

  • it listens to the live stream of Electrolux: a change (a cycle ending, a door opening) arrives within seconds, for one call per connection;
  • it reads the whole account every 30 minutes as a safety net;
  • when the live stream is unavailable, it reads as often as 2000 calls a day allow: about every 2 minutes with one or two appliances, every 12 minutes with fifteen;
  • reads stop by themselves at 80 % of the daily quota (commands keep a margin), and after a "too many requests" answer from Electrolux, until the delay it asks for.

A full read costs one call plus one per appliance; the capabilities of an appliance are read once, then only after a firmware update. The Gladys poll of the devices (once a minute) is only a fallback: it is skipped when the integration read recently.

Widget​

Add the Electrolux appliances widget to a dashboard: it lists the washing machines, dryers, dishwashers and ovens that are running, waiting for a delayed start, paused, in alarm, finished or ready to start — the running ones first, with the time left as a badge, the program, the phase and the expected end. When nothing runs, one line says so. It follows the language of your Gladys interface.

Scene triggers and actions​

  • Trigger "Electrolux cycle finished": a washing machine, dryer, dishwasher or oven reached the end of its program. Filter on an appliance, or leave empty for all. Variables: appliance name, program.
  • Trigger "Electrolux appliance alert": an appliance raises a new alert (door left open, water leak, salt missing, filter to replace, alarm…). One event per new alert. Variables: appliance name, alert in words, alert code.
  • Action "Control an Electrolux cycle": start (washing machine, if allowed), pause, resume or stop the program of an appliance. Output: "command sent".

Scene examples​

  • Laundry done: trigger "Electrolux cycle finished" on the washing machine → send "The washing is done ({{triggerEvent.data.program}})" to the family.
  • Off-peak washing: in the evening, load the machine, choose the program and press remote start on it. A scene at 22:30 (off-peak hours) runs the action "Control an Electrolux cycle" → start.
  • Fridge door: trigger "Electrolux appliance alert" on the fridge → send "{{triggerEvent.data.device_name}}: {{triggerEvent.data.alert}}".
  • Cool the bedroom: when the bedroom temperature goes above 26 °C, switch the air conditioner on in cooling mode at 24 °C.

Troubleshooting​

  • "Electrolux refused the API key or the tokens": the refresh token was spent elsewhere or revoked. Generate a new token pair on the portal and paste the new refresh token in the configuration.
  • "Electrolux API quota reached": another tool uses the same API key, or many restarts happened. Reads resume by themselves; create a separate API key for each tool.
  • No appliance: check that the appliances are paired in the Electrolux or AEG app with the same account, then click Test the connection.
  • A command is refused: the message says why — remote control disabled on the appliance, appliance not connected, command not accepted in its current state (pause it first to stop it), or remote start not allowed.
  • Values change late: the live stream may be unavailable for your key; the integration then reads every few minutes (see "Refresh and quotas").
  • Logs: they are quiet on purpose. Set LOG_LEVEL=debug to see every read and every state sent.

Limitations​

  • Developed without the hardware nor an account: the behaviour on real appliances is still to be confirmed. Feedback is welcome.
  • Program names come from Electrolux, in English.
  • Air conditioner modes Gladys does not know (Eco, for example) are not offered; the mode feature then shows no value.
  • Fridges report their setpoints; few report the measured temperature, shown only when the appliance gives it.
  • Robot vacuums are read only (state and battery); hoods and hobs show their state and alerts.
  • Programs are chosen on the appliance: the integration does not select a program nor its options.
  • The quota figures come from the developer portal as reported by other projects; Electrolux may change them.

Data and privacy​

The API key and the refresh token you paste stay in the Gladys configuration; the current tokens are kept in the integration's own storage (/data, readable by the integration only). None of them ever appears in the logs. The integration talks to api.developer.electrolux.one and to the live stream URL Electrolux gives, nothing else.

Configuration settings​

These are the settings Electrolux / AEG asks for in its configuration screen in Gladys.

SettingTypeRequiredDescription
Before you startsectionNoElectrolux has no local API: everything goes through the Electrolux cloud, with the account of the Electrolux or AEG app. Sign in to the Electrolux developer portal with that account, create an API key, then generate a token pair (access and refresh tokens). Paste the API key and the refresh token below and save. The refresh token changes at each use: the integration keeps the current one, so paste it here only once.
API keysecretYesAPI key created on the Electrolux developer portal.
Refresh tokensecretYesRefresh token generated with the API key. Paste a new one only if Electrolux refuses the current one.
Allow remote start of washing machinesbooleanNoOff by default. When on, a scene may start a washing machine whose remote start is armed on the machine. Never an oven, a dryer or a washer-dryer.
LanguageselectNoFeature names of new devices, states and widget. Program names come from Electrolux, in English.

How to install Electrolux / AEG in Gladys​

  1. In Gladys, open Integrations: Electrolux / AEG appears in the catalog, next to the native integrations, with a community badge.
  2. Click Install. Gladys pulls the Docker image (ghcr.io/guim31/gladys-electrolux:1.0.1), starts it in a sandbox isolated from the core, and generates the integration's interface (devices, discovery and configuration).
  3. Open the Configuration screen of the integration, fill in the settings, and save.
  4. You can also install it directly from its repository URL: https://github.com/guim31/gladys-electrolux.

Electrolux / AEG 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​

Electrolux / AEG 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.

Subscribe to the Gladys Assistant newsletter

A few emails per month about new releases and project news. Sent by Pierre-Gilles Leymarie, founder of the project. Unsubscribe anytime 🙂