Perform initial update only using the sysinfo query#199
Perform initial update only using the sysinfo query#199rytilahti merged 1 commit intopython-kasa:masterfrom
Conversation
Some devices are known to fail when trying to query non-supported modules like emeter information. This commit makes the initial update() only request the sysinfo, followed up by a second query if emeter is supported by the device.
Codecov Report
@@ Coverage Diff @@
## master #199 +/- ##
==========================================
+ Coverage 74.26% 74.73% +0.47%
==========================================
Files 11 11
Lines 1224 1231 +7
Branches 178 180 +2
==========================================
+ Hits 909 920 +11
+ Misses 282 273 -9
- Partials 33 38 +5
Continue to review full report at Codecov.
|
|
This change seems to have fixed the issue! Nicely done! Here was the output I got from the command on the current master branch: ...and it stalls there, never returning. Running that same command on this PR yields: without hanging. I also ran this version against an HS103 HW v3.0, KL125 HW v1.20, and KP400 HW v2.0 and they all worked just fine as well. Any other test you'd like ran? |
|
Glad to hear that and thanks for testing, it's always tricky to develop when you do not have device access! I don't think there's more testing necessary for now, so I'll just merge this for the next pre-release. I have also tested this with my HS110, KL130 and KP303. |
The most important enhancements in this release are: * Support for emeter on strip sockets * Fix discovery and update() on some devices that do not support multi-module queries (e.g., HS200) * Improved support for bulbs [Full Changelog](python-kasa/python-kasa@0.4.0.dev3...0.4.0.dev4) **Implemented enhancements:** - HS300 Children plugs have emeter [\python-kasa#64](python-kasa#64) - Improve emeterstatus API, move into own module [\python-kasa#205](python-kasa#205) ([rytilahti](https://github.com/rytilahti)) - Avoid temp array during encrypt and decrypt [\python-kasa#204](python-kasa#204) ([bdraco](https://github.com/bdraco)) - Add emeter support for strip sockets [\python-kasa#203](python-kasa#203) ([bdraco](https://github.com/bdraco)) - Add own device type for smartstrip children [\python-kasa#201](python-kasa#201) ([rytilahti](https://github.com/rytilahti)) - bulb: allow set\_hsv without v, add fallback ct range [\python-kasa#200](python-kasa#200) ([rytilahti](https://github.com/rytilahti)) - Improve bulb support \(alias, time settings\) [\python-kasa#198](python-kasa#198) ([rytilahti](https://github.com/rytilahti)) - Improve testing harness to allow tests on real devices [\python-kasa#197](python-kasa#197) ([rytilahti](https://github.com/rytilahti)) - cli: add human-friendly printout when calling temperature on non-supported devices [\python-kasa#196](python-kasa#196) ([JaydenRA](https://github.com/JaydenRA)) **Fixed bugs:** - KL430: Throw error for Device specific information [\python-kasa#189](python-kasa#189) - dump\_devinfo: handle latitude/longitude keys properly [\python-kasa#175](python-kasa#175) ([rytilahti](https://github.com/rytilahti)) **Closed issues:** - Feature Request - Toggle Command [\python-kasa#188](python-kasa#188) - Is It Compatible With HS105? [\python-kasa#186](python-kasa#186) - Cannot use some functions with KP303 [\python-kasa#181](python-kasa#181) - Help needed - awaiting game [\python-kasa#179](python-kasa#179) - Version inconsistency between CLI and pip [\python-kasa#177](python-kasa#177) - Release 0.4.0.dev3? [\python-kasa#169](python-kasa#169) - Discover does not support specifying network interface [\python-kasa#167](python-kasa#167) - Can't command or query HS200 v5 switch [\python-kasa#161](python-kasa#161) **Merged pull requests:** - More CI fixes [\python-kasa#208](python-kasa#208) ([rytilahti](https://github.com/rytilahti)) - Fix CI dep installation [\python-kasa#207](python-kasa#207) ([rytilahti](https://github.com/rytilahti)) - Use github actions instead of azure pipelines [\python-kasa#206](python-kasa#206) ([rytilahti](https://github.com/rytilahti)) - Add KP115 fixture [\python-kasa#202](python-kasa#202) ([rytilahti](https://github.com/rytilahti)) - Perform initial update only using the sysinfo query [\python-kasa#199](python-kasa#199) ([rytilahti](https://github.com/rytilahti)) - Add real kasa KL430\(UN\) device dump [\python-kasa#192](python-kasa#192) ([iprodanovbg](https://github.com/iprodanovbg)) - Use less strict matcher for kl430 color temperature [\python-kasa#190](python-kasa#190) ([rytilahti](https://github.com/rytilahti)) - Add EP10\(US\) 1.0 1.0.2 fixture [\python-kasa#174](python-kasa#174) ([nbrew](https://github.com/nbrew)) - Add a note about using the discovery target parameter [\python-kasa#168](python-kasa#168) ([leandroreox](https://github.com/leandroreox))
The most important enhancements in this release are: * Support for emeter on strip sockets * Fix discovery and update() on some devices that do not support multi-module queries (e.g., HS200) * Improved support for bulbs [Full Changelog](python-kasa/python-kasa@0.4.0.dev3...0.4.0.dev4) **Implemented enhancements:** - HS300 Children plugs have emeter [\python-kasa#64](python-kasa#64) - Improve emeterstatus API, move into own module [\python-kasa#205](python-kasa#205) ([rytilahti](https://github.com/rytilahti)) - Avoid temp array during encrypt and decrypt [\python-kasa#204](python-kasa#204) ([bdraco](https://github.com/bdraco)) - Add emeter support for strip sockets [\python-kasa#203](python-kasa#203) ([bdraco](https://github.com/bdraco)) - Add own device type for smartstrip children [\python-kasa#201](python-kasa#201) ([rytilahti](https://github.com/rytilahti)) - bulb: allow set\_hsv without v, add fallback ct range [\python-kasa#200](python-kasa#200) ([rytilahti](https://github.com/rytilahti)) - Improve bulb support \(alias, time settings\) [\python-kasa#198](python-kasa#198) ([rytilahti](https://github.com/rytilahti)) - Improve testing harness to allow tests on real devices [\python-kasa#197](python-kasa#197) ([rytilahti](https://github.com/rytilahti)) - cli: add human-friendly printout when calling temperature on non-supported devices [\python-kasa#196](python-kasa#196) ([JaydenRA](https://github.com/JaydenRA)) **Fixed bugs:** - KL430: Throw error for Device specific information [\python-kasa#189](python-kasa#189) - dump\_devinfo: handle latitude/longitude keys properly [\python-kasa#175](python-kasa#175) ([rytilahti](https://github.com/rytilahti)) **Closed issues:** - Feature Request - Toggle Command [\python-kasa#188](python-kasa#188) - Is It Compatible With HS105? [\python-kasa#186](python-kasa#186) - Cannot use some functions with KP303 [\python-kasa#181](python-kasa#181) - Help needed - awaiting game [\python-kasa#179](python-kasa#179) - Version inconsistency between CLI and pip [\python-kasa#177](python-kasa#177) - Release 0.4.0.dev3? [\python-kasa#169](python-kasa#169) - Discover does not support specifying network interface [\python-kasa#167](python-kasa#167) - Can't command or query HS200 v5 switch [\python-kasa#161](python-kasa#161) **Merged pull requests:** - More CI fixes [\python-kasa#208](python-kasa#208) ([rytilahti](https://github.com/rytilahti)) - Fix CI dep installation [\python-kasa#207](python-kasa#207) ([rytilahti](https://github.com/rytilahti)) - Use github actions instead of azure pipelines [\python-kasa#206](python-kasa#206) ([rytilahti](https://github.com/rytilahti)) - Add KP115 fixture [\python-kasa#202](python-kasa#202) ([rytilahti](https://github.com/rytilahti)) - Perform initial update only using the sysinfo query [\python-kasa#199](python-kasa#199) ([rytilahti](https://github.com/rytilahti)) - Add real kasa KL430\(UN\) device dump [\python-kasa#192](python-kasa#192) ([iprodanovbg](https://github.com/iprodanovbg)) - Use less strict matcher for kl430 color temperature [\python-kasa#190](python-kasa#190) ([rytilahti](https://github.com/rytilahti)) - Add EP10\(US\) 1.0 1.0.2 fixture [\python-kasa#174](python-kasa#174) ([nbrew](https://github.com/nbrew)) - Add a note about using the discovery target parameter [\python-kasa#168](python-kasa#168) ([leandroreox](https://github.com/leandroreox))
* Release 0.4.0.dev4 The most important enhancements in this release are: * Support for emeter on strip sockets * Fix discovery and update() on some devices that do not support multi-module queries (e.g., HS200) * Improved support for bulbs [Full Changelog](0.4.0.dev3...0.4.0.dev4) **Implemented enhancements:** - HS300 Children plugs have emeter [\#64](#64) - Improve emeterstatus API, move into own module [\#205](#205) ([rytilahti](https://github.com/rytilahti)) - Avoid temp array during encrypt and decrypt [\#204](#204) ([bdraco](https://github.com/bdraco)) - Add emeter support for strip sockets [\#203](#203) ([bdraco](https://github.com/bdraco)) - Add own device type for smartstrip children [\#201](#201) ([rytilahti](https://github.com/rytilahti)) - bulb: allow set\_hsv without v, add fallback ct range [\#200](#200) ([rytilahti](https://github.com/rytilahti)) - Improve bulb support \(alias, time settings\) [\#198](#198) ([rytilahti](https://github.com/rytilahti)) - Improve testing harness to allow tests on real devices [\#197](#197) ([rytilahti](https://github.com/rytilahti)) - cli: add human-friendly printout when calling temperature on non-supported devices [\#196](#196) ([JaydenRA](https://github.com/JaydenRA)) **Fixed bugs:** - KL430: Throw error for Device specific information [\#189](#189) - dump\_devinfo: handle latitude/longitude keys properly [\#175](#175) ([rytilahti](https://github.com/rytilahti)) **Closed issues:** - Feature Request - Toggle Command [\#188](#188) - Is It Compatible With HS105? [\#186](#186) - Cannot use some functions with KP303 [\#181](#181) - Help needed - awaiting game [\#179](#179) - Version inconsistency between CLI and pip [\#177](#177) - Release 0.4.0.dev3? [\#169](#169) - Discover does not support specifying network interface [\#167](#167) - Can't command or query HS200 v5 switch [\#161](#161) **Merged pull requests:** - More CI fixes [\#208](#208) ([rytilahti](https://github.com/rytilahti)) - Fix CI dep installation [\#207](#207) ([rytilahti](https://github.com/rytilahti)) - Use github actions instead of azure pipelines [\#206](#206) ([rytilahti](https://github.com/rytilahti)) - Add KP115 fixture [\#202](#202) ([rytilahti](https://github.com/rytilahti)) - Perform initial update only using the sysinfo query [\#199](#199) ([rytilahti](https://github.com/rytilahti)) - Add real kasa KL430\(UN\) device dump [\#192](#192) ([iprodanovbg](https://github.com/iprodanovbg)) - Use less strict matcher for kl430 color temperature [\#190](#190) ([rytilahti](https://github.com/rytilahti)) - Add EP10\(US\) 1.0 1.0.2 fixture [\#174](#174) ([nbrew](https://github.com/nbrew)) - Add a note about using the discovery target parameter [\#168](#168) ([leandroreox](https://github.com/leandroreox)) * replace pypy3 with pypy-3.7 as we do not support python3.6 anyway * skip pypy-3.7 on windows to avoid flaky ci
* Release 0.4.0.dev4 The most important enhancements in this release are: * Support for emeter on strip sockets * Fix discovery and update() on some devices that do not support multi-module queries (e.g., HS200) * Improved support for bulbs [Full Changelog](python-kasa/python-kasa@0.4.0.dev3...0.4.0.dev4) **Implemented enhancements:** - HS300 Children plugs have emeter [\python-kasa#64](python-kasa#64) - Improve emeterstatus API, move into own module [\python-kasa#205](python-kasa#205) ([rytilahti](https://github.com/rytilahti)) - Avoid temp array during encrypt and decrypt [\python-kasa#204](python-kasa#204) ([bdraco](https://github.com/bdraco)) - Add emeter support for strip sockets [\python-kasa#203](python-kasa#203) ([bdraco](https://github.com/bdraco)) - Add own device type for smartstrip children [\python-kasa#201](python-kasa#201) ([rytilahti](https://github.com/rytilahti)) - bulb: allow set\_hsv without v, add fallback ct range [\python-kasa#200](python-kasa#200) ([rytilahti](https://github.com/rytilahti)) - Improve bulb support \(alias, time settings\) [\python-kasa#198](python-kasa#198) ([rytilahti](https://github.com/rytilahti)) - Improve testing harness to allow tests on real devices [\python-kasa#197](python-kasa#197) ([rytilahti](https://github.com/rytilahti)) - cli: add human-friendly printout when calling temperature on non-supported devices [\python-kasa#196](python-kasa#196) ([JaydenRA](https://github.com/JaydenRA)) **Fixed bugs:** - KL430: Throw error for Device specific information [\python-kasa#189](python-kasa#189) - dump\_devinfo: handle latitude/longitude keys properly [\python-kasa#175](python-kasa#175) ([rytilahti](https://github.com/rytilahti)) **Closed issues:** - Feature Request - Toggle Command [\python-kasa#188](python-kasa#188) - Is It Compatible With HS105? [\python-kasa#186](python-kasa#186) - Cannot use some functions with KP303 [\python-kasa#181](python-kasa#181) - Help needed - awaiting game [\python-kasa#179](python-kasa#179) - Version inconsistency between CLI and pip [\python-kasa#177](python-kasa#177) - Release 0.4.0.dev3? [\python-kasa#169](python-kasa#169) - Discover does not support specifying network interface [\python-kasa#167](python-kasa#167) - Can't command or query HS200 v5 switch [\python-kasa#161](python-kasa#161) **Merged pull requests:** - More CI fixes [\python-kasa#208](python-kasa#208) ([rytilahti](https://github.com/rytilahti)) - Fix CI dep installation [\python-kasa#207](python-kasa#207) ([rytilahti](https://github.com/rytilahti)) - Use github actions instead of azure pipelines [\python-kasa#206](python-kasa#206) ([rytilahti](https://github.com/rytilahti)) - Add KP115 fixture [\python-kasa#202](python-kasa#202) ([rytilahti](https://github.com/rytilahti)) - Perform initial update only using the sysinfo query [\python-kasa#199](python-kasa#199) ([rytilahti](https://github.com/rytilahti)) - Add real kasa KL430\(UN\) device dump [\python-kasa#192](python-kasa#192) ([iprodanovbg](https://github.com/iprodanovbg)) - Use less strict matcher for kl430 color temperature [\python-kasa#190](python-kasa#190) ([rytilahti](https://github.com/rytilahti)) - Add EP10\(US\) 1.0 1.0.2 fixture [\python-kasa#174](python-kasa#174) ([nbrew](https://github.com/nbrew)) - Add a note about using the discovery target parameter [\python-kasa#168](python-kasa#168) ([leandroreox](https://github.com/leandroreox)) * replace pypy3 with pypy-3.7 as we do not support python3.6 anyway * skip pypy-3.7 on windows to avoid flaky ci
Some devices are known to fail when trying to query non-supported modules like emeter information.
This commit makes the initial update() only request the sysinfo, followed up by a second query
if emeter is supported by the device.
Fixes #161 inspired by #120 which is obsolete by this, thanks to @mfalzone
@brianthedavis @mfalzone @SimonWilkinson - mind giving this a quick test to see if it solves the problem?