uiprotect 5.1.0__tar.gz → 5.2.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of uiprotect might be problematic. Click here for more details.
- {uiprotect-5.1.0 → uiprotect-5.2.0}/PKG-INFO +1 -1
- {uiprotect-5.1.0 → uiprotect-5.2.0}/pyproject.toml +1 -1
- {uiprotect-5.1.0 → uiprotect-5.2.0}/src/uiprotect/data/bootstrap.py +2 -3
- {uiprotect-5.1.0 → uiprotect-5.2.0}/src/uiprotect/data/devices.py +6 -5
- {uiprotect-5.1.0 → uiprotect-5.2.0}/LICENSE +0 -0
- {uiprotect-5.1.0 → uiprotect-5.2.0}/README.md +0 -0
- {uiprotect-5.1.0 → uiprotect-5.2.0}/src/uiprotect/__init__.py +0 -0
- {uiprotect-5.1.0 → uiprotect-5.2.0}/src/uiprotect/__main__.py +0 -0
- {uiprotect-5.1.0 → uiprotect-5.2.0}/src/uiprotect/api.py +0 -0
- {uiprotect-5.1.0 → uiprotect-5.2.0}/src/uiprotect/cli/__init__.py +0 -0
- {uiprotect-5.1.0 → uiprotect-5.2.0}/src/uiprotect/cli/backup.py +0 -0
- {uiprotect-5.1.0 → uiprotect-5.2.0}/src/uiprotect/cli/base.py +0 -0
- {uiprotect-5.1.0 → uiprotect-5.2.0}/src/uiprotect/cli/cameras.py +0 -0
- {uiprotect-5.1.0 → uiprotect-5.2.0}/src/uiprotect/cli/chimes.py +0 -0
- {uiprotect-5.1.0 → uiprotect-5.2.0}/src/uiprotect/cli/doorlocks.py +0 -0
- {uiprotect-5.1.0 → uiprotect-5.2.0}/src/uiprotect/cli/events.py +0 -0
- {uiprotect-5.1.0 → uiprotect-5.2.0}/src/uiprotect/cli/lights.py +0 -0
- {uiprotect-5.1.0 → uiprotect-5.2.0}/src/uiprotect/cli/liveviews.py +0 -0
- {uiprotect-5.1.0 → uiprotect-5.2.0}/src/uiprotect/cli/nvr.py +0 -0
- {uiprotect-5.1.0 → uiprotect-5.2.0}/src/uiprotect/cli/sensors.py +0 -0
- {uiprotect-5.1.0 → uiprotect-5.2.0}/src/uiprotect/cli/viewers.py +0 -0
- {uiprotect-5.1.0 → uiprotect-5.2.0}/src/uiprotect/data/__init__.py +0 -0
- {uiprotect-5.1.0 → uiprotect-5.2.0}/src/uiprotect/data/base.py +0 -0
- {uiprotect-5.1.0 → uiprotect-5.2.0}/src/uiprotect/data/convert.py +0 -0
- {uiprotect-5.1.0 → uiprotect-5.2.0}/src/uiprotect/data/nvr.py +0 -0
- {uiprotect-5.1.0 → uiprotect-5.2.0}/src/uiprotect/data/types.py +0 -0
- {uiprotect-5.1.0 → uiprotect-5.2.0}/src/uiprotect/data/user.py +0 -0
- {uiprotect-5.1.0 → uiprotect-5.2.0}/src/uiprotect/data/websocket.py +0 -0
- {uiprotect-5.1.0 → uiprotect-5.2.0}/src/uiprotect/exceptions.py +0 -0
- {uiprotect-5.1.0 → uiprotect-5.2.0}/src/uiprotect/py.typed +0 -0
- {uiprotect-5.1.0 → uiprotect-5.2.0}/src/uiprotect/release_cache.json +0 -0
- {uiprotect-5.1.0 → uiprotect-5.2.0}/src/uiprotect/stream.py +0 -0
- {uiprotect-5.1.0 → uiprotect-5.2.0}/src/uiprotect/test_util/__init__.py +0 -0
- {uiprotect-5.1.0 → uiprotect-5.2.0}/src/uiprotect/test_util/anonymize.py +0 -0
- {uiprotect-5.1.0 → uiprotect-5.2.0}/src/uiprotect/utils.py +0 -0
- {uiprotect-5.1.0 → uiprotect-5.2.0}/src/uiprotect/websocket.py +0 -0
|
@@ -4,7 +4,6 @@ from __future__ import annotations
|
|
|
4
4
|
|
|
5
5
|
import asyncio
|
|
6
6
|
import logging
|
|
7
|
-
from copy import deepcopy
|
|
8
7
|
from dataclasses import dataclass
|
|
9
8
|
from datetime import datetime
|
|
10
9
|
from typing import TYPE_CHECKING, Any
|
|
@@ -399,7 +398,7 @@ class Bootstrap(ProtectBaseObject):
|
|
|
399
398
|
return None
|
|
400
399
|
|
|
401
400
|
old_nvr = self.nvr.copy()
|
|
402
|
-
self.nvr = self.nvr.update_from_dict(
|
|
401
|
+
self.nvr = self.nvr.update_from_dict(data)
|
|
403
402
|
|
|
404
403
|
return WSSubscriptionMessage(
|
|
405
404
|
action=WSAction.UPDATE,
|
|
@@ -455,7 +454,7 @@ class Bootstrap(ProtectBaseObject):
|
|
|
455
454
|
return None
|
|
456
455
|
|
|
457
456
|
old_obj = obj.copy()
|
|
458
|
-
obj = obj.update_from_dict(
|
|
457
|
+
obj = obj.update_from_dict(data)
|
|
459
458
|
|
|
460
459
|
if model_type is ModelType.EVENT:
|
|
461
460
|
if TYPE_CHECKING:
|
|
@@ -1090,11 +1090,12 @@ class Camera(ProtectMotionDeviceModel):
|
|
|
1090
1090
|
return updated
|
|
1091
1091
|
|
|
1092
1092
|
def update_from_dict(self, data: dict[str, Any]) -> Camera:
|
|
1093
|
-
# a message in the past is actually a
|
|
1094
|
-
reset_at
|
|
1095
|
-
|
|
1096
|
-
|
|
1097
|
-
|
|
1093
|
+
# a message in the past is actually a signal to wipe the message
|
|
1094
|
+
if (reset_at := data.get("lcd_message", {}).get("reset_at")) is not None:
|
|
1095
|
+
if utc_now() > from_js_time(reset_at):
|
|
1096
|
+
# Important: Make a copy of the data before modifying it
|
|
1097
|
+
# since unifi_dict_to_dict will otherwise report incorrect changes
|
|
1098
|
+
data = data.copy()
|
|
1098
1099
|
data["lcd_message"] = None
|
|
1099
1100
|
|
|
1100
1101
|
return super().update_from_dict(data)
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|