8#ifdef USE_BINARY_SENSOR
44#ifdef USE_BINARY_SENSOR
107#ifdef USE_BINARY_SENSOR
112#ifdef USE_TEXT_SENSOR
143 void play(Ts...
x)
override { this->ezopmp_->dose_volume(this->volume_.value(
x...)); }
144 TEMPLATABLE_VALUE(
double, volume)
182 void play(Ts...
x)
override { this->ezopmp_->set_calibration_volume(this->volume_.value(
x...)); }
183 TEMPLATABLE_VALUE(
double, volume)
233 void play(Ts...
x)
override { this->ezopmp_->change_i2c_address(this->address_.value(
x...)); }
234 TEMPLATABLE_VALUE(
int,
address)
244 void play(Ts...
x)
override { this->ezopmp_->exec_arbitrary_command(this->command_.value(
x...)); }
245 TEMPLATABLE_VALUE(std::string, command)
This class simplifies creating components that periodically check a state.
Base class for all binary_sensor-type classes.
void play(Ts... x) override
EzoPMPArbitraryCommandAction(EzoPMP *ezopmp)
void play(Ts... x) override
EzoPMPChangeI2CAddressAction(EzoPMP *ezopmp)
void play(Ts... x) override
EzoPMPClearCalibrationAction(EzoPMP *ezopmp)
EzoPMPClearTotalVolumeDispensedAction(EzoPMP *ezopmp)
void play(Ts... x) override
void play(Ts... x) override
EzoPMPDoseContinuouslyAction(EzoPMP *ezopmp)
void play(Ts... x) override
EzoPMPDoseVolumeAction(EzoPMP *ezopmp)
void play(Ts... x) override
TEMPLATABLE_VALUE(double, volume) TEMPLATABLE_VALUE(int
EzoPMPDoseVolumeOverTimeAction(EzoPMP *ezopmp)
EzoPMPDoseWithConstantFlowRateAction(EzoPMP *ezopmp)
TEMPLATABLE_VALUE(double, volume) TEMPLATABLE_VALUE(int
void play(Ts... x) override
EzoPMPFindAction(EzoPMP *ezopmp)
void play(Ts... x) override
sensor::Sensor * total_volume_dosed_
void exec_arbitrary_command(const std::basic_string< char > &command)
const char * arbitrary_command_
void dose_volume(double volume)
void send_next_command_()
uint16_t current_command_
void set_is_paused(binary_sensor::BinarySensor *is_paused)
binary_sensor::BinarySensor * is_paused_
int next_command_duration_queue_[10]
void set_current_volume_dosed(sensor::Sensor *current_volume_dosed)
sensor::Sensor * max_flow_rate_
void set_pump_voltage(sensor::Sensor *pump_voltage)
void set_dosing_mode(text_sensor::TextSensor *dosing_mode)
int next_command_duration_
uint16_t next_command_queue_[10]
void clear_total_volume_dosed()
void dump_config() override
double next_command_volume_
void set_max_flow_rate(sensor::Sensor *max_flow_rate)
double next_command_volume_queue_[10]
int next_command_queue_last_
int next_command_queue_length_
void set_calibration_volume(double volume)
void set_absolute_total_volume_dosed(sensor::Sensor *absolute_total_volume_dosed)
void set_total_volume_dosed(sensor::Sensor *total_volume_dosed)
void set_calibration_status(text_sensor::TextSensor *calibration_status)
void change_i2c_address(int address)
void queue_command_(uint16_t command, double volume, int duration, bool should_schedule)
binary_sensor::BinarySensor * is_dosing_
sensor::Sensor * last_volume_requested_
void set_is_dosing(binary_sensor::BinarySensor *is_dosing)
void dose_volume_over_time(double volume, int duration)
void set_last_volume_requested(sensor::Sensor *last_volume_requested)
void read_command_result_()
uint16_t peek_next_command_()
sensor::Sensor * absolute_total_volume_dosed_
text_sensor::TextSensor * dosing_mode_
sensor::Sensor * pump_voltage_
sensor::Sensor * current_volume_dosed_
void dose_with_constant_flow_rate(double volume, int duration)
void clear_current_command_()
int next_command_queue_head_
float get_setup_priority() const override
text_sensor::TextSensor * calibration_status_
void play(Ts... x) override
EzoPMPPauseDosingAction(EzoPMP *ezopmp)
void play(Ts... x) override
EzoPMPSetCalibrationVolumeAction(EzoPMP *ezopmp)
void play(Ts... x) override
EzoPMPStopDosingAction(EzoPMP *ezopmp)
This Class provides the methods to read/write bytes from/to an i2c device.
Base-class for all sensors.
const float DATA
For components that import data from directly connected sensors like DHT.
Providing packet encoding functions for exchanging data with a remote host.