Saltar a contenido

Sistema de Energía

Visión global del subsistema energético de SmallCountry: generación solar, almacenamiento en batería, monitorización con Victron y actuadores Shelly que permiten operación autónoma incluso durante apagones prolongados.


Descripción general

La energía es el Tier S por definición. Sin electricidad no hay servidores, no hay sensores, no hay comunicaciones. El sistema energético de SmallCountry está diseñado para que la infraestructura digital sobreviva a cortes de red eléctrica, tormentas y escenarios de aislamiento prolongado.

El nodo Geb (Victron Cerbo GX) es el cerebro energético. Monitoriza la producción solar, el estado de la batería, el consumo y decide —en coordinación con Node-RED— qué servicios se mantienen y cuáles se apagan cuando la energía escasea.


Flujo energético

flowchart LR
    subgraph Generacion["☀️ Generación"]
        Paneles["Paneles solares<br/>2.4 kWp<br/>6 × 400W"]
    end

    subgraph Control["⚡ Control"]
        MPPT["Victron MPPT<br/>regulador de carga<br/>150/45"]
        Cerbo["Geb — Cerbo GX<br/>cerebro energético<br/>Venus OS"]
        Bateria["Batería LiFePO4<br/>48V · 100Ah<br/>4.8 kWh útiles"]
    end

    subgraph Distribucion["🔌 Distribución"]
        Inversor["Inversor Victron<br/>MultiPlus 48/3000<br/>carga + bypass red"]
        SAI["SAI secundario<br/>para Ra y Horus<br/>10 min de buffer"]
        Shelly["Actuadores Shelly<br/>corte selectivo<br/>por prioridad"]
    end

    subgraph Consumo["💻 Consumo"]
        Ra["Ra<br/>~15W idle"]
        Horus["Horus<br/>~25W idle · ~120W GPU"]
        Red["Red + sensores<br/>~10W"]
        Otros["Casa<br/>iluminación · bomba"]
    end

    Generacion --> MPPT
    MPPT --> Bateria
    Bateria --> Inversor
    Inversor --> SAI
    SAI --> Ra
    SAI --> Horus
    Inversor --> Shelly
    Shelly --> Red
    Shelly --> Otros
    Cerbo -.->|"MQTT"| MPPT
    Cerbo -.->|"MQTT"| Bateria
    Cerbo -.->|"MQTT"| Inversor
    Cerbo -.->|"MQTT"| Shelly
    Cerbo -.->|"MQTT → Node-RED → Grafana"| Ra

    style Generacion fill:#ffe082,stroke:#f57f17,color:#000
    style Control fill:#f9a8d4,stroke:#c2185b,color:#000
    style Distribucion fill:#bbdefb,stroke:#1565c0,color:#000
    style Consumo fill:#a5d6a7,stroke:#2e7d32,color:#000

Componentes del sistema

Componente Especificación Función Ficha
Paneles solares 6 × 400W monocristalinos Generación diaria: 8-14 kWh (invierno-verano)
Victron MPPT 150/45 Regulador de carga solar Optimiza la carga de los paneles a la batería Geb
Batería LiFePO4 48V 100Ah (4.8 kWh) Reserva para ~30 horas de operación mínima Geb
Victron MultiPlus 48/3000 Inversor/cargador 3000VA Convierte 48V DC → 230V AC. Bypass automático de red Geb
Cerbo GX (Geb) ARM Cortex-A7, Venus OS Cerebro energético. MQTT, Modbus TCP, VRM Geb
SAI APC Back-UPS 700VA Buffer de 10 min para Ra y Horus. Apagado ordenado
Shelly Pro 4PM Actuador WiFi 4 canales Corte selectivo de circuitos por prioridad Shelly

Perfiles de energía

SmallCountry define tres perfiles de consumo energético según la disponibilidad (Mecanismo 10 — Perfiles de Energía):

Perfil Condición Consumo Servicios activos
Normal Red eléctrica disponible o batería >80% ~160W (pico GPU) Todos los servicios
Ahorro Batería entre 40-80% sin previsión solar ~50W Tier S + A + B. GPU en idle
Emergencia Batería <40% o apagón prolongado ~25W Solo Tier S + A. Sin GPU. Sin media

Matriz de resiliencia energética

Escenario Ra Horus Geb Thoth Sensores Notas
Red eléctrica + sol ✅ 100% ✅ 100% ✅ 100% ✅ 100% ✅ 100% Operación normal
Sin red, con sol (día) ✅ 100% ✅ 100% ✅ 100% ⚠️ Remoto ✅ 100% Batería carga mientras consume
Sin red, con batería >80% ✅ 100% ✅ 100% ✅ 100% ⚠️ Remoto ✅ 100% 30+ horas de autonomía
Sin red, batería 40-80% ✅ Perfil Ahorro ⚠️ GPU apagada ✅ 100% ⚠️ Remoto ✅ 100% IA solo CPU, sin media
Sin red, batería <40% ⚠️ Solo Tier S+A ❌ Apagado ✅ Solo monitor ❌ Apagado ⚠️ Solo críticos Modo emergencia
Sin red, batería <10% ⚠️ Apagado ordenado ✅ Solo monitor Apagado seguro con ZFS sync
Sin sol ni batería (fallo total) Recuperación desde Thoth

Automatización energética

Node-RED ejecuta flujos de gestión energética basados en los datos de Geb vía MQTT:

Flujo Gatillo Acción
Cambio a perfil Ahorro Batería <80% sin previsión de sol Apaga GPU de Horus, suspende Jellyfin/Kavita, notifica
Cambio a perfil Emergencia Batería <40% Apaga Horus completo, apaga servicios Tier B y C, solo núcleo
Apagado ordenado Batería <10% Sincroniza ZFS, detiene servicios, shutdown -h now en Ra
Prioridad bomba sótano Sensor de agua activado La bomba del sótano ignora perfiles de ahorro. Prioridad absoluta
Previsión solar Amanecer + previsión meteorológica Estima producción diaria y ajusta perfil si hay previsión de sol

Para el arquitecto

Topología eléctrica

Paneles → MPPT → Batería 48V → MultiPlus → AC 230V
                                           ├── SAI → Ra + Horus
                                           ├── Shelly → Red + sensores
                                           └── Shelly → Casa
Red eléctrica (bypass) ────────────────────MultiPlus (automático)

Comunicación Victron

  • MQTT: Cerbo GX publica métricas cada 5s a Mosquitto en Ra
  • Modbus TCP: Node-RED consulta parámetros de configuración
  • VRM: Portal remoto Victron (solo con internet, no crítico)

Script de apagado ordenado

# /usr/local/bin/emergency-shutdown.sh (en Ra)
zfs snapshot -r rpool@emergency-$(date +%s)
for ct in $(pct list | awk 'NR>1{print $1}'); do
    pct shutdown $ct --timeout 30
done
shutdown -h now

Este script se dispara cuando la batería llega al 8% o cuando el SAI tiene menos de 2 minutos de autonomía.


Fichas relacionadas