Hoy conectaremos una placa de desarrollo NodeMCUv2 al inversor Steca, aunque es valido para otros inversores de mismas características ya que la conexión la realizaremos por puerto UART, con lo que podremos monitorear la información que queramos sin necesidad de comprar adaptadores para el inversor caros.

Material necesario:
- 4 cables macho a hembra.
- una placa NodeMCU.
- Tener Home Assistant instalado con complemento ESPHome.
La configuracion para la recopilacion de datos es extensa, pero veremos algunos ejemplos.
lo principal son las conexiones entre el inversor y la placa de desarrollo. conectaremos los cables machos al puerto uart del inversor, que encontramos en la parte inferior, en mi caso un conector blanco.

como se ve en la plaquita verde que es donde va conectado el conector blanco, tenemos facil saber cuales son las conexiones.

por lo que ya solo nos queda conectar del inversor TX a RX de la placa de desarrollo, RX a TX, +5V a Vin y por ultimo GND a GND.
Con esto, ya tendríamos las conexiones listas y la placa, si tenemos el inversor encendido, se encenderá, por lo que ya podemos programarla.
ahora pasamos a la parte de la configuración en ESPHome. Iniciamos la aplicación desde el Home Assistant y si no teníamos previamente configurado el NodeMCU, lo tendremos que conectar por cable a un pc, ya que una vez hecho esto de a continuación, las próximas actualizaciones las realizaremos via OTA.
las conexiones de la placa quedaría algo asi:

el cable conectado a D1 y GND
os dejo el código para que funcione, tanto vía OTA, como para la obtención de datos:
esphome:
name: inversor-solar
platform: ESP8266
board: nodemcuv2
logger:
api:
ota:
password: «PONER LA CONTRASEÑA DE OTA SI TENEIS»
wifi:
networks:
– ssid: NOMBRE DE LA RED
password: CONTRASEÑA DE LA RED
– ssid: NOMBRE DE LA SEGUNDA RED, SI TENEIS
password: CONTRASEÑA DE LA SEGUNDA RED, SI TENEIS
mqtt:
broker: DIRECCION DEL SERVIDOR MQTT (EL MISMO QUE HOME ASSISTANT)
username: NOMBRE DE LA PLATAFORMA MQTT
password: CONTRASEÑA
sensor:
– platform: pipsolar
pipsolar_id: inversor
ac_output_active_power:
id: inversor_ac_output_active_power
name: inversor_potencia_consumida
grid_voltage:
id: inversor_grid_voltage
name: inversor_voltaje_calle
inverter_heat_sink_temperature:
id: inversor_heat_sink_temperature
name: inversor_temperatura_inversor
uart:
– id: uart_bus
tx_pin: GPIO1
rx_pin: GPIO3
baud_rate: 2400
pipsolar:
– uart_id: uart_bus
id: inversor
update_interval: 5s # este es el intervalo de actualizacion de la informacion
web_server:
port: 80
En mayúsculas os he dejado los datos que tenéis que cambiar ya que son únicos de cada uno.
en el siguiente enlace os dejo todos los datos que podéis incorporar para obtener mas información de nuestro inversor. tened en cuenta que cuantos mas metáis podría provocar un fallo del NodeMCU por falta de memoria.
https://esphome.io/components/pipsolar.html?highlight=pipsolar
Una vez todo montado, desde la aplicación de ESPHome, pulsamos en «visit» en nuestro NodeMCU llamado «inversor solar» y nos llevará al web server donde tendremos lo siguiente, menos la primera opción que se lo añadí yo para hacer funcionar un extractor.

perfecto,tanto tiempo que he peleadop con esto y ahora resuelto muchas gracias
Me alegro que lo hayas conseguido y te haya servido de ayuda. Ahora a seguir trasteando.
Hola de nuevo estoy notando que envia errores y hay cortes de envio,estara update_interval: 5s muy corto
de todas maneras funciona, la placa es una ESP32-S3-N8R2 creo que tiene suficientes recursos.saludos
[07:16:26][D][esp-idf:000][mqtt_task]: E (570276) esp-tls: [sock=52] delayed connect error: Connection reset by peer
[07:16:26][D][esp-idf:000][mqtt_task]: E (570279) TRANSPORT_BASE: Failed to open a new connection: 32772
[07:16:26][D][esp-idf:000][mqtt_task]: E (570284) MQTT_CLIENT: Error transport connect
[07:16:26][E][mqtt.idf:162]: MQTT_EVENT_ERROR
[07:16:26][E][mqtt.idf:164]: Last error code reported from esp-tls: 0x8004
[07:16:26][E][mqtt.idf:165]: Last tls stack error number: 0x0
[07:16:26][E][mqtt.idf:167]: Last captured errno : 104 (Connection reset by peer)
[07:16:26][W][mqtt:340]: MQTT Disconnected: TCP disconnected.
[07:16:26][I][mqtt:250]: Connecting to MQTT…
[07:16:28][D][pipsolar:842]: Sending polling command : QMOD with length 4
En el log se ven errores de mqtt. Yo lo tengo en un esp8266 y 5 segundos. Revisa que los parámetros de conexión de mqtt están correctos o si no lo usas omite mqtt. Si quiere comparte el código que usas sin contraseñas y tal y vemos que falla
Hola te he hecho caso y eliminado MQTT no lo utilizo( luego me diras si con MQTT tengo alguma utilidad extra) y funcionando fino y normal tienes algun codigo para controlar la señal wifi ? ocurre que a veces noto que corta no se si es por interferencia o por fallo del router,muchas gracias por el apoyo, voy trasteando este no es mi oficio pero inexplicablemente voy domotizando casa,saludos
mqtt es otra forma de recibir la información, por ejemplo los sensores zigbee, temperatura, humedad, sensores de puertas y ventanas, usan este método de transmisión de datos.
vamos a analizar porque falla la conexión. empecemos por wifi, te mando el código para revisarlo. si seguimos con fallo revisamos que puede pasar. puede ser por tener muchos datos, también se puede saturar la placa por el tema de uart…. te ayudare en todo lo que pueda. revisa el wifi y me das el feedback.
sensor:
– platform: wifi_signal # Reports the WiFi signal strength/RSSI in dB
#name: «WiFi Signal dB»
id: wifi_signal_db
update_interval: 86400s
entity_category: «diagnostic»
– platform: copy # Reports the WiFi signal strength in %
source_id: wifi_signal_db
name: «Wifi inversor»
filters:
– lambda: return min(max(2 * (x + 100.0), 0.0), 100.0);
unit_of_measurement: » %»
entity_category: «diagnostic»
Todo en marcha muchas gracias ,habria alguna posibilidad de enlazar este inverter con grafana,gracias
mira los cafes de tu web si lo he hecho bien porque es la primera vez y no tengo claro si confirma
un saludo
todo correcto Manolo, gracias por el apoyo.
yo no lo utilizo ni lo probe, pero tal vez lo haga.
Posibles caminos para conectar con Grafana:
Opción 1: ESPHome + Home Assistant + InfluxDB + Grafana
Instala el addon de InfluxDB en Home Assistant.
Configura Home Assistant para que envíe los datos a InfluxDB.
Instala Grafana (también como addon o en otro equipo/servidor).
Desde Grafana, conecta InfluxDB como fuente de datos.
Opción 2: Usar http_request en ESPHome para enviar datos a InfluxDB (v1 o v2)
1. Requisitos
Tener InfluxDB accesible desde la red (puede estar en un PC, NAS, Raspberry, etc.).
Tener habilitada la API HTTP en InfluxDB.
Conocer:
URL del endpoint
Nombre de la base de datos
Token (en caso de usar InfluxDB v2)
Bucket (v2) o Database (v1)
Organización (v2)
adjunto codigo de esphome para esta opcion:
# Habilitar soporte HTTP
http_request:
useragent: esphome
timeout: 10s
# Sensor ficticio de potencia
sensor:
– platform: adc
pin: A0
name: «Potencia»
id: sensor_potencia
update_interval: 60s
filters:
– multiply: 100.0
on_value:
then:
– http_request.post:
url: «http://192.168.1.10:8086/write?db=solar»
headers:
Authorization: «Basic YWRtaW46YWRtaW4xMjM=» # admin:admin123 en base64
Content-Type: «text/plain»
body: !lambda |-
return «inversor potencia=» + to_string(x);
Opción 3: MQTT + Telegraf + InfluxDB + Grafana
El NodeMCU envía datos por MQTT.
Un servidor MQTT (como Mosquitto) recibe los datos.
Telegraf recoge esos datos y los guarda en InfluxDB.
Grafana se conecta a InfluxDB para mostrar los datos.