GeezerVisonThe World Wide Web, restored to 800 pixels of glory. | |
| Home|About|Gaming cabinet|Archives|How it works|Starter sites | |
GeezerVison is showing github.com — Keep hub children when the child component list is missing by Richardtristan · Pull Request #1797 · python-kasa/python-kasa Conversation
Contributor
Fixes #1796 ProblemSome hubs intermittently return a The response is most likely an empty dict. A result without ChangeWhen the list is missing, children are neither created nor deleted for that update, and a debug message is logged. Treating the response as an empty list would delete the known children of a hub that has some, so they are kept until the next complete response. Tests
Ran locally on A one-line
Sorry, something went wrong. Uh oh!
There was an error while loading. Please reload this page. All reactionsSome hubs intermittently return a getChildDeviceComponentList result without the child_component_list key. Seen on an H200 without any child device paired (firmware 1.7.7 Build 20260917): every update then failed with KeyError: 'child_component_list' in _create_delete_children and all of the hub entities became unavailable. Skip creating and deleting children for that update instead of failing. Treating the response as an empty list would delete the known children of a hub that has some, so they are kept until the next complete response.
|
There was an error while loading. Please reload this page.
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@ ## master #1797 +/- ## ======================================= Coverage 93.41% 93.41% ======================================= Files 159 159 Lines 10113 10116 +3 Branches 1043 1044 +1 ======================================= + Hits 9447 9450 +3 Misses 472 472 Partials 194 194 ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
Sorry, something went wrong.
There was an error while loading. Please reload this page.
There was a problem hiding this comment.
The reason will be displayed to describe this comment to others. Learn more.
Thank you @Richardtristan, let's get this in for the next release!
Sorry, something went wrong.
There was an error while loading. Please reload this page.
There was an error while loading. Please reload this page.
## [0.12.0](https://github.com/python-kasa/python-kasa/tree/0.12.0) (2026-10-25) This release include several compatibility fixes (updated accepted SSL ciphers, removal of Homekit from the default update cycle). The new API `Device.supports_module()` provide a way to find out if the device supports some specific module, e.g., HomeKit, without including it in the default update cycle. [Full Changelog](0.11.0.1...0.12.0) **Fixed bugs:** - Keep hub children when the child component list is missing [\#1797](#1797) (@Richardtristan) - Strip multi-word rich tags when rich is not installed [\#1807](#1807) (@wolfgang-aura) - Add Device.supports_module() and stop querying HomeKit for iot devices [\#1808](#1808) (@rytilahti) - Keep multi requests for smartcam devices after a timeout [\#1802](#1802) (@hugaraujo) - Consolidate SSL ciphers and use them in SslTransport [\#1798](#1798) (@rytilahti) - Raise UnsupportedDeviceError instead of crashing on unknown device types [\#1781](#1781) (@GhostCoder6969) **Added support for devices:** - Add TD21(EU) device fixture [\#1786](#1786) (@Smugaski) - Add P116M(IN) fixture [\#1795](#1795) (@Partha-dev01) **Project maintenance:** - Add Python 3.15 to supported versions and update pins [\#1793](#1793) (@rytilahti) - Generate the changelog with git-cliff and draft releases in CI [\#1809](#1809) (@rytilahti) - Build and check packages in CI and publish workflows [\#1782](#1782) (@rytilahti) **Other changes:** - Use the real discovery reply in the TD21 fixture [\#1800](#1800) (@Smugaski)
…sa#1797) Fixes python-kasa#1796 Some hubs intermittently return a `getChildDeviceComponentList` result without the `child_component_list` key, as seen with an H200 (firmware 1.7.7 Build 20260917). This changes the logic, so that when the list is missing, children are neither created nor deleted for that update, and a debug message is logged. Treating the response as an empty list would delete the known children of a hub that has some, so they are kept until the next complete response.
## [0.12.0](https://github.com/python-kasa/python-kasa/tree/0.12.0) (2026-10-25) This release include several compatibility fixes (updated accepted SSL ciphers, removal of Homekit from the default update cycle). The new API `Device.supports_module()` provide a way to find out if the device supports some specific module, e.g., HomeKit, without including it in the default update cycle. [Full Changelog](python-kasa/python-kasa@0.11.0.1...0.12.0) **Fixed bugs:** - Keep hub children when the child component list is missing [\python-kasa#1797](python-kasa#1797) (@Richardtristan) - Strip multi-word rich tags when rich is not installed [\python-kasa#1807](python-kasa#1807) (@wolfgang-aura) - Add Device.supports_module() and stop querying HomeKit for iot devices [\python-kasa#1808](python-kasa#1808) (@rytilahti) - Keep multi requests for smartcam devices after a timeout [\python-kasa#1802](python-kasa#1802) (@hugaraujo) - Consolidate SSL ciphers and use them in SslTransport [\python-kasa#1798](python-kasa#1798) (@rytilahti) - Raise UnsupportedDeviceError instead of crashing on unknown device types [\python-kasa#1781](python-kasa#1781) (@GhostCoder6969) **Added support for devices:** - Add TD21(EU) device fixture [\python-kasa#1786](python-kasa#1786) (@Smugaski) - Add P116M(IN) fixture [\python-kasa#1795](python-kasa#1795) (@Partha-dev01) **Project maintenance:** - Add Python 3.15 to supported versions and update pins [\python-kasa#1793](python-kasa#1793) (@rytilahti) - Generate the changelog with git-cliff and draft releases in CI [\python-kasa#1809](python-kasa#1809) (@rytilahti) - Build and check packages in CI and publish workflows [\python-kasa#1782](python-kasa#1782) (@rytilahti) **Other changes:** - Use the real discovery reply in the TD21 fixture [\python-kasa#1800](python-kasa#1800) (@Smugaski)
There was an error while loading. Please reload this page.
Successfully merging this pull request may close these issues.
H200 hub without child devices: KeyError 'child_component_list' in _create_delete_children (0.11.0.1)
There was an error while loading. Please reload this page.