uiprotect 0.12.0__tar.gz → 0.13.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-0.12.0 → uiprotect-0.13.0}/PKG-INFO +1 -1
- {uiprotect-0.12.0 → uiprotect-0.13.0}/pyproject.toml +1 -1
- {uiprotect-0.12.0 → uiprotect-0.13.0}/src/uiprotect/data/bootstrap.py +19 -11
- {uiprotect-0.12.0 → uiprotect-0.13.0}/LICENSE +0 -0
- {uiprotect-0.12.0 → uiprotect-0.13.0}/README.md +0 -0
- {uiprotect-0.12.0 → uiprotect-0.13.0}/src/uiprotect/__init__.py +0 -0
- {uiprotect-0.12.0 → uiprotect-0.13.0}/src/uiprotect/__main__.py +0 -0
- {uiprotect-0.12.0 → uiprotect-0.13.0}/src/uiprotect/api.py +0 -0
- {uiprotect-0.12.0 → uiprotect-0.13.0}/src/uiprotect/cli/__init__.py +0 -0
- {uiprotect-0.12.0 → uiprotect-0.13.0}/src/uiprotect/cli/backup.py +0 -0
- {uiprotect-0.12.0 → uiprotect-0.13.0}/src/uiprotect/cli/base.py +0 -0
- {uiprotect-0.12.0 → uiprotect-0.13.0}/src/uiprotect/cli/cameras.py +0 -0
- {uiprotect-0.12.0 → uiprotect-0.13.0}/src/uiprotect/cli/chimes.py +0 -0
- {uiprotect-0.12.0 → uiprotect-0.13.0}/src/uiprotect/cli/doorlocks.py +0 -0
- {uiprotect-0.12.0 → uiprotect-0.13.0}/src/uiprotect/cli/events.py +0 -0
- {uiprotect-0.12.0 → uiprotect-0.13.0}/src/uiprotect/cli/lights.py +0 -0
- {uiprotect-0.12.0 → uiprotect-0.13.0}/src/uiprotect/cli/liveviews.py +0 -0
- {uiprotect-0.12.0 → uiprotect-0.13.0}/src/uiprotect/cli/nvr.py +0 -0
- {uiprotect-0.12.0 → uiprotect-0.13.0}/src/uiprotect/cli/sensors.py +0 -0
- {uiprotect-0.12.0 → uiprotect-0.13.0}/src/uiprotect/cli/viewers.py +0 -0
- {uiprotect-0.12.0 → uiprotect-0.13.0}/src/uiprotect/data/__init__.py +0 -0
- {uiprotect-0.12.0 → uiprotect-0.13.0}/src/uiprotect/data/base.py +0 -0
- {uiprotect-0.12.0 → uiprotect-0.13.0}/src/uiprotect/data/convert.py +0 -0
- {uiprotect-0.12.0 → uiprotect-0.13.0}/src/uiprotect/data/devices.py +0 -0
- {uiprotect-0.12.0 → uiprotect-0.13.0}/src/uiprotect/data/nvr.py +0 -0
- {uiprotect-0.12.0 → uiprotect-0.13.0}/src/uiprotect/data/types.py +0 -0
- {uiprotect-0.12.0 → uiprotect-0.13.0}/src/uiprotect/data/user.py +0 -0
- {uiprotect-0.12.0 → uiprotect-0.13.0}/src/uiprotect/data/websocket.py +0 -0
- {uiprotect-0.12.0 → uiprotect-0.13.0}/src/uiprotect/exceptions.py +0 -0
- {uiprotect-0.12.0 → uiprotect-0.13.0}/src/uiprotect/py.typed +0 -0
- {uiprotect-0.12.0 → uiprotect-0.13.0}/src/uiprotect/release_cache.json +0 -0
- {uiprotect-0.12.0 → uiprotect-0.13.0}/src/uiprotect/stream.py +0 -0
- {uiprotect-0.12.0 → uiprotect-0.13.0}/src/uiprotect/test_util/__init__.py +0 -0
- {uiprotect-0.12.0 → uiprotect-0.13.0}/src/uiprotect/test_util/anonymize.py +0 -0
- {uiprotect-0.12.0 → uiprotect-0.13.0}/src/uiprotect/utils.py +0 -0
- {uiprotect-0.12.0 → uiprotect-0.13.0}/src/uiprotect/websocket.py +0 -0
|
@@ -131,26 +131,34 @@ def _process_sensor_event(event: Event) -> None:
|
|
|
131
131
|
event.sensor.last_value_event_id = event.id
|
|
132
132
|
|
|
133
133
|
|
|
134
|
+
_CAMERA_SMART_AND_LINE_EVENTS = {
|
|
135
|
+
EventType.SMART_DETECT,
|
|
136
|
+
EventType.SMART_DETECT_LINE,
|
|
137
|
+
}
|
|
138
|
+
_CAMERA_SMART_AUDIO_EVENT = EventType.SMART_AUDIO_DETECT
|
|
139
|
+
|
|
140
|
+
|
|
134
141
|
def _process_camera_event(event: Event) -> None:
|
|
135
|
-
if event.camera is None:
|
|
142
|
+
if (camera := event.camera) is None:
|
|
136
143
|
return
|
|
137
144
|
|
|
138
|
-
|
|
139
|
-
|
|
145
|
+
event_type = event.type
|
|
146
|
+
dt_attr, event_attr = CAMERA_EVENT_ATTR_MAP[event_type]
|
|
147
|
+
dt = getattr(camera, dt_attr)
|
|
140
148
|
if dt is None or event.start >= dt or (event.end is not None and event.end >= dt):
|
|
141
|
-
setattr(
|
|
142
|
-
setattr(
|
|
143
|
-
if
|
|
149
|
+
setattr(camera, event_attr, event.id)
|
|
150
|
+
setattr(camera, dt_attr, event.start)
|
|
151
|
+
if event_type in _CAMERA_SMART_AND_LINE_EVENTS:
|
|
144
152
|
for smart_type in event.smart_detect_types:
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
elif
|
|
153
|
+
camera.last_smart_detect_event_ids[smart_type] = event.id
|
|
154
|
+
camera.last_smart_detects[smart_type] = event.start
|
|
155
|
+
elif event_type is _CAMERA_SMART_AUDIO_EVENT:
|
|
148
156
|
for smart_type in event.smart_detect_types:
|
|
149
157
|
audio_type = smart_type.audio_type
|
|
150
158
|
if audio_type is None:
|
|
151
159
|
continue
|
|
152
|
-
|
|
153
|
-
|
|
160
|
+
camera.last_smart_audio_detect_event_ids[audio_type] = event.id
|
|
161
|
+
camera.last_smart_audio_detects[audio_type] = event.start
|
|
154
162
|
|
|
155
163
|
|
|
156
164
|
@dataclass
|
|
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
|
|
File without changes
|