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 — Update smartcamera to support single get/set/do requests by sdb9696 · Pull Request #1187 · python-kasa/python-kasa

Conversation

@sdb9696

@sdb9696 sdb9696 commented Oct 23, 2024 •
edited
Loading

Uh oh!

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

Copy link
Copy Markdown
Contributor

I've now figured out why I was getting less responses in dump_devinfo for some single requests and reverted back to being able to send single requests. This is quite important as it seems certain requests do not work as multiple requests.

This now means we have a query response for function:module_spec which could perhaps be used for determining device capabilities.

The single requests do not appear to work on the H200 hubs so this PR now enables single requests only for get, set, do methods (as opposed to sending getSomeMethod as single.

Sorry, something went wrong.

Uh oh!

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

All reactions
sdb9696 added 2 commits October 23, 2024 12:12
@sdb9696
Enable plain get requests
e9f9eb9
@sdb9696
Update dump_devinfo to handle single smartcamera requests
2e2c134
@codecov

codecov Bot commented Oct 23, 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.37%. Comparing base (c839aaa) to head (4921b5c).
Report is 213 commits behind head on master.

Additional details and impacted files
@@           Coverage Diff           @@
##           master    #1187   +/-   ##
=======================================
  Coverage   92.37%   92.37%           
=======================================
  Files          99       99           
  Lines        6514     6514           
  Branches     1611     1611           
=======================================
  Hits         6017     6017           
  Misses        378      378           
  Partials      119      119           

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

All reactions

Sorry, something went wrong.

Uh oh!

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

@sdb9696 sdb9696 changed the title "Update smartcamera to support non multiple requests" Update smartcamera to support non multiple requests Oct 23, 2024
@sdb9696 sdb9696 added the maintenance Project improvements and maintenance label Oct 23, 2024
@sdb9696 sdb9696 added this to the 0.7.6 milestone Oct 23, 2024
@sdb9696
sdb9696 requested a review from rytilahti October 23, 2024 15:04
rytilahti
rytilahti reviewed Oct 23, 2024
View reviewed changes
Comment thread devtools/dump_devinfo.py Resolved

Uh oh!

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

Comment thread kasa/experimental/smartcameraprotocol.py Resolved

Uh oh!

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

Comment thread kasa/smartprotocol.py Resolved

Uh oh!

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

@sdb9696
Update post review
72618bf
@sdb9696
sdb9696 requested a review from rytilahti October 23, 2024 17:08
@sdb9696
Merge remote-tracking branch 'upstream/master' into janitor/smartcame…
482ebcc
…ra_single
rytilahti
rytilahti approved these changes Oct 23, 2024
View reviewed changes

@rytilahti rytilahti left a comment •
edited
Loading

Uh oh!

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

Copy link
Copy Markdown
Member

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.

Looks good on the first glance, I'd probably separate adding new fixture files to keep the git log clean, but feel free to merge as you wish.

Sorry, something went wrong.

Uh oh!

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

All reactions
Comment thread devtools/dump_devinfo.py Resolved

Uh oh!

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

Comment thread devtools/dump_devinfo.py Resolved

Uh oh!

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

Comment thread kasa/experimental/smartcameraprotocol.py Resolved

Uh oh!

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

Comment thread kasa/experimental/smartcameraprotocol.py Resolved

Uh oh!

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

sdb9696 added 16 commits October 24, 2024 08:13
@sdb9696
Merge remote-tracking branch 'upstream/master' into janitor/smartcame…
539b727
…ra_single
@sdb9696
Add dataclass for single request
f5f7723
@sdb9696
Add snake name function
f255cdc
@sdb9696
Disable single calls for hubs
4312dfc
@sdb9696
Fix disable single calls for hubs
d91aab0
@sdb9696
Merge remote-tracking branch 'upstream/master' into janitor/smartcame…
6d5ee55
…ra_single
@sdb9696
Remove single test calls for hubs
ee47180
@sdb9696
Replace raise error on single multiple
d3884be
@sdb9696
Fix broken child request
74522d0
@sdb9696
Fix force multi
27847c5
@sdb9696
Disable single requests
ade8e38
@sdb9696
Keep single for multipleRequest
8e5aae1
@sdb9696
Only send multiRequest, get, set and do as single
48dc81f
@sdb9696
Add comment to raise on error
d82f79b
@sdb9696
Add clock status and timezone queries
bdffd74
@sdb9696
Fix test
4921b5c
@sdb9696 sdb9696 changed the title Update smartcamera to support non multiple requests Update smartcamera to support single get/set/do requests Oct 24, 2024
@sdb9696
sdb9696 merged commit 8ee8c17 into master Oct 24, 2024
@sdb9696
sdb9696 deleted the janitor/smartcamera_single branch October 24, 2024 12:11
@sdb9696 sdb9696 mentioned this pull request Oct 29, 2024
Prepare 0.7.6 #1213
Merged
sdb9696 added a commit that referenced this pull request Oct 29, 2024
@sdb9696
Prepare 0.7.6 (#1213)
530cf4b
## [0.7.6](https://github.com/python-kasa/python-kasa/tree/0.7.6) (2024-10-29)

[Full Changelog](0.7.5...0.7.6)

**Release summary:**

- Experimental support for Tapo cameras and the Tapo H200 hub which uses the same protocol.
- Better timestamp support across all devices.
- Support for new devices P304M, S200D and S200B (see README.md for note on the S200 support).
- Various other fixes and minor features.

**Implemented enhancements:**

- Add support for setting the timezone [\#436](#436)
- Add stream\_rtsp\_url to camera module [\#1197](#1197) (@sdb9696)
- Try default logon credentials in SslAesTransport [\#1195](#1195) (@sdb9696)
- Allow enabling experimental devices from environment variable [\#1194](#1194) (@sdb9696)
- Add core device, child and camera modules to smartcamera [\#1193](#1193) (@sdb9696)
- Fallback to get\_current\_power if get\_energy\_usage does not provide current\_power [\#1186](#1186) (@Fulch36)
- Add https parameter to device class factory [\#1184](#1184) (@sdb9696)
- Add discovery list command to cli [\#1183](#1183) (@sdb9696)
- Add Time module to SmartCamera devices [\#1182](#1182) (@sdb9696)
- Add try\_connect\_all to allow initialisation without udp broadcast [\#1171](#1171) (@sdb9696)
- Update dump\_devinfo for smart camera protocol [\#1169](#1169) (@sdb9696)
- Enable newer encrypted discovery protocol [\#1168](#1168) (@sdb9696)
- Initial TapoCamera support [\#1165](#1165) (@sdb9696)
- Add waterleak alert timestamp [\#1162](#1162) (@rytilahti)
- Create common Time module and add time set cli command [\#1157](#1157) (@sdb9696)

**Fixed bugs:**

- Only send 20002 discovery request with key included [\#1207](#1207) (@sdb9696)
- Fix SslAesTransport default login and add tests [\#1202](#1202) (@sdb9696)
- Fix device\_config serialisation of https value [\#1196](#1196) (@sdb9696)

**Added support for devices:**

- Add S200B\(EU\) fw 1.11.0 fixture [\#1205](#1205) (@sdb9696)
- Add TC65 fixture [\#1200](#1200) (@rytilahti)
- Add P304M\(UK\) test fixture [\#1185](#1185) (@Fulch36)
- Add H200 experimental fixture [\#1180](#1180) (@sdb9696)
- Add S200D button fixtures [\#1161](#1161) (@rytilahti)

**Project maintenance:**

- Fix mypy errors in parse_pcap_klap [\#1214](#1214) (@sdb9696)
- Make HSV NamedTuple creation more efficient [\#1211](#1211) (@sdb9696)
- dump\_devinfo: query get\_current\_brt for iot dimmers [\#1209](#1209) (@rytilahti)
- Add trigger\_logs and double\_click to dump\_devinfo helper [\#1208](#1208) (@sdb9696)
- Fix smartcamera childdevice module [\#1206](#1206) (@sdb9696)
- Add H200\(EU\) fw 1.3.2 fixture [\#1204](#1204) (@sdb9696)
- Do not pass None as timeout to http requests [\#1203](#1203) (@sdb9696)
- Update SMART test framework to use fake child protocols [\#1199](#1199) (@sdb9696)
- Allow passing an aiohttp client session during discover try\_connect\_all [\#1198](#1198) (@sdb9696)
- Add test framework for smartcamera [\#1192](#1192) (@sdb9696)
- Rename experimental fixtures folder to smartcamera [\#1191](#1191) (@sdb9696)
- Combine smartcamera error codes into SmartErrorCode [\#1190](#1190) (@sdb9696)
- Allow deriving from SmartModule without being registered [\#1189](#1189) (@sdb9696)
- Improve supported module checks for hub children [\#1188](#1188) (@sdb9696)
- Update smartcamera to support single get/set/do requests [\#1187](#1187) (@sdb9696)
- Add S200B\(US\) fw 1.12.0 fixture [\#1181](#1181) (@sdb9696)
- Add T110\(US\), T310\(US\) and T315\(US\) sensor fixtures [\#1179](#1179) (@sdb9696)
- Enforce EOLs for \*.rst and \*.md [\#1178](#1178) (@rytilahti)
- Convert fixtures to use unix newlines [\#1177](#1177) (@rytilahti)
- Add motion sensor to known categories [\#1176](#1176) (@rytilahti)
- Drop urllib3 dependency and create ssl context in executor thread [\#1175](#1175) (@sdb9696)
- Expose smart child device map as a class constant [\#1173](#1173) (@sdb9696)
pillarsdotnet pushed a commit to pillarsdotnet/python-kasa that referenced this pull request Oct 22, 2026
@sdb9696
Update smartcamera to support single get/set/do requests (python-kasa…
79a82cd
…#1187)

Not supported by H200 hub
pillarsdotnet pushed a commit to pillarsdotnet/python-kasa that referenced this pull request Oct 22, 2026
@sdb9696
Prepare 0.7.6 (python-kasa#1213)
59b2aa4
## [0.7.6](https://github.com/python-kasa/python-kasa/tree/0.7.6) (2024-10-29)

[Full Changelog](python-kasa/python-kasa@0.7.5...0.7.6)

**Release summary:**

- Experimental support for Tapo cameras and the Tapo H200 hub which uses the same protocol.
- Better timestamp support across all devices.
- Support for new devices P304M, S200D and S200B (see README.md for note on the S200 support).
- Various other fixes and minor features.

**Implemented enhancements:**

- Add support for setting the timezone [\python-kasa#436](python-kasa#436)
- Add stream\_rtsp\_url to camera module [\python-kasa#1197](python-kasa#1197) (@sdb9696)
- Try default logon credentials in SslAesTransport [\python-kasa#1195](python-kasa#1195) (@sdb9696)
- Allow enabling experimental devices from environment variable [\python-kasa#1194](python-kasa#1194) (@sdb9696)
- Add core device, child and camera modules to smartcamera [\python-kasa#1193](python-kasa#1193) (@sdb9696)
- Fallback to get\_current\_power if get\_energy\_usage does not provide current\_power [\python-kasa#1186](python-kasa#1186) (@Fulch36)
- Add https parameter to device class factory [\python-kasa#1184](python-kasa#1184) (@sdb9696)
- Add discovery list command to cli [\python-kasa#1183](python-kasa#1183) (@sdb9696)
- Add Time module to SmartCamera devices [\python-kasa#1182](python-kasa#1182) (@sdb9696)
- Add try\_connect\_all to allow initialisation without udp broadcast [\python-kasa#1171](python-kasa#1171) (@sdb9696)
- Update dump\_devinfo for smart camera protocol [\python-kasa#1169](python-kasa#1169) (@sdb9696)
- Enable newer encrypted discovery protocol [\python-kasa#1168](python-kasa#1168) (@sdb9696)
- Initial TapoCamera support [\python-kasa#1165](python-kasa#1165) (@sdb9696)
- Add waterleak alert timestamp [\python-kasa#1162](python-kasa#1162) (@rytilahti)
- Create common Time module and add time set cli command [\python-kasa#1157](python-kasa#1157) (@sdb9696)

**Fixed bugs:**

- Only send 20002 discovery request with key included [\python-kasa#1207](python-kasa#1207) (@sdb9696)
- Fix SslAesTransport default login and add tests [\python-kasa#1202](python-kasa#1202) (@sdb9696)
- Fix device\_config serialisation of https value [\python-kasa#1196](python-kasa#1196) (@sdb9696)

**Added support for devices:**

- Add S200B\(EU\) fw 1.11.0 fixture [\python-kasa#1205](python-kasa#1205) (@sdb9696)
- Add TC65 fixture [\python-kasa#1200](python-kasa#1200) (@rytilahti)
- Add P304M\(UK\) test fixture [\python-kasa#1185](python-kasa#1185) (@Fulch36)
- Add H200 experimental fixture [\python-kasa#1180](python-kasa#1180) (@sdb9696)
- Add S200D button fixtures [\python-kasa#1161](python-kasa#1161) (@rytilahti)

**Project maintenance:**

- Fix mypy errors in parse_pcap_klap [\python-kasa#1214](python-kasa#1214) (@sdb9696)
- Make HSV NamedTuple creation more efficient [\python-kasa#1211](python-kasa#1211) (@sdb9696)
- dump\_devinfo: query get\_current\_brt for iot dimmers [\python-kasa#1209](python-kasa#1209) (@rytilahti)
- Add trigger\_logs and double\_click to dump\_devinfo helper [\python-kasa#1208](python-kasa#1208) (@sdb9696)
- Fix smartcamera childdevice module [\python-kasa#1206](python-kasa#1206) (@sdb9696)
- Add H200\(EU\) fw 1.3.2 fixture [\python-kasa#1204](python-kasa#1204) (@sdb9696)
- Do not pass None as timeout to http requests [\python-kasa#1203](python-kasa#1203) (@sdb9696)
- Update SMART test framework to use fake child protocols [\python-kasa#1199](python-kasa#1199) (@sdb9696)
- Allow passing an aiohttp client session during discover try\_connect\_all [\python-kasa#1198](python-kasa#1198) (@sdb9696)
- Add test framework for smartcamera [\python-kasa#1192](python-kasa#1192) (@sdb9696)
- Rename experimental fixtures folder to smartcamera [\python-kasa#1191](python-kasa#1191) (@sdb9696)
- Combine smartcamera error codes into SmartErrorCode [\python-kasa#1190](python-kasa#1190) (@sdb9696)
- Allow deriving from SmartModule without being registered [\python-kasa#1189](python-kasa#1189) (@sdb9696)
- Improve supported module checks for hub children [\python-kasa#1188](python-kasa#1188) (@sdb9696)
- Update smartcamera to support single get/set/do requests [\python-kasa#1187](python-kasa#1187) (@sdb9696)
- Add S200B\(US\) fw 1.12.0 fixture [\python-kasa#1181](python-kasa#1181) (@sdb9696)
- Add T110\(US\), T310\(US\) and T315\(US\) sensor fixtures [\python-kasa#1179](python-kasa#1179) (@sdb9696)
- Enforce EOLs for \*.rst and \*.md [\python-kasa#1178](python-kasa#1178) (@rytilahti)
- Convert fixtures to use unix newlines [\python-kasa#1177](python-kasa#1177) (@rytilahti)
- Add motion sensor to known categories [\python-kasa#1176](python-kasa#1176) (@rytilahti)
- Drop urllib3 dependency and create ssl context in executor thread [\python-kasa#1175](python-kasa#1175) (@sdb9696)
- Expose smart child device map as a class constant [\python-kasa#1173](python-kasa#1173) (@sdb9696)
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

0.7.6

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.