15#define LOG_VALVE(prefix, type, obj) \
16 if ((obj) != nullptr) { \
17 ESP_LOGCONFIG(TAG, "%s%s '%s'", prefix, LOG_STR_LITERAL(type), (obj)->get_name().c_str()); \
18 auto traits_ = (obj)->get_traits(); \
19 if (traits_.get_is_assumed_state()) { \
20 ESP_LOGCONFIG(TAG, "%s Assumed State: YES", prefix); \
22 if (!(obj)->get_device_class().empty()) { \
23 ESP_LOGCONFIG(TAG, "%s Device Class: '%s'", prefix, (obj)->get_device_class().c_str()); \
ValveCall & set_stop(bool stop)
Set whether this valve call should stop the valve.
ValveCall & set_command_close()
Set the command to close the valve.
ValveCall & set_position(float position)
Set the call to a certain target position.
const optional< bool > & get_toggle() const
ValveCall & set_command_toggle()
Set the command to toggle the valve.
ValveCall & set_command_stop()
Set the command to stop the valve.
const optional< float > & get_position() const
ValveCall & set_command(const char *command)
Set the command as a string, "STOP", "OPEN", "CLOSE", "TOGGLE".
optional< float > position_
ValveCall & set_command_open()
Set the command to open the valve.
void perform()
Perform the valve call.
Base class for all valve devices.
optional< ValveRestoreState > restore_state_()
void publish_state(bool save=true)
Publish the current state of the valve.
bool is_fully_closed() const
Helper method to check if the valve is fully closed. Equivalent to comparing .position against 0....
CallbackManager< void()> state_callback_
bool is_fully_open() const
Helper method to check if the valve is fully open. Equivalent to comparing .position against 1....
float position
The position of the valve from 0.0 (fully closed) to 1.0 (fully open).
virtual void control(const ValveCall &call)=0
ValveCall make_call()
Construct a new valve call used to control the valve.
ValveOperation current_operation
The current operation of the valve (idle, opening, closing).
void add_on_state_callback(std::function< void()> &&f)
virtual ValveTraits get_traits()=0
const char * valve_operation_to_str(ValveOperation op)
enum esphome::valve::ValveOperation __attribute__
ValveOperation
Enum encoding the current operation of a valve.
@ VALVE_OPERATION_OPENING
The valve is currently opening.
@ VALVE_OPERATION_IDLE
The valve is currently idle (not moving)
@ VALVE_OPERATION_CLOSING
The valve is currently closing.
Providing packet encoding functions for exchanging data with a remote host.
Struct used to store the restored state of a valve.
void apply(Valve *valve)
Apply these settings to the valve.
ValveCall to_call(Valve *valve)
Convert this struct to a valve call that can be performed.