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¶
- Geb (Cerbo GX) — Gateway energético Victron
- Shelly — Actuadores eléctricos
- Node-RED — Automatización energética
- Mosquitto — Bus MQTT para telemetría energética