Fallback to other module data on get_energy_usage errors#1245
Fallback to other module data on get_energy_usage errors#1245
Conversation
The get_energy_usage query may be failing, but we can fallback to use get_current_power like done in #1186
Codecov ReportAttention: Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## master #1245 +/- ##
==========================================
+ Coverage 92.45% 92.51% +0.06%
==========================================
Files 132 132
Lines 8121 8163 +42
Branches 827 833 +6
==========================================
+ Hits 7508 7552 +44
+ Misses 451 449 -2
Partials 162 162 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
|
I've reverted my commit from this PR although I think we may end up closing this as it turns out to be a time issue. |
|
Yeah, I think the open question is, should we handle errors in multi-queries more gracefully to enable such fallbacks? |
|
So we didn't fail the whole device, just the module. I think this is such an edge case (that was due to the device time issue) that having partially successful modules could be a lot of complication. We could always revisit. |
|
This has been working perfectly for two weeks with P110M. (with incorrect time) |
|
Thanks for testing @a81j, I'll do a quick review and I think this is ready to go then! |
## [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)
…#1245) - The `get_energy_usage` query can fail if the device time is not set because the response includes the device time. - Make `get_energy_usage` an optional query response so the energy module can fall back to getting the power from `get_emeter_data` or `get_current_power` on error. - Devices on `energy_monitoring` version 1 still fail as they have no additional queries to fall back to.
## [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)
…#1245) - The `get_energy_usage` query can fail if the device time is not set because the response includes the device time. - Make `get_energy_usage` an optional query response so the energy module can fall back to getting the power from `get_emeter_data` or `get_current_power` on error. - Devices on `energy_monitoring` version 1 still fail as they have no additional queries to fall back to.
## [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)
…#1245) - The `get_energy_usage` query can fail if the device time is not set because the response includes the device time. - Make `get_energy_usage` an optional query response so the energy module can fall back to getting the power from `get_emeter_data` or `get_current_power` on error. - Devices on `energy_monitoring` version 1 still fail as they have no additional queries to fall back to.
## [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)
The
get_energy_usagequery can fail if the device time is not set because the response includes the device time. This PR makesget_energy_usagean optional query response, so that if it errors, the energy module can fall back to getting the power fromget_emeter_dataorget_current_power.Devices on
energy_monitoringversion 1 will still fail as they have no additional queries to fall back to.N.B. #1186 enabled falling back to
get_current_powerifget_energy_usagedid not include thecurrent_powerattribute. This handles the error scenario.Fixes #1243