Cómo Integrar un Inversor Solar Deye en Home Assistant con Modbus TCP: Guía Paso a Paso para Monitorizar y Optimizar tu Producción
Escrito por: Alex R.La integración de un inversor solar Deye 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 eficiencia energética. A diferencia de otras marcas que limitan el acceso a los datos, los inversores Deye ofrecen un protocolo de comunicación abierto que permite extraer métricas en tiempo real: producción fotovoltaica, consumo de cargas, estado de la batería, potencia exportada a la red y decenas de parámetros más. Esta guía te acompañará desde los conceptos básicos de Modbus TCP hasta la implementación completa en Home Assistant, con ejemplos de configuración YAML, automatizaciones y soluciones a los errores más frecuentes. Al finalizar, serás capaz de monitorizar y optimizar tu producción solar con un nivel de detalle profesional, todo ello sin depender de nubes propietarias ni de pasarelas costosas.
1. Fundamentos de Modbus TCP y su aplicación en inversores Deye
Modbus es un protocolo de comunicación industrial creado en 1979 que sigue vigente gracias a su simplicidad y robustez. En su variante TCP, los datos se transmiten sobre Ethernet mediante tramas que incluyen una dirección de esclavo, un código de función, un registro y un valor. Los inversores Deye implementan un servidor Modbus TCP en el puerto 502 (aunque algunos modelos permiten cambiarlo) y exponen cientos de registros que reflejan el estado interno del equipo. Cada registro tiene una dirección única, un tamaño (16 o 32 bits) y una escala que debe aplicarse para obtener la unidad física (vatios, voltios, amperios, grados Celsius, etc.).
Para interactuar con el inversor, Home Assistant actúa como cliente Modbus. La integración nativa modbus permite leer y escribir registros de forma periódica. Es fundamental comprender la diferencia entre registros de solo lectura (input registers) y registros de lectura/escritura (holding registers). Los primeros suelen contener mediciones instantáneas, mientras que los segundos permiten modificar parámetros de configuración, como los límites de exportación o los modos de trabajo. La mayoría de los datos que necesitamos para monitorizar la producción se encuentran en los input registers, que se leen con la función 0x04.
1.1. Arquitectura de comunicación y requisitos previos
Antes de sumergirnos en la configuración, es crucial entender la topología de red. El inversor Deye debe estar conectado a tu red local, ya sea mediante cable Ethernet o Wi-Fi a través de un módulo compatible (como el LSW-3 o el datalogger integrado). Una vez asignada una IP fija (por ejemplo, 192.168.1.100), Home Assistant podrá alcanzarlo. Si tu instalación cuenta con varios inversores en paralelo, cada uno tendrá su propia dirección IP y deberás configurar múltiples instancias de la integración Modbus.
Además, necesitarás conocer el modelo exacto de tu inversor Deye, ya que el mapa de registros varía ligeramente entre las series SUN-5K-SG04LP3, SUN-8K-SG04LP3, SUN-12K-SG04LP3 y los híbridos monofásicos. La documentación oficial de Deye proporciona una lista de registros, pero en esta guía incluiremos los más relevantes y probados en instalaciones reales. También es recomendable habilitar el acceso Modbus TCP en el menú del inversor; algunos firmware lo traen desactivado por defecto.
2. Configuración paso a paso en Home Assistant
Home Assistant ofrece dos vías principales para integrar Modbus: a través de la interfaz de usuario (integraciones) o mediante configuración YAML. Para un control total y la posibilidad de definir múltiples registros con escalas personalizadas, recomendamos encarecidamente la configuración YAML. A continuación, detallamos el proceso completo.
2.1. Habilitar Modbus TCP en el inversor Deye
Accede al menú del inversor utilizando la pantalla LCD y el teclado. Navega hasta Configuración avanzada (a menudo protegida con contraseña, por defecto 1111 o 7777). Busca la opción Comunicación o Modbus y asegúrate de que el protocolo esté habilitado. Algunos modelos requieren seleccionar el tipo de conexión (Ethernet o Wi-Fi) y establecer el puerto (502 por defecto). Si utilizas un datalogger externo, verifica que no esté ocupando el puerto 502; en tal caso, podrías necesitar un segundo puerto o deshabilitar el datalogger.
2.2. Crear el archivo de configuración YAML
En tu instalación de Home Assistant, edita el archivo configuration.yaml o, preferiblemente, crea un archivo independiente en la carpeta packages para mantener el orden. A continuación, se muestra un ejemplo de configuración para un inversor Deye trifásico híbrido. Ten en cuenta que las direcciones de los registros pueden variar según el modelo; verifica con la documentación oficial.
modbus:
- name: deye_inverter
type: tcp
host: 192.168.1.100
port: 502
sensors:
- name: "Deye Producción PV"
slave: 1
address: 672
input_type: input
data_type: uint32
scale: 0.1
unit_of_measurement: "W"
device_class: power
state_class: measurement
- name: "Deye Consumo Casa"
slave: 1
address: 676
input_type: input
data_type: uint32
scale: 0.1
unit_of_measurement: "W"
device_class: power
state_class: measurement
- name: "Deye Potencia Batería"
slave: 1
address: 590
input_type: input
data_type: int32
scale: 0.1
unit_of_measurement: "W"
device_class: power
state_class: measurement
- name: "Deye SOC Batería"
slave: 1
address: 588
input_type: input
data_type: uint16
scale: 1
unit_of_measurement: "%"
device_class: battery
state_class: measurementEste bloque define cuatro sensores esenciales. Observa que para valores de 32 bits se utiliza data_type: uint32 o int32, y que la escala ajusta el valor bruto (por ejemplo, 0.1 para obtener vatios). El parámetro slave: 1 es el identificador Modbus del inversor; en instalaciones con múltiples equipos, cada uno tendrá un slave distinto.
2.3. Añadir sensores adicionales y plantillas
Además de los sensores básicos, podemos crear plantillas para calcular la energía acumulada, el autoconsumo o el rendimiento. Por ejemplo, un sensor de energía diaria se puede obtener integrando la potencia PV a lo largo del tiempo. Home Assistant incluye la integración integration (anteriormente Riemann sum) para este propósito. A continuación, un ejemplo de configuración en YAML:
sensor:
- platform: integration
source: sensor.deye_produccion_pv
name: "Energía PV Diaria"
unit_prefix: k
round: 2
method: trapezoidalCon esta configuración, Home Assistant calculará los kWh generados en el día. También podemos crear sensores de plantilla para mostrar el estado de carga de la batería en formato legible o para combinar la producción de varios strings. La flexibilidad de YAML permite adaptar la monitorización a cualquier necesidad.
1Sensor de producción PV
Mide la potencia instantánea de los paneles solares. Es el dato principal para evaluar el rendimiento del sistema.
2Sensor de consumo de casa
Indica la demanda energética del hogar. Permite calcular el autoconsumo y la energía exportada a la red.
3Sensor de estado de batería
Proporciona el nivel de carga (SOC) y la potencia de carga/descarga. Fundamental para gestionar la autonomía.
4Sensor de exportación a red
Mide la energía inyectada a la red eléctrica. Esencial para monitorizar el vertido y su compensación.
3. Monitorización avanzada: dashboards y automatizaciones
Una vez que los sensores están disponibles en Home Assistant, podemos crear un panel de control personalizado utilizando tarjetas como Gauge, History Graph o Mini Graph Card. Para una visualización profesional, recomendamos instalar HACS y añadir tarjetas como apexcharts-card o power-flow-card-plus, que permiten representar gráficamente el flujo de energía entre paneles, batería, casa y red.
Además de la monitorización, la integración con Modbus TCP habilita automatizaciones inteligentes. Por ejemplo, podemos programar que el inversor limite la exportación a la red cuando el precio de la luz sea bajo, o que cargue la batería en las horas valle para luego descargarla en las horas punta. Estas acciones requieren escribir en holding registers del inversor, lo cual conlleva un mayor riesgo. A continuación, mostramos un ejemplo de automatización para ajustar el límite de exportación:
automation:
- alias: "Limitar exportación a 0W en horas punta"
trigger:
- platform: time
at: "18:00:00"
action:
- service: modbus.write_register
data:
hub: deye_inverter
slave: 1
address: 123
value: 0Este ejemplo es ilustrativo; la dirección del registro de límite de exportación varía según el modelo (consulta el manual). Antes de escribir, asegúrate de comprender el rango de valores y las consecuencias. Un límite mal configurado puede provocar que el inversor deje de exportar o que se produzcan errores de funcionamiento.
3.1. Caso práctico: optimización del autoconsumo
Imagina una vivienda con una instalación de 5 kWp, batería de 10 kWh y tarifa con discriminación horaria. El objetivo es maximizar el autoconsumo y minimizar el coste. Con Home Assistant y los datos del inversor, podemos crear una automatización que, en función del SOC de la batería y de la producción PV, decida si cargar la batería desde la red en horas valle o esperar a la producción solar. Los sensores de Modbus proporcionan la información en tiempo real para tomar decisiones.
Por ejemplo, si a las 10:00 el SOC es inferior al 30% y la producción PV supera los 2 kW, la automatización puede priorizar la carga de la batería. Si por el contrario, el SOC es alto y la producción excede el consumo, se puede activar la exportación a red. Todo ello sin intervención manual, gracias a la lectura continua de los registros Modbus.
4. Errores comunes y solución de problemas
La integración Modbus TCP no está exenta de dificultades. A continuación, enumeramos los fallos más habituales y cómo resolverlos.
- Error de conexión rechazada: Suele indicar que el puerto 502 está cerrado o que la IP es incorrecta. Verifica la conectividad con
pingy asegúrate de que el inversor tiene Modbus TCP habilitado. - Valores negativos o desorbitados: Puede deberse a un tipo de dato incorrecto (uint16 vs int16) o a una escala mal aplicada. Revisa la documentación del registro.
- Timeout en las lecturas: Ocurre cuando el inversor no responde a tiempo. Aumenta el parámetro
timeouten la configuración Modbus o reduce la frecuencia de sondeo. - Conflicto con el datalogger: Si el datalogger original está conectado, puede que ya esté usando el puerto 502. En ese caso, desconéctalo o configura el inversor para aceptar múltiples conexiones.
5. Tabla comparativa de métodos de integración
Existen varias formas de conectar un inversor Deye a Home Assistant. La siguiente tabla compara las opciones más comunes, con sus ventajas y limitaciones.
| Método | Ventajas | Desventajas | Recomendado |
|---|---|---|---|
| Modbus TCP directo | Sin nube, datos en tiempo real, control total | Requiere conocimientos técnicos, riesgo al escribir | Sí |
| Datalogger con API | Fácil configuración, sin YAML | Dependencia de la nube, latencia, datos limitados | Opcional |
| Integración vía RS485 | Compatible con modelos sin Ethernet | Requiere conversor USB-RS485, configuración más compleja | Opcional |
| Pasarela externa (p.ej. Solarman) | Fácil, sin acceso al inversor | Coste adicional, dependencia de terceros | No |
Como se desprende de la tabla, la integración directa por Modbus TCP es la más recomendable para usuarios avanzados que buscan control absoluto y independencia de servicios en la nube. Las alternativas con datalogger o pasarelas externas pueden ser útiles para quienes prefieren una solución plug-and-play, pero sacrifican granularidad y privacidad.
6. Preguntas frecuentes (FAQ)
¿Es compatible mi inversor Deye con Modbus TCP?
¿Qué registros debo leer para monitorizar la producción solar?
¿Puedo controlar el inversor desde Home Assistant?
¿Cómo soluciono los errores de timeout en las lecturas Modbus?
timeout en la configuración de Modbus (por ejemplo, a 10 segundos) y reduce la frecuencia de sondeo si es necesario. También verifica que no haya otro cliente Modbus (como el datalogger) compitiendo por la conexión. En última instancia, puedes optar por un sondeo menos frecuente para aliviar la carga.7. Conclusiones y plan de acción
La integración de un inversor Deye en Home Assistant mediante Modbus TCP es un proyecto gratificante que te permitirá tomar el control de tu instalación solar. A lo largo de esta guía hemos cubierto desde los fundamentos del protocolo hasta la configuración práctica, incluyendo ejemplos de sensores, automatizaciones y soluciones a problemas comunes. Si sigues los pasos descritos, en pocas horas tendrás un panel de monitorización completo y la capacidad de optimizar tu producción y consumo energético.
Como plan de acción, te sugerimos: primero, verificar la compatibilidad de tu inversor; segundo, habilitar Modbus TCP y asignar una IP fija; tercero, configurar los sensores básicos en Home Assistant; cuarto, crear un dashboard atractivo; y quinto, implementar automatizaciones para optimizar el autoconsumo. Con cada paso, ganarás visibilidad y control sobre tu sistema fotovoltaico, maximizando el retorno de tu inversión.
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.