# homebridge-keylights

> A Homebridge plugin for Elgato Key Light and Key Light Air

Latest version **1.3.3** (published 2025-12-14) · MIT license · 0 weekly downloads

## Install

```sh
npm install homebridge-keylights
pnpm add homebridge-keylights
yarn add homebridge-keylights
bun add homebridge-keylights
```

## Health

**Score 55/100 (C)** — status: stable.

Positive: has types; esm support; no vulnerabilities.

Warnings: low downloads.

## Facts

| | |
|---|---|
| Version | 1.3.3 |
| Published | 2025-12-14 |
| First published | 2020-08-15 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | bundled |
| Module format | ESM + CommonJS |
| Node | ^20.0.0 \|\| ^22.0.0 \|\| ^24.0.0 |
| Dependencies | 3 |
| Unpacked size | 47.5 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| Maintainers | der_jayjay |
| Keywords | homebridge-plugin, elgato, keylight, key lights, key light air, streaming, keylight air |

## Links

- npm: https://www.npmjs.com/package/homebridge-keylights
- Repository: https://github.com/derjayjay/homebridge-keylights
- Homepage: https://github.com/derjayjay/homebridge-keylights#readme
- Issues: https://github.com/derjayjay/homebridge-keylights/issues
- npm.io page: https://npm.io/package/homebridge-keylights

## Dependencies (3)

- [axios](https://npm.io/package/axios.md) ^1.13.2
- [homebridge-lib](https://npm.io/package/homebridge-lib.md) ^7.1.0
- [bonjour-service](https://npm.io/package/bonjour-service.md) ^1.3.0

## Alternatives

- [byte-size](https://npm.io/package/byte-size.md) — 2.1M weekly downloads
- [speed-limiter](https://npm.io/package/speed-limiter.md) — 16.0K weekly downloads
- [@powersync/node](https://npm.io/package/@powersync/node.md) — 10.9K weekly downloads
- [@ledgerhq/coin-cardano](https://npm.io/package/@ledgerhq/coin-cardano.md) — 1.0K weekly downloads
- [@jayesol/jayeson.lib.streamfinder](https://npm.io/package/@jayesol/jayeson.lib.streamfinder.md) — 1.0K weekly downloads

## Recent versions

- 1.3.3 (latest) — 2025-12-14
- 1.3.0-1 (next) — 2021-04-21
- 1.3.2 — 2025-02-20
- 1.3.1 — 2025-02-10
- 1.2.4 — 2024-06-21
- 1.3.0-0 — 2021-04-21
- 1.2.3 — 2021-02-27
- 1.2.2 — 2020-12-22
- 1.2.1 — 2020-11-21
- 1.2.0 — 2020-09-11
- 1.1.0 — 2020-08-19
- 1.0.2 — 2020-08-16
- 1.0.1 — 2020-08-15
- 1.0.0 — 2020-08-15
- 0.1.1 — 2020-08-15
- … 1 more at https://npm.io/package/homebridge-keylights/versions

## README

# Homebridge Key Lights

This is yet another Homebridge plugin for the Elgato Key Light, Key Light Air and Ring Light. It allows you to control your Elgato lights with HomeKit while avoiding some of the issues other plugins have.

[![verified-by-homebridge](https://badgen.net/badge/homebridge/verified/purple)](https://github.com/homebridge/homebridge/wiki/Verified-Plugins)

## Features

- Switch your Key Lights on and off, set brightness and colour temperature
- State of the lights is regularly polled so HomeKit always has the correct data
- Correct minimum and maximum values configured for colour temperature 
- All settings configurable via config file, even those not available in the Elgato Control App 

## Installation
You can install the plugin either using the Homebridge Web UI or using the command line:

    npm install -g homebridge-keylights

To use the plugin, it must be configured. This is a minimal working configuration:

    {
    "bridge": {
        ....
    },
    "accessories": [],
    "platforms": [
        {
            "platform": "ElgatoKeyLights",
            "name": "Elgato Key Light",
        }
      ]
    }

## Settings

Further settings are available to configure. This is a complete configuration:

    {
    "bridge": {
        ....
    },
    "accessories": [],
    "platforms": [
        {
            "name": "Elgato Key Lights",
            "pollingRate": 1000,
            "powerOnBehavior": 1,
            "powerOnBrightness": 20,
            "powerOnTemperature": 4695,
            "switchOnDurationMs": 100,
            "switchOffDurationMs": 300,
            "colorChangeDurationMs": 100,
            "useIP": false,
            "platform": "ElgatoKeyLights"
        }
      ]
    }

- `name` is the name of the plugin to appear in the log file. Defaults to `Elgato Key Lights`.
- `pollingRate` is the rate at which to poll the lights for changes in milliseconds. Defaults to `1000`.
- `powerOnBehavior` is the behaviour when powering the lights on. Defaults to `1` which means restore the last settings used. `2` means restoring the default values configured below.
- `powerOnBrightness` is the default brightness value when powering on in percent. Defaults to `20`. Range is `0` to `100`.
- `powerOnTemperature` is the default colour temperature when powering on in Kelvin. Defaults to `4695`. Range is `2900` to `7000`.
- `switchOnDurationMs` is the duration of the switch on sequence in milliseconds. Defaults to `100`.
- `switchOffDurationMs` is the duration of the switch off sequence in milliseconds. Defaults to `300`.
- `colorChangeDurationMs` is the duration of a colour temperature change in milliseconds. Defaults to `100`.
- `useIP` enables the usage of IP addresses instead of hostnames to connect to the lights. Defaults to `false`. Should only be turn on if you experience connection issues.

All settings can conveniently configured using the Homebridge Web UI.

## Known issues

### Unable to register accessory

Some users [have had an issue](https://github.com/derjayjay/homebridge-keylights/issues/1) where Homebridge was unable to connect to the lights after setting the plugin up. This seems to be a common issue where the lights become unresponsive after not being polled for some time, and also happens with the official Elgato app.

As a fix, try power cycling the lights and then restart Homebridge. Usually, the lights are discovered and since the plugin polls the status of the lights regularly, they keep working. In case you are still unable to connect to the lights, try the `useIP` option described in the settings.

---
_Source: https://npm.io/package/homebridge-keylights · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
