Skip to content

TTLucian/ha-electrolux

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

388 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

๐Ÿ  Home Assistant Electrolux Integration

Ko-fi

๐Ÿ“– Description

A comprehensive Home Assistant integration for Electrolux appliances using the official Electrolux Group Developer API. This integration provides real-time monitoring and control of Electrolux and Electrolux-owned brand appliances including AEG, Frigidaire, and +home.

Key Features:

  • โœ… Real-time appliance status updates via Server-Sent Events (SSE)
  • โœ… Remote control with safety validation (respects appliance safety locks)
  • โœ… Automatic model detection from Product Number Codes (PNC)
  • โœ… Comprehensive sensor coverage (temperatures, states, diagnostics)
  • โœ… Control entities (buttons, switches, numbers, selects)
  • โœ… Multi-language support
  • โœ… Robust error handling and connection management

โš ๏ธ Disclaimer: This Home Assistant integration was not made by Electrolux. It is not official, not developed, and not supported by Electrolux.

๐Ÿ”Œ Supported Devices

All Electrolux Group appliances connected via the official app should work with this integration. Every connected appliance will have entities created dynamically from whatever the API reports โ€” at minimum including connectivity state, software version, and network interface.

How entity creation works

Electrolux appliances communicate two separate things to the cloud:

  • Capabilities โ€” what the appliance can do: the controls, modes, and settings it exposes. These are its documented features and are used to create controllable entities.
  • Reported state โ€” a snapshot of everything happening right now: sensor readings, error flags, firmware version, internal counters, signal strength, raw log values, device IDsโ€ฆ

The integration creates entities from capabilities automatically. Reported state, however, is a very noisy dump โ€” most of it has no business being a Home Assistant entity (firmware strings, raw counters, internal IDs, etc.). For values that only appear in reported state and not in capabilities โ€” like air quality sensors on some purifier models โ€” the integration needs an explicit catalog entry to know what unit and device class to assign them. Without that, it can't tell whether a numeric value is a temperature in ยฐC, a counter, or something else entirely.

The catalog is what bridges the gap: it tells the integration which reported state values are meaningful, what unit and device class they should have, and what icon and friendly name to display. This is why diagnostics files are so valuable โ€” they contain both the capabilities schema and a real reported state snapshot, giving everything needed to build accurate catalog entries for a new appliance.

Full catalog support means the integration has been tested against real diagnostic data for that model โ€” providing correct device_class, units, icons, and entity categories for all available entities. Without a catalog entry, entities are still created for everything the API reports as capabilities but appear as generic sensors with no device class, unit, icon, or friendly name. Sensors that only appear in reported state and are not in capabilities will be missing entirely until a catalog entry is added.

This is not just a design choice of this integration โ€” it mirrors how the official Electrolux SDK itself works. The SDK's is_feature_supported() always checks against the capabilities response, never against the reported state. A value that appears only in the reported state but not in capabilities is treated as unsupported by the SDK, and therefore invisible to the integration unless an explicit catalog entry is built from real diagnostic data.

As a concrete consequence: temperature (Temp) and humidity (Humidity) sensors on air purifiers, and values like measured load weight (measuredLoadWeight), optisense load weight (fcOptisenseLoadWeight), or UI/mainboard software versions (applianceUiSwVersion, applianceMainBoardSwVersion) on washing machines and many others, all appear only in the reported state โ€” none of them are listed in that appliance's capabilities. Without a real diagnostics file to prove they exist and reveal their data type, the integration cannot create those entities at all.

๐Ÿ“Ž Help improve support for your appliance โ€” without your diagnostics, values present only in reported state stay invisible: the SDK itself only surfaces a property if it appears in capabilities, so there's no way to know those values exist without a real diagnostics file. Download your diagnostics from Settings โ†’ Devices & Services โ†’ Electrolux โ†’ three-dot menu โ†’ Download diagnostics and open a GitHub issue with the file attached.

โœ… Fully Catalog-Supported Models (verified from diagnostic samples)

The table below lists all appliance types and the known-tested diagnostic samples that have shaped the catalog. All appliance types in the Full column receive entity enrichment (device class, unit, icon, entity category). Types marked Partial have a catalog but may be missing entries for some models โ€” submit your diagnostics to help close the gaps. Stub means the type code is registered but the catalog has no entries yet (requires user diagnostic samples to build from).

Type Appliance Status Known-Tested Samples / Models
OV Oven Full OV-944188304, OV-944188772
SO Structured Oven Full SO-944035035
RF Refrigerator Partial No samples โ€” submit yours
CR Combi Refrigerator Full CR-925060324, CR-925060677
WM Washing Machine Full WM-914501009, WM-914501128, WM-914505614, WM-914550478, WM-914550687, WM-914550951, WM-914580416, WM-914915144, WM-914922134, WM-914922290, WM-914922311
WD Washer Dryer Full WD-914611000, WD-914611500, WD-914611703
TD Tumble Dryer Full TD-916002187, TD-916098401, TD-916098618, TD-916098759, TD-916099548, TD-916099949, TD-916099971
AC / CA / Azul / Bogong / Panther / Telica Air Conditioner Full (AC + Bogong verified) AC-910280820; Bogong โ€” VM211_A_04.43.06_BOGONG (3 units, AU) โ€” see Bogong device notes โ€” CA/Azul/Panther/Telica unverified, submit yours
DAM_AC DAM Air Conditioner Catalog (unverified) No samples โ€” submit yours
DW Dishwasher Full DW-911434654, DW-911434834, DW-911438465, DW-911473025
Muju / Verbier / PUREA9 / Fuji / WELLA5 / WELLA7 Air Purifier Full (Muju / Verbier / PUREA9 verified) Muju-956006959323006505087076; Verbier-950011588246002195087076; PUREA9-950011384027000695087076 โ€” Fuji/WELLA5/WELLA7 unverified, submit yours
DH / Husky Dehumidifier Full (DH verified) DH-950133061 (Frigidaire FGAC5044W1, SRAC); Husky unverified, submit yours
PUREi9 / Gordias / Cybele / 700series Robot Vacuum Full (PUREi9 + Cybele verified) RVC - Pure i9; RVC - Purei9 2; Cybele-900402424543002761139298 โ€” Gordias/700series unverified, submit yours
HB Induction Hob Catalog (unverified) No samples โ€” submit yours
HD Hood / Extractor Fan Catalog (unverified) No samples โ€” submit yours

Appliance types not listed above still have all their entities created dynamically from whatever the API reports in the device capabilities โ€” no entities are suppressed. However, without a catalog entry they appear as generic sensors and controls with no device class, unit, icon, or friendly name. The base catalog (connectivity state, software version, network interface) applies to all appliance types regardless.

๐Ÿ”ฌ Diagnostics Wanted

The following appliance types have catalog entries built from the Electrolux SDK's internal API mappings, but have never been tested against real hardware. Capability key names are correct per the SDK, but modes, value ranges, and model-specific differences need verification with real diagnostic JSON files.

โš ๏ธ SDK stability note: The integration uses electrolux-group-developer-sdk v0.3.0, which is in early development. Its API, key names, and appliance constants may change between releases without notice. If something stops working after a package update, the catalog or command logic may need adjusting to match the new SDK version.

If you own one of these appliances, please download your diagnostics from Settings โ†’ Devices & Services โ†’ Electrolux โ†’ three-dot menu โ†’ Download diagnostics and open a GitHub issue with the file attached. This is the single most impactful contribution you can make โ€” a diagnostic file takes 30 seconds to generate and enables full verified support for your appliance type.

Appliance Issue title Status
๐ŸŒŠ Dehumidifier (Husky) Husky diagnostics โ€” [your model] DH verified with DH-950133061; Husky still unverified
๐Ÿค– Robot Vacuum (Gordias, 700series) RVC diagnostics โ€” [your model] PUREi9 and Cybele verified from root samples/; Gordias / 700series still unverified
๐Ÿณ Induction Hob (HB) HB diagnostics โ€” [your model] Catalog added in v3.5.6, unverified
๐Ÿ’จ Hood / Extractor Fan (HD) HD diagnostics โ€” [your model] Catalog added in v3.5.6, unverified
โ„๏ธ DAM Air Conditioner (DAM_AC) DAM_AC diagnostics โ€” [your model] Catalog added in v3.5.6, unverified
โ„๏ธ AC variants (CA, Azul, Panther, Telica) AC variant diagnostics โ€” [your type/model] Registered in v3.5.6, unverified (Bogong now verified โ€” see above)
๐Ÿ’จ AP variants (Fuji, WELLA5, WELLA7) AP variant diagnostics โ€” [your type/model] Muju, Verbier, and PUREA9 verified from root samples/; Fuji / WELLA5 / WELLA7 still unverified

Washing machines, tumple dryers, dishwashers, washer dryers, ovens, diagnostics are already covered by the current sample set, so no further WM, TD, DW, WD, OV samples are needed at this time. Upload them only if there are problems with their entities.

๏ฟฝ๐Ÿ” Finding Your Model Number

The model number (PNC โ€” Product Number Code) is the key used to identify your appliance in the catalog. It appears in the HA device info panel as Model: {type}-{PNC}_{suffix} (e.g. Model: TD-916099949_00).

How to find it:

  1. Go to Settings โ†’ Devices & Services โ†’ Electrolux
  2. Click on your appliance device
  3. The Model field in the device info card shows Model: {type}-{PNC}_{suffix} โ€” the number before the _ is your PNC (e.g. 916099949 from Model: TD-916099949_00)

Alternatively, the PNC is visible on the appliance's rating plate (usually inside the door or on the back) and in the official Electrolux app under appliance details.

If your model number appears in the table above, your appliance has been verified against real diagnostic data and will have full entity enrichment. If it does not appear, basic entities will still be created โ€” submit your diagnostics to add full support.


๐ŸŒŸ Credits

Maintained by TTLucian

Contributors Support Link
TTLucian Ko-fi

๐Ÿค Contributing

๐Ÿ“‹ Prerequisites

๐Ÿ”‘ API Credentials Required

This integration requires API credentials from the official Electrolux Developer Portal.

Note: The official Electrolux API requires developer credentials obtained through their official developer portal.

How to Obtain API Credentials:

  1. Visit the Electrolux Developer Portal
  2. Create a free developer account
  3. Register a new application
  4. Generate your API credentials:
    • API Key (Client ID)
    • Access Token
    • Refresh Token

โš ๏ธ Important: Keep your API credentials secure and never share them publicly.

๐Ÿ“ฑ Device Setup

All appliances must be:

  • Connected to your Electrolux account via the official mobile app
  • Properly configured with aliases/names in the app
  • Connected to the internet

๐Ÿ’พ Installation

๐ŸŽฏ HACS Installation (Recommended)

Good news! This integration is now available directly in the HACS default repository.

  1. Open HACS in Home Assistant
  2. Go to Integrations
  3. Search for "Electrolux"
  4. Click Install
  5. Restart Home Assistant

Note: No custom repository URL needed anymore!

๐Ÿ”ง Manual Installation

  1. Download the custom_components/electrolux/ directory
  2. Copy it to your Home Assistant custom_components folder
  3. Restart Home Assistant

โš™๏ธ Configuration

  1. In Home Assistant, go to Settings โ†’ Devices & Services
  2. Click Add Integration
  3. Search for "Electrolux"
  4. Enter your API credentials:
    • API Key
    • Access Token
    • Refresh Token
  5. The integration will automatically discover and add your appliances

โš ๏ธ Important: Entity Management

The integration creates ALL entities reported by the Electrolux API, even if they are not useful or not implemented in your appliance's firmware.

What This Means For You

After setup, you may see many entities that:

  • Have no value or show "unknown" status
  • Are not actually implemented in your appliance's firmware
  • Are for diagnostic or maintenance purposes that you don't need

This is intentional behavior. The integration gives you full visibility into everything the API reports, allowing you to decide what's useful for your needs.

๏ฟฝ Automatic Security Protection

The integration automatically blocks dangerous entities that could damage your appliances.

Certain API-reported entities control low-level system functions that can permanently damage appliance functionality. These are automatically blocked and will never be created:

  • Network Interface Commands: Authorization commands that can unpair your appliance from your account
  • Start Up Commands: Commands like UNINSTALL that can factory reset the network module

Examples of blocked entities:

  • button.oven_network_interface_start_up_command_uninstall
  • button.[appliance]_network_interface_command_appliance_authorize
  • button.[appliance]_network_interface_command_user_authorize

You won't see these entities - they are filtered at the code level for your protection. This prevents accidental activation through dashboards, automations, or voice assistants that could:

  • Factory reset your appliance
  • Break network connectivity permanently
  • Unpair the appliance from your account
  • Require professional service to restore functionality

The security blacklist is maintained in the codebase and updated as new dangerous entities are discovered.

Recommended Actions for Other Entities

While dangerous entities are automatically blocked, you may still want to clean up other unnecessary entities:

  1. After initial setup, review all entities for your appliances
  2. Disable any entities that:
    • Show "unknown" or empty values consistently
    • Are not relevant to your daily use (diagnostic sensors you don't need)
  3. Keep only the entities you actually need for monitoring and control

How to disable entities:

  1. Go to Settings โ†’ Devices & Services โ†’ Entities
  2. Search for your appliance name
  3. Click on the entity you want to disable
  4. Click the Disable button
  5. Confirm the action

Note: Disabled entities remain in Home Assistant's database but won't be updated or visible in your dashboards. You can re-enable them later if needed.

๐Ÿ”Œ Supported Appliances

This integration works with Electrolux and Electrolux-owned brands (AEG, Frigidaire, +home) across multiple regions:

  • Europe/Middle East/Africa (EMEA): My Electrolux Care, My AEG Care, Electrolux Kitchen, AEG Kitchen
  • Asia Pacific (APAC): Electrolux Life
  • Latin America (LATAM): Electrolux Home+
  • North America (NA): Electrolux Oven, Frigidaire 2.0

๐Ÿท๏ธ Device Types

๐Ÿณ Ovens

  • AEG AssistedCooking series
  • Real-time temperature monitoring
  • Program control and status
  • Safety lock validation
  • Multiple cooking programs (Bake, Broil, Convection)
  • Food probe monitoring and control
  • Delayed start and timers

๐Ÿฒ Structured Ovens (SO) โœจ NEW v3.3.4

  • AEG Structured Ovens
  • Electrolux Structured Ovens
  • Full dedicated implementation with 40+ entities
  • All standard oven features plus steam-specific controls:
    • Water tank level monitoring
    • Descaling reminders and maintenance alerts
    • Steam programs (FULL_STEAM, STEAM_HIGH, STEAMIFY, MOIST_FAN_BAKING)
    • Water hardness configuration
    • Drip tray detection
  • Enhanced UI configuration:
    • Display brightness control (5 levels)
    • Sound volume and key tone settings
    • Language selection (26 languages)
    • Clock display format
  • Nested capability structure with upperOven controls
  • Real-time temperature and probe monitoring
  • Program-specific constraints and safety validation

โ„๏ธ Refrigerators

  • Electrolux UltimateTaste series
  • Temperature monitoring and control for fridge, freezer, and extra cavity
  • Fast mode control for rapid cooling/freezing
  • Appliance mode selection (Normal/Demo/Service)
  • Vacation mode and child lock controls (internal/external)
  • Ice maker control and monitoring with defrost temperature
  • Extra cavity with temperature cloning and fan control
  • Filter status monitoring and reset (water and air filters)
  • Humidity sensor and reminder time settings
  • Cooling valve and defrost routine monitoring
  • Door status monitoring for all compartments

๐Ÿงบ Washing Machines

  • Electrolux UltimateCare and PerfectCare series
  • AEG ร–KOKombi and AbsoluteCare series
  • Comprehensive cycle monitoring and control
  • Appliance state tracking (IDLE, RUNNING, PAUSED, END_OF_CYCLE, etc.)
  • Cycle phase and sub-phase monitoring
  • Door status and lock control
  • Start time scheduling and delayed start
  • Time-to-end countdown
  • Auto-dosing system with tank configurations and fine-tuning
  • Steam level control (OFF, MIN, MED, MAX)
  • Spin speed selection (400-1600 RPM)
  • Temperature settings (COLD, 20ยฐC-90ยฐC)
  • Program selection with per-program configurations
  • Extra rinse and end-of-cycle sound options
  • Load weight monitoring and optisense results
  • Maintenance alerts and diagnostics
  • Remote control enablement
  • Network interface monitoring (WiFi quality, OTA updates, software version)
  • Appliance working time and cycle counters

๐Ÿงบ๐Ÿ’จ Washer Dryers

  • Electrolux UltimateCare and PerfectCare series
  • AEG AbsoluteCare series
  • Full integrated washing and drying control
  • Dry mode toggle with dedicated drying controls
  • Drying time selection (0-300 minutes)
  • Dryness level selection (CUPBOARD, EXTRA, IRON)
  • Wet mode control for specialized washing
  • Dual load weight monitoring (washing and drying cycles)
  • Integrated wash+dry program cycles
  • All washing machine features plus dryer-specific controls
  • Fluff drawer maintenance alerts
  • Separate drying cycle counters and statistics

โ„๏ธ๐ŸŒก๏ธ Air Conditioners

  • Electrolux air conditioning units
  • Full climate control integration with Home Assistant
  • Temperature control (16-30ยฐC / 60-86ยฐF) with dual scale support
  • Operating modes: AUTO, COOL, HEAT, DRY, FAN
  • Fan speed control: AUTO, LOW, MEDIUM, HIGH, QUIET, TURBO
  • Swing control: OFF, VERTICAL, HORIZONTAL, BOTH
  • Humidity control and monitoring (30-70% range)
  • Ambient temperature and humidity sensors
  • Power state management with safety validation
  • Start/stop/reset command support
  • Real-time status monitoring and diagnostics
  • Network interface monitoring and OTA updates

๐Ÿ’จ Dryers (Tumble Dryers)

  • Electrolux UltimateCare and PerfectCare series
  • AEG AbsoluteCare series
  • Comprehensive drying cycle monitoring and control
  • Appliance state tracking (IDLE, RUNNING, PAUSED, END_OF_CYCLE, etc.)
  • Cycle phase and sub-phase monitoring
  • Door status and lock control
  • Start time scheduling and delayed start
  • Time-to-end countdown
  • Drying time selection (0-300 minutes)
  • Dryness level selection (CUPBOARD, EXTRA, IRON, AIR_DRY)
  • Temperature settings (HIGH, MEDIUM, LOW, REFRESH)
  • Program selection with per-program configurations (COTTON, SYNTHETICS, DELICATES, WOOL, etc.)
  • Anti-crease protection
  • Load weight monitoring
  • Network interface monitoring (WiFi quality, OTA updates, software version)
  • Remote control enablement
  • Appliance working time and cycle counters
  • Fluff filter maintenance alerts and cleaning reminders
  • Energy efficiency tracking and statistics

๐Ÿฝ๏ธ Dishwashers

  • Comprehensive dishwashing cycle monitoring and control
  • Appliance state tracking (IDLE, RUNNING, PAUSED, END_OF_CYCLE, etc.)
  • Cycle phase and sub-phase monitoring
  • Door status and lock control
  • Start time scheduling and delayed start
  • Time-to-end countdown
  • Program selection with per-program configurations (ECO, INTENSIVE, QUICK, GLASS, etc.)
  • Temperature settings for optimal cleaning performance
  • Extra options (hygiene rinse, extra dry, intensive zones)
  • Salt level monitoring and alerts
  • Rinse aid level monitoring and alerts
  • Filter cleaning maintenance alerts
  • Remote control enablement
  • Network interface monitoring (WiFi quality, OTA updates, software version)
  • Appliance working time and cycle counters
  • Error detection and reporting with specific dishwasher error messages

๐Ÿ’จ๐ŸŒฟ Air Purifiers (A9, Muju, Verbier)

  • Air quality monitoring (PM1, PM2.5, PM10, TVOC, eCO2)
  • Temperature and humidity sensors
  • Fan speed control (1โ€“9 levels on A9, 1โ€“5 on Muju/Verbier)
  • Work mode selection (Manual / Auto / Power Off / Quiet)
  • UI light control
  • Safety lock
  • Ionizer control
  • Verbier only: Humidification toggle, target humidity, louver swing, quiet fan schedule, AQI light, water tray level alert, humidification filter tracking, dual filter NFC tag sensors

โšก Features

๐Ÿ“Š Sensors

  • Appliance state and status
  • Temperature readings (current, target, food probe, ambient)
  • Program and phase information
  • Connection quality and diagnostics
  • Door and safety lock status
  • Water levels and tank status
  • Filter life and maintenance alerts
  • Load weight monitoring (washing machines, washer dryers)
  • Humidity sensors (refrigerators, air conditioners)
  • Air quality sensors (air purifiers)
  • Cycle counters and working time statistics
  • Drying cycle monitoring (washer dryers)
  • Dryer monitoring (tumble dryers: fluff filter status, dryness levels, load weight)
  • Dishwasher monitoring (salt levels, rinse aid levels, filter status)

๐ŸŽฎ Controls

  • Manual Sync Button (โš ๏ธ Use Sparingly):
    • Forces a complete refresh of all appliance data
    • Disconnects and reconnects the real-time data stream
    • Updates all appliances simultaneously
    • Rate limited: 60-second cooldown between syncs
    • โš ๏ธ Warning: This causes significant API load. Only use when:
      • Data appears stale or stuck
      • After appliance power cycle or network interruption
      • As a last resort troubleshooting step
    • Normal operation: Real-time updates via SSE work automatically - manual sync is rarely needed
    • Each appliance has its own manual sync button, but triggering any button refreshes ALL appliances
  • Power on/off (with safety validation)
  • Program selection
  • Temperature settings
  • Timer controls
  • Light controls (ovens)
  • Start/stop/reset commands
  • Climate control (air conditioners):
    • Operating mode selection (AUTO, COOL, HEAT, DRY, FAN)
    • Fan speed control (AUTO, LOW, MEDIUM, HIGH, QUIET, TURBO)
    • Swing direction control (OFF, VERTICAL, HORIZONTAL, BOTH)
    • Target temperature and humidity settings
  • Drying controls (washer dryers):
    • Dry mode toggle
    • Drying time selection
    • Dryness level selection (CUPBOARD, EXTRA, IRON)
    • Wet mode control
  • Dryer controls (tumble dryers):
    • Program selection (COTTON, SYNTHETICS, DELICATES, WOOL, etc.)
    • Drying time selection (0-300 minutes)
    • Dryness level selection (CUPBOARD, EXTRA, IRON, AIR_DRY)
    • Temperature settings (HIGH, MEDIUM, LOW, REFRESH)
    • Anti-crease protection
    • Delay start scheduling
  • Dishwasher controls:
    • Program selection (ECO, INTENSIVE, QUICK, GLASS, etc.)
    • Temperature settings for optimal cleaning
    • Delay start scheduling
    • Extra options (hygiene rinse, extra dry, intensive zones)

โฏ๏ธ Execute Command Button Availability

executeCommand buttons โ€” START, STOPRESET, PAUSE, RESUME โ€” are automatically greyed out (unavailable) when the appliance is in a state where the API would reject that command. This is intentional and correct behaviour: pressing the button while the appliance isn't ready would fail with an error anyway.

This is not a bug. If a button appears greyed out, it means the appliance is simply not in the right state for that action yet.

Appliance Button Enabled when appliance state isโ€ฆ
Oven START READY_TO_START, END_OF_CYCLE
Oven STOPRESET RUNNING, PAUSED, DELAYED_START
Structured Oven START OFF
Structured Oven STOPRESET RUNNING
Washing Machine / Washer Dryer START READY_TO_START
Washing Machine / Washer Dryer STOPRESET PAUSED, END_OF_CYCLE
Washing Machine / Washer Dryer PAUSE RUNNING, DELAYED_START
Washing Machine / Washer Dryer RESUME PAUSED
Dryer START READY_TO_START, IDLE
Dryer STOPRESET PAUSED, END_OF_CYCLE, ANTICREASE
Dryer PAUSE RUNNING, DELAYED_START
Dryer RESUME PAUSED
Dishwasher START READY_TO_START, IDLE
Dishwasher STOPRESET PAUSED, END_OF_CYCLE, DELAYED_START
Dishwasher PAUSE RUNNING
Dishwasher RESUME PAUSED

AC power and refrigerator ice maker ON/OFF buttons have no state restriction and are always available.

๐Ÿ”ด๐ŸŸข Binary Sensors

  • Door status
  • Connection state
  • Alert conditions
  • Dryer alerts (fluff filter maintenance)
  • Dishwasher alerts (salt level, rinse aid level, filter cleaning)

๐Ÿ” Diagnostics

  • Network interface information
  • Software versions
  • OTA update status
  • Communication quality

๐Ÿ› ๏ธ Troubleshooting

๐Ÿ” Authentication Issues

  • 403 Forbidden: Check your API credentials from the developer portal - they may have expired. Regenerate your access token and refresh token from Electrolux Developer Portal
  • Invalid Credentials: Double-check your API key, access token, and refresh token from the developer portal

๐ŸŒ Connection Issues

  • Ensure appliances are connected to your Electrolux account
  • Check internet connectivity of appliances
  • Verify appliances are powered on and online

๐ŸŽ›๏ธ Control Not Working

  • Check if appliance has safety locks enabled (door open, child lock, etc.)
  • Integration respects all appliance safety features
  • Some controls may be disabled during active cycles

๐Ÿ” "Remote Control Disabled" Error

If you see an error like:

{"error": "COMMAND_VALIDATION_ERROR", "message": "Command validation failed", "detail": "Remote control disabled"}

This is an API limitation, not an integration bug.

The integration does not pre-block commands based on remote control state โ€” it forwards all commands directly to the Electrolux cloud API, which is the sole authority on whether a command is allowed. If the API rejects the command, there is nothing the integration can do.

Known case โ€” Oven cavity light with NOT_SAFETY_RELEVANT_ENABLED:

The oven remote control state has three values:

  • ENABLED โ€” all commands accepted
  • NOT_SAFETY_RELEVANT_ENABLED โ€” only commands the API classifies as non-safety-relevant are accepted
  • DISABLED โ€” all commands rejected

The cavity light (cavityLight) appears to be classified by the API as a safety-relevant command, so sending it while the appliance reports NOT_SAFETY_RELEVANT_ENABLED results in a 406 rejection. This classification is done server-side by Electrolux and cannot be changed or bypassed by this integration.

To control the cavity light, enable full remote control on the appliance (the exact setting name and location depends on the appliance model and firmware โ€” check the appliance display menu or the official AEG/Electrolux app).

โฏ๏ธ Execute Command Button Is Greyed Out

If a START, STOPRESET, PAUSE, or RESUME button appears greyed out and unclickable, this is intentional, not a bug.

The integration disables each button when the appliance is in a state where the Electrolux API would reject that command. For example:

  • START is only enabled once the appliance reports READY_TO_START
  • STOPRESET is only enabled while a cycle is RUNNING, PAUSED, or DELAYED_START
  • PAUSE is only enabled while RUNNING (or DELAYED_START on applicable types)
  • RESUME is only enabled while PAUSED

See the Execute Command Button Availability table in the Controls section for the full per-appliance-type breakdown.

If you believe the button should be active but isn't, check the Appliance State sensor for your device โ€” it shows the current applianceState value the API is reporting.

๏ฟฝ Stale or Stuck Data

If sensor values appear outdated or frozen:

First, check the basics:

  • Check the documentation and the debug logs for any errors. It might helo to better understand the situation.
  • Verify appliance is powered on and connected to Wi-Fi
  • Check if appliance shows as "connected" in the official Electrolux app
  • Wait 5-10 minutes - data updates automatically via real-time SSE stream

If data is still stuck:

  • Use the Manual Sync button (available on each appliance)
  • โš ๏ธ Important: This button is rate-limited (60 seconds cooldown) and causes heavy API load
  • Only use when necessary - normal operation doesn't require manual sync
  • The button refreshes ALL appliances, not just the one triggered

When Manual Sync is appropriate:

  • After appliance power cycle or firmware update
  • After router reboot or network interruption
  • Data hasn't updated for 30+ minutes despite appliance being online
  • As a troubleshooting step before reporting an issue

Manual Sync is NOT needed for:

  • Normal operation - real-time updates work automatically
  • Immediate feedback after commands - controls state updates happen instantly and optimistically and are being validated within seconds via SSE
  • Regular data refreshes - integration polls every 6 hours automatically

๏ฟฝ๐Ÿ”ข Model Shows as Numbers

  • The integration displays the actual product code (e.g., "944188772") used by Electrolux internally
  • This is the most specific identifier available through the API
  • Marketing model names (e.g., "BSE788380M") are not exposed by the API

๐Ÿ› ๏ธ Troubleshooting & Debugging

If you encounter issues with the Electrolux integration, providing debug logs is the fastest way to get help. Follow the steps below to capture and share the necessary information.

1. Enable Debug Logging

Choose one of the two methods below:

Option A: The Easy Way (UI)

Best for capturing issues happening right now without a restart.

  • Go to Settings > Devices & Services.
  • Click the Electrolux card.
  • Click the three dots (โ‹ฎ) in the upper right of the page and select Enable debug logging.
  • Reproduce the issue (e.g., try to trigger a device command).
  • Go back to the card and click Disable debug logging.
  • The log file will automatically download to your computer.
Option B: The Persistent Way (YAML)

Required for troubleshooting startup issues or long-term monitoring.

Add this to your configuration.yaml and restart Home Assistant:

logger:
  default: info
  logs:
    custom_components.electrolux: debug

2. Viewing and Filtering Raw Logs

If you want to inspect the logs manually or copy specific lines:

  • Navigate to Settings > System > Logs.
  • Click the 3 dots in the upper right corner, click Show Raw Logs button.
  • Scroll the logs upwards a few times so that more log entries get loaded
  • Use the search/filter bar at the top and type electrolux.
  • This will hide all unrelated system noise, leaving only the Electrolux-specific entries.
  • Select, copy and paste in your issue editor the full text that is showing.

3. Sharing Logs on GitHub

How to Download

If you used Option B, you can download the entire log file by clicking Download logs at the bottom of the Settings > System > Logs page.

How to Copy/Paste (Recommended for snippets)
  • To keep the GitHub issue clean, please wrap your logs in a code block.
  • Highlight the filtered log text in your browser and copy it.
  • In your GitHub issue description, paste it like this:
```text
PASTE YOUR LOGS HERE
```

[!CAUTION] Privacy Check: The integration automatically redacts any sensitive information like api key and tokens but, just to be safe, before posting, scan the logs for sensitive data. Delete or mask any email addresses, passwords, unique API tokens, or GPS coordinates.

๐Ÿ“„ JSON Diagnostics for Device Issues

โš ๏ธ You only need to send the diagnostics JSON once. It contains the same information every time you generate it.

For device-specific issues or when certain features aren't working as expected, a JSON diagnostics file is essential for troubleshooting โ€” and for adding support for appliances that aren't in the catalog yet.

Why diagnostics are so important for missing sensors:

Electrolux appliances report two separate things to the cloud: their capabilities (what they can do โ€” controls, modes, settings) and their reported state (current sensor readings, error flags, firmware version, internal countersโ€ฆ). The integration uses the capabilities to create entities automatically. But some sensors โ€” like air quality readings on purifiers, or temperature sensors on certain models โ€” only appear in the reported state, not in the capabilities. Without seeing a real diagnostics file the integration has no way to know those values exist, what unit they use, or what device class they should have. The diagnostics file contains both the full capabilities schema and a real reported state snapshot โ€” everything needed to build a correct catalog entry for your appliance.

For device-specific issues or when certain features aren't working as expected, a JSON diagnostics file is very helpful for troubleshooting:

How to get diagnostics:

  1. Go to Settings โ†’ Devices & Services โ†’ Electrolux
  2. Click on your integration entry
  3. Scroll down and click "Download diagnostics"

What it contains:

  • Complete device capabilities schema (what your appliance supports)
  • Current appliance state data (real-time values)
  • API communication details and errors
  • Model and firmware information

๐Ÿ”’ Privacy & Security: All sensitive information (API keys, tokens, personal data, emails, addresses, device identifiers, and other PII) is automatically redacted from diagnostics files. They are safe to share when reporting issues but check it yourselves before sending just to be sure

When to provide diagnostics:

  • Missing or incorrect sensors/controls: If your appliance is missing expected sensors or controls, or if existing ones show wrong values or don't work properly
  • Appliance not showing expected controls or sensors
  • Commands not working or responding
  • New appliance models with unknown features
  • Integration setup issues
  • Feature requests for specific appliance capabilities

Include this file when reporting issues - it helps identify device-specific problems quickly!

๐Ÿ”ง Troubleshooting

Missing Entities / "No Entities After Reinstall"

Symptoms:

  • Appliance shows only 7 basic entities (network command buttons, connectivity sensor, manual sync button)
  • Missing functional entities (applianceState, doorState, program selects, temperature controls, etc.)
  • Previously working appliance suddenly has minimal entities
  • Reinstalling integration doesn't help

Root Cause: This occurs when the integration creates a "minimal appliance" due to API communication issues during setup:

  1. When It Happens: During Home Assistant startup/restart, integration reload, or token refresh, if the Electrolux API times out or token refresh fails
  2. Safety Mechanism: Instead of losing the appliance entirely, the integration creates a minimal entry with basic catalog entities
  3. The Problem: Regular update cycles (every 6 hours) only refresh existing entity state - they don't check for or create missing entities
  4. Result: The appliance stays "minimal" with only 7 entities until manual intervention

Why Reinstalling Doesn't Help: Reinstalling the integration doesn't fix the issue because:

  • The problem is in the integration's recovery logic (fixed in v3.3.1+), not your configuration
  • If you reinstall during an API timeout or token issue, you'll get another minimal appliance
  • Entity creation happens only once during setup; reinstalling under the same conditions recreates the same problem

Solution - Upgrade to v3.3.1+ (Recommended):

Versions 3.3.1 and later include automatic recovery for this issue:

  1. Upgrade to the latest version via HACS
  2. Restart Home Assistant
  3. Press the "Manual Sync" button on the affected appliance device
  4. The integration will automatically:
    • Detect the minimal appliance condition (no capabilities data)
    • Trigger a full integration reload
    • Recreate all missing entities properly

Manual Workaround (for v3.3.0 and earlier):

If you cannot upgrade immediately:

  1. Wait for API Stability: Ensure your network connection is stable and working
  2. Remove Integration:
    • Go to Settings โ†’ Devices & Services โ†’ Electrolux
    • Click the three dots โ†’ "Delete"
  3. Restart Home Assistant (ensures clean state)
  4. Re-add Integration:
    • Add the Electrolux integration again
    • Enter your API credentials
    • Integration will fetch full appliance data and create all entities

Prevention:

  • Keep your integration updated to the latest version
  • Ensure stable network connection during Home Assistant restarts
  • The fix in v3.3.1+ includes:
    • Token refresh race condition fix (prevents entity recreation during problematic moments)
    • Automatic minimal appliance detection and recovery via Manual Sync button

How to Verify You're Affected:

For dishwashers, you should have 20+ entities including:

  • sensor.{name}_appliance_state (RUNNING/IDLE/PAUSED)
  • binary_sensor.{name}_door_state (OPEN/CLOSED)
  • sensor.{name}_cycle_phase (MAINWASH/RINSE/DRYING)
  • sensor.{name}_time_to_end
  • select.{name}_program (ECO/INTENSIVE/QUICK)
  • switch.{name}_extra_power_option
  • number.{name}_rinse_aid_level
  • And more...

If you only see network command buttons and a connectivity sensor, you have a minimal appliance.

Still Having Issues?

If the above solutions don't resolve your issue:

  1. Download diagnostics from your integration
  2. Check the diagnostic JSON for "capabilities": {} or missing capabilities data
  3. Report the issue on GitHub Issues with your diagnostic file

๐Ÿงช Testing Scripts

This repository includes comprehensive testing scripts to help you verify appliance compatibility and test API functionality before installing the integration. These scripts allow direct interaction with the Electrolux API to inspect your appliances and test commands.

๐Ÿ“– Testing Scripts Documentation - Complete guide for using the testing tools

๐Ÿค Special Thank You! to all users who helped fund this project!!!

๐Ÿ‘จโ€๐Ÿ’ป Development Setup

  1. Fork the repository
  2. Clone your fork
  3. Install uv if you don't have it already
  4. Install all dependencies: uv sync --group dev --group test
  5. Test scripts are available in the scripts/ directory for API testing

Optional: Install pre-commit hooks to run the same checks as CI (ruff, black, mypy, pytest) automatically before each commit/push:

uv run pre-commit install

๐Ÿงช Testing Your Appliances

Use the provided test scripts to verify API connectivity:

  • test_api_simple.py - Basic appliance list test
  • test_appliance_details.py - Detailed appliance information

๐Ÿ“œ License

This project is licensed under the MIT License - see the LICENSE file for details.

๐Ÿ’ฌ Support

๐Ÿ‘จโ€๐Ÿ’ป Status update:

Due to the recent GitHub Copilot usage price skyrocketing starting from 1st of July 2026, future updates and fixes for this integration will be released at a much slower pace.

In the past, I was able to fully develop major features of this integration with just a $10 Copilot subscription. However, the latest update alone required about $40, consuming all existing BuyMeACoffee donations (already fully spent) and additional personal funds. At the current pricing, maintaining the previous fast development cycle is no longer feasible.

The project remains active, but development will continue at a reduced, sustainable pace.

About

Home Assistant integration for Electrolux appliances

Topics

Resources

License

Stars

40 stars

Watchers

1 watching

Forks

Sponsor this project

Packages

 
 
 

Contributors

Languages