MQTT trouble
This commit is contained in:
21
gauge.py
21
gauge.py
@@ -530,17 +530,12 @@ _WIFI_CONNECT_ATTEMPTS = 3
|
|||||||
def _reset_wifi_interface():
|
def _reset_wifi_interface():
|
||||||
global _wifi_sta
|
global _wifi_sta
|
||||||
_wifi_sta = network.WLAN(network.STA_IF)
|
_wifi_sta = network.WLAN(network.STA_IF)
|
||||||
|
_wifi_sta.active(True)
|
||||||
try:
|
try:
|
||||||
_wifi_sta.disconnect()
|
_wifi_sta.disconnect()
|
||||||
except Exception:
|
except Exception:
|
||||||
pass
|
pass
|
||||||
try:
|
utime.sleep_ms(1000)
|
||||||
_wifi_sta.active(False)
|
|
||||||
utime.sleep_ms(500)
|
|
||||||
except Exception:
|
|
||||||
pass
|
|
||||||
_wifi_sta.active(True)
|
|
||||||
utime.sleep_ms(500)
|
|
||||||
|
|
||||||
|
|
||||||
def connect_wifi(ssid, password, timeout_s=15, force_reconnect=False):
|
def connect_wifi(ssid, password, timeout_s=15, force_reconnect=False):
|
||||||
@@ -906,6 +901,11 @@ def connect_mqtt():
|
|||||||
except Exception as e:
|
except Exception as e:
|
||||||
last_error = e
|
last_error = e
|
||||||
log_err(f"MQTT connect attempt {attempt + 1} failed: {e}")
|
log_err(f"MQTT connect attempt {attempt + 1} failed: {e}")
|
||||||
|
try:
|
||||||
|
client.sock.close()
|
||||||
|
except Exception:
|
||||||
|
pass
|
||||||
|
gc.collect()
|
||||||
utime.sleep_ms(1000)
|
utime.sleep_ms(1000)
|
||||||
|
|
||||||
_mqtt_connected = False
|
_mqtt_connected = False
|
||||||
@@ -963,7 +963,7 @@ def check_mqtt():
|
|||||||
keepalive=30,
|
keepalive=30,
|
||||||
)
|
)
|
||||||
client_ref.set_callback(on_message)
|
client_ref.set_callback(on_message)
|
||||||
_mqtt_connect_with_timeout(client_ref)
|
client_ref.connect()
|
||||||
_mqtt_connected = True
|
_mqtt_connected = True
|
||||||
info("MQTT reconnected!")
|
info("MQTT reconnected!")
|
||||||
schedule_discovery()
|
schedule_discovery()
|
||||||
@@ -974,6 +974,11 @@ def check_mqtt():
|
|||||||
return True
|
return True
|
||||||
except Exception as e2:
|
except Exception as e2:
|
||||||
log_err(f"MQTT reconnect attempt {attempt + 1} failed: {e2}")
|
log_err(f"MQTT reconnect attempt {attempt + 1} failed: {e2}")
|
||||||
|
try:
|
||||||
|
client_ref.sock.close()
|
||||||
|
except Exception:
|
||||||
|
pass
|
||||||
|
gc.collect()
|
||||||
utime.sleep_ms(2000)
|
utime.sleep_ms(2000)
|
||||||
|
|
||||||
log_err("MQTT reconnection failed after 3 attempts")
|
log_err("MQTT reconnection failed after 3 attempts")
|
||||||
|
|||||||
Reference in New Issue
Block a user