Retry mqtt connection on unreachable network

This commit is contained in:
Odd Stråbø 2022-03-09 23:41:37 +01:00
parent 1e41bdd2dc
commit f030b460c8
1 changed files with 19 additions and 5 deletions

View File

@ -130,11 +130,25 @@ class MqttConsumer(BaseConsumer):
self.client.will_set( self.client.will_set(
f"{self.topic_prefix}/available", payload="offline", retain=True f"{self.topic_prefix}/available", payload="offline", retain=True
) )
self.client.connect( while True:
settings["client"]["host"], try:
settings["client"]["port"], self.client.connect(
settings["client"]["keepalive"], settings["client"]["host"],
) settings["client"]["port"],
settings["client"]["keepalive"],
)
break
except OSError as err:
# Network is unreachable
if err.errno == 101:
pass
# Temporary failure in name resolution
elif err.errno == -3:
pass
else:
raise
print(err)
sleep(0.1)
def config(self, settings: Dict[str, Any]): def config(self, settings: Dict[str, Any]):
super().config(settings) super().config(settings)