- Migrate more deprecated pydantic calls (#324) (
50ef161
)
- Treat no access to keyrings/users as empty (#323) (
c068aca
)
- Remove pydantic v1 shims (#322) (
44063a0
)
- Import of self for python 3.10 (#314) (
fe7fc3a
)
- Refactor keyrings and ulpusers to add internal indices (#313) (
705df32
)
- Add keyring and ulp-user (#299) (
c8a3f4c
)
- Add isthirdpartycamera field to camera model (#302) (
828b510
)
- Update permission logic for get_snapshot method (#298) (
207959b
)
- Improve partitioned cookie back-compat patching for python 3.13+ (#297) (
a352283
)
-
Bot release token (#288) (
1868448
) -
Update release process to allow the bot to do releases (#287) (
3f7c839
) -
Allow get snapshot with liveonly permissions (#285) (
b2cf95b
)
- Handle indexerror selecting value "below 1 lux" for icr_custom_value (#283) (
41f5a3b
)
- Add feature flags for nfc and fingerprint (#276) (
e208d9e
)
- Add processing for nfc scan and fingerprint identified events (#275) (
0a58b29
)
- Add support for fetching the rtsp url without srtp (#261) (
7d0cfd3
)
- Talkback stream bitrate settings (#248) (
f10dedf
)
- Typing with version of propcache older than 1.0.0 (#226) (
94f9eaa
)
- Add support for propcache v1.0.0+ (#225) (
b37f833
)
- Switch to using fast cached_property from propcache (#224) (
e5ce415
)
-
Add additional types to device_events (#213) (
072bc7c
) -
Bump psr to 9.8.8 to fix release process (#221) (
b109433
)
- Speed up url joins (#220) (
a10fc5a
)
- Bump aiofiles requirement to >=24 (#182) (
1eb9ea7
)
- Simplify ssl verify flag in websocket class (#175) (
c36e19a
)
- Remove default websocket receive timeout (#173) (
8b0b303
)
- Improve performance of convert_unifi_data (#153) (
45f66b4
)
- Speed up camera snapshots (#152) (
d333865
)
- Reflection of chime duration seconds (#142) (
0266b8e
)
- Avoid reflecting back smoke_cmonx when changing smart audio (#141) (
7270a5c
)
- Remove deepcopy before calling update_from_dict (#140) (
23bc68f
)
- Small cleanups to smart detect lookups (#139) (
ef21763
)
- Do not auto convert enums to values for fetching attrs (#138) (
f6d7ead
)
- Replace manual dict deletes with convertertools (#131) (
22f7df8
)
- Avoid the need to deepcopy in the ws stats (#130) (
5318b02
)
- Remove is_ringing property and ring ping back from camera (#125) (
b400435
)
-
Use id checks for type compares (#126) (
0e54ac6
) -
Do not swallow asyncio.cancellederror (#129) (
09bc38b
)
- Improve websocket error handling (#128) (
b70d071
)
-
Small cleanups to packet packing/unpacking (#122) (
00cb125
) -
Small cleanups to devices (#124) (
1b64a8e
) -
Cleanup some additional dupe attr lookups (#123) (
24849d8
)
- Reduce some duplicate attr lookups in devices (#121) (
8ea72ea
)
- Use more list/dict comps where possible (#120) (
9c1ef3f
)
- Reduce duplicate code to do unifi_dict_to_dict conversions (#119) (
f616c52
)
- License classifier (#116) (
ac048d7
)
- Skip empty models in unifi_dict (#115) (
d42023f
)
- Refactor internal object tracking (#114) (
ad1b2b4
)
- Remove event is in range check (#92) (
2847f40
)
- Small tweaks to compact code (#113) (
aa136ba
)
- Remove unreachable code in the websocket decoder (#112) (
235cdef
)
-
Remove unreachable api in data checks (#110) (
c7772a9
) -
Make creation of update sync primitives lazy (#111) (
b05af57
)
- Exclude_fields would mutate the classvar (#109) (
1c461e1
)
- Ensure test harness does not delete coveragerc (#108) (
02bd064
)
- Add test coverage for updating to none (#107) (
b2adeac
)
- Coveragerc fails to omit cli and tests (#106) (
d1a4052
)
- _raise_for_status when raise_exception is not set (#105) (
0a6ff9e
)
- Add websocket state subscription (#104) (
d7083ab
)
- Remove the force flag from update (#103) (
0bee3e6
)
- Handle websocket auth errors on restart (#102) (
7026491
)
- Decrease websocket logging for known errors (#101) (
05df499
)
- Improve websocket error handling (#100) (
813ac9c
)
- Rework websocket (#96) (
574a846
)
- Include getter builder utils for fetching ufp object values (#95) (
9056edf
)
- Pin and drop pydantic compat imports now that pydantic is fixed (#94) (
00adc2c
)
- Ensure update_from_dict creates the object is it was previously none (#93) (
f268c01
)
- Update broken documentation readme link (#90) (
1580c04
)
- Simplify websocket stats logic (#88) (
5b01f34
)
- Refactoring error in 83 (#89) (
ed477c2
)
-
Ensure camera and chime keys are not included in the base ignored set (#86) (
02ab5f6
) -
Ignore cameraids for chime updates (#85) (
3a7e48d
)
- Add repr for websocket packets (#84) (
60dd356
)
- Avoid writing out some more key converts (#83) (
851c798
)
- Improve performance of websocket packet processing (#82) (
58df1c3
)
-
Remove and consolidate unused code in base (#81) (
523d931
) -
Use tuples for all the delete iterators (#80) (
9ec88ce
) -
Cleanup debug (#79) (
7883c24
) -
Reduce code to remove keys (#78) (
7b496cb
)
- Refactor protect obj methods to use comprehensions (#77) (
ae4cdb9
)
- Small cleanup to get device functions (#76) (
86f18d8
)
- Optimize update_from_dict (#75) (
1b8ed6d
)
- Improve performance of processing websocket messages (#74) (
84277cb
)
- Ensure ping back messages are called back and empty updates excluded (#62) (
b319dba
)
- Add missing eventstats key to stats_keys (#73) (
6c8be31
)
- Small cleanups to bootstrap code (#72) (
78e6dbb
)
- Revert to using protected attrs for property cache (#71) (
f0b259c
)
- Speed up bootstrap by adding cached_property (#68) (
c6b746d
)
- Make websocket dataclasses sloted (#67) (
58e42f6
)
- Improve performance of websocket message processing (#66) (
d6a6472
)
- Replace some attrs with cached methods (#65) (
fc0fc57
)
-
Delete unused bootstrap constants (#64) (
0283c45
) -
Small cleanups to _process_add_packet (#63) (
8fd8280
)
- Pingback did not hold a strong reference to the task (#61) (
7b11ce9
)
- Refactoring error in _process_add_packet (#60) (
e21516b
)
- Add debug logging when saving device changes (#59) (
1c57d00
)
- Cleanup duplicate doorbell text code (#58) (
5e3fac8
)
- Simplify object conversions (#55) (
feb8236
)
- Make audio_type a cached_property (#54) (
50d22de
)
- Use none instead of ... for privateattr (#53) (
fc06f42
)
- Only process incoming websocket packet model type once (#52) (
57d7c10
)
- Cleanup duplicate object lookups in event processing (#51) (
ec00121
)
- Restore some unreachable code in _process_device_update (#50) (
c638cd3
)
- Blocking i/o in the event loop (#49) (
36a4355
)
- Avoid fetching and iterating convert keys when empty (#48) (
7c9ae89
)
- Remove ide workspace files and add the directories for them to the gitignore (#47) (
486e3f9
)
- Remove _get_frame_data helper (#45) (
21d6768
)
-
Consolidate logic to remove keys (#44) (
9da56d2
) -
Use new _event_is_in_range helper in _process_camera_event (#43) (
49e0a67
) -
Reduce duplicate code to process sensor events (#41) (
78c291b
)
- New cookie flag preventing auth cookie from being stored (#36) (
b6eb7fc
)
- Remove unused is_ready property from the api client (#33) (
c36ee42
)
- Use internal self._api inside the object (#34) (
c20e7a9
)
- Missing url param in websocket disconnected error log message (#32) (
60e6511
)
- Cache bootstrap on the protectapiclient once it has been initialized (#31) (
185e47f
)
- Cache parsing of datetimes (#29) (
8b6747a
)
- Use f-strings in more places (#28) (
22706c8
)
- Cleanup processing camera events (#27) (
2c1a266
)
-
Cleanup websocket add/remove packet processing (#25) (
fdf0f6e
) -
Use a single function to normalize mac addresses (#26) (
7ce8654
)
- Cleanup processing of websocket packets (#24) (
b59e19c
)
- Remove useless time check (#23) (
749cfef
)
- Improve performance of process websocket packets (#22) (
7b59c98
)
- Avoid linear searches to process websocket packets (#21) (
86d5f19
)
- Guard debug logging that reformats data in the arguments (#20) (
0cfdea8
)
- Remove useless .keys() calls (#19) (
ec1fd12
)
- Refactor protect object subtype bucketing (#18) (
e4123ac
)
- Small code cleanups (#17) (
f1668ae
)
- Memoize enum type check to speed up data conversion (#15) (
73b0c4a
)
- Handle unifi os 4 token change (#14) (
a6aab8f
)
- Avoid parsing last_update_id (#12) (
ac86b13
)
- Add missing doorbellmessagetype image (#11) (
eaed04b
)
- Revert global flags check (#9) (
8dc437f
)
- Improve readme and testdata docs (#8) (
90ae6a8
)
- Revert pydantic changes for ha compat (#7) (
c7770c1
)
- Add missing docs deps (
399de45
)
- Small fixes for readme.md (#6) (
7a0acf4
)
- Ensure uv is installed for docker image (
d286198
)
- Migrate docs (#4) (
1e62ec2
)
- Readme updates (#3) (
8cf5d24
)
- Update classifiers (#1) (
0d4eaf6
)
- Re-enable changelog (
68620b0
)
-
Pre-commit auto update (
27c1514
) -
Cli test (
b2e4e8e
) -
Only pyupgrade non-typer code (
8a5f9b6
) -
Ensure workers (
d7578de
) -
Tests in ci (
f008537
) -
Add mypy to dev deps (
bde29f2
) -
More mypy fixes (
f889c50
) -
Add more missing types (
6d959f9
) -
Disable some more rules inline (
03c726f
) -
Add missing types (
ef87e72
) -
Disable some rules (
6cfd103
)
- Actually set chime_duration (
e7edd26
)
- Make chime duration adjustable (
b4d13c1
)