ESPHome 2026.5.0b1
Loading...
Searching...
No Matches
pmwcs3.h
Go to the documentation of this file.
1#pragma once
6
7// ref:
8// https://github.com/tinovi/i2cArduino/blob/master/i2cArduino.h
9
10namespace esphome::pmwcs3 {
11
13 public:
14 void update() override;
15 void dump_config() override;
16
17 void set_e25_sensor(sensor::Sensor *e25_sensor) { e25_sensor_ = e25_sensor; }
18 void set_ec_sensor(sensor::Sensor *ec_sensor) { ec_sensor_ = ec_sensor; }
19 void set_temperature_sensor(sensor::Sensor *temperature_sensor) { temperature_sensor_ = temperature_sensor; }
20 void set_vwc_sensor(sensor::Sensor *vwc_sensor) { vwc_sensor_ = vwc_sensor; }
21
22 void new_i2c_address(uint8_t newaddress);
23 void air_calibration();
24 void water_calibration();
25
26 protected:
27 void read_data_();
28
33};
34
35template<typename... Ts> class PMWCS3AirCalibrationAction : public Action<Ts...> {
36 public:
38
39 void play(const Ts &...x) override { this->parent_->air_calibration(); }
40
41 protected:
43};
44
45template<typename... Ts> class PMWCS3WaterCalibrationAction : public Action<Ts...> {
46 public:
48
49 void play(const Ts &...x) override { this->parent_->water_calibration(); }
50
51 protected:
53};
54
55template<typename... Ts> class PMWCS3NewI2cAddressAction : public Action<Ts...> {
56 public:
58 TEMPLATABLE_VALUE(int, new_address)
59
60 void play(const Ts &...x) override { this->parent_->new_i2c_address(this->new_address_.value(x...)); }
61
62 protected:
64};
65
66} // namespace esphome::pmwcs3
virtual void play(const Ts &...x)=0
This class simplifies creating components that periodically check a state.
Definition component.h:602
This Class provides the methods to read/write bytes from/to an i2c device.
Definition i2c.h:132
PMWCS3AirCalibrationAction(PMWCS3Component *parent)
Definition pmwcs3.h:37
void play(const Ts &...x) override
Definition pmwcs3.h:39
void set_e25_sensor(sensor::Sensor *e25_sensor)
Definition pmwcs3.h:17
sensor::Sensor * e25_sensor_
Definition pmwcs3.h:29
sensor::Sensor * ec_sensor_
Definition pmwcs3.h:30
void set_temperature_sensor(sensor::Sensor *temperature_sensor)
Definition pmwcs3.h:19
void set_ec_sensor(sensor::Sensor *ec_sensor)
Definition pmwcs3.h:18
sensor::Sensor * vwc_sensor_
Definition pmwcs3.h:32
void set_vwc_sensor(sensor::Sensor *vwc_sensor)
Definition pmwcs3.h:20
sensor::Sensor * temperature_sensor_
Definition pmwcs3.h:31
void new_i2c_address(uint8_t newaddress)
Definition pmwcs3.cpp:25
TEMPLATABLE_VALUE(int, new_address) void play(const Ts &...x) override
Definition pmwcs3.h:58
PMWCS3NewI2cAddressAction(PMWCS3Component *parent)
Definition pmwcs3.h:57
PMWCS3WaterCalibrationAction(PMWCS3Component *parent)
Definition pmwcs3.h:47
void play(const Ts &...x) override
Definition pmwcs3.h:49
Base-class for all sensors.
Definition sensor.h:47
uint16_t x
Definition tt21100.cpp:5