Solplanet + Home Assistant: Integración completa con EMS open source

¿Tienes un inversor Solplanet y quieres integrarlo con Home Assistant? La app oficial de Solplanet es limitada y depende de la nube. Aquí te explico cómo monté un sistema EMS (Energy Management System) completamente local que lee el inversor, controla la batería y publica todo en Home Assistant vía MQTT.

El código es open source y lo puedes descargar gratis desde GitHub.

¿Qué hace este sistema?

  • Lee el inversor directamente por HTTP (API local, sin nube)
  • Publica en MQTT todos los datos: solar, batería, red, consumo
  • Control remoto: cambia modo de batería, SOC, schedule desde HA
  • Almacena histórico en MySQL/MariaDB
  • Cálculos en tiempo real: autosuficiencia, autoconsumo, balance energético
  • 100% local: sin nube, sin suscripciones, sin latencia

Arquitectura

┌──────────────┐     HTTP      ┌──────────────────┐     MQTT      ┌─────────────────┐
│   Solplanet  │◄─────────────►│  solplanet-ems   │──────────────►│ Home Assistant   │
│   Inverter   │               │                  │               │ (MQTT broker)    │
└──────────────┘               │  - polling 10s   │               └─────────────────┘
                               │  - EMS logic     │
                               │  - commands      │     SQL
                               │                  │──────────────►┌─────────────────┐
                               └──────────────────┘               │ MySQL/MariaDB   │
                                                                  └─────────────────┘

El sistema corre como contenedor Docker y se comunica con el inversor cada 10 segundos. Toda la información se publica en topics MQTT que Home Assistant consume automáticamente.

Datos que obtienes en Home Assistant

Categoría Sensores
Solar Potencia actual, producción diaria/total, PV1/PV2 (voltaje, corriente, potencia)
Batería SOC, SOH, potencia carga/descarga, temperatura, voltaje, estado
Red Importación/exportación actual, acumulados diarios y totales
Consumo Consumo total del hogar, autosuficiencia %, autoconsumo %
Inversor Estado, errores, temperatura, frecuencia, voltaje AC, horas totales
Control Modo batería, límites SOC, schedule por día/hora

Comandos MQTT disponibles

Desde Home Assistant puedes enviar comandos al inversor publicando JSON en el topic solplanet/comando:

Comando Ejemplo Descripción
Cambiar modo {"mode": 2} Auto(2), Carga(3), Descarga(4), Backup(5)
Límites SOC {"charge_max": 100, "discharge_max": 10} Ajusta hasta dónde carga/descarga
Schedule {"action": "set_schedule", ...} Programa horarios por día

Requisitos

  • Inversor Solplanet con API HTTP local (puerto 8484) — probado con ASW 3-6K-LT-G2
  • Docker en tu servidor o Raspberry Pi
  • Broker MQTT (Mosquitto recomendado)
  • Home Assistant con integración MQTT
  • MySQL/MariaDB (opcional, para histórico)

Instalación en 3 minutos

git clone https://github.com/python8708/solplanet-ems.git
cd solplanet-ems
cp .env.example .env
# Edita .env con la IP de tu inversor, MQTT y BD
docker compose up -d

El sistema crea las tablas automáticamente y empieza a publicar datos en MQTT. En Home Assistant aparecerán los sensores tras añadir la integración MQTT si no la tienes ya.

Configuración

Toda la configuración va en un archivo .env. Las variables principales:

Variable Descripción
INVERTER_URL URL de tu inversor (ej: http://192.168.x.x:8484)
BATTERY_SN Nº serie batería (se auto-detecta si lo dejas vacío)
MQTT_HOST IP de tu broker MQTT
POLL_INTERVAL Segundos entre lecturas (default: 10)

Ver el archivo .env.example en el repositorio para la lista completa de opciones.

¿Por qué no usar la integración oficial?

  • La app Solplanet depende de la nube: Si sus servidores caen, pierdes acceso
  • Sin control real de batería: La app no permite cambiar modos ni schedules
  • Datos limitados: No expone voltajes, corrientes, ni datos del inversor
  • Sin histórico local: No puedes analizar tus datos a largo plazo
  • Sin automatización: No puedes integrar con HA para decisiones inteligentes

Con este EMS tienes control total, datos completos y todo funciona sin internet.

Código fuente

El proyecto es open source y está disponible en GitHub:

github.com/python8708/solplanet-ems

Si tienes un Solplanet y lo pruebas, déjame un comentario o abre un issue en GitHub. Si te funciona con otro modelo, me interesa saberlo para añadirlo a la lista de compatibilidad.

Deja un comentario