Commit Graph

628 Commits

Author SHA1 Message Date
Steven B
2df668ee28
Tweak log messages and method names 2024-12-13 16:35:01 +00:00
Steven B
841cb3aed4
Cleanup experimental code 2024-12-13 16:29:07 +00:00
Steven B
6d753efb8f
Random user-agent 2024-12-13 15:42:37 +00:00
Steven B
4e9b0ee0eb
Fix val is None 2024-12-13 15:19:20 +00:00
Steven B
aba71744ca
Fix local_nonce None 2024-12-13 15:16:59 +00:00
Steven B
6bfb19a748
Try different referer 2024-12-13 15:14:51 +00:00
Steven B
25106c1b4a
experiment- unique referrer url 2024-12-13 14:40:42 +00:00
Steven B
5782ce1029
Handle no method in multiple response for single request 2024-12-13 14:39:55 +00:00
Steven B.
9f10cd10cb
Merge branch 'master' into feat/smartcam_passthrough 2024-12-11 14:48:04 +00:00
Steven B.
f8a46f74cd
Pass raw components to SmartChildDevice init ()
Clean up and consolidate the processing of raw component query responses and simplify the code paths for creating smartcam child devices when supported.
2024-12-11 14:38:38 +00:00
Steven B.
8cb5c2e180
Update dump_devinfo for raw discovery json and common redactors ()
This PR does a few related things to dump_devinfo:

- Store the raw discovery result in the fixture.
- Consolidate redaction logic so it's not duplicated in dump_devinfo.
- Update existing fixtures to:
  - Store raw discovery result under `result`
  - Use `SCRUBBED_CHILD_DEVICE_ID` everywhere
  - Have correct values as per the consolidated redactors.
2024-12-11 14:18:44 +01:00
Steven B
22e4f48efa
Handle blocked session and try less secure login for default 2024-12-11 08:56:32 +00:00
Teemu R.
032cd5d2cc
Improve overheat reporting ()
Different devices and different firmwares report overheated status in
different ways.
Some devices indicate support for `overheat_protect` component, but
there are devices that report `overheat_status` even when it is not
listed.
Some other devices use `overheated` boolean that was already previously
supported, but this PR adds support for much more devices that use
`overheat_status` for reporting.

The "overheated" feature is moved into its own module, and uses either
of the ways to report this information.
This will also rename `REQUIRED_KEY_ON_PARENT` to `SYSINFO_LOOKUP_KEYS`
and change its logic to check if any of the keys in the list are found
in the sysinfo.

```
tpr@lumipyry ~/c/p/tests (fix/overheated)> ag 'overheat_protect' -c|wc -l
15
tpr@lumipyry ~/c/p/tests (fix/overheated)> ag 'overheated' -c|wc -l
38
tpr@lumipyry ~/c/p/tests (fix/overheated)> ag 'overheat_status' -c|wc -l
20
```

---------

Co-authored-by: Steven B. <51370195+sdb9696@users.noreply.github.com>
2024-12-11 01:01:36 +01:00
Steven B.
bf8f0adabe
Return raw discovery result in cli discover raw ()
Add `on_discovered_raw` callback to Discover and adds a cli command `discover raw` which returns the raw json before serializing to a `DiscoveryResult` and attempting to create a device class.
2024-12-10 22:42:14 +00:00
Steven B
36a9823b63
Try variations of hashing and passwords 2024-12-10 17:56:20 +00:00
Steven B
4a5bc20ee2
Update SslAesTransport for legacy firmware versions 2024-12-10 14:11:23 +00:00
Puxtril
cb89342be1
Add LinkieTransportV2 and basic IOT.IPCAMERA support ()
Add LinkieTransportV2 transport used by kasa cameras and a basic
implementation for IOT.IPCAMERA (kasacam) devices.

---------

Co-authored-by: Zach Price <pricezt@ornl.gov>
Co-authored-by: Steven B <51370195+sdb9696@users.noreply.github.com>
Co-authored-by: Teemu Rytilahti <tpr@iki.fi>
2024-12-07 00:06:58 +01:00
Steven B.
be8b7139b8
Fix update errors on hubs with unsupported children () 2024-12-06 11:01:44 +00:00
Steven B.
1c9ee4d537
Fix smartcam missing device id () 2024-12-06 09:40:44 +00:00
Steven B.
8814d94989
Provide alternative camera urls () 2024-12-05 16:49:35 +00:00
Steven B.
4eed945e00
Do not error when accessing smart device_type before update () 2024-12-05 09:14:45 +00:00
Teemu R.
9966c6094a
Add ssltransport for robovacs ()
This PR implements a clear-text, token-based transport protocol seen on
RV30 Plus ().

- Client sends `{"username": "email@example.com", "password":
md5(password)}` and gets back a token in the response
- Rest of the communications are done with POST at `/app?token=<token>`

---------

Co-authored-by: Steven B. <51370195+sdb9696@users.noreply.github.com>
2024-12-01 18:06:48 +01:00
Steven B.
5ef8f21b4d
Handle missing mgt_encryption_schm in discovery () 2024-11-29 15:23:16 +00:00
Steven B.
f71450b880
Do not error on smartcam hub attached smartcam child devices () 2024-11-26 11:37:14 +00:00
Teemu R.
0c755f7120
Include duration when disabling smooth transition on/off ()
Fixes 
2024-11-26 10:39:31 +00:00
Teemu R.
69e08c2385
Expose energy command to cli ()
Co-authored-by: Steven B <51370195+sdb9696@users.noreply.github.com>
2024-11-26 09:42:55 +00:00
Steven B.
3dfada7575
Add common Thermostat module () 2024-11-26 09:37:15 +00:00
Steven B.
cb4e28394d
Update docs for the new module attributes has/get feature () 2024-11-26 08:38:20 +00:00
Steven B.
2bda54fcb1
Rename smartcamera to smartcam () 2024-11-23 09:07:47 +01:00
Steven B.
b525d6a35c
Annotate fan_speed_level of Fan interface () 2024-11-22 21:21:29 +01:00
Steven B.
37cc4da7b6
Allow getting Annotated features from modules ()
Co-authored-by: Teemu R. <tpr@iki.fi>
2024-11-22 07:52:23 +00:00
Steven B.
cae9decb02
Exclude __getattr__ for deprecated attributes from type checkers () 2024-11-21 18:40:13 +00:00
Steven B.
652b4e0bd7
Use credentials_hash for smartcamera rtsp url () 2024-11-21 18:39:15 +00:00
Teemu R.
f2ba23301a
Make discovery on unsupported devices less noisy () 2024-11-21 18:22:54 +00:00
Steven B.
5221fc07ca
Simplify omit http_client in DeviceConfig serialization ()
Related explanation: https://github.com/Fatal1ty/mashumaro/issues/264
2024-11-21 19:18:04 +01:00
Steven B.
879aca77d1
Update cli modify presets to support smart devices () 2024-11-21 19:10:18 +01:00
Ryan Nitcher
dab64e5d48
Add voltage and current monitoring to smart Devices () 2024-11-20 18:18:30 +00:00
Steven B.
0058ad9f2e
Remove pydantic dependency ()
Remove pydantic dependency in favor of mashumaro.
2024-11-20 15:19:12 +00:00
Steven B.
f7778aaa53
Migrate RuleModule to mashumaro ()
Also fixes a bug whereby multiple queries for the same module would overwrite each other.
2024-11-20 14:59:32 +00:00
Steven B.
955e7ab4d0
Migrate TurnOnBehaviours to mashumaro () 2024-11-20 15:35:51 +01:00
Steven B.
5eca487bcb
Migrate iot cloud module to mashumaro ()
Breaking change as the CloudInfo interface is changing to snake case for
consistency with the rest of the library.
2024-11-20 14:34:26 +01:00
Steven B.
df48c21900
Migrate triggerlogs to mashumaru () 2024-11-20 13:21:08 +00:00
Steven B.
999e84d2de
Migrate smart firmware module to mashumaro () 2024-11-20 11:54:13 +00:00
Steven B.
03c073c293
Migrate IotLightPreset to mashumaru () 2024-11-20 08:37:04 +00:00
Steven B.
79ac9547e8
Replace custom deviceconfig serialization with mashumaru () 2024-11-20 08:35:32 +00:00
Steven B.
2683623997
Update DiscoveryResult to use mashu Annotated Alias () 2024-11-19 19:09:50 +00:00
Steven B.
5b5a148f9a
Add pan tilt camera module ()
Add ptz controls for smartcameras.

---------

Co-authored-by: Teemu R. <tpr@iki.fi>
2024-11-19 10:11:51 +00:00
Steven B.
a01247d48f
Remove support for python <3.11 ()
Python 3.11 ships with latest Debian Bookworm. 
pypy is not that widely used with this library based on statistics. It could be added back when pypy supports python 3.11.
2024-11-18 18:46:36 +00:00
Steven B.
0c40939624
Allow callable coroutines for feature setters () 2024-11-18 14:53:49 +00:00
Steven B.
e209d40a6d
Use _get_device_info methods for smart and iot devs in devtools () 2024-11-18 14:53:11 +00:00