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 — Fallback to other module data on get_energy_usage errors by rytilahti · Pull Request #1245 · python-kasa/python-kasa

Conversation

@rytilahti

@rytilahti rytilahti commented Nov 11, 2024 •
edited by sdb9696
Loading

Uh oh!

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

Copy link
Copy Markdown
Member

The get_energy_usage query can fail if the device time is not set because the response includes the device time. This PR makes get_energy_usage an optional query response, so that if it errors, the energy module can fall back to getting the power from get_emeter_data or get_current_power.

Devices on energy_monitoring version 1 will still fail as they have no additional queries to fall back to.

N.B. #1186 enabled falling back to get_current_power if get_energy_usage did not include the current_power attribute. This handles the error scenario.

Fixes #1243

Sorry, something went wrong.

Uh oh!

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

All reactions
@rytilahti
Fallback to full module data on get_energy_usage errors
7e72bd9
The get_energy_usage query may be failing, but we can fallback to use get_current_power like done in #1186
@rytilahti rytilahti added the bug Something isn't working label Nov 11, 2024
@rytilahti rytilahti mentioned this pull request Nov 11, 2024
Tapo P110M: Error processing Energy for device, module will be unavailable: get_energy_usage for Energy #1243
Closed
@codecov

codecov Bot commented Nov 11, 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 95.45455% with 2 lines in your changes missing coverage. Please review.

Project coverage is 92.51%. Comparing base (d890b0a) to head (da73293).
Report is 92 commits behind head on master.

Files with missing lines Patch % Lines
kasa/smart/modules/energy.py 93.33% 1 Missing and 1 partial ⚠️
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.
📢 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 added 3 commits November 15, 2024 08:02
@sdb9696
Use empty dict instead of none for energy parameters
af8e648
@sdb9696
Revert "Use empty dict instead of none for energy parameters"
a78186e
This reverts commit af8e648.
@sdb9696
Merge remote-tracking branch 'upstream/master' into fix/p110m_emeter
750cebb
@sdb9696

sdb9696 commented Nov 21, 2024

Copy link
Copy Markdown
Contributor

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.

All reactions

Sorry, something went wrong.

Uh oh!

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

@rytilahti

rytilahti commented Nov 21, 2024

Copy link
Copy Markdown
Member Author

Yeah, I think the open question is, should we handle errors in multi-queries more gracefully to enable such fallbacks?

All reactions

Sorry, something went wrong.

Uh oh!

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

@sdb9696

sdb9696 commented Nov 21, 2024

Copy link
Copy Markdown
Contributor

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.

All reactions

Sorry, something went wrong.

Uh oh!

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

sdb9696 added 5 commits November 28, 2024 17:23
@sdb9696
Merge branch 'master' into fix/p110m_emeter
7fe5759
@sdb9696
Add optional query keys
4d74411
@sdb9696
Add tests
bec39f0
@sdb9696
Return None for consumption on get_energy_usage errors
abf4f7d
@sdb9696
Fix tests
7706516
@sdb9696
sdb9696 marked this pull request as ready for review November 29, 2024 16:00
@a81j

a81j commented Dec 12, 2024

Copy link
Copy Markdown

This has been working perfectly for two weeks with P110M. (with incorrect time)

All reactions

Sorry, something went wrong.

Uh oh!

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

@sdb9696 sdb9696 added this to the 0.9.0 milestone Dec 12, 2024
@rytilahti

rytilahti commented Dec 13, 2024

Copy link
Copy Markdown
Member Author

Thanks for testing @a81j, I'll do a quick review and I think this is ready to go then!

All reactions

Sorry, something went wrong.

Uh oh!

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

rytilahti
rytilahti commented Dec 13, 2024
View reviewed changes
Comment thread kasa/smart/modules/energy.py Resolved

Uh oh!

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

Comment thread kasa/smart/smartmodule.py Resolved

Uh oh!

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

sdb9696 added 3 commits December 20, 2024 05:44
@sdb9696
Merge branch 'master' into fix/p110m_emeter
198f056
@sdb9696
Add test for fallback to get_current_power
d8ed572
@sdb9696
Log message when removing errored query key
da73293
@sdb9696 sdb9696 changed the title Fallback to full module data on get_energy_usage errors Fallback to other module data get_energy_usage errors Dec 20, 2024
@sdb9696 sdb9696 changed the title Fallback to other module data get_energy_usage errors Fallback to other module data on get_energy_usage errors Dec 20, 2024
@sdb9696
sdb9696 merged commit fe88b52 into master Dec 20, 2024
@sdb9696
sdb9696 deleted the fix/p110m_emeter branch December 20, 2024 08:53
@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 added a commit to rytilahti/python-kasa that referenced this pull request Aug 31, 2025
@rytilahti
Fallback to other module data on get_energy_usage errors (python-kasa…
1c851ca
…#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.
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 added a commit to rytilahti/python-kasa that referenced this pull request Oct 26, 2025
@rytilahti
Fallback to other module data on get_energy_usage errors (python-kasa…
7d51221
…#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.
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 added a commit to rytilahti/python-kasa that referenced this pull request Nov 10, 2025
@rytilahti
Fallback to other module data on get_energy_usage errors (python-kasa…
839bc5b
…#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.
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 added a commit to rytilahti/python-kasa that referenced this pull request Jul 5, 2026
@rytilahti
Fallback to other module data on get_energy_usage errors (python-kasa…
96bfaa0
…#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.
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)
@mannymuster mannymuster mentioned this pull request Sep 12, 2026
P410M: Error processing Energy for device, module will be disabled - no digit after minus sign JSON decode error on get_emeter_data #1758
Open
pillarsdotnet pushed a commit to pillarsdotnet/python-kasa that referenced this pull request Oct 22, 2026
@rytilahti
Fallback to other module data on get_energy_usage errors (python-kasa…
dbb055f
…#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.
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

@sdb9696 sdb9696 sdb9696 left review comments

Uh oh!

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

Assignees

No one assigned

Labels

bug Something isn't working

Projects

None yet

Milestone

0.9.0

Development

Successfully merging this pull request may close these issues.

Tapo P110M: Error processing Energy for device, module will be unavailable: get_energy_usage for Energy

Uh oh!

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

3 participants

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