Repository navigation
Conversation
This branch has not been deployed
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
Part of #738 (dock controls): the per-model option lists need these product nicknames.
Adds the V1 vacuum product nicknames that the Roborock app knows but
RoborockProductNicknamelacked, with the base product features the app gives them. Today these models fall back toPEARLPLUS, so they get Qrevo MaxV product features.The data comes from the model config module of the current V1 app plugins, where each product is created with
createDeviceModelConfig({product, shortModels, features, inheritedConfig, remake, ...}). Applying the app's merge rules (inherited features, defaults with the same exclusion lists asPRODUCTS_WITHOUT_*, theremakefilter) reproduces the library's existing entries, and the new entries are derived the same way.New nicknames
BERYL_FEATURES(Max+, RGB camera)VIVIANSPROC_FEATURES(Max+, RGB camera, spin mop)PEARL_PLUS_FEATURESPEARL_FEATURESExisting nicknames also get the short models the app lists for them:
VIVIANC+ a186, a187, a209, a210, a246;CORALPRO+ a231, a232, a236, a308.None of the new products joins a
PRODUCTS_WITHOUT_*set. Existing nicknames keep exactly their features: the first commit adds a per-nickname snapshot ofPRODUCT_FEATURE_MAPgenerated onmain, and those entries do not change.PEARLELITE(a169/a170) keeps its name; newer app versions call itPearlEPro, with the same features.Roller-mop models
The Beryl products (e.g. P30 Pro a306, Saros 20 Flow a307, Qrevo Curv 2 Flow a245) use a roller mop and have no mop-module product feature. The app enables water modes for them through the roller-mop capability, and its custom-mode check treats the roller mop like a shake or spin module.
is_support_water_modeandis_customized_clean_supportednow also followis_roller_mop_supported, asis_clean_route_setting_supportedalready does.Behaviour changes
Models that used to fall back to
PEARLPLUSnow get their own features:PEARL_PLUS_FEATURES(and the VivianC extras) no longer reportis_new_remote_view_supported; the app does not give themRemote_Back.The only existing test sample affected is the P30 Pro (a306):
is_new_remote_view_supportedTrue -> False. Device features are cached, so existing installs keep their old values until the cache is rebuilt; recomputing them from the cached raw flags could be a follow-up.The app differs from three existing entries, left unchanged here: TOPAZSPOWER (
remote_back), TANOSSPLUS (map3d) and ULTRONSE (no electronic mop or pure clean mop). Happy to follow up separately.Overlap with open PRs
QUINN(PEARL_FEATURES). Whichever lands second needs a294 set toQUINNindevice_info.yamland the Qrevo 2 Pro feature snapshot refreshed (is_new_remote_view_supportedbecomes False). In the app, QUINN has a single-line camera and no RGB camera, which may also help fix: omit obstacle photos for Qrevo 2 Pro #1030.Unknownindevice_info.yaml; with this PR a288 isCORALPROSAW.SUPPORTED_FEATURES.md; the a187 cell (VIVIANC) only needs a regeneration after either PR lands.Happy to rebase on any of them.
Test plan
uv run pre-commit run --all-filesuv run pytestPRODUCT_FEATURE_MAPsnapshot, short model to nickname table, short-model uniqueness,product_nicknamefallback, roller-mop water mode and custom clean.