Saltar a contenido

06 capas

Principio

SmallCountry estructura toda su automatización en tres capas funcionales estrictamente separadas, distribuidas físicamente entre Chapinería y Garganta la Olla, pero diseñadas para que ninguna dependa de la superior para su misión crítica.

En Chapinería, la Capa 1 (Edge) la forman el Shelly de la bomba de achique y el ESP32 conectado a la Daikin Altherma, ambos con lógica de supervivencia local. La Capa 2 (Tiempo real doméstica) corre sobre un Node-RED independiente en el servidor Ra (servidor principal de SmallCountry), que consume los heartbeats MQTT (protocolo de mensajería ligera para IoT) y ejecuta las automatizaciones de la vivienda.
En la finca (Garganta la Olla), la Capa 1 (Edge) agrupa los ESP32 de riego y los sensores de campo, mientras que la Capa 2 (Tiempo real de finca) vive dentro del Cerbo GX de Victron, con su propio Node-RED y Mosquitto, y sigue funcionando aunque la VPN (red privada virtual) con la casa esté caída.

La Capa 3 (Orquestación lógica), centralizada en el servidor Ra mediante n8n y Forgejo Actions, coordina flujos complejos, integraciones externas y notificaciones, pero no es necesaria para que ninguna de las dos ubicaciones mantenga sus funciones esenciales.

Cada capa consume datos de la anterior, pero la dependencia funcional es siempre en un solo sentido, de lo lógico hacia lo físico, y nunca al revés para acciones que puedan provocar daños.

Distribución real de capas

Capa Ubicación Responsabilidades Componentes principales
Capa 1 – Edge Chapinería y Finca Lógica de supervivencia autónoma. Umbrales por hardware, estados por defecto seguros. Shelly (bomba), ESP32 (Altherma), ESP32 (riego), sensores humedad
Capa 2 – Tiempo real Casa (servidor Ra) y Finca (Cerbo GX) Control inmediato, flujos MQTT, reacción a sensores, automatizaciones locales. Node-RED casa, Node-RED finca, Mosquitto (ambas ubicaciones)
Capa 3 – Orquestación lógica Casa (servidor Ra) Workflows complejos, análisis de datos, ciclo de vida de servicios, notificaciones multicanal, integraciones externas. n8n, Forgejo Actions

Funcionamiento autónomo en Chapinería

En la casa, la Capa 1 (Shelly (actuador eléctrico WiFi) y ESP32 (microcontrolador WiFi para sensores)) garantiza la protección física sin intervención de las capas superiores:

  • La bomba de achique (Shelly) arranca automáticamente si pierde la comunicación MQTT (protocolo de mensajería ligera para IoT), cumple así el power on default: ON y evita inundaciones.
  • El ESP32 de la Daikin Altherma retiene la última consigna de temperatura y modo, y la mantiene aunque Node-RED o Mosquitto estén inactivos.

La Capa 2 (Node-RED doméstico) gestiona las automatizaciones cotidianas: iluminación, climatización optimizada, monitoreo de presencia. Si n8n (Capa 3) deja de funcionar, la casa sigue automatizada con sus reglas locales; solo pierde las integraciones avanzadas (ajuste de temperatura según precio de la luz, notificaciones por voz, etc.).

Funcionamiento autónomo en la finca

En Garganta la Olla, la Capa 1 (ESP32 de riego) opera con umbrales locales de humedad. Si la comunicación con el Cerbo GX se interrumpe, cada ESP32 continúa el ciclo de riego mínimo programado.

La Capa 2 (Node-RED + Mosquitto sobre Cerbo GX) gestiona los flujos de energía Victron, monitoriza baterías y generación solar, y ejecuta la lógica de riego completa cuando los datos están disponibles. Si la VPN con Chapinería se cae, la finca no pierde ninguna capacidad operativa: el Cerbo GX sigue recopilando datos, el Node-RED local sigue actuando y Mosquitto retiene los mensajes para cuando se restablezca la conexión.

¿Qué ocurre si la Capa 3 desaparece?

Función ¿Sigue funcionando? ¿Qué se pierde?
Bomba de achique (casa) Sí, por Shelly con estado ON. Nada crítico.
Climatización (casa) Sí, el ESP32 mantiene la última consigna. Optimización según precio de la luz, ajustes remotos.
Riego (finca) Sí, con umbrales locales del ESP32. Programación dinámica según previsión meteorológica.
Monitorización Victron (finca) Sí, el Cerbo GX registra localmente. Telemetría en tiempo real hacia Grafana, notificaciones push.
Automatizaciones domésticas Sí, Node-RED local sigue activo. Workflows multi-paso que combinen datos de la finca y la casa.

Principio irrenunciable: [**n8n**](/fichas/programas/n8n/) nunca envía una orden directa al hardware de la Capa 1. Cualquier comando que afecte a un Shelly o a un ESP32 pasa obligatoriamente por el Node-RED correspondiente, que actúa como filtro de seguridad y aplica sus propias comprobaciones antes de ejecutar.

Límites duros de la Capa 3

Para evitar que la orquestación se convierta en un punto de fallo único, SmallCountry impone las siguientes restricciones:

  • n8n no puede** apagar, reiniciar ni modificar la configuración de los dispositivos de la Capa 1.
  • n8n no puede** alterar directamente los flujos de Node-RED.
  • Si n8n se satura o deja de responder, un watchdog externo (script bash + systemd timer) ejecuta la degradación de emergencia sin depender de n8n.
  • La política de degradación está declarada en degradation_policy.yml, versionada en Forgejo y legible tanto por n8n como por el watchdog.

Stack necesario

  • Shelly 1PM – Capa 1 en Chapinería (bomba de achique).
  • ESP32 – Capa 1 en ambas ubicaciones (Altherma, riego, sensores).
  • Cerbo GX – Capa 2 en la finca, con Node-RED y Mosquitto integrados.
  • Node-RED – Capa 2 en casa (doméstico) y finca.
  • Mosquitto – Broker MQTT en cada ubicación.
  • n8n – Capa 3, orquestación lógica centralizada.
  • NetBird – Canal de comunicación entre la Capa 2 de la finca y la Capa 3.
  • Watchdog externo – Supervisa n8n y activa degradación de emergencia.

Relaciones con otros principios

Diagrama de capas funcionales

graph TD
    subgraph Casa [Chapinería]
        subgraph Capa1_Casa [Capa 1 - Edge Casa]
            Shelly[Shelly bomba]
            ESP_Altherma[ESP32 Daikin]
        end
        subgraph Capa2_Casa [Capa 2 - Tiempo real Casa]
            NR_Casa[Node-RED doméstico]
        end
        Capa1_Casa -->|MQTT| NR_Casa
    end

    subgraph Finca [Garganta la Olla]
        subgraph Capa1_Finca [Capa 1 - Edge Finca]
            ESP_Riego[ESP32 riego]
            Sensores[Sensores humedad]
        end
        subgraph Capa2_Finca [Capa 2 - Tiempo real Finca]
            NR_Finca[Node-RED finca]
            MQTT_Finca[Mosquitto finca]
        end
        Capa1_Finca -->|MQTT| NR_Finca
    end

    subgraph Capa3 [Capa 3 - Orquestación]
        n8n[n8n]
    end

    NR_Casa <-->|Eventos y métricas| n8n
    NR_Finca <-->|NetBird VPN| n8n

    n8n -.->|No es necesaria para Capa 1| Capa1_Casa
    n8n -.->|No es necesaria para Capa 2| Capa2_Finca

    style Casa fill:#e1bee7,stroke:#8e24aa,color:#000
    style Finca fill:#ffe082,stroke:#f57f17,color:#000
    style Capa1_Casa fill:#ffcc80,stroke:#e65100,color:#000
    style Capa1_Finca fill:#ffcc80,stroke:#e65100,color:#000
    style Capa2_Casa fill:#a5d6a7,stroke:#2e7d32,color:#000
    style Capa2_Finca fill:#a5d6a7,stroke:#2e7d32,color:#000
    style Capa3 fill:#90caf9,stroke:#1565c0,color:#000

Principio 5: Resiliencia física   |   Principio 7: Soberanía operativa


Secciones relacionadas