From ed16dd57927d66b81710478933d1dbeae77a75ee Mon Sep 17 00:00:00 2001 From: Jeff Culverhouse Date: Thu, 6 Mar 2025 03:47:29 -0500 Subject: [PATCH] reset camera connection if we cannot get device events --- VERSION | 2 +- amcrest_api.py | 5 +++++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/VERSION b/VERSION index 938dde1..53675af 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -0.99.15 +0.99.16 diff --git a/amcrest_api.py b/amcrest_api.py index b7a50c8..0925359 100644 --- a/amcrest_api.py +++ b/amcrest_api.py @@ -37,6 +37,10 @@ class AmcrestAPI(object): # return just the config of each device, not the camera object return {d: self.devices[d]['config'] for d in self.devices.keys()} + def reset_connection(self, device_id): + device = self.devices[device_id] + device['camera'] = get_camera(device['config']['host']) + def get_camera(self, host): return AmcrestCamera( host, @@ -120,6 +124,7 @@ class AmcrestAPI(object): await self.process_device_event(device_id, code, payload) except Exception as err: self.logger.error(f'Failed to get events from device ({device_id}): {err}') + self.reset_connection(device_id) async def process_device_event(self, device_id, code, payload): try: