syssi / esphome-seplos-bms

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

Seplosbms CRC check error #31

Closed miguel300477 closed 1 year ago

miguel300477 commented 1 year ago

hi,

I have been trying to get data but i keep getting this error:

[W][seplos_modbus:101]: SeplosBms CRC Check failed! DD5D != DCFD

from time to time i get the bms data ok, but most of the time is that error. I played with the rx timeout and i get data, but alot of that error. logs_seplosbms_logs (2).txt

I have a seplos BMS from millenials , 150A 16cells. this is my config:

`substitutions: name: seplos-bms external_components_source: github://syssi/esphome-seplos-bms@main tx_pin: GPIO4 rx_pin: GPIO5

esphome: name: ${name}

esp8266: board: esp01_1m

external_components:

Enable logging

logger:

Enable Home Assistant API

api: encryption: key: "LElVpf+yOX/T7gPTYWuijvEsBFLPyGlGuRXZkKLq5js="

ota: password: "fbce9898f7a22f8bbc01ce2114efe287"

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

Enable fallback hotspot (captive portal) in case wifi connection fails

ap: ssid: "Seplosbms Fallback Hotspot" password: "OiVjReZiaGkq"

captive_portal:

uart: id: uart0 baud_rate: 19200 tx_pin: ${tx_pin} rx_pin: ${rx_pin} debug: direction: BOTH dummy_receiver: true after: delimiter: "\r" sequence:

seplos_modbus: id: modbus0 uart_id: uart0 rx_timeout: 1100ms

seplos_bms: id: bms0 seplos_modbus_id: modbus0 update_interval: 10s

sensor:

miguel300477 commented 1 year ago

Hi, i have sorted it out.

I was missing the RX buffer.

syssi commented 1 year ago

Good job! I will add a note to the example.

miguel300477 commented 1 year ago

Yes,

I added this from multiple battery config.

rx_buffer_size: 384

I have single battery but without that it would not work. I got some data but mostly CRC check error. With rx buffer size works perfect with default rx timeout.

I m using 2 second for every request and it work great.

Hardware: Seplos 150A 16S Can Version ESP8266 TTL to RS485 as you mentioned.

Geat job.