[Custom Integration] U by Moen Smart Faucet (Cloud Polling)

Update: This integration is now in the HACS default store — no custom repository needed. Search for “Moen Smart Water” in HACS to install.

Hi everyone :wave:

I wanted to share a custom Home Assistant integration I’ve been working on for U by Moen / Moen Smart Faucets (MotionSense / Smart Water Network models).

I built this after getting a new Moen faucet and being frustrated by how limited the official Alexa integration was. I wanted full control and visibility directly in Home Assistant.

After reverse-engineering the API used by the Moen iOS app, I was able to replicate the faucet’s functionality and expose it as Home Assistant entities and services.

:warning: Important:
This integration is cloud-based and polls Moen’s API.
There is no local control.


What it does

The integration exposes Moen smart faucets as Home Assistant entities, allowing:

  • Open / close control (valve entity)
  • Adjustable flow rate
  • Temperature control and presets
  • Volume-based dispensing
  • Start / stop water actions
  • Sensors for:
    • Connection status
    • Battery level
    • Firmware version
    • Water usage
    • Last update timestamps

Services / Actions

The integration also exposes custom Home Assistant services for programmatic control, including:

  • moen_smart_water.start_water
  • moen_smart_water.stop_water
  • moen_smart_water.dispense_volume

These services can be used from automations, scripts, or Developer Tools → Services.


Screenshots

Below are a few examples from my setup showing the entities and controls exposed in Home Assistant:


Installation

The integration is in the default HACS store. You can install it via HACS by searching for Moen Smart Water (Settings → Add-ons → HACS → Integrations → Explore & Download), or install manually.

GitHub repository:

Open your Home Assistant instance and open a repository inside the Home Assistant Community Store.


Notes / Limitations

  • Cloud polling integration (no local LAN control)
  • Uses an unofficial, reverse-engineered API
  • Requires Moen account credentials
  • API behavior may change if Moen updates their backend
  • Not recommended for safety-critical or unattended automations

Tested Devices

  • MotionSense Wave Kitchen Faucet (Cia series)

Other Moen smart faucets may work but are currently untested.


Feedback

If you try this out, I’d love to hear:

  • Which faucet model you’re using
  • Whether everything works as expected
  • Any issues or missing features you’d like to see

Bug reports and pull requests are welcome. Thanks!

1 Like

I just tried this out with my MotionSense Wave (also CIA series) and it works like a treat. Thanks for making this!

1 Like

Thanks! This is perfect!!

1 Like

I’m using it with Moen’s 7864EVSRS and it is working perfectly. Thank you for creating this integration!

1 Like

Thanks for the feedback! I’ve added the 7864EVSRS (Sleek series) to the supported models section in the README so others know it’s tested and working. Glad it’s working well for you!

Firstly, thanks for this! I have been using with a Moen Sinema (S7235EV2) and this has been working well.

However, the most recent 1.1.1 update seems to have broken the “coldest”, “hottest”, and “warm” buttons.

Hi @Island_Three — it looks like you had one of my pre-release versions installed. I’ve moved away from those vague buttons in the 1.x.x releases in favor of a temperature slider.

  • If the faucet is running, the slider sends commands to adjust the temperature in real time.
  • If the faucet is not running, the selected temperature is stored and applied with the next start command.

I’ve found this approach to be cleaner overall, but I’m open to adding optional preset temperature buttons back that would start the faucet at full flow using the selected preset temperature.