ESPHome 2026.5.1
Loading...
Searching...
No Matches
daly_bms.h
Go to the documentation of this file.
1#pragma once
2
5#ifdef USE_SENSOR
7#endif
8#ifdef USE_TEXT_SENSOR
10#endif
11#ifdef USE_BINARY_SENSOR
13#endif
15
16#include <vector>
17
18namespace esphome::daly_bms {
19
21 public:
22 DalyBmsComponent() = default;
23
24#ifdef USE_SENSOR
25 SUB_SENSOR(voltage)
26 SUB_SENSOR(current)
27 SUB_SENSOR(battery_level)
28 SUB_SENSOR(max_cell_voltage)
29 SUB_SENSOR(max_cell_voltage_number)
30 SUB_SENSOR(min_cell_voltage)
31 SUB_SENSOR(min_cell_voltage_number)
32 SUB_SENSOR(max_temperature)
33 SUB_SENSOR(max_temperature_probe_number)
34 SUB_SENSOR(min_temperature)
35 SUB_SENSOR(min_temperature_probe_number)
36 SUB_SENSOR(remaining_capacity)
37 SUB_SENSOR(cells_number)
38 SUB_SENSOR(temperature_1)
39 SUB_SENSOR(temperature_2)
40 SUB_SENSOR(cell_1_voltage)
41 SUB_SENSOR(cell_2_voltage)
42 SUB_SENSOR(cell_3_voltage)
43 SUB_SENSOR(cell_4_voltage)
44 SUB_SENSOR(cell_5_voltage)
45 SUB_SENSOR(cell_6_voltage)
46 SUB_SENSOR(cell_7_voltage)
47 SUB_SENSOR(cell_8_voltage)
48 SUB_SENSOR(cell_9_voltage)
49 SUB_SENSOR(cell_10_voltage)
50 SUB_SENSOR(cell_11_voltage)
51 SUB_SENSOR(cell_12_voltage)
52 SUB_SENSOR(cell_13_voltage)
53 SUB_SENSOR(cell_14_voltage)
54 SUB_SENSOR(cell_15_voltage)
55 SUB_SENSOR(cell_16_voltage)
56 SUB_SENSOR(cell_17_voltage)
57 SUB_SENSOR(cell_18_voltage)
58#endif
59
60#ifdef USE_TEXT_SENSOR
61 SUB_TEXT_SENSOR(status)
62#endif
63
64#ifdef USE_BINARY_SENSOR
65 SUB_BINARY_SENSOR(charging_mos_enabled)
66 SUB_BINARY_SENSOR(discharging_mos_enabled)
67#endif
68
69 void setup() override;
70 void dump_config() override;
71 void update() override;
72 void loop() override;
73
74 void set_address(uint8_t address) { this->addr_ = address; }
75
76 protected:
77 void request_data_(uint8_t data_id);
78 void decode_data_(std::vector<uint8_t> data);
79
80 uint8_t addr_;
81
82 std::vector<uint8_t> data_;
83 bool receiving_{false};
84 uint8_t data_count_;
88};
89
90} // namespace esphome::daly_bms
uint8_t address
Definition bl0906.h:4
virtual void setup()
Where the component's initialization should happen.
Definition component.cpp:89
This class simplifies creating components that periodically check a state.
Definition component.h:602
std::vector< uint8_t > data_
Definition daly_bms.h:82
SUB_SENSOR(voltage) SUB_SENSOR(current) SUB_SENSOR(battery_level) SUB_SENSOR(max_cell_voltage) SUB_SENSOR(max_cell_voltage_number) SUB_SENSOR(min_cell_voltage) SUB_SENSOR(min_cell_voltage_number) SUB_SENSOR(max_temperature) SUB_SENSOR(max_temperature_probe_number) SUB_SENSOR(min_temperature) SUB_SENSOR(min_temperature_probe_number) SUB_SENSOR(remaining_capacity) SUB_SENSOR(cells_number) SUB_SENSOR(temperature_1) SUB_SENSOR(temperature_2) SUB_SENSOR(cell_1_voltage) SUB_SENSOR(cell_2_voltage) SUB_SENSOR(cell_3_voltage) SUB_SENSOR(cell_4_voltage) SUB_SENSOR(cell_5_voltage) SUB_SENSOR(cell_6_voltage) SUB_SENSOR(cell_7_voltage) SUB_SENSOR(cell_8_voltage) SUB_SENSOR(cell_9_voltage) SUB_SENSOR(cell_10_voltage) SUB_SENSOR(cell_11_voltage) SUB_SENSOR(cell_12_voltage) SUB_SENSOR(cell_13_voltage) SUB_SENSOR(cell_14_voltage) SUB_SENSOR(cell_15_voltage) SUB_SENSOR(cell_16_voltage) SUB_SENSOR(cell_17_voltage) SUB_SENSOR(cell_18_voltage) SUB_TEXT_SENSOR(status) SUB_BINARY_SENSOR(charging_mos_enabled) SUB_BINARY_SENSOR(discharging_mos_enabled) void setup() override
void decode_data_(std::vector< uint8_t > data)
Definition daly_bms.cpp:130
void set_address(uint8_t address)
Definition daly_bms.h:74
void request_data_(uint8_t data_id)
Definition daly_bms.cpp:106
static void uint32_t