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 — Add waterleak alert timestamp by rytilahti · Pull Request #1162 · python-kasa/python-kasa

Conversation

@rytilahti

@rytilahti rytilahti commented Oct 9, 2024

Copy link
Copy Markdown
Member

The T300 reports the timestamp of the last alarm, this exposes it to consumers.

Sorry, something went wrong.

Uh oh!

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

All reactions
@rytilahti
Add waterleak alert timestamp
4514655
@rytilahti rytilahti added the enhancement New feature or request label Oct 9, 2024
rytilahti added 2 commits October 15, 2024 00:10
@rytilahti
return None for last trigger if no data is available
5cca86b
@rytilahti
Reword
8411719
@rytilahti
rytilahti requested a review from sdb9696 October 14, 2024 22:11
@rytilahti
Fix return type
fe77b73
@codecov

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

Project coverage is 92.15%. Comparing base (885a04d) to head (cd2415e).
Report is 225 commits behind head on master.

Files with missing lines Patch % Lines
kasa/smart/modules/waterleaksensor.py 80.00% 1 Missing and 1 partial ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##           master    #1162      +/-   ##
==========================================
- Coverage   92.58%   92.15%   -0.43%     
==========================================
  Files          98       99       +1     
  Lines        6174     6398     +224     
  Branches     1523     1586      +63     
==========================================
+ Hits         5716     5896     +180     
- Misses        357      386      +29     
- Partials      101      116      +15     

☔ 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.

@rytilahti
Add separate test for alert timestamp as py3.9 does not support union…
bb40b7b
… types
@rytilahti rytilahti mentioned this pull request Oct 18, 2024
Add last alert timestamp for tplink waterleak home-assistant/core#128644
Merged
1 of 19 tasks
@rytilahti
Use tuple of types for none-check, thanks to @sdb9696 for the tip
dd8809c
sdb9696
sdb9696 reviewed Oct 18, 2024
View reviewed changes
Comment thread kasa/smart/modules/waterleaksensor.py
Comment on lines +86 to +88
ts = self._device.sys_info["trigger_timestamp"]
tz = self._device.modules[Module.Time].timezone
return datetime.fromtimestamp(ts, tz=tz)

@sdb9696 sdb9696 Oct 18, 2024

Copy link
Copy Markdown
Contributor

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.

Why isn't this getting picked up by tests?

Sorry, something went wrong.

Uh oh!

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

All reactions

@rytilahti rytilahti Oct 18, 2024

Copy link
Copy Markdown
Member Author

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.

There's no fixture with the data available. I'll add one so that the both paths get covered.

Sorry, something went wrong.

Uh oh!

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

All reactions

@rytilahti rytilahti Oct 18, 2024 •
edited
Loading

Uh oh!

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

Copy link
Copy Markdown
Member Author

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.

Added a separate _with_trigger_timestamp.json. Looks like generate_supported.py creates duplicates, causing the CI to fail :-)

Sorry, something went wrong.

Uh oh!

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

All reactions

@sdb9696 sdb9696 Oct 18, 2024

Copy link
Copy Markdown
Contributor

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.

As that's now breaking the generate_supported I'd suggest just adding the timestamp to the main one and not worrying about the None path.

Sorry, something went wrong.

Uh oh!

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

All reactions

@rytilahti rytilahti Oct 18, 2024

Copy link
Copy Markdown
Member Author

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.

Agreed, that's the nicest solution here & the behavior is commented in the code so it's fine.

Sorry, something went wrong.

Uh oh!

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

All reactions
rytilahti added 2 commits October 18, 2024 12:56
@rytilahti
Add T300 fixture with a trigger timestamp
45f9d41
@rytilahti
Keep only one fixture per device fw-sw pair to keep it simple
cd2415e
@sdb9696 sdb9696 added this to the 0.7.6 milestone Oct 18, 2024
sdb9696
sdb9696 approved these changes Oct 18, 2024
View reviewed changes

@sdb9696 sdb9696 left a comment

Copy link
Copy Markdown
Contributor

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.

LGTM!

Sorry, something went wrong.

Uh oh!

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

rytilahti reacted with rocket emoji
All reactions
  • 🚀 1 reaction
@rytilahti
rytilahti merged commit 8a17752 into master Oct 18, 2024
@rytilahti
rytilahti deleted the feat/waterleak_timestamp branch October 18, 2024 11:18
@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
@rytilahti
Add waterleak alert timestamp (python-kasa#1162)
0023ef8
The T300 reports the timestamp of the last alarm, this exposes it to
consumers.
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

@sdb9696 sdb9696 sdb9696 approved these changes

Uh oh!

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

Assignees

No one assigned

Labels

enhancement New feature or request

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

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