IoT · MQTT (protocolo de mensajería ligera para IoT) · Automatización · Tiempo real
Node-RED — Motor de automatización en tiempo real¶
Conectaría sensores, actuadores y servicios en tiempo real. Gestionaría la bomba del pozo, las alertas de colmenas y el control de riego. Sería la capa física de SmallCountry.
Como usuario¶
Qué podrás hacer¶
No se usa directamente. Lo que hace:
- Leer sensores de la finca y el hogar
- Controlar actuadores (bomba, riego, luces)
- Publicar datos en MQTT para que otros servicios los consuman
- Ejecutar automatizaciones de baja latencia
Cómo se accederá¶
| Plataforma | Cómo |
|---|---|
| Navegador | Solo admin: https://nodered.sc |
| Ubuntu | No aplica para usuarios |
| Android | No aplica para usuarios |
| FireTV | No aplica |
| Usuarios | Efectos visibles (riego automático, alertas) |
Primeros pasos (previstos)¶
Los usuarios no interactúan con Node-RED. Los flows funcionan automáticamente. El resultado se percibe en forma de riego automático, alertas de campo, y control de climatización.
Integración con otros servicios de SmallCountry¶
| Servicio | Relación |
|---|---|
| Mosquitto | Broker MQTT |
| Home Assistant | Envía estados de dispositivos |
| Grafana | Datos de sensores en dashboards |
| n8n | Recibe eventos para flujos complejos |
| farmOS | Registro de actividad agrícola |
| ntfy | Alertas de campo |
Servicios que lo hacen posible¶
Para el administrador (diseño previsto)
Datos del servicio¶
| LXC (contenedor ligero de Proxmox) | 120 |
| IP | 10.10.30.120 |
| Tier | A |
| Impacto | 🔴 Crítico (controla la capa física) |
Docker: nodered/node-red:latest.
Almacenamiento persistente¶
ZFS (sistema de archivos con integridad de datos): rpool/datos/nodered → /opt/nodered/
Subdirectorios: config/ data/ logs/
Backup: PBS (sistema de copias de seguridad de Proxmox) diario + ZFS snapshot @15min + flows versionados en Forgejo.
Healthcheck¶
Watchdog systemd + supervisor secundario en Proxmox que verifica /health cada 2 min.
Logs y diagnóstico¶
Backup manual¶
Problemas comunes¶
- Flows no responden → Verificar conexión MQTT con Mosquitto.
- Bomba no se activa → Verificar Shelly (actuador eléctrico WiFi) y MQTT.
Para el arquitecto (diseño previsto)
Relaciones con otros servicios¶
flowchart LR
Caddy -->|TLS| Node-RED
Node-RED -->|MQTT| Mosquitto
Node-RED -->|Push| ntfy
Node-RED -->|Webhook| n8n
Configuración de red¶
| Bridge | Puerto | Acceso desde |
|---|---|---|
| vmbr3 | 1880 | Caddy (LXC 102) |
En Pi-hole¶
En Caddy¶
En Authentik¶
Provider: OAuth2/Proxy. Grupos: admin.
Orquestación¶
| Componente | Path |
|---|---|
| Rol Ansible | roles/nodered/ |
| Playbook | deploy-nodered.yml |
| Módulo OpenTofu | modules/nodered/ |
| Semaphore | Proyecto nodered |
| Forgejo Actions | .forgejo/workflows/nodered.yml |
| Repo Forgejo | infra-core/ |
| Ficha versionada | docs/fichas/programas/nodered.md |
Node-RED es Capa 2 (tiempo real). Depende de Mosquitto pero no de n8n. Si Node-RED cae, los dispositivos Shelly/ESP32 (microcontrolador WiFi para sensores) mantienen su último estado (resiliencia por hardware). Límite conocido: si Node-RED entra en bucle infinito sin morir, el watchdog no lo detecta — mitigado con supervisor secundario.