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 — Pass raw components to SmartChildDevice init by sdb9696 · Pull Request #1363 · python-kasa/python-kasa

Conversation

@sdb9696

@sdb9696 sdb9696 commented Dec 11, 2024

Copy link
Copy Markdown
Contributor

Cleans up and consolidates up the processing of raw component query responses.

Will simplify the code paths for creating smartcam child devices when supported.

Also addresses the question raised in the PR for consistent use of DeviceInfo

Sorry, something went wrong.

Uh oh!

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

All reactions
@sdb9696
Pass raw components to SmartChildDevice init
25e6adb
@codecov

codecov Bot commented Dec 11, 2024 •
edited
Loading

Uh oh!

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

Copy link
Copy Markdown

Codecov Report

All modified and coverable lines are covered by tests ✅

Project coverage is 92.18%. Comparing base (032cd5d) to head (36661d1).
Report is 116 commits behind head on master.

Additional details and impacted files
@@           Coverage Diff           @@
##           master    #1363   +/-   ##
=======================================
  Coverage   92.17%   92.18%           
=======================================
  Files         123      123           
  Lines        7913     7923   +10     
  Branches      812      812           
=======================================
+ Hits         7294     7304   +10     
  Misses        454      454           
  Partials      165      165           

☔ 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 commented Dec 11, 2024
View reviewed changes
Comment thread kasa/smartcam/smartcamdevice.py
Comment on lines -115 to -121
if (component_list := child.get("component_list"))
# Child camera devices will have a different component schema so only
# extract smart values.
and (first_comp := next(iter(component_list), None))
and isinstance(first_comp, dict)
and "id" in first_comp
and "ver_code" in first_comp

@sdb9696 sdb9696 Dec 11, 2024

Copy link
Copy Markdown
Contributor Author

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.

This complicated check can be dropped as the component parsing is now done in the appropriate child device class.

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
@sdb9696
Fix missing use of type alias
36661d1
rytilahti
rytilahti approved these changes Dec 11, 2024
View reviewed changes
@sdb9696 sdb9696 added the maintenance Project improvements and maintenance label Dec 11, 2024
@sdb9696
sdb9696 merged commit f8a46f7 into master Dec 11, 2024
@sdb9696
sdb9696 deleted the janitor/child_comp_raw branch December 11, 2024 14:38
@sdb9696 sdb9696 mentioned this pull request Dec 11, 2024
Use DeviceInfo consistently across devices #1338
Merged
@sdb9696 sdb9696 mentioned this pull request Dec 21, 2024
Prepare 0.9.0 #1401
Merged
sdb9696 added a commit that referenced this pull request Dec 21, 2024
@sdb9696
Prepare 0.9.0 (#1401)
63f4f82
## [0.9.0](https://github.com/python-kasa/python-kasa/tree/0.9.0) (2024-12-21)

[Full Changelog](0.8.1...0.9.0)

**Release highlights:**

- Improvements to Tapo camera support:
  - C100, C225, C325WB, C520WS and TC70 now supported.
  - Support for motion, person, tamper, and baby cry detection.
- Initial support for Tapo robovacs.
- API extended with `FeatureAttributes` for consumers to test for [supported features](https://python-kasa.readthedocs.io/en/stable/topics.html#modules-and-features).
- Experimental support for Kasa cameras[^1]

[^1]: Currently limited to devices not yet provisioned via the Tapo app - Many thanks to @Puxtril!

**Breaking changes:**

- Use DeviceInfo consistently across devices [\#1338](#1338) (@sdb9696)

**Implemented enhancements:**

- Add rssi and signal\_level to smartcam [\#1392](#1392) (@sdb9696)
- Add smartcam detection modules [\#1389](#1389) (@sdb9696)
- Add bare-bones matter modules to smart and smartcam devices [\#1371](#1371) (@sdb9696)
- Add bare bones homekit modules smart and smartcam devices [\#1370](#1370) (@sdb9696)
- Return raw discovery result in cli discover raw [\#1342](#1342) (@sdb9696)
- cli: print model, https, and lv for discover list [\#1339](#1339) (@rytilahti)
- Improve overheat reporting [\#1335](#1335) (@rytilahti)
- Provide alternative camera urls [\#1316](#1316) (@sdb9696)
- Add LinkieTransportV2 and basic IOT.IPCAMERA support [\#1270](#1270) (@Puxtril)
- Add ssltransport for robovacs [\#943](#943) (@rytilahti)

**Fixed bugs:**

- Tapo H200 Hub does not work with python-kasa [\#1149](#1149)
- Treat smartcam 500 errors after handshake as retryable [\#1395](#1395) (@sdb9696)
- Fix lens mask required component and state [\#1386](#1386) (@sdb9696)
- Add LensMask module to smartcam [\#1385](#1385) (@sdb9696)
- Do not error when accessing smart device\_type before update [\#1319](#1319) (@sdb9696)
- Fallback to other module data on get\_energy\_usage errors [\#1245](#1245) (@rytilahti)

**Added support for devices:**

- Add P210M\(US\) 1.0 1.0.3 fixture [\#1399](#1399) (@sdb9696)
- Add C225\(US\) 2.0 1.0.11 fixture [\#1398](#1398) (@sdb9696)
- Add P306\(US\) 1.0 1.1.2 fixture [\#1396](#1396) (@nakanaela)
- Add TC70 3.0 1.3.11 fixture [\#1390](#1390) (@sdb9696)
- Add C325WB\(EU\) 1.0 1.1.17 Fixture [\#1379](#1379) (@sdb9696)
- Add C100 4.0 1.3.14 Fixture [\#1378](#1378) (@sdb9696)
- Add KS200 \(US\) IOT Fixture and P115 \(US\) Smart Fixture [\#1355](#1355) (@ZeliardM)
- Add C520WS camera fixture [\#1352](#1352) (@Happy-Cadaver)

**Documentation updates:**

- Update docs for Tapo Lab Third-Party compatibility [\#1380](#1380) (@sdb9696)
- Add homebridge-kasa-python link to README [\#1367](#1367) (@rytilahti)
- Update docs for new FeatureAttribute behaviour [\#1365](#1365) (@sdb9696)
- Add link to related homeassistant-tapo-control [\#1333](#1333) (@rytilahti)

**Project maintenance:**

- Add P135 1.0 1.2.0 fixture [\#1397](#1397) (@sdb9696)
- Handle smartcam device blocked response [\#1393](#1393) (@sdb9696)
- Handle KeyboardInterrupts in the cli better [\#1391](#1391) (@sdb9696)
- Update C520WS fixture with new methods [\#1384](#1384) (@sdb9696)
- Miscellaneous minor fixes to dump\_devinfo [\#1382](#1382) (@sdb9696)
- Add timeout parameter to dump\_devinfo [\#1381](#1381) (@sdb9696)
- Simplify get\_protocol to prevent clashes with smartcam and robovac [\#1377](#1377) (@sdb9696)
- Add smartcam modules to package inits [\#1376](#1376) (@sdb9696)
- Enable saving of fixture files without git clone [\#1375](#1375) (@sdb9696)
- Force single for some smartcam requests [\#1374](#1374) (@sdb9696)
- Add new methods to dump\_devinfo [\#1373](#1373) (@sdb9696)
- Update cli, light modules, and docs to use FeatureAttributes [\#1364](#1364) (@sdb9696)
- Pass raw components to SmartChildDevice init [\#1363](#1363) (@sdb9696)
- Fix line endings in device\_fixtures.py [\#1361](#1361) (@sdb9696)
- Update dump\_devinfo for raw discovery json and common redactors [\#1358](#1358) (@sdb9696)
- Tweak RELEASING.md instructions for patch releases [\#1347](#1347) (@sdb9696)
- Scrub more vacuum keys [\#1328](#1328) (@rytilahti)
- Remove unnecessary check for python \<3.10 [\#1326](#1326) (@rytilahti)
- Add vacuum component queries to dump\_devinfo [\#1320](#1320) (@rytilahti)
- Handle missing mgt\_encryption\_schm in discovery [\#1318](#1318) (@sdb9696)
- Follow main package structure for tests [\#1317](#1317) (@rytilahti)
rytilahti pushed a commit to rytilahti/python-kasa that referenced this pull request Aug 31, 2025
@sdb9696 @rytilahti
Pass raw components to SmartChildDevice init (python-kasa#1363)
7be8d5f
Clean up and consolidate the processing of raw component query responses and simplify the code paths for creating smartcam child devices when supported.
rytilahti pushed a commit to rytilahti/python-kasa that referenced this pull request Aug 31, 2025
@sdb9696 @rytilahti
Prepare 0.9.0 (python-kasa#1401)
3d3cfd3
## [0.9.0](https://github.com/python-kasa/python-kasa/tree/0.9.0) (2024-12-21)

[Full Changelog](python-kasa/python-kasa@0.8.1...0.9.0)

**Release highlights:**

- Improvements to Tapo camera support:
  - C100, C225, C325WB, C520WS and TC70 now supported.
  - Support for motion, person, tamper, and baby cry detection.
- Initial support for Tapo robovacs.
- API extended with `FeatureAttributes` for consumers to test for [supported features](https://python-kasa.readthedocs.io/en/stable/topics.html#modules-and-features).
- Experimental support for Kasa cameras[^1]

[^1]: Currently limited to devices not yet provisioned via the Tapo app - Many thanks to @Puxtril!

**Breaking changes:**

- Use DeviceInfo consistently across devices [\python-kasa#1338](python-kasa#1338) (@sdb9696)

**Implemented enhancements:**

- Add rssi and signal\_level to smartcam [\python-kasa#1392](python-kasa#1392) (@sdb9696)
- Add smartcam detection modules [\python-kasa#1389](python-kasa#1389) (@sdb9696)
- Add bare-bones matter modules to smart and smartcam devices [\python-kasa#1371](python-kasa#1371) (@sdb9696)
- Add bare bones homekit modules smart and smartcam devices [\python-kasa#1370](python-kasa#1370) (@sdb9696)
- Return raw discovery result in cli discover raw [\python-kasa#1342](python-kasa#1342) (@sdb9696)
- cli: print model, https, and lv for discover list [\python-kasa#1339](python-kasa#1339) (@rytilahti)
- Improve overheat reporting [\python-kasa#1335](python-kasa#1335) (@rytilahti)
- Provide alternative camera urls [\python-kasa#1316](python-kasa#1316) (@sdb9696)
- Add LinkieTransportV2 and basic IOT.IPCAMERA support [\python-kasa#1270](python-kasa#1270) (@Puxtril)
- Add ssltransport for robovacs [\python-kasa#943](python-kasa#943) (@rytilahti)

**Fixed bugs:**

- Tapo H200 Hub does not work with python-kasa [\python-kasa#1149](python-kasa#1149)
- Treat smartcam 500 errors after handshake as retryable [\python-kasa#1395](python-kasa#1395) (@sdb9696)
- Fix lens mask required component and state [\python-kasa#1386](python-kasa#1386) (@sdb9696)
- Add LensMask module to smartcam [\python-kasa#1385](python-kasa#1385) (@sdb9696)
- Do not error when accessing smart device\_type before update [\python-kasa#1319](python-kasa#1319) (@sdb9696)
- Fallback to other module data on get\_energy\_usage errors [\python-kasa#1245](python-kasa#1245) (@rytilahti)

**Added support for devices:**

- Add P210M\(US\) 1.0 1.0.3 fixture [\python-kasa#1399](python-kasa#1399) (@sdb9696)
- Add C225\(US\) 2.0 1.0.11 fixture [\python-kasa#1398](python-kasa#1398) (@sdb9696)
- Add P306\(US\) 1.0 1.1.2 fixture [\python-kasa#1396](python-kasa#1396) (@nakanaela)
- Add TC70 3.0 1.3.11 fixture [\python-kasa#1390](python-kasa#1390) (@sdb9696)
- Add C325WB\(EU\) 1.0 1.1.17 Fixture [\python-kasa#1379](python-kasa#1379) (@sdb9696)
- Add C100 4.0 1.3.14 Fixture [\python-kasa#1378](python-kasa#1378) (@sdb9696)
- Add KS200 \(US\) IOT Fixture and P115 \(US\) Smart Fixture [\python-kasa#1355](python-kasa#1355) (@ZeliardM)
- Add C520WS camera fixture [\python-kasa#1352](python-kasa#1352) (@Happy-Cadaver)

**Documentation updates:**

- Update docs for Tapo Lab Third-Party compatibility [\python-kasa#1380](python-kasa#1380) (@sdb9696)
- Add homebridge-kasa-python link to README [\python-kasa#1367](python-kasa#1367) (@rytilahti)
- Update docs for new FeatureAttribute behaviour [\python-kasa#1365](python-kasa#1365) (@sdb9696)
- Add link to related homeassistant-tapo-control [\python-kasa#1333](python-kasa#1333) (@rytilahti)

**Project maintenance:**

- Add P135 1.0 1.2.0 fixture [\python-kasa#1397](python-kasa#1397) (@sdb9696)
- Handle smartcam device blocked response [\python-kasa#1393](python-kasa#1393) (@sdb9696)
- Handle KeyboardInterrupts in the cli better [\python-kasa#1391](python-kasa#1391) (@sdb9696)
- Update C520WS fixture with new methods [\python-kasa#1384](python-kasa#1384) (@sdb9696)
- Miscellaneous minor fixes to dump\_devinfo [\python-kasa#1382](python-kasa#1382) (@sdb9696)
- Add timeout parameter to dump\_devinfo [\python-kasa#1381](python-kasa#1381) (@sdb9696)
- Simplify get\_protocol to prevent clashes with smartcam and robovac [\python-kasa#1377](python-kasa#1377) (@sdb9696)
- Add smartcam modules to package inits [\python-kasa#1376](python-kasa#1376) (@sdb9696)
- Enable saving of fixture files without git clone [\python-kasa#1375](python-kasa#1375) (@sdb9696)
- Force single for some smartcam requests [\python-kasa#1374](python-kasa#1374) (@sdb9696)
- Add new methods to dump\_devinfo [\python-kasa#1373](python-kasa#1373) (@sdb9696)
- Update cli, light modules, and docs to use FeatureAttributes [\python-kasa#1364](python-kasa#1364) (@sdb9696)
- Pass raw components to SmartChildDevice init [\python-kasa#1363](python-kasa#1363) (@sdb9696)
- Fix line endings in device\_fixtures.py [\python-kasa#1361](python-kasa#1361) (@sdb9696)
- Update dump\_devinfo for raw discovery json and common redactors [\python-kasa#1358](python-kasa#1358) (@sdb9696)
- Tweak RELEASING.md instructions for patch releases [\python-kasa#1347](python-kasa#1347) (@sdb9696)
- Scrub more vacuum keys [\python-kasa#1328](python-kasa#1328) (@rytilahti)
- Remove unnecessary check for python \<3.10 [\python-kasa#1326](python-kasa#1326) (@rytilahti)
- Add vacuum component queries to dump\_devinfo [\python-kasa#1320](python-kasa#1320) (@rytilahti)
- Handle missing mgt\_encryption\_schm in discovery [\python-kasa#1318](python-kasa#1318) (@sdb9696)
- Follow main package structure for tests [\python-kasa#1317](python-kasa#1317) (@rytilahti)
rytilahti pushed a commit to rytilahti/python-kasa that referenced this pull request Oct 26, 2025
@sdb9696 @rytilahti
Pass raw components to SmartChildDevice init (python-kasa#1363)
7284763
Clean up and consolidate the processing of raw component query responses and simplify the code paths for creating smartcam child devices when supported.
rytilahti pushed a commit to rytilahti/python-kasa that referenced this pull request Oct 26, 2025
@sdb9696 @rytilahti
Prepare 0.9.0 (python-kasa#1401)
8831307
## [0.9.0](https://github.com/python-kasa/python-kasa/tree/0.9.0) (2024-12-21)

[Full Changelog](python-kasa/python-kasa@0.8.1...0.9.0)

**Release highlights:**

- Improvements to Tapo camera support:
  - C100, C225, C325WB, C520WS and TC70 now supported.
  - Support for motion, person, tamper, and baby cry detection.
- Initial support for Tapo robovacs.
- API extended with `FeatureAttributes` for consumers to test for [supported features](https://python-kasa.readthedocs.io/en/stable/topics.html#modules-and-features).
- Experimental support for Kasa cameras[^1]

[^1]: Currently limited to devices not yet provisioned via the Tapo app - Many thanks to @Puxtril!

**Breaking changes:**

- Use DeviceInfo consistently across devices [\python-kasa#1338](python-kasa#1338) (@sdb9696)

**Implemented enhancements:**

- Add rssi and signal\_level to smartcam [\python-kasa#1392](python-kasa#1392) (@sdb9696)
- Add smartcam detection modules [\python-kasa#1389](python-kasa#1389) (@sdb9696)
- Add bare-bones matter modules to smart and smartcam devices [\python-kasa#1371](python-kasa#1371) (@sdb9696)
- Add bare bones homekit modules smart and smartcam devices [\python-kasa#1370](python-kasa#1370) (@sdb9696)
- Return raw discovery result in cli discover raw [\python-kasa#1342](python-kasa#1342) (@sdb9696)
- cli: print model, https, and lv for discover list [\python-kasa#1339](python-kasa#1339) (@rytilahti)
- Improve overheat reporting [\python-kasa#1335](python-kasa#1335) (@rytilahti)
- Provide alternative camera urls [\python-kasa#1316](python-kasa#1316) (@sdb9696)
- Add LinkieTransportV2 and basic IOT.IPCAMERA support [\python-kasa#1270](python-kasa#1270) (@Puxtril)
- Add ssltransport for robovacs [\python-kasa#943](python-kasa#943) (@rytilahti)

**Fixed bugs:**

- Tapo H200 Hub does not work with python-kasa [\python-kasa#1149](python-kasa#1149)
- Treat smartcam 500 errors after handshake as retryable [\python-kasa#1395](python-kasa#1395) (@sdb9696)
- Fix lens mask required component and state [\python-kasa#1386](python-kasa#1386) (@sdb9696)
- Add LensMask module to smartcam [\python-kasa#1385](python-kasa#1385) (@sdb9696)
- Do not error when accessing smart device\_type before update [\python-kasa#1319](python-kasa#1319) (@sdb9696)
- Fallback to other module data on get\_energy\_usage errors [\python-kasa#1245](python-kasa#1245) (@rytilahti)

**Added support for devices:**

- Add P210M\(US\) 1.0 1.0.3 fixture [\python-kasa#1399](python-kasa#1399) (@sdb9696)
- Add C225\(US\) 2.0 1.0.11 fixture [\python-kasa#1398](python-kasa#1398) (@sdb9696)
- Add P306\(US\) 1.0 1.1.2 fixture [\python-kasa#1396](python-kasa#1396) (@nakanaela)
- Add TC70 3.0 1.3.11 fixture [\python-kasa#1390](python-kasa#1390) (@sdb9696)
- Add C325WB\(EU\) 1.0 1.1.17 Fixture [\python-kasa#1379](python-kasa#1379) (@sdb9696)
- Add C100 4.0 1.3.14 Fixture [\python-kasa#1378](python-kasa#1378) (@sdb9696)
- Add KS200 \(US\) IOT Fixture and P115 \(US\) Smart Fixture [\python-kasa#1355](python-kasa#1355) (@ZeliardM)
- Add C520WS camera fixture [\python-kasa#1352](python-kasa#1352) (@Happy-Cadaver)

**Documentation updates:**

- Update docs for Tapo Lab Third-Party compatibility [\python-kasa#1380](python-kasa#1380) (@sdb9696)
- Add homebridge-kasa-python link to README [\python-kasa#1367](python-kasa#1367) (@rytilahti)
- Update docs for new FeatureAttribute behaviour [\python-kasa#1365](python-kasa#1365) (@sdb9696)
- Add link to related homeassistant-tapo-control [\python-kasa#1333](python-kasa#1333) (@rytilahti)

**Project maintenance:**

- Add P135 1.0 1.2.0 fixture [\python-kasa#1397](python-kasa#1397) (@sdb9696)
- Handle smartcam device blocked response [\python-kasa#1393](python-kasa#1393) (@sdb9696)
- Handle KeyboardInterrupts in the cli better [\python-kasa#1391](python-kasa#1391) (@sdb9696)
- Update C520WS fixture with new methods [\python-kasa#1384](python-kasa#1384) (@sdb9696)
- Miscellaneous minor fixes to dump\_devinfo [\python-kasa#1382](python-kasa#1382) (@sdb9696)
- Add timeout parameter to dump\_devinfo [\python-kasa#1381](python-kasa#1381) (@sdb9696)
- Simplify get\_protocol to prevent clashes with smartcam and robovac [\python-kasa#1377](python-kasa#1377) (@sdb9696)
- Add smartcam modules to package inits [\python-kasa#1376](python-kasa#1376) (@sdb9696)
- Enable saving of fixture files without git clone [\python-kasa#1375](python-kasa#1375) (@sdb9696)
- Force single for some smartcam requests [\python-kasa#1374](python-kasa#1374) (@sdb9696)
- Add new methods to dump\_devinfo [\python-kasa#1373](python-kasa#1373) (@sdb9696)
- Update cli, light modules, and docs to use FeatureAttributes [\python-kasa#1364](python-kasa#1364) (@sdb9696)
- Pass raw components to SmartChildDevice init [\python-kasa#1363](python-kasa#1363) (@sdb9696)
- Fix line endings in device\_fixtures.py [\python-kasa#1361](python-kasa#1361) (@sdb9696)
- Update dump\_devinfo for raw discovery json and common redactors [\python-kasa#1358](python-kasa#1358) (@sdb9696)
- Tweak RELEASING.md instructions for patch releases [\python-kasa#1347](python-kasa#1347) (@sdb9696)
- Scrub more vacuum keys [\python-kasa#1328](python-kasa#1328) (@rytilahti)
- Remove unnecessary check for python \<3.10 [\python-kasa#1326](python-kasa#1326) (@rytilahti)
- Add vacuum component queries to dump\_devinfo [\python-kasa#1320](python-kasa#1320) (@rytilahti)
- Handle missing mgt\_encryption\_schm in discovery [\python-kasa#1318](python-kasa#1318) (@sdb9696)
- Follow main package structure for tests [\python-kasa#1317](python-kasa#1317) (@rytilahti)
rytilahti pushed a commit to rytilahti/python-kasa that referenced this pull request Nov 10, 2025
@sdb9696 @rytilahti
Pass raw components to SmartChildDevice init (python-kasa#1363)
12ced93
Clean up and consolidate the processing of raw component query responses and simplify the code paths for creating smartcam child devices when supported.
rytilahti pushed a commit to rytilahti/python-kasa that referenced this pull request Nov 10, 2025
@sdb9696 @rytilahti
Prepare 0.9.0 (python-kasa#1401)
3ce868a
## [0.9.0](https://github.com/python-kasa/python-kasa/tree/0.9.0) (2024-12-21)

[Full Changelog](python-kasa/python-kasa@0.8.1...0.9.0)

**Release highlights:**

- Improvements to Tapo camera support:
  - C100, C225, C325WB, C520WS and TC70 now supported.
  - Support for motion, person, tamper, and baby cry detection.
- Initial support for Tapo robovacs.
- API extended with `FeatureAttributes` for consumers to test for [supported features](https://python-kasa.readthedocs.io/en/stable/topics.html#modules-and-features).
- Experimental support for Kasa cameras[^1]

[^1]: Currently limited to devices not yet provisioned via the Tapo app - Many thanks to @Puxtril!

**Breaking changes:**

- Use DeviceInfo consistently across devices [\python-kasa#1338](python-kasa#1338) (@sdb9696)

**Implemented enhancements:**

- Add rssi and signal\_level to smartcam [\python-kasa#1392](python-kasa#1392) (@sdb9696)
- Add smartcam detection modules [\python-kasa#1389](python-kasa#1389) (@sdb9696)
- Add bare-bones matter modules to smart and smartcam devices [\python-kasa#1371](python-kasa#1371) (@sdb9696)
- Add bare bones homekit modules smart and smartcam devices [\python-kasa#1370](python-kasa#1370) (@sdb9696)
- Return raw discovery result in cli discover raw [\python-kasa#1342](python-kasa#1342) (@sdb9696)
- cli: print model, https, and lv for discover list [\python-kasa#1339](python-kasa#1339) (@rytilahti)
- Improve overheat reporting [\python-kasa#1335](python-kasa#1335) (@rytilahti)
- Provide alternative camera urls [\python-kasa#1316](python-kasa#1316) (@sdb9696)
- Add LinkieTransportV2 and basic IOT.IPCAMERA support [\python-kasa#1270](python-kasa#1270) (@Puxtril)
- Add ssltransport for robovacs [\python-kasa#943](python-kasa#943) (@rytilahti)

**Fixed bugs:**

- Tapo H200 Hub does not work with python-kasa [\python-kasa#1149](python-kasa#1149)
- Treat smartcam 500 errors after handshake as retryable [\python-kasa#1395](python-kasa#1395) (@sdb9696)
- Fix lens mask required component and state [\python-kasa#1386](python-kasa#1386) (@sdb9696)
- Add LensMask module to smartcam [\python-kasa#1385](python-kasa#1385) (@sdb9696)
- Do not error when accessing smart device\_type before update [\python-kasa#1319](python-kasa#1319) (@sdb9696)
- Fallback to other module data on get\_energy\_usage errors [\python-kasa#1245](python-kasa#1245) (@rytilahti)

**Added support for devices:**

- Add P210M\(US\) 1.0 1.0.3 fixture [\python-kasa#1399](python-kasa#1399) (@sdb9696)
- Add C225\(US\) 2.0 1.0.11 fixture [\python-kasa#1398](python-kasa#1398) (@sdb9696)
- Add P306\(US\) 1.0 1.1.2 fixture [\python-kasa#1396](python-kasa#1396) (@nakanaela)
- Add TC70 3.0 1.3.11 fixture [\python-kasa#1390](python-kasa#1390) (@sdb9696)
- Add C325WB\(EU\) 1.0 1.1.17 Fixture [\python-kasa#1379](python-kasa#1379) (@sdb9696)
- Add C100 4.0 1.3.14 Fixture [\python-kasa#1378](python-kasa#1378) (@sdb9696)
- Add KS200 \(US\) IOT Fixture and P115 \(US\) Smart Fixture [\python-kasa#1355](python-kasa#1355) (@ZeliardM)
- Add C520WS camera fixture [\python-kasa#1352](python-kasa#1352) (@Happy-Cadaver)

**Documentation updates:**

- Update docs for Tapo Lab Third-Party compatibility [\python-kasa#1380](python-kasa#1380) (@sdb9696)
- Add homebridge-kasa-python link to README [\python-kasa#1367](python-kasa#1367) (@rytilahti)
- Update docs for new FeatureAttribute behaviour [\python-kasa#1365](python-kasa#1365) (@sdb9696)
- Add link to related homeassistant-tapo-control [\python-kasa#1333](python-kasa#1333) (@rytilahti)

**Project maintenance:**

- Add P135 1.0 1.2.0 fixture [\python-kasa#1397](python-kasa#1397) (@sdb9696)
- Handle smartcam device blocked response [\python-kasa#1393](python-kasa#1393) (@sdb9696)
- Handle KeyboardInterrupts in the cli better [\python-kasa#1391](python-kasa#1391) (@sdb9696)
- Update C520WS fixture with new methods [\python-kasa#1384](python-kasa#1384) (@sdb9696)
- Miscellaneous minor fixes to dump\_devinfo [\python-kasa#1382](python-kasa#1382) (@sdb9696)
- Add timeout parameter to dump\_devinfo [\python-kasa#1381](python-kasa#1381) (@sdb9696)
- Simplify get\_protocol to prevent clashes with smartcam and robovac [\python-kasa#1377](python-kasa#1377) (@sdb9696)
- Add smartcam modules to package inits [\python-kasa#1376](python-kasa#1376) (@sdb9696)
- Enable saving of fixture files without git clone [\python-kasa#1375](python-kasa#1375) (@sdb9696)
- Force single for some smartcam requests [\python-kasa#1374](python-kasa#1374) (@sdb9696)
- Add new methods to dump\_devinfo [\python-kasa#1373](python-kasa#1373) (@sdb9696)
- Update cli, light modules, and docs to use FeatureAttributes [\python-kasa#1364](python-kasa#1364) (@sdb9696)
- Pass raw components to SmartChildDevice init [\python-kasa#1363](python-kasa#1363) (@sdb9696)
- Fix line endings in device\_fixtures.py [\python-kasa#1361](python-kasa#1361) (@sdb9696)
- Update dump\_devinfo for raw discovery json and common redactors [\python-kasa#1358](python-kasa#1358) (@sdb9696)
- Tweak RELEASING.md instructions for patch releases [\python-kasa#1347](python-kasa#1347) (@sdb9696)
- Scrub more vacuum keys [\python-kasa#1328](python-kasa#1328) (@rytilahti)
- Remove unnecessary check for python \<3.10 [\python-kasa#1326](python-kasa#1326) (@rytilahti)
- Add vacuum component queries to dump\_devinfo [\python-kasa#1320](python-kasa#1320) (@rytilahti)
- Handle missing mgt\_encryption\_schm in discovery [\python-kasa#1318](python-kasa#1318) (@sdb9696)
- Follow main package structure for tests [\python-kasa#1317](python-kasa#1317) (@rytilahti)
rytilahti pushed a commit to rytilahti/python-kasa that referenced this pull request Jul 5, 2026
@sdb9696 @rytilahti
Pass raw components to SmartChildDevice init (python-kasa#1363)
4b83417
Clean up and consolidate the processing of raw component query responses and simplify the code paths for creating smartcam child devices when supported.
rytilahti pushed a commit to rytilahti/python-kasa that referenced this pull request Jul 5, 2026
@sdb9696 @rytilahti
Prepare 0.9.0 (python-kasa#1401)
eab1fdf
## [0.9.0](https://github.com/python-kasa/python-kasa/tree/0.9.0) (2024-12-21)

[Full Changelog](python-kasa/python-kasa@0.8.1...0.9.0)

**Release highlights:**

- Improvements to Tapo camera support:
  - C100, C225, C325WB, C520WS and TC70 now supported.
  - Support for motion, person, tamper, and baby cry detection.
- Initial support for Tapo robovacs.
- API extended with `FeatureAttributes` for consumers to test for [supported features](https://python-kasa.readthedocs.io/en/stable/topics.html#modules-and-features).
- Experimental support for Kasa cameras[^1]

[^1]: Currently limited to devices not yet provisioned via the Tapo app - Many thanks to @Puxtril!

**Breaking changes:**

- Use DeviceInfo consistently across devices [\python-kasa#1338](python-kasa#1338) (@sdb9696)

**Implemented enhancements:**

- Add rssi and signal\_level to smartcam [\python-kasa#1392](python-kasa#1392) (@sdb9696)
- Add smartcam detection modules [\python-kasa#1389](python-kasa#1389) (@sdb9696)
- Add bare-bones matter modules to smart and smartcam devices [\python-kasa#1371](python-kasa#1371) (@sdb9696)
- Add bare bones homekit modules smart and smartcam devices [\python-kasa#1370](python-kasa#1370) (@sdb9696)
- Return raw discovery result in cli discover raw [\python-kasa#1342](python-kasa#1342) (@sdb9696)
- cli: print model, https, and lv for discover list [\python-kasa#1339](python-kasa#1339) (@rytilahti)
- Improve overheat reporting [\python-kasa#1335](python-kasa#1335) (@rytilahti)
- Provide alternative camera urls [\python-kasa#1316](python-kasa#1316) (@sdb9696)
- Add LinkieTransportV2 and basic IOT.IPCAMERA support [\python-kasa#1270](python-kasa#1270) (@Puxtril)
- Add ssltransport for robovacs [\python-kasa#943](python-kasa#943) (@rytilahti)

**Fixed bugs:**

- Tapo H200 Hub does not work with python-kasa [\python-kasa#1149](python-kasa#1149)
- Treat smartcam 500 errors after handshake as retryable [\python-kasa#1395](python-kasa#1395) (@sdb9696)
- Fix lens mask required component and state [\python-kasa#1386](python-kasa#1386) (@sdb9696)
- Add LensMask module to smartcam [\python-kasa#1385](python-kasa#1385) (@sdb9696)
- Do not error when accessing smart device\_type before update [\python-kasa#1319](python-kasa#1319) (@sdb9696)
- Fallback to other module data on get\_energy\_usage errors [\python-kasa#1245](python-kasa#1245) (@rytilahti)

**Added support for devices:**

- Add P210M\(US\) 1.0 1.0.3 fixture [\python-kasa#1399](python-kasa#1399) (@sdb9696)
- Add C225\(US\) 2.0 1.0.11 fixture [\python-kasa#1398](python-kasa#1398) (@sdb9696)
- Add P306\(US\) 1.0 1.1.2 fixture [\python-kasa#1396](python-kasa#1396) (@nakanaela)
- Add TC70 3.0 1.3.11 fixture [\python-kasa#1390](python-kasa#1390) (@sdb9696)
- Add C325WB\(EU\) 1.0 1.1.17 Fixture [\python-kasa#1379](python-kasa#1379) (@sdb9696)
- Add C100 4.0 1.3.14 Fixture [\python-kasa#1378](python-kasa#1378) (@sdb9696)
- Add KS200 \(US\) IOT Fixture and P115 \(US\) Smart Fixture [\python-kasa#1355](python-kasa#1355) (@ZeliardM)
- Add C520WS camera fixture [\python-kasa#1352](python-kasa#1352) (@Happy-Cadaver)

**Documentation updates:**

- Update docs for Tapo Lab Third-Party compatibility [\python-kasa#1380](python-kasa#1380) (@sdb9696)
- Add homebridge-kasa-python link to README [\python-kasa#1367](python-kasa#1367) (@rytilahti)
- Update docs for new FeatureAttribute behaviour [\python-kasa#1365](python-kasa#1365) (@sdb9696)
- Add link to related homeassistant-tapo-control [\python-kasa#1333](python-kasa#1333) (@rytilahti)

**Project maintenance:**

- Add P135 1.0 1.2.0 fixture [\python-kasa#1397](python-kasa#1397) (@sdb9696)
- Handle smartcam device blocked response [\python-kasa#1393](python-kasa#1393) (@sdb9696)
- Handle KeyboardInterrupts in the cli better [\python-kasa#1391](python-kasa#1391) (@sdb9696)
- Update C520WS fixture with new methods [\python-kasa#1384](python-kasa#1384) (@sdb9696)
- Miscellaneous minor fixes to dump\_devinfo [\python-kasa#1382](python-kasa#1382) (@sdb9696)
- Add timeout parameter to dump\_devinfo [\python-kasa#1381](python-kasa#1381) (@sdb9696)
- Simplify get\_protocol to prevent clashes with smartcam and robovac [\python-kasa#1377](python-kasa#1377) (@sdb9696)
- Add smartcam modules to package inits [\python-kasa#1376](python-kasa#1376) (@sdb9696)
- Enable saving of fixture files without git clone [\python-kasa#1375](python-kasa#1375) (@sdb9696)
- Force single for some smartcam requests [\python-kasa#1374](python-kasa#1374) (@sdb9696)
- Add new methods to dump\_devinfo [\python-kasa#1373](python-kasa#1373) (@sdb9696)
- Update cli, light modules, and docs to use FeatureAttributes [\python-kasa#1364](python-kasa#1364) (@sdb9696)
- Pass raw components to SmartChildDevice init [\python-kasa#1363](python-kasa#1363) (@sdb9696)
- Fix line endings in device\_fixtures.py [\python-kasa#1361](python-kasa#1361) (@sdb9696)
- Update dump\_devinfo for raw discovery json and common redactors [\python-kasa#1358](python-kasa#1358) (@sdb9696)
- Tweak RELEASING.md instructions for patch releases [\python-kasa#1347](python-kasa#1347) (@sdb9696)
- Scrub more vacuum keys [\python-kasa#1328](python-kasa#1328) (@rytilahti)
- Remove unnecessary check for python \<3.10 [\python-kasa#1326](python-kasa#1326) (@rytilahti)
- Add vacuum component queries to dump\_devinfo [\python-kasa#1320](python-kasa#1320) (@rytilahti)
- Handle missing mgt\_encryption\_schm in discovery [\python-kasa#1318](python-kasa#1318) (@sdb9696)
- Follow main package structure for tests [\python-kasa#1317](python-kasa#1317) (@rytilahti)
pillarsdotnet pushed a commit to pillarsdotnet/python-kasa that referenced this pull request Oct 22, 2026
@sdb9696
Pass raw components to SmartChildDevice init (python-kasa#1363)
989c0da
Clean up and consolidate the processing of raw component query responses and simplify the code paths for creating smartcam child devices when supported.
pillarsdotnet pushed a commit to pillarsdotnet/python-kasa that referenced this pull request Oct 22, 2026
@sdb9696
Prepare 0.9.0 (python-kasa#1401)
2dcad8b
## [0.9.0](https://github.com/python-kasa/python-kasa/tree/0.9.0) (2024-12-21)

[Full Changelog](python-kasa/python-kasa@0.8.1...0.9.0)

**Release highlights:**

- Improvements to Tapo camera support:
  - C100, C225, C325WB, C520WS and TC70 now supported.
  - Support for motion, person, tamper, and baby cry detection.
- Initial support for Tapo robovacs.
- API extended with `FeatureAttributes` for consumers to test for [supported features](https://python-kasa.readthedocs.io/en/stable/topics.html#modules-and-features).
- Experimental support for Kasa cameras[^1]

[^1]: Currently limited to devices not yet provisioned via the Tapo app - Many thanks to @Puxtril!

**Breaking changes:**

- Use DeviceInfo consistently across devices [\python-kasa#1338](python-kasa#1338) (@sdb9696)

**Implemented enhancements:**

- Add rssi and signal\_level to smartcam [\python-kasa#1392](python-kasa#1392) (@sdb9696)
- Add smartcam detection modules [\python-kasa#1389](python-kasa#1389) (@sdb9696)
- Add bare-bones matter modules to smart and smartcam devices [\python-kasa#1371](python-kasa#1371) (@sdb9696)
- Add bare bones homekit modules smart and smartcam devices [\python-kasa#1370](python-kasa#1370) (@sdb9696)
- Return raw discovery result in cli discover raw [\python-kasa#1342](python-kasa#1342) (@sdb9696)
- cli: print model, https, and lv for discover list [\python-kasa#1339](python-kasa#1339) (@rytilahti)
- Improve overheat reporting [\python-kasa#1335](python-kasa#1335) (@rytilahti)
- Provide alternative camera urls [\python-kasa#1316](python-kasa#1316) (@sdb9696)
- Add LinkieTransportV2 and basic IOT.IPCAMERA support [\python-kasa#1270](python-kasa#1270) (@Puxtril)
- Add ssltransport for robovacs [\python-kasa#943](python-kasa#943) (@rytilahti)

**Fixed bugs:**

- Tapo H200 Hub does not work with python-kasa [\python-kasa#1149](python-kasa#1149)
- Treat smartcam 500 errors after handshake as retryable [\python-kasa#1395](python-kasa#1395) (@sdb9696)
- Fix lens mask required component and state [\python-kasa#1386](python-kasa#1386) (@sdb9696)
- Add LensMask module to smartcam [\python-kasa#1385](python-kasa#1385) (@sdb9696)
- Do not error when accessing smart device\_type before update [\python-kasa#1319](python-kasa#1319) (@sdb9696)
- Fallback to other module data on get\_energy\_usage errors [\python-kasa#1245](python-kasa#1245) (@rytilahti)

**Added support for devices:**

- Add P210M\(US\) 1.0 1.0.3 fixture [\python-kasa#1399](python-kasa#1399) (@sdb9696)
- Add C225\(US\) 2.0 1.0.11 fixture [\python-kasa#1398](python-kasa#1398) (@sdb9696)
- Add P306\(US\) 1.0 1.1.2 fixture [\python-kasa#1396](python-kasa#1396) (@nakanaela)
- Add TC70 3.0 1.3.11 fixture [\python-kasa#1390](python-kasa#1390) (@sdb9696)
- Add C325WB\(EU\) 1.0 1.1.17 Fixture [\python-kasa#1379](python-kasa#1379) (@sdb9696)
- Add C100 4.0 1.3.14 Fixture [\python-kasa#1378](python-kasa#1378) (@sdb9696)
- Add KS200 \(US\) IOT Fixture and P115 \(US\) Smart Fixture [\python-kasa#1355](python-kasa#1355) (@ZeliardM)
- Add C520WS camera fixture [\python-kasa#1352](python-kasa#1352) (@Happy-Cadaver)

**Documentation updates:**

- Update docs for Tapo Lab Third-Party compatibility [\python-kasa#1380](python-kasa#1380) (@sdb9696)
- Add homebridge-kasa-python link to README [\python-kasa#1367](python-kasa#1367) (@rytilahti)
- Update docs for new FeatureAttribute behaviour [\python-kasa#1365](python-kasa#1365) (@sdb9696)
- Add link to related homeassistant-tapo-control [\python-kasa#1333](python-kasa#1333) (@rytilahti)

**Project maintenance:**

- Add P135 1.0 1.2.0 fixture [\python-kasa#1397](python-kasa#1397) (@sdb9696)
- Handle smartcam device blocked response [\python-kasa#1393](python-kasa#1393) (@sdb9696)
- Handle KeyboardInterrupts in the cli better [\python-kasa#1391](python-kasa#1391) (@sdb9696)
- Update C520WS fixture with new methods [\python-kasa#1384](python-kasa#1384) (@sdb9696)
- Miscellaneous minor fixes to dump\_devinfo [\python-kasa#1382](python-kasa#1382) (@sdb9696)
- Add timeout parameter to dump\_devinfo [\python-kasa#1381](python-kasa#1381) (@sdb9696)
- Simplify get\_protocol to prevent clashes with smartcam and robovac [\python-kasa#1377](python-kasa#1377) (@sdb9696)
- Add smartcam modules to package inits [\python-kasa#1376](python-kasa#1376) (@sdb9696)
- Enable saving of fixture files without git clone [\python-kasa#1375](python-kasa#1375) (@sdb9696)
- Force single for some smartcam requests [\python-kasa#1374](python-kasa#1374) (@sdb9696)
- Add new methods to dump\_devinfo [\python-kasa#1373](python-kasa#1373) (@sdb9696)
- Update cli, light modules, and docs to use FeatureAttributes [\python-kasa#1364](python-kasa#1364) (@sdb9696)
- Pass raw components to SmartChildDevice init [\python-kasa#1363](python-kasa#1363) (@sdb9696)
- Fix line endings in device\_fixtures.py [\python-kasa#1361](python-kasa#1361) (@sdb9696)
- Update dump\_devinfo for raw discovery json and common redactors [\python-kasa#1358](python-kasa#1358) (@sdb9696)
- Tweak RELEASING.md instructions for patch releases [\python-kasa#1347](python-kasa#1347) (@sdb9696)
- Scrub more vacuum keys [\python-kasa#1328](python-kasa#1328) (@rytilahti)
- Remove unnecessary check for python \<3.10 [\python-kasa#1326](python-kasa#1326) (@rytilahti)
- Add vacuum component queries to dump\_devinfo [\python-kasa#1320](python-kasa#1320) (@rytilahti)
- Handle missing mgt\_encryption\_schm in discovery [\python-kasa#1318](python-kasa#1318) (@sdb9696)
- Follow main package structure for tests [\python-kasa#1317](python-kasa#1317) (@rytilahti)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Reviewers

@rytilahti rytilahti rytilahti approved these changes

Uh oh!

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

Assignees

No one assigned

Labels

maintenance Project improvements and maintenance

Projects

None yet

Milestone

No milestone

Development

Successfully merging this pull request may close these issues.

Uh oh!

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

2 participants

@sdb9696 @rytilahti
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.