Home assistant i falownik sofarsolar

Mozesz pokazac swoj config

Nie mogę, nie mam tego sprzętu.

Też mam falownik ktl-3ph. Udało Ci się pobrać dane przez rs485? Zastanawiam się czy jest sens w ogóle zaczynać próby.

Tak, dzisiaj po kilku dniach walki zaczelo dzialac

Udało się komuś dodać produkcję do Dashboard energia? U mnie nie ma encji w rozwijanym menu

troche z tym walczylem ale juz jesprawie ok podaje swoj yaml

esphome:
  name: $devicename
  platform: ESP8266
  board: esp01_1m
  board_flash_mode: dout

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: 10s

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};

  - platform: modbus_controller
    modbus_controller_id: sofarsolar
    name: ${friendly_name} Fault Message
    id: inverter_fault_message
    register_type: holding
    address: 0x0405
    response_size: 10
    lambda: |-
      std::string z = "";
      int idx = item->offset;
      //byte[0]
      if ((data[idx] & 0x1) != 0) z += "GridOVP,";
      if ((data[idx] & 0x2) != 0) z += "GridUVP,";
      if ((data[idx] & 0x4) != 0) z += "GridOFP,";
      if ((data[idx] & 0x8) != 0) z += "GridUFP,";
      if ((data[idx] & 0x10) != 0) z += "PVUVP,";
      if ((data[idx] & 0x20) != 0) z += "GridLVRT,";
      if ((data[idx] & 0x40) != 0) z += "reserve-ID7,";
      if ((data[idx] & 0x80) != 0) z += "reserve-ID8,";
      //byte[1]
      idx++;
      if ((data[idx] & 0x1) != 0) z += "PVOVP,";
      if ((data[idx] & 0x2) != 0) z += "IpvUnbalance,";
      if ((data[idx] & 0x4) != 0) z += "PvConfigSetWrong,";
      if ((data[idx] & 0x8) != 0) z += "GFCIFault,";
      if ((data[idx] & 0x10) != 0) z += "PhaseSequenceFault,";
      if ((data[idx] & 0x20) != 0) z += "HwBoostOCP,";
      if ((data[idx] & 0x40) != 0) z += "HwAcOCP,";
      if ((data[idx] & 0x80) != 0) z += "AcRmsOCP,";
      //byte[2]
      idx++;
      if ((data[idx] & 0x1) != 0) z += "HwADFaultIGrid,";
      if ((data[idx] & 0x2) != 0) z += "HwADFaultDCI,";
      if ((data[idx] & 0x4) != 0) z += "HwADFaultVGrid,";
      if ((data[idx] & 0x8) != 0) z += "GFCIDeviceFault,";
      if ((data[idx] & 0x10) != 0) z += "MChip_Fault,";
      if ((data[idx] & 0x20) != 0) z += "HwAuxPowerFault,";
      if ((data[idx] & 0x40) != 0) z += "BusVoltZeroFault,";
      if ((data[idx] & 0x80) != 0) z += "IacRmsUnbalance,";
      //byte[3]
      idx++;
      if ((data[idx] & 0x1) != 0) z += "BusUVP,";
      if ((data[idx] & 0x2) != 0) z += "BusOVP,";
      if ((data[idx] & 0x4) != 0) z += "VbusUnbalance,";
      if ((data[idx] & 0x8) != 0) z += "DciOCP,";
      if ((data[idx] & 0x10) != 0) z += "SwOCPInstant,";
      if ((data[idx] & 0x20) != 0) z += "SwBOCPInstant,";
      if ((data[idx] & 0x40) != 0) z += "reserved-ID31,";
      if ((data[idx] & 0x80) != 0) z += "reserved-ID32,";
      //byte[4]
      idx++;
      if (data[idx] != 0) z += "reserved-ID33~40,";
      //byte[5]
      idx++;
      if (data[idx] != 0) z += "reserved-ID41~48,";
      //byte[6]
      idx++;
      if ((data[idx] & 0x1) != 0) z += "ConsistentFault_VGrid,";
      if ((data[idx] & 0x2) != 0) z += "ConsistentFault_FGrid,";
      if ((data[idx] & 0x4) != 0) z += "ConsistentFault_DCI,";
      if ((data[idx] & 0x8) != 0) z += "ConsistentFault_GFCI,";
      if ((data[idx] & 0x10) != 0) z += "SpiCommLose,";
      if ((data[idx] & 0x20) != 0) z += "SciCommLose,";
      if ((data[idx] & 0x40) != 0) z += "RelayTestFail,";
      if ((data[idx] & 0x80) != 0) z += "PvIsoFault,";
      //byte[7]
      idx++;
      if ((data[idx] & 0x1) != 0) z += "OverTempFault_Inv,";
      if ((data[idx] & 0x2) != 0) z += "OverTempFault_Boost,";
      if ((data[idx] & 0x4) != 0) z += "OverTempFault_Env,";
      if ((data[idx] & 0x8) != 0) z += "PEConnectFault,";
      if ((data[idx] & 0x10) != 0) z += "reserved-ID61,";
      if ((data[idx] & 0x20) != 0) z += "reserved-ID62,";
      if ((data[idx] & 0x40) != 0) z += "reserved-ID63,";
      if ((data[idx] & 0x80) != 0) z += "reserved-ID64,";
      //byte[8]
      idx++;
      if ((data[idx] & 0x1) != 0) z += "unrecoverHwAcOCP,";
      if ((data[idx] & 0x2) != 0) z += "unrecoverBusOVP,";
      if ((data[idx] & 0x4) != 0) z += "unrecoverIacRmsUnbalance,";
      if ((data[idx] & 0x8) != 0) z += "unrecoverIpvUnbalance,";
      if ((data[idx] & 0x10) != 0) z += "unrecoverVbusUnbalance,";
      if ((data[idx] & 0x20) != 0) z += "unrecoverOCPInstant,";
      if ((data[idx] & 0x40) != 0) z += "unrecoverPvConfigSetWrong,";
      if ((data[idx] & 0x80) != 0) z += "reserved-ID72,";
      //byte[9]
      idx++;
      if ((data[idx] & 0x1) != 0) z += "reserved-ID73,";
      if ((data[idx] & 0x2) != 0) z += "unrecoverIPVInstant,";
      if ((data[idx] & 0x4) != 0) z += "unrecoverWRITEEEPROM,";
      if ((data[idx] & 0x8) != 0) z += "unrecoverREADEEPROM,";
      if ((data[idx] & 0x10) != 0) z += "unrecoverRelayFail,";
      if ((data[idx] & 0x20) != 0) z += "reserved-ID78,";
      if ((data[idx] & 0x40) != 0) z += "reserved-ID79,";
      if ((data[idx] & 0x80) != 0) z += "reserved-ID80,";
      if(z.length() > 0){
        z.pop_back();
      }
      return {z};

sensor:
  - platform: wifi_signal
    id: inverter_wifi_signal
    name: ${friendly_name} WiFi Signal
    update_interval: 60s

  - platform: uptime
    id: inverter_uptime
    name: ${friendly_name} Uptime
    filters:
      - lambda: return x / 60.0;
    unit_of_measurement: minutes

  - platform: modbus_controller
    modbus_controller_id: sofarsolar
    name: ${friendly_name} DC1 Voltage
    id: inverter_dc_v1
    register_type: holding
    address: 0x0584
    unit_of_measurement: "V"
    icon: "mdi:alpha-v-circle-outline"
    value_type: U_WORD
    accuracy_decimals: 1
    filters:
      - multiply: 0.1

  - platform: modbus_controller
    modbus_controller_id: sofarsolar
    name: ${friendly_name} DC1 Current
    id: inverter_dc_c1
    register_type: holding
    address: 0x0585
    unit_of_measurement: "A"
    icon: "mdi:alpha-a-circle-outline"
    value_type: U_WORD
    accuracy_decimals: 2
    filters:
      - multiply: 0.01

  - platform: modbus_controller
    modbus_controller_id: sofarsolar
    name: ${friendly_name} DC2 Voltage
    id: inverter_dc_v2
    register_type: holding
    address: 0x0587
    unit_of_measurement: "V"
    icon: "mdi:alpha-v-circle-outline"
    value_type: U_WORD
    accuracy_decimals: 1
    filters:
      - multiply: 0.1

  - platform: modbus_controller
    modbus_controller_id: sofarsolar
    name: ${friendly_name} DC2 Current
    id: inverter_dc_c2
    register_type: holding
    address: 0x0588
    unit_of_measurement: "A"
    icon: "mdi:alpha-a-circle-outline"
    value_type: U_WORD
    accuracy_decimals: 2
    filters:
      - multiply: 0.01

  - platform: modbus_controller
    modbus_controller_id: sofarsolar
    name: ${friendly_name} DC1 Power
    id: inverter_dc_power1
    register_type: holding
    address: 0x0586
    unit_of_measurement: "W"
    device_class: "power"
    value_type: U_WORD
    filters:
      - multiply: 10

  - platform: modbus_controller
    modbus_controller_id: sofarsolar
    name: ${friendly_name} DC2 Power
    id: inverter_dc_power2
    register_type: holding
    address: 0x0589
    unit_of_measurement: "W"
    device_class: "power"
    value_type: U_WORD
    filters:
      - multiply: 10

  - platform: modbus_controller
    modbus_controller_id: sofarsolar
    name: ${friendly_name} AC Power
    id: inverter_ac_power
    register_type: holding
    address: 0x0485
    unit_of_measurement: "W"
    device_class: "power"
    value_type: U_WORD
    filters:
      - multiply: 10

  - platform: modbus_controller
    modbus_controller_id: sofarsolar
    name: ${friendly_name} AC Reactive Power
    id: inverter_ac_reactive_power
    register_type: holding
    address: 0x0486
    unit_of_measurement: "Var"
    device_class: "power"
    value_type: S_WORD
    filters:
      - multiply: 10

  - platform: modbus_controller
    modbus_controller_id: sofarsolar
    name: ${friendly_name} AC Freq
    id: inverter_ac_freq
    register_type: holding
    address: 0x0484
    unit_of_measurement: "Hz"
    icon: "mdi:current-ac"
    value_type: U_WORD
    accuracy_decimals: 2
    filters:
      - multiply: 0.01

  - platform: modbus_controller
    modbus_controller_id: sofarsolar
    name: ${friendly_name} AC1 Voltage
    id: inverter_ac_v1
    register_type: holding
    address: 0x048d
    unit_of_measurement: "V"
    icon: "mdi:alpha-v-circle-outline"
    value_type: U_WORD
    accuracy_decimals: 1
    filters:
      - multiply: 0.1

  - platform: modbus_controller
    modbus_controller_id: sofarsolar
    name: ${friendly_name} AC1 Current
    id: inverter_ac_c1
    register_type: holding
    address: 0x048e
    unit_of_measurement: "A"
    icon: "mdi:alpha-a-circle-outline"
    value_type: U_WORD
    accuracy_decimals: 2
    filters:
      - multiply: 0.01

  - platform: modbus_controller
    modbus_controller_id: sofarsolar
    name: ${friendly_name} AC2 Voltage
    id: inverter_ac_v2
    register_type: holding
    address: 0x0498
    unit_of_measurement: "V"
    icon: "mdi:alpha-v-circle-outline"
    value_type: U_WORD
    accuracy_decimals: 1
    filters:
      - multiply: 0.1

  - platform: modbus_controller
    modbus_controller_id: sofarsolar
    name: ${friendly_name} AC2 Current
    id: inverter_ac_c2
    register_type: holding
    address: 0x0499
    unit_of_measurement: "A"
    icon: "mdi:alpha-a-circle-outline"
    value_type: U_WORD
    accuracy_decimals: 2
    filters:
      - multiply: 0.01

  - platform: modbus_controller
    modbus_controller_id: sofarsolar
    name: ${friendly_name} AC3 Voltage
    id: inverter_ac_v3
    register_type: holding
    address: 0x04a3
    unit_of_measurement: "V"
    icon: "mdi:alpha-v-circle-outline"
    value_type: U_WORD
    accuracy_decimals: 1
    filters:
      - multiply: 0.1

  - platform: modbus_controller
    modbus_controller_id: sofarsolar
    name: ${friendly_name} AC3 Current
    id: inverter_ac_c3
    register_type: holding
    address: 0x04a4
    unit_of_measurement: "A"
    icon: "mdi:alpha-a-circle-outline"
    value_type: U_WORD
    accuracy_decimals: 2
    filters:
      - multiply: 0.01

#  - platform: modbus_controller
#    modbus_controller_id: sofarsolar
#    name: ${friendly_name} Energy total
#    id: inverter_energy_total
#    register_type: holding
#    address: 0x068f
#    unit_of_measurement: "kWh"
#    device_class: "energy"
#    value_type: U_DWORD

#  - platform: modbus_controller
#    modbus_controller_id: sofarsolar
#    name: ${friendly_name} Energy generation time total
#    id: inverter_energy_generation_time_total
#    register_type: holding
#    address: 0x0689
#    unit_of_measurement: "h"
#    value_type: U_DWORD

#  - platform: modbus_controller
#    modbus_controller_id: sofarsolar
#    name: ${friendly_name} Energy today
#    id: inverter_energy_today
#    register_type: holding
#    address: 0x0019
#    unit_of_measurement: "kWh"
#    device_class: "energy"
#    value_type: U_WORD
#    accuracy_decimals: 2
#    filters:
#      - multiply: 0.01

#  - platform: modbus_controller
#    modbus_controller_id: sofarsolar
#    name: ${friendly_name} Energy generation time today
#    id: inverter_energy_generation_time_today
#    register_type: holding
#    address: 0x0685
#    unit_of_measurement: "min"
#    value_type: U_WORD

  - platform: modbus_controller
    modbus_controller_id: sofarsolar
    name: ${friendly_name} PV Generation today
    id: inwerter_PV_generation_today
    register_type: holding
    address:  0x0685
    icon: "mdi:solar-power"
    device_class: "energy"
    state_class: "total_increasing"
    unit_of_measurement: "kWh"
    value_type: U_WORD
    accuracy_decimals: 3
    filters:
      - multiply: 0.01

  - platform: modbus_controller
    modbus_controller_id: sofarsolar
    name: ${friendly_name} PV Generation total
    id: inwerter_PV_generation_total
    register_type: holding
    address: 0x0687
    icon: "mdi:solar-power"
    device_class: "energy"
    state_class: "total_increasing"
    unit_of_measurement: "kWh"
    value_type: U_WORD
    accuracy_decimals: 3
    filters:
      - multiply: 0.1

  - platform: modbus_controller
    modbus_controller_id: sofarsolar
    name: ${friendly_name} Load consumption today
    id: inwerter_Load_consumption_today
    register_type: holding
    address: 0x0689
    icon: "mdi:lightning-bolt-outline"
    device_class: "energy"
    state_class: "total_increasing"
    unit_of_measurement: "kWh"
    value_type: U_WORD
    accuracy_decimals: 3
    filters:
      - multiply: 0.01

  - platform: modbus_controller
    modbus_controller_id: sofarsolar
    name: ${friendly_name} Load consumption total
    id: inwerter_Load_consumption_total
    register_type: holding
    address: 0x068B
    icon: "mdi:lightning-bolt-outline"
    device_class: "energy"
    state_class: "total_increasing"
    unit_of_measurement: "kWh"
    value_type: U_WORD
    accuracy_decimals: 3
    filters:
      - multiply: 0.1

  - platform: modbus_controller
    modbus_controller_id: sofarsolar
    name: ${friendly_name} Daily Energy Bought
    id: inwerter_daily_energy_bought
    register_type: holding
    address: 0x068D
    icon: "mdi:transmission-tower-export"
    device_class: "energy"
    state_class: "total_increasing"
    unit_of_measurement: "kWh"
    value_type: U_WORD
    accuracy_decimals: 3
    filters:
      - multiply: 0.01

  - platform: modbus_controller
    modbus_controller_id: sofarsolar
    name: ${friendly_name} Total Energy Bought
    id: inwerter_total_energy_bought
    register_type: holding
    address: 0x068F
    icon: "mdi:transmission-tower-export"
    device_class: "energy"
    state_class: "total_increasing"
    unit_of_measurement: "kWh"
    value_type: U_WORD
    accuracy_decimals: 3
    filters:
      - multiply: 0.1

  - platform: modbus_controller
    modbus_controller_id: sofarsolar
    name: ${friendly_name} Daily Energy Sold
    id: inwerter_daily_energy_sold
    register_type: holding
    address: 0x0691
    icon: "mdi:transmission-tower-import"
    device_class: "energy"
    state_class: "total_increasing"
    unit_of_measurement: "kWh"
    value_type: U_WORD
    accuracy_decimals: 3
    filters:
      - multiply: 0.01

  - platform: modbus_controller
    modbus_controller_id: sofarsolar
    name: ${friendly_name} Total Energy Sold
    id: inwerter_total_energy_sold
    register_type: holding
    address: 0x0693
    icon: "mdi:transmission-tower-import"
    device_class: "energy"
    state_class: "total_increasing"
    unit_of_measurement: "kWh"
    value_type: U_WORD
    accuracy_decimals: 3
    filters:
      - multiply: 0.1

  - platform: modbus_controller
    modbus_controller_id: sofarsolar
    name: ${friendly_name} Daily Battery Charge
    id: inwerter_daily_battery_charge
    register_type: holding
    address: 0x0695
    icon: "mdi:battery-plus"
    device_class: "energy"
    state_class: "total_increasing"
    unit_of_measurement: "kWh"
    value_type: U_WORD
    accuracy_decimals: 3
    filters:
      - multiply: 0.01

  - platform: modbus_controller
    modbus_controller_id: sofarsolar
    name: ${friendly_name} Total Battery Charge
    id: inwerter_total_battery_charge
    register_type: holding
    address: 0x0697
    icon: "mdi:battery-plus"
    device_class: "energy"
    state_class: "total_increasing"
    unit_of_measurement: "kWh"
    value_type: U_WORD
    accuracy_decimals: 3
    filters:
      - multiply: 0.1

  - platform: modbus_controller
    modbus_controller_id: sofarsolar
    name: ${friendly_name} Daily Battery Discharge
    id: inwerter_daily_battery_discharge
    register_type: holding
    address: 0x0699
    icon: "mdi:battery-minus"
    device_class: "energy"
    state_class: "total_increasing"
    unit_of_measurement: "kWh"
    value_type: U_WORD
    accuracy_decimals: 3
    filters:
      - multiply: 0.01

  - platform: modbus_controller
    modbus_controller_id: sofarsolar
    name: ${friendly_name} Total Battery Discharge
    id: inwerter_total_battery_discharge
    register_type: holding
    address: 0x069B
    icon: "mdi:battery-minus"
    device_class: "energy"
    state_class: "total_increasing"
    unit_of_measurement: "kWh"
    value_type: U_WORD
    accuracy_decimals: 3
    filters:
      - multiply: 0.1

  - platform: modbus_controller
    modbus_controller_id: sofarsolar
    name: ${friendly_name} Temprature module
    id: inverter_temp_module
    register_type: holding
    address: 0x0420
    unit_of_measurement: "°C"
    device_class: "temperature"
    value_type: U_WORD

  - platform: modbus_controller
    modbus_controller_id: sofarsolar
    name: ${friendly_name} Temprature inverter
    id: inverter_temp_inverter
    register_type: holding
    address: 0x0418
    unit_of_measurement: "°C"
    device_class: "temperature"
    value_type: U_WORD

  - platform: modbus_controller
    modbus_controller_id: sofarsolar
    name: ${friendly_name} Bus voltage
    id: inverter_bus_voltage
    register_type: holding
    address: 0x001D
    unit_of_measurement: "V"
    icon: "mdi:alpha-v-circle-outline"
    value_type: U_WORD
    accuracy_decimals: 1
    filters:
      - multiply: 0.1

  - platform: modbus_controller
    modbus_controller_id: sofarsolar
    name: ${friendly_name} Battery Power
    id: inverter_battery_power
    register_type: holding
    address: 0x0606
    device_class: "power"
    unit_of_measurement: "W"
    icon: "mdi:battery-charging"
    value_type: U_WORD
    accuracy_decimals: 1
    filters:
      - multiply: 10

  - platform: modbus_controller
    modbus_controller_id: sofarsolar
    name: ${friendly_name} Battery SOC
    id: inverter_battery_soc
    register_type: holding
    address: 0x0608
    device_class: "battery"
    unit_of_measurement: "%"
    icon: "mdi:battery"
    value_type: U_WORD

  - platform: modbus_controller
    modbus_controller_id: sofarsolar
    name: ${friendly_name} Battery SOH
    id: inverter_battery_soh
    register_type: holding
    address: 0x0609
    device_class: "battery"
    unit_of_measurement: "%"
    icon: "mdi:battery"
    value_type: U_WORD

  - platform: modbus_controller
    modbus_controller_id: sofarsolar
    name: ${friendly_name} Battery Current
    id: inverter_battery_current
    register_type: holding
    address: 0x0605
    device_class: "current"
    unit_of_measurement: "A"
    icon: "mdi:current-dc"
    value_type: U_WORD
    accuracy_decimals: 2
    filters:
      - multiply: 0.01

  - platform: modbus_controller
    modbus_controller_id: sofarsolar
    name: ${friendly_name} Battery Voltage
    id: inverter_battery_voltage
    register_type: holding
    address: 0x0604
    device_class: "voltage"
    unit_of_measurement: "V"
    icon: "mdi:battery"
    value_type: U_WORD
    accuracy_decimals: 1
    filters:
      - multiply: 0.1

  - platform: modbus_controller
    modbus_controller_id: sofarsolar
    name: ${friendly_name} Battery Temperature
    id: inverter_battery_temperature
    register_type: holding
    address: 0x0607
    device_class: "temperature"
    unit_of_measurement: "C"
    icon: "mdi:battery"
    value_type: U_WORD

  - platform: modbus_controller
    modbus_controller_id: sofarsolar
    name: ${friendly_name} "Battery Number of Cycles"
    id: inverter_battery_number_of_cycles
    register_type: holding
    address: 0x060a
    device_class: ""
    unit_of_measurement: "cycle"
# Basic switch to allow you to restart the device remotely

switch:
  - platform: restart
    name: ${friendly_name} Restart

binary_sensor:
  - platform: status
    name: ${friendly_name} Status

wpis dotyczy invertera HYD 10 ktl

Dla mnie za duży plik:
“ERROR Error binary size: Error: ESP does not have enough space to store OTA file. Please try flashing a minimal firmware (remove everything except ota)”

Masz to na jakiej płytce wgrane?

mam to na wemosie ale przez ota tego nie wgrasz tylko po kabelku

1 Like

Zaraz zaraz, skompilowałem z czystej ciekawości i na płytkach z 4MB flasha (np. D1 mini) powinno wchodzić “z palcem w tyłku” - trzeba tylko zmienić definicję z ESP-01s (1MB czyli te esp01_1m) na definicję naprawdę używanej płytki z 4MB (np. dla D1 mini d1_mini).

Uwaga

  1. definicja ma się zgadzać z użytą płytką!
  2. uboga krewna czyli D1 mini lite ma 1MB, natomiast “wypas” D1 mini pro ma 16GB, ale powszechnie używane klony D1 mini mają 4MB jak oryginał.
  3. dla płytek, na których się zmieści wersja z OTA i tak pierwsze flashowanie po kabelku, no i trzeba włączyć dyrektywę ota:
Linking /data/aaa/.pioenvs/aaa/firmware.elf
RAM:   [======    ]  57.4% (used 46992 bytes from 81920 bytes)
Flash: [=======   ]  65.7% (used 686661 bytes from 1044464 bytes)

Mam taki problem, udało mi się uruchomić ESP32 + konwerter i podałączyć do Sofara HYD15KTL - 3PH ale mam takie błędy na modbusie:

[modbus:108]: Modbus CRC Check failed! C1CD!=00
[22:38:44][W][modbus_controller:113]: Duplicate modbus command found: type=0x3 address=29 count=1
[22:38:44][W][modbus_controller:113]: Duplicate modbus command found: type=0x3 address=1028 count=6
[22:38:44][W][modbus_controller:113]: Duplicate modbus command found: type=0x3 address=1048 count=1
[22:38:44][W][modbus_controller:113]: Duplicate modbus command found: type=0x3 address=1056 count=1
[22:38:44][W][modbus_controller:113]: Duplicate modbus command found: type=0x3 address=1156 count=3
[22:38:44][W][modbus_controller:113]: Duplicate modbus command found: type=0x3 address=1165 count=2
[22:38:44][W][modbus_controller:113]: Duplicate modbus command found: type=0x3 address=1176 count=2
[22:38:44][W][modbus_controller:113]: Duplicate modbus command found: type=0x3 address=1677 count=1
[22:38:44][W][modbus_controller:113]: Duplicate modbus command found: type=0x3 address=1679 count=1
[22:38:44][W][modbus_controller:113]: Duplicate modbus command found: type=0x3 address=1681 count=1
[22:38:44][W][modbus_controller:113]: Duplicate modbus command found: type=0x3 address=1683 count=1
[22:38:44][W][modbus_controller:113]: Duplicate modbus command found: type=0x3 address=1685 count=1
[22:38:44][W][modbus_controller:113]: Duplicate modbus command found: type=0x3 address=1687 count=1
[22:38:44][W][modbus_controller:113]: Duplicate modbus command found: type=0x3 address=1689 count=1
[22:38:44][W][modbus_controller:113]: Duplicate modbus command found: type=0x3 address=1691 count=1
[22:38:45][W][modbus:108]: Modbus CRC Check failed! C1CD!=00
[22:38:46][W][modbus:108]: Modbus CRC Check failed! C1CD!=00

Tak cały czas w kółko, dane nie są odczytywane prawidłowo.
Jakieś pomysły co to może być ?

Błąd sumy kontrolnej - albo nieprawidłowo ją liczysz albo rzeczywiście jest nieprawidłowa.

Zbyt często próbujesz odczytywać - próbujesz czytać ponownie zanim poprzednie zapytanie nie zostało “obsłużone”.
Numery rejestrów prawidłowe ?

Na podstawie info, które udzieliłeś o projekcie tyle można stwierdzić.

1 Like

Użyłem kodu który kilka postów wcześniej zapodał domex. Nie analizowałem go jeszcze za bardzo bo nie wiem do końca jak.

Na początek zwiększ do np. 60s i zobacz czy się coś zmieni.

Niestety nic to nie daje.

Udało się rozwiązać problem z błędną sumą kontrolną?

Chciałem połączyć falownik Sofar Solar KTL-X z HA poprzez konwerter RS485=>USB wpięty do maliny. Wydawałoby się nic prostszego, przecież po wpisaniu kilku wyrazów w szukajkę od razu dostajemy kilka wątków. Jednak drążąc temat nie znalazłem gotowego configu do skopiowania wprost do configuration.yaml. Zaczynam się zastanawiać dlaczego.
Tematy które są w sieci dotyczą głównie skonfigurowania połączenia poprzez ESPHome lub konwerter RS485=>ETH + NodeRED.

Moja sytuacja wygląda tak:

  • poprzez konwerter RS485=>USB mam podpięty SDM630 i działa,
  • na tej samej linii co SDM630 mam podpięty falownik i chcę go dodać.

Pytania które mi się nasuwają:

  • czy jeśli zrobię config do Sofara to czy nie będzie zabierało zbyt dużo czasu na odpytanie go w nocy, gdy falownik jest wyłączony,
  • czy jeśli SDM630 jest skonfigurowany w configuration.yaml, a Sofar skonfigurowałbym poprzez NodeRed to czy nie będzie się to gryzło? Teoretycznie powinien być jeden master bo jeśli się trafi, że obydwa będą chciały wysłać zapytania to będzie zonk,
  • jeśli do Sofara chciałbym zrobić config w configuration.yaml to czy jest jakaś opcja typu: zapytaj falownik o status, a jak odpowie to znaczy że nie śpi, wtedy zapytaj o resztę parametrów?

jak znajdziesz rozwiązanie na odpytywanie falownika w nocy to daj znać :wink:
ja mam zrobione na ktlx g3 poprzez esp32 i rs485 to ttl zasilanie mam z ładowarki usb bo przy falowniku nie ma 5V jak przy starszej wersji ktlx, dlatego skrypt odpytuje falownik nawet w nocy… no bez sensu, ale mu to chyba nie szkodzi :slight_smile:

Ja to rozwiązałem na zasadzie encji ping.
Nod redem sprawdzam czy falownik jest online i jeśli tak to wykonuje dalszą część układanki, a jeśli jest offline to kończy działanie

Tylko przy rozwiązaniu na RS485 bez żadnego ethernetu po drodze nie ma co pingować. W logach co jakiś czas pojawia się błąd, że nie otrzymano odpowiedzi.
Na razie nie widzę negatywnych skutków oprócz tego, ale zastanawia mnie czy jak wepnę jeszcze kilka urządzeń do tej magistrali czy to oczekiwanie na odpowiedź nie będzie wąskim gardłem w nocy i czy nie zamuli to magistrali.

Witam. Mam falownik Sofar 6,6 KTL-X i próbuję połączyć go z home assistant za pomocą elfin ew-11. Niestety bez większych sukcesów. Czy komuś udało się wpisać w configuration.yaml cos co odczyta dane z falownika?
Próbuje takiej konfiguracji i nic

modbus:
  - type: tcp
    host: xxx.xxx.xxx.xxx
    port: 9999
    name: SolaX
    timeout: 5
    delay: 2
    message_wait_milliseconds: 30
    sensors:
      - name: PV1 Voltage
        unit_of_measurement: V
        slave: 1
        address: 0x0585
        input_type: holding
 #       count: 1
        data_type: uint16
        precision: 1
        scale: 0.1
        scan_interval: 5
        device_class: voltage

Elfin ustawiony tak:


Za wszelką pomoc bardzo dziękuję