ESPHome  2024.4.1
dallas_component.h
Go to the documentation of this file.
1 #pragma once
2 
5 #include "esp_one_wire.h"
6 
7 #include <vector>
8 
9 namespace esphome {
10 namespace dallas {
11 
12 class DallasTemperatureSensor;
13 
15  public:
16  void set_pin(InternalGPIOPin *pin) { pin_ = pin; }
18 
19  void setup() override;
20  void dump_config() override;
21  float get_setup_priority() const override { return setup_priority::DATA; }
22 
23  void update() override;
24 
25  protected:
27 
30  std::vector<DallasTemperatureSensor *> sensors_;
31  std::vector<uint64_t> found_sensors_;
32 };
33 
36  public:
37  void set_parent(DallasComponent *parent) { parent_ = parent; }
39  uint8_t *get_address8();
40  uint64_t get_address();
42  const std::string &get_address_name();
43 
45  void set_address(uint64_t address);
47  optional<uint8_t> get_index() const;
49  void set_index(uint8_t index);
51  uint8_t get_resolution() const;
53  void set_resolution(uint8_t resolution);
55  uint16_t millis_to_wait_for_conversion() const;
56 
57  bool setup_sensor();
58  bool read_scratch_pad();
59 
60  bool check_scratch_pad();
61 
62  float get_temp_c();
63 
64  std::string unique_id() override;
65 
66  protected:
68  uint64_t address_;
70 
71  uint8_t resolution_;
72  std::string address_name_;
73  uint8_t scratch_pad_[9] = {
74  0,
75  };
76 };
77 
78 } // namespace dallas
79 } // namespace esphome
std::vector< DallasTemperatureSensor * > sensors_
const float DATA
For components that import data from directly connected sensors like DHT.
Definition: component.cpp:19
float get_setup_priority() const override
Internal class that helps us create multiple sensors for one Dallas hub.
std::vector< uint64_t > found_sensors_
This class simplifies creating components that periodically check a state.
Definition: component.h:283
void set_parent(DallasComponent *parent)
void set_pin(InternalGPIOPin *pin)
void register_sensor(DallasTemperatureSensor *sensor)
This is a workaround until we can figure out a way to get the tflite-micro idf component code availab...
Definition: a01nyub.cpp:7
Base-class for all sensors.
Definition: sensor.h:57