ESPHome 2025.5.0
Loading...
Searching...
No Matches
ltr390.h
Go to the documentation of this file.
1#pragma once
2
3#include <tuple>
4#include <vector>
9
10namespace esphome {
11namespace ltr390 {
12
18
19// enums from https://github.com/adafruit/Adafruit_LTR390/
20// Sensing modes
25
26// Sensor gain levels
34
35// Sensor resolution
44
46 public:
47 float get_setup_priority() const override { return setup_priority::DATA; }
48 void setup() override;
49 void dump_config() override;
50 void update() override;
51
54 void set_als_res_value(LTR390RESOLUTION res) { this->res_als_ = res; }
55 void set_uv_res_value(LTR390RESOLUTION res) { this->res_uv_ = res; }
56 void set_wfac_value(float wfac) { this->wfac_ = wfac; }
57
58 void set_light_sensor(sensor::Sensor *light_sensor) { this->light_sensor_ = light_sensor; }
59 void set_als_sensor(sensor::Sensor *als_sensor) { this->als_sensor_ = als_sensor; }
60 void set_uvi_sensor(sensor::Sensor *uvi_sensor) { this->uvi_sensor_ = uvi_sensor; }
61 void set_uv_sensor(sensor::Sensor *uv_sensor) { this->uv_sensor_ = uv_sensor; }
62
63 protected:
65
66 void read_als_();
67 void read_uvs_();
68
69 void read_mode_(int mode_index);
70
72
73 // a list of modes and corresponding read functions
74 std::vector<std::tuple<LTR390MODE, std::function<void()>>> mode_funcs_;
75
80 float wfac_;
81
84
87};
88
89} // namespace ltr390
90} // namespace esphome
BedjetMode mode
BedJet operating mode.
This class simplifies creating components that periodically check a state.
Definition component.h:301
This Class provides the methods to read/write bytes from/to an i2c device.
Definition i2c.h:133
sensor::Sensor * als_sensor_
Definition ltr390.h:83
float get_setup_priority() const override
Definition ltr390.h:47
void set_als_sensor(sensor::Sensor *als_sensor)
Definition ltr390.h:59
void set_als_res_value(LTR390RESOLUTION res)
Definition ltr390.h:54
sensor::Sensor * light_sensor_
Definition ltr390.h:82
void set_uv_res_value(LTR390RESOLUTION res)
Definition ltr390.h:55
LTR390RESOLUTION res_uv_
Definition ltr390.h:79
void read_mode_(int mode_index)
Definition ltr390.cpp:107
void set_uv_sensor(sensor::Sensor *uv_sensor)
Definition ltr390.h:61
void set_uv_gain_value(LTR390GAIN gain)
Definition ltr390.h:53
optional< uint32_t > read_sensor_data_(LTR390MODE mode)
Definition ltr390.cpp:43
void set_wfac_value(float wfac)
Definition ltr390.h:56
void set_als_gain_value(LTR390GAIN gain)
Definition ltr390.h:52
sensor::Sensor * uv_sensor_
Definition ltr390.h:86
void set_uvi_sensor(sensor::Sensor *uvi_sensor)
Definition ltr390.h:60
void set_light_sensor(sensor::Sensor *light_sensor)
Definition ltr390.h:58
sensor::Sensor * uvi_sensor_
Definition ltr390.h:85
std::vector< std::tuple< LTR390MODE, std::function< void()> > > mode_funcs_
Definition ltr390.h:74
LTR390RESOLUTION res_als_
Definition ltr390.h:78
Base-class for all sensors.
Definition sensor.h:57
AlsGain501 gain
@ LTR390_RESOLUTION_13BIT
Definition ltr390.h:42
@ LTR390_RESOLUTION_19BIT
Definition ltr390.h:38
@ LTR390_RESOLUTION_20BIT
Definition ltr390.h:37
@ LTR390_RESOLUTION_16BIT
Definition ltr390.h:41
@ LTR390_RESOLUTION_17BIT
Definition ltr390.h:40
@ LTR390_RESOLUTION_18BIT
Definition ltr390.h:39
const float DATA
For components that import data from directly connected sensors like DHT.
Definition component.cpp:19
Providing packet encoding functions for exchanging data with a remote host.
Definition a01nyub.cpp:7