# \[APP\]\[Pro\] Eufy Clean

**URL:** <https://community.homey.app/t/app-pro-eufy-clean/46610>\
**Category:** Apps\
**Tags:** app, official, homey-pro\
**Created:** [April 23, 2021, 11:37am UTC](https://community.homey.app/t/app-pro-eufy-clean/46610 "2021-04-23T11:37:41Z")\
**Posts on this page:** 20\
**Page:** 50

<div class="post-metadata">

**Author:** ![martijnpoppen](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/martijnpoppen/32/84849_2.png) [@martijnpoppen](https://community.homey.app/u/martijnpoppen)\
**Post date:** [April 10, 2026, 7:58am UTC](https://community.homey.app/t/app-pro-eufy-clean/46610/1004 "2026-04-10T07:58:03Z")

</div>

@Martien_Kop There’s no device in your account.

 ![image](https://us1.discourse-cdn.com/flex025/uploads/athom/original/3X/b/f/bfa04da5da36bb01236e69551d83d136301d476e.png)

---

<div class="post-metadata">

**Author:** ![Martien\_Kop](https://avatars.discourse-cdn.com/v4/letter/m/5f9b8f/32.png) [@Martien\_Kop](https://community.homey.app/u/Martien_Kop)\
**Post date:** [April 10, 2026, 9:00am UTC](https://community.homey.app/t/app-pro-eufy-clean/46610/1005 "2026-04-10T09:00:35Z")

</div>

- Install this app on your Homey.

- Add a device.
- Login with your Eufy Account. After this I get the message “no new device found”

---

<div class="post-metadata">

**Author:** ![Martien\_Kop](https://avatars.discourse-cdn.com/v4/letter/m/5f9b8f/32.png) [@Martien\_Kop](https://community.homey.app/u/Martien_Kop)\
**Post date:** [April 10, 2026, 9:21am UTC](https://community.homey.app/t/app-pro-eufy-clean/46610/1006 "2026-04-10T09:21:52Z")

</div>

I’m using the new eufy app. The C28 is only working with the new app. Is that the problem?

---

<div class="post-metadata">

**Author:** ![martijnpoppen](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/martijnpoppen/32/84849_2.png) [@martijnpoppen](https://community.homey.app/u/martijnpoppen)\
**Post date:** [April 10, 2026, 9:29am UTC](https://community.homey.app/t/app-pro-eufy-clean/46610/1007 "2026-04-10T09:29:50Z")

</div>

@Martien_Kop no that’s not the issue. It just that the API doesn’t report any devices in your account. Are you using your main Eufy account ?

---

<div class="post-metadata">

**Author:** ![Martien\_Kop](https://avatars.discourse-cdn.com/v4/letter/m/5f9b8f/32.png) [@Martien\_Kop](https://community.homey.app/u/Martien_Kop)\
**Post date:** [April 10, 2026, 11:13am UTC](https://community.homey.app/t/app-pro-eufy-clean/46610/1008 "2026-04-10T11:13:58Z")

</div>

I think so. I’m using the account with which I start my Eufy App from the apple App Store.

---

<div class="post-metadata">

**Author:** ![martijnpoppen](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/martijnpoppen/32/84849_2.png) [@martijnpoppen](https://community.homey.app/u/martijnpoppen)\
**Post date:** [April 10, 2026, 2:58pm UTC](https://community.homey.app/t/app-pro-eufy-clean/46610/1009 "2026-04-10T14:58:27Z")

</div>

@Martien_Kop can you try sharing your Robovac with another account and check if you can login with that one and see the device in Homey?

---

<div class="post-metadata">

**Author:** ![Martien\_Kop](https://avatars.discourse-cdn.com/v4/letter/m/5f9b8f/32.png) [@Martien\_Kop](https://community.homey.app/u/Martien_Kop)\
**Post date:** [April 11, 2026, 7:49am UTC](https://community.homey.app/t/app-pro-eufy-clean/46610/1010 "2026-04-11T07:49:15Z")

</div>

i made another account. same problem

---

<div class="post-metadata">

**Author:** ![martijnpoppen](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/martijnpoppen/32/84849_2.png) [@martijnpoppen](https://community.homey.app/u/martijnpoppen)\
**Post date:** [April 11, 2026, 12:53pm UTC](https://community.homey.app/t/app-pro-eufy-clean/46610/1011 "2026-04-11T12:53:42Z")

</div>

@Martien_Kop please send a new report

---

<div class="post-metadata">

**Author:** ![Kyle\_Michiels](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/kyle_michiels/32/120769_2.png) [@Kyle\_Michiels](https://community.homey.app/u/Kyle_Michiels)\
**Post date:** [April 11, 2026, 1:20pm UTC](https://community.homey.app/t/app-pro-eufy-clean/46610/1012 "2026-04-11T13:20:59Z")

</div>

@martijnpoppen  
Together with Codex, I fixed scenes for at least my C20 vaccuum cleaners. I can now select the scene names directly in Homey which is much better than the 10 scene guessing work.

I have no idea if this works for the other models aswell but it should work with al MQTT models.

My fork:

> **[GitHub - misterk99/com.eufylife.home: A Homey app for Eufy Robovac](https://github.com/misterk99/com.eufylife.home)**
>
> A Homey app for Eufy Robovac

Maybe you can use it for the app itself?

In also added local room cleaning support for my Tuya bases L60 model but I doubt you want to add that

---

<div class="post-metadata">

**Author:** ![martijnpoppen](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/martijnpoppen/32/84849_2.png) [@martijnpoppen](https://community.homey.app/u/martijnpoppen)\
**Post date:** [April 11, 2026, 3:33pm UTC](https://community.homey.app/t/app-pro-eufy-clean/46610/1013 "2026-04-11T15:33:29Z")

</div>

@Kyle_Michiels nice! Can you make a PR ? Then I’ll integrate it into the app.  
Local support I removed as that’s really limited and new devices don’t support it anymore

---

<div class="post-metadata">

**Author:** ![Kyle\_Michiels](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/kyle_michiels/32/120769_2.png) [@Kyle\_Michiels](https://community.homey.app/u/Kyle_Michiels)\
**Post date:** [April 12, 2026, 7:33pm UTC](https://community.homey.app/t/app-pro-eufy-clean/46610/1014 "2026-04-12T19:33:51Z")

</div>

Its 2 PRs one for the Eufy SDK:

> <https://github.com/martijnpoppen/eufy-clean/pull/10>
>
> \## Summary
> 
> This PR adds the library-side support needed by the Homey app to con…trol newer Eufy MQTT vacuums using their real saved scene metadata, while preserving the existing slot-based scene behavior for older Homey flows.
> 
> It also restores local-key discovery and adds numeric room-clean support for local Tuya-capable mapped vacuums.
> 
> \## MQTT scene problem and solution
> 
> The Homey app previously exposed a static \`Scene 1\` through \`Scene 10\` card. That works only if a device interprets those slots the way the old card expects. On newer MQTT devices such as the Omni C20 (\`T2280\`), saved scenes are exposed by the robot/app as real scene records with large scene IDs and names, for example:
> 
> \- \`1767280292\` -\> \`Deep Clean\`
> \- \`1772188900\` -\> \`Deep Clean and Mop\`
> 
> The old behavior cannot reliably start those saved scenes because it does not know the actual scene IDs. It also used slot-style translation (\`slot + 3\`) rather than the real MQTT scene ID.
> 
> This PR solves that by adding first-class scene metadata support:
> 
> \- \`listScenes()\` decodes DPS \`180\` as \`SceneResponse\` and returns \`{ id, name, mapId }\` records.
> \- \`sceneClean(sceneId)\` now sends the exact selected scene ID in \`START\_SCENE\_CLEAN\`.
> \- \`sceneCleanSlot(slot)\` preserves the old slot-based behavior by keeping the \`slot + 3\` translation for existing \`Scene 1..10\` flows.
> \- The shared protobuf encoder now uses \`fromObject(...)\` before \`encodeDelimited(...)\`, which is required for enum fields such as \`START\_SCENE\_CLEAN\` and \`START\_SELECT\_ROOMS\_CLEAN\` to encode correctly.
> 
> So the new Homey flow can show a live scene autocomplete list for MQTT devices, while old slot-based flows keep working unchanged.
> 
> \## Local Tuya room cleaning
> 
> For local Tuya-capable mapped vacuums, this PR also adds:
> 
> \- restored local key propagation from discovery
> \- local connection config for \`localKey\`, optional \`ip\`, protocol version, map ID, timeout, and debug flag
> \- \`cleanRooms(roomIds, cleanTimes)\` for numeric room cleaning
> \- protobuf room-clean commands on DPS \`152\` for novel/mapped local devices
> 
> This allows the Homey app to offer a numeric \`Clean room\` action for local-key devices without requiring room-name discovery.
> 
> \## Notes
> 
> The Homey app PR should depend on this library change so it can call \`listScenes()\`, \`sceneClean(sceneId)\`, \`sceneCleanSlot(slot)\`, and \`cleanRooms(roomIds, cleanTimes)\`.

And one for the actual homey app:

> <https://github.com/martijnpoppen/com.eufylife.home/pull/1>
>
> \## Summary
> 
> This PR adds two Homey Flow capabilities for newer and mapped Eufy v…acuums:
> 
> \- MQTT devices: a new \`Start saved scene\` action that uses the robot's live saved-scene names instead of static scene slots.
> \- Local Tuya devices: a new \`Clean room\` action that accepts a numeric room ID and repeat count.
> 
> The existing generic clean/pause/dock behavior is left intact, and the existing \`Start Scene\` / \`Scene 1..10\` card is preserved for backwards compatibility.
> 
> This PR currently pins \`eufy-clean\` to the companion fork commit that implements the required library APIs. Companion library PR: https://github.com/martijnpoppen/eufy-clean/pull/10
> 
> \## How the MQTT scene problem was solved
> 
> The existing Homey app already had a scene card, but it is a static slot-based card:
> 
> \- \`Scene 1\`
> \- \`Scene 2\`
> \- ...
> \- \`Scene 10\`
> 
> That is not enough for newer MQTT devices such as the Eufy Omni C20 (\`T2280\`). These devices expose saved scenes as real scene records in the MQTT/novel API. A saved scene has its own large scene ID and a human-readable name, for example:
> 
> \- \`1767280292\` -\> \`Deep Clean\`
> \- \`1772188900\` -\> \`Deep Clean and Mop\`
> 
> The previous flow could not reliably run these user-created scenes because it did not know the actual scene IDs. It could only send a static slot-style value, and the library implementation translated slot scenes using \`slot + 3\`.
> 
> The solution is split into two layers:
> 
> 1. Library support in \`eufy-clean\`
> 
> The companion \`eufy-clean\` PR adds:
> 
> \- \`listScenes()\`, which decodes DPS \`180\` as \`SceneResponse\` and returns \`{ id, name, mapId }\`.
> \- \`sceneClean(sceneId)\`, which sends \`START\_SCENE\_CLEAN\` with the exact scene ID selected by the user.
> \- \`sceneCleanSlot(slot)\`, which keeps the old \`slot + 3\` behavior for the legacy \`Scene 1..10\` Homey card.
> \- a protobuf encoding fix that switches message creation to \`fromObject(...)\` before \`encodeDelimited(...)\`, so enum commands like \`START\_SCENE\_CLEAN\` and \`START\_SELECT\_ROOMS\_CLEAN\` encode correctly.
> 
> 2. Homey Flow support in this app
> 
> This PR adds a new \`Start saved scene\` card for MQTT-capable devices. The card uses Homey's autocomplete argument to call \`device.getSceneAutocompleteItems(...)\`, which fetches the scene list from the device at runtime via \`listScenes()\`.
> 
> When the user selects a scene, the run listener calls \`sceneClean(scene.id)\`, so the command uses the real scene ID rather than a static slot.
> 
> The old \`Start Scene\` card remains unchanged and still calls \`sceneCleanSlot(...)\`, so existing flows that use \`Scene 1..10\` are not broken.
> 
> \## Local room cleaning
> 
> This PR also adds a local-only numeric room-clean action for Tuya/local-key devices.
> 
> The pairing/repair logic now keeps the real \`localKey\` when the library can discover one, and the app stores local settings needed by mapped vacuums:
> 
> \- map ID, default \`1\`
> \- protocol version, default \`3.3\`
> \- optional last known LAN IP
> \- find timeout
> 
> The new \`Clean room\` card is exposed only for local-key devices and calls \`cleanRooms(\[roomId\], cleanTimes)\` in the library. The card intentionally accepts numeric room IDs so users can use trial and error without requiring Android logcat room-name extraction.
> 
> \## Capability gating
> 
> The new cards are gated by transport:
> 
> \- MQTT devices get \`action\_scene\_named\` / \`Start saved scene\`.
> \- Local-key non-MQTT devices get \`action\_room\_clean\` / \`Clean room\`.
> \- Devices without a real local key do not expose the local room-clean action.
> 
> The app also avoids storing public/WAN IPs as local Tuya IPs, so a cloud-reported address does not poison the local connection path.
> 
> \## Validation
> 
> Validated locally with:
> 
> \`\`\`bash
> homey app validate -p .
> \`\`\`
> 
> Manual smoke testing done during development:
> 
> \- MQTT C20 devices exposed live saved scenes such as \`Deep Clean\` and \`Deep Clean and Mop\`.
> \- L60-style local Tuya device discovery returned a real local key.
> \- Local room-clean commands were tested with numeric room IDs in the companion CLI/protocol work before porting the payload into \`eufy-clean\`.
> 
> \## Notes for review
> 
> This PR intentionally keeps the old \`Start Scene\` card and adds a separate \`Start saved scene\` card because Homey static dropdown cards cannot be populated dynamically from the device. Runtime scene names require an autocomplete argument.

---

<div class="post-metadata">

**Author:** ![martijnpoppen](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/martijnpoppen/32/84849_2.png) [@martijnpoppen](https://community.homey.app/u/martijnpoppen)\
**Post date:** [April 12, 2026, 8:03pm UTC](https://community.homey.app/t/app-pro-eufy-clean/46610/1015 "2026-04-12T20:03:29Z")

</div>

@Kyle_Michiels thanks will check !

---

<div class="post-metadata">

**Author:** ![Frank\_Verschoor](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/frank_verschoor/32/11564_2.png) [@Frank\_Verschoor](https://community.homey.app/u/Frank_Verschoor)\
**Post date:** [April 23, 2026, 3:18pm UTC](https://community.homey.app/t/app-pro-eufy-clean/46610/1016 "2026-04-23T15:18:48Z")

</div>

Hi Martijn,

Got a question. Does the homey eufy clean app work when I add my current working E25 and E28 robots to the new Eufy app instead of the Eufy clean app which seems to become EOL?

---

<div class="post-metadata">

**Author:** ![martijnpoppen](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/martijnpoppen/32/84849_2.png) [@martijnpoppen](https://community.homey.app/u/martijnpoppen)\
**Post date:** [April 23, 2026, 4:02pm UTC](https://community.homey.app/t/app-pro-eufy-clean/46610/1017 "2026-04-23T16:02:21Z")

</div>

@Frank_Verschoor the Eufy apps are the same. Just a different UI.

But at the current moment the E25 and E28 are not compatible with Homey

Eufy once again changed their protocols and API

---

<div class="post-metadata">

**Author:** ![Frank\_Verschoor](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/frank_verschoor/32/11564_2.png) [@Frank\_Verschoor](https://community.homey.app/u/Frank_Verschoor)\
**Post date:** [April 23, 2026, 4:30pm UTC](https://community.homey.app/t/app-pro-eufy-clean/46610/1018 "2026-04-23T16:30:31Z")

</div>

Maybe so but It seems that both Devices are still linked and visible in the homey eufy clean app and I still can see their active state…

---

<div class="post-metadata">

**Author:** ![martijnpoppen](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/martijnpoppen/32/84849_2.png) [@martijnpoppen](https://community.homey.app/u/martijnpoppen)\
**Post date:** [April 23, 2026, 5:31pm UTC](https://community.homey.app/t/app-pro-eufy-clean/46610/1019 "2026-04-23T17:31:04Z")

</div>

@Frank_Verschoor in that case good that it works 😃

---

<div class="post-metadata">

**Author:** ![MRK](https://avatars.discourse-cdn.com/v4/letter/m/7ba0ec/32.png) [@MRK](https://community.homey.app/u/MRK)\
**Post date:** [April 27, 2026, 9:20am UTC](https://community.homey.app/t/app-pro-eufy-clean/46610/1020 "2026-04-27T09:20:42Z")

</div>

Hi,

I have the E18 lawn mower, which I believe isn’t supported yet. Is there any way I can help get it supported?

---

<div class="post-metadata">

**Author:** ![martijnpoppen](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/martijnpoppen/32/84849_2.png) [@martijnpoppen](https://community.homey.app/u/martijnpoppen)\
**Post date:** [April 27, 2026, 10:26am UTC](https://community.homey.app/t/app-pro-eufy-clean/46610/1021 "2026-04-27T10:26:35Z")

</div>

@MRK no currently I don’t expect it it can be supported  
It’s a new api which can’t be decrypted at the moment. Same goes for some new Robovacs  
So don’t really see a solution yet. Unless you know how to decrypt it

---

<div class="post-metadata">

**Author:** ![MRK](https://avatars.discourse-cdn.com/v4/letter/m/7ba0ec/32.png) [@MRK](https://community.homey.app/u/MRK)\
**Post date:** [April 28, 2026, 1:38pm UTC](https://community.homey.app/t/app-pro-eufy-clean/46610/1022 "2026-04-28T13:38:53Z")

</div>

Thats a pitty then. I don’t have the knowledge unfortunately to decrypt it.  
Best I can do is to contact Eufy support.

---

<div class="post-metadata">

**Author:** ![martijnpoppen](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/martijnpoppen/32/84849_2.png) [@martijnpoppen](https://community.homey.app/u/martijnpoppen)\
**Post date:** [April 28, 2026, 1:46pm UTC](https://community.homey.app/t/app-pro-eufy-clean/46610/1023 "2026-04-28T13:46:49Z")

</div>

@MRK eufy doesn’t give any support on 3rd party integrations

[Previous page](https://community.homey.app/t/app-pro-eufy-clean/46610.md?page=49)

[Next page](https://community.homey.app/t/app-pro-eufy-clean/46610.md?page=51)
