esphome / issues

Issue Tracker for ESPHome
https://esphome.io/
290 stars 34 forks source link

New daly K-type bms not working #5476

Open Kimbo01 opened 6 months ago

Kimbo01 commented 6 months ago

The problem

The nodemcu does not receive any info from the bms. UART connection is definitely correct. I have all the files such communication protocol and bms wiring diagram if someone would like to have it. I hope someone would help me. I have no idea how to configure the core configuration.

Which version of ESPHome has the issue?

2023.12.9

What type of installation are you using?

Home Assistant Add-on

Which version of Home Assistant has the issue?

2024.2.0

What platform are you using?

ESP8266

Board

nodemcuv2

Component causing the issue

No response

Example YAML snippet

esphome:
  name: nodemcuv3-1

esp8266:
  board: nodemcuv2

# Enable logging
logger:

# Enable Home Assistant API
api:

web_server:

ota:
  password: "a35e5982e34c323e347f4e7fae976cdf"

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

  # Enable fallback hotspot (captive portal) in case wifi connection fails
  ap:
    ssid: "Nodemcuv3-1 Fallback Hotspot"
    password: "jUOA4ifP8Wqp"

captive_portal:

uart:
  tx_pin: TX
  rx_pin: RX
  baud_rate: 9600
  rx_buffer_size: 512

daly_bms:
  update_interval: 10s

binary_sensor:
  - platform: daly_bms
    charging_mos_enabled:
      name: "Daly Charging MOS"
      id: bin_daly_chg_mos # binary MOS sensor must have ID to use with switch
      internal: True # but you can make it internal to avoid duplication
    discharging_mos_enabled:
      name: "Daly Discharging MOS"
      id: bin_daly_dischg_mos # binary MOS sensor must have ID to use with switch
      internal: True # but you can make it internal to avoid duplication
sensor:
  - platform: daly_bms
    voltage:
      name: "Battery Voltage"
    current:
      name: "Battery Current"
    battery_level:
      name: "Battery Level"
    max_cell_voltage:
      name: "Max Cell Voltage"
    max_cell_voltage_number:
      name: "Max Cell Voltage Number"
    min_cell_voltage:
      name: "Min Cell Voltage"
    min_cell_voltage_number:
      name: "Min Cell Voltage Number"
    max_temperature:
      name: "Max Temperature"
    max_temperature_probe_number:
      name: "Max Temperature Probe Number"
    min_temperature:
      name: "Min Temperature"
    min_temperature_probe_number:
      name: "Min Temperature Probe Number"
    remaining_capacity:
      name: "Remaining Capacity"
    cells_number:
      name: "Cells Number"
    temperature_1:
      name: "Temperature 1"
    temperature_2:
      name: "Temperature 2"
    cell_1_voltage:
      name: "Cell 1 Voltage"
    cell_2_voltage:
      name: "Cell 2 Voltage"
    cell_3_voltage:
      name: "Cell 3 Voltage"
    cell_4_voltage:
      name: "Cell 4 Voltage"
    cell_5_voltage:
      name: "Cell 5 Voltage"
    cell_6_voltage:
      name: "Cell 6 Voltage"
text_sensor:
  - platform: daly_bms
    status:
      name: "BMS Status"
switch:
  - platform: template
    name: "Daly Charging MOS"
    lambda: |-
      if (id(bin_daly_chg_mos).state) {
        return true;
      } else {
        return false;
      }
    turn_on_action:
      - uart.write:
          data: [0xA5, 0x40, 0xDA, 0x08, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC8]
      - logger.log:
          format: "Send cmd to Daly: Set charge MOS on"
    turn_off_action:
      - uart.write:
          data: [0xA5, 0x40, 0xDA, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC7]
      - logger.log:
          format: "Send cmd to Daly: Set charge MOS off"

  - platform: template
    name: "Daly Discharging MOS"
    lambda: |-
      if (id(bin_daly_dischg_mos).state) {
        return true;
      } else {
        return false;
      }
    turn_on_action:
      - uart.write:
          data: [0xA5, 0x40, 0xD9, 0x08, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC7]
      - logger.log:
          format: "Send cmd to Daly: Set discharge MOS on"
    turn_off_action:
      - uart.write:
          data: [0xA5, 0x40, 0xD9, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC6]
      - logger.log:
          format: "Send cmd to Daly: Set discharge MOS off"

Anything in the logs that might be useful for us?

No response

Additional information

No response

kamachips commented 5 months ago

same question

Koxx3 commented 1 month ago

I also have the issue.

Here is the protocol I have : KVMS intranet communication UART protocol (customer version)..xlsx