En primer lugar Luis, darte las gracias por la calidad y el entusiasmo demostrado en tus videos. Gracias a tu anterior video de como conectarse a los inversores por medio de modbus, comencé mi ardua tarea de intentar realizarlo con mi sun2000, evidentemente fracase en el intento..........tras miles de peticiones a Huawei para la modificación del ID del inversor, hace 1 mes actualizaron la versión del Firmware del Edongle, ahora ya se puede acceder como ID 1, por lo que se puede utilizar directamente el nodo modbus de Node-red. Sin las indicaciones de tu primer video, nunca hubiera llegado a buen puerto...eternamente agradecido!!! A ver si te animas, y nos deleitas pronto con alguna clase magistral de como gestionar inteligentemente los excedentes, con balanceos, prioridades, etc...ya que creo que algo que el mercado no tiene bien solucionado. Un abrazo desde Tarragona.
donde mandabas los mails para que te lo cambiasen, voy a acribillarles yo para que lo cambien para los que no tenemos el Edongle, que supongo se eso sera el pincho para conectarse por rj45 en vez de por wifi no??
@@danisaez8921 En mi casi tengo el inversor SUN2000-4KTL-M1 con el SDongleA-05, el SDongle tiene tanto Ethernet por cable (RJ45) como conexion wifi. Desde la aplicacion para movil del inversor, te conectas via wifi como instalador, y te permite actualizar el firmware, en mi caso, los problemas de conexion por Modbus se solucionaron al actualizar a la version V100R001C00SPC120. Peo te cuento: Esta version fue liberada en su tiempo para solucionar problemas de comynicacion, pero debido a su inextabilidad y la cantidad de bugs que ofrecia, fue sacada de produccion. a finales del mes pasado liberaron la version V100R001C00SPC122 que es la que tengo instalado y funciona correctamente como ID 1 para modbus.
@@jesusmartinez5237 en breve me instalarán el sun2000 4.7 KLT-L1 pero no se si bien con s dongle. Sabes si en lugar de s dongle viene con antena wifi se puede usar directamente modbus? Gracias
Gracias por el video Luis. Lo facil que lo haces y la de horas que te habras pegado con ello… A pesar de no tener placas, el mirar estos videos me sirve de aprendizaje incluso en otros lenguajes de cara a futuras aplicaciones. Un saludo!
Buen vídeo. Hay dos cosas a tener en cuenta... la primera es que el huawei tiende a bloquearse si le haces peticiones muy seguidas por modbus tcp y la segunda es que si tienes el dongle, cambia un poco la historia (el unit id pasa a ser 1 y hay que indicarlo en las peticiones). Muy instructivo, como siempre!
Muchas gracias Luis. En cuanto tenga un rato pruebo de implementarlo. A mi tampoco me da la vida. Una idea para el canal. Tenemos todos los datos de nuestro inversor, vamos a gestionar los excedentes con enchufes inteligentes, etc. por ejemplo, cuando encender el aire en verano, o en invierno, una estufa, etc.
Me encantan tus videos, pero este ha sido especial, me van a instalar un Huawei Sun2000 y la verdad que no tenia ni idea de como solventar este problema que habia leido que tenia con modbus, estoy seguro que a muchos nos ha ayudado y el paseo que le has dado explicando el servicio en vez de meterlo en un crontab, un sleep o guarrerias de las que normalmente lanzamos, ha sido genial. Gracias Luis! si haces algo más con este inversor, es bienvenido. #SuperLike :)
Muy instructivo. Con mi inversor que es el antiguo (el que enseñas es el L1 Moderno) no tengo problemas para leer los registros directamente sin Python. Igual es porque es otro modelo... Muchas gracias por tus vídeos
@@juangarcia-km9xj Desde node-red creas un nodo modbus-read. Tienes que poner los valores: Unit ID= 0; FC 3 Read Holding Register; address 32016; quantity 72. En el server tienes que configurar: type: tcp; host: la ip de tu inversor, port 502, tcp type default, unit id 0,timeout 1000,reconnect on timeout marcado, reconnect timeout 2000, unitIds in parallel marcado, queue delay 1. La salida de abajo del nodo, la tienes que conectar a un nodo buffer parser. En property : msg.payload.buffer, specification UI Specification, swap none, output property msg.payload, output options marcar set topic,output key/value. En las capturas de variables del buffer parser: type int16(be), PV1_Voltage, Lenght 1, offset 0, no mask,0.1 type int16(be), PV1_Current, Lenght 1, offset 2, no mask,0.01 type int32(be), Input_Power,, Lenght 1, offset 96, no mask,1 type uint16(be), Uab, Lenght 1, offset 100, no mask,0.1 type uint32(be), Ia, Lenght 1, offset 112, no mask,0.001 type uint32(be), Active_Power_Peak, Lenght 1, offset 124, no mask,1 type uint32(be), Active_Power, Lenght 1, offset 128, no mask,1 type uint16(be), Cabinet_Temperature, Lenght 1, offset 142, no mask,0.1 La salida la puedes pasar directamente a un nodo influxdb para guardar los datos. Para acceder a los datos del meter: Creas otro nodo modbus-read. Tienes que poner los valores: Unit ID= 0; FC 3 Read Holding Register; address 37113; quantity 2. El server es el mismo que creaste antes (es el mismo inversor el que da el dato) La salida inferior la tienes que conectar con un nodo buffer-parser nuevo que haga la captura: En property : msg.payload.buffer, specification UI Specification, swap none, output property msg.payload, output options marcar set topic,output key/value. En las capturas de variables del buffer parser: type int16(be), Importado, Lenght 1, offset 0, no mask,1 type int16(be), Potencia, Lenght 1, offset 2, no mask,1 Si Importado vale 0, es que la potencia que te va a dar en Potencia es exportada. Si no, es que está importando la Potencia. Yo se lo he pasado a un function node que lo separa en dos salidas diferentes, pero eso a tu gusto. El codigo del function node es: Pot_Importada = {} Pot_Exportada={} Pot_Importada.payload=0; Pot_Exportada.payload=0; if (msg.payload.Importado==0) { Pot_Exportada.payload= msg.payload.Potencia} else { Pot_Importada.payload=msg.payload.Potencia*(-1)} return [Pot_Exportada,Pot_Importada] y en setup tienes que poner dos Outputs. Espero que te sirva.
@@allamapa no puedes sacar todos los datos necesarios del propio inversor? Ando liado con los registros para saber que es cada cosa, que lista estás usando tú? Muchas gracias
Simplemente genial! Muchas gracias! Aprovecho para disparar una pregunta: teniendo el shelly em instalado en la acometida, hay alguns manera de que el shelly si detecta que estamos inyectando, le diga al inversor "oye que nos sobran 400W! Y el inversor se ajuste para inyectar lo menos posible? Michas gracias!
Muy instructivo, como siempre. Yo ahora el Huawei lo tengo conectado a HA con la integración que tiene, pero no me acaba de gustar, a veces se queda horas sin recibir datos. Por eso me apetecía conectarlo por mqtt, pero no lo había conseguido, ahora ya se como.
Hola, muchas gracias por el vídeo, gran trabajo. ¿Dónde está el Script que has cambiado?, no lo encuentro en el blog, ni en los links. Muchas gracias!!
Buenos dias. Primero felicitarte por la información que compartes que resulta muy útil. Quería preguntarte si en el inversor has habilitado alguna opción desde fusión solar para recibir información modbus, pues no consigo desde node red obtener ningún mensaje (incluso de error ), y me da siempre un time out. Yo tengo el sun2000 4k L1 y he testeado el único puerto que tiene abierto que como dices en el video es el 502. Ya me dices, pues despues de hacer mil pruebas no veo como. Gracias.
Buen vídeo... hoy precisamente mi huawei 5k l1, rozaba los 4900 estíos de producción en Murcia. Quería preguntarte si puedo emparejarlo con el ICC solar.
Sí claro..por que no vas a poder emparejarlo con icc solar? si te refieres "a la vez" la respuesta es no, no soporta conexiones simultaneas por modbus tcp
hola, muy bueno el video, enhorabuena. tengo un problema y es que me conecto por modbus al inversor a través del Dongle de Huawei, el dongle lo tengo en la versión 133, pero aún así no consigo conectarme y leer registros. Mi inversor es el 4ktl trifasico. ¿alguna idea de que puedo hacer? ya no sé qué más probar....
Hola Luis, que ocurre cuando estoy leyendo cada dos segundos la memoria del inversor y este también lo tiene que hacer para realizar su tarea y se hace la petición para una misma zona de memoria desde el inversor y desde el rs485? Gracias por tu tiempo
Hola, estamos leyendo el valor de wats generados por los paneles (AC_W), por otro lado el valor en wats que nos indica el meter (AC_W_GRID) . Como puedo saber la carga en Wats en la vivienda? Con una función que me restara los dos valores ya lo tendria, però no consigo hacerlo. Me puedes ayudar? Gracias !!!!!!!! Un canal fantástico.
@@domotica_solar Hola Luis, lo he descargado pero la caja de función del cálculo del consumo de la vivienda no está. Un Saludo ! Gracias por este magnífico canal.
Buenos dias, Luís. ¿No crees que lo suyo seria actualizar el video con la solución para el 0? Con la de Huaweis que hay instalados creo que este video tendria mucho exito. Si te da pereza (que es un curro y lo entiendo perfectamente), estaria bien un short para que la gente se entere de que existe la posibilidad de sortear el problema del 0. Aunque no lo hagas , gracias por tu trabajo.
@@domotica_solar Hola Luís. Si lo se. Lo de desactivar el queue commands y ya te lo lee. Pero para los que no sean tan cabezones como yo y no insisten y sigan buscando les será de gran ayuda. Como lo de los que tenemos dongle , que tenemos unit id 1, etc. Con tu video anterior como base entendí muchas cosas y lo conseguí. Muchas gracias por todo tu trabajo. I sin tener este inversor. Mucho merito lo tuyo. Veo que hoy haces video al respecto. Intuyo/espero que tengas muchas visualizaciones. Ansioso de verlo. A ver si aprendo algo más (seguro que sí) y mejoro la forma en que lo he conseguido yo. Muchas gracias otra vez por todo tu trabajo.
Hola. Sois geniales!!!. Tenggo el problema que desde la actualizacion del firm al 117 no consigo conectar con el inversor. Alguna solucion? Mil gracias!!!
Yo me volvi loco hasta que descubrí que nodered no funcionaba en slave 0... por ciertoLuis, sería fantastico poder acceder a la info de los optimizadores, revise la documentación y no es "tan facil" que con los datos normales. Es clase de ModBus master
Muy bueno el video. Tengo un Huawey y estaba con lo mismo, me has ahorrado muchas horas así que muchísimas gracias. Respecto a implementarlo como service en la pi, a mi no me gusta tocar la distribución python del sistema, intento evitarlo en la medida de lo posible, ni usando venv's me gusta ¿No sería mejor implementar el script creando una imagen de docker usando la imagen base de python y las librerias necesarias más el script? Además de cara a mantenerlo y actualizarlo creo que sería mas sencillo, es solo una idea.
Hola, soy muy novato en esto pero quiero entender y por lo mismo he visto varios vídeos del canal. Tengo una pregunta, no me juzguen.. para hacer toda esta lectura de datos del inversor huawei que realizaste fue necesaria la instalación de Iotawat? Existe algún método sin Iotawatt específicamente para el inversor Huawei? Muchas gracias y gran canal!!
Hola Luis. El miércoles pasado en el directo decías que uno de los aspectos que no te gustaban del ingeteam era el ajuste de la potencia cuando se conectaba un consumo elevado. El Huawei que tal se comporta en esta situación? Lo has probado?
Eso sí, ciertas prácticas que se fomentan en este vídeo son bonito agujero de seguridad. Los servicios no se ejecutan como root si no hace falta, por ejemplo. Y la forma en la que añades variables es un tedio. Los permisos 777 pues no son la mejor opción. La entrada por SSH con la contraseña por defecto, sin embargo... ahí está lo que nadie debería hacer.
como entenderas la raspberry sobre la que se está haciendo el video es una raspberry de desarrollo y por eso la password es la de por defecto. Independientemente hay un video mas moderno que se hace esto directmaente todo desde nodered sin tener que tocar el sistema. saludos
Gracias por el vídeo Luis. ¿Hay posibilidad de extraer también los datos de los optimizadores? Según el punto 4.2 del manual de modbus de Huawei parece que si se puede, pero no parece ser igual que se extraen los datos del inversor. ¿Te importaría explicar cómo se haría? ¿Como editamos el script para agregar los datos de cada optimizador que se tenga? Gracias
En princpio se puede..es coger los registros que indica el manual en el que se encuentran los optimizadores...y siento no poder ayudarte pero no tengo un inversor con optimizadores. salduos!
Habéis comunicado varios inversores a ... nodered. ¿Alguien sabe donde encontrar las direcciones Modbus para un DEYE? no lo encuentro por ningun lado. GRACIAS
Hola buen día, muchas gracias por su videos son muy educativos, pregunta donde puedo ver el script de python con las modificaciones que realizo de acuerdo al video? ya teniendo estos datos en python como se puede mostrar en el panel de energia de home assistant? muchas gracias.
Gracias geenial el script, seria una falla del nodo modbus read oficial, has probado otros nodos de modbus read alternativos? serviría el script para cualquier equipo modbus genérico?
Como puedo lanzar este scripts en home assistant?, ya que hay gente que solo tenemos instalado home assistant en la Raspberry entiendo q con mqtt podriamos obtenerlo, seria necesario instalar algo mas ?. Otra pregunta. Si tengo dos inversores huawei, que debo realizar para obtener estos datos?
La respuesta es que tienes que tener en variables separadas los datos de cada inversor. Yo soy mas de hacer las cosas con clases y objetos, eso resuelve muchas cosas, pero si no sabes ni lo que es una clase o un objeto, mejor duplica y asigna a cada variable su fuente. Un saludo. PD: Home assistant es un gestor de información que lee de una BD, el script es para dar los valores a la BD, por lo que en teoría dudo que puedas ejecutar el script si no hay datos que leer. Primero creas la BD (con el script) y luego tratas los datos con homeA
En teoría podeis hacerlo sin ningun problema, ya que home assistant permite tener sensores de tipo mqtt, con lo que pondrias un sensor mqtt y listo. El tema es que ya hay una integración para el huawei en home assistant, con lo que no te hace falta el script. Un saludo!
@@jaloramu No entiendo o mejor dicho , no se exactamente que estas preguntando. ¿se podría dockerizar los añadidos a la librería phyton o todo el paquete? => Si por poder, se puede. ¿es imperativo usar docker? => No, si conveniente. Un saludo
en principio viene activado por defecto....sino tienes que entrar en modo instalacion y en ajustes activar modbus tcp (ya te digo que por defecto viene activado)
@@domotica_solar mi consulta básicamente era que quería leer registros del huawei sun2000 desde el 30070 hasta 37121 con modbus y después con buffer parse sacar los que me interesara realmente. Pero me da fallo y no se si es porque hay algún límite en registros máximos a leer con modbus read? Los datos en buffer parse los pongo bien, ya que si acorto el intervalo en modbus read si me da la lectura. Alguna opción ?
Buenos días, voy a hacerlos una consulta, a ver si alguien puede echarme una mano, que ya estoy un poco desesperado: Tengo mi Raspberry conectada a mi router por cable e intento conectarla al inversor por Wifi. Para ello, lo que he hecho (tras mirar un poco por itnternet) ha sido ejecutar en Putty el comando sudo nano /etc/wpa_supplicant/wpa_supplicant.conf e introducir el siguiente texto: ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev ap_scan=1 update_config=1 country=ES network={ ssid="SUN2000-102140113242" psk="Changeme" id_str="AliasRed2" } ¿Es este texto correcto? Un poco más adelante indico cuáles son los parámetros de mis conexiones Ahora mismo, esto es lo que me sale al ejecutar el comando ip addr aaaitsi@raspberrypi:~ $ ip addr 1: lo: mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: eth0: mtu 1500 qdisc mq state UP group default qlen 1000 link/ether e4:5f:01:ac:3d:c9 brd ff:ff:ff:ff:ff:ff inet 192.168.0.27/24 brd 192.168.0.255 scope global noprefixroute eth0 valid_lft forever preferred_lft forever inet6 fe80::89a2:8af3:bc9b:bb53/64 scope link valid_lft forever preferred_lft forever 3: wlan0: mtu 1500 qdisc pfifo_fast state UP group default qlen 1000 link/ether e4:5f:01:ac:3d:ca brd ff:ff:ff:ff:ff:ff inet 192.168.0.25/24 brd 192.168.0.255 scope global deprecated noprefixroute wlan0 valid_lft forever preferred_lft forever inet6 fe80::7826:8608:c496:f4ae/64 scope link valid_lft forever preferred_lft forever Si ejecuto el comando ifconfig obtengo: eth0: flags=4163 mtu 1500 inet 192.168.0.27 netmask 255.255.255.0 broadcast 192.168.0.255 inet6 fe80::89a2:8af3:bc9b:bb53 prefixlen 64 scopeid 0x20 ether e4:5f:01:ac:3d:c9 txqueuelen 1000 (Ethernet) RX packets 11921 bytes 2676638 (2.5 MiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 20468 bytes 3774825 (3.5 MiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 lo: flags=73 mtu 65536 inet 127.0.0.1 netmask 255.0.0.0 inet6 ::1 prefixlen 128 scopeid 0x10 loop txqueuelen 1000 (Local Loopback) RX packets 158 bytes 15401 (15.0 KiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 158 bytes 15401 (15.0 KiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 wlan0: flags=4163 mtu 1500 inet 192.168.0.25 netmask 255.255.255.0 broadcast 192.168.0.255 inet6 fe80::7826:8608:c496:f4ae prefixlen 64 scopeid 0x20 ether e4:5f:01:ac:3d:ca txqueuelen 1000 (Ethernet) RX packets 0 bytes 0 (0.0 B) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 67 bytes 15203 (14.8 KiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 Como se observa, no aparece el inversor por ningún lado, aunque sí puedo verlo ejecutando el comando sudo iwlist wlan0 scan | grep ESSID aaaitsi@raspberrypi:~ $ sudo iwlist wlan0 scan | grep ESSID ESSID:"vodafoneBA1219" ESSID:"SUN2000-102140113242" ESSID:"REDCASA_2_PLUS" ESSID:"REDCASA_2" ESSID:"vodafoneBA1219" ESSID:"REDCASA_2" ESSID:"vodafoneEA00" No sé si estoy tratando de conectarme de forma correcta al inversor. También he tratado de hacerlo usando VNC Server y aunque parece que sí me conecto (ya que así lo indica el símbolo del Wifi, al hacer un ifconfig en la Raspberry, tampoco veo la IP del inversor (192.1.200.1) por ningún lado ¿Alguna idea? Gracias de antemano!!
En primer lugar Luis, darte las gracias por la calidad y el entusiasmo demostrado en tus videos. Gracias a tu anterior video de como conectarse a los inversores por medio de modbus, comencé mi ardua tarea de intentar realizarlo con mi sun2000, evidentemente fracase en el intento..........tras miles de peticiones a Huawei para la modificación del ID del inversor, hace 1 mes actualizaron la versión del Firmware del Edongle, ahora ya se puede acceder como ID 1, por lo que se puede utilizar directamente el nodo modbus de Node-red. Sin las indicaciones de tu primer video, nunca hubiera llegado a buen puerto...eternamente agradecido!!!
A ver si te animas, y nos deleitas pronto con alguna clase magistral de como gestionar inteligentemente los excedentes, con balanceos, prioridades, etc...ya que creo que algo que el mercado no tiene bien solucionado. Un abrazo desde Tarragona.
donde mandabas los mails para que te lo cambiasen, voy a acribillarles yo para que lo cambien para los que no tenemos el Edongle, que supongo se eso sera el pincho para conectarse por rj45 en vez de por wifi no??
Hola Jesus, ¿como has actualizado el firmware del edongle? es el dongle de wifi o de ethernet?
@@danisaez8921 En mi casi tengo el inversor SUN2000-4KTL-M1 con el SDongleA-05, el SDongle tiene tanto Ethernet por cable (RJ45) como conexion wifi. Desde la aplicacion para movil del inversor, te conectas via wifi como instalador, y te permite actualizar el firmware, en mi caso, los problemas de conexion por Modbus se solucionaron al actualizar a la version V100R001C00SPC120. Peo te cuento: Esta version fue liberada en su tiempo para solucionar problemas de comynicacion, pero debido a su inextabilidad y la cantidad de bugs que ofrecia, fue sacada de produccion. a finales del mes pasado liberaron la version V100R001C00SPC122 que es la que tengo instalado y funciona correctamente como ID 1 para modbus.
@@jesusmartinez5237 en breve me instalarán el sun2000 4.7 KLT-L1 pero no se si bien con s dongle. Sabes si en lugar de s dongle viene con antena wifi se puede usar directamente modbus? Gracias
Dani..me han dada una idea para probar y leer con modbus 0 desde nodered....igual te llamo para probarlo. un saludo!
Gracias por el video Luis. Lo facil que lo haces y la de horas que te habras pegado con ello… A pesar de no tener placas, el mirar estos videos me sirve de aprendizaje incluso en otros lenguajes de cara a futuras aplicaciones. Un saludo!
es que eso es algo que a veces la gente no ve..que merece lapena verlos todos poque aprendes siempre cosas...aunque no tengas un huawei. saludos
Buen vídeo. Hay dos cosas a tener en cuenta... la primera es que el huawei tiende a bloquearse si le haces peticiones muy seguidas por modbus tcp y la segunda es que si tienes el dongle, cambia un poco la historia (el unit id pasa a ser 1 y hay que indicarlo en las peticiones). Muy instructivo, como siempre!
Te refieres al dongle WLAN Fe? Para conectarlo por ethernet?. Si es así igual me lo compro.
@@rubenc.m.508 Si. Si tienes problemas con la wifi es una opción, si no, no creas que es maravilloso
gracias por el apunte. saludos
Excelente video, muchas gracias. Un apunte, los topic no deben empezar con /, ya que crea un nivel vacio
Muchas gracias Luis. En cuanto tenga un rato pruebo de implementarlo. A mi tampoco me da la vida. Una idea para el canal. Tenemos todos los datos de nuestro inversor, vamos a gestionar los excedentes con enchufes inteligentes, etc. por ejemplo, cuando encender el aire en verano, o en invierno, una estufa, etc.
correcto, para eso te vale. Un saludo!
Y ya estaría dice… 🤣🤣🤣 que currada Luis! Gracias
Gracias a ti!!un saludo David! (a ver cuando te pones las placas!)
Me encantan tus videos, pero este ha sido especial, me van a instalar un Huawei Sun2000 y la verdad que no tenia ni idea de como solventar este problema que habia leido que tenia con modbus, estoy seguro que a muchos nos ha ayudado y el paseo que le has dado explicando el servicio en vez de meterlo en un crontab, un sleep o guarrerias de las que normalmente lanzamos, ha sido genial. Gracias Luis! si haces algo más con este inversor, es bienvenido. #SuperLike :)
Gracias a ti...es la idea..ir aprendiendo poco a poco cosas... saludos
Muchas gracias. Genial el archivo de Python .
De nada! a disfrutarlo..
Muy instructivo. Con mi inversor que es el antiguo (el que enseñas es el L1 Moderno) no tengo problemas para leer los registros directamente sin Python. Igual es porque es otro modelo... Muchas gracias por tus vídeos
Yo también tengo el antiguo, como lo haces para leeer sin Python
@@juangarcia-km9xj Desde node-red creas un nodo modbus-read.
Tienes que poner los valores: Unit ID= 0; FC 3 Read Holding Register; address 32016; quantity 72.
En el server tienes que configurar: type: tcp; host: la ip de tu inversor, port 502, tcp type default, unit id 0,timeout 1000,reconnect on timeout marcado, reconnect timeout 2000, unitIds in parallel marcado, queue delay 1.
La salida de abajo del nodo, la tienes que conectar a un nodo buffer parser.
En property : msg.payload.buffer, specification UI Specification, swap none, output property msg.payload, output options marcar set topic,output key/value.
En las capturas de variables del buffer parser:
type int16(be), PV1_Voltage, Lenght 1, offset 0, no mask,0.1
type int16(be), PV1_Current, Lenght 1, offset 2, no mask,0.01
type int32(be), Input_Power,, Lenght 1, offset 96, no mask,1
type uint16(be), Uab, Lenght 1, offset 100, no mask,0.1
type uint32(be), Ia, Lenght 1, offset 112, no mask,0.001
type uint32(be), Active_Power_Peak, Lenght 1, offset 124, no mask,1
type uint32(be), Active_Power, Lenght 1, offset 128, no mask,1
type uint16(be), Cabinet_Temperature, Lenght 1, offset 142, no mask,0.1
La salida la puedes pasar directamente a un nodo influxdb para guardar los datos.
Para acceder a los datos del meter:
Creas otro nodo modbus-read. Tienes que poner los valores:
Unit ID= 0; FC 3 Read Holding Register; address 37113; quantity 2.
El server es el mismo que creaste antes (es el mismo inversor el que da el dato)
La salida inferior la tienes que conectar con un nodo buffer-parser nuevo que haga la captura:
En property : msg.payload.buffer, specification UI Specification, swap none, output property msg.payload, output options marcar set topic,output key/value.
En las capturas de variables del buffer parser:
type int16(be), Importado, Lenght 1, offset 0, no mask,1
type int16(be), Potencia, Lenght 1, offset 2, no mask,1
Si Importado vale 0, es que la potencia que te va a dar en Potencia es exportada. Si no, es que está importando la Potencia.
Yo se lo he pasado a un function node que lo separa en dos salidas diferentes, pero eso a tu gusto. El codigo del function node es:
Pot_Importada = {}
Pot_Exportada={}
Pot_Importada.payload=0;
Pot_Exportada.payload=0;
if (msg.payload.Importado==0) {
Pot_Exportada.payload= msg.payload.Potencia}
else {
Pot_Importada.payload=msg.payload.Potencia*(-1)}
return [Pot_Exportada,Pot_Importada]
y en setup tienes que poner dos Outputs.
Espero que te sirva.
en teoria hay una manera de configurar nodered para que permita leer con unit id=0, me lo han comentado y estoy pendiente de probarlo. saludos
@@allamapa no puedes sacar todos los datos necesarios del propio inversor? Ando liado con los registros para saber que es cada cosa, que lista estás usando tú? Muchas gracias
Gracias por tus conocimientos
Gracias a ti
Que buenos videos!!!
Gracias Jose, un saludo
Simplemente genial! Muchas gracias! Aprovecho para disparar una pregunta: teniendo el shelly em instalado en la acometida, hay alguns manera de que el shelly si detecta que estamos inyectando, le diga al inversor "oye que nos sobran 400W! Y el inversor se ajuste para inyectar lo menos posible? Michas gracias!
muy buen video. muchas gracias!!!
Gracias a ti!
Muy instructivo, como siempre. Yo ahora el Huawei lo tengo conectado a HA con la integración que tiene, pero no me acaba de gustar, a veces se queda horas sin recibir datos. Por eso me apetecía conectarlo por mqtt, pero no lo había conseguido, ahora ya se como.
gracias Ruben, un saludo!
Hola, muchas gracias por el vídeo, gran trabajo. ¿Dónde está el Script que has cambiado?, no lo encuentro en el blog, ni en los links. Muchas gracias!!
Buenos dias. Primero felicitarte por la información que compartes que resulta muy útil. Quería preguntarte si en el inversor has habilitado alguna opción desde fusión solar para recibir información modbus, pues no consigo desde node red obtener ningún mensaje (incluso de error ), y me da siempre un time out. Yo tengo el sun2000 4k L1 y he testeado el único puerto que tiene abierto que como dices en el video es el 502. Ya me dices, pues despues de hacer mil pruebas no veo como. Gracias.
Tienes en nuestra comunidad un post de cómo configurar nodered para que te funcione con el Huawei
@@domotica_solar Es un problema me han dicho de huawei europa de upgrade. Ya os cuento si lo soluciono.
Buen vídeo... hoy precisamente mi huawei 5k l1, rozaba los 4900 estíos de producción en Murcia.
Quería preguntarte si puedo emparejarlo con el ICC solar.
Sí claro..por que no vas a poder emparejarlo con icc solar? si te refieres "a la vez" la respuesta es no, no soporta conexiones simultaneas por modbus tcp
hola, muy bueno el video, enhorabuena. tengo un problema y es que me conecto por modbus al inversor a través del Dongle de Huawei, el dongle lo tengo en la versión 133, pero aún así no consigo conectarme y leer registros. Mi inversor es el 4ktl trifasico. ¿alguna idea de que puedo hacer? ya no sé qué más probar....
Buenas. Se puede conectar un gestor de excedentes a una instalación con inv Huawei tomando los datos del smart meter.
Hola Luis, que ocurre cuando estoy leyendo cada dos segundos la memoria del inversor y este también lo tiene que hacer para realizar su tarea y se hace la petición para una misma zona de memoria desde el inversor y desde el rs485?
Gracias por tu tiempo
Hola, estamos leyendo el valor de wats generados por los paneles (AC_W), por otro lado el valor en wats que nos indica el meter (AC_W_GRID) . Como puedo saber la carga en Wats en la vivienda? Con una función que me restara los dos valores ya lo tendria, però no consigo hacerlo. Me puedes ayudar? Gracias !!!!!!!! Un canal fantástico.
Xavier,
en el enlace al blog tienes el flow para descargar.
saludos
@@domotica_solar Hola Luis, lo he descargado pero la caja de función del cálculo del consumo de la vivienda no está. Un Saludo ! Gracias por este magnífico canal.
Buenos dias, Luís.
¿No crees que lo suyo seria actualizar el video con la solución para el 0? Con la de Huaweis que hay instalados creo que este video tendria mucho exito. Si te da pereza (que es un curro y lo entiendo perfectamente), estaria bien un short para que la gente se entere de que existe la posibilidad de sortear el problema del 0. Aunque no lo hagas , gracias por tu trabajo.
Hay una publicación en la comunidad contando el problema y dando la solución. Un saludo
@@domotica_solar Hola Luís. Si lo se. Lo de desactivar el queue commands y ya te lo lee. Pero para los que no sean tan cabezones como yo y no insisten y sigan buscando les será de gran ayuda. Como lo de los que tenemos dongle , que tenemos unit id 1, etc. Con tu video anterior como base entendí muchas cosas y lo conseguí. Muchas gracias por todo tu trabajo. I sin tener este inversor. Mucho merito lo tuyo. Veo que hoy haces video al respecto. Intuyo/espero que tengas muchas visualizaciones. Ansioso de verlo. A ver si aprendo algo más (seguro que sí) y mejoro la forma en que lo he conseguido yo. Muchas gracias otra vez por todo tu trabajo.
buenas, tengo montado node red en docker. Cuando pongo la conexion si me sale connected pero no me salen datos en debug
Hola. Sois geniales!!!. Tenggo el problema que desde la actualizacion del firm al 117 no consigo conectar con el inversor. Alguna solucion? Mil gracias!!!
haz un downgrade a una version anterior. saludos
@@domotica_solar graciaspor la respuesta!!!!! como se puede realizar?
Yo me volvi loco hasta que descubrí que nodered no funcionaba en slave 0... por ciertoLuis, sería fantastico poder acceder a la info de los optimizadores, revise la documentación y no es "tan facil" que con los datos normales. Es clase de ModBus master
mirate el ultimo post de la comunidad....hay un workaround para poder leer desde nodered. saludos
Hay alguna forma de sacar un acumulado de los excedentes diarios? Igual que lo que has consumido de la red en el dia?
Un saludo
Miratge el vídeo de cromo sacra medias de consumos y te puedes hacer una idea de cómo hacerlo
gracias Jordi....efectivamente....aun así juraria que tiene registros modbus que te da acumulados diarios..revisate el documento de modbus. saludos
Muy bueno el video. Tengo un Huawey y estaba con lo mismo, me has ahorrado muchas horas así que muchísimas gracias. Respecto a implementarlo como service en la pi, a mi no me gusta tocar la distribución python del sistema, intento evitarlo en la medida de lo posible, ni usando venv's me gusta ¿No sería mejor implementar el script creando una imagen de docker usando la imagen base de python y las librerias necesarias más el script? Además de cara a mantenerlo y actualizarlo creo que sería mas sencillo, es solo una idea.
Pues sí...como idea está muy bien..es más mantenible y fácil de gestionar. Te invito a meterlo en un docker saludos!
Hola, soy muy novato en esto pero quiero entender y por lo mismo he visto varios vídeos del canal. Tengo una pregunta, no me juzguen.. para hacer toda esta lectura de datos del inversor huawei que realizaste fue necesaria la instalación de Iotawat? Existe algún método sin Iotawatt específicamente para el inversor Huawei? Muchas gracias y gran canal!!
Si has visto este video verás que no se instala ningún iotawatt.los datos se sacan del inversor directamente.saludos
Hola Luis.
El miércoles pasado en el directo decías que uno de los aspectos que no te gustaban del ingeteam era el ajuste de la potencia cuando se conectaba un consumo elevado.
El Huawei que tal se comporta en esta situación? Lo has probado?
No lo he podido probar,ya que no tenía bateria.en teoría voy a tener una batería para probarlo en breve...ya te contare
Ok .
Pues a la espera estoy .
Seria posible comunicarse con un HUAWEI SUN2000-2/6KTL-L1 ????, me parece que no tiene MODBUS (si no le pones un accesorio de 700€) smartlogger 3000
va a ser que no, se puede sin problema...este del video es el mismo modelo pero la version de 3 kwp. SAludos
Ostras, Pedrín. Yo pensé que tocaba hurgar el rs485 para sacar datos de los sun2000.
Eso sí, ciertas prácticas que se fomentan en este vídeo son bonito agujero de seguridad. Los servicios no se ejecutan como root si no hace falta, por ejemplo. Y la forma en la que añades variables es un tedio. Los permisos 777 pues no son la mejor opción. La entrada por SSH con la contraseña por defecto, sin embargo... ahí está lo que nadie debería hacer.
como entenderas la raspberry sobre la que se está haciendo el video es una raspberry de desarrollo y por eso la password es la de por defecto. Independientemente hay un video mas moderno que se hace esto directmaente todo desde nodered sin tener que tocar el sistema. saludos
@@domotica_solar lo miraré tras la siesta pues. La verdad lo encontré buscando sobre Modbus para unos vatímetros que vi recientemente.
Gracias por el vídeo Luis. ¿Hay posibilidad de extraer también los datos de los optimizadores? Según el punto 4.2 del manual de modbus de Huawei parece que si se puede, pero no parece ser igual que se extraen los datos del inversor. ¿Te importaría explicar cómo se haría? ¿Como editamos el script para agregar los datos de cada optimizador que se tenga? Gracias
En princpio se puede..es coger los registros que indica el manual en el que se encuentran los optimizadores...y siento no poder ayudarte pero no tengo un inversor con optimizadores. salduos!
Habéis comunicado varios inversores a ... nodered. ¿Alguien sabe donde encontrar las direcciones Modbus para un DEYE? no lo encuentro por ningun lado. GRACIAS
a ver si alguien te puede ayudar.has mirado en la web del fabricante? raro es que no lo ponga el propio fabricante.
Hola buen día, muchas gracias por su videos son muy educativos, pregunta donde puedo ver el script de python con las modificaciones que realizo de acuerdo al video? ya teniendo estos datos en python como se puede mostrar en el panel de energia de home assistant? muchas gracias.
Rolando, abajo en la descripción del video tienes el enlace a nuestra página web donde ponemos siempre todos los ficheros y demás. Un saludo!
Como puedo hacerlo para llamar a la api y que me devuelva un json y manipularlo con php?
Gracias geenial el script, seria una falla del nodo modbus read oficial, has probado otros nodos de modbus read alternativos?
serviría el script para cualquier equipo modbus genérico?
Si ves el ultimo post de la comunidad hay un "workaround" para solucionarlo y leer directamente desde nodered
Como puedo lanzar este scripts en home assistant?, ya que hay gente que solo tenemos instalado home assistant en la Raspberry entiendo q con mqtt podriamos obtenerlo, seria necesario instalar algo mas ?. Otra pregunta. Si tengo dos inversores huawei, que debo realizar para obtener estos datos?
La respuesta es que tienes que tener en variables separadas los datos de cada inversor.
Yo soy mas de hacer las cosas con clases y objetos, eso resuelve muchas cosas, pero si no sabes ni lo que es una clase o un objeto, mejor duplica y asigna a cada variable su fuente.
Un saludo.
PD: Home assistant es un gestor de información que lee de una BD, el script es para dar los valores a la BD, por lo que en teoría dudo que puedas ejecutar el script si no hay datos que leer.
Primero creas la BD (con el script) y luego tratas los datos con homeA
Yo también tengo exclusivamente en la Raspberry el HA con HAOS, Se podría hacer o hay que tenerlo en docker?
En teoría podeis hacerlo sin ningun problema, ya que home assistant permite tener sensores de tipo mqtt, con lo que pondrias un sensor mqtt y listo. El tema es que ya hay una integración para el huawei en home assistant, con lo que no te hace falta el script. Un saludo!
@@jaloramu No entiendo o mejor dicho , no se exactamente que estas preguntando.
¿se podría dockerizar los añadidos a la librería phyton o todo el paquete? => Si por poder, se puede.
¿es imperativo usar docker? => No, si conveniente.
Un saludo
¡Hola!
¿Alguien sabe si hay que activar algo en el inversor? Gracias
en principio viene activado por defecto....sino tienes que entrar en modo instalacion y en ajustes activar modbus tcp (ya te digo que por defecto viene activado)
Añado este comentario a modo de prueba, porque llevo ya 2 consultas que desaparecen al momento. Alguno sabe decirme porque? Gracias
Agreagsd comandos o similar?tengo la teoría que RUclips los interpreta como código malicioso
@@domotica_solar añadí links a una web y después puse parámetros de modbus si
@@jesusalvarez1527 me imagino que son los links....creo que no deja...camuflalos con espacios y cosas así ..
@@domotica_solar mi consulta básicamente era que quería leer registros del huawei sun2000 desde el 30070 hasta 37121 con modbus y después con buffer parse sacar los que me interesara realmente. Pero me da fallo y no se si es porque hay algún límite en registros máximos a leer con modbus read? Los datos en buffer parse los pongo bien, ya que si acorto el intervalo en modbus read si me da la lectura. Alguna opción ?
@@jesusalvarez1527 mira a ver que leas número justo de registros...que si pullas uno de 32 al final y solo les la primera palabra falla
Buenos días, voy a hacerlos una consulta, a ver si alguien puede echarme una mano, que ya estoy un poco desesperado:
Tengo mi Raspberry conectada a mi router por cable e intento conectarla al inversor por Wifi. Para ello, lo que he hecho (tras mirar un poco por itnternet) ha sido ejecutar en Putty el comando sudo nano /etc/wpa_supplicant/wpa_supplicant.conf e introducir el siguiente texto:
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
ap_scan=1
update_config=1
country=ES
network={
ssid="SUN2000-102140113242"
psk="Changeme"
id_str="AliasRed2"
}
¿Es este texto correcto? Un poco más adelante indico cuáles son los parámetros de mis conexiones
Ahora mismo, esto es lo que me sale al ejecutar el comando ip addr
aaaitsi@raspberrypi:~ $ ip addr
1: lo: mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: mtu 1500 qdisc mq state UP group default qlen 1000
link/ether e4:5f:01:ac:3d:c9 brd ff:ff:ff:ff:ff:ff
inet 192.168.0.27/24 brd 192.168.0.255 scope global noprefixroute eth0
valid_lft forever preferred_lft forever
inet6 fe80::89a2:8af3:bc9b:bb53/64 scope link
valid_lft forever preferred_lft forever
3: wlan0: mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether e4:5f:01:ac:3d:ca brd ff:ff:ff:ff:ff:ff
inet 192.168.0.25/24 brd 192.168.0.255 scope global deprecated noprefixroute wlan0
valid_lft forever preferred_lft forever
inet6 fe80::7826:8608:c496:f4ae/64 scope link
valid_lft forever preferred_lft forever
Si ejecuto el comando ifconfig obtengo:
eth0: flags=4163 mtu 1500
inet 192.168.0.27 netmask 255.255.255.0 broadcast 192.168.0.255
inet6 fe80::89a2:8af3:bc9b:bb53 prefixlen 64 scopeid 0x20
ether e4:5f:01:ac:3d:c9 txqueuelen 1000 (Ethernet)
RX packets 11921 bytes 2676638 (2.5 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 20468 bytes 3774825 (3.5 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
lo: flags=73 mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10
loop txqueuelen 1000 (Local Loopback)
RX packets 158 bytes 15401 (15.0 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 158 bytes 15401 (15.0 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
wlan0: flags=4163 mtu 1500
inet 192.168.0.25 netmask 255.255.255.0 broadcast 192.168.0.255
inet6 fe80::7826:8608:c496:f4ae prefixlen 64 scopeid 0x20
ether e4:5f:01:ac:3d:ca txqueuelen 1000 (Ethernet)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 67 bytes 15203 (14.8 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
Como se observa, no aparece el inversor por ningún lado, aunque sí puedo verlo ejecutando el comando sudo iwlist wlan0 scan | grep ESSID
aaaitsi@raspberrypi:~ $ sudo iwlist wlan0 scan | grep ESSID
ESSID:"vodafoneBA1219"
ESSID:"SUN2000-102140113242"
ESSID:"REDCASA_2_PLUS"
ESSID:"REDCASA_2"
ESSID:"vodafoneBA1219"
ESSID:"REDCASA_2"
ESSID:"vodafoneEA00"
No sé si estoy tratando de conectarme de forma correcta al inversor. También he tratado de hacerlo usando VNC Server y aunque parece que sí me conecto (ya que así lo indica el símbolo del Wifi, al hacer un ifconfig en la Raspberry, tampoco veo la IP del inversor (192.1.200.1) por ningún lado
¿Alguna idea?
Gracias de antemano!!