2022-04-03 09:30:25 +02:00
Daly BMS Sensor
===============
2021-09-22 12:03:58 +02:00
.. seo ::
:description: Instructions for setting up a Daly Smart BMS
2022-01-31 08:05:20 +01:00
:image: daly_bms.jpg
2021-09-22 12:03:58 +02:00
The `` daly_bms `` sensor platform allows you to use a Daly Smart BMS
(`more info <https://dalyelec.en.made-in-china.com/> `__ )
with ESPHome.
The BMS communicates via :ref: `UART <uart>` .
.. figure :: images/daly_bms_example.png
:align: center
:width: 100.0%
.. code-block :: yaml
# Example configuration entry (ESP8266)
uart:
tx_pin: GPIO1
rx_pin: GPIO3
baud_rate: 9600
2022-04-03 09:30:25 +02:00
2021-09-22 12:03:58 +02:00
daly_bms:
update_interval: 20s
2022-04-03 09:30:25 +02:00
2021-09-22 12:03:58 +02:00
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"
2022-02-17 23:00:15 +01:00
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"
2021-09-22 12:03:58 +02:00
text_sensor:
- platform: daly_bms
status:
name: "BMS Status"
2022-04-03 09:30:25 +02:00
2021-09-22 12:03:58 +02:00
binary_sensor:
- platform: daly_bms
charging_mos_enabled:
name: "Charging MOS"
discharging_mos_enabled:
name: "Discharging MOS"
Component/Hub
-------------
Configuration variables:
***** ***** ***** ***** *** *
2022-04-03 09:30:25 +02:00
- **update_interval** (*Optional* , :ref: `config-time` ): Delay between data requests.
2022-08-02 21:47:41 +02:00
- **address** (*Optional* , int): Address to use, defaults to `` 0x80 `` .
2022-04-03 09:30:25 +02:00
Sensor
------
2021-09-22 12:03:58 +02:00
A sensor platform to read BMS data
Configuration variables:
***** ***** ***** ***** *** *
- **voltage** (*Optional* ): Voltage of the battery pack connected to Daly BMS.
- **name** (**Required** , string): The name for the voltage sensor.
- **id** (*Optional* , :ref: `config-id` ): Set the ID of this sensor for use in lambdas.
- All other options from :ref: `Sensor <config-sensor>` .
- **current** (*Optional* ): Current flowing trough the BMS (input or output from batttery).
- **name** (**Required** , string): The name for the current sensor.
- **id** (*Optional* , :ref: `config-id` ): Set the ID of this sensor for use in lambdas.
- All other options from :ref: `Sensor <config-sensor>` .
- **battery_level** (*Optional* ): Battery level in % (SoC).
- **name** (**Required** , string): The name for the SoC sensor.
- **id** (*Optional* , :ref: `config-id` ): Set the ID of this sensor for use in lambdas.
- All other options from :ref: `Sensor <config-sensor>` .
- **max_cell_voltage** (*Optional* ): The cell of the battery with the higher voltage.
- **name** (**Required** , string): The name for the Max Cell Voltage sensor.
- **id** (*Optional* , :ref: `config-id` ): Set the ID of this sensor for use in lambdas.
- All other options from :ref: `Sensor <config-sensor>` .
- **max_cell_voltage_number** (*Optional* ): The cell number of the battery with the higher voltage.
- **name** (**Required** , string): The name for the Max Cell Voltage Number sensor.
- **id** (*Optional* , :ref: `config-id` ): Set the ID of this sensor for use in lambdas.
- All other options from :ref: `Sensor <config-sensor>` .
- **min_cell_voltage** (*Optional* ): The cell of the battery with the lower voltage.
- **name** (**Required** , string): The name for the Min Cell Voltage sensor.
- **id** (*Optional* , :ref: `config-id` ): Set the ID of this sensor for use in lambdas.
- All other options from :ref: `Sensor <config-sensor>` .
- **min_cell_voltage_number** (*Optional* ): The cell number of the battery with the lower voltage.
- **name** (**Required** , string): The name for the Min Cell Voltage Number sensor.
- **id** (*Optional* , :ref: `config-id` ): Set the ID of this sensor for use in lambdas.
- All other options from :ref: `Sensor <config-sensor>` .
- **max_temperature** (*Optional* ): The higher temperature measured from the temperature sensors.
- **name** (**Required** , string): The name for the Max Temperature sensor.
- **id** (*Optional* , :ref: `config-id` ): Set the ID of this sensor for use in lambdas.
- All other options from :ref: `Sensor <config-sensor>` .
- **max_temperature_probe_number** (*Optional* ): The sensor number which has measured the higher temperature.
- **name** (**Required** , string): The name for the Max Temperature Probe Number sensor.
- **id** (*Optional* , :ref: `config-id` ): Set the ID of this sensor for use in lambdas.
- All other options from :ref: `Sensor <config-sensor>` .
- **min_temperature** (*Optional* ): The lower temperature measured from the temperature sensors.
- **name** (**Required** , string): The name for the Min Temperature sensor.
- **id** (*Optional* , :ref: `config-id` ): Set the ID of this sensor for use in lambdas.
- All other options from :ref: `Sensor <config-sensor>` .
- **min_temperature_probe_number** (*Optional* ): The sensor number which has measured the lower temperature.
- **name** (**Required** , string): The name for the Min Temperature Probe Number sensor.
- **id** (*Optional* , :ref: `config-id` ): Set the ID of this sensor for use in lambdas.
- All other options from :ref: `Sensor <config-sensor>` .
- **remaining_capacity** (*Optional* ): The capacity in Ah left in the battery.
- **name** (**Required** , string): The name for the Remaining Capacity sensor.
- **id** (*Optional* , :ref: `config-id` ): Set the ID of this sensor for use in lambdas.
- All other options from :ref: `Sensor <config-sensor>` .
- **cells_number** (*Optional* ): The number of cells in series in the battery pack.
- **name** (**Required** , string): The name for the Cells Number sensor.
- **id** (*Optional* , :ref: `config-id` ): Set the ID of this sensor for use in lambdas.
- All other options from :ref: `Sensor <config-sensor>` .
- **temperature_1** (*Optional* ): The first temperature sensor.
- **name** (**Required** , string): The name for the first temperature sensor.
- **id** (*Optional* , :ref: `config-id` ): Set the ID of this sensor for use in lambdas.
- All other options from :ref: `Sensor <config-sensor>` .
- **temperature_2** (*Optional* ): The second temperature sensor.
- **name** (**Required** , string): The name for the second temperature sensor.
- **id** (*Optional* , :ref: `config-id` ): Set the ID of this sensor for use in lambdas.
- All other options from :ref: `Sensor <config-sensor>` .
2022-04-03 09:30:25 +02:00
- **cell_1_voltage** (*Optional* ): The voltage of cell number 1. Cell number can be from 1 to 16.
2022-02-17 23:00:15 +01:00
- **name** (**Required** , string): The name for the cell voltage sensor.
- **id** (*Optional* , :ref: `config-id` ): Set the ID of this sensor for use in lambdas.
- All other options from :ref: `Sensor <config-sensor>` .
2021-09-22 12:03:58 +02:00
2022-04-03 09:30:25 +02:00
Text Sensor
-----------
2021-09-22 12:03:58 +02:00
Text sensor that indicates the status of BMS.
Configuration variables:
***** ***** ***** ***** *** *
- **status** (*Optional* ): The BMS Status (Charging, Discharging, Stationary).
- **name** (**Required** , string): The name for the BMS status text sensor.
- **id** (*Optional* , :ref: `config-id` ): Set the ID of this sensor for use in lambdas.
- All other options from :ref: `Text Sensor <config-text_sensor>` .
2022-04-03 09:30:25 +02:00
Binary Sensor
-------------
2021-09-22 12:03:58 +02:00
Binary sensor that indicates the status of MOS.
Configuration variables:
***** ***** ***** ***** *** *
- **charging_mos_enabled** (*Optional* ): The BMS charging MOS status to enable the recharge of the battery.
- **name** (**Required** , string): The name for the charging MOS binary sensor.
- **id** (*Optional* , :ref: `config-id` ): Set the ID of this sensor for use in lambdas.
- All other options from :ref: `Binary Sensor <config-binary_sensor>` .
- **discharging_mos_enabled** (*Optional* ): The BMS discharging mos status to enable the load.
- **name** (**Required** , string): The name for the discharging MOS binary sensor.
- **id** (*Optional* , :ref: `config-id` ): Set the ID of this sensor for use in lambdas.
- All other options from :ref: `Binary Sensor <config-binary_sensor>` .
2022-04-03 09:30:25 +02:00
UART Connection
---------------
2021-09-22 12:03:58 +02:00
Connect RX from BMS to TX in ESP board and TX from BMS to RX in ESP board
.. figure :: images/daly_bms_pinout.png
:align: center
:width: 100.0%
Uart Pinout.
2022-11-09 20:00:56 +01:00
**3.3v Warning:** some BMS 3.3v cant source large currents and may not work to properly power the ESP. If you are having WIFI connection issues or similar, try a different power source. There is 12-15v available on the Daly connector which via a proper step-down converter can properly power the ESP.
On the ESP32 (untested on ESP8266) if you are having missing data (such as Temperature 1/2), it may be due to UART buffer size.
Add the following to your configuration to increase the buffer from the default 256 to 512.
.. code-block ::
uart:
...
rx_buffer_size: 512
2021-09-22 12:03:58 +02:00
See Also
--------
- :ref: `sensor-filters`
- :apiref: `daly_bms/daly_bms.h`
- :ghedit: `Edit`