homebridge-moen-shower
v0.1.0
Published
Homebridge plugin for U by Moen smart showers — exposes scene-compatible controls (HomeKit blocks the native shower accessory from scenes)
Maintainers
Readme
homebridge-moen-shower
A Homebridge plugin for U by Moen smart showers that exposes scene-compatible controls.
Why this exists
Apple blocks water-dispensing accessories (faucets, showers) from HomeKit scenes and automations as a safety measure, so the native U by Moen HomeKit integration can't be used in a "Good Morning" scene. This plugin talks to Moen's cloud API directly (the same one the mobile app uses) and exposes the shower as a Thermostat and plain Switches — accessory types HomeKit allows in scenes.
Keep the native HomeKit integration for manual control if you like; use these accessories in scenes and automations.
What you get in HomeKit
- Thermostat — turn the shower on/off (Off/Heat) and set water temperature. Shows Heating while the shower runs. Scene-able: "Heat to 104°F" in your morning scene just works.
- Preset switches (default on) — one switch per saved shower preset. Turning one on starts the shower with that preset's temperature, outlets, and timer — including "pause when ready" presets, so the water can warm up and wait for you.
- Outlet switches (optional) — shower head, hand shower, tub spout, body spray individually.
Requirements
- U by Moen shower connected in the U by Moen mobile app (cloud-connected; the app-and-HomeKit combined setup is fine)
- Homebridge ≥ 1.6, Node ≥ 18
Test your credentials first
npm install
npm run build
[email protected] MOEN_PASSWORD=yourpassword npm run test-apiThis is read-only: it logs in and prints your showers, presets, and outlets. To also test one real command (set temperature), add SEND_TEST_TEMP=105.
Configuration
Via the Homebridge UI, or manually:
{
"platforms": [
{
"platform": "MoenShower",
"email": "[email protected]",
"password": "your-moen-password",
"exposePresets": true,
"exposeOutlets": false,
"pollIntervalSeconds": 30
}
]
}Notes
- Commands travel over Moen's Pusher WebSocket (the app's own mechanism), so expect ~1–2 s latency — fine for pre-warming a shower from a scene.
- State changes made at the shower controller or in the app show up within one polling interval.
- Credit: API details derived from the ha-u-by-moen Home Assistant integration.
