fix(ilt3k8): use freeClean V2 area command for DEEBOT X9 PRO OMNI - #1749
Open
Rhapsodyan wants to merge 2 commits into
Open
Rhapsodyan wants to merge 2 commits into
Rhapsodyan wants to merge 2 commits into
Conversation
added 2 commits
August 6, 2026 23:58
The X9 PRO OMNI rejects the legacy clean/spotArea area command with '20003: rcp not support' (issue DeebotUniverse#1477). Start already used clean_V2, but area cleaning still used the legacy CleanArea command. Switch the area capability to the V2 freeClean command shape (CleanAreaV2 with CleanMode.FREE_CLEAN), same approach as the T90 PRO OMNI profile (PR DeebotUniverse#1710). Tested on a real X9 PRO OMNI: selected room cleaning starts correctly (mop wash cycle first, then cleans).
The X9 PRO OMNI reads the first freeClean value field as an AREA id, not as the pass count: value="2,3" fails with 'selected area not found' because area 2 does not exist (it worked with 1 pass only by accident, since "1" is the bathroom area id). Pass count must be set with the separate setCleanCount command (clean.count capability), exactly like the Ecovacs app does. Always build value="1,<id1>,<id2>" (first field is a fixed flag). Tested on a real X9 PRO OMNI: setCleanCount(2) + value="1,3" starts a 2-pass laundry-room clean correctly.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
The DEEBOT X9 PRO OMNI (
ilt3k8) rejects the legacy area clean command with20003: rcp not support(see #1477). The profile already usedCleanV2for the base action, but area cleaning still used the legacyCleanAreacommand (clean+spotArea).This PR switches the area capability to the V2 freeClean command shape, mirroring the approach already validated for the T90 PRO OMNI (PR #1710).
Pass-count fix (commit 2)
The X9 reads the first freeClean value field as an area id, not as the pass count:
value="2,3"fails withselected area not found(area2does not exist)value="1,3"used to start only by accident, because1happens to be the bathroom area idPass count must be set with the separate
setCleanCountcommand (clean.countcapability), exactly like the Ecovacs app does. The freeClean value is therefore always built as"1,<id1>,<id2>"(first field is a fixed flag).Tested on a real X9 PRO OMNI:
setCleanCount(2)+value="1,3"starts a 2-pass laundry-room clean correctly. The Home Assistant integration should sendsetCleanCount(N)beforespot_areawhenN > 1(already handled by the ecovacs HA custom component callingclean.count.set()).Checklist