Control your My Leviton Decora Smart WiFi devices through Apple HomeKit using Homebridge.
- Automatic Discovery — Instantly finds all devices from your My Leviton account
- Full Dimmer Support — On/off and brightness control (1-100%)
- Fan Speed Control — 4-speed fan controllers (25/50/75/100%)
- Switches & Outlets — On/off control for all switch and outlet types
- Motion Sensors — D2MSD motion dimmers expose both dimmer and motion sensor
- Real-Time Updates — Instant state sync via WebSocket
- Automatic State Sync — Polls device state every 30 seconds as safety net
- Rate Limiting — Prevents API throttling (300 requests/minute)
- Circuit Breaker — Graceful degradation during API outages
- Auto-Reconnect — Automatically recovers from connection issues
- State Persistence — Faster startup with cached device data
- Token Auto-Refresh — Seamless authentication management
- 400+ Tests — Comprehensive test suite with 95%+ code coverage
- Child Bridge Support — Run as isolated bridge for maximum stability
- Flexible Logging — Debug, info, warn, error levels + JSON structured logs
- No Analytics — Zero tracking or data collection
- Well Documented — Detailed docs for users and developers
Homebridge UI (recommended):
Plugins → Search homebridge-myleviton → Install
Command line:
npm install -g homebridge-mylevitonAdd to your Homebridge config:
{
"platforms": [
{
"platform": "MyLevitonDecoraSmart",
"name": "My Leviton",
"email": "[email protected]",
"password": "yourpassword"
}
]
}Your devices will appear in the Home app automatically.
| Type | Examples |
|---|---|
| Dimmers | DW6HD, D26HD, DW1KD, DW3HL, D23LP, DWVAA, D2ELV, D2710 |
| Switches | DW15S, D215S |
| Outlets | DW15P, DW15A, DW15R, D215P, D215O |
| Fans | DW4SF, D24SF |
| Motion Dimmers | D2MSD |
name is required by Homebridge UI and identifies this plugin instance in logs (defaults to "My Leviton").
| Option | Required | Description |
|---|---|---|
name |
✓ | Plugin instance name shown in Homebridge logs |
email |
✓ | My Leviton account email |
password |
✓ | My Leviton account password |
loglevel |
debug, info (default), warn, error |
|
pollInterval |
Seconds between state updates (default: 30) | |
connectionTimeout |
API/WebSocket timeout in ms (default: 10000) | |
excludedModels |
Device models to skip, e.g. ["DW15P"] |
|
excludedSerials |
Device serials to skip | |
structuredLogs |
Output logs as JSON for log aggregation tools |
- Check credentials — Must match the My Leviton app exactly
- Check device status — Devices must be online in My Leviton app
- Enable debug logs — Set
"loglevel": "debug"and restart - Restart Homebridge — Required after any config change
- Homebridge 1.6.0+ or 2.0+
- Node.js 20+
- My Leviton account with registered devices
Copyright 2026 tbaur
Licensed under the Apache License, Version 2.0. See LICENSE file for details.