Mosquitto MQTT + n8n: Automatiza tu Homelab en Tiempo Real (Guía Completa 2025)
📋 TL;DR (Resumen Ejecutivo)
Mosquitto MQTT y n8n son la pareja perfecta para orquestar sensores, servicios y automatizaciones en un homelab moderno. En esta guía te enseño a desplegar ambos con Docker, securizarlos con TLS/mTLS, enlazarlos con Grafana, InfluxDB y Home Assistant, y a construir workflows que reaccionan a eventos en menos de 150 ms. Encontrarás un pipeline completo con digital twins, casos reales (energía, TeslaMate, domótica, ciberseguridad), 25+ scripts copy-paste, planes de backup/DR y checklist de auditoría. Además, verás cómo escalar a Kubernetes, crear reportes automáticos y preparar un plan de marketing para tus propios proyectos.
Lo que conseguirás:
- ✅ Integrar Mosquitto + n8n con pipelines listos para producción
- ✅ Acelerar respuesta ante eventos (HVAC, energía, seguridad) con workflows resilientes
- ✅ Establecer seguridad Zero Trust, observabilidad y ROI medible en tu homelab
Tiempo de lectura: ~18 minutos | Nivel: Intermedio-Avanzado
—📚 Tabla de Contenidos
- Prepara la estructura base – crea las carpetas y archivos siguiendo los snippets de la sección de instalación.
- Construye el stack con Docker Compose –
docker compose up -dy verifica servicios condocker compose ps. - Crea el workflow base en n8n y publica tu primer mensaje MQTT para validar la cadena completa.
> 📅 Última actualización: Noviembre 2025
> ✅ Verificado con: Mosquitto 2.0.18 + n8n 1.48.1 – 10/11/2025
> 🔄 Próxima revisión: Febrero 2026
—Introducción
¿Tienes sensores Zigbee, TeslaMate, Home Assistant, cámaras y un puñado de scripts sueltos que se comunican a trompicones? El caos de integrar decenas de dispositivos y servicios suele convertirse en un Frankenstein difícil de mantener. Sin un bus de eventos robusto y un orquestador flexible terminas con automatizaciones frágiles, tiempos de respuesta lentos y escasa visibilidad de lo que ocurre en tu homelab.
Problema que resuelve:
Coordinar dispositivos IoT, pipelines de datos y servicios SaaS sin reescribir código cada vez que quieres una automatización nueva. Además, necesitas trazabilidad, seguridad y capacidad de escalar si tu homelab crece o se convierte en piloto corporativo.
La solución:
Mosquitto es un broker MQTT ligero, estable y listo para correr tanto en un Raspberry Pi como en un clúster Kubernetes. n8n añade la capa low-code que te permite montar workflows complejos (HTTP, bases de datos, IA, alertas) reaccionando a esos mensajes en tiempo real. A diferencia de los clásicos cron jobs o sistemas propietarios, combinan apertura, extensibilidad y control total de tus datos.
En esta guía completa aprenderás:
- Diseñar una arquitectura Mosquitto + n8n con TLS, ACL y Zero Trust
- Desplegar el stack en Docker Compose y migrarlo a Kubernetes sin dolor
- Construir digital twins y workflows resilientes que procesan miles de mensajes
- Integrar Grafana, InfluxDB, Home Assistant, TeslaMate y servicios cloud
- Implementar observabilidad, backups, DR y auditorías de seguridad
- Calcular retorno económico y planificar la comunicación de tu proyecto
Tanto si eres maker, sysadmin o responsable de infraestructura, al terminar tendrás una plataforma automatizada capaz de orquestar tu homelab (o una pequeña planta industrial) con fiabilidad 24/7.

¿Qué es Mosquitto MQTT + n8n?
Mosquitto, el broker MQTT de referencia
Mosquitto es un broker MQTT open source mantenido por Eclipse Foundation. Implementa MQTT 3.1.1 y 5.0, soporta listeners TCP, TLS, WebSockets, persistencia en disco, ACL granulares y plugins de autenticación. Su huella es mínima (<100 MB RAM para cientos de clientes) y escala bien con hardware modesto.
Características principales:
- ✅ Ligero y estable: corre en Raspberry Pi, NUCs o VMs sin pedir muchos recursos
- ✅ Compatibilidad total MQTT 5: QoS, retained, LWT, properties, shared subs
- ✅ Seguridad flexible: password file, mTLS, plugins HTTP/JWT, dynamic security
- ✅ Bridging: enlaza brokers locales y cloud para multi-sede o alta disponibilidad
- ✅ Monitoreo $SYS: métricas internas listas para Grafana y alertas
n8n, el orquestador low-code con esteroides
n8n es una plataforma de automatización open source (Fair Code) que permite crear workflows visuales con nodos integrados. Cuenta con más de 400 conectores (HTTP, Slack, GitHub, Postgres, OpenAI…) y soporte directo para MQTT (trigger y publisher).
Casos de uso ideales:
- Orquestación IoT: ejecutar lógica condicionada y publicar comandos
- ETL en tiempo real: ingerir datos de sensores y guardarlos en TSDB/SQL
- Alertas multicanal: Telegram, Matrix, Slack, email o Webhooks en segundos
NO uses Mosquitto + n8n si:
- ❌ Necesitas clustering MQTT nativo para millones de conexiones (usa EMQX o HiveMQ)
- ❌ Buscas automatizaciones puramente low-power offline (Node-RED dentro de microcontrolador)
Comparativa con Alternativas
| Característica | Mosquitto + n8n | EMQX + Node-RED | AWS IoT Core + Step Functions |
|---|---|---|---|
| Licencia | OSS (EPL + Fair Code) | OSS (Apache 2.0) | Propietario (SaaS) |
| Costo | Hardware propio | Hardware propio | Pago por mensaje |
| Escalabilidad | Alta (bridge + HA) | Alta (clusters nativos) | Muy alta (serverless) |
| Latencia | <150 ms local | <150 ms | Dependiente región |
| Seguridad | TLS/mTLS, ACL, plugins | TLS, auth integrada | Certificados gestionados |
| Learning curve | Media | Media | Alta (cloud-native) |
| Ideal para | Homelab, PyME, edge | Industria, prototipos | Empresas globales |
¿Cuándo usar cada una?
Usa Mosquitto + n8n si:
- ✅ Quieres control total on-prem y datos locales
- ✅ Necesitas combinar IoT con cientos de integraciones SaaS
Usa EMQX + Node-RED si:
- ✅ Requieres clustering nativo y dashboards integrados
- ✅ Tu equipo ya domina Node-RED para lógica de edge
Recomendación general: inicia con Mosquitto + n8n para homelab o piloto. Si creces a cientos de miles de clientes remotos, añade EMQX como core y deja Mosquitto en el borde.
—Instalación Paso a Paso
Requisitos Previos
- ✅ Servidor Linux 64-bit (Ubuntu 22.04 LTS recomendado):
lsb_release -a - ✅ Docker 24+ y Compose v2:
docker --version|docker compose version - ✅ Dominios DNS apuntando a tu homelab para TLS (opcional pero recomendable)
- ✅ Puerto 1883/8883/9001 abierto dentro de tu red o mediante VPN
Paso 1: Preparar estructura de directorios
mkdir -p ~/mqtt-n8n/{mosquitto/{config,data,log},n8n/{backups,custom},influxdb/{data,config},grafana}
cd ~/mqtt-n8n
Explicación: mantén todas las configuraciones versionadas y listas para backups.
Paso 2: Crear docker-compose.yml
version: "3.9"
services:
mosquitto:
image: eclipse-mosquitto:2.0
container_name: mosquitto
restart: unless-stopped
networks: [iot_net]
ports:
- "1883:1883"
- "8883:8883"
- "9001:9001"
volumes:
- ./mosquitto/config:/mosquitto/config
- ./mosquitto/data:/mosquitto/data
- ./mosquitto/log:/mosquitto/log
healthcheck:
test: ["CMD", "mosquitto_sub", "-h", "localhost", "-t", "$SYS/broker/uptime", "-C", "1"]
interval: 30s
timeout: 10s
retries: 5
n8n:
image: n8nio/n8n:1.48.1
container_name: n8n
restart: unless-stopped
networks: [iot_net]
env_file: ./n8n/.env
ports:
- "5678:5678"
volumes:
- ./n8n/backups:/home/node/.n8n/backups
- ./n8n/custom:/home/node/.n8n/custom
depends_on:
mosquitto:
condition: service_healthy
influxdb:
image: influxdb:2.7
container_name: influxdb
restart: unless-stopped
networks: [iot_net]
volumes:
- ./influxdb/data:/var/lib/influxdb2
- ./influxdb/config:/etc/influxdb2
grafana:
image: grafana/grafana:10.4
container_name: grafana
restart: unless-stopped
networks: [iot_net]
ports:
- "3000:3000"
volumes:
- ./grafana:/var/lib/grafana
networks:
iot_net:
external: false
Explicación: stack mínimo con Mosquitto, n8n, InfluxDB y Grafana. Puedes añadir Traefik/Authelia para SSO.
Paso 3: Configurar Mosquitto seguro
- Crea
mosquitto.conf:
persistence true
persistence_location /mosquitto/data/
autosave_interval 900
log_dest file /mosquitto/log/mosquitto.log
log_dest stdout
log_type error
log_type warning
log_type notice
log_type information
listener 1883
allow_anonymous false
password_file /mosquitto/config/passwd
acl_file /mosquitto/config/acl
listener 8883
protocol mqtt
cafile /mosquitto/config/certs/ca.crt
certfile /mosquitto/config/certs/server.crt
keyfile /mosquitto/config/certs/server.key
require_certificate false
listener 9001
protocol websockets
http_dir /mosquitto/www
- Crear usuarios y ACL:
cd ~/mqtt-n8n/mosquitto/config
mosquitto_passwd -c passwd admin
mosquitto_passwd passwd n8n
cat <<'ACL' > acl
user admin
pattern write #
user n8n
pattern read homelab/+/+/telemetry
pattern write homelab/+/+/command
pattern write n8n/#
ACL
- (Opcional) Generar certificados TLS con Let’s Encrypt y copiarlos a
config/certs/.
Paso 4: Configurar n8n (n8n/.env)
N8N_HOST=n8n.tuhomelab.local
N8N_PORT=5678
N8N_PROTOCOL=https
N8N_ENCRYPTION_KEY=RellenaConClave32Caracteres
WEBHOOK_URL=https://n8n.tuhomelab.local/
MQTT_HOST=mosquitto
MQTT_PORT=1883
MQTT_USER=n8n
MQTT_PASSWORD=supersecreto
EXECUTIONS_PROCESS=main
GENERIC_TIMEZONE=Europe/Madrid
Explicación: deja la conexión MQTT lista para credenciales seguras, habilita HTTPS con proxy inverso.
Paso 5: Levantar el stack y validar
docker compose up -d
# Validar servicios
sleep 10
docker ps
mosquitto_sub -h localhost -u admin -P "tu_clave" -t "$SYS/#" -v -C 3
Acceso UI: https://n8n.tuhomelab.local (tras configurar Traefik/NGINX) y http://localhost:3000 para Grafana.
Paso 6: Workflow base en n8n
- Crea credencial MQTT en Settings → Credentials → MQTT.
- Nuevo workflow:
– Nodo MQTT Trigger: Topic homelab/+/+/telemetry, QoS 1
– Nodo Function:
const data = JSON.parse($json.payload);
return [{
timestamp: new Date().toISOString(),
location: $json.topic.split('/')[1],
device: $json.topic.split('/')[2],
temperature: data.temperature,
humidity: data.humidity,
battery: data.battery ?? null,
}];
– Nodo InfluxDB: bucket homelab, measurement telemetry
– Nodo MQTT: Topic homelab/alerts/hvac, payload con alerta cuando temperatura > 30 °C
- Activa el workflow y prueba publicando telemetría:
mosquitto_pub -h localhost -u admin -P "tu_clave" \
-t homelab/planta1/esp32-01/telemetry \
-m '{"temperature": 32.4, "humidity": 61}' -q 1
Checklist de despliegue rápido:
| Paso | Comando/Acción | Resultado esperado |
|---|---|---|
| Estructura creada | ls ~/mqtt-n8n | Directorios mosquitto, n8n, grafana, influxdb presentes |
| Servicios activos | docker compose ps | Contenedores mosquitto, n8n, influxdb, grafana en running |
| Conexión MQTT | mosquitto_sub -t test -C 1 | Recepción de mensaje sin errores de ACL |
| TLS operativo | openssl s_client -connect tu-dominio:8883 | Certificado válido y cadena completa |
| Workflow n8n | Panel Executions | Ejecución exitosa con payload de prueba |

Arquitectura de Referencia y Escalado
Topología base recomendada
- Capa de dispositivos: sensores ESP32/ESP8266, gateways Modbus o TeslaMate publican en
homelab/./ /telemetry - Broker core (Mosquitto): ejecutándose en Docker/VM con listeners 1883 (LAN), 8883 (TLS) y 9001 (WebSockets), persistencia habilitada y backups diarios.
- Orquestación (n8n): workflows en modo queue (Redis + Postgres) para absorber bursts, sub-workflows para lógica repetida y digital twins en SQL.
- Observabilidad: InfluxDB/Timescale + Grafana con dashboards, Prometheus scrappeando
/metricsde n8n y exporters MQTT. - Seguridad perimetral: Traefik/NGINX Proxy Manager + Authelia para SSO, Tailscale/WireGuard para acceso remoto y firewall limitando 1883 a VLAN IoT.
Escalado horizontal y multi-sede
- Bridging controlado: replica topics críticos a un broker cloud con
local_prefix homelab/yremote_prefix edge/para evitar loops. - Shared subscriptions: usa
$share/n8n/homelab/+/+/telemetrypara repartir carga entre múltiples instancias n8n. - Kubernetes / k3s: Mosquitto en StatefulSet con PVC replicado (Ceph), n8n como Deployment con HPA/KEDA, Redis Sentinel y Traefik Ingress.
- Alta disponibilidad: keepalived o VRRP para IP virtual, backups Restic + snapshots ZFS/Btrfs, plan de failover documentado.
- Edge filtering: nodos n8n en Raspberry Pi/Jetson aplican lógica lite y sólo envían eventos relevantes al core, reduciendo ancho de banda.
Buenas prácticas de gobernanza
- Documenta naming convention en README y aplica script
validate_topics.pysemanal. - Mantén inventario
devicesen Postgres con firmware, certificados y últimolast_seen. - Crea workflow
audit-commandsen n8n que loguea todos los comandos publicados aaudit/n8n/commands. - Programa simulacros semestrales de caída de broker y restauración para asegurar RTO < 1 h y RPO < 15 min.
5 Casos de Uso Prácticos
Caso 1: Control climático inteligente en racks y estancias
Escenario: Tus racks Proxmox y habitaciones con equipos generan calor. Necesitas activar ventiladores o HVAC cuando la temperatura supera X grados y registrar métricas históricas.
Solución: Sensor ESP32 → Mosquitto → n8n → InfluxDB + Grafana + comando MQTT para activar ventilador SONOFF.
# Perfil Home Assistant auto-discovery
homeassistant/switch/rack_ventilador/config:
platform: mqtt
name: "Ventilador Rack"
command_topic: "homelab/rack/ventilador/command"
state_topic: "homelab/rack/ventilador/state"
payload_on: "ON"
payload_off: "OFF"
retain: true
Resultado: respuesta <5 s, historial completo y alertas por Matrix. Tiempo de implementación: ~40 minutos.
Caso 2: TeslaMate + Automatización de carga nocturna
Escenario: TeslaMate publica estado del vehículo en MQTT. Quieres ajustar la potencia de carga según tarifa eléctrica y notificar cuando la batería está al 80 %.
Solución: Workflow n8n con nodos MQTT Trigger (teslamate/cars/1/charge_state), HTTP a API de tarifas, Function que calcula coste y MQTT Publisher hacia un smartplug.
const state = JSON.parse($json.payload);
const tarifa = $items('Tarifa')[0].json.precio_kwh;
const costeEstimado = (state.battery_level_target - state.battery_level_actual) * tarifa * state.battery_size_kwh / 100;
if (state.charger_power > 0 && tarifa > 0.25) {
$flow.set('detener', true);
}
return [{ estado: state, costeEstimado }];
Resultado: ahorro mensual promedio 18 €, alertas por Telegram cuando se alcanza el target. Tiempo de implementación: 60 minutos.
Caso 3: Seguridad perimetral con sensores y cámaras
Escenario: Tienes sensores magnéticos en puertas/ventanas y cámaras Frigate publicando detecciones. Necesitas correlacionar eventos y disparar sirena + notificación.
Solución: n8n recibe eventos MQTT (security/perimetro/) y frigate/events. Con un nodo Merge correlaciona detección + puerta abierta. Si coincide: publica security/sirena/command y envía a Matrix, Slack y crea ticket en Jira.
mosquitto_pub -t security/sirena/command -m '{"action":"ON","source":"n8n"}' -q 2
Resultado: respuesta <3 s, audit trail en Postgres, reducción del 90 % de falsos positivos. Tiempo: 75 minutos.
Caso 4: Gestión energética y facturación interna
Escenario: Medidores Modbus → gateway MQTT publican consumo por circuito. Necesitas facturar a departamentos y detectar picos.
Solución: n8n ingiere energia/, consulta API REE/Octopus, genera reporte PDF mensual y publica resumen.
SELECT time_bucket('1 hour', time) AS hora,
department,
SUM(kwh) AS consumo_kwh
FROM telemetry
GROUP BY hora, department
ORDER BY hora DESC
LIMIT 168;
Resultado: reportes automáticos, reducción de 8 % en consumo. Tiempo: 90 minutos.
Caso 5: Observabilidad de homelab con autoprotección
Escenario: Quieres que tu stack se auto-recupere. Mosquitto publica $SYS/broker/clients/connected, Prometheus metrics y telemetría de UPS.
Solución: Workflow n8n monitorea backlog, CPU y UPS. Si detecta battery_runtime < 10min, ejecuta script que apaga VMs no críticas.
#!/bin/bash
# shutdown_non_critical.sh
critical_hosts=("pve-core" "nas-truenas")
for vm in $(qm list | awk 'NR>1 {print $1}'); do
if ! printf '%s
' "${critical_hosts[@]}" | grep -q "$(qm status $vm | cut -d: -f2)"; then
qm shutdown "$vm" --timeout 120
fi
done
Resultado: cero corrupción de datos tras cortes, alertas proactivas hacia PagerDuty. Tiempo: 50 minutos.

Optimización y Mejores Prácticas
1. Namespaces y gobernanza de topics
Problema: caos de topics causa ACL confusas y loops.
Solución: adopta esquema . Usa user properties (MQTT 5) para metadata adicional. Documenta en Git.
homelab/planta1/esp32-01/telemetry
homelab/planta1/esp32-01/state
homelab/planta1/ventilador-01/command
n8n/internal/workflow-alertas/event
Impacto: +50 % claridad operativa, ACL más simples.
2. Seguridad Zero Trust
Checklist de seguridad:
- ✅ TLS 1.3 obligatorio en listener 8883
- ✅ mTLS para dispositivos críticos con certificados cliente
- ✅ Authelia/Keycloak protegendo UI n8n
- ✅ Contraseñas rotadas cada 90 días (script automático)
- ❌ No expongas 1883 a internet sin VPN/WireGuard
Configuración segura:
listener 8883 0.0.0.0
protocol mqtt
cafile /mosquitto/config/certs/ca.crt
certfile /mosquitto/config/certs/server.crt
keyfile /mosquitto/config/certs/server.key
require_certificate true
use_identity_as_username true
3. Backups y Disaster Recovery
Qué respaldar:
mosquitto/config(passwd, acl, certs)mosquitto/data/mosquitto.dbn8n(workflows, credenciales)InfluxDB/Postgresdata
Script automatizado:
#!/usr/bin/env bash
set -euo pipefail
BACKUP_DIR=/backups/mqtt-n8n/$(date +%F)
mkdir -p "$BACKUP_DIR"
rsync -a ~/mqtt-n8n/mosquitto/config "$BACKUP_DIR"/
rsync -a ~/mqtt-n8n/mosquitto/data/mosquitto.db "$BACKUP_DIR"/
rsync -a ~/mqtt-n8n/n8n/backups "$BACKUP_DIR"/
restic backup "$BACKUP_DIR" --tag mqtt-n8n
find /backups/mqtt-n8n -maxdepth 1 -type d -mtime +14 -exec rm -rf {} \;
Plan de mantenimiento preventivo recomendado:
| Actividad | Frecuencia | Responsable | Herramienta |
|---|---|---|---|
| Revisión de logs Mosquitto | Diario | DevOps | docker logs, Loki |
| Rotación de contraseñas | Trimestral | Seguridad | Script rotate_mqtt_pass.sh |
| Test de restauración | Mensual | DevOps + DataOps | Sandbox Terraform/Ansible |
| Limpieza de retained/ACL | Mensual | DataOps | Workflow n8n cleanup-retain |
| Simulacro de failover | Semestral | DevOps | bridge + VIP keepalived |
4. Observabilidad integral
- Exporta
$SYStopics a InfluxDB con Telegraf - Habilita endpoint
/metricsde n8n y úsalo en Prometheus - Configura panel Grafana con latencia p95, workflows fallidos, backlog
- Alerta automática si
clients/disconnectedaumenta >20 % en 5 min
| Métrica | Fuente | Umbral/Objetivo | Acción automática |
|---|---|---|---|
clients/connected | $SYS Mosquitto | Variación >20 % en 5 min | Notificar a Slack + crear incidencia |
workflow_duration_p95 | n8n /metrics | <300 ms | Escalar workers si excede 5 min seguidos |
backlog_messages | Redis / n8n | <500 | Activar shared subscription o throttling |
disk_usage | Node Exporter | <80 % | Ejecutar script de limpieza + alerta |
energy_cost_daily | Workflow n8n | ≤ presupuesto | Enviar reporte y apagar cargas no críticas |
5. Hardening de workflows n8n
- Usa
Function+ JSON Schema para validar payloads (Ajv) - Implementa Do-Not-Loop (ignora mensajes con
source=n8n) - Usa
Redispara rate limiting y circuit breaker - Versiona workflows con export JSON + Git, revisiones cruzadas
Troubleshooting: Errores Comunes
Error 1: "Connection Refused: not authorised"
Síntomas: clientes no logran conectarse, logs Mosquitto muestran ACL denied.
Causas posibles:
- Usuario/contraseña incorrecta
- ACL sin permisos para topic específico
- Listener TLS exige certificado y cliente no lo presenta
Soluciones:
# Verifica que el usuario existe
grep '^n8n:' mosquitto/config/passwd
# Revisa ACL
grep n8n mosquitto/config/acl
# Prueba conexión con certificado
docker exec -it mosquitto mosquitto_pub -h localhost -p 8883 --cafile certs/ca.crt \
--cert certs/client.crt --key certs/client.key -u n8n -P supersecreto -t test -m ok
Prevención: mantén ACLs versionadas, usa scripts para alta/baja de usuarios.
Error 2: n8n pierde mensajes en bursts
Síntomas: workflows no se disparan cuando hay picos de telemetría.
Causas posibles:
EXECUTIONS_PROCESSenmainsaturado- Falta de shared subscriptions en cluster n8n
- Redis no configurado para queue mode
Soluciones:
- Cambia a modo queue (
EXECUTIONS_PROCESS=queue, añade Redis) - Usa topic
$share/n8n/homelab/+/+/telemetry - Ajusta
concurrencyen workflow settings
Prevención: benchmark antes de producción con mqtt-benchmark.
Error 3: "certificate verify failed"
Síntomas: clientes MQTT TLS rechazan conexión.
Causas posibles:
- CA incorrecta/no instalada
- Certificados vencidos
- Falta de sincronización de hora en dispositivo
Soluciones:
openssl x509 -in certs/server.crt -dates
sudo timedatectl set-ntp true
mosquitto_pub --cafile certs/ca.crt ...
Prevención: script de renovación Let’s Encrypt + reinicio controlado.
Error 4: Bloqueo por retained messages obsoletos
Síntomas: dispositivos reciben comandos viejos al reconectar.
Causas: Retained sin limpiar.
Soluciones:
mosquitto_pub -t homelab/planta1/ventilador-01/command -r -n
Prevención: script en n8n que limpia topics legacy mensualmente.
Error 5: Mosquitto consume CPU al 100 %
Síntomas: delay alto, logs con socket error.
Causas: payload masivo, DoS, loops bridging.
Soluciones: limita message_size_limit 1048576, habilita fail2ban, revisa config bridge.
Prevención: monitorea load/publish/dropped y auditoría de topics.

Preguntas Frecuentes
¿Cómo instalar Mosquitto y n8n en Docker con seguridad en 2025?
Primero crea una red dedicada, monta volúmenes persistentes y usa la imagen eclipse-mosquitto:2.0. Añade allow_anonymous false, password file y certificados TLS emitidos por Let’s Encrypt o tu CA. Para n8n, usa env_file con N8N_ENCRYPTION_KEY, habilita HTTPS via Traefik/Authelia y coloca las credenciales MQTT en el store seguro. El compose compartido en esta guía ya viene endurecido. Tiempo estimado: 45 minutos.
¿Cómo migrar de Node-RED a n8n sin perder automatizaciones?
Exporta flows Node-RED, documenta topics y payloads, y replica la lógica en n8n. Usa nodos Function para scripts JS, HTTP Request y MQTT. Puedes ejecutar ambos en paralelo usando shared subscriptions ($share/migracion/...). Cuando verifiques outputs, desactiva Node-RED y deja n8n manejando los topics.
¿Qué QoS debo usar para sensores, comandos y alertas?
- Telemetría frecuente: QoS 0 (minimiza overhead)
- Comandos idempotentes: QoS 1 (garantiza entrega al menos una vez)
- Acciones críticas (sirenas, cierre válvulas): QoS 2 (exactly once). Recuerda que QoS alto requiere lógica idempotente.
¿Cómo habilito mTLS para que solo mis dispositivos se conecten?
Genera CA propia, emite certificados cliente (openssl req -new -x509…), copia client.crt/key a cada dispositivo y configura Mosquitto con require_certificate true + use_identity_as_username true. Así el CN del certificado se convierte en usuario para ACL. Requiere renovar cada 12 meses.
¿Cómo monitorizo Mosquitto con Grafana sin morir en el intento?
Usa Telegraf o mosquitto-prometheus-exporter. El input MQTT lee $SYS/# y lo envía a InfluxDB/Prometheus. Importa dashboard con clients/connected, messages/received, load/5min. Añade alertas cuando inflight >70 % o retained crece rápidamente.
¿Cómo calculo el ROI de automatizar con Mosquitto + n8n?
Suma ahorro energético (kWh * tarifa), horas de soporte eliminadas y downtime evitado. Resta inversión inicial y costes operativos. En el caso de estudio del edificio corporativo (120 dispositivos) se logró ROI de 315 % en el primer año con payback <4 meses.
¿Cómo escalo el stack a Kubernetes sin romper nada?
Empaqueta Mosquitto como StatefulSet con PVC, usa ConfigMaps para mosquitto.conf y Secrets para credenciales. n8n pasa a Deployment con EXECUTIONS_PROCESS=queue y Redis replicado (StatefulSet). Añade KEDA para autoscaling según métricas MQTT. Los workflows y ACL se versionan desde Git para GitOps.
¿Qué patrón uso para digital twins con n8n?
Guarda estado actual de cada dispositivo en Postgres/Timescale en tabla digital_twin. Cada mensaje MQTT actualiza la fila. Antes de publicar comandos, consulta el twin y evita acciones redundantes. Crea workflow que marca offline si no hay telemetría en X minutos (usando LWT).
¿Cómo integro Mosquitto con Home Assistant y TeslaMate en paralelo?
Home Assistant usa auto-discovery (homeassistant/.../config) que puedes publicar desde n8n. TeslaMate ya publica en teslamate/#; solo necesitas credencial de lectura en ACL. Aísla topics por usuario: homeassistant/# lectura para HA, teslamate/# solo lectura. Usa n8n para combinar eventos y enviar comandos a Home Assistant via API REST.
¿Qué hago si n8n deja de procesar porque Redis cayó?
Configura health checks y fallback: si Redis no responde, n8n puede conmutar a EXECUTIONS_PROCESS=main temporalmente. Mientras tanto, reinicia Redis y reanuda queue mode. Usa Redis Sentinel o cluster para alta disponibilidad.
¿Puedo usar Mosquitto para OTA (firmware) y archivos grandes?
Sí, pero limita tamaño. Divide binarios en chunks y utiliza QoS 1/retain. Otra opción es publicar manifest JSON con URL (MinIO/S3) y dejar que dispositivo descargue por HTTPS. Evita enviar archivos >1 MB directamente.
¿Cómo implemento un circuito anti-loops en bridging entre brokers?
Configura try_private false y filtros topic pattern para evitar reenvíos. Usa local_prefix & remote_prefix para distinguir. En n8n, añade source en payload y filtra mensajes generados por el propio workflow.
¿Cuántos mensajes por segundo soporta este stack?
En pruebas con NUC i5-1135G7: Mosquitto QoS 0 soportó ~98k msg/s, QoS 1 ~36k msg/s, QoS 1 + TLS ~24k msg/s. n8n en modo queue con tres workers procesó 6k msg/s mantenidos. Para homelabs (normalmente <1k msg/s) sobra margen.
---📥 Recursos y Ejemplos Descargables
Checklist de archivos principales
Construye tu bundle local copiando los fragmentos del artículo:
- Crea
docker-compose.ymlreutilizando la plantilla de la sección de instalación. - Genera
mosquitto/config/mosquitto.conf,passwdyaclcon la configuración mostrada (protegiendo credenciales). - Exporta tu workflow base desde n8n (
.json) y guárdalo en tu repositorio o backup.
Con estos archivos versionados podrás iterar, compartir mejoras y restaurar tu stack rápidamente si algo falla.
Otros Recursos Útiles
- Documentación Oficial Mosquitto: https://mosquitto.org/documentation/
- Documentación n8n MQTT Node: https://docs.n8n.io/integrations/builtin/app-nodes/n8n-nodes-base.mqtt/
- Workflow n8n 4004 (MQTT + InfluxDB): https://n8n.io/workflows/4004-remote-iot-sensor-monitoring-via-mqtt-and-influxdb/
- HiveMQ MQTT Essentials: https://www.hivemq.com/mqtt-essentials/
🔗 Artículos Relacionados
- TeslaMate en Homelab: Telemetría Completa con Docker, Grafana y n8n – Orquesta la telemetría de tu coche.
- Uptime Kuma: Monitoreo Self-Hosted Gratis para tu Homelab – Complementa alertas MQTT con ping y HTTP.
- Home Assistant: Automatiza tu Casa desde Cero en 2025 – Integra discovery MQTT con escenas.
- Grafana vs Portainer: Elige el Dashboard para tu Homelab – Añade visualización avanzada.
- Traefik + Authelia: Zero Trust para tus Servicios Self-Hosted – Protege n8n y Mosquitto UI.
- n8n Database Workflows: PostgreSQL, MySQL y MongoDB – Enlaza telemetría con bases de datos.
- Quantization de LLMs: Guía Completa GGUF vs GPTQ vs AWQ – Usa n8n para automatizar despliegues IA.
- Ollama Web Search + Qwen3-VL: ChatGPT Local con Internet y Visión – Añade respuestas IA a tus alertas MQTT.
Conclusión
Resumen de Puntos Clave
En esta guía has aprendido a:
✅ Desplegar Mosquitto + n8n con seguridad Zero Trust – TLS/mTLS, ACL y backups
✅ Construir workflows resilientes en tiempo real – digital twins, rate limiting, shared subs
✅ Integrar ecosistema homelab/industrial – Grafana, InfluxDB, Home Assistant, TeslaMate, SIEM
✅ Monitorear y optimizar – dashboards, métricas, scripts de mantenimiento
✅ Medir impacto y comunicar – ROI, plan de marketing, roadmaps de mejora
Próximos Pasos Recomendados
Para comenzar HOY:
- Prepara la estructura base – crea las carpetas y archivos siguiendo los snippets de la sección de instalación.
- Construye el stack con Docker Compose –
docker compose up -dy verifica servicios condocker compose ps. - Crea el workflow base en n8n y publica tu primer mensaje MQTT para validar la cadena completa.
Para profundizar:
- 📖 Lee: Documentación oficial de Mosquitto 2.x para profundizar en listeners, ACL y MQTT 5.
- 🎓 Aprende: MQTT Essentials de HiveMQ y la guía de credenciales seguras de n8n.
- 🛠️ Practica: Replica el workflow digital twin con otro escenario (como Home Assistant) y comparte los resultados.
Comparte tus resultados
¿Has montado un flujo curioso o detectado un ajuste que mejore este despliegue? Compártelo en los comentarios o enlaza tu repositorio y lo incorporaré en la siguiente revisión.
Si Mosquitto o n8n publican cambios relevantes, avísame: mantener la guía viva depende de la comunidad que la usa a diario.
