GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — Initial support for vacuums (clean module) by rytilahti · Pull Request #944 · python-kasa/python-kasa

Conversation

@rytilahti

@rytilahti rytilahti commented Jun 2, 2024 •
edited
Loading

Uh oh!

There was an error while loading. Please reload this page.

Copy link
Copy Markdown
Member

Adds support for clean module:

  • Show current vacuum state
  • Start cleaning (all rooms)
  • Return to dock
  • Pausing & unpausing
  • Controlling the fan speed

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

GSzabados reacted with rocket emoji
All reactions
  • 🚀 1 reaction
@rytilahti rytilahti added the enhancement New feature or request label Jun 2, 2024
@rytilahti rytilahti mentioned this pull request Jun 2, 2024
Add support for cleaning records #945
Merged
@sdb9696 sdb9696 added the no-stale label Sep 27, 2024
@rytilahti
rytilahti force-pushed the feat/tokentransport branch 2 times, most recently from 69369f7 to 8886600 Compare November 28, 2024 17:01
@rytilahti
rytilahti force-pushed the feat/vacuum branch 2 times, most recently from cee3933 to 72c9db3 Compare November 30, 2024 15:17
@rytilahti rytilahti mentioned this pull request Nov 30, 2024
Initial implementation for tplink tapo vacuums home-assistant/core#131965
Merged
1 of 19 tasks
Base automatically changed from feat/tokentransport to master December 1, 2024 17:06
@rytilahti
rytilahti force-pushed the feat/vacuum branch from 5a5f53d to ba4c2f2 Compare December 2, 2024 12:19
@codecov

codecov Bot commented Dec 2, 2024 •
edited
Loading

Uh oh!

There was an error while loading. Please reload this page.

Copy link
Copy Markdown

Codecov Report

Attention: Patch coverage is 96.58120% with 4 lines in your changes missing coverage. Please review.

Project coverage is 92.64%. Comparing base (be34dbd) to head (0e6fb77).
Report is 58 commits behind head on master.

Files with missing lines Patch % Lines
kasa/smart/modules/clean.py 96.26% 2 Missing and 2 partials ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##           master     #944      +/-   ##
==========================================
+ Coverage   92.56%   92.64%   +0.07%     
==========================================
  Files         133      134       +1     
  Lines        8344     8459     +115     
  Branches      860      867       +7     
==========================================
+ Hits         7724     7837     +113     
- Misses        454      455       +1     
- Partials      166      167       +1     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

sdb9696
sdb9696 reviewed Dec 19, 2024
View reviewed changes
Comment thread kasa/smart/modules/vacuum.py Resolved

Uh oh!

There was an error while loading. Please reload this page.

@rytilahti
rytilahti force-pushed the feat/vacuum branch from 6d35503 to a472cbe Compare January 3, 2025 17:32
@devinsmith911

devinsmith911 commented Jan 4, 2025

Copy link
Copy Markdown

Tested this initial PR with a Tapo RV30 Plus.

All functionality listed in the description seems to work fine, (start cleaning, pause, head home, status, fan speed control).

This model has the ability to empty the dust bin, which would be awesome to add here, but obviously not imperative for an initial implementation.

vincep5 reacted with thumbs up emoji rytilahti reacted with rocket emoji
All reactions
  • 👍 1 reaction
  • 🚀 1 reaction

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@vincep5

vincep5 commented Jan 4, 2025

Copy link
Copy Markdown

I've been testing with a RV30 Max machine (does not have the auto empty dock). Start, Pause, Head home, and adjusting the fan speed are all working great via the command line in my test environment. I was also able to throw some errors like the dustbin is missing and lidar was blocked.
Thanks

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@rytilahti

rytilahti commented Jan 4, 2025

Copy link
Copy Markdown
Member Author

Thanks for testing and reporting back!

I think this is getting close to be ready to get merged, after unit tests are added and after the irrelevant (klap support, ..) commits are extracted and removed.
Before merging, this module should be renamed to keep "Vacuum" reserved for an API that exposes different basic vacuum features (like speaker controls to locate the device, ref #1332).

This model has the ability to empty the dust bin, which would be awesome to add here, but obviously not imperative for an initial implementation.

Ask and you'll receive! #1423 adds initial implementation, feel free to test and report on that PR if it's working as expected :-)

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@devinsmith911

devinsmith911 commented Jan 6, 2025

Copy link
Copy Markdown

Thanks for testing and reporting back!

I think this is getting close to be ready to get merged, after unit tests are added and after the irrelevant (klap support, ..) commits are extracted and removed. Before merging, this module should be renamed to keep "Vacuum" reserved for an API that exposes different basic vacuum features (like speaker controls to locate the device, ref #1332).

This model has the ability to empty the dust bin, which would be awesome to add here, but obviously not imperative for an initial implementation.

Ask and you'll receive! #1423 adds initial implementation, feel free to test and report on that PR if it's working as expected :-)

Thanks for this, will test that out.
Ran into a situation today where the vacuum is returning status 8 which appears to me to be IDLE state, since it's not docked but also not cleaning or errored.
Have others confirmed that 0 is the correct status for IDLE, or is that perhaps not the case?

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@KwFung7

KwFung7 commented Jan 6, 2025 •
edited
Loading

Uh oh!

There was an error while loading. Please reload this page.

Copy link
Copy Markdown

@rytilahti I have RV30 robot vacuum at home and I'm willing to help on testing at leisure.

I'm a software engineer but I'm not sure how I could point to specific branch of python-kass from HA, could I have some clues as Im quite new to HA community.

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@devinsmith911

devinsmith911 commented Jan 7, 2025

Copy link
Copy Markdown

Thanks for testing and reporting back!
I think this is getting close to be ready to get merged, after unit tests are added and after the irrelevant (klap support, ..) commits are extracted and removed. Before merging, this module should be renamed to keep "Vacuum" reserved for an API that exposes different basic vacuum features (like speaker controls to locate the device, ref #1332).

This model has the ability to empty the dust bin, which would be awesome to add here, but obviously not imperative for an initial implementation.

Ask and you'll receive! #1423 adds initial implementation, feel free to test and report on that PR if it's working as expected :-)

Thanks for this, will test that out. Ran into a situation today where the vacuum is returning status 8 which appears to me to be IDLE state, since it's not docked but also not cleaning or errored. Have others confirmed that 0 is the correct status for IDLE, or is that perhaps not the case?

This was resolved by the latest commit adding the undocked state 👍

rytilahti reacted with thumbs up emoji
All reactions
  • 👍 1 reaction

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@rytilahti
rytilahti force-pushed the feat/vacuum branch 2 times, most recently from a5cf10e to 1a24f57 Compare January 11, 2025 13:27
rytilahti
rytilahti commented Jan 11, 2025
View reviewed changes
Comment thread tests/smart/modules/test_clean.py Resolved

Uh oh!

There was an error while loading. Please reload this page.

Comment thread kasa/smart/modules/clean.py Resolved

Uh oh!

There was an error while loading. Please reload this page.

Comment thread kasa/smart/modules/clean.py Resolved

Uh oh!

There was an error while loading. Please reload this page.

@rytilahti
rytilahti marked this pull request as ready for review January 12, 2025 12:55
@rytilahti
rytilahti force-pushed the feat/vacuum branch 2 times, most recently from 97fdf52 to 7315196 Compare January 12, 2025 14:03
@rytilahti rytilahti mentioned this pull request Jan 12, 2025
dump_devinfo: add more vac requests #1441
Closed
sdb9696
sdb9696 approved these changes Jan 12, 2025
View reviewed changes

@sdb9696 sdb9696 left a comment

Copy link
Copy Markdown
Contributor

There was a problem hiding this comment.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

All reactions
rytilahti added 3 commits January 12, 2025 18:33
@rytilahti
Initial support for vacuums (clean module)
2995ee2
@rytilahti
Await calls
d61eedd
@rytilahti
Cleanup a bit
6969609
@rytilahti
Improve coverage
7947be6
rytilahti
rytilahti commented Jan 13, 2025
View reviewed changes
Comment thread kasa/deviceconfig.py Resolved

Uh oh!

There was an error while loading. Please reload this page.

Comment thread kasa/discover.py Resolved

Uh oh!

There was an error while loading. Please reload this page.

@rytilahti
rytilahti requested a review from sdb9696 January 13, 2025 15:38
rytilahti added 5 commits January 13, 2025 17:41
@rytilahti
Wrap the battery-too-low exception when trying to start cleaning
a4223ec
@rytilahti
Use add VACUUM_BATTERY_LOW exception
049731f
@rytilahti
Merge remote-tracking branch 'upstream/master' into feat/vacuum
c596675
@rytilahti
Add SideBrushStuck error
e750348
@rytilahti
Add battery low error
622b3b6
rytilahti
rytilahti commented Jan 13, 2025
View reviewed changes
Comment thread kasa/device_factory.py Resolved

Uh oh!

There was an error while loading. Please reload this page.

rytilahti and others added 2 commits January 13, 2025 18:54
@rytilahti
Reduce logging verbosity by removing config logging for try_connect_all
6f2ecd6
@sdb9696
Merge remote-tracking branch 'upstream/master' into feat/vacuum
0e6fb77
sdb9696
sdb9696 approved these changes Jan 14, 2025
View reviewed changes

@sdb9696 sdb9696 left a comment

Copy link
Copy Markdown
Contributor

There was a problem hiding this comment.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM! Let's merge it!

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

rytilahti reacted with rocket emoji
All reactions
  • 🚀 1 reaction
@rytilahti rytilahti linked an issue Jan 14, 2025 that may be closed by this pull request
dumping HTTP POST Body for Tapo Vacuum (RV30 Plus) #937
Closed
@rytilahti
rytilahti merged commit 1be8767 into master Jan 14, 2025
@rytilahti
rytilahti deleted the feat/vacuum branch January 14, 2025 14:35
@rytilahti rytilahti mentioned this pull request Jan 14, 2025
Add RV20 Max Plus fixture #1440
Closed
@sdb9696 sdb9696 mentioned this pull request Jan 22, 2025
Prepare 0.10.0 #1473
Merged
sdb9696 added a commit that referenced this pull request Jan 26, 2025
@sdb9696
Prepare 0.10.0 (#1473)
09e73fa
## [0.10.0](https://github.com/python-kasa/python-kasa/tree/0.10.0) (2025-01-26)

[Full Changelog](0.9.1...0.10.0)

**Release summary:**

This release brings support for many new devices, including completely new device types:

- Support for Tapo robot vacuums. Special thanks to @steveredden, @MAXIGAMESSUPPER, and veep60 for helping to get this implemented!
- Support for hub attached cameras and doorbells (H200)
- Improved support for hubs (including pairing & better chime controls)
- Support for many new camera and doorbell device models, including C220, C720, D100C, D130, and D230

Many thanks to testers and new contributors - @steveredden, @DawidPietrykowski, @Obbay2, @andrewome, @ryenitcher and @etmmvdp!

**Breaking changes:**

- `uses_http` is now a readonly property of device config. Consumers that relied on `uses_http` to be persisted with `DeviceConfig.to_dict()` will need to store the value separately.
- `is_color`, `is_dimmable`, `is_variable_color_temp`, `valid_temperate_range`, and `has_effects` attributes from the `Light` module are deprecated, consumers should use `has_feature("hsv")`, `has_feature("brightness")`, `has_feature("color_temp")`, `get_feature("color_temp").range`, and `Module.LightEffect in dev.modules` respectively. Calling the deprecated attributes will emit a `DeprecationWarning` and type checkers will fail them.
-  `alarm_volume` on the `smart.Alarm` module is changed from `str` to `int`

**Breaking changes:**

- Make uses\_http a readonly property of device config [\#1449](#1449) (@sdb9696)
- Allow passing alarm parameter overrides [\#1340](#1340) (@rytilahti)
- Deprecate legacy light module is\_capability checks [\#1297](#1297) (@sdb9696)

**Implemented enhancements:**

- Expose more battery sensors for D230 [\#1451](#1451)
- dumping HTTP POST Body for Tapo Vacuum \(RV30 Plus\) [\#937](#937)
- Add common alarm interface [\#1479](#1479) (@sdb9696)
- Add common childsetup interface [\#1470](#1470) (@sdb9696)
- Add childsetup module to smartcam hubs [\#1469](#1469) (@sdb9696)
- Add smartcam pet detection toggle module [\#1465](#1465) (@DawidPietrykowski)
- Only log one warning per unknown clean error code and status [\#1462](#1462) (@rytilahti)
- Add childlock module for vacuums [\#1461](#1461) (@rytilahti)
- Add ultra mode \(fanspeed = 5\) for vacuums [\#1459](#1459) (@rytilahti)
- Add setting to change carpet clean mode [\#1458](#1458) (@rytilahti)
- Add setting to change clean count [\#1457](#1457) (@rytilahti)
- Add mop module [\#1456](#1456) (@rytilahti)
- Enable dynamic hub child creation and deletion on update [\#1454](#1454) (@sdb9696)
- Expose current cleaning information [\#1453](#1453) (@rytilahti)
- Add battery module to smartcam devices [\#1452](#1452) (@sdb9696)
- Allow update of camera modules after setting values [\#1450](#1450) (@sdb9696)
- Update hub children on first update and delay subsequent updates [\#1438](#1438) (@sdb9696)
- Add support for doorbells and chimes [\#1435](#1435) (@steveredden)
- Implement vacuum dustbin module \(dust\_bucket\) [\#1423](#1423) (@rytilahti)
- Allow https for klaptransport [\#1415](#1415) (@rytilahti)
- Add smartcam child device support for smartcam hubs [\#1413](#1413) (@sdb9696)
- Add powerprotection module [\#1337](#1337) (@rytilahti)
- Add vacuum speaker controls [\#1332](#1332) (@rytilahti)
- Add consumables module for vacuums [\#1327](#1327) (@rytilahti)
- Add ADC Value to PIR Enabled Switches [\#1263](#1263) (@ryenitcher)
- Add support for cleaning records [\#945](#945) (@rytilahti)
- Initial support for vacuums \(clean module\) [\#944](#944) (@rytilahti)
- Add support for pairing devices with hubs [\#859](#859) (@rytilahti)

**Fixed bugs:**

- TP-Link HS300 Wi-Fi Power-Strip - "Parent On/Off" not functioning. [\#637](#637)
- Convert carpet\_clean\_mode to carpet\_boost switch [\#1486](#1486) (@rytilahti)
- Change category for empty dustbin feature from Primary to Config [\#1485](#1485) (@rytilahti)
- Report 0 for instead of None for zero current and voltage [\#1483](#1483) (@ryenitcher)
- Disable iot camera creation until more complete [\#1480](#1480) (@sdb9696)
- ssltransport: use debug logger for sending requests [\#1443](#1443) (@rytilahti)
- Fix discover cli command with host [\#1437](#1437) (@sdb9696)
- Fallback to is\_low for batterysensor's battery\_low [\#1420](#1420) (@rytilahti)
- Fix iot strip turn on and off from parent [\#639](#639) (@Obbay2)

**Added support for devices:**

- Add D130\(US\) 1.0 1.1.9 fixture [\#1476](#1476) (@sdb9696)
- Add D100C\(US\) 1.0 1.1.3 fixture [\#1475](#1475) (@sdb9696)
- Add C220\(EU\) 1.0 1.2.2 camera fixture [\#1466](#1466) (@DawidPietrykowski)
- Add D230\(EU\) 1.20 1.1.19 fixture [\#1448](#1448) (@sdb9696)
- Add fixture for C720 camera [\#1433](#1433) (@steveredden)

**Project maintenance:**

- Update ruff to 0.9 [\#1482](#1482) (@sdb9696)
- Cancel in progress CI workflows after new pushes [\#1481](#1481) (@sdb9696)
- Update test framework to support smartcam device discovery. [\#1477](#1477) (@sdb9696)
- Add error code 7 for clean module [\#1474](#1474) (@rytilahti)
- Enable CI workflow on PRs to feat/ fix/ and janitor/ [\#1471](#1471) (@sdb9696)
- Add commit-hook to prettify JSON files [\#1455](#1455) (@rytilahti)
- Add required sphinx.configuration [\#1446](#1446) (@rytilahti)
- Add more redactors for smartcams [\#1439](#1439) (@sdb9696)
- Add KS230\(US\) 2.0 1.0.11 IOT Fixture [\#1430](#1430) (@ZeliardM)
- Add tests for dump\_devinfo parent/child smartcam fixture generation [\#1428](#1428) (@sdb9696)
- Raise errors on single smartcam child requests [\#1427](#1427) (@sdb9696)
@IzSmithh

IzSmithh commented Apr 1, 2025

Copy link
Copy Markdown

Thank you for all the effort in adding this vacuum,
Id like to point out log entries that have been popping up since adding this vacuum. it comes as an error and warning.
the vacuum still works as indented.

Logger: kasa.smart.smartdevice
Source: components/tplink/coordinator.py:78
First occurred: 09:38:51 (9 occurrences)
Last logged: 10:01:16

Error processing Matter for device 192.168.1.50, module will be unavailable: get_matter_setup_info for Matter (error_code=UNKNOWN_METHOD_ERROR)

Hope this is the right place for this..
thanks .

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@rytilahti

rytilahti commented Apr 1, 2025

Copy link
Copy Markdown
Member Author

Please create a separate issue to track this. Iirc, the matter info should only be requested if the device reports to support it, but maybe there is something we can improve to avoid repeating warnings for cases where the device reports a query is failing with that error :-)

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

rytilahti added a commit to rytilahti/python-kasa that referenced this pull request Aug 31, 2025
@rytilahti @sdb9696
Initial support for vacuums (clean module) (python-kasa#944)
4c26ccc
Adds support for clean module:
- Show current vacuum state
- Start cleaning (all rooms)
- Return to dock
- Pausing & unpausing
- Controlling the fan speed

---------

Co-authored-by: Steven B <[email protected]>
rytilahti pushed a commit to rytilahti/python-kasa that referenced this pull request Aug 31, 2025
@sdb9696 @rytilahti
Prepare 0.10.0 (python-kasa#1473)
a11b953
## [0.10.0](https://github.com/python-kasa/python-kasa/tree/0.10.0) (2025-01-26)

[Full Changelog](python-kasa/python-kasa@0.9.1...0.10.0)

**Release summary:**

This release brings support for many new devices, including completely new device types:

- Support for Tapo robot vacuums. Special thanks to @steveredden, @MAXIGAMESSUPPER, and veep60 for helping to get this implemented!
- Support for hub attached cameras and doorbells (H200)
- Improved support for hubs (including pairing & better chime controls)
- Support for many new camera and doorbell device models, including C220, C720, D100C, D130, and D230

Many thanks to testers and new contributors - @steveredden, @DawidPietrykowski, @Obbay2, @andrewome, @ryenitcher and @etmmvdp!

**Breaking changes:**

- `uses_http` is now a readonly property of device config. Consumers that relied on `uses_http` to be persisted with `DeviceConfig.to_dict()` will need to store the value separately.
- `is_color`, `is_dimmable`, `is_variable_color_temp`, `valid_temperate_range`, and `has_effects` attributes from the `Light` module are deprecated, consumers should use `has_feature("hsv")`, `has_feature("brightness")`, `has_feature("color_temp")`, `get_feature("color_temp").range`, and `Module.LightEffect in dev.modules` respectively. Calling the deprecated attributes will emit a `DeprecationWarning` and type checkers will fail them.
-  `alarm_volume` on the `smart.Alarm` module is changed from `str` to `int`

**Breaking changes:**

- Make uses\_http a readonly property of device config [\python-kasa#1449](python-kasa#1449) (@sdb9696)
- Allow passing alarm parameter overrides [\python-kasa#1340](python-kasa#1340) (@rytilahti)
- Deprecate legacy light module is\_capability checks [\python-kasa#1297](python-kasa#1297) (@sdb9696)

**Implemented enhancements:**

- Expose more battery sensors for D230 [\python-kasa#1451](python-kasa#1451)
- dumping HTTP POST Body for Tapo Vacuum \(RV30 Plus\) [\python-kasa#937](python-kasa#937)
- Add common alarm interface [\python-kasa#1479](python-kasa#1479) (@sdb9696)
- Add common childsetup interface [\python-kasa#1470](python-kasa#1470) (@sdb9696)
- Add childsetup module to smartcam hubs [\python-kasa#1469](python-kasa#1469) (@sdb9696)
- Add smartcam pet detection toggle module [\python-kasa#1465](python-kasa#1465) (@DawidPietrykowski)
- Only log one warning per unknown clean error code and status [\python-kasa#1462](python-kasa#1462) (@rytilahti)
- Add childlock module for vacuums [\python-kasa#1461](python-kasa#1461) (@rytilahti)
- Add ultra mode \(fanspeed = 5\) for vacuums [\python-kasa#1459](python-kasa#1459) (@rytilahti)
- Add setting to change carpet clean mode [\python-kasa#1458](python-kasa#1458) (@rytilahti)
- Add setting to change clean count [\python-kasa#1457](python-kasa#1457) (@rytilahti)
- Add mop module [\python-kasa#1456](python-kasa#1456) (@rytilahti)
- Enable dynamic hub child creation and deletion on update [\python-kasa#1454](python-kasa#1454) (@sdb9696)
- Expose current cleaning information [\python-kasa#1453](python-kasa#1453) (@rytilahti)
- Add battery module to smartcam devices [\python-kasa#1452](python-kasa#1452) (@sdb9696)
- Allow update of camera modules after setting values [\python-kasa#1450](python-kasa#1450) (@sdb9696)
- Update hub children on first update and delay subsequent updates [\python-kasa#1438](python-kasa#1438) (@sdb9696)
- Add support for doorbells and chimes [\python-kasa#1435](python-kasa#1435) (@steveredden)
- Implement vacuum dustbin module \(dust\_bucket\) [\python-kasa#1423](python-kasa#1423) (@rytilahti)
- Allow https for klaptransport [\python-kasa#1415](python-kasa#1415) (@rytilahti)
- Add smartcam child device support for smartcam hubs [\python-kasa#1413](python-kasa#1413) (@sdb9696)
- Add powerprotection module [\python-kasa#1337](python-kasa#1337) (@rytilahti)
- Add vacuum speaker controls [\python-kasa#1332](python-kasa#1332) (@rytilahti)
- Add consumables module for vacuums [\python-kasa#1327](python-kasa#1327) (@rytilahti)
- Add ADC Value to PIR Enabled Switches [\python-kasa#1263](python-kasa#1263) (@ryenitcher)
- Add support for cleaning records [\python-kasa#945](python-kasa#945) (@rytilahti)
- Initial support for vacuums \(clean module\) [\python-kasa#944](python-kasa#944) (@rytilahti)
- Add support for pairing devices with hubs [\python-kasa#859](python-kasa#859) (@rytilahti)

**Fixed bugs:**

- TP-Link HS300 Wi-Fi Power-Strip - "Parent On/Off" not functioning. [\python-kasa#637](python-kasa#637)
- Convert carpet\_clean\_mode to carpet\_boost switch [\python-kasa#1486](python-kasa#1486) (@rytilahti)
- Change category for empty dustbin feature from Primary to Config [\python-kasa#1485](python-kasa#1485) (@rytilahti)
- Report 0 for instead of None for zero current and voltage [\python-kasa#1483](python-kasa#1483) (@ryenitcher)
- Disable iot camera creation until more complete [\python-kasa#1480](python-kasa#1480) (@sdb9696)
- ssltransport: use debug logger for sending requests [\python-kasa#1443](python-kasa#1443) (@rytilahti)
- Fix discover cli command with host [\python-kasa#1437](python-kasa#1437) (@sdb9696)
- Fallback to is\_low for batterysensor's battery\_low [\python-kasa#1420](python-kasa#1420) (@rytilahti)
- Fix iot strip turn on and off from parent [\python-kasa#639](python-kasa#639) (@Obbay2)

**Added support for devices:**

- Add D130\(US\) 1.0 1.1.9 fixture [\python-kasa#1476](python-kasa#1476) (@sdb9696)
- Add D100C\(US\) 1.0 1.1.3 fixture [\python-kasa#1475](python-kasa#1475) (@sdb9696)
- Add C220\(EU\) 1.0 1.2.2 camera fixture [\python-kasa#1466](python-kasa#1466) (@DawidPietrykowski)
- Add D230\(EU\) 1.20 1.1.19 fixture [\python-kasa#1448](python-kasa#1448) (@sdb9696)
- Add fixture for C720 camera [\python-kasa#1433](python-kasa#1433) (@steveredden)

**Project maintenance:**

- Update ruff to 0.9 [\python-kasa#1482](python-kasa#1482) (@sdb9696)
- Cancel in progress CI workflows after new pushes [\python-kasa#1481](python-kasa#1481) (@sdb9696)
- Update test framework to support smartcam device discovery. [\python-kasa#1477](python-kasa#1477) (@sdb9696)
- Add error code 7 for clean module [\python-kasa#1474](python-kasa#1474) (@rytilahti)
- Enable CI workflow on PRs to feat/ fix/ and janitor/ [\python-kasa#1471](python-kasa#1471) (@sdb9696)
- Add commit-hook to prettify JSON files [\python-kasa#1455](python-kasa#1455) (@rytilahti)
- Add required sphinx.configuration [\python-kasa#1446](python-kasa#1446) (@rytilahti)
- Add more redactors for smartcams [\python-kasa#1439](python-kasa#1439) (@sdb9696)
- Add KS230\(US\) 2.0 1.0.11 IOT Fixture [\python-kasa#1430](python-kasa#1430) (@ZeliardM)
- Add tests for dump\_devinfo parent/child smartcam fixture generation [\python-kasa#1428](python-kasa#1428) (@sdb9696)
- Raise errors on single smartcam child requests [\python-kasa#1427](python-kasa#1427) (@sdb9696)
rytilahti added a commit to rytilahti/python-kasa that referenced this pull request Oct 26, 2025
@rytilahti @sdb9696
Initial support for vacuums (clean module) (python-kasa#944)
019bbc3
Adds support for clean module:
- Show current vacuum state
- Start cleaning (all rooms)
- Return to dock
- Pausing & unpausing
- Controlling the fan speed

---------

Co-authored-by: Steven B <[email protected]>
rytilahti pushed a commit to rytilahti/python-kasa that referenced this pull request Oct 26, 2025
@sdb9696 @rytilahti
Prepare 0.10.0 (python-kasa#1473)
4577b2c
## [0.10.0](https://github.com/python-kasa/python-kasa/tree/0.10.0) (2025-01-26)

[Full Changelog](python-kasa/python-kasa@0.9.1...0.10.0)

**Release summary:**

This release brings support for many new devices, including completely new device types:

- Support for Tapo robot vacuums. Special thanks to @steveredden, @MAXIGAMESSUPPER, and veep60 for helping to get this implemented!
- Support for hub attached cameras and doorbells (H200)
- Improved support for hubs (including pairing & better chime controls)
- Support for many new camera and doorbell device models, including C220, C720, D100C, D130, and D230

Many thanks to testers and new contributors - @steveredden, @DawidPietrykowski, @Obbay2, @andrewome, @ryenitcher and @etmmvdp!

**Breaking changes:**

- `uses_http` is now a readonly property of device config. Consumers that relied on `uses_http` to be persisted with `DeviceConfig.to_dict()` will need to store the value separately.
- `is_color`, `is_dimmable`, `is_variable_color_temp`, `valid_temperate_range`, and `has_effects` attributes from the `Light` module are deprecated, consumers should use `has_feature("hsv")`, `has_feature("brightness")`, `has_feature("color_temp")`, `get_feature("color_temp").range`, and `Module.LightEffect in dev.modules` respectively. Calling the deprecated attributes will emit a `DeprecationWarning` and type checkers will fail them.
-  `alarm_volume` on the `smart.Alarm` module is changed from `str` to `int`

**Breaking changes:**

- Make uses\_http a readonly property of device config [\python-kasa#1449](python-kasa#1449) (@sdb9696)
- Allow passing alarm parameter overrides [\python-kasa#1340](python-kasa#1340) (@rytilahti)
- Deprecate legacy light module is\_capability checks [\python-kasa#1297](python-kasa#1297) (@sdb9696)

**Implemented enhancements:**

- Expose more battery sensors for D230 [\python-kasa#1451](python-kasa#1451)
- dumping HTTP POST Body for Tapo Vacuum \(RV30 Plus\) [\python-kasa#937](python-kasa#937)
- Add common alarm interface [\python-kasa#1479](python-kasa#1479) (@sdb9696)
- Add common childsetup interface [\python-kasa#1470](python-kasa#1470) (@sdb9696)
- Add childsetup module to smartcam hubs [\python-kasa#1469](python-kasa#1469) (@sdb9696)
- Add smartcam pet detection toggle module [\python-kasa#1465](python-kasa#1465) (@DawidPietrykowski)
- Only log one warning per unknown clean error code and status [\python-kasa#1462](python-kasa#1462) (@rytilahti)
- Add childlock module for vacuums [\python-kasa#1461](python-kasa#1461) (@rytilahti)
- Add ultra mode \(fanspeed = 5\) for vacuums [\python-kasa#1459](python-kasa#1459) (@rytilahti)
- Add setting to change carpet clean mode [\python-kasa#1458](python-kasa#1458) (@rytilahti)
- Add setting to change clean count [\python-kasa#1457](python-kasa#1457) (@rytilahti)
- Add mop module [\python-kasa#1456](python-kasa#1456) (@rytilahti)
- Enable dynamic hub child creation and deletion on update [\python-kasa#1454](python-kasa#1454) (@sdb9696)
- Expose current cleaning information [\python-kasa#1453](python-kasa#1453) (@rytilahti)
- Add battery module to smartcam devices [\python-kasa#1452](python-kasa#1452) (@sdb9696)
- Allow update of camera modules after setting values [\python-kasa#1450](python-kasa#1450) (@sdb9696)
- Update hub children on first update and delay subsequent updates [\python-kasa#1438](python-kasa#1438) (@sdb9696)
- Add support for doorbells and chimes [\python-kasa#1435](python-kasa#1435) (@steveredden)
- Implement vacuum dustbin module \(dust\_bucket\) [\python-kasa#1423](python-kasa#1423) (@rytilahti)
- Allow https for klaptransport [\python-kasa#1415](python-kasa#1415) (@rytilahti)
- Add smartcam child device support for smartcam hubs [\python-kasa#1413](python-kasa#1413) (@sdb9696)
- Add powerprotection module [\python-kasa#1337](python-kasa#1337) (@rytilahti)
- Add vacuum speaker controls [\python-kasa#1332](python-kasa#1332) (@rytilahti)
- Add consumables module for vacuums [\python-kasa#1327](python-kasa#1327) (@rytilahti)
- Add ADC Value to PIR Enabled Switches [\python-kasa#1263](python-kasa#1263) (@ryenitcher)
- Add support for cleaning records [\python-kasa#945](python-kasa#945) (@rytilahti)
- Initial support for vacuums \(clean module\) [\python-kasa#944](python-kasa#944) (@rytilahti)
- Add support for pairing devices with hubs [\python-kasa#859](python-kasa#859) (@rytilahti)

**Fixed bugs:**

- TP-Link HS300 Wi-Fi Power-Strip - "Parent On/Off" not functioning. [\python-kasa#637](python-kasa#637)
- Convert carpet\_clean\_mode to carpet\_boost switch [\python-kasa#1486](python-kasa#1486) (@rytilahti)
- Change category for empty dustbin feature from Primary to Config [\python-kasa#1485](python-kasa#1485) (@rytilahti)
- Report 0 for instead of None for zero current and voltage [\python-kasa#1483](python-kasa#1483) (@ryenitcher)
- Disable iot camera creation until more complete [\python-kasa#1480](python-kasa#1480) (@sdb9696)
- ssltransport: use debug logger for sending requests [\python-kasa#1443](python-kasa#1443) (@rytilahti)
- Fix discover cli command with host [\python-kasa#1437](python-kasa#1437) (@sdb9696)
- Fallback to is\_low for batterysensor's battery\_low [\python-kasa#1420](python-kasa#1420) (@rytilahti)
- Fix iot strip turn on and off from parent [\python-kasa#639](python-kasa#639) (@Obbay2)

**Added support for devices:**

- Add D130\(US\) 1.0 1.1.9 fixture [\python-kasa#1476](python-kasa#1476) (@sdb9696)
- Add D100C\(US\) 1.0 1.1.3 fixture [\python-kasa#1475](python-kasa#1475) (@sdb9696)
- Add C220\(EU\) 1.0 1.2.2 camera fixture [\python-kasa#1466](python-kasa#1466) (@DawidPietrykowski)
- Add D230\(EU\) 1.20 1.1.19 fixture [\python-kasa#1448](python-kasa#1448) (@sdb9696)
- Add fixture for C720 camera [\python-kasa#1433](python-kasa#1433) (@steveredden)

**Project maintenance:**

- Update ruff to 0.9 [\python-kasa#1482](python-kasa#1482) (@sdb9696)
- Cancel in progress CI workflows after new pushes [\python-kasa#1481](python-kasa#1481) (@sdb9696)
- Update test framework to support smartcam device discovery. [\python-kasa#1477](python-kasa#1477) (@sdb9696)
- Add error code 7 for clean module [\python-kasa#1474](python-kasa#1474) (@rytilahti)
- Enable CI workflow on PRs to feat/ fix/ and janitor/ [\python-kasa#1471](python-kasa#1471) (@sdb9696)
- Add commit-hook to prettify JSON files [\python-kasa#1455](python-kasa#1455) (@rytilahti)
- Add required sphinx.configuration [\python-kasa#1446](python-kasa#1446) (@rytilahti)
- Add more redactors for smartcams [\python-kasa#1439](python-kasa#1439) (@sdb9696)
- Add KS230\(US\) 2.0 1.0.11 IOT Fixture [\python-kasa#1430](python-kasa#1430) (@ZeliardM)
- Add tests for dump\_devinfo parent/child smartcam fixture generation [\python-kasa#1428](python-kasa#1428) (@sdb9696)
- Raise errors on single smartcam child requests [\python-kasa#1427](python-kasa#1427) (@sdb9696)
rytilahti added a commit to rytilahti/python-kasa that referenced this pull request Nov 10, 2025
@rytilahti @sdb9696
Initial support for vacuums (clean module) (python-kasa#944)
fe1e6a1
Adds support for clean module:
- Show current vacuum state
- Start cleaning (all rooms)
- Return to dock
- Pausing & unpausing
- Controlling the fan speed

---------

Co-authored-by: Steven B <[email protected]>
rytilahti pushed a commit to rytilahti/python-kasa that referenced this pull request Nov 10, 2025
@sdb9696 @rytilahti
Prepare 0.10.0 (python-kasa#1473)
2382821
## [0.10.0](https://github.com/python-kasa/python-kasa/tree/0.10.0) (2025-01-26)

[Full Changelog](python-kasa/python-kasa@0.9.1...0.10.0)

**Release summary:**

This release brings support for many new devices, including completely new device types:

- Support for Tapo robot vacuums. Special thanks to @steveredden, @MAXIGAMESSUPPER, and veep60 for helping to get this implemented!
- Support for hub attached cameras and doorbells (H200)
- Improved support for hubs (including pairing & better chime controls)
- Support for many new camera and doorbell device models, including C220, C720, D100C, D130, and D230

Many thanks to testers and new contributors - @steveredden, @DawidPietrykowski, @Obbay2, @andrewome, @ryenitcher and @etmmvdp!

**Breaking changes:**

- `uses_http` is now a readonly property of device config. Consumers that relied on `uses_http` to be persisted with `DeviceConfig.to_dict()` will need to store the value separately.
- `is_color`, `is_dimmable`, `is_variable_color_temp`, `valid_temperate_range`, and `has_effects` attributes from the `Light` module are deprecated, consumers should use `has_feature("hsv")`, `has_feature("brightness")`, `has_feature("color_temp")`, `get_feature("color_temp").range`, and `Module.LightEffect in dev.modules` respectively. Calling the deprecated attributes will emit a `DeprecationWarning` and type checkers will fail them.
-  `alarm_volume` on the `smart.Alarm` module is changed from `str` to `int`

**Breaking changes:**

- Make uses\_http a readonly property of device config [\python-kasa#1449](python-kasa#1449) (@sdb9696)
- Allow passing alarm parameter overrides [\python-kasa#1340](python-kasa#1340) (@rytilahti)
- Deprecate legacy light module is\_capability checks [\python-kasa#1297](python-kasa#1297) (@sdb9696)

**Implemented enhancements:**

- Expose more battery sensors for D230 [\python-kasa#1451](python-kasa#1451)
- dumping HTTP POST Body for Tapo Vacuum \(RV30 Plus\) [\python-kasa#937](python-kasa#937)
- Add common alarm interface [\python-kasa#1479](python-kasa#1479) (@sdb9696)
- Add common childsetup interface [\python-kasa#1470](python-kasa#1470) (@sdb9696)
- Add childsetup module to smartcam hubs [\python-kasa#1469](python-kasa#1469) (@sdb9696)
- Add smartcam pet detection toggle module [\python-kasa#1465](python-kasa#1465) (@DawidPietrykowski)
- Only log one warning per unknown clean error code and status [\python-kasa#1462](python-kasa#1462) (@rytilahti)
- Add childlock module for vacuums [\python-kasa#1461](python-kasa#1461) (@rytilahti)
- Add ultra mode \(fanspeed = 5\) for vacuums [\python-kasa#1459](python-kasa#1459) (@rytilahti)
- Add setting to change carpet clean mode [\python-kasa#1458](python-kasa#1458) (@rytilahti)
- Add setting to change clean count [\python-kasa#1457](python-kasa#1457) (@rytilahti)
- Add mop module [\python-kasa#1456](python-kasa#1456) (@rytilahti)
- Enable dynamic hub child creation and deletion on update [\python-kasa#1454](python-kasa#1454) (@sdb9696)
- Expose current cleaning information [\python-kasa#1453](python-kasa#1453) (@rytilahti)
- Add battery module to smartcam devices [\python-kasa#1452](python-kasa#1452) (@sdb9696)
- Allow update of camera modules after setting values [\python-kasa#1450](python-kasa#1450) (@sdb9696)
- Update hub children on first update and delay subsequent updates [\python-kasa#1438](python-kasa#1438) (@sdb9696)
- Add support for doorbells and chimes [\python-kasa#1435](python-kasa#1435) (@steveredden)
- Implement vacuum dustbin module \(dust\_bucket\) [\python-kasa#1423](python-kasa#1423) (@rytilahti)
- Allow https for klaptransport [\python-kasa#1415](python-kasa#1415) (@rytilahti)
- Add smartcam child device support for smartcam hubs [\python-kasa#1413](python-kasa#1413) (@sdb9696)
- Add powerprotection module [\python-kasa#1337](python-kasa#1337) (@rytilahti)
- Add vacuum speaker controls [\python-kasa#1332](python-kasa#1332) (@rytilahti)
- Add consumables module for vacuums [\python-kasa#1327](python-kasa#1327) (@rytilahti)
- Add ADC Value to PIR Enabled Switches [\python-kasa#1263](python-kasa#1263) (@ryenitcher)
- Add support for cleaning records [\python-kasa#945](python-kasa#945) (@rytilahti)
- Initial support for vacuums \(clean module\) [\python-kasa#944](python-kasa#944) (@rytilahti)
- Add support for pairing devices with hubs [\python-kasa#859](python-kasa#859) (@rytilahti)

**Fixed bugs:**

- TP-Link HS300 Wi-Fi Power-Strip - "Parent On/Off" not functioning. [\python-kasa#637](python-kasa#637)
- Convert carpet\_clean\_mode to carpet\_boost switch [\python-kasa#1486](python-kasa#1486) (@rytilahti)
- Change category for empty dustbin feature from Primary to Config [\python-kasa#1485](python-kasa#1485) (@rytilahti)
- Report 0 for instead of None for zero current and voltage [\python-kasa#1483](python-kasa#1483) (@ryenitcher)
- Disable iot camera creation until more complete [\python-kasa#1480](python-kasa#1480) (@sdb9696)
- ssltransport: use debug logger for sending requests [\python-kasa#1443](python-kasa#1443) (@rytilahti)
- Fix discover cli command with host [\python-kasa#1437](python-kasa#1437) (@sdb9696)
- Fallback to is\_low for batterysensor's battery\_low [\python-kasa#1420](python-kasa#1420) (@rytilahti)
- Fix iot strip turn on and off from parent [\python-kasa#639](python-kasa#639) (@Obbay2)

**Added support for devices:**

- Add D130\(US\) 1.0 1.1.9 fixture [\python-kasa#1476](python-kasa#1476) (@sdb9696)
- Add D100C\(US\) 1.0 1.1.3 fixture [\python-kasa#1475](python-kasa#1475) (@sdb9696)
- Add C220\(EU\) 1.0 1.2.2 camera fixture [\python-kasa#1466](python-kasa#1466) (@DawidPietrykowski)
- Add D230\(EU\) 1.20 1.1.19 fixture [\python-kasa#1448](python-kasa#1448) (@sdb9696)
- Add fixture for C720 camera [\python-kasa#1433](python-kasa#1433) (@steveredden)

**Project maintenance:**

- Update ruff to 0.9 [\python-kasa#1482](python-kasa#1482) (@sdb9696)
- Cancel in progress CI workflows after new pushes [\python-kasa#1481](python-kasa#1481) (@sdb9696)
- Update test framework to support smartcam device discovery. [\python-kasa#1477](python-kasa#1477) (@sdb9696)
- Add error code 7 for clean module [\python-kasa#1474](python-kasa#1474) (@rytilahti)
- Enable CI workflow on PRs to feat/ fix/ and janitor/ [\python-kasa#1471](python-kasa#1471) (@sdb9696)
- Add commit-hook to prettify JSON files [\python-kasa#1455](python-kasa#1455) (@rytilahti)
- Add required sphinx.configuration [\python-kasa#1446](python-kasa#1446) (@rytilahti)
- Add more redactors for smartcams [\python-kasa#1439](python-kasa#1439) (@sdb9696)
- Add KS230\(US\) 2.0 1.0.11 IOT Fixture [\python-kasa#1430](python-kasa#1430) (@ZeliardM)
- Add tests for dump\_devinfo parent/child smartcam fixture generation [\python-kasa#1428](python-kasa#1428) (@sdb9696)
- Raise errors on single smartcam child requests [\python-kasa#1427](python-kasa#1427) (@sdb9696)
rytilahti added a commit to rytilahti/python-kasa that referenced this pull request Jul 5, 2026
@rytilahti @sdb9696
Initial support for vacuums (clean module) (python-kasa#944)
34aab54
Adds support for clean module:
- Show current vacuum state
- Start cleaning (all rooms)
- Return to dock
- Pausing & unpausing
- Controlling the fan speed

---------

Co-authored-by: Steven B <[email protected]>
rytilahti pushed a commit to rytilahti/python-kasa that referenced this pull request Jul 5, 2026
@sdb9696 @rytilahti
Prepare 0.10.0 (python-kasa#1473)
309dc46
## [0.10.0](https://github.com/python-kasa/python-kasa/tree/0.10.0) (2025-01-26)

[Full Changelog](python-kasa/python-kasa@0.9.1...0.10.0)

**Release summary:**

This release brings support for many new devices, including completely new device types:

- Support for Tapo robot vacuums. Special thanks to @steveredden, @MAXIGAMESSUPPER, and veep60 for helping to get this implemented!
- Support for hub attached cameras and doorbells (H200)
- Improved support for hubs (including pairing & better chime controls)
- Support for many new camera and doorbell device models, including C220, C720, D100C, D130, and D230

Many thanks to testers and new contributors - @steveredden, @DawidPietrykowski, @Obbay2, @andrewome, @ryenitcher and @etmmvdp!

**Breaking changes:**

- `uses_http` is now a readonly property of device config. Consumers that relied on `uses_http` to be persisted with `DeviceConfig.to_dict()` will need to store the value separately.
- `is_color`, `is_dimmable`, `is_variable_color_temp`, `valid_temperate_range`, and `has_effects` attributes from the `Light` module are deprecated, consumers should use `has_feature("hsv")`, `has_feature("brightness")`, `has_feature("color_temp")`, `get_feature("color_temp").range`, and `Module.LightEffect in dev.modules` respectively. Calling the deprecated attributes will emit a `DeprecationWarning` and type checkers will fail them.
-  `alarm_volume` on the `smart.Alarm` module is changed from `str` to `int`

**Breaking changes:**

- Make uses\_http a readonly property of device config [\python-kasa#1449](python-kasa#1449) (@sdb9696)
- Allow passing alarm parameter overrides [\python-kasa#1340](python-kasa#1340) (@rytilahti)
- Deprecate legacy light module is\_capability checks [\python-kasa#1297](python-kasa#1297) (@sdb9696)

**Implemented enhancements:**

- Expose more battery sensors for D230 [\python-kasa#1451](python-kasa#1451)
- dumping HTTP POST Body for Tapo Vacuum \(RV30 Plus\) [\python-kasa#937](python-kasa#937)
- Add common alarm interface [\python-kasa#1479](python-kasa#1479) (@sdb9696)
- Add common childsetup interface [\python-kasa#1470](python-kasa#1470) (@sdb9696)
- Add childsetup module to smartcam hubs [\python-kasa#1469](python-kasa#1469) (@sdb9696)
- Add smartcam pet detection toggle module [\python-kasa#1465](python-kasa#1465) (@DawidPietrykowski)
- Only log one warning per unknown clean error code and status [\python-kasa#1462](python-kasa#1462) (@rytilahti)
- Add childlock module for vacuums [\python-kasa#1461](python-kasa#1461) (@rytilahti)
- Add ultra mode \(fanspeed = 5\) for vacuums [\python-kasa#1459](python-kasa#1459) (@rytilahti)
- Add setting to change carpet clean mode [\python-kasa#1458](python-kasa#1458) (@rytilahti)
- Add setting to change clean count [\python-kasa#1457](python-kasa#1457) (@rytilahti)
- Add mop module [\python-kasa#1456](python-kasa#1456) (@rytilahti)
- Enable dynamic hub child creation and deletion on update [\python-kasa#1454](python-kasa#1454) (@sdb9696)
- Expose current cleaning information [\python-kasa#1453](python-kasa#1453) (@rytilahti)
- Add battery module to smartcam devices [\python-kasa#1452](python-kasa#1452) (@sdb9696)
- Allow update of camera modules after setting values [\python-kasa#1450](python-kasa#1450) (@sdb9696)
- Update hub children on first update and delay subsequent updates [\python-kasa#1438](python-kasa#1438) (@sdb9696)
- Add support for doorbells and chimes [\python-kasa#1435](python-kasa#1435) (@steveredden)
- Implement vacuum dustbin module \(dust\_bucket\) [\python-kasa#1423](python-kasa#1423) (@rytilahti)
- Allow https for klaptransport [\python-kasa#1415](python-kasa#1415) (@rytilahti)
- Add smartcam child device support for smartcam hubs [\python-kasa#1413](python-kasa#1413) (@sdb9696)
- Add powerprotection module [\python-kasa#1337](python-kasa#1337) (@rytilahti)
- Add vacuum speaker controls [\python-kasa#1332](python-kasa#1332) (@rytilahti)
- Add consumables module for vacuums [\python-kasa#1327](python-kasa#1327) (@rytilahti)
- Add ADC Value to PIR Enabled Switches [\python-kasa#1263](python-kasa#1263) (@ryenitcher)
- Add support for cleaning records [\python-kasa#945](python-kasa#945) (@rytilahti)
- Initial support for vacuums \(clean module\) [\python-kasa#944](python-kasa#944) (@rytilahti)
- Add support for pairing devices with hubs [\python-kasa#859](python-kasa#859) (@rytilahti)

**Fixed bugs:**

- TP-Link HS300 Wi-Fi Power-Strip - "Parent On/Off" not functioning. [\python-kasa#637](python-kasa#637)
- Convert carpet\_clean\_mode to carpet\_boost switch [\python-kasa#1486](python-kasa#1486) (@rytilahti)
- Change category for empty dustbin feature from Primary to Config [\python-kasa#1485](python-kasa#1485) (@rytilahti)
- Report 0 for instead of None for zero current and voltage [\python-kasa#1483](python-kasa#1483) (@ryenitcher)
- Disable iot camera creation until more complete [\python-kasa#1480](python-kasa#1480) (@sdb9696)
- ssltransport: use debug logger for sending requests [\python-kasa#1443](python-kasa#1443) (@rytilahti)
- Fix discover cli command with host [\python-kasa#1437](python-kasa#1437) (@sdb9696)
- Fallback to is\_low for batterysensor's battery\_low [\python-kasa#1420](python-kasa#1420) (@rytilahti)
- Fix iot strip turn on and off from parent [\python-kasa#639](python-kasa#639) (@Obbay2)

**Added support for devices:**

- Add D130\(US\) 1.0 1.1.9 fixture [\python-kasa#1476](python-kasa#1476) (@sdb9696)
- Add D100C\(US\) 1.0 1.1.3 fixture [\python-kasa#1475](python-kasa#1475) (@sdb9696)
- Add C220\(EU\) 1.0 1.2.2 camera fixture [\python-kasa#1466](python-kasa#1466) (@DawidPietrykowski)
- Add D230\(EU\) 1.20 1.1.19 fixture [\python-kasa#1448](python-kasa#1448) (@sdb9696)
- Add fixture for C720 camera [\python-kasa#1433](python-kasa#1433) (@steveredden)

**Project maintenance:**

- Update ruff to 0.9 [\python-kasa#1482](python-kasa#1482) (@sdb9696)
- Cancel in progress CI workflows after new pushes [\python-kasa#1481](python-kasa#1481) (@sdb9696)
- Update test framework to support smartcam device discovery. [\python-kasa#1477](python-kasa#1477) (@sdb9696)
- Add error code 7 for clean module [\python-kasa#1474](python-kasa#1474) (@rytilahti)
- Enable CI workflow on PRs to feat/ fix/ and janitor/ [\python-kasa#1471](python-kasa#1471) (@sdb9696)
- Add commit-hook to prettify JSON files [\python-kasa#1455](python-kasa#1455) (@rytilahti)
- Add required sphinx.configuration [\python-kasa#1446](python-kasa#1446) (@rytilahti)
- Add more redactors for smartcams [\python-kasa#1439](python-kasa#1439) (@sdb9696)
- Add KS230\(US\) 2.0 1.0.11 IOT Fixture [\python-kasa#1430](python-kasa#1430) (@ZeliardM)
- Add tests for dump\_devinfo parent/child smartcam fixture generation [\python-kasa#1428](python-kasa#1428) (@sdb9696)
- Raise errors on single smartcam child requests [\python-kasa#1427](python-kasa#1427) (@sdb9696)
pillarsdotnet pushed a commit to pillarsdotnet/python-kasa that referenced this pull request Oct 22, 2026
@rytilahti @sdb9696
Initial support for vacuums (clean module) (python-kasa#944)
cdd4882
Adds support for clean module:
- Show current vacuum state
- Start cleaning (all rooms)
- Return to dock
- Pausing & unpausing
- Controlling the fan speed

---------

Co-authored-by: Steven B <[email protected]>
pillarsdotnet pushed a commit to pillarsdotnet/python-kasa that referenced this pull request Oct 22, 2026
@sdb9696
Prepare 0.10.0 (python-kasa#1473)
e37cf64
## [0.10.0](https://github.com/python-kasa/python-kasa/tree/0.10.0) (2025-01-26)

[Full Changelog](python-kasa/python-kasa@0.9.1...0.10.0)

**Release summary:**

This release brings support for many new devices, including completely new device types:

- Support for Tapo robot vacuums. Special thanks to @steveredden, @MAXIGAMESSUPPER, and veep60 for helping to get this implemented!
- Support for hub attached cameras and doorbells (H200)
- Improved support for hubs (including pairing & better chime controls)
- Support for many new camera and doorbell device models, including C220, C720, D100C, D130, and D230

Many thanks to testers and new contributors - @steveredden, @DawidPietrykowski, @Obbay2, @andrewome, @ryenitcher and @etmmvdp!

**Breaking changes:**

- `uses_http` is now a readonly property of device config. Consumers that relied on `uses_http` to be persisted with `DeviceConfig.to_dict()` will need to store the value separately.
- `is_color`, `is_dimmable`, `is_variable_color_temp`, `valid_temperate_range`, and `has_effects` attributes from the `Light` module are deprecated, consumers should use `has_feature("hsv")`, `has_feature("brightness")`, `has_feature("color_temp")`, `get_feature("color_temp").range`, and `Module.LightEffect in dev.modules` respectively. Calling the deprecated attributes will emit a `DeprecationWarning` and type checkers will fail them.
-  `alarm_volume` on the `smart.Alarm` module is changed from `str` to `int`

**Breaking changes:**

- Make uses\_http a readonly property of device config [\python-kasa#1449](python-kasa#1449) (@sdb9696)
- Allow passing alarm parameter overrides [\python-kasa#1340](python-kasa#1340) (@rytilahti)
- Deprecate legacy light module is\_capability checks [\python-kasa#1297](python-kasa#1297) (@sdb9696)

**Implemented enhancements:**

- Expose more battery sensors for D230 [\python-kasa#1451](python-kasa#1451)
- dumping HTTP POST Body for Tapo Vacuum \(RV30 Plus\) [\python-kasa#937](python-kasa#937)
- Add common alarm interface [\python-kasa#1479](python-kasa#1479) (@sdb9696)
- Add common childsetup interface [\python-kasa#1470](python-kasa#1470) (@sdb9696)
- Add childsetup module to smartcam hubs [\python-kasa#1469](python-kasa#1469) (@sdb9696)
- Add smartcam pet detection toggle module [\python-kasa#1465](python-kasa#1465) (@DawidPietrykowski)
- Only log one warning per unknown clean error code and status [\python-kasa#1462](python-kasa#1462) (@rytilahti)
- Add childlock module for vacuums [\python-kasa#1461](python-kasa#1461) (@rytilahti)
- Add ultra mode \(fanspeed = 5\) for vacuums [\python-kasa#1459](python-kasa#1459) (@rytilahti)
- Add setting to change carpet clean mode [\python-kasa#1458](python-kasa#1458) (@rytilahti)
- Add setting to change clean count [\python-kasa#1457](python-kasa#1457) (@rytilahti)
- Add mop module [\python-kasa#1456](python-kasa#1456) (@rytilahti)
- Enable dynamic hub child creation and deletion on update [\python-kasa#1454](python-kasa#1454) (@sdb9696)
- Expose current cleaning information [\python-kasa#1453](python-kasa#1453) (@rytilahti)
- Add battery module to smartcam devices [\python-kasa#1452](python-kasa#1452) (@sdb9696)
- Allow update of camera modules after setting values [\python-kasa#1450](python-kasa#1450) (@sdb9696)
- Update hub children on first update and delay subsequent updates [\python-kasa#1438](python-kasa#1438) (@sdb9696)
- Add support for doorbells and chimes [\python-kasa#1435](python-kasa#1435) (@steveredden)
- Implement vacuum dustbin module \(dust\_bucket\) [\python-kasa#1423](python-kasa#1423) (@rytilahti)
- Allow https for klaptransport [\python-kasa#1415](python-kasa#1415) (@rytilahti)
- Add smartcam child device support for smartcam hubs [\python-kasa#1413](python-kasa#1413) (@sdb9696)
- Add powerprotection module [\python-kasa#1337](python-kasa#1337) (@rytilahti)
- Add vacuum speaker controls [\python-kasa#1332](python-kasa#1332) (@rytilahti)
- Add consumables module for vacuums [\python-kasa#1327](python-kasa#1327) (@rytilahti)
- Add ADC Value to PIR Enabled Switches [\python-kasa#1263](python-kasa#1263) (@ryenitcher)
- Add support for cleaning records [\python-kasa#945](python-kasa#945) (@rytilahti)
- Initial support for vacuums \(clean module\) [\python-kasa#944](python-kasa#944) (@rytilahti)
- Add support for pairing devices with hubs [\python-kasa#859](python-kasa#859) (@rytilahti)

**Fixed bugs:**

- TP-Link HS300 Wi-Fi Power-Strip - "Parent On/Off" not functioning. [\python-kasa#637](python-kasa#637)
- Convert carpet\_clean\_mode to carpet\_boost switch [\python-kasa#1486](python-kasa#1486) (@rytilahti)
- Change category for empty dustbin feature from Primary to Config [\python-kasa#1485](python-kasa#1485) (@rytilahti)
- Report 0 for instead of None for zero current and voltage [\python-kasa#1483](python-kasa#1483) (@ryenitcher)
- Disable iot camera creation until more complete [\python-kasa#1480](python-kasa#1480) (@sdb9696)
- ssltransport: use debug logger for sending requests [\python-kasa#1443](python-kasa#1443) (@rytilahti)
- Fix discover cli command with host [\python-kasa#1437](python-kasa#1437) (@sdb9696)
- Fallback to is\_low for batterysensor's battery\_low [\python-kasa#1420](python-kasa#1420) (@rytilahti)
- Fix iot strip turn on and off from parent [\python-kasa#639](python-kasa#639) (@Obbay2)

**Added support for devices:**

- Add D130\(US\) 1.0 1.1.9 fixture [\python-kasa#1476](python-kasa#1476) (@sdb9696)
- Add D100C\(US\) 1.0 1.1.3 fixture [\python-kasa#1475](python-kasa#1475) (@sdb9696)
- Add C220\(EU\) 1.0 1.2.2 camera fixture [\python-kasa#1466](python-kasa#1466) (@DawidPietrykowski)
- Add D230\(EU\) 1.20 1.1.19 fixture [\python-kasa#1448](python-kasa#1448) (@sdb9696)
- Add fixture for C720 camera [\python-kasa#1433](python-kasa#1433) (@steveredden)

**Project maintenance:**

- Update ruff to 0.9 [\python-kasa#1482](python-kasa#1482) (@sdb9696)
- Cancel in progress CI workflows after new pushes [\python-kasa#1481](python-kasa#1481) (@sdb9696)
- Update test framework to support smartcam device discovery. [\python-kasa#1477](python-kasa#1477) (@sdb9696)
- Add error code 7 for clean module [\python-kasa#1474](python-kasa#1474) (@rytilahti)
- Enable CI workflow on PRs to feat/ fix/ and janitor/ [\python-kasa#1471](python-kasa#1471) (@sdb9696)
- Add commit-hook to prettify JSON files [\python-kasa#1455](python-kasa#1455) (@rytilahti)
- Add required sphinx.configuration [\python-kasa#1446](python-kasa#1446) (@rytilahti)
- Add more redactors for smartcams [\python-kasa#1439](python-kasa#1439) (@sdb9696)
- Add KS230\(US\) 2.0 1.0.11 IOT Fixture [\python-kasa#1430](python-kasa#1430) (@ZeliardM)
- Add tests for dump\_devinfo parent/child smartcam fixture generation [\python-kasa#1428](python-kasa#1428) (@sdb9696)
- Raise errors on single smartcam child requests [\python-kasa#1427](python-kasa#1427) (@sdb9696)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Reviewers

@sdb9696 sdb9696 sdb9696 approved these changes

Uh oh!

There was an error while loading. Please reload this page.

Assignees

No one assigned

Labels

enhancement New feature or request no-stale

Projects

None yet

Milestone

No milestone

Development

Successfully merging this pull request may close these issues.

dumping HTTP POST Body for Tapo Vacuum (RV30 Plus)

Uh oh!

There was an error while loading. Please reload this page.

6 participants

@rytilahti @devinsmith911 @vincep5 @KwFung7 @IzSmithh @sdb9696
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.
You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.