Conexión NodeMCU a inversor Steca

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.

About Author

Artículos recomendados

8 comentarios

  1. perfecto,tanto tiempo que he peleadop con esto y ahora resuelto muchas gracias

    1. Me alegro que lo hayas conseguido y te haya servido de ayuda. Ahora a seguir trasteando.

      1. 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

        1. 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

          1. 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

          2. 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»

  2. 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

    1. 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.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *