Cómo Integrar un Inversor Solar SMA en Home Assistant con Modbus TCP: Guía Avanzada para Monitorizar y Optimizar tu Producción
Escrito por: Alex R.La integración de un inversor solar SMA en Home Assistant mediante Modbus TCP se ha convertido en una de las prácticas más demandadas por los entusiastas de la domótica y la energía solar. A diferencia de las soluciones propietarias en la nube, el protocolo Modbus TCP ofrece un control local, sin dependencias externas y con una granularidad de datos que permite exprimir al máximo cada vatio generado. En esta guía avanzada, exploraremos desde los fundamentos técnicos hasta la implementación paso a paso, incluyendo ejemplos de configuración, tablas comparativas y solución de problemas. Si buscas llevar tu monitorización solar al siguiente nivel, este artículo es para ti.
1. Fundamentos de Modbus TCP y su aplicación en inversores SMA
Modbus TCP es un protocolo de comunicación industrial que opera sobre Ethernet, utilizando el puerto 502 por defecto. Los inversores SMA, especialmente las series Sunny Boy, Sunny Tripower y Sunny Boy Storage, implementan este protocolo para exponer registros de datos que reflejan el estado de la producción, el consumo, la tensión de red y decenas de parámetros más. A diferencia de Modbus RTU (serie), Modbus TCP encapsula las tramas en paquetes TCP/IP, lo que simplifica el cableado y permite integrarlo directamente en la red local del hogar.
La arquitectura típica de una instalación SMA con Modbus TCP incluye el inversor conectado a un router mediante cable Ethernet o Wi-Fi (a través de un adaptador). Home Assistant, ejecutándose en un dispositivo como Raspberry Pi o un servidor dedicado, actúa como maestro Modbus, consultando periódicamente los registros del inversor. Para ello, es imprescindible habilitar el servidor Modbus en el inversor, generalmente a través del menú de instalador en la interfaz web o mediante la app SMA Sunny Explorer.
1.1. Registros Modbus más relevantes en inversores SMA
Cada modelo de inversor SMA tiene un mapa de registros específico, pero existen direcciones comunes que suelen repetirse. Los registros se direccionan con un offset que puede ser 0 o 1 según la implementación. En Home Assistant, la integración Modbus utiliza el direccionamiento basado en 0, por lo que a menudo es necesario restar 1 a las direcciones documentadas por SMA. A continuación, se presenta una tabla con los registros más utilizados para monitorizar la producción solar.
| Registro (dirección) | Descripción | Tipo de dato | Unidad |
|---|---|---|---|
| 30051 (0-based: 30050) | Potencia AC total | uint32 | W |
| 30053 (0-based: 30052) | Energía diaria | uint32 | Wh |
| 30055 (0-based: 30054) | Energía total | uint32 | Wh |
| 30057 (0-based: 30056) | Frecuencia de red | uint32 | mHz |
| 30059 (0-based: 30058) | Tensión de red fase 1 | uint32 | mV |
| 30061 (0-based: 30060) | Corriente de red fase 1 | uint32 | mA |
| 30063 (0-based: 30062) | Temperatura del inversor | uint32 | m°C |
| 30201 (0-based: 30200) | Potencia DC string 1 | uint32 | W |
Es fundamental consultar la documentación oficial de SMA para tu modelo concreto, ya que los registros pueden variar entre generaciones de inversores. Por ejemplo, los Sunny Boy Storage (para baterías) tienen registros específicos para el estado de carga y la potencia de carga/descarga.
2. Configuración paso a paso en Home Assistant
Home Assistant ofrece una integración nativa de Modbus que permite definir sensores, switches y otros componentes a través de la configuración YAML. A continuación, detallamos el proceso completo para integrar un inversor SMA.
2.1. Habilitar Modbus TCP en el inversor SMA
El primer paso es acceder a la interfaz de usuario del inversor. Esto se puede hacer a través de la dirección IP del inversor en un navegador web (usuario: instalar, contraseña: la que hayas establecido). Una vez dentro, navega hasta los ajustes de comunicación y activa la opción 'Modbus TCP'. Algunos modelos requieren que se establezca una contraseña específica para Modbus, que por defecto suele ser '0000' o '1111'. Anota la dirección IP del inversor, ya que la necesitarás en Home Assistant.
2.2. Configuración en Home Assistant
En Home Assistant, la integración Modbus se configura en el archivo configuration.yaml. A continuación, se muestra un ejemplo completo para un inversor Sunny Boy 5000TL. Ten en cuenta que los registros y factores de escala deben ajustarse según tu modelo.
modbus:
- name: sma_inverter
type: tcp
host: 192.168.1.100
port: 502
delay: 2
timeout: 5
sensors:
- name: 'SMA Potencia AC'
slave: 1
address: 30050
input_type: input
count: 2
data_type: uint32
precision: 0
scale: 1
unit_of_measurement: 'W'
device_class: power
state_class: measurement
- name: 'SMA Energía Diaria'
slave: 1
address: 30052
input_type: input
count: 2
data_type: uint32
precision: 0
scale: 0.001
unit_of_measurement: 'kWh'
device_class: energy
state_class: total_increasing
- name: 'SMA Temperatura'
slave: 1
address: 30062
input_type: input
count: 2
data_type: uint32
precision: 1
scale: 0.001
unit_of_measurement: '°C'
device_class: temperature
state_class: measurementEs importante respetar la indentación YAML y asegurarse de que los tipos de datos coinciden. Para valores de 32 bits, se debe especificar count: 2 y data_type: uint32. El parámetro slave es el ID del esclavo Modbus, que en SMA suele ser 1. El delay controla el tiempo entre peticiones para no saturar al inversor.
2.3. Ejemplo avanzado: monitorización de strings y batería
Para instalaciones con múltiples strings o con batería, se pueden añadir sensores adicionales. Por ejemplo, para un Sunny Boy Storage, los registros de potencia de carga y descarga suelen estar en las direcciones 31393 y 31395 (0-based: 31392 y 31394). A continuación, se muestra un fragmento de configuración para monitorizar la batería.
- name: 'SMA Batería Potencia'
slave: 1
address: 31392
input_type: input
count: 2
data_type: int32
precision: 0
scale: 1
unit_of_measurement: 'W'
device_class: power
state_class: measurement
- name: 'SMA Batería SOC'
slave: 1
address: 31394
input_type: input
count: 2
data_type: uint32
precision: 0
scale: 0.01
unit_of_measurement: '%'
device_class: battery
state_class: measurementCon estos datos, podrás crear automatizaciones para optimizar el autoconsumo, como cargar la batería cuando la producción exceda el consumo o descargarla en horas punta.
3. Errores comunes y solución de problemas
La integración Modbus TCP puede presentar diversos inconvenientes, especialmente en entornos domésticos con redes inestables. A continuación, enumeramos los errores más frecuentes y sus soluciones.
- Error de conexión rechazada: Verifica que la IP del inversor sea correcta y que el puerto 502 esté abierto. Puedes probar con telnet o nc desde otro equipo.
- Valores ilógicos o negativos: Revisa el tipo de dato (uint32 vs int32) y el orden de los bytes. Algunos registros de potencia pueden ser negativos si el inversor está consumiendo energía.
- Timeouts intermitentes: Aumenta el parámetro timeout y reduce la frecuencia de sondeo (delay). Si persiste, puede haber conflictos con otros maestros Modbus en la red.
- Registros no disponibles: Asegúrate de que el firmware del inversor soporta los registros que intentas leer. Consulta el manual de tu modelo.
4. Comparativa de métodos de integración: Modbus TCP vs otras alternativas
Existen varias formas de integrar un inversor SMA en Home Assistant. Además de Modbus TCP, se puede utilizar la integración oficial de SMA (basada en la nube), el protocolo Speedwire (SMA Data Manager) o incluso scripts personalizados con la API de Sunny Portal. A continuación, comparamos las opciones más relevantes.
| Método | Latencia | Dependencia de nube | Datos disponibles | Facilidad de configuración |
|---|---|---|---|---|
| Modbus TCP | Baja (1-2 s) | No | Completos | Media |
| Integración SMA (nube) | Alta (5-15 min) | Sí | Limitados | Alta |
| Speedwire (SMA Data Manager) | Baja (1-2 s) | No | Completos | Baja |
| API Sunny Portal | Media (1-5 min) | Sí | Limitados | Media |
Como se puede observar, Modbus TCP ofrece el mejor equilibrio entre latencia, independencia de la nube y cantidad de datos. Su principal desventaja es la complejidad de configuración inicial, pero una vez establecida, es la opción más robusta y profesional.
5. Preguntas frecuentes (FAQ)
¿Es compatible Modbus TCP con todos los inversores SMA?
¿Puedo controlar el inversor (no solo monitorizar) mediante Modbus TCP?
¿Qué puedo hacer si el inversor no responde a las peticiones Modbus?
¿Cómo puedo visualizar los datos en un dashboard de Home Assistant?
6. Conclusiones y plan de acción recomendado
La integración de un inversor SMA en Home Assistant mediante Modbus TCP es una tarea que requiere conocimientos técnicos, pero los beneficios son enormes: datos en tiempo real, control local, independencia de la nube y la posibilidad de crear automatizaciones inteligentes para maximizar el autoconsumo. A lo largo de esta guía hemos cubierto desde los fundamentos del protocolo hasta la configuración práctica, pasando por la solución de problemas y una comparativa de alternativas.
Como plan de acción, te sugerimos los siguientes pasos: 1) Verifica la compatibilidad de tu inversor con Modbus TCP. 2) Habilita el servidor Modbus y anota la IP. 3) Configura los sensores básicos en Home Assistant. 4) Valida los datos y ajusta los factores de escala. 5) Añade sensores avanzados y automatizaciones. 6) Protege tu red para evitar accesos no autorizados. Con estos pasos, estarás en camino de convertir tu instalación solar en un sistema verdaderamente inteligente.
Este análisis técnico es independiente. No recibimos pagos de fabricantes para alterar valoraciones. Si realizas una compra a través de enlaces en este sitio, podríamos percibir una comisión de afiliación que ayuda a mantener el servidor activo, sin coste extra para ti.