ESPHome 2026.11.0-dev
Loading...
Searching...
No Matches
ufire_ec.h
Go to the documentation of this file.
1#pragma once
2
4#include "esphome/core/hal.h"
7
8namespace esphome::ufire_ec {
9
10static const uint8_t CONFIG_TEMP_COMPENSATION = 0x02;
11
12static const uint8_t REGISTER_VERSION = 0;
13static const uint8_t REGISTER_MS = 1;
14static const uint8_t REGISTER_TEMP = 5;
15static const uint8_t REGISTER_SOLUTION = 9;
16static const uint8_t REGISTER_COEFFICENT = 13;
17static const uint8_t REGISTER_CALIBRATE_OFFSET = 33;
18static const uint8_t REGISTER_COMPENSATION = 45;
19static const uint8_t REGISTER_CONFIG = 54;
20static const uint8_t REGISTER_TASK = 55;
21
22static const uint8_t COMMAND_CALIBRATE_PROBE = 20;
23static const uint8_t COMMAND_MEASURE_TEMP = 40;
24static const uint8_t COMMAND_MEASURE_EC = 80;
25
26class UFireECComponent final : public PollingComponent, public i2c::I2CDevice {
27 public:
28 void setup() override;
29 void update() override;
30 void dump_config() override;
31
32 void set_temperature_sensor(sensor::Sensor *temperature_sensor) { this->temperature_sensor_ = temperature_sensor; }
34 this->temperature_sensor_external_ = temperature_sensor;
35 }
36 void set_ec_sensor(sensor::Sensor *ec_sensor) { this->ec_sensor_ = ec_sensor; }
37 void set_temperature_compensation(float compensation) { this->temperature_compensation_ = compensation; }
38 void set_temperature_coefficient(float coefficient) { this->temperature_coefficient_ = coefficient; }
39 void calibrate_probe(float solution, float temperature);
40 void reset_board();
41
42 protected:
44 float measure_ms_();
45 bool set_solution_(float solution, float temperature);
47 void set_coefficient_(float coefficient);
48 void set_temperature_(float temperature);
49 float read_data_(uint8_t reg);
50 void write_data_(uint8_t reg, float data);
51 void update_internal_();
52
58};
59
60} // namespace esphome::ufire_ec
This class simplifies creating components that periodically check a state.
Definition component.h:519
This Class provides the methods to read/write bytes from/to an i2c device.
Definition i2c.h:144
I2CRegister reg(uint8_t a_register)
calls the I2CRegister constructor
Definition i2c.h:164
Base-class for all sensors.
Definition sensor.h:47
void set_temperature_sensor_external(sensor::Sensor *temperature_sensor)
Definition ufire_ec.h:33
void set_compensation_(float temperature)
Definition ufire_ec.cpp:76
void calibrate_probe(float solution, float temperature)
Definition ufire_ec.cpp:82
void set_ec_sensor(sensor::Sensor *ec_sensor)
Definition ufire_ec.h:36
sensor::Sensor * temperature_sensor_external_
Definition ufire_ec.h:54
void set_temperature_coefficient(float coefficient)
Definition ufire_ec.h:38
void set_temperature_compensation(float compensation)
Definition ufire_ec.h:37
void set_temperature_(float temperature)
Definition ufire_ec.cpp:80
void write_data_(uint8_t reg, float data)
Definition ufire_ec.cpp:105
sensor::Sensor * temperature_sensor_
Definition ufire_ec.h:53
void set_temperature_sensor(sensor::Sensor *temperature_sensor)
Definition ufire_ec.h:32
void set_coefficient_(float coefficient)
Definition ufire_ec.cpp:78
bool set_solution_(float solution, float temperature)
Definition ufire_ec.cpp:65
uint16_t temperature
Definition sun_gtil2.cpp:12