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 ( #1363 )
...
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 ( #1358 )
...
CI / Perform linting checks (3.13) (push) Waiting to run
CI / Python ${{ matrix.python-version}} on ${{ matrix.os }}${{ fromJSON('[" (extras)", ""]')[matrix.extras == ''] }} (false, macos-latest, 3.11) (push) Blocked by required conditions
CI / Python ${{ matrix.python-version}} on ${{ matrix.os }}${{ fromJSON('[" (extras)", ""]')[matrix.extras == ''] }} (false, macos-latest, 3.12) (push) Blocked by required conditions
CI / Python ${{ matrix.python-version}} on ${{ matrix.os }}${{ fromJSON('[" (extras)", ""]')[matrix.extras == ''] }} (false, macos-latest, 3.13) (push) Blocked by required conditions
CI / Python ${{ matrix.python-version}} on ${{ matrix.os }}${{ fromJSON('[" (extras)", ""]')[matrix.extras == ''] }} (false, ubuntu-latest, 3.11) (push) Blocked by required conditions
CI / Python ${{ matrix.python-version}} on ${{ matrix.os }}${{ fromJSON('[" (extras)", ""]')[matrix.extras == ''] }} (false, ubuntu-latest, 3.12) (push) Blocked by required conditions
CI / Python ${{ matrix.python-version}} on ${{ matrix.os }}${{ fromJSON('[" (extras)", ""]')[matrix.extras == ''] }} (false, ubuntu-latest, 3.13) (push) Blocked by required conditions
CI / Python ${{ matrix.python-version}} on ${{ matrix.os }}${{ fromJSON('[" (extras)", ""]')[matrix.extras == ''] }} (false, windows-latest, 3.11) (push) Blocked by required conditions
CI / Python ${{ matrix.python-version}} on ${{ matrix.os }}${{ fromJSON('[" (extras)", ""]')[matrix.extras == ''] }} (false, windows-latest, 3.12) (push) Blocked by required conditions
CI / Python ${{ matrix.python-version}} on ${{ matrix.os }}${{ fromJSON('[" (extras)", ""]')[matrix.extras == ''] }} (false, windows-latest, 3.13) (push) Blocked by required conditions
CI / Python ${{ matrix.python-version}} on ${{ matrix.os }}${{ fromJSON('[" (extras)", ""]')[matrix.extras == ''] }} (true, ubuntu-latest, 3.11) (push) Blocked by required conditions
CI / Python ${{ matrix.python-version}} on ${{ matrix.os }}${{ fromJSON('[" (extras)", ""]')[matrix.extras == ''] }} (true, ubuntu-latest, 3.12) (push) Blocked by required conditions
CI / Python ${{ matrix.python-version}} on ${{ matrix.os }}${{ fromJSON('[" (extras)", ""]')[matrix.extras == ''] }} (true, ubuntu-latest, 3.13) (push) Blocked by required conditions
CodeQL checks / Analyze (python) (push) Has been cancelled
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 ( #1335 )
...
CI / Perform linting checks (3.13) (push) Waiting to run
CI / Python ${{ matrix.python-version}} on ${{ matrix.os }}${{ fromJSON('[" (extras)", ""]')[matrix.extras == ''] }} (false, macos-latest, 3.11) (push) Blocked by required conditions
CI / Python ${{ matrix.python-version}} on ${{ matrix.os }}${{ fromJSON('[" (extras)", ""]')[matrix.extras == ''] }} (false, macos-latest, 3.12) (push) Blocked by required conditions
CI / Python ${{ matrix.python-version}} on ${{ matrix.os }}${{ fromJSON('[" (extras)", ""]')[matrix.extras == ''] }} (false, macos-latest, 3.13) (push) Blocked by required conditions
CI / Python ${{ matrix.python-version}} on ${{ matrix.os }}${{ fromJSON('[" (extras)", ""]')[matrix.extras == ''] }} (false, ubuntu-latest, 3.11) (push) Blocked by required conditions
CI / Python ${{ matrix.python-version}} on ${{ matrix.os }}${{ fromJSON('[" (extras)", ""]')[matrix.extras == ''] }} (false, ubuntu-latest, 3.12) (push) Blocked by required conditions
CI / Python ${{ matrix.python-version}} on ${{ matrix.os }}${{ fromJSON('[" (extras)", ""]')[matrix.extras == ''] }} (false, ubuntu-latest, 3.13) (push) Blocked by required conditions
CI / Python ${{ matrix.python-version}} on ${{ matrix.os }}${{ fromJSON('[" (extras)", ""]')[matrix.extras == ''] }} (false, windows-latest, 3.11) (push) Blocked by required conditions
CI / Python ${{ matrix.python-version}} on ${{ matrix.os }}${{ fromJSON('[" (extras)", ""]')[matrix.extras == ''] }} (false, windows-latest, 3.12) (push) Blocked by required conditions
CI / Python ${{ matrix.python-version}} on ${{ matrix.os }}${{ fromJSON('[" (extras)", ""]')[matrix.extras == ''] }} (false, windows-latest, 3.13) (push) Blocked by required conditions
CI / Python ${{ matrix.python-version}} on ${{ matrix.os }}${{ fromJSON('[" (extras)", ""]')[matrix.extras == ''] }} (true, ubuntu-latest, 3.11) (push) Blocked by required conditions
CI / Python ${{ matrix.python-version}} on ${{ matrix.os }}${{ fromJSON('[" (extras)", ""]')[matrix.extras == ''] }} (true, ubuntu-latest, 3.12) (push) Blocked by required conditions
CI / Python ${{ matrix.python-version}} on ${{ matrix.os }}${{ fromJSON('[" (extras)", ""]')[matrix.extras == ''] }} (true, ubuntu-latest, 3.13) (push) Blocked by required conditions
CodeQL checks / Analyze (python) (push) Waiting to run
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 ( #1342 )
...
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 ( #1270 )
...
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 ( #1344 )
2024-12-06 11:01:44 +00:00
Steven B.
1c9ee4d537
Fix smartcam missing device id ( #1343 )
2024-12-06 09:40:44 +00:00
Steven B.
8814d94989
Provide alternative camera urls ( #1316 )
2024-12-05 16:49:35 +00:00
Steven B.
4eed945e00
Do not error when accessing smart device_type before update ( #1319 )
2024-12-05 09:14:45 +00:00
Teemu R.
9966c6094a
Add ssltransport for robovacs ( #943 )
...
This PR implements a clear-text, token-based transport protocol seen on
RV30 Plus (#937 ).
- 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 ( #1318 )
2024-11-29 15:23:16 +00:00
Steven B.
f71450b880
Do not error on smartcam hub attached smartcam child devices ( #1314 )
2024-11-26 11:37:14 +00:00
Teemu R.
0c755f7120
Include duration when disabling smooth transition on/off ( #1313 )
...
Fixes #1309
2024-11-26 10:39:31 +00:00
Teemu R.
69e08c2385
Expose energy command to cli ( #1307 )
...
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 ( #977 )
2024-11-26 09:37:15 +00:00
Steven B.
cb4e28394d
Update docs for the new module attributes has/get feature ( #1301 )
2024-11-26 08:38:20 +00:00
Steven B.
2bda54fcb1
Rename smartcamera to smartcam ( #1300 )
2024-11-23 09:07:47 +01:00
Steven B.
b525d6a35c
Annotate fan_speed_level of Fan interface ( #1298 )
2024-11-22 21:21:29 +01:00
Steven B.
37cc4da7b6
Allow getting Annotated features from modules ( #1018 )
...
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 ( #1294 )
2024-11-21 18:40:13 +00:00
Steven B.
652b4e0bd7
Use credentials_hash for smartcamera rtsp url ( #1293 )
2024-11-21 18:39:15 +00:00
Teemu R.
f2ba23301a
Make discovery on unsupported devices less noisy ( #1291 )
2024-11-21 18:22:54 +00:00
Steven B.
5221fc07ca
Simplify omit http_client in DeviceConfig serialization ( #1292 )
...
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 ( #1295 )
2024-11-21 19:10:18 +01:00
Ryan Nitcher
dab64e5d48
Add voltage and current monitoring to smart Devices ( #1281 )
2024-11-20 18:18:30 +00:00
Steven B.
0058ad9f2e
Remove pydantic dependency ( #1289 )
...
Remove pydantic dependency in favor of mashumaro.
2024-11-20 15:19:12 +00:00
Steven B.
f7778aaa53
Migrate RuleModule to mashumaro ( #1283 )
...
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 ( #1285 )
2024-11-20 15:35:51 +01:00
Steven B.
5eca487bcb
Migrate iot cloud module to mashumaro ( #1282 )
...
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 ( #1277 )
2024-11-20 13:21:08 +00:00
Steven B.
999e84d2de
Migrate smart firmware module to mashumaro ( #1276 )
2024-11-20 11:54:13 +00:00
Steven B.
03c073c293
Migrate IotLightPreset to mashumaru ( #1275 )
2024-11-20 08:37:04 +00:00
Steven B.
79ac9547e8
Replace custom deviceconfig serialization with mashumaru ( #1274 )
2024-11-20 08:35:32 +00:00
Steven B.
2683623997
Update DiscoveryResult to use mashu Annotated Alias ( #1279 )
2024-11-19 19:09:50 +00:00
Steven B.
5b5a148f9a
Add pan tilt camera module ( #1261 )
...
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 ( #1273 )
...
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 ( #1272 )
2024-11-18 14:53:49 +00:00
Steven B.
e209d40a6d
Use _get_device_info methods for smart and iot devs in devtools ( #1265 )
2024-11-18 14:53:11 +00:00