Cómo Configurar un Inversor Solar Solis con Home Assistant Usando Modbus RTU
Escrito por: Sofía G.La monitorización en tiempo real de un inversor solar es esencial para maximizar el rendimiento de tu instalación fotovoltaica. Con Home Assistant y el protocolo Modbus RTU, puedes integrar tu inversor Solis de forma local, sin depender de la nube del fabricante. Esta guía te proporciona todos los pasos necesarios, desde la selección del hardware hasta la creación de un dashboard personalizado, para que puedas controlar cada vatio generado y consumido en tu hogar.
¿Qué es Modbus RTU y por qué usarlo con tu inversor Solis?
Modbus RTU (Remote Terminal Unit) es un protocolo de comunicación serial ampliamente utilizado en automatización industrial y sistemas de energía renovable. Permite la transferencia de datos entre dispositivos electrónicos a través de un bus RS-485. Los inversores Solis, en sus modelos de gama media y alta, incluyen un puerto de comunicación RS-485 que habilita la lectura de registros Modbus. Al conectar este puerto a un adaptador USB-RS485 y luego a un sistema que ejecute Home Assistant (como una Raspberry Pi o un servidor Proxmox), puedes acceder a decenas de parámetros: potencia actual, energía total generada, tensiones de string, temperatura del inversor, estado de la red, etc.
La principal ventaja de esta integración local frente a la plataforma en la nube de Solis (SolisCloud) es la velocidad de actualización, la privacidad de tus datos y la posibilidad de crear automatizaciones complejas sin depender de una conexión a internet. Por ejemplo, puedes programar un interruptor inteligente para que active un calentador de agua cuando el excedente solar supere un umbral, o recibir alertas instantáneas si el inversor detecta una anomalía. Además, al ser un estándar abierto, Modbus RTU te permite combinar datos de múltiples inversores, baterías y medidores en un solo panel.
Requisitos Hardware y Software
Hardware necesario
Para llevar a cabo la integración necesitarás los siguientes componentes:
- Inversor Solis compatible: Modelos con puerto RS-485 (consulta el manual de tu modelo). La mayoría de los inversores de la serie S6, S5, y algunos de la serie S3 incluyen este puerto.
- Adaptador USB a RS-485: Recomendamos un adaptador basado en el chip FTDI FT232RL o CP2102, con conector de terminales para los cables A y B. Evita adaptadores genéricos que puedan causar pérdida de datos.
- Cable de par trenzado (categoría 5e o superior): Para la conexión RS-485 entre el inversor y el adaptador. La longitud máxima recomendada es de 1200 metros, aunque para instalaciones domésticas bastan unos pocos metros.
- Sistema con Home Assistant: Puede ser una Raspberry Pi 4/5, un servidor NAS, o una máquina virtual. Asegúrate de que Home Assistant esté actualizado a la versión 2023.10 o superior.
Software y herramientas
- Home Assistant Community Store (HACS): Para instalar el integración 'Solis Inverter' de forma sencilla.
- Editor de archivos (File Editor o Visual Studio Code): Para modificar el archivo configuration.yaml.
- Herramienta de prueba Modbus (opcional): Como 'Modbus Poll' o 'QModMaster' para verificar la comunicación antes de integrar en Home Assistant.
Antes de realizar cualquier conexión eléctrica, asegúrate de que el inversor esté apagado y desconectado de la red. Trabajar con tensiones de hasta 1000V DC puede ser peligroso. Si no tienes experiencia, consulta a un instalador profesional.
Cableado RS-485: Conexión paso a paso
El cableado RS-485 es sencillo pero debe realizarse con cuidado para evitar interferencias. Sigue estos pasos:
- Paso 1: Identifica los terminales del inversor Localiza el puerto de comunicación RS-485 en tu inversor Solis. Normalmente está etiquetado como 'COM', 'RS-485' o '485'. Los terminales suelen ser A (B+) y B (A-). Consulta el manual de tu modelo para confirmar la nomenclatura.
- Paso 2: Prepara el cable de par trenzado Corta un trozo de cable de la longitud necesaria (recomendado menos de 10 metros para evitar atenuación). Pela unos 5 mm de los extremos de los dos hilos.
- Paso 3: Conecta los hilos al inversor Conecta un hilo al terminal A (B+) y el otro al terminal B (A-). No importa qué hilo vaya a cuál, pero debes ser consistente en ambos extremos. Si la comunicación falla, intercambia los cables.
- Paso 4: Conecta el otro extremo al adaptador USB-RS485 El adaptador tendrá también terminales etiquetados A y B (o D+ y D-). Conecta los mismos hilos respetando la polaridad. Algunos adaptadores incluyen un terminal GND (tierra); si está disponible, conéctalo a tierra del inversor para reducir ruido.
- Paso 5: Conecta el adaptador al sistema Inserta el adaptador USB en un puerto USB de tu Raspberry Pi o servidor. El sistema debería reconocerlo como un dispositivo serie (por ejemplo, /dev/ttyUSB0).
Para instalaciones con largos recorridos de cable (más de 10 metros), se recomienda utilizar una resistencia de terminación de 120 ohmios entre los terminales A y B en ambos extremos del bus para evitar reflexiones de señal.
Configuración de Home Assistant con Modbus RTU
Instalación de la integración Solis Inverter
La forma más sencilla es usar la integración personalizada 'Solis Inverter' disponible en HACS. Sigue estos pasos:
- Paso 1: Asegúrate de tener HACS instalado. Si no, sigue la guía oficial en hacs.xyz.
- Paso 2: Ve a HACS > Integraciones, haz clic en el botón '...' y selecciona 'Repositorios personalizados'. Añade la URL: https://github.com/hacs/integration-solis y selecciona 'Integración'.
- Paso 3: Busca 'Solis Inverter' en la lista de integraciones de HACS e instálala. Reinicia Home Assistant.
- Paso 4: Ve a Configuración > Dispositivos y servicios > Añadir integración. Busca 'Solis Inverter' y sigue el asistente de configuración. Te pedirá el puerto serie (por ejemplo, /dev/ttyUSB0), la velocidad en baudios (9600 por defecto), la dirección Modbus del inversor (normalmente 1) y el número de parámetros a leer.
Configuración manual mediante YAML
Si prefieres un control más granular, puedes configurar el inversor manualmente en el archivo configuration.yaml. Aquí tienes un ejemplo completo:
modbus:
- name: solis_inverter
type: rtuovertcp
host: localhost
port: 502
- name: solis_serial
type: serial
device: /dev/ttyUSB0
baudrate: 9600
stopbits: 1
bytesize: 8
parity: N
timeout: 5
sensor:
- platform: modbus
scan_interval: 10
registers:
- name: "Potencia AC Total"
hub: solis_serial
slave: 1
register: 30001
register_type: holding
count: 2
data_type: float
unit_of_measurement: "W"
scale: 1
precision: 0
- name: "Energía Total Generada"
hub: solis_serial
slave: 1
register: 30003
register_type: holding
count: 2
data_type: float
unit_of_measurement: "kWh"
scale: 0.001
precision: 2
- name: "Temperatura del Inversor"
hub: solis_serial
slave: 1
register: 30005
register_type: holding
count: 1
data_type: int16
unit_of_measurement: "°C"
scale: 0.1
precision: 1Este ejemplo define un hub Modbus serial y tres sensores que leen registros holding. Los registros específicos para Solis pueden variar según el modelo; consulta el mapa de registros de tu inversor. La integración 'Solis Inverter' ya incluye un mapeo predefinido para la mayoría de modelos, por lo que es más recomendable usarla.
Parámetros clave que puedes monitorizar
Una vez establecida la comunicación, tendrás acceso a decenas de parámetros. Los más importantes para el usuario doméstico son:
1Potencia AC Total
Potencia activa que el inversor está entregando a la red o al consumo doméstico. Es el dato más relevante para saber si estás generando suficiente energía.
2Energía Total Generada
Acumulado de energía producida desde la puesta en marcha. Útil para comparar con tu factura y calcular el retorno de inversión.
3Tensión de String 1 y 2
Tensiones de los paneles solares conectados a cada entrada MPPT. Permite detectar sombreado o fallos en los paneles.
4Temperatura del Inversor
Temperatura interna del equipo. Si supera los 65°C, el inversor puede reducir su potencia para protegerse.
Creación de un Dashboard en Home Assistant
Para visualizar los datos de forma clara, crea un dashboard personalizado. Puedes usar la vista 'Energía' integrada de Home Assistant o diseñar una propia con tarjetas. Aquí tienes un ejemplo de configuración de tarjetas usando Lovelace:
type: entities
title: Inversor Solis
entities:
- sensor.potencia_ac_total
- sensor.energia_total_generada
- sensor.temperatura_del_inversor
- sensor.tension_string_1
- sensor.tension_string_2Además, puedes añadir una tarjeta de gráfico histórico para ver la evolución de la potencia a lo largo del día:
type: history-graph
title: Potencia AC
entities:
- sensor.potencia_ac_total
hours_to_show: 24
refresh_interval: 60Para una monitorización más avanzada, integra los datos con el sistema de energía de Home Assistant (Energy Dashboard). Ve a Configuración > Energía y añade el sensor de energía total generada como fuente de producción solar. Esto te permitirá ver el balance entre generación y consumo.
Automatizaciones útiles
Con los datos en Home Assistant, puedes crear automatizaciones para optimizar tu autoconsumo. Algunas ideas:
- Encendido de carga excedentaria: Cuando la potencia AC supere un umbral (ej. 2000W) y la batería esté llena, activa un relé para calentar agua o cargar un vehículo eléctrico.
- Alerta de baja producción: Si la potencia es inferior a lo esperado en un día soleado, envía una notificación para revisar los paneles.
- Apagado remoto de emergencia: Si la temperatura del inversor supera los 70°C, corta la conexión a la red mediante un contactor (si está permitido por normativa).
Comienza con automatizaciones simples y ve incrementando la complejidad a medida que te familiarices con el comportamiento de tu instalación. Siempre incluye condiciones de seguridad y límites para evitar daños.
Solución de problemas comunes
A continuación, se presentan los errores más frecuentes al integrar un inversor Solis con Modbus RTU y cómo resolverlos:
| Problema | Causa Posible | Solución |
|---|---|---|
| No se reciben datos | Cableado incorrecto o polaridad invertida | Verificar conexiones A/B |
| Timeout de comunicación | Velocidad en baudios incorrecta o dirección Modbus errónea | Ajustar baudrate y slave ID |
| Datos inconsistentes o saltos | Interferencias electromagnéticas o falta de terminación | Añadir resistencia de 120 ohmios |
| El inversor no responde | Puerto serie ocupado o permisos insuficientes | Agregar usuario al grupo dialout |