Skip to content

Add RV30(UN) 1.0 1.2.2 device fixture#1665

Open
davidefiocco wants to merge 4 commits into
python-kasa:masterfrom
davidefiocco:fix/add-rv30un-fixture
Open

Add RV30(UN) 1.0 1.2.2 device fixture#1665
davidefiocco wants to merge 4 commits into
python-kasa:masterfrom
davidefiocco:fix/add-rv30un-fixture

Conversation

@davidefiocco

@davidefiocco davidefiocco commented Mar 1, 2026

Copy link
Copy Markdown
Contributor

I propose to add a fixture for a robot vacuum: RV30(UN) 1.0, firmware 1.2.2, generated with dump_devinfo.

@davidefiocco
davidefiocco force-pushed the fix/add-rv30un-fixture branch from d38718b to 34b69a2 Compare March 1, 2026 15:51
@davidefiocco

davidefiocco commented Mar 1, 2026

Copy link
Copy Markdown
Contributor Author

The PR fails in CI, and something a bit complicated is going on I am afraid.

test_vacuum_records_group and test_vacuum_records_list fail because the RV30(UN) lacks the clean_percent component. The tests assume all vacuums support it, but my RV30 doesn't.

Also, adding "RV30" to VACUUMS_SMART also triggers test_update_module_query_errors failures.

This would happen for other vacuum models though: mine is the first vacuum fixture whose model name actually matches the patterns in VACUUMS_SMART (existing fixtures for the RV20 Max Plus and RV30 Max don't match "RV20"/"RV30" due to how the model name is parsed in

RV20 Max Plus(EU)_1.0_1.0.7.json                    file_model='RV20 Max Plus'
RV30 Max(US)_1.0_1.2.0.json                         file_model='RV30 Max'

per the logic in

file_model_region = fixture_data.name.split("_")[0]

The same errors here would be seen for the other robovacuum fixtures, if they matched the set in VACUUMS_SMART.
I am not attempting fixes here, but this would require work in other modules I guess.

@ZeliardM

ZeliardM commented Mar 3, 2026

Copy link
Copy Markdown
Collaborator

@davidefiocco It seems that the RV30 builds components differently and connects differently than the RV30 MAX or RV20 MAX PLUS, things that we use modules to read are there, just in a different place or component. So, we will need to look at how to handle the shifts in module linking for the different devices since this model is new and the encryption is different as well.

Has this device been set up with the Tapo App, configured with the Cloud and had a firmware update done on it at all?

@davidefiocco

davidefiocco commented Mar 3, 2026

Copy link
Copy Markdown
Contributor Author

Hello @ZeliardM, thanks!

Has this device been set up with the Tapo App, configured with the Cloud and had a firmware update done on it at all?

Yes, to all three. Before tinkering with python-kasa I setup and use the device via the Tapo app, connect it to the internet so that I can start cleaning job when I am not home and also yes, I updated the firmware, even though I haven't kept track of what it originally came with before 1.2.2. Does it answer your questions?

@ZeliardM

ZeliardM commented Mar 3, 2026

Copy link
Copy Markdown
Collaborator

@davidefiocco Yep, ok, so the fixture looks very different from the other vacuums. I'll need to look closer into it and see what we can get going. I'll more than likely setup another PR for all those changes, then I'll need to to pull everything and test it out, if you're ok with that?

@davidefiocco

davidefiocco commented Mar 3, 2026

Copy link
Copy Markdown
Contributor Author

Sure, happy to help! I will keep an eye on your updates here about this to see if the new PR gets referenced, keep me posted!

@davidefiocco
davidefiocco force-pushed the fix/add-rv30un-fixture branch from 82aa24a to 848e255 Compare March 22, 2026 21:36
@davidefiocco

Copy link
Copy Markdown
Contributor Author

I regenerated the fixture so that now it contains a map. Some other parts have been shortened.

@ZeliardM

Copy link
Copy Markdown
Collaborator

@davidefiocco Did you manually change anything or just run the dump again?

@davidefiocco

davidefiocco commented Mar 22, 2026

Copy link
Copy Markdown
Contributor Author

Hey @ZeliardM yes, thanks, you made me realize I had inadvertently patched the dump with the map data.
I am currently having issues in dumping the fixture with the map data (similarly to #1516), and the version of the fixture I had committed was the result of an experiment, but not a vanilla dump. I have reverted my commit to restore the fixture as it was before that mistake. Apologies!

@ZeliardM

Copy link
Copy Markdown
Collaborator

@davidefiocco Hmm, ok. Not sure about the map data piece, but I still need to go through your fixture and figure out the other differences.

@github-actions

Copy link
Copy Markdown

There hasn't been any activity on this pull request recently. This pull request has been automatically marked as stale because of that and will be closed if no further activity occurs within 7 days.
If you are the author of this PR, please leave a comment if you want to keep it open. Also, please rebase your PR onto the latest dev branch to ensure that it's up to date with the latest changes.
Thank you for your contribution!

@github-actions github-actions Bot added the stale label Jun 21, 2026
@github-actions github-actions Bot closed this Jun 29, 2026
@rytilahti rytilahti removed the stale label Jul 10, 2026
@rytilahti rytilahti reopened this Jul 10, 2026
@rytilahti

rytilahti commented Jul 10, 2026

Copy link
Copy Markdown
Member

Reopened, as it is still useful to have it in the collection. I have a rv20 max plus, that also might have an incomplete dump (or at least it also cleared the map) when dumping the fixture, the dumper exited with Device 192.168.xx.xx received unknown error code: -3016.

Fixture in #1721.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

new device New device supported due to fixture being added

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants