ESPHome 2026.1.0-dev
Loading...
Searching...
No Matches
esphome::fan::Fan Class Referenceabstract

#include <fan.h>

Inheritance diagram for esphome::fan::Fan:
esphome::EntityBase esphome::bedjet::BedJetFan esphome::binary::BinaryFan esphome::copy::CopyFan esphome::demo::DemoFan esphome::hbridge::HBridgeFan esphome::speed::SpeedFan esphome::template_::TemplateFan esphome::tuya::TuyaFan

Public Member Functions

FanCall turn_on ()
 
FanCall turn_off ()
 
FanCall toggle ()
 
FanCall make_call ()
 
void add_on_state_callback (std::function< void()> &&callback)
 Register a callback that will be called each time the state changes.
 
void publish_state ()
 
virtual FanTraits get_traits ()=0
 
void set_restore_mode (FanRestoreMode restore_mode)
 Set the restore mode of this fan.
 
const char * get_preset_mode () const
 Get the current preset mode (returns pointer to string stored in traits, or nullptr if not set)
 
bool has_preset_mode () const
 Check if a preset mode is currently active.
 
- Public Member Functions inherited from esphome::EntityBase
const StringRefget_name () const
 
void set_name (const char *name)
 
bool has_own_name () const
 
ESPDEPRECATED("object_id mangles names and all object_id methods are planned for removal " "(see https://github.com/esphome/backlog/issues/76). " "Now is the time to stop using object_id. If still needed, use get_object_id_to() " "which will remain available longer. get_object_id() will be removed in 2026.7.0", "2025.12.0") std void set_object_id (const char *object_id)
 
void set_name_and_object_id (const char *name, const char *object_id)
 
uint32_t get_object_id_hash ()
 
StringRef get_object_id_to (std::span< char, OBJECT_ID_MAX_LEN > buf) const
 Get object_id with zero heap allocation For static case: returns StringRef to internal storage (buffer unused) For dynamic case: formats into buffer and returns StringRef to buffer.
 
size_t write_object_id_to (char *buf, size_t buf_size) const
 Write object_id directly to buffer, returns length written (excluding null) Useful for building compound strings without intermediate buffer.
 
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)
 
ESPDEPRECATED("Use get_icon_ref() instead for better performance (avoids string copy). Will be removed in ESPHome 2026.5.0", "2025.11.0") std void set_icon (const char *icon)
 
StringRef get_icon_ref () const
 
uint32_t get_device_id () const
 
void set_device (Device *device)
 
bool has_state () const
 
void set_has_state (bool state)
 
uint32_t get_preference_hash ()
 Get a unique hash for storing preferences/settings for this entity.
 

Data Fields

bool state {false}
 The current on/off state of the fan.
 
bool oscillating {false}
 The current oscillation state of the fan.
 
int speed {0}
 The current fan speed level.
 
FanDirection direction {FanDirection::FORWARD}
 The current direction of the fan.
 

Protected Member Functions

virtual void control (const FanCall &call)=0
 
optional< FanRestoreStaterestore_state_ ()
 
void save_state_ ()
 
void dump_traits_ (const char *tag, const char *prefix)
 
bool set_preset_mode_ (const char *preset_mode)
 Set the preset mode (finds and stores pointer from traits). Returns true if changed.
 
bool set_preset_mode_ (const std::string &preset_mode)
 Set the preset mode (finds and stores pointer from traits). Returns true if changed.
 
void clear_preset_mode_ ()
 Clear the preset mode.
 
const char * find_preset_mode_ (const char *preset_mode)
 Find and return the matching preset mode pointer from traits, or nullptr if not found.
 
const char * find_preset_mode_ (const char *preset_mode, size_t len)
 
- Protected Member Functions inherited from esphome::EntityBase
void calc_object_id_ ()
 
bool is_object_id_dynamic_ () const
 Check if the object_id is dynamic (changes with MAC suffix)
 

Protected Attributes

friend FanCall
 
LazyCallbackManager< void()> state_callback_ {}
 
ESPPreferenceObject rtc_
 
FanRestoreMode restore_mode_
 
- 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_ {}
 
Devicedevice_ {}
 
struct esphome::EntityBase::EntityFlags flags_
 

Detailed Description

Definition at line 105 of file fan.h.

Member Function Documentation

◆ add_on_state_callback()

void esphome::fan::Fan::add_on_state_callback ( std::function< void()> && callback)

Register a callback that will be called each time the state changes.

Definition at line 178 of file fan.cpp.

◆ clear_preset_mode_()

void esphome::fan::Fan::clear_preset_mode_ ( )
protected

Clear the preset mode.

Definition at line 176 of file fan.cpp.

◆ control()

◆ dump_traits_()

void esphome::fan::Fan::dump_traits_ ( const char * tag,
const char * prefix )
protected

Definition at line 265 of file fan.cpp.

◆ find_preset_mode_() [1/2]

const char * esphome::fan::Fan::find_preset_mode_ ( const char * preset_mode)
protected

Find and return the matching preset mode pointer from traits, or nullptr if not found.

Definition at line 149 of file fan.cpp.

◆ find_preset_mode_() [2/2]

const char * esphome::fan::Fan::find_preset_mode_ ( const char * preset_mode,
size_t len )
protected

Definition at line 153 of file fan.cpp.

◆ get_preset_mode()

const char * esphome::fan::Fan::get_preset_mode ( ) const
inline

Get the current preset mode (returns pointer to string stored in traits, or nullptr if not set)

Definition at line 132 of file fan.h.

◆ get_traits()

◆ has_preset_mode()

bool esphome::fan::Fan::has_preset_mode ( ) const
inline

Check if a preset mode is currently active.

Definition at line 135 of file fan.h.

◆ make_call()

FanCall esphome::fan::Fan::make_call ( )

Definition at line 147 of file fan.cpp.

◆ publish_state()

void esphome::fan::Fan::publish_state ( )

Definition at line 179 of file fan.cpp.

◆ restore_state_()

optional< FanRestoreState > esphome::fan::Fan::restore_state_ ( )
protected

Definition at line 206 of file fan.cpp.

◆ save_state_()

void esphome::fan::Fan::save_state_ ( )
protected

Definition at line 237 of file fan.cpp.

◆ set_preset_mode_() [1/2]

bool esphome::fan::Fan::set_preset_mode_ ( const char * preset_mode)
protected

Set the preset mode (finds and stores pointer from traits). Returns true if changed.

Definition at line 157 of file fan.cpp.

◆ set_preset_mode_() [2/2]

bool esphome::fan::Fan::set_preset_mode_ ( const std::string & preset_mode)
protected

Set the preset mode (finds and stores pointer from traits). Returns true if changed.

Definition at line 174 of file fan.cpp.

◆ set_restore_mode()

void esphome::fan::Fan::set_restore_mode ( FanRestoreMode restore_mode)
inline

Set the restore mode of this fan.

Definition at line 129 of file fan.h.

◆ toggle()

FanCall esphome::fan::Fan::toggle ( )

Definition at line 146 of file fan.cpp.

◆ turn_off()

FanCall esphome::fan::Fan::turn_off ( )

Definition at line 145 of file fan.cpp.

◆ turn_on()

FanCall esphome::fan::Fan::turn_on ( )

Definition at line 144 of file fan.cpp.

Field Documentation

◆ direction

FanDirection esphome::fan::Fan::direction {FanDirection::FORWARD}

The current direction of the fan.

Definition at line 114 of file fan.h.

◆ FanCall

friend esphome::fan::Fan::FanCall
protected

Definition at line 138 of file fan.h.

◆ oscillating

bool esphome::fan::Fan::oscillating {false}

The current oscillation state of the fan.

Definition at line 110 of file fan.h.

◆ restore_mode_

FanRestoreMode esphome::fan::Fan::restore_mode_
protected

Definition at line 160 of file fan.h.

◆ rtc_

ESPPreferenceObject esphome::fan::Fan::rtc_
protected

Definition at line 159 of file fan.h.

◆ speed

int esphome::fan::Fan::speed {0}

The current fan speed level.

Definition at line 112 of file fan.h.

◆ state

bool esphome::fan::Fan::state {false}

The current on/off state of the fan.

Definition at line 108 of file fan.h.

◆ state_callback_

LazyCallbackManager<void()> esphome::fan::Fan::state_callback_ {}
protected

Definition at line 158 of file fan.h.


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