ESPHome  2024.9.2
Public Member Functions | Data Fields | Protected Member Functions | Protected Attributes
esphome::valve::Valve Class Referenceabstract

Base class for all valve devices. More...

#include <valve.h>

Inheritance diagram for esphome::valve::Valve:
esphome::EntityBase esphome::EntityBase_DeviceClass esphome::template_::TemplateValve

Public Member Functions

 Valve ()
 
ValveCall make_call ()
 Construct a new valve call used to control the valve. More...
 
void add_on_state_callback (std::function< void()> &&f)
 
void publish_state (bool save=true)
 Publish the current state of the valve. More...
 
virtual ValveTraits get_traits ()=0
 
bool is_fully_open () const
 Helper method to check if the valve is fully open. Equivalent to comparing .position against 1.0. More...
 
bool is_fully_closed () const
 Helper method to check if the valve is fully closed. Equivalent to comparing .position against 0.0. More...
 
- Public Member Functions inherited from esphome::EntityBase
const StringRefget_name () const
 
void set_name (const char *name)
 
bool has_own_name () const
 
std::string get_object_id () const
 
void set_object_id (const char *object_id)
 
uint32_t get_object_id_hash ()
 
bool is_internal () const
 
void set_internal (bool internal)
 
bool is_disabled_by_default () const
 
void set_disabled_by_default (bool disabled_by_default)
 
EntityCategory get_entity_category () const
 
void set_entity_category (EntityCategory entity_category)
 
std::string get_icon () const
 
void set_icon (const char *icon)
 
- Public Member Functions inherited from esphome::EntityBase_DeviceClass
std::string get_device_class ()
 Get the device class, using the manual override if set. More...
 
void set_device_class (const char *device_class)
 Manually set the device class. More...
 

Data Fields

ValveOperation current_operation {VALVE_OPERATION_IDLE}
 The current operation of the valve (idle, opening, closing). More...
 
float position
 The position of the valve from 0.0 (fully closed) to 1.0 (fully open). More...
 

Protected Member Functions

virtual void control (const ValveCall &call)=0
 
optional< ValveRestoreStaterestore_state_ ()
 
- Protected Member Functions inherited from esphome::EntityBase
virtual uint32_t hash_base ()
 The hash_base() function has been deprecated. More...
 
void calc_object_id_ ()
 

Protected Attributes

friend ValveCall
 
CallbackManager< void()> state_callback_ {}
 
ESPPreferenceObject rtc_
 
- Protected Attributes inherited from esphome::EntityBase
StringRef name_
 
const char * object_id_c_str_ {nullptr}
 
const char * icon_c_str_ {nullptr}
 
uint32_t object_id_hash_
 
bool has_own_name_ {false}
 
bool internal_ {false}
 
bool disabled_by_default_ {false}
 
EntityCategory entity_category_ {ENTITY_CATEGORY_NONE}
 
- Protected Attributes inherited from esphome::EntityBase_DeviceClass
const char * device_class_ {nullptr}
 Device class override. More...
 

Detailed Description

Base class for all valve devices.

Valves currently have three properties:

For users: All valve operations must be performed over the .make_call() interface. To command a valve, use .make_call() to create a call object, set all properties you wish to set, and activate the command with .perform(). For reading out the current values of the valve, use the public .position, etc. properties (these are read-only for users)

For integrations: Integrations must implement two methods: control() and get_traits(). Control will be called with the arguments supplied by the user and should be used to control all values of the valve. Also implement get_traits() to return what operations the valve supports.

Definition at line 105 of file valve.h.

Constructor & Destructor Documentation

◆ Valve()

esphome::valve::Valve::Valve ( )
explicit

Definition at line 34 of file valve.cpp.

Member Function Documentation

◆ add_on_state_callback()

void esphome::valve::Valve::add_on_state_callback ( std::function< void()> &&  f)

Definition at line 129 of file valve.cpp.

◆ control()

virtual void esphome::valve::Valve::control ( const ValveCall call)
protectedpure virtual

◆ get_traits()

virtual ValveTraits esphome::valve::Valve::get_traits ( )
pure virtual

◆ is_fully_closed()

bool esphome::valve::Valve::is_fully_closed ( ) const

Helper method to check if the valve is fully closed. Equivalent to comparing .position against 0.0.

Definition at line 166 of file valve.cpp.

◆ is_fully_open()

bool esphome::valve::Valve::is_fully_open ( ) const

Helper method to check if the valve is fully open. Equivalent to comparing .position against 1.0.

Definition at line 165 of file valve.cpp.

◆ make_call()

ValveCall esphome::valve::Valve::make_call ( )

Construct a new valve call used to control the valve.

Definition at line 127 of file valve.cpp.

◆ publish_state()

void esphome::valve::Valve::publish_state ( bool  save = true)

Publish the current state of the valve.

First set the .position, etc. values and then call this method to publish the state of the valve.

Parameters
saveWhether to save the updated values in RTC area.

Definition at line 130 of file valve.cpp.

◆ restore_state_()

optional< ValveRestoreState > esphome::valve::Valve::restore_state_ ( )
protected

Definition at line 157 of file valve.cpp.

Field Documentation

◆ current_operation

ValveOperation esphome::valve::Valve::current_operation {VALVE_OPERATION_IDLE}

The current operation of the valve (idle, opening, closing).

Definition at line 110 of file valve.h.

◆ position

float esphome::valve::Valve::position

The position of the valve from 0.0 (fully closed) to 1.0 (fully open).

For binary valves this is always equals to 0.0 or 1.0 (see also VALVE_OPEN and VALVE_CLOSED constants).

Definition at line 116 of file valve.h.

◆ rtc_

ESPPreferenceObject esphome::valve::Valve::rtc_
protected

Definition at line 148 of file valve.h.

◆ state_callback_

CallbackManager<void()> esphome::valve::Valve::state_callback_ {}
protected

Definition at line 146 of file valve.h.

◆ ValveCall

friend esphome::valve::Valve::ValveCall
protected

Definition at line 140 of file valve.h.


The documentation for this class was generated from the following files: