Miele@LAN: Local push events from smart Miele devices

Miele@LAN β€” Local control of Miele@home appliances, without breaking the Miele app

Hi all,

Releasing Miele@LAN β€” a HACS-installable Home Assistant integration that talks directly to Miele@home appliances on your LAN. No cloud polling, no sidecar server, and crucially: does not break the official Miele app.

:link: GitHub / HACS: GitHub - tiehfood/ha-miele-at-lan: Home Assistant integration to control Miele devices via local API Β· GitHub
:label: Release: v1.2.0

What it does

  • mDNS auto-discovers every appliance in your household β€” one click in Add Integration β†’ Miele@LAN
  • Speaks Miele's native LAN protocol (MieleH256 HMAC-SHA256 + AES-CBC, signed with your household GroupKey)
  • Real-time state updates via Miele's own SuperVision push channel (sub-second on cycle devices); 1–30 s polling fallback
  • Read-only display for cooling appliances (fridges/freezers β€” see Limitations)

How it relates to MieleRESTServer

This is not meant as a competitor to MieleRESTServer β€” that project is what made all of this possible in the first place, and
most of the protocol RE this integration relies on traces back to akappner's work. Huge thanks for consistent reverse-engineering in the open.

The difference is in approach. MieleRESTServer is a standalone Flask sidecar with a polling model; you proxy through it from HA via rest: sensors. Miele@LAN is a native HA
integration that runs entirely inside Home Assistant β€” no extra server to maintain β€” and uses Miele's own SuperVision push channel for state updates instead of polling. That
brings live state changes for cycle devices and avoids the polling spikes that hammer the appliance when something is actively cooking.

Two other differences worth calling out: setup is a guided HA config flow (mDNS auto-discovers every appliance in your household in one click, no per-device YAML), and the Miele
app keeps working alongside HA
β€” Miele@LAN pairs through the official cloud OAuth flow once, fetches your household GroupKey from Miele's cloud, then talks LAN-only from then
on. If you've already extracted a GroupID/GroupKey via MieleRESTServer's provisioning, you can also paste those in and skip the cloud step entirely.

For factory-fresh appliances without an existing Miele app account, a tools/miele_lan_provision.py CLI is bundled for one-shot LAN-only commissioning.

How the pairing works

You log in once with your Miele account (standard OAuth via prod.map.miele-iot.com). HA fetches your household GroupKey from the cloud, then uses it locally over your LAN β€” afterwards no cloud traffic is needed. The Miele app continues to work alongside HA. If you already have a GroupID/GroupKey (e.g. from a previous MieleRESTServer provisioning), you can paste them directly and skip the cloud step.

For factory-fresh appliances without an existing Miele app account, a tools/miele_lan_provision.py CLI is bundled for one-shot LAN-only commissioning.

Limitations

  • Cooling appliances are read-only on LAN. The K7000/EasyControl firmware blocks all LAN writes β€” confirmed by RE on a KF series fridge and matches Miele's own docs (MobileStart is permanently on for cooling appliances and isn't a togglable feature). State changes you make from the Miele app are still mirrored back to HA in real time via SuperVision push.
  • Setpoint writes on cycle appliances (oven/dishwasher/laundry) require MobileStart to be activated on the appliance panel.
  • Compatible with HA 2025.6+; tested with my devices at home.

Credits

Standing on the shoulders of akappner/MieleRESTServer and asyncmiele, the HA community thread #840093, and astrandb/miele (the upstream HA core integration; used here for cross-referencing the cloud surface and translation keys).

Feedback / issue reports welcome β€” particularly state captures from appliance types not in my testbed (washer-dryer combos, microwaves, robot vacuums, induction-extractor hobs). Open an issue on GitHub.

3 Likes

I can't wait to try this out. However, I'm stuck at the config flow, it says to refer to the integration documentation for the macOS MieleAuth.app, but there is no documentation I can find in the repo.

Ah, I think I have to fix that.
Best is, to open the link shown in Chrome, open dev tools, login to Miele.
Then the redirect should throw an error, but in the dev tools you could copy the link starting with β€œmiele://” to the integration.

That part is a bit annoying but needed only once.
I had build a small MacOS app that registered the β€œMiele://β€œ URL, but not everyone is on Mac so I thought the browser way is better.

Please try out and let me know, if you know what to do. Otherwise I will give more detailed instructions

I updated the integration and README in the repo. Thanks!

1 Like

I'm using a Mac, but I couldn't find the app :sweat_smile:
Will try the browser.

Adding the integration worked fine via Chrome, both my dishwash and washer-dryer were discovered. For the dishwasher (which is a 6xxx model), only a few sensors show data - I guess the parsing for the other stuff is not implemented yet.

I wrote in the issue :slight_smile: would be great, if you could report missing sensors. If you are familiar with capturing pcaps that would be a great help, if you provide a pcap from the device

1 Like