syssi / esphome-seplos-bms

ESPHome component to monitor a Seplos Battery Management System (Seplos-BMS) via UART or RS485
Apache License 2.0
64 stars 30 forks source link

No response received after updating to v3 #111

Open NosIreland opened 1 day ago

NosIreland commented 1 day ago

Been running Seplos bms since the start on older version. Decided to update to the latest one and now not getting any readings just no response received. Here's the snippet.

[20:42:24][D][modbus_controller:037]: Modbus command to device=0 register=0x1118 countdown=0 no response received - removed from send queue
[20:42:31][D][uart_debug:158]: >>> "\x00\x04\x10\x00\x00\x0Et\xDF"
[20:42:31][D][uart_debug:158]: >>> "\x00\x04\x10\x00\x00\x0Et\xDF"
[20:42:32][D][uart_debug:158]: >>> "\x00\x04\x10\x00\x00\x0Et\xDF"
[20:42:32][D][uart_debug:158]: >>> "\x00\x04\x10\x00\x00\x0Et\xDF"
[20:42:32][D][uart_debug:158]: >>> "\x00\x04\x10\x00\x00\x0Et\xDF"

The new sensor config is very different to what is used to be. Also my RX/TX pins are different but I that is not an issue here since it worked fine before update tx_pin: GPIO1 rx_pin: GPIO3

syssi commented 19 hours ago

Could you provide your config?

NosIreland commented 8 hours ago

Here you go. BTW: my seplos is the original v1

substitutions:
  name: seplos-bms-1
  device_description: "Monitor and control a Seplos V3 BMS via RS485 (Modbus)"
  tx_pin: GPIO1
  rx_pin: GPIO3

esphome:
  name: ${name}
  comment: ${device_description}
  min_version: 2024.6.0
  project:
    name: "syssi.esphome-seplos-bms"
    version: 1.2.0

esp8266:
  board: d1_mini

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

  manual_ip:
    static_ip: 192.168.2.67
    gateway: 192.168.2.1
    subnet: 255.255.255.0

mqtt:
  broker: 192.168.1.20
  username: !secret
  password: !secret

web_server:
  port: 80

ota:
  platform: esphome

#api:

logger:
  level: DEBUG

uart:
  - id: uart_0
    baud_rate: 19200
    tx_pin: ${tx_pin}
    rx_pin: ${rx_pin}
    rx_buffer_size: 384
    debug:
      direction: BOTH
      dummy_receiver: false
      after:
        delimiter: "\r"
      sequence:
        - lambda: UARTDebug::log_string(direction, bytes);

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

modbus_controller:
  - id: bms0
    address: 0x00
    modbus_id: modbus0
    command_throttle: 200ms
    update_interval: 10s

sensor:
  # 1000    Pack Voltage                R    UINT16    2    10mV
  - platform: modbus_controller
    modbus_controller_id: bms0
    name: "${name} total voltage"
    address: 0x1000
    register_type: read
    value_type: U_WORD
    unit_of_measurement: "V"
    device_class: voltage
    state_class: measurement
    accuracy_decimals: 2
    filters:
      - multiply: 0.01

  # 1001    Current                     R     INT16    2    10mA
  - platform: modbus_controller
    modbus_controller_id: bms0
    name: "${name} current"
    address: 0x1001
    register_type: read
    value_type: S_WORD
    unit_of_measurement: "A"
    device_class: current
    state_class: measurement
    accuracy_decimals: 2
    filters:
      - multiply: 0.01

  # 1002    Remaining capacity          R    UINT16    2    10mAH
  - platform: modbus_controller
    modbus_controller_id: bms0
    name: "${name} remaining capacity"
    address: 0x1002
    register_type: read
    value_type: U_WORD
    unit_of_measurement: "Ah"
    state_class: measurement
    accuracy_decimals: 2
    filters:
      - multiply: 0.01

  # 1003    Total Capacity              R    UINT16    2    10mAH
  - platform: modbus_controller
    modbus_controller_id: bms0
    name: "${name} total capacity"
    address: 0x1003
    register_type: read
    value_type: U_WORD
    unit_of_measurement: "Ah"
    state_class: measurement
    accuracy_decimals: 2
    filters:
      - multiply: 0.01

  # 1004    Total Discharge Capacity    R    UINT16    2    10AH
  - platform: modbus_controller
    modbus_controller_id: bms0
    name: "${name} total discharge capacity"
    address: 0x1004
    register_type: read
    value_type: U_WORD
    unit_of_measurement: "Ah"
    state_class: measurement
    accuracy_decimals: 2
    filters:
      - multiply: 0.01

  # 1005    SOC                         R    UINT16    2    0.1%
  - platform: modbus_controller
    modbus_controller_id: bms0
    name: "${name} state of charge"
    address: 0x1005
    register_type: read
    value_type: U_WORD
    unit_of_measurement: "%"
    device_class: battery
    state_class: measurement
    accuracy_decimals: 0
    filters:
      - multiply: 0.1

  # 1006    SOH                         R    UINT16    2    0.1%
  - platform: modbus_controller
    modbus_controller_id: bms0
    name: "${name} state of health"
    address: 0x1006
    register_type: read
    value_type: U_WORD
    unit_of_measurement: "%"
    state_class: measurement
    accuracy_decimals: 0

  # 1007    Cycle                       R    UINT16    2    1
  - platform: modbus_controller
    modbus_controller_id: bms0
    name: "${name} cycle"
    address: 0x1007
    register_type: read
    value_type: U_WORD
    unit_of_measurement: ""
    state_class: measurement
    accuracy_decimals: 0

  # 1008    Averag of Cell Votage       R    UINT16    2    1mV
  - platform: modbus_controller
    modbus_controller_id: bms0
    name: "${name} average cell voltage"
    address: 0x1008
    register_type: read
    value_type: U_WORD
    unit_of_measurement: "V"
    device_class: voltage
    state_class: measurement
    accuracy_decimals: 3
    filters:
      - multiply: 0.001

  # 1009    Averag of Cell Temperature  R    UINT16    2    0.1K
  - platform: modbus_controller
    modbus_controller_id: bms0
    name: "${name} average cell temperature"
    address: 0x1009
    register_type: read
    value_type: S_WORD
    unit_of_measurement: "°C"
    device_class: temperature
    state_class: measurement
    accuracy_decimals: 1
    filters:
      - offset: -2731.5
      - multiply: 0.1

  # 100A    Max Cell Voltage            R    UINT16    2    1mV
  - platform: modbus_controller
    modbus_controller_id: bms0
    name: "${name} max cell voltage"
    address: 0x100A
    register_type: read
    value_type: U_WORD
    unit_of_measurement: "V"
    device_class: voltage
    state_class: measurement
    accuracy_decimals: 3
    filters:
      - multiply: 0.001

  # 100B    Min Cell Voltage            R    UINT16    2    1mV
  - platform: modbus_controller
    modbus_controller_id: bms0
    name: "${name} min cell voltage"
    address: 0x100B
    register_type: read
    value_type: U_WORD
    unit_of_measurement: "V"
    device_class: voltage
    state_class: measurement
    accuracy_decimals: 3
    filters:
      - multiply: 0.001

  # 100C    Max Cell Temperature        R    UINT16    2    0.1K
  - platform: modbus_controller
    modbus_controller_id: bms0
    name: "${name} max cell temperature"
    address: 0x100C
    register_type: read
    value_type: S_WORD
    unit_of_measurement: "°C"
    device_class: temperature
    state_class: measurement
    accuracy_decimals: 1
    filters:
      - offset: -2731.5
      - multiply: 0.1

  # 100D    Min Cell Temperature        R    UINT16    2    0.1K
  - platform: modbus_controller
    modbus_controller_id: bms0
    name: "${name} min cell temperature"
    address: 0x100D
    register_type: read
    value_type: S_WORD
    unit_of_measurement: "°C"
    device_class: temperature
    state_class: measurement
    accuracy_decimals: 1
    filters:
      - offset: -2731.5
      - multiply: 0.1

  # 100F    MaxDisCurt                  R    UINT16    2    1A
  #         Max Discharging Current
  # 1010    MaxChgCurt                  R    UINT16    2    1A
  #         Max Charging Current

  # 1100    Cell1 Voltage               R    UINT16    2    1mV
  - platform: modbus_controller
    modbus_controller_id: bms0
    name: "${name} cell voltage 1"
    address: 0x1100
    register_type: read
    value_type: U_WORD
    unit_of_measurement: "V"
    device_class: voltage
    state_class: measurement
    accuracy_decimals: 3
    filters:
      - multiply: 0.001

  # 1101    Cell2 Voltage               R    UINT16    2    1mV
  - platform: modbus_controller
    modbus_controller_id: bms0
    name: "${name} cell voltage 2"
    address: 0x1101
    register_type: read
    value_type: U_WORD
    unit_of_measurement: "V"
    device_class: voltage
    state_class: measurement
    accuracy_decimals: 3
    filters:
      - multiply: 0.001

  # 1102    Cell3 Voltage               R    UINT16    2    1mV
  - platform: modbus_controller
    modbus_controller_id: bms0
    name: "${name} cell voltage 3"
    address: 0x1102
    register_type: read
    value_type: U_WORD
    unit_of_measurement: "V"
    device_class: voltage
    state_class: measurement
    accuracy_decimals: 3
    filters:
      - multiply: 0.001

  # 1103    Cell4 Voltage               R    UINT16    2    1mV
  - platform: modbus_controller
    modbus_controller_id: bms0
    name: "${name} cell voltage 4"
    address: 0x1103
    register_type: read
    value_type: U_WORD
    unit_of_measurement: "V"
    device_class: voltage
    state_class: measurement
    accuracy_decimals: 3
    filters:
      - multiply: 0.001

  # 1104    Cell5 Voltage               R    UINT16    2    1mV
  - platform: modbus_controller
    modbus_controller_id: bms0
    name: "${name} cell voltage 5"
    address: 0x1104
    register_type: read
    value_type: U_WORD
    unit_of_measurement: "V"
    device_class: voltage
    state_class: measurement
    accuracy_decimals: 3
    filters:
      - multiply: 0.001

  # 1105    Cell6 Voltage               R    UINT16    2    1mV
  - platform: modbus_controller
    modbus_controller_id: bms0
    name: "${name} cell voltage 6"
    address: 0x1105
    register_type: read
    value_type: U_WORD
    unit_of_measurement: "V"
    device_class: voltage
    state_class: measurement
    accuracy_decimals: 3
    filters:
      - multiply: 0.001

  # 1106    Cell7 Voltage               R    UINT16    2    1mV
  - platform: modbus_controller
    modbus_controller_id: bms0
    name: "${name} cell voltage 7"
    address: 0x1106
    register_type: read
    value_type: U_WORD
    unit_of_measurement: "V"
    device_class: voltage
    state_class: measurement
    accuracy_decimals: 3
    filters:
      - multiply: 0.001

  # 1107    Cell8 Voltage               R    UINT16    2    1mV
  - platform: modbus_controller
    modbus_controller_id: bms0
    name: "${name} cell voltage 8"
    address: 0x1107
    register_type: read
    value_type: U_WORD
    unit_of_measurement: "V"
    device_class: voltage
    state_class: measurement
    accuracy_decimals: 3
    filters:
      - multiply: 0.001

  # 1108    Cell9 Voltage               R    UINT16    2    1mV
  - platform: modbus_controller
    modbus_controller_id: bms0
    name: "${name} cell voltage 9"
    address: 0x1108
    register_type: read
    value_type: U_WORD
    unit_of_measurement: "V"
    device_class: voltage
    state_class: measurement
    accuracy_decimals: 3
    filters:
      - multiply: 0.001

  # 1109    Cell10 Voltage              R    UINT16    2    1mV
  - platform: modbus_controller
    modbus_controller_id: bms0
    name: "${name} cell voltage 10"
    address: 0x1109
    register_type: read
    value_type: U_WORD
    unit_of_measurement: "V"
    device_class: voltage
    state_class: measurement
    accuracy_decimals: 3
    filters:
      - multiply: 0.001

  # 110A    Cell11 Voltage              R    UINT16    2    1mV
  - platform: modbus_controller
    modbus_controller_id: bms0
    name: "${name} cell voltage 11"
    address: 0x110A
    register_type: read
    value_type: U_WORD
    unit_of_measurement: "V"
    device_class: voltage
    state_class: measurement
    accuracy_decimals: 3
    filters:
      - multiply: 0.001

  # 110B    Cell12 Voltage              R    UINT16    2    1mV
  - platform: modbus_controller
    modbus_controller_id: bms0
    name: "${name} cell voltage 12"
    address: 0x110B
    register_type: read
    value_type: U_WORD
    unit_of_measurement: "V"
    device_class: voltage
    state_class: measurement
    accuracy_decimals: 3
    filters:
      - multiply: 0.001

  # 110C    Cell13 Voltage              R    UINT16    2    1mV
  - platform: modbus_controller
    modbus_controller_id: bms0
    name: "${name} cell voltage 13"
    address: 0x110C
    register_type: read
    value_type: U_WORD
    unit_of_measurement: "V"
    device_class: voltage
    state_class: measurement
    accuracy_decimals: 3
    filters:
      - multiply: 0.001

  # 110D    Cell14 Voltage              R    UINT16    2    1mV
  - platform: modbus_controller
    modbus_controller_id: bms0
    name: "${name} cell voltage 14"
    address: 0x110D
    register_type: read
    value_type: U_WORD
    unit_of_measurement: "V"
    device_class: voltage
    state_class: measurement
    accuracy_decimals: 3
    filters:
      - multiply: 0.001

  # 110E    Cell15 Voltage              R    UINT16    2    1mV
  - platform: modbus_controller
    modbus_controller_id: bms0
    name: "${name} cell voltage 15"
    address: 0x110E
    register_type: read
    value_type: U_WORD
    unit_of_measurement: "V"
    device_class: voltage
    state_class: measurement
    accuracy_decimals: 3
    filters:
      - multiply: 0.001

  # 110F    Cell16 Voltage              R    UINT16    2    1mV
  - platform: modbus_controller
    modbus_controller_id: bms0
    name: "${name} cell voltage 16"
    address: 0x110F
    register_type: read
    value_type: U_WORD
    unit_of_measurement: "V"
    device_class: voltage
    state_class: measurement
    accuracy_decimals: 3
    filters:
      - multiply: 0.001

  # 1110    Cell temperature 1          R    UINT16    2    0.1K
  - platform: modbus_controller
    modbus_controller_id: bms0
    name: "${name} cell temperature 1"
    address: 0x1110
    register_type: read
    value_type: S_WORD
    unit_of_measurement: "°C"
    device_class: temperature
    state_class: measurement
    accuracy_decimals: 1
    filters:
      - offset: -2731.5
      - multiply: 0.1

  # 1111    Cell temperature 2          R    UINT16    2    0.1K
  - platform: modbus_controller
    modbus_controller_id: bms0
    name: "${name} cell temperature 2"
    address: 0x1111
    register_type: read
    value_type: S_WORD
    unit_of_measurement: "°C"
    device_class: temperature
    state_class: measurement
    accuracy_decimals: 1
    filters:
      - offset: -2731.5
      - multiply: 0.1

  # 1112    Cell temperature 3          R    UINT16    2    0.1K
  - platform: modbus_controller
    modbus_controller_id: bms0
    name: "${name} cell temperature 3"
    address: 0x1112
    register_type: read
    value_type: S_WORD
    unit_of_measurement: "°C"
    device_class: temperature
    state_class: measurement
    accuracy_decimals: 1
    filters:
      - offset: -2731.5
      - multiply: 0.1

  # 1113    Cell temperature 4          R    UINT16    2    0.1K
  - platform: modbus_controller
    modbus_controller_id: bms0
    name: "${name} cell temperature 4"
    address: 0x1113
    register_type: read
    value_type: S_WORD
    unit_of_measurement: "°C"
    device_class: temperature
    state_class: measurement
    accuracy_decimals: 1
    filters:
      - offset: -2731.5
      - multiply: 0.1

  # 1118    Environment Temperature     R    UINT16    2    0.1K
  - platform: modbus_controller
    modbus_controller_id: bms0
    name: "${name} environment temperature"
    address: 0x1118
    register_type: read
    value_type: S_WORD
    unit_of_measurement: "°C"
    device_class: temperature
    state_class: measurement
    accuracy_decimals: 1
    filters:
      - offset: -2731.5
      - multiply: 0.1

  # 1119    Power temperature           R    UINT16    2    0.1K
  - platform: modbus_controller
    modbus_controller_id: bms0
    name: "${name} mosfet temperature"
    address: 0x1119
    register_type: read
    value_type: S_WORD
    unit_of_measurement: "°C"
    device_class: temperature
    state_class: measurement
    accuracy_decimals: 1
    filters:
      - offset: -2731.5
      - multiply: 0.1

  # Pack Info C
  #
  # 1200    Cells voltage 08-01low alarm state       R    HEX    1    1:alarm
  # 1208    Cells voltage 16-09low alarm state       R    HEX    1    1:alarm
  # 1210    Cells voltage 08-01high alarm state      R    HEX    1    1:alarm
  # 1218    Cells voltage 16-09high alarm state      R    HEX    1    1:alarm
  # 1220    Cell 08-01 temperature Tlow alarm state  R    HEX    1    1:alarm
  # 1228    Cell 08-01 temperature high alarm state  R    HEX    1    1:alarm
  # 1230    Cell 08-01 equalization event code       R    HEX    1    1:on 0:off
  # 1238    Cell 16-09 equalization event code       R    HEX    1    1:on 0:off
  # 1240    System state code                        R    HEX    1    See TB09
  # 1248    Voltage event code                       R    HEX    1    See TB02
  # 1250    Cells Temperature event code             R    HEX    1    See TB03
  # 1258    Environment and power Temperature event code          R    HEX    1    See TB04
  # 1260    Current event code1                      R    HEX    1    See TB05
  # 1268    Current event code2                      R    HEX    1    See TB16
  # 1270     The residual capacity code              R    HEX    1    See TB06

  # System Parameter    reg. 1300...1367
  # System Function     reg. 1400...1448
  # System Control      reg. 1500...1519
  # History Info        reg. 1600...1627
  # Version Info        reg. 1700...1724
  # PCS Control         reg. 1800...1823
  # EMS Info A          reg. 2000...2019
  # EMS Info B          reg. 2100...2115
  # EMS Info C          reg. 2200...2248
  #