npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

homebridge-electrolux-live

v0.2.3

Published

Homebridge plugin for Electrolux appliances with livestream/SSE state synchronisation

Readme

Homebridge Electrolux Live

Homebridge plugin for Electrolux and AEG appliances using the Electrolux Developer API, with real-time livestream/SSE state synchronisation and defensive command handling.

Highlights

  • Electrolux Developer API livestream/SSE is the primary authoritative state source.
  • Cached Get Appliance State is used for startup, periodic resynchronisation and fallback.
  • A HomeKit action produces at most one Electrolux command request from the plugin.
  • Appliance command requests are not retried merely because Electrolux returns HTTP 500 or times out.
  • Refresh-token handling includes bounded retries, backoff, single-flight refresh and persistent token rotation.
  • Homebridge 2 and current supported Node.js LTS releases are supported.

Why this project exists

Homebridge Electrolux Live is derived from homebridge-electrolux-devices by Tomek Kleszcz.

During investigation of an AEG Comfort 6000 air conditioner, Electrolux confirmed that the command API can time out after a command has already reached the appliance, and that internal service retry behaviour can result in duplicate physical deliveries. Electrolux also confirmed that Get Appliance State is cache-backed and recommended the Developer API livestream for timely state updates.

This project therefore treats the livestream as the primary state source and does not retry appliance commands on uncertain HTTP 500 responses.

Installation

The easiest method is through the Homebridge UI:

  1. Open Plugins.
  2. Search for homebridge-electrolux-live.
  3. Install Homebridge Electrolux Live.
  4. Open the plugin settings and enter your Electrolux Developer API credentials.

Command-line installation is also supported:

npm install -g homebridge-electrolux-live

Configuration

The plugin uses the Homebridge Plugin Settings GUI.

Required:

  • apiKey - Electrolux Developer API key.
  • refreshToken - Electrolux Developer API refresh token.

Optional:

  • pollingInterval - fallback/resynchronisation polling interval in seconds. Default: 120.
  • carbonDioxideSensorAlarmValue - CO2 alarm threshold. Default: 1000.
  • vocMolecularWeight - VOC molecular weight used by inherited air-purifier mappings. Default: 30.026.

A polling interval below 120 seconds is discouraged because it can increase Electrolux API rate-limit pressure.

Rotated authentication data is stored inside the Homebridge storage directory as homebridge_electrolux_device_persist.json.

Supported devices

The inherited device mappings currently include:

  • Comfort 600 / Comfort 6000 portable air conditioner;
  • Well A5 / AX5 air purifier;
  • Well A7 air purifier;
  • Pure A9 / AX9 air purifier;
  • UltimateHome 500 air purifier.

Unsupported Electrolux appliances can be reported through the GitHub issue tracker.

State synchronisation

Primary:

  • Electrolux Developer API livestream / Server-Sent Events (SSE).

Fallback and resynchronisation:

  • Get Appliance State at startup;
  • slow fallback polling when the livestream is disconnected;
  • periodic resynchronisation while the livestream is healthy, without overwriting properties currently supplied by the livestream.

Command behaviour

The plugin deliberately does not retry appliance commands after an HTTP 500 or timeout because Electrolux has confirmed that such a response can occur after the appliance has already executed the command.

Where possible, resulting appliance state is reconciled through the livestream.

Compatibility

  • Homebridge ^1.8.0 || ^2.0.0
  • Node.js 22, 24 and 26 LTS lines

The project CI validates Node.js 22, 24 and 26.

Repository model

GitLab is the authoritative development repository.

The public GitHub repository is the release, issue and Homebridge verification surface:

https://github.com/ikthezeus/homebridge-electrolux-live

Project origin and licence

The project is derived from homebridge-electrolux-devices by Tomek Kleszcz.

The original project and this fork are distributed under the Apache License 2.0. The upstream source used to create this project is preserved by the upstream-v1.1.1-baseline Git tag.

See NOTICE and LICENSE.