ESPHome - falownik / inwerter Anenji

ESPHome?

UWAGA to nie jest kompletny YAML, a jedynie sekcje dodatkowych sensorów (więc treść trzeba dokleić do właściwych istniejących sekcji) i uzupełnienia (by mieć w miarę pełne informacje o WiFi oraz diagnostyce - przydają się do diagnozowania przyczyn awarii, bo rozłączanie WiFi nie musi wynikać z samych warunków WiFi…)

substitutions:
  name: "nazwa-hosta"
  friendly_name: "Przyjazna Nazwa"

debug: # wymagane dla pierdół diagnostycznych
  update_interval: 5s

binary_sensor:
  - platform: status # wskazuje stan połączenia API z HA
    name: "${name} Node Status" 
    id: system_status

sensor:
  - platform: wifi_signal # siła sygnału WiFi
    name: "${name} sygnał WiFi"
    update_interval: 60s

  - platform: debug # i kilka pierdół diagnostycznych
    free:
      name: "${name} Heap Free"
    fragmentation:
      name: "${name} Heap Fragmentation"
    block:
      name: "${name} Heap Max Block"
    loop_time:
      name: "${name} Loop Time"

text_sensor:
  - platform: wifi_info 
    ip_address:
      name: "${name} IP Address"
    ssid:
      name: "${name} Connected SSID"
    bssid:
      name: "${name} Connected BSSID"
    mac_address:
      name: "${name} Mac Wifi Address"
    scan_results:
      name: "${name} Latest Scan Results"
    dns_address:
      name: "${name} DNS Address"

#  - platform: ethernet_info # tylko dla Ethernetu - konfiguracja niemal analogiczna jak wyżej

  - platform: debug # i jeszcze kilka pierdół diagnostycznych tym razem tekstowe sensory
    device:
      name: "${name} Device Info"
    reset_reason:
      name: "${name} Reset Reason"
1 Like

Tak, ESPHome. Używam płytki ESP32-C6. Chciałbym dodać diodę LED sygnalizującą połączenie płytki z siecią. Dzięki temu funkcja będzie podobna do oryginalnego adaptera. Potrafię zaprogramować płytkę, ale nie potrafię samodzielnie napisać kodu.

Proponuję poczytać dokumentację esphome

2 Likes

Dziękuję, wszystko się udało, wystarczyło dodać 3 linijki, myślałem, że będzie to dużo trudniejsze :slightly_smiling_face: :beers:

esphome:
  name: esp32-aneji
  friendly_name: esp32-aneji

esp32:
  board: esp32-c6-devkitm-1

# Example configuration entry
status_led:
  pin:
    number: GPIO18
    inverted: true

# Enable logging
logger:

# Enable Home Assistant API
api:
  encryption:
    key: "XXXXXXXXXXXXXXXXXXX"

ota:
  - platform: esphome
    password: "XXXXXXXXXXXXXXXX"

wifi:
  ssid: !secret wifi_ssid
  password: !secret wifi_password

  
  ap:
    ssid: "Esp32-Pv Fallback Hotspot"
    password: "4RauxxxxxuvoJn"

substitutions:
  name: ANENJI
  device_description: "Monitor and control a ISolar/EASUN SMG II inverter via RS232"
  tx_pin: GPIO19
  rx_pin: GPIO20

captive_portal:

uart:
  - id: uart_0
    baud_rate: 9600
    tx_pin: GPIO19
    rx_pin: GPIO20

modbus:
  - id: modbus0
    uart_id: uart_0
    send_wait_time: 200ms

modbus_controller:
  - id: smg0
    address: 0x01
    modbus_id: modbus0
    command_throttle: 200ms
    update_interval: 20s



W takim razie wrzuć aktualnego kompletnego YAMLa, to ktoś go uzupełni.

Możesz zrobić dużo więcej. Dokumentacja jest prosta i czytelna np:

wifi:
  # ...
  on_connect:
    - light.turn_on: led1
  on_disconnect:
    - light.turn_off: led1

Nie napisałeś jaki dokładnie masz moduł ale podejrzewam że siedzi tam dioda RGB WS2812B. Poczytaj o tym w dokumentacji

Mam tę płytkę ESP32-C6 Supermini, ma 3 diody LED, jedna odpowiada za zasilanie, druga jest prawdopodobnie programowalna, a trzecia RGB również sterowana. Nie mogłem jej jednak zaprogramować. Chat GPT podsunął mi kilka opcji kodu, ale podczas weryfikacji pojawił się błąd. Postanowiłem więc po prostu przylutować diodę LED z rezystorem do wolnego pinu i dodać kod z Twojego linku.

No widzisz, a wystarczyło zapytać, albo zajrzeć do dokumentacji - na tym rysunku wbudowana dioda LED jest na GPIO15, a piksel RGB WS2812 na GPIO8
Swoją drogą numery GPIO powinny być nadrukowane obok komponentów
tak jak widać tu

status_led:
  pin:
    number: GPIO15 # to ten zwykły LED 
    inverted: true # nie wiem jak jest rozwiązane, więc zakładam sterowanie stanem niskim - wyjście w trybie OD

ale możesz oczywiście dużo więcej wyświetlić używając układu RGB

light:
  - platform: esp32_rmt_led_strip
    rgb_order: GRB
    pin: GPIO8
    num_leds: 1
    chipset: ws2812
    name: "RGB Light"
    id: rgb_light

plus dokumentacja co można zrobić z kolorowym światełkiem (bo może dużo więcej)

a jeśli realnie przydusisz AI, to wymyśli ci jakiś kod który może zrealizuje twoje życzenia

Udało mi się znaleźć wspólny język z AI. Napisałem kod, który po nawiązaniu połączenia świeci na zielono, po utracie sygnału miga na niebiesko i przechodzi w tryb AP. Jeśli podłączę zasilanie i nie znajdzie Wi-Fi, zaświeci się na czerwono i przejdzie w tryb AP.

esphome:
  name: "aneji"
  friendly_name: "aneji"

  # Pierwsze włączenie – czerwony do momentu nawiązania połączenia Wi-Fi
  on_boot:
    priority: -10
    then:
      - light.turn_on:
          id: onboard_rgb_led
          effect: none
          red: 100%
          green: 0%
          blue: 0%
          brightness: 100%

esp32:
  board: esp32-c6-devkitm-1

logger:

api:
  encryption:
    key: "XXXXXXXXXXXXXXXXXXXX"

ota:
  platform: esphome
  password: "XXXXXXXXXXXXXXXXXX"

wifi:
  ssid: !secret wifi_ssid
  password: !secret wifi_password

  ap:
    ssid: "Esp32-Pv Fallback Hotspot"
    password: "4RauxxxxxuvoJn"

  fast_connect: true

  # Łączenie z Wi-Fi → zielony
  on_connect:
    - light.turn_on:
        id: onboard_rgb_led
        effect: none
        red: 0%
        green: 100%
        blue: 0%
        brightness: 100%

  # Utrata Wi-Fi → Tryb AP → efekt niebieskiego
  on_disconnect:
    - delay: 2s  # poczekaj chwilę, aż ESP przełączy się na AP
    - light.turn_on:
        id: onboard_rgb_led
        effect: AP Mode

substitutions:
  name: ANENJI
  device_description: "Monitor and control a ISolar/EASUN SMG II inverter via RS232"
  tx_pin: GPIO19
  rx_pin: GPIO20

captive_portal:

uart:
  id: uart_0
  baud_rate: 9600
  tx_pin: GPIO19
  rx_pin: GPIO20

light:
  - platform: esp32_rmt_led_strip
    id: onboard_rgb_led
    pin: GPIO8
    num_leds: 1
    chipset: WS2812
    rgb_order: GRB
    name: "Onboard RGB LED"
    effects:
      - strobe:
          name: AP Mode
          colors:
            - state: true
              red: 0%
              green: 0%
              blue: 100%
              brightness: 100%
              duration: 500ms
            - state: false
              duration: 500ms

modbus:
  - id: modbus0
    uart_id: uart_0
    send_wait_time: 200ms

modbus_controller:
  - id: smg0
    address: 0x01
    modbus_id: modbus0
    command_throttle: 200ms
    update_interval: 20s

Chętnie bym to kupił.Mam anenji 4,2 kw no ale jestem zielony !

Cześć’

Posiadam Anenji 11kW z dwoma wyjściami ten model z przed dwóch lat bez kolorowego wyświetlacza. Podłączyłem go do HA po modbus i mam wszystkie parametry, bez informacji ile wyprodukował on kWh od początku. Ktoś zna adres modbus pod którym dostane taką encje?

Sorry i write in english, but maybe this post can help for people with easun 11kw ( anenji) with integrated wifi.

The only project that work for me is this

After i have finaly have conection whith the inverter in the morning i reeive a lot of GRC error, the inverter has starded to charge from sun.
I hve try all the sugestion on this forum bbut no succes.

finly i have replaced the esp32 ( devkit v1) with esp32 d1 mini and all error has gone.

The ep board powered directly fom inverter.

In atacch the inverter and the module.

A sunny day for everebody

1 Like

Raczej nikt Ci nie poda adresu bo go nie ma. Te falowniki nie zapisują historii.

W falowniku nie ma takiej funkcji. Dodałem kod za pomocą sztucznej inteligencji. Włóż go do czujników, a następnie w inteligentnym domu zobaczysz dzienną produkcję.
Podpisy kodów w języku ukraińskim

# Сенсор потужності, який у тебе вже є
  - platform: homeassistant
    entity_id: sensor.esp32_aneji_anenji_pv_average_power
    id: pv_average_power
    internal: true

  # Сенсор щоденної енергії на основі average_power
  - platform: total_daily_energy
    name: "ANENJI PV energy today (calc)"
    power_id: pv_average_power
    unit_of_measurement: kWh
    accuracy_decimals: 2
    filters:
      - multiply: 0.001   # перетворення з Вт·год у кВт·год

Zmień ID tego czujnika na swoje, ponieważ jak widać jego nazwa jest powiązana z samym urządzeniem ESP
entity_id: sensor.esp32_aneji_anenji_pv_average_power

Thank you for your picture and everyone else for the idea, I have connected my ESP32C3 to my EASUN SMGII 6.2 inverter, what cometh with the new built-in WiFi.

It works good, draws very little from the inverter, and when the refreshing interval is at least 5 sec ín the .yaml file, there are no modbus duplication errors.

Hello Zsolt_Prókai you do not use any of converters (TTL to RS485) you are connected straight to ESP32? Could you show me, how do you connect it from inverter cable to ESP32? Could you share yaml file? Thank you

You have it here https://github.com/robgt978/Easun-SMG-II-11Kw-esphome-/blob/main/rs232-62.jpg