Add SetSynchronizationPoint fallback to onvif (#86400)

Co-authored-by: J. Nick Koston <nick@koston.org>
This commit is contained in:
Meow
2023-04-15 21:41:34 +02:00
committed by GitHub
parent 72dfd95831
commit 963648a333

View File

@@ -20,11 +20,9 @@ from .models import Event
from .parsers import PARSERS from .parsers import PARSERS
UNHANDLED_TOPICS: set[str] = set() UNHANDLED_TOPICS: set[str] = set()
SUBSCRIPTION_ERRORS = (
Fault, SUBSCRIPTION_ERRORS = (Fault, asyncio.TimeoutError, TransportError)
asyncio.TimeoutError, SET_SYNCHRONIZATION_POINT_ERRORS = (*SUBSCRIPTION_ERRORS, TypeError)
TransportError,
)
def _stringify_onvif_error(error: Exception) -> str: def _stringify_onvif_error(error: Exception) -> str:
@@ -110,7 +108,7 @@ class EventManager:
# Initialize events # Initialize events
pullpoint = self.device.create_pullpoint_service() pullpoint = self.device.create_pullpoint_service()
with suppress(*SUBSCRIPTION_ERRORS): with suppress(*SET_SYNCHRONIZATION_POINT_ERRORS):
await pullpoint.SetSynchronizationPoint() await pullpoint.SetSynchronizationPoint()
response = await pullpoint.PullMessages( response = await pullpoint.PullMessages(
{"MessageLimit": 100, "Timeout": dt.timedelta(seconds=5)} {"MessageLimit": 100, "Timeout": dt.timedelta(seconds=5)}