MQTT (protocolo de mensajería ligera para IoT) · Broker · IoT · Mensajería ligera
Mosquitto — Broker MQTT¶
El servicio de mensajería ligera que conecta todos los sensores y dispositivos de la finca. Sería el sistema circulatorio de la capa física.
Como usuario¶
Qué podrás hacer¶
Completamente transparente — no se interactúa con él directamente. Todos los sensores (ESP32 (microcontrolador WiFi para sensores), Shelly (actuador eléctrico WiFi)) publican sus datos aquí y los actuadores reciben órdenes desde aquí.
Cómo se accederá¶
| Plataforma | Cómo |
|---|---|
| Navegador | No tiene interfaz de usuario |
| Ubuntu | No aplica |
| Android | No aplica |
| FireTV | No aplica |
| Usuarios | Los datos fluyen automáticamente |
Primeros pasos (previstos)¶
No hay interacción de usuario. El broker MQTT funciona de forma transparente como capa de transporte entre los dispositivos de campo y los servicios que los consumen.
Integración con otros servicios de SmallCountry¶
| Servicio | Relación |
|---|---|
| Node-RED | Principal consumidor y publicador |
| Home Assistant | Lee estados |
| Grafana | Métricas vía Node-RED |
| ESP32 y Shelly | Dispositivos de campo |
| n8n | Eventos para flujos lógicos |
Servicios que lo hacen posible¶
- ZFS — persistencia de mensajes retenidos
Para el administrador (diseño previsto)
Datos del servicio¶
| LXC (contenedor ligero de Proxmox) | 121 |
| IP | 10.10.30.121 |
| Tier | A |
| Impacto | 🔴 Crítico (sin MQTT no hay comunicación con los dispositivos de campo) |
Docker: eclipse-mosquitto:latest.
Almacenamiento persistente¶
ZFS (sistema de archivos con integridad de datos): rpool/datos/mosquitto → /opt/mosquitto/
Subdirectorios: config/ data/ logs/
Backup: PBS (sistema de copias de seguridad de Proxmox) diario + ZFS snapshot @15min. Persistencia habilitada (mensajes retenidos en disco).
Healthcheck¶
Logs y diagnóstico¶
Backup manual¶
Problemas comunes¶
- Sensores no responden → Verificar que Mosquitto acepta conexiones en
:1883. - Dispositivos no se conectan → Comprobar firewall.
Para el arquitecto (diseño previsto)
Relaciones con otros servicios¶
flowchart LR
ESP32 -->|MQTT| Mosquitto
Shelly -->|MQTT| Mosquitto
Mosquitto -->|MQTT| Node-RED
Node-RED -->|HTTP| Grafana
Configuración de red¶
| Bridge | Puerto | Acceso desde |
|---|---|---|
| vmbr3 | 1883 (MQTT) | Dispositivos IoT |
| vmbr3 | 9001 (WebSocket) | Clientes web |
Sin proxy Caddy — acceso directo desde vmbr3. Sin Authentik — la seguridad es por segmentación de red (solo vmbr3). Persistencia obligatoria: los mensajes retenidos sobreviven a reinicios.
Orquestación¶
| Componente | Path |
|---|---|
| Rol Ansible | roles/mosquitto/ |
| Playbook | deploy-mosquitto.yml |
| Módulo OpenTofu | modules/mosquitto/ |
| Semaphore | Proyecto mosquitto |
| Forgejo Actions | .forgejo/workflows/mosquitto.yml |
| Repo Forgejo | infra-core/ |
| Ficha versionada | docs/fichas/programas/mosquitto.md |