feat: Flow 2 diagnostics, discovery, and live-state improvements - #35
feat: Flow 2 diagnostics, discovery, and live-state improvements#35StratoGh0st99 wants to merge 1 commit into
Conversation
|
@Anaxagoras-bc I just created a new pr and rebuild my fork. |
|
@StratoGh0st99
|
|
@StratoGh0st99 Your PR is working quite well, the cleaning activity is more accurate. On a side note, have you figured out what the command for End "dust bag drying/disinfection" is from the app to the robot. Cannot figure out how to stop that process. |
I believe you need to be on Home Assistant 2026.3 at least for the following to work: Click on "Vacuum" (in Steuerelemente) then at the pop up that opens you should see a button called "Cleaning by area" probably translated to German for you). The first time you click it you should be given the option to assign rooms from the vacuum to the area rooms of your home assistant. I tried it once and it initiated fine, I had a weird audio glitch like the vacuum tried to communicate something to me but it cut off and repeated over and over. Lasted for a few seconds then the vacuum cleaned the mop and continued.
|
|
@saeft2003 My screenshot is from webview which is probably why it looks different but yeah I also see the old version number, even though I did remember needing to distinctly upgrade to the most recent version once it appeared as an update in HA.
|
|
@saeft2003 silly question but did you try restarting the integration and /or Home Assistant after you assigned the zones? If that doesn't work, you probably need more directed from @StratoGh0st99. Maybe best to open a new issue on his fork repo for it? |
|
Thanks for consolidating this work — it's clearly substantial (+3,806 / −313). To get it merged without a slow back-and-forth, can you split it into separate PRs by feature area? Suggested cuts:
That lets us ship the safe pieces immediately while we review the larger ones. Diagnostic entities alone would close most of the open Flow 2 feature requests. If splitting is too much effort I'll review as a monolith, but turnaround will be slower. Also flagging: PR #24 (current_room sensor) and #20 (now merged) touch overlapping areas — wherever there's overlap, the version in master wins to keep history sane. |
|
After restarting Home Assistant, regardless of which room I select in Home Assistant, a cleaning cycle for three rooms is always started. These three rooms are my first shortcut in the Narwal app. Unfortunately, I can't open an issue in the fork; it's not available there. @StratoGh0st99
|
…37) @saeft2003 reported on PR #35 that HA room cleans were ignoring the selection and always running the first Narwal-app shortcut instead. Same firmware-schema root cause as #36 — the legacy flat-room schema in _build_room_clean_payload is rejected (or ack-and-ignored) by firmware v01.07.22+, so the robot falls back to its onboard default plan. start_rooms() now: 1. Tries the legacy flat-room payload (preserves behavior on older firmware) 2. On NOT_APPLICABLE, retries with _build_clean_payload_v2 populated from the caller-selected room IDs (not all map rooms) Also adds force_v2 kwarg for firmwares that ack the legacy payload with SUCCESS but still ignore the room list — for those, the NOT_APPLICABLE detector can't fire, so callers (or a future config option) can opt straight into v2. 4 new tests cover SUCCESS (no retry), NOT_APPLICABLE (retry with same room IDs), CONFLICT (no retry), and force_v2. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
|
@saeft2003 — I tracked your room-selection report into a separate bug at #37 and shipped a fix on master in 516ed1c. Same firmware-schema root cause as #36 (the whole-house
This is orthogonal to the rest of PR #35; my comment about splitting the PR still stands. |
|
@StratoGh0st99 — apologies for how long this has sat. Sequencing plan for all the overlapping fork work is now in #66. Where this PR lands: the room-clean and mop-humidity pieces are superseded by #49 and #50, which trace the root cause to the topic itself ( But your mDNS/DHCP discovery is not duplicated by anyone, and it's the biggest UX win still outstanding in the repo. #40 has a user who couldn't complete setup at all because the 15s wake timeout expires before the robot answers — discovery plus a longer/adaptive timeout fixes that class of failure outright. Could you split discovery out as a standalone PR against master? I'll prioritize reviewing it ahead of the rest of the queue. Same for the diagnostic entities in here that survive #52 — happy to look at those separately once the base_status audit lands. |
|
Thanks for your patience here — a lot has moved on Since the merge plan in #66 was posted, the following landed, and each overlaps a chunk of #35:
So most of #35's 3,806 lines — the sensors, binary sensors, selects, map renderer, model parsing — now have an equivalent on master, from PRs scoped one concern each. #35 currently conflicts in 27 files, and that isn't something I can resolve maintainer-side without effectively rewriting your branch and guessing at your intent. What's still uniquely yours, and still wanted: the zeroconf + DHCP discovery. Nothing has landed for it, and it's the biggest outstanding UX win in the tracker — #40 shows setup failing outright on the 15 s wake timeout, which discovery sidesteps entirely. Could you open a standalone PR against current
One note: If you'd rather not do the extraction yourself, say so and I'll cherry-pick the discovery commits with you as author. I'd much rather do that than lose the work. Leaving #35 open until you've had a chance to reply. |
Adds docs/RELEASE-NOTES-v1.0.2.md leading with three breaking changes, not two — #69's fix means whole-house vacuum.start now goes through clean/start_clean and therefore requires the dock. README: Project Status refreshed (28 commits, merge queue empty apart from #35), Features section covers the four new entity platforms, and the stale 'clean settings not exposed' / 'state can freeze' limitations are corrected.
|
@StratoGh0st99 — rather than let this sit waiting on another rebase from you, I've done the extraction I offered: #78, with you as the commit author. It's the zeroconf + DHCP discovery only, ported onto current Before merging it I browsed mDNS on my own network against a Flow (AX12), and your identifiers check out exactly: The service type, the instance-name shape, the That capture also answered something your implementation had to work around. A configured entry's Related: the Two asks:
On the rest of #35: the sensors, binary sensors, selects, map renderer and model parsing all now have equivalents on master from the PRs listed earlier in this thread, so once #78 lands there's nothing left in here that master doesn't have. I'll close #35 then — tell me if you disagree, because you'd know better than the diff does. The capture tooling still can't land in-tree ( |
…oGh0st99) Adds zeroconf (_narwal_sweeper._tcp.local.) and DHCP hostname discovery to the config flow, cherry-picked from #35 and authored to @StratoGh0st99. Field-confirmed by @DeNo64 on #81, who reported it detected their Flow 2 with the correct IP on a network the maintainer does not have. Also carries a README note on VLAN-segmented networks (#81).
|
@StratoGh0st99 — closing this, with the discovery work merged and one piece of it still owed to you. Merged: the zeroconf + DHCP discovery is on master as of #78 / Why close rather than rebase: this branch's merge base is The one genuine exception, and I want to be straight about it rather than claim full coverage: this PR contains That policy is worth revisiting, and I'd rather revisit it than quietly drop 840 lines of working capture tooling. If you're up for it, say the word and I'll take Thank you for the discovery work — it's shipped and it's yours. |










Summary
This PR expands Flow 2 support and improves the integration’s local discovery, diagnostics, and state decoding.
Highlights
Notes