ESPHome 2026.8.0-dev
Loading...
Searching...
No Matches
ufm01.h
Go to the documentation of this file.
1#pragma once
2
5#ifdef USE_BINARY_SENSOR
7#endif
8#ifdef USE_SENSOR
10#endif
12
13#include <array>
14
15// component API definition at https://www.sciosense.com/wp-content/uploads/2025/06/UFM-01-Datasheet-1.pdf
16
17namespace esphome::ufm01 {
18
19static constexpr size_t FRAME_SIZE = 32;
20
22#ifdef USE_SENSOR
23 SUB_SENSOR(accumulated_flow)
24 SUB_SENSOR(flow)
25 SUB_SENSOR(temperature)
26#endif
27
28#ifdef USE_BINARY_SENSOR
29 SUB_BINARY_SENSOR(ufc_chip_error)
30 SUB_BINARY_SENSOR(flow_direction_wrong)
31 SUB_BINARY_SENSOR(empty_tube)
32 SUB_BINARY_SENSOR(flow_rate_out_of_range)
33#endif
34
35 public:
36 void setup() override;
37
38 void dump_config() override;
39
40 void loop() override;
41
42 float get_setup_priority() const override;
43
44 protected:
46 bool set_active_mode_();
47 bool reset_device_();
48
49 private:
50 bool send_command_(const std::array<uint8_t, 7> &command);
51
52 int32_t read_index_ = 0;
53 uint8_t data_[FRAME_SIZE];
54 void on_data_(uint8_t data[FRAME_SIZE]);
55};
56
57} // namespace esphome::ufm01
virtual void setup()
Where the component's initialization should happen.
Definition component.cpp:84
uint16_t temperature
Definition sun_gtil2.cpp:12