Cómo integrar un inversor solar Solax en Home Assistant con Modbus TCP y automatizar el consumo de excedentes
Escrito por: Alex R.La integración de un inversor solar Solax en Home Assistant mediante Modbus TCP representa uno de los avances más significativos para los entusiastas del autoconsumo fotovoltaico. A diferencia de las soluciones propietarias cerradas, el protocolo Modbus TCP permite un acceso directo y en tiempo real a los registros internos del inversor, desbloqueando un sinfín de posibilidades de monitorización y control. En esta guía exhaustiva, exploraremos no solo los fundamentos técnicos de esta comunicación, sino que también desarrollaremos estrategias avanzadas para automatizar el consumo de excedentes, asegurando que cada vatio generado por tus paneles solares sea aprovechado al máximo. Si eres propietario de un inversor Solax y deseas llevar tu instalación al siguiente nivel, este artículo te proporcionará las herramientas y el conocimiento necesario para lograrlo.
1. Fundamentos de la Integración Solax en Home Assistant con Modbus TCP
Antes de sumergirnos en la configuración práctica, es crucial comprender qué es Modbus TCP y por qué es el estándar de facto para la integración de inversores solares en sistemas domóticos. Modbus es un protocolo de comunicación industrial que permite a dispositivos electrónicos intercambiar datos a través de una red. En su variante TCP, utiliza el protocolo de Internet para transportar los mensajes, lo que facilita su integración en redes domésticas convencionales. Los inversores Solax, al igual que muchos otros fabricantes, exponen una serie de registros Modbus que contienen información vital: potencia de generación, voltaje de la red, frecuencia, energía acumulada, estado de los strings fotovoltaicos, y un largo etcétera. Home Assistant, con su capacidad de ejecutar scripts y add-ons, puede consultar estos registros periódicamente y convertirlos en entidades nativas, como sensores, que luego podemos utilizar en paneles de control y automatizaciones.
La gran ventaja de Modbus TCP frente a otras alternativas como las API en la nube es la latencia. Mientras que una consulta a la nube puede tardar varios segundos e incluso minutos, una lectura Modbus local se completa en milisegundos. Esta inmediatez es esencial para automatizaciones que requieren respuestas rápidas, como el control de excedentes. Además, al no depender de servidores externos, la privacidad y la fiabilidad son superiores: tu sistema sigue funcionando incluso si se cae Internet. Por último, la integración local evita posibles limitaciones o cambios en las API de los fabricantes, que a menudo restringen el acceso gratuito.
1.1. Requisitos Previos y Compatibilidad
No todos los inversores Solax son iguales. Para seguir esta guía, necesitarás un inversor que soporte Modbus TCP de forma nativa o a través de un módulo de comunicación adicional. La mayoría de los modelos híbridos y de string de generaciones recientes (X1, X3, X1-Hybrid, X3-Hybrid, etc.) incluyen esta funcionalidad, pero es recomendable consultar la documentación oficial o foros especializados. Además, necesitarás:
- Home Assistant: Instalación funcionando, preferiblemente en un dispositivo dedicado como Raspberry Pi, mini PC o servidor. Se recomienda la versión Supervised o Home Assistant OS para facilitar la gestión de add-ons.
- Conectividad de red: El inversor debe estar conectado a tu red local, ya sea por Ethernet o Wi-Fi. La mayoría de los inversores Solax incluyen un puerto LAN o un módulo Wi-Fi que permite el acceso Modbus TCP.
- Conocimientos básicos: Familiaridad con la edición de archivos YAML y la interfaz de Home Assistant. No se requiere ser un experto, pero sí comprender la estructura de configuración.
1.2. Ventajas de la Monitorización Local
La monitorización local a través de Modbus TCP ofrece ventajas sustanciales sobre las soluciones en la nube. En primer lugar, la frecuencia de actualización es mucho mayor. Mientras que los portales web suelen actualizar cada 5 o 10 minutos, Modbus permite lecturas cada segundo o incluso menos. Esto es crucial para detectar fluctuaciones rápidas en la generación solar, por ejemplo, cuando pasan nubes. En segundo lugar, la integración con Home Assistant permite combinar los datos del inversor con los de otros dispositivos, como medidores de consumo, baterías, termostatos, etc., creando automatizaciones verdaderamente inteligentes. Por último, la independencia de la nube garantiza que tus datos permanezcan en tu hogar y que el sistema siga operativo aunque el fabricante decida cambiar sus políticas o cerrar su plataforma.
2. Configuración Paso a Paso de Modbus TCP en Home Assistant
Una vez cumplidos los requisitos, procederemos a configurar Home Assistant para que se comunique con el inversor Solax. Existen varias vías: utilizar la integración oficial de Modbus, instalar un add-on específico como Solax Modbus, o emplear HACS para integraciones personalizadas. En esta guía nos centraremos en la integración nativa de Modbus, que es robusta y no requiere dependencias externas, aunque mencionaremos alternativas.
2.1. Habilitar Modbus TCP en el Inversor Solax
El primer paso es asegurarse de que el inversor tiene habilitado el servidor Modbus TCP. En muchos modelos, esta opción está activada por defecto, pero en otros es necesario acceder al menú de configuración avanzada. Por lo general, se accede a través de la pantalla LCD del inversor o mediante la aplicación móvil Solax Cloud. Busca una opción llamada 'Modbus' o 'Comunicación' y actívala. Toma nota de la dirección IP que el inversor obtiene en tu red local; puedes encontrarla en el menú de información de red o en la lista de dispositivos conectados de tu router. Es recomendable asignar una IP estática al inversor para evitar que cambie con el tiempo, lo que rompería la configuración de Home Assistant.
2.2. Añadir la Integración Modbus a Home Assistant
Home Assistant incluye la integración Modbus de serie. Para configurarla, deberás editar el archivo configuration.yaml. A continuación, se muestra un ejemplo básico de configuración para un inversor Solax. Ten en cuenta que los registros y sus direcciones pueden variar según el modelo; consulta la documentación de Solax o repositorios como Home Assistant Community para obtener la lista exacta.
modbus:
- name: Solax
type: tcp
host: 192.168.1.100
port: 502
sensors:
- name: Solax PV Power
slave: 1
address: 0x0000
input_type: input
count: 2
data_type: uint32
scale: 0.001
unit_of_measurement: kW
device_class: power
- name: Solax Grid Power
slave: 1
address: 0x0006
input_type: input
count: 2
data_type: int32
scale: 0.001
unit_of_measurement: kW
device_class: power
- name: Solax Battery SOC
slave: 1
address: 0x001C
input_type: input
count: 1
data_type: uint16
scale: 1
unit_of_measurement: '%'
device_class: batteryEste código define un hub Modbus llamado 'Solax' que se conecta a la IP 192.168.1.100 en el puerto 502 (el estándar para Modbus TCP). Luego, se definen tres sensores: potencia fotovoltaica, potencia de red (positiva si se importa, negativa si se exporta) y estado de carga de la batería. Los parámetros 'address', 'count' y 'data_type' son críticos y deben coincidir con el mapa de registros de tu inversor. La escala '0.001' convierte los valores brutos a unidades legibles (kW en lugar de W).
Tras guardar el archivo, reinicia Home Assistant para que los cambios surtan efecto. Si todo está correcto, verás las nuevas entidades en la interfaz. Puedes comprobar el estado en Herramientas de Desarrollador > Estados. Si algún sensor muestra 'unknown' o 'unavailable', revisa la conexión y los parámetros.
2.3. Alternativa: Add-on Solax Modbus
Para aquellos que prefieren una solución más plug-and-play, existe un add-on desarrollado por la comunidad llamado 'Solax Modbus' que se puede instalar a través de HACS o del repositorio de add-ons. Este add-on se encarga de consultar el inversor y publicar los datos en MQTT, lo que simplifica enormemente la configuración. Solo hay que indicar la IP, el puerto y el modelo de inversor, y el add-on crea automáticamente las entidades en Home Assistant mediante MQTT Discovery. Es una opción excelente si no te sientes cómodo editando YAML o si tu inversor tiene un mapa de registros complejo.
3. Automatización del Consumo de Excedentes: Estrategias y Ejemplos
Una vez que tenemos los datos del inversor en Home Assistant, el siguiente paso es utilizarlos para automatizar el consumo de excedentes. El objetivo es sencillo: cuando los paneles generan más energía de la que consume la casa, en lugar de verterla a la red (a menudo sin compensación o con una compensación mínima), podemos desviarla hacia cargas flexibles como un termo eléctrico, una bomba de calor, un cargador de vehículo eléctrico o incluso una batería virtual. La clave está en monitorizar la potencia de red (Grid Power) y actuar en consecuencia.
3.1. Identificar el Excedente
El excedente se produce cuando la potencia generada por los paneles supera la potencia consumida por las cargas del hogar. En términos de red, esto se refleja como una exportación: la potencia de red se vuelve negativa. Por lo tanto, el sensor de 'Grid Power' es nuestro indicador principal. Si tenemos un medidor de consumo separado, podemos calcular el excedente como la diferencia entre generación y consumo. En cualquier caso, necesitamos una entidad que represente el excedente neto. Si no disponemos de un sensor de consumo, podemos asumir que el excedente es igual a la generación menos una estimación del consumo base, pero lo ideal es medirlo con precisión.
Para una automatización robusta, es recomendable crear un sensor plantilla que calcule el excedente en vatios. Por ejemplo:
sensor:
- platform: template
sensors:
excedente_solar:
friendly_name: 'Excedente Solar'
unit_of_measurement: 'W'
value_template: >-
{% set grid = states('sensor.solax_grid_power') | float %}
{% if grid < 0 %}
{{ (grid * -1000) | round(0) }}
{% else %}
0
{% endif %}Este sensor devuelve el excedente en vatios (asumiendo que el sensor original está en kW). Si el inversor no proporciona directamente la potencia de red, podemos calcularla como la diferencia entre la generación fotovoltaica y el consumo de la casa, pero necesitaremos un medidor de consumo adicional.
3.2. Automatizaciones para Desviar Excedentes
Con el sensor de excedente listo, podemos crear automatizaciones que activen cargas cuando haya suficiente excedente. Un caso típico es el control de un termo eléctrico. Supongamos que tenemos un interruptor inteligente (por ejemplo, Shelly o Sonoff) que controla la alimentación del termo. Queremos encenderlo cuando el excedente supere los 1500 W durante al menos 5 minutos, y apagarlo cuando el excedente caiga por debajo de 500 W durante 2 minutos. Esta histéresis evita encendidos y apagados frecuentes.
La automatización en YAML sería:
automation:
- alias: 'Encender termo con excedente'
trigger:
- platform: numeric_state
entity_id: sensor.excedente_solar
above: 1500
for:
minutes: 5
action:
- service: switch.turn_on
entity_id: switch.termo
- alias: 'Apagar termo sin excedente'
trigger:
- platform: numeric_state
entity_id: sensor.excedente_solar
below: 500
for:
minutes: 2
action:
- service: switch.turn_off
entity_id: switch.termoEste es solo un ejemplo básico. Para un control más fino, podemos usar un controlador PID que ajuste la potencia de carga de forma proporcional al excedente. Por ejemplo, con un cargador de VE que admita modulación, podemos enviar la potencia deseada a través de una integración como OCPP o mediante una API local. Home Assistant puede calcular la potencia sobrante y establecerla en el cargador, maximizando el autoconsumo.
1Control de Termo Eléctrico
Encender el termo cuando hay excedente y apagarlo cuando no. Requiere un interruptor inteligente y un sensor de temperatura para no sobrecalentar.
2Carga de Vehículo Eléctrico
Modular la potencia de carga según el excedente. Necesitas un cargador compatible con control externo (OCPP, API).
3Bomba de Calor
Ajustar la temperatura de impulsión o activar el modo de calefacción cuando hay excedente, almacenando energía térmica.
4Riego Automático
Activar bombas de riego cuando hay excedente, aprovechando la energía solar para el bombeo de agua.
4. Errores Comunes y Mejores Prácticas
La integración de sistemas fotovoltaicos con domótica no está exenta de desafíos. A continuación, detallamos los errores más frecuentes y cómo evitarlos.
4.1. Direcciones Modbus Incorrectas
Uno de los fallos más habituales es utilizar direcciones de registro equivocadas. Cada modelo de inversor tiene su propio mapa de registros, y confundir una dirección puede llevar a lecturas erróneas o a la falta de comunicación. Siempre verifica la documentación oficial o utiliza herramientas como mbpoll para escanear los registros y confirmar los valores. Además, algunos inversores requieren especificar el 'slave ID' correcto; para Solax suele ser 1, pero puede variar.
4.2. Problemas de Conectividad
La conexión Modbus TCP puede verse afectada por cortafuegos, VLANs o direcciones IP dinámicas. Asegúrate de que el puerto 502 esté abierto en la red local y que el inversor tenga una IP fija. Si usas Wi-Fi, considera la posibilidad de invertir en un punto de acceso dedicado o utilizar un adaptador Ethernet. La estabilidad es clave para evitar datos inconsistentes.
4.3. Sobrecarga de Consultas
Consultar demasiados registros con una frecuencia muy alta puede sobrecargar el inversor y provocar timeouts. Es recomendable agrupar las lecturas y establecer un intervalo de sondeo adecuado, por ejemplo, cada 5 o 10 segundos. Home Assistant permite configurar el 'scan_interval' en la integración Modbus para controlar la frecuencia.
4.4. Falta de Histéresis en Automatizaciones
Las automatizaciones sin histéresis pueden causar encendidos y apagados rápidos (efecto rebote) cuando el excedente fluctúa cerca del umbral. Siempre define tiempos de espera ('for') y umbrales separados para encendido y apagado. Esto prolonga la vida útil de los dispositivos y evita consumos innecesarios.
5. Comparativa de Métodos de Integración
Existen varias formas de integrar un inversor Solax en Home Assistant. A continuación, comparamos las tres más comunes: Modbus TCP nativo, add-on Solax Modbus y API en la nube.
| Método | Ventajas | Desventajas | Recomendado para |
|---|---|---|---|
| Modbus TCP nativo | Baja latencia, control total, sin dependencias externas | Requiere conocimientos de YAML y mapa de registros | Usuarios avanzados |
| Add-on Solax Modbus | Fácil configuración, actualizaciones automáticas, integración MQTT | Depende de un tercero, puede no soportar todos los modelos | Usuarios intermedios |
| API en la nube | No requiere configuración local, acceso remoto | Alta latencia, dependencia de Internet, límites de peticiones | Monitorización básica |
Como se puede observar, el método Modbus TCP nativo es el más potente y flexible, aunque requiere una inversión inicial de tiempo en configuración. El add-on Solax Modbus es un excelente equilibrio entre facilidad y funcionalidad. La API en la nube solo se recomienda si no se necesita control en tiempo real o si no se dispone de acceso local al inversor.