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

Tras un corte de luz, 60 ESP32 entran en un bucle de reconexión interminable

Tras un corte de luz, 60 ESP32 entran en un bucle de reconexión interminable

Resuelto 4 3

Traducido del Türkçe por IA ·

Hola, perdón de antemano por lo largo que es el mensaje.En la planta de tratamiento de agua donde trabajo planeamos instalar unas 200 pequeñas cajas de medición basadas en ESP32 para el nivel, el caudal y el estado de las bombas. Todas estarán en el mismo edificio, se conectarán al mismo punto de acceso y enviarán los datos a Hermetry mediante MQTT. Primero hicimos un piloto con 60 de ellas.Durante el funcionamiento normal no hay problemas. Pero la semana pasada hubo un corte de luz de 20 minutos en el edificio, y cuando volvió la electricidad, la mayoría de las cajas no lograron conectarse bien. En el puerto serie que estoy monitorizando hay un ciclo constante de conectar-desconectar, y en el panel los dispositivos cambian continuamente entre en línea y fuera de línea. Revisé la pestaña Log de los dispositivos:

Connected via mqtts
Disconnected  Reason: takeover
Connected via mqtts
Disconnected  Reason: takeover

Además, los administradores recibieron una notificación llamada «takeover fight».Lo primero que se me ocurre es el punto de acceso. Usamos un AP de tipo doméstico, que podría estar sobrecargado con 60 clientes, y no sé qué pasará con 200. Mientras tanto, para acelerar el piloto, cargamos el mismo firmware y el mismo token de acceso en todas las cajas. Lo menciono también, no sé si tiene que ver.

♥ 0

Traducido del Türkçe por IA ·

La mayoría de los APs domésticos se saturan con 30-50 clientes, creo que ahí está el problema. Necesitamos un AP empresarial.

Sahadan selamlar.
♥ 0

Traducido del Türkçe por IA ·

Ilgaz tiene razón con el AP, pero el takeover en el log dice otra cosa, y la causa real es la última frase que escribiste.En Hermetry cada dispositivo tiene una sola sesión. Cuando llega una segunda conexión del mismo dispositivo, se cierra la primera y se toma su lugar. Si 60 cajas se conectan con el mismo token, Hermetry las ve como un único dispositivo: cada conexión nueva tira la anterior, la que cae vuelve a conectarse, y el bucle no termina nunca. Un dispositivo que hace esto de forma continua desde dos redes se retiene un tiempo, y eso es la notificación «takeover fight». Normalmente las conexiones están repartidas, por eso no lo habías notado; al volver la luz y bajar las 60 a la vez, explotó.Qué hacer:1. Cada caja con sus propias credenciales. En lugar de añadir los 200 dispositivos uno a uno, puedes hacer una importación masiva por CSV desde la página Imports (hasta 1.000 filas por archivo). Primero muestra una ejecución en seco, y los tokens de los dispositivos nuevos vienen en un archivo que solo se puede descargar una vez. Como alternativa, puedes usar una clave de provisioning en el perfil para que cada dispositivo obtenga su propio token en el primer arranque.2. Añade un retardo aleatorio antes de reconectar. Si llega CONNACK 3, espera y reintenta, pero no dejes que todos lo hagan en el mismo segundo:

uint32_t backoff = 2000 + (esp_random() % 8000);   // 2-10 sn
if (!mqtt.connected()) { delay(backoff); mqtt.connect(id, token, ""); }

3. Keepalive entre 30 y 300 segundos. 60 está bien.4. No confíes en un único AP doméstico para 200 cajas; repártelas entre 2-3 APs empresariales.Los detalles de sesión y CONNACK están en la página de MQTT.

Kayıtta yoksa olmamıştır.
Solución aceptada♥ 5

Traducido del Türkçe por IA ·

Esra, muchas gracias, exactamente así fue. Importé los 60 dispositivos mediante CSV y cargamos los tokens del archivo descargado en las cajas según el número de serie. Ayer quitamos el fusible a propósito y lo volvimos a poner, y todos se conectaron limpiamente en 15 segundos, sin ningún takeover en el Log.También cambiamos el AP: para llegar a 200 lo estamos dividiendo en tres APs de techo.

♥ 0

Traducido del Türkçe por IA ·

+1 por el jitter. En nuestro caso, en campo, 40 sensores que intentaban conectarse al mismo tiempo provocaron que algunos quedaran bloqueados por un bloqueo de direcciones; se solucionó con un retardo aleatorio.

Sahadan selamlar.
♥ 2
Viendo 5 entradas – de la 1 a la 5 (de un total de 5)
  • Debes estar registrado para responder a este debate.

Únete a la conversación

Inicia sesión para preguntar y responder, dar me gusta a las publicaciones útiles y marcar la respuesta que resolvió tu problema. Cada aportación suma puntos y niveles.

Compartir