Skip to content

Commit

Permalink
Keep retrying when connection to doorbell fails
Browse files Browse the repository at this point in the history
  • Loading branch information
felipecrs committed Sep 30, 2024
1 parent 9a645a9 commit 180ea9e
Showing 1 changed file with 20 additions and 12 deletions.
32 changes: 20 additions & 12 deletions hikvision-doorbell/src/main.py
Original file line number Diff line number Diff line change
Expand Up @@ -92,15 +92,23 @@ def signal_handler(task: asyncio.Task):


if __name__ == "__main__":
try:
asyncio.run(main())
except SDKError as e:
# Define a global error handler for SDKErrors, to print them out in a user-friendly manner:
# <user_message> <sdk_message> <sdk_code>
user_message, sdk_code, sdk_message = e.args
logger.error("{}: {} Error code:{}", user_message, sdk_message, sdk_code)
sys.exit(1)
except (OSError, ConnectionRefusedError) as e:
# Connection to MQTT broker failed
logger.error("Error while connecting to MQTT broker: {}", e.strerror)
sys.exit(1)
while True:
try:
asyncio.run(main())
break
except SDKError as e:
# Define a global error handler for SDKErrors, to print them out in a user-friendly manner:
# <user_message> <sdk_message> <sdk_code>
user_message, sdk_code, sdk_message = e.args
logger.error("{}: {} Error code: {}", user_message, sdk_message, sdk_code)
if sdk_code == 7:
# Failed to connect to the device
logger.error("Retrying in 15 seconds...")
await asyncio.sleep(15)
else:
break
except (OSError, ConnectionRefusedError) as e:
# Connection to MQTT broker failed
logger.error("Error while connecting to MQTT broker: {}", e.strerror)
break
sys.exit(1)

0 comments on commit 180ea9e

Please sign in to comment.