FazBrowse GitHub Viewer | Trending |
URL:
| Home
Tools: [Download Repo ZIP]   [Original HTTPS Page]

Update smart request parameter handling by sdb9696 · Pull Request #1061 · python-kasa/python-kasa · GitHub

Repository navigation

Update smart request parameter handling - #1061

Merged
sdb9696 merged 3 commits into
masterfrom
fix/smart_requests
Jul 23, 2024
Merged

sdb9696 merged 3 commits into
masterfrom
fix/smart_requests

Conversation

sdb9696 commented Jul 12, 2024

Copy link
Copy Markdown
Contributor

Update smart request parameters based on TAPO app requests. Highlights are:

  • App does not send params if null. This should stop the issues we've been getting with devices complaining about parameters randomly.
  • get_preset_rules doesn't send parameters for preset component version less than 3 (confirmed version 3 in the de-compiled app)
  • get_led_info no longer sends the wrong parameters
  • get_on_off_gradually_info no longer sends an empty {} parameter
  • The PR also drops the requestId parameter which the app doesn't send and afaict was added to the py100 library for no reason.
  • Note that the app only queries get_device_info once and then queries get_device_running_info. We should consider this as I noted when investigating various JSON_ENCODE_FAIL_ERROR issues that get_device_running_info continued to work when get_device_info entered a terminal failure state.
  • The app never calls get_device_time in the normal course of events. I suspect that for devices not supporting device_local_time component this results in an external call.
  • The app calls get_latest_fw pretty regularly which could be because I was going into the Device Info page a lot.
  • The app never uses the multiRequest query 😬 (maybe only for children)

Some pcap captures attached, made possible from the great work by @clstrickland in #1041

TAPO L900.json
TAPO P100.json
TAPO L530E.json

codecov Bot commented Jul 12, 2024 •
edited
Loading

Copy link
Copy Markdown

Codecov Report

All modified and coverable lines are covered by tests ✅

Project coverage is 92.33%. Comparing base (06ff598) to head (a3a6a6a).
Report is 80 commits behind head on master.

Additional details and impacted files
@@            Coverage Diff             @@
##           master    #1061      +/-   ##
==========================================
+ Coverage   92.17%   92.33%   +0.16%     
==========================================
  Files          85       85              
  Lines        5928     5896      -32     
  Branches     1440     1436       -4     
==========================================
- Hits         5464     5444      -20     
+ Misses        358      350       -8     
+ Partials      106      102       -4     

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

Comment thread kasa/smartprotocol.py

rytilahti left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Choose a reason Spam Abuse Off Topic Outdated Duplicate Resolved Low Quality

LGTM, cannot test it mysef right now, but it all reads reasonable 👍

sdb9696 merged commit 58afeb2 into master Jul 23, 2024
sdb9696 deleted the fix/smart_requests branch July 23, 2024 18:02
rytilahti added the bug Something isn't working label Jul 23, 2024
sdb9696 added this to the 0.7.1 milestone Jul 24, 2024
sdb9696 mentioned this pull request Jul 31, 2024
sdb9696 added a commit that referenced this pull request Jul 31, 2024
## [0.7.1](https://github.com/python-kasa/python-kasa/tree/0.7.1) (2024-07-31)

[Full Changelog](0.7.0.5...0.7.1)

**Release highlights:**
- This release consists mainly of bugfixes and project improvements.
- There is also new support for Tapo T100 motion sensors.
- The CLI now supports child devices on all applicable commands.

**Implemented enhancements:**

- Expose reboot action [\#1073](#1073) (@rytilahti)
- Decrypt KLAP data from PCAP files [\#1041](#1041) (@clstrickland)
- Support child devices in all applicable cli commands [\#1020](#1020) (@sdb9696)

**Fixed bugs:**

- Fix iot light effect brightness [\#1092](#1092) (@sdb9696)
- Enable setting brightness with color temp for smart devices [\#1091](#1091) (@sdb9696)
- Do not send light\_on value to iot bulb set\_state [\#1090](#1090) (@sdb9696)
- Allow erroring modules to recover [\#1080](#1080) (@sdb9696)
- Raise KasaException on decryption errors [\#1078](#1078) (@sdb9696)
- Update smart request parameter handling [\#1061](#1061) (@sdb9696)
- Fix light preset module when list contains lighting effects [\#1048](#1048) (@sdb9696)
- Handle module errors more robustly and add query params to light preset and transition [\#1036](#1036) (@sdb9696)
- Fix credential hash to return None on empty credentials [\#1029](#1029) (@sdb9696)

**Added support for devices:**

- Add support for T100 motion sensor [\#1079](#1079) (@rytilahti)

**Project maintenance:**

- Bump project version to 0.7.0.5 [\#1087](#1087) (@sdb9696)
- Fix generate\_supported pre commit to run in venv [\#1085](#1085) (@sdb9696)
- Fix intermittently failing decryption error test [\#1082](#1082) (@sdb9696)
- Fix mypy pre-commit hook on windows [\#1081](#1081) (@sdb9696)
- Update RELEASING.md for patch releases [\#1076](#1076) (@sdb9696)
- Use monotonic time for query timing [\#1070](#1070) (@sdb9696)
- Fix parse\_pcap\_klap on windows and support default credentials [\#1068](#1068) (@sdb9696)
- Add fixture file for KP405 fw 1.0.6 [\#1063](#1063) (@daleye)
- Bump project version to 0.7.0.3 [\#1053](#1053) (@sdb9696)
- Add KP400\(US\) v1.0.4 fixture [\#1051](#1051) (@gimpy88)
- Add new HS220 kasa aes fixture [\#1050](#1050) (@sdb9696)
- Add KS205\(US\) v1.1.0 fixture [\#1049](#1049) (@gimpy88)
- Add KS200M\(US\) v1.0.11 fixture [\#1047](#1047) (@sdb9696)
- Add KS225\(US\) v1.1.0 fixture [\#1046](#1046) (@sdb9696)
- Split out main cli module into lazily loaded submodules [\#1039](#1039) (@sdb9696)
- Structure cli into a package [\#1038](#1038) (@sdb9696)
- Add KP400 v1.0.3 fixture [\#1037](#1037) (@gimpy88)
- Add L920\(EU\) v1.1.3 fixture [\#1031](#1031) (@rytilahti)
- Update changelog generator config [\#1030](#1030) (@sdb9696)
pillarsdotnet pushed a commit to pillarsdotnet/python-kasa that referenced this pull request Oct 22, 2026
Changes to the smart request handling:
- Do not send params if null
- Drop the requestId parameter
- get_preset_rules doesn't send parameters for preset component version less than 3
- get_led_info no longer sends the wrong parameters
- get_on_off_gradually_info no longer sends an empty {} parameter
pillarsdotnet pushed a commit to pillarsdotnet/python-kasa that referenced this pull request Oct 22, 2026
## [0.7.1](https://github.com/python-kasa/python-kasa/tree/0.7.1) (2024-07-31)

[Full Changelog](python-kasa/python-kasa@0.7.0.5...0.7.1)

**Release highlights:**
- This release consists mainly of bugfixes and project improvements.
- There is also new support for Tapo T100 motion sensors.
- The CLI now supports child devices on all applicable commands.

**Implemented enhancements:**

- Expose reboot action [\python-kasa#1073](python-kasa#1073) (@rytilahti)
- Decrypt KLAP data from PCAP files [\python-kasa#1041](python-kasa#1041) (@clstrickland)
- Support child devices in all applicable cli commands [\python-kasa#1020](python-kasa#1020) (@sdb9696)

**Fixed bugs:**

- Fix iot light effect brightness [\python-kasa#1092](python-kasa#1092) (@sdb9696)
- Enable setting brightness with color temp for smart devices [\python-kasa#1091](python-kasa#1091) (@sdb9696)
- Do not send light\_on value to iot bulb set\_state [\python-kasa#1090](python-kasa#1090) (@sdb9696)
- Allow erroring modules to recover [\python-kasa#1080](python-kasa#1080) (@sdb9696)
- Raise KasaException on decryption errors [\python-kasa#1078](python-kasa#1078) (@sdb9696)
- Update smart request parameter handling [\python-kasa#1061](python-kasa#1061) (@sdb9696)
- Fix light preset module when list contains lighting effects [\python-kasa#1048](python-kasa#1048) (@sdb9696)
- Handle module errors more robustly and add query params to light preset and transition [\python-kasa#1036](python-kasa#1036) (@sdb9696)
- Fix credential hash to return None on empty credentials [\python-kasa#1029](python-kasa#1029) (@sdb9696)

**Added support for devices:**

- Add support for T100 motion sensor [\python-kasa#1079](python-kasa#1079) (@rytilahti)

**Project maintenance:**

- Bump project version to 0.7.0.5 [\python-kasa#1087](python-kasa#1087) (@sdb9696)
- Fix generate\_supported pre commit to run in venv [\python-kasa#1085](python-kasa#1085) (@sdb9696)
- Fix intermittently failing decryption error test [\python-kasa#1082](python-kasa#1082) (@sdb9696)
- Fix mypy pre-commit hook on windows [\python-kasa#1081](python-kasa#1081) (@sdb9696)
- Update RELEASING.md for patch releases [\python-kasa#1076](python-kasa#1076) (@sdb9696)
- Use monotonic time for query timing [\python-kasa#1070](python-kasa#1070) (@sdb9696)
- Fix parse\_pcap\_klap on windows and support default credentials [\python-kasa#1068](python-kasa#1068) (@sdb9696)
- Add fixture file for KP405 fw 1.0.6 [\python-kasa#1063](python-kasa#1063) (@daleye)
- Bump project version to 0.7.0.3 [\python-kasa#1053](python-kasa#1053) (@sdb9696)
- Add KP400\(US\) v1.0.4 fixture [\python-kasa#1051](python-kasa#1051) (@gimpy88)
- Add new HS220 kasa aes fixture [\python-kasa#1050](python-kasa#1050) (@sdb9696)
- Add KS205\(US\) v1.1.0 fixture [\python-kasa#1049](python-kasa#1049) (@gimpy88)
- Add KS200M\(US\) v1.0.11 fixture [\python-kasa#1047](python-kasa#1047) (@sdb9696)
- Add KS225\(US\) v1.1.0 fixture [\python-kasa#1046](python-kasa#1046) (@sdb9696)
- Split out main cli module into lazily loaded submodules [\python-kasa#1039](python-kasa#1039) (@sdb9696)
- Structure cli into a package [\python-kasa#1038](python-kasa#1038) (@sdb9696)
- Add KP400 v1.0.3 fixture [\python-kasa#1037](python-kasa#1037) (@gimpy88)
- Add L920\(EU\) v1.1.3 fixture [\python-kasa#1031](python-kasa#1031) (@rytilahti)
- Update changelog generator config [\python-kasa#1030](python-kasa#1030) (@sdb9696)
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode characters
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bug Something isn't working

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants


Back | FazBrowse Home | New Git URL