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

Respuesta: ¿ESP8266 como broker MQTT local para que los sensores sigan funcionando cuando se cae internet?

Traducido del English por IA ·

Probé exactamente lo de uMQTTBroker en casa el año pasado y lo dejé, luego hice esto, que lleva 8 meses funcionando bien. No soy experto, así que tómalo como «lo que me funcionó a mí».Una Pi Zero 2 W con Mosquitto es el broker local. Los nodos ESP8266 publican en él por la LAN; el puerto 1883 sin cifrar está bien ahí porque nunca sale de casa. La lógica del zumbador es un pequeño script de Python en la Pi que se suscribe localmente, así que funciona sin nada de internet.Para Hermetry, la Pi es un dispositivo marcado como gateway (el interruptor «Este dispositivo es un gateway» al añadirlo). Un segundo script se suscribe a todo en el broker local, marca cada lectura con la hora de la Pi (sincronizada por NTP, compruébalo con timedatectl), las guarda en un archivo SQLite y las envía con paho-mqtt sobre TLS:

topic: v1/gw/telemetry
{
  "freezer-1": [{"ts": 1762941600000, "values": {"temp": -18.6, "amps": 1.92}}],
  "gate":      [{"ts": 1762941605000, "values": {"open": 0}}]
}

Cada nodo se convierte en un dispositivo hijo con su nombre. Solo borra una fila de SQLite después del PUBACK. Cuando vuelve internet, envía el acumulado del más antiguo al más reciente, por lotes, y las lecturas se registran en su hora real en el historial.Dos cosas que aprendí a las malas. Hermetry ignora el flag de retain y no hace bridge a tu broker, así que no te apoyes en ninguno de los dos. Y un acumulado grande se vacía a la velocidad de «Replay messages per second» del perfil, así que tras un corte largo tarda un rato en ponerse al día; es normal.La página que seguí fue Devices behind a gateway.

Ask me about 4–20 mA.
Solución aceptada♥ 9