Monitoring Sofar Solar + RS485

Cześć.
Chciałbym się dowiedzieć czy można ustawiać czas w falowniku zdalnie przez RS485 ?

Jeśli rejestry czasu są dostępne i mają atrybut R/W to można.
Co mówi dokumentacja modbus twojego falownika?

Jakiś Excel dla falowników SOFAR G3 na elektrodzie znalazłem:

To wrzuć do załącznika (spakowany do zip), a nie jakiś skriszot… no chyba że masz 100% pewności że demonstrujesz WSZYSTKO co jest istotne.

Rejestry do zapisu więc można próbować coś ustawić. Nie rozumiem tylko o co chodzi z rejestrem 100A

SOFAR-G3.External.Modbus.Protocol-Engilsh-V211103_HYD.xlsx.zip (145,5 KB)
Załącznik

Witam Koledzy niestety poległem w temacie integracji falownika Sofar KTLX G3 z HA
Integracje z fabrycznym logerem w moim przypadku nie działają i z tego co znalazłem na forach jedynie co można spróbować to update logera przez sofar. Próbowałem też integracji z przez RS485 przez Elfin W11a i NR ale tu nie mogłem nawiązać komunikacji z falownikiem.
Trzecią próbę wykonuje na ESP 32 z RS485 odpytuje tylko o status falownika i tu dostaje błąd CRC i na tym się zatrzymałem i dosłownie ręce mi opadły.
może ma ktoś pomysł co można jeszcze zrobić?
Poniżęj wrzucam screeny z esp i danych logera:



Prawdopodobnie masz różne ustawienia portów rs485 po obu stronach magistrali.

Dziękuje za sugestie sprawdzę:) Przy ustawieniach sugerowałem się tym co znalazłem na forach ale poszukam jeszcze.
Póki co mam komunikacje ustawioną jak na screenie:

  1. Jak prawidłowo zamieszczać YAML, inny kod lub logi w postach na forum

  2. czyli masz ustawione 9600, 8N1 (bo nie wyspecyfikowałeś jawnie wszystkiego tego, co ma defaulty), a jak po drugiej stronie?

Pokaż co się pokaże gdy wpiszesz
<ip_falownika>/config_hide.html
Pojawił się jeszcze jeden sposób integracji ale jak zwykle zależy od softu logera.

Cześć
Wczoraj falownik już nie odpowiadał ale dziś udało mi się zrobić screeny:



Przesyłam zawartość esp Yaml

substitutions:
  name: falownik-sofar
  friendly_name: Falownik Sofar

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

  # Enable fallback hotspot (captive portal) in case wifi connection fails
  ap:
    ssid: "Falownik-Sofar Fallback Hotspot"
    password: "EuXP0wDZ8SMi"

captive_portal:

# Enable Home Assistant API
api:
  encryption:
    key: "9smFmxAGhbGZL1sF5RZya2aVyy4WHqOz6GWLszXc9g8="

ota:
  - platform: esphome
    password: "d5cfbb22aafb4d27d1a02e734a95d05b"

# Enable Web server
web_server:
  port: 8008

esphome:
  name: falownik-sofar
  platform: ESP32
  board: esp32dev

logger:
    level: INFO
    baud_rate: 0
    
uart:
  id: mod_bus
  tx_pin: 1
  rx_pin: 3
  baud_rate: 9600
  stop_bits: 1

modbus:
  id: mod_bus_sofar

modbus_controller:
  - id: sofarsolar
    address: 0x01
    modbus_id: mod_bus_sofar
    update_interval: 30s

text_sensor:
  - platform: modbus_controller
    modbus_controller_id: sofarsolar
    name: ${friendly_name} Status
    id: inverter_status
    register_type: holding
    address: 0x0404
    response_size: 2
    lambda: |-
      auto z = "Unknown";
      char d = data[item->offset+1];
      if (d == 0) z = "Wait";
      else if (d == 1) z = "Check";
      else if (d == 2) z = "Normal";
      else if (d == 3) z = "Fault";
      else if (d == 4) z = "Permanent";
      return {z};

Skoro wcześniej nie udało Ci się połączy to jest duże prawdopodobieństwo, że powielisz ten sam błąd i tym razem. Musisz w prostej konfiguracji - program modbus master i konwerter do rs485 - uzyskać prawidłowy odczyt. Będziesz pewien, że metoda i parametry są prawidłowe, wtedy można myśleć o jakiejś integracji.
Parametry transmisji masz dobrze ( 9600, 8N1), używasz niezalecanych dla modułów ESP32 pinów 1, 3.
Masz pewnoś co do prawidłowego podłączeni rs485 i używasz prawidłowej adresacji rejestrów?

uart:
  id: mod_bus
  tx_pin: GPIO17
  rx_pin: GPIO16
  baud_rate: 9600
  stop_bits: 1
# rx_buffer_size: 256

modbus:
  id: mod_bus_sofar
  #send_wait_time:
  #  milliseconds: 500

modbus_controller:
  - id: sofarsolar
    address: 0x01
    modbus_id: mod_bus_sofar
    update_interval: 10s
    setup_priority: -10
    command_throttle:
      milliseconds: 100

ja mam tak i działa elegancko, tylko do esp32 mam podpięty jeszcze konwerter rs485 to uart

Zamieniłem piny z 1 i 3 na 17 i 16 i brak zmian nadal otrzymuje

INFO ESPHome 2024.12.4
INFO Reading configuration /config/esphome/falownik-sofar.yaml...
INFO Starting log output from falownik-sofar.local using esphome API
WARNING Can't connect to ESPHome API for falownik-sofar.local: Error resolving IP address: [Errno -5] No address associated with hostname (APIConnectionError)
INFO Trying to connect to falownik-sofar.local in the background
INFO Successfully connected to falownik-sofar @ 192.168.1.60 in 0.008s
INFO Successful handshake with falownik-sofar @ 192.168.1.60 in 0.088s
[09:49:43][I][app:100]: ESPHome version 2024.12.4 compiled on Feb  2 2025, 09:41:44
[09:50:10][W][modbus:125]: Modbus CRC Check failed! C1CD!=00
[09:50:11][W][modbus:125]: Modbus CRC Check failed! C1CD!=00
[09:50:11][W][modbus:125]: Modbus CRC Check failed! C1CD!=00
[09:50:11][W][modbus:125]: Modbus CRC Check failed! C1CD!=00
[09:50:11][W][modbus:125]: Modbus CRC Check failed! C1CD!=00

Jeśli chodzi o adresacje i podłączenie do RS485 wzorowałem się na tym co znalazłem na forum

od strony falownika pin 1 RS A i pin 3 RS B
Jak zmienię na adresacje ze starego KTLX czyli
0x0000 to nic z RS nie otrzymuje w logach:

INFO ESPHome 2024.12.4
INFO Reading configuration /config/esphome/falownik-sofar.yaml...
INFO Starting log output from falownik-sofar.local using esphome API
INFO Successfully connected to falownik-sofar @ 192.168.1.60 in 0.287s
INFO Successful handshake with falownik-sofar @ 192.168.1.60 in 0.100s
[10:03:08][I][app:100]: ESPHome version 2024.12.4 compiled on Feb  2 2025, 09:59:50

Możesz to lepiej wyjaśnić? - bo wygląda na totalną bzdurę i podejrzewam, ze podłączyłeś RS232 do RS485.
Schemat, fotka podłączenia?

Wzorowałem się na tym

Nie wiem jeszcze co, ale namieszałeś :open_mouth:
Jak podłączyłeś esp do falownika i jaki konwerter ttl<>rs485?
To musi działać !!!

Zgodnie ze schematem konwerter TTL do falownika A do A, B do B + masa komunikacji do tego od strony konwertera TTL mam wpięty rezystor 120Om
Następnie Konwerter TTL do ESP32 RX do RX , TX do TX (odwracać też linie komunikacyjną próbowałem bez rezultatu)
Konwerter zasilany z VIN ESP.
Całość zasilam ładowarką 2A podłączoną do ESP

Już zaczynam dochodzić do wniosku że mój falownik wraz z loggerem mają jakiś bardzo stary soft bo był kupiony na świeżo jak sofar je wypuszczał na polski rynek a ja go nigdy nie aktualizowałem bo wszystko działa jak potrzeba ale to tylko taka teoria:)

Pozostaje chyba tylko ten nowy sposób integracji poprzez wymianę loggera z Wifi na Ethernet lub jeszcze napisać do Sofara o aktualizacje loggera i falownika

po co Ci ten rezystor? falownik możesz zaktualizować sam, loger aktualizują chinczyki po napisaniu wiadomosci na czacie, ale soft logera nie ma znaczenia przy komunikacji rs485, zasilać to możesz z portu usb falownika tam masz 5V
konwerter mam taki https://allegro.pl/oferta/modul-konwerter-uart-ttl-do-rs485-3-3v-5v-13929834317 oraz zwykłego esp32 30pin

tu masz firmware do ktlx g3 https://downloads.sofarsolar.eu/wp-content/uploads/sofar/Firmware/SOFAR%203-12KTLX-G3_Firmware_V110006-01-03.zip

Firmware 3-12KTLX-G3

a tu masz ca ly m oj plik do sofara dtsd422_esphome/sofarktlxg3.yaml at main · mrlordziemniak/dtsd422_esphome · GitHub