Paneles solares con Home Assistant y Huawei
Quería compartir con vosotros, por si alguien lo necesita vaya, una recopilación de los pasos que seguí para integrar el inversor de Huawei con Home Assistant, para ver cualquier consumo o dato del propio inversor, de la batería o de las placas entre otros. Así desde la propia app de Home Assistant tendremos todos nuestros consumos de energía detallados, tendremos históricos…
En la instalación tenemos un inversor solar Huawei SUN2000, una batería de Huawei y algunas placas solares =) El propio inversor de Huawei tiene conectividad Wifi, yo no la uso por que he tenido mala experiencia con ese dispositivo y mi red Unifi, así que al inversor Huawei nos conectaremos un Elfin-EW11. Este dispositivo proporciona conectividad Wifi a una interfaz serie RS485, por lo que podremos hacer que Home Assistant se conecte por Wifi a este dispositivo para leer los datos del inversor.
Configuración de EW11
Conectaremos el inversor Huawei a Home Assistant a través de Modbus RTU, usamos el adaptador Elfin EW11 o EW11A, que como hemos comentado es un conversor de Modbus RTU a Wifi. Viene con un cable que tiene por un lado un botón de reset que puede venir muy bien para resetear la conexión, y por el otro lado un conector verde con 4 entradas. El cableado del conector verde, viene marcado y se ve bien:
- En los 2 pines centrales va la alimentación, positivo ( + ) y negativo ( – ) de un cargador (entrada 5-18VDC y creo recordar 1A).
- A los lados se conecta el A y el B que vienen del conector de Huawei. Quedando en mi caso del número 1 del conector de Huawei al B del EW11, y del número 2 del conector de Huawei al A del EW11.
Cómo quizá en un post en escrito es complicado ver este tipo de conexiones, os recomiendo un par de videos de Un loco y su tecnología donde explica este tema perfectamente (uno y dos).
Conectamos el transformador a la corriente y se encenderá el Elfin EW11, aparecerá una Wifi llamada EW11_XXXX, nos conectamos a ella.
Abrimos el navegador contra la dirección IP http://10.10.100.254 con usuario admin y contraseña por defecto admin.
Vamos a al menú de “System Settings” > buscamos “Wifi Settings” y en ‘Wifi Mode’ de AP lo ponemos a STA para que se conecte a nuestro Wifi, indicamos nuestro SSID y contraseña. Le damos a “Submit”,
Conectamos finalmente la conexión que viene del conector de Huawei al EW11, vaya juntar los conectores verdes.
Nos conectamos a la web de gestión del EW11 y vamos a “Serial Port Settings”. En “Basic Settings” tendremos en cuenta que el ‘Baud Rate’ estará a 9600, el ‘Data Bit’ a 8, el ‘Stop Bit’ a 1 y la ‘Parity’ a None. Y finalmente en “Protocol Settings” cambiaremos el Protocol a ‘Modbus’. Le damos a “Submit”.
En el menú de “Communication Settings”, en “Socket Settings” indicaremos el ‘Local Port’ a 502, el ‘Buffer Size’ a 1024. Le damos a “Submit”.
Vamos al menú “Others” y reiniciamos el dispositivo desde “Restart”.
Ahora ya tenemos listo el dispositivo EW11, en nuestra red Wifi y permitiendo conexiones para la consulta de datos, a partir de ahora podremos conectarnos con Node-RED por ejemplo y leer manualmente los datos, o usar una integración que lo haga todo por nosotros.
Configuración de Huawei Solar
En el momento que desplegué esto, Huawei Solar se instalaba desde HACS, en HACS debemos buscar e instalar la integración de Huawei Solar y reiniciar Home Assistant. Si necesitas ayuda con la instalación de esta integración echa un vistazo a su documentación y lo tendrás, pero vaya es añadir un repositorio e instalar la integración con 1 click.
Una vez instalada la integración ya podremos añadirla en nuestro Home Assistant, para ello vamos a “Ajustes” > “Dispositivos y Servicios” > “Añadir integración” y buscamos Huawei Solar y le pinchamos.
Nos pedirá la conexión, en nuestro caso ‘Network’,
Indicamos la dirección IP del EW11, el puerto que hemos indicado y en Slave IDs un 1. “Enviar”,
Y nos indicará que ha detectado correctamente y añadido los dispositivos del Inversor, Batería y el medidor de energía. “Terminar”,
Vamos a sus Opciones del Sistema, a habilitar el sondeo, para refrescar con mayor frecuencia los sensores,
Y actualizamos,
Nos habrá creado estas entidades que podremos agrupar así de manera fea, pero para hacernos una idea de cuántos datos vamos a poder obtener de cada dispositivo.
Podemos descargarnos en HACS una tarjeta llamada ‘Power Flow Card Plus’ para ver de otra manera más intuitiva estos datos. Vamos a HACS > Interfaz > Buscamos: Power Flow Card Plus y la descargamos.
Y tendríamos por ejemplo esas dos tarjetas con el consumo en tiempo real, y el diario, por ejemplo. Os dejaré a continuación el código YAML, pero ya no es necesario y se configura con el ratón en un periquete.
type: custom:power-flow-card-plus title: Consumo eléctrico - Tiempo real entities: battery: entity: sensor.battery_charge_discharge_power state_of_charge: sensor.battery_state_of_capacity invert_state: true grid: entity: sensor.pzem_004t_v3_power invert_state: true solar: entity: sensor.inverter_input_power display_zero_state: true individual: [] fossil_fuel_percentage: {} home: {} clickable_entities: true display_zero_lines: mode: show transparency: 50 grey_color: - 189 - 189 - 189 use_new_flow_rate_model: true w_decimals: 1 kw_decimals: 1 min_flow_rate: 0.75 max_flow_rate: 6 max_expected_power: 2000 min_expected_power: 0.01 watt_threshold: 1000 inverted_entities: battery, grid
Ejemplo de ver en modo grid en tiempo real, en YAML, cambiando tus dispositivos, o en modo GUI mejor, vaya.
type: custom:apexcharts-card graph_span: 12h header: show: false title: Consumo Hogar - 24h show_states: false yaxis: - id: first decimals: 0 - id: second opposite: true decimals: 0 series: - entity: sensor.inverter_input_power name: Salida de FV type: area opacity: 0.7 stroke_width: 1 color: orange yaxis_id: first group_by: func: avg duration: 1min show: in_header: false legend_value: false - entity: sensor.battery_charge_discharge_power name: Bateria type: area opacity: 0.5 stroke_width: 1 color: red yaxis_id: first group_by: func: avg duration: 1min - entity: sensor.battery_state_of_capacity name: Carga bateria type: line opacity: 0.5 stroke_width: 2 color: black yaxis_id: second group_by: func: avg duration: 1min - entity: sensor.inverter_active_power name: ActivePower type: area opacity: 0.5 stroke_width: 1 color: green yaxis_id: first group_by: func: avg duration: 1min - entity: sensor.pzem_004t_v3_power name: iberdrola type: area opacity: 0.5 stroke_width: 1 color: pink yaxis_id: first group_by: duration: 1m func: avg
O si necesitas de ejemplo el código de la tarjeta ApexChats para ver la evolución de los usos y consumos.
Y para finalizar, os recomiendo una integración llamada “Forecast.Solar” que os permitirá saber la previsión solar del día, de la próxima hora o del día siguiente, para modo informativo o usar en automatizaciones =)
Espero os resulte interesante,