Cómo extraer datos de tu inversor fotovoltaico de forma local sin usar internet
La monitorización de un sistema fotovoltaico se ha convertido en una práctica esencial para maximizar el rendimiento y detectar fallos a tiempo. Sin embargo, la mayoría de fabricantes ofrecen soluciones basadas en la nube que requieren conexión permanente a internet y ceden datos a servidores externos. Para quienes valoran la privacidad, la autonomía o simplemente viven en zonas con conectividad limitada, extraer los datos del inversor de forma local es una alternativa cada vez más demandada. En esta guía exploraremos los fundamentos técnicos, los protocolos de comunicación, el hardware necesario y los pasos para implementar un sistema de monitorización local completo, desde la conexión física hasta la visualización en tiempo real en plataformas como Home Assistant.
Fundamentos de la comunicación local con inversores solares
Los inversores fotovoltaicos modernos incorporan puertos de comunicación que permiten intercambiar datos con dispositivos externos. El estándar más extendido en la industria es el protocolo Modbus, que puede transmitirse a través de diferentes capas físicas: RS485 (la más común), RS232 o incluso TCP/IP. Modbus es un protocolo abierto, documentado y ampliamente soportado, lo que lo convierte en la puerta de entrada ideal para la monitorización local.
Cada inversor expone un conjunto de registros (holding registers) que contienen variables como potencia instantánea, energía total generada, tensiones de entrada, corrientes, temperatura, estado de funcionamiento, etc. La dirección de estos registros varía según el fabricante y modelo, por lo que es imprescindible consultar el manual técnico o la documentación Modbus específica. Algunos fabricantes, como Victron Energy, SMA, Fronius o Growatt, proporcionan mapas de registros públicos, mientras que otros pueden requerir ingeniería inversa o acuerdos de confidencialidad.
Protocolos y capas físicas
La capa física más habitual es RS485, un bus diferencial que permite conectar múltiples dispositivos en un mismo par de cables (hasta 32 nodos en configuración estándar). La conexión típica utiliza dos hilos (A y B) y, opcionalmente, una referencia común (GND). La distancia máxima puede alcanzar los 1200 metros, suficiente para instalaciones residenciales y comerciales. Algunos inversores también incluyen Ethernet (Modbus TCP) o Wi-Fi, pero para una solución puramente local, RS485 es la opción más fiable y universal.
Para leer los datos necesitamos un dispositivo que actúe como maestro Modbus. Aquí es donde entran en juego las placas de desarrollo como ESP32 o ESP8266, que combinan un microcontrolador con conectividad Wi-Fi y Bluetooth. El ESP32, en particular, dispone de dos puertos serie UART que pueden configurarse para comunicación RS485 mediante un transceptor externo (como el MAX485). Alternativamente, existen módulos integrados como el ESP32 con RS485 ya incorporado (por ejemplo, el modelo ESP32-485).
1ESP32 + MAX485
Solución económica y flexible. El ESP32 se programa con Arduino IDE o ESPHome, y el MAX485 convierte las señales UART a RS485. Requiere conexión de 4 pines: VCC, GND, RO (receive) y DI (drive).
2ESP32 con RS485 integrado
Placas como la ESP32-485 integran el transceptor en el propio módulo, simplificando el cableado. Ideales para prototipos rápidos y proyectos definitivos.
Guía paso a paso: instalación y configuración
A continuación se detalla el proceso completo para montar un sistema de monitorización local desde cero. Asumiremos un inversor con puerto RS485 y un ESP32 como maestro Modbus. Los pasos son genéricos y aplicables a la mayoría de marcas, aunque deberás adaptar los registros Modbus a tu modelo concreto.
1. Identificar el puerto de comunicación del inversor
Localiza en el inversor el conector etiquetado como RS485, COM, BMS, o similar. Consulta el manual para identificar los pines: normalmente son A (D+), B (D-) y GND. Algunos inversores utilizan un conector RJ45 (similar a Ethernet) con una asignación de pines específica. Por ejemplo, en inversores SMA, el pin 1 es A, pin 2 es B, y pin 5 es GND. Es fundamental no invertir la polaridad (A con B) y conectar correctamente la tierra.
2. Cableado del ESP32 con transceptor RS485
Conecta el MAX485 al ESP32 de la siguiente manera: VCC a 3.3V (o 5V si el módulo lo soporta), GND a GND, RO a un pin RX del ESP32 (por ejemplo, GPIO16), DI a un pin TX (GPIO17). Además, conecta los pines DE y RE juntos a un pin digital (GPIO4) para controlar la dirección de transmisión/recepción. Luego, conecta los terminales A y B del MAX485 a los correspondientes A y B del inversor. Si el inversor requiere terminación de línea, coloca una resistencia de 120 ohmios entre A y B en el extremo del bus.
3. Programación del ESP32 con ESPHome
ESPHome es una plataforma que permite configurar el ESP32 mediante archivos YAML, generando automáticamente el firmware. Es la forma más sencilla de integrar el dispositivo con Home Assistant. Instala ESPHome en tu servidor (o usa el add-on de Home Assistant) y crea un nuevo dispositivo. En la configuración, define el puerto serie para Modbus:
uart:
id: mod_bus
tx_pin: GPIO17
rx_pin: GPIO16
baud_rate: 9600
stop_bits: 1
data_bits: 8
parity: NONE
modbus:
id: modbus1
uart_id: mod_bus
flow_control_pin: GPIO4Luego, añade los sensores que deseas leer, por ejemplo, la potencia actual (registro 40001 en muchos inversores):
sensor:
- platform: modbus_controller
modbus_id: modbus1
address: 1 # Dirección del inversor (por defecto 1)
register_type: holding
register_count: 2
name: "Potencia AC"
unit_of_measurement: "W"
register: 0x0000 # Dirección del registro (0x0000 equivale a 40001)
value_type: U_WORD
accuracy_decimals: 0Compila y sube el firmware al ESP32. Una vez conectado a tu red Wi-Fi, los datos aparecerán automáticamente en Home Assistant como entidades.
Errores comunes, limitaciones y seguridad eléctrica
Aunque el proceso es relativamente sencillo, existen varios puntos donde los usuarios suelen encontrar dificultades. Uno de los más frecuentes es la configuración incorrecta de los parámetros de comunicación: velocidad en baudios, paridad, bits de parada, etc. Estos valores deben coincidir exactamente con los configurados en el inversor. Si no estás seguro, prueba con 9600 baudios, 8 bits de datos, sin paridad y 1 bit de parada, que es la configuración más común.
Otro error típico es la dirección Modbus del inversor. Por defecto suele ser 1, pero algunos modelos utilizan 2 o 3, o permiten cambiarla mediante DIP switches. Si no obtienes respuesta, prueba con diferentes direcciones. También es posible que el inversor requiera un tiempo de espera entre comandos; en ESPHome puedes ajustar el parámetro throttle en el sensor.
En cuanto a la seguridad eléctrica, recuerda que el inversor está conectado a la red eléctrica y puede generar altas tensiones. Siempre trabaja con el sistema apagado y desconectado de la red antes de manipular los cables de comunicación. Aunque RS485 es de bajo voltaje, una conexión incorrecta podría dañar tanto el inversor como el ESP32. Utiliza cables apantallados y conecta la pantalla a tierra en un solo punto para evitar bucles de tierra.
Comparativa de soluciones de monitorización local
Existen varias alternativas para implementar la monitorización local, desde soluciones comerciales hasta proyectos DIY. La siguiente tabla compara las opciones más populares en función de coste, complejidad, funcionalidades y privacidad.
| Solución | Coste | Complejidad | Privacidad | Integración HA |
|---|---|---|---|---|
| ESP32 + ESPHome | Bajo | Media | Total | Nativa |
| Raspberry Pi + Node-RED | Medio | Alta | Total | Manual |
| Puerta de enlace comercial (p. ej., SolarEdge) | Alto | Baja | Limitada | No oficial |
| PLC industrial + SCADA | Muy alto | Muy alta | Total | Compleja |
La solución con ESP32 y ESPHome destaca por su equilibrio entre coste, privacidad y facilidad de integración con Home Assistant. Es la recomendada para la mayoría de usuarios domésticos con conocimientos técnicos básicos.
Preguntas frecuentes
¿Qué inversores son compatibles con la monitorización local?
¿Es legal modificar la comunicación del inversor?
¿Puedo usar un cable USB-RS485 en lugar de un ESP32?
¿Qué hago si mi inversor no responde a las peticiones Modbus?
Conclusiones y plan de acción recomendado
La monitorización local de un inversor fotovoltaico no solo es posible, sino que ofrece ventajas significativas en términos de privacidad, fiabilidad y personalización. Al eliminar la dependencia de la nube, los datos permanecen bajo tu control y el sistema sigue funcionando incluso si falla la conexión a internet. La combinación de un ESP32 con ESPHome y Home Assistant proporciona una solución robusta, de bajo coste y con una integración perfecta en el ecosistema del hogar inteligente.
Para empezar, te recomendamos seguir estos pasos: 1) Identifica el modelo de tu inversor y localiza el puerto RS485. 2) Adquiere un ESP32 (o ESP32-485) y un transceptor MAX485. 3) Cablea siguiendo el esquema descrito. 4) Instala ESPHome en tu servidor Home Assistant y configura los registros Modbus según el manual de tu inversor. 5) Compila y sube el firmware. 6) Disfruta de tus datos en tiempo real, sin necesidad de internet.
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.