Novedad: el cortafuegos de IA supervisa toda la plataforma y explica cada incidente con palabras sencillas. Vea cómo funciona

Respuesta: El tutorial antiguo usa wpa-roam en /etc/network/interfaces, otros dicen wpa-conf. ¿Cuál?

Traducido del English por IA ·

Todavía tenemos algunos de estos en campo. La diferencia está en quién controla DHCP.Con wpa-conf, ifupdown inicia wpa_supplicant con tu configuración y luego ejecuta dhclient en wlan0 por sí mismo. wpa_supplicant elige una red de los bloques del archivo; a ifupdown no le importa cuál. Es sencillo, y suficiente para «conectarse a cualquiera de estas dos que esté disponible».Con wpa-roam, wpa_supplicant funciona en modo de roaming y llama a wpa_action en cada conexión y desconexión, que a su vez levanta una interfaz lógica. Cada bloque de red puede llevar un id_str que indica la interfaz lógica a usar, y cualquiera sin él recae en iface default. Está pensado para tener ajustes IP distintos por red. El problema es que wpa_action debe ver la desconexión para liberar el arrendamiento anterior; cuando el nodo se traslada y el AP desaparece en un orden extraño, quedas asociado sin ningún arrendamiento. Ese es el síntoma que tenéis en campo.Para dos redes con DHCP, usa wpa-conf y prioridades:

# /etc/network/interfaces
allow-hotplug wlan0
iface wlan0 inet dhcp
    wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf

# /etc/wpa_supplicant/wpa_supplicant.conf
network={
    ssid="LAB-WIFI"
    psk="..."
    priority=10
}
network={
    ssid="FIELD-AP"
    psk="..."
    priority=5
}

En el lado de Hermetry, cada cambio entre redes elimina la sesión MQTT, así que haz que tu cliente se reconecte con backoff y vuelva a suscribirse. Si el nodo tiene una alarma de desconexión, ajusta su tiempo de open-after por encima de lo que tarda caminar del laboratorio a la parcela, o recibirás una en cada viaje.

Solución aceptada♥ 4