Daly BMS Sensor =============== .. seo:: :description: Instructions for setting up a Daly Smart BMS :image: daly_bms.jpg The ``daly_bms`` sensor platform allows you to use a Daly Smart BMS (`more info `__) with ESPHome. The BMS communicates via :ref:`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 daly_bms: update_interval: 20s 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" text_sensor: - platform: daly_bms status: name: "BMS Status" binary_sensor: - platform: daly_bms charging_mos_enabled: name: "Charging MOS" discharging_mos_enabled: name: "Discharging MOS" Component/Hub ------------- Configuration variables: ************************ - **update_interval** (*Optional*, :ref:`config-time`): Delay between data requests. Sensor ------ 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 `. - **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 `. - **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 `. - **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 `. - **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 `. - **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 `. - **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 `. - **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 `. - **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 `. - **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 `. - **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 `. - **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 `. - **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 `. - **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 `. - **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 `. - **cell_1_voltage** (*Optional*): The voltage of cell number 1. Cell number can be from 1 to 16. - **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 `. Text Sensor ----------- 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 `. Binary Sensor ------------- 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 `. - **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 `. UART Connection --------------- 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. See Also -------- - :ref:`sensor-filters` - :apiref:`daly_bms/daly_bms.h` - :ghedit:`Edit`