diff --git a/gauge.py b/gauge.py index 8179f5d..4e13475 100644 --- a/gauge.py +++ b/gauge.py @@ -530,17 +530,12 @@ _WIFI_CONNECT_ATTEMPTS = 3 def _reset_wifi_interface(): global _wifi_sta _wifi_sta = network.WLAN(network.STA_IF) + _wifi_sta.active(True) try: _wifi_sta.disconnect() except Exception: pass - try: - _wifi_sta.active(False) - utime.sleep_ms(500) - except Exception: - pass - _wifi_sta.active(True) - utime.sleep_ms(500) + utime.sleep_ms(1000) def connect_wifi(ssid, password, timeout_s=15, force_reconnect=False): @@ -906,6 +901,11 @@ def connect_mqtt(): except Exception as e: last_error = e log_err(f"MQTT connect attempt {attempt + 1} failed: {e}") + try: + client.sock.close() + except Exception: + pass + gc.collect() utime.sleep_ms(1000) _mqtt_connected = False @@ -963,7 +963,7 @@ def check_mqtt(): keepalive=30, ) client_ref.set_callback(on_message) - _mqtt_connect_with_timeout(client_ref) + client_ref.connect() _mqtt_connected = True info("MQTT reconnected!") schedule_discovery() @@ -974,6 +974,11 @@ def check_mqtt(): return True except Exception as 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) log_err("MQTT reconnection failed after 3 attempts")