116 Commits

Author SHA1 Message Date
Steven B.
c6c4490a49
Add C100 4.0 1.3.14 Fixture () 2024-12-17 10:59:24 +00:00
Steven B.
fe072657b4
Simplify get_protocol to prevent clashes with smartcam and robovac () 2024-12-17 07:39:17 +00:00
Steven B.
d03a387a74
Add new methods to dump_devinfo ()
Adds `getMatterSetupInfo`, `getConnectStatus` and `scanApList`
2024-12-16 13:06:26 +00:00
Steven B.
f8503e4df6
Force single for some smartcam requests ()
`onboarding` requests do not return the method key and need to be sent as single requests.
2024-12-15 16:03:12 +00:00
Steven B.
c439530f93
Add bare bones homekit modules smart and smartcam devices () 2024-12-14 13:34:58 +00:00
Steven B.
2ca6d3ebe9
Add bare-bones matter modules to smart and smartcam devices () 2024-12-13 19:45:38 +00:00
Steven B.
223f3318ea
Use DeviceInfo consistently across devices ()
- Make model exclude region for `iot` devices. This is consistent with `smart` and `smartcam` devices.
- Make region it's own attribute on `Device`.
- Ensure that devices consistently use `_get_device_info` static methods for all information relating to device models.
- Fix issue with firmware and hardware being the wrong way round for `smartcam` devices.
2024-12-13 12:37:13 +00:00
Steven B.
7709bb967f
Update cli, light modules, and docs to use FeatureAttributes () 2024-12-11 15:53:35 +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
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.
ed0481918c
Fix line endings in device_fixtures.py () 2024-12-10 08:37:57 +00:00
ZeliardM
2f87ccd201
Add KS200 (US) IOT Fixture and P115 (US) Smart Fixture () 2024-12-10 06:14:17 +00:00
Happy-Cadaver
fd74b07e2c
Add C520WS camera fixture ()
Adding the C520WS fixture file

---------

Co-authored-by: Steven B <51370195+sdb9696@users.noreply.github.com>
2024-12-10 00:24:27 +01: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.
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
Teemu R.
9a52056522
Remove unnecessary check for python <3.10 () 2024-11-30 15:35:38 +00:00
Steven B.
5ef8f21b4d
Handle missing mgt_encryption_schm in discovery () 2024-11-29 15:23:16 +00:00
Teemu R.
fcb604e435
Follow main package structure for tests ()
* Transport tests under tests/transports/
* Protocol tests under tests/protocols/
* IOT tests under iot/
* Plus some minor cleanups, most code changes are related to splitting
up smart & iot tests
2024-11-28 17:56:20 +01:00
Steven B.
6c42b36865
Rename tests/smartcamera to tests/smartcam () 2024-11-26 11:36:30 +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.
15ecf320d9
Add P110M(EU) fixture () 2024-11-23 12:38:42 +00:00
ZeliardM
ea73b858e8
Add HS200 (US) Smart Fixture () 2024-11-23 12:31:27 +00:00
Teemu R.
d0a2ed7388
Add P110M(AU) fixture () 2024-11-23 12:30:39 +00:00
Steven B.
412c65c428
Run tests with caplog in a single worker () 2024-11-23 12:20:51 +00:00
Steven B.
2bda54fcb1
Rename smartcamera to smartcam () 2024-11-23 09:07:47 +01:00
Steven B.
f4316110c9
Move iot fixtures into iot subfolder () 2024-11-22 21:19:33 +01:00
Ryan Nitcher
c5830a4cdc
Add PIR ADC Values to Test Fixtures () 2024-11-22 07:59:17 +00: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.
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
Ryan Nitcher
59b047f485
Add SMART Voltage Monitoring to Fixtures () 2024-11-20 17:59:09 +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.
a4258cc75b
Do not print out all the fixture names at the start of test runs () 2024-11-20 15:42:56 +01:00
Steven B.
955e7ab4d0
Migrate TurnOnBehaviours to mashumaro () 2024-11-20 15:35:51 +01:00
Steven B.
0e5013d4b4
dump_devinfo: iot light strip commands () 2024-11-20 15:06:59 +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
Teemu R.
bbe68a5fe9
dump_devinfo: query smartlife.iot.common.cloud for fw updates () 2024-11-20 13:07:02 +00:00
Steven B.
999e84d2de
Migrate smart firmware module to mashumaro () 2024-11-20 11:54:13 +00:00
Steven B.
79ac9547e8
Replace custom deviceconfig serialization with mashumaru () 2024-11-20 08:35:32 +00:00
Steven B.
bf23f73cce
Extend dump_devinfo iot queries () 2024-11-20 00:36:16 +01:00