ESPHome
2024.11.0
|
Base class for all switches. More...
#include <switch.h>
Public Member Functions | |
Switch () | |
void | publish_state (bool state) |
Publish a state to the front-end from the back-end. More... | |
void | turn_on () |
Turn this switch on. More... | |
void | turn_off () |
Turn this switch off. More... | |
void | toggle () |
Toggle this switch. More... | |
void | set_inverted (bool inverted) |
Set whether the state should be treated as inverted. More... | |
void | add_on_state_callback (std::function< void(bool)> &&callback) |
Set callback for state changes. More... | |
optional< bool > | get_initial_state () |
Returns the initial state of the switch, as persisted previously, or empty if never persisted. More... | |
optional< bool > | get_initial_state_with_restore_mode () |
Returns the initial state of the switch, after applying restore mode rules. More... | |
virtual bool | assumed_state () |
Return whether this switch uses an assumed state - i.e. More... | |
bool | is_inverted () const |
void | set_restore_mode (SwitchRestoreMode restore_mode) |
Public Member Functions inherited from esphome::EntityBase | |
const StringRef & | get_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 | |
bool | state |
The current reported state of the binary sensor. More... | |
SwitchRestoreMode | restore_mode {SWITCH_RESTORE_DEFAULT_OFF} |
Indicates whether or not state is to be retrieved from flash and how. More... | |
Protected Member Functions | |
virtual void | write_state (bool state)=0 |
Write the given state to hardware. More... | |
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 | |
CallbackManager< void(bool)> | state_callback_ {} |
bool | inverted_ {false} |
Deduplicator< bool > | publish_dedup_ |
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... | |
Base class for all switches.
A switch is basically just a combination of a binary sensor (for reporting switch values) and a write_state method that writes a state to the hardware.
|
explicit |
Definition at line 9 of file switch.cpp.
void esphome::switch_::Switch::add_on_state_callback | ( | std::function< void(bool)> && | callback | ) |
Set callback for state changes.
callback | The void(bool) callback. |
Definition at line 60 of file switch.cpp.
|
virtual |
Return whether this switch uses an assumed state - i.e.
if both the ON/OFF actions should be displayed in Home Assistant because the real state is unknown.
Defaults to false.
Reimplemented in esphome::template_::TemplateSwitch.
Definition at line 58 of file switch.cpp.
optional< bool > esphome::switch_::Switch::get_initial_state | ( | ) |
Returns the initial state of the switch, as persisted previously, or empty if never persisted.
Definition at line 23 of file switch.cpp.
optional< bool > esphome::switch_::Switch::get_initial_state_with_restore_mode | ( | ) |
Returns the initial state of the switch, after applying restore mode rules.
If restore mode is disabled, this function will return an optional with no value (.has_value() is false), leaving it up to the component to decide the state. For example, the component could read the state from hardware and determine the current state.
Definition at line 33 of file switch.cpp.
bool esphome::switch_::Switch::is_inverted | ( | ) | const |
Definition at line 64 of file switch.cpp.
void esphome::switch_::Switch::publish_state | ( | bool | state | ) |
Publish a state to the front-end from the back-end.
The input value is inverted if applicable. Then the internal value member is set and finally the callbacks are called.
state | The new state. |
Definition at line 47 of file switch.cpp.
void esphome::switch_::Switch::set_inverted | ( | bool | inverted | ) |
Set whether the state should be treated as inverted.
To the developer and user an inverted switch will act just like a non-inverted one. In particular, the only thing that's changed by this is the value passed to write_state and the state in publish_state. The .state member variable and turn_on/turn_off/toggle remain unaffected.
inverted | Whether to invert this switch. |
Definition at line 63 of file switch.cpp.
|
inline |
void esphome::switch_::Switch::toggle | ( | ) |
Toggle this switch.
This is called by the front-end.
For implementing switches, please override write_state.
Definition at line 19 of file switch.cpp.
void esphome::switch_::Switch::turn_off | ( | ) |
Turn this switch off.
This is called by the front-end.
For implementing switches, please override write_state.
Definition at line 15 of file switch.cpp.
void esphome::switch_::Switch::turn_on | ( | ) |
Turn this switch on.
This is called by the front-end.
For implementing switches, please override write_state.
Definition at line 11 of file switch.cpp.
|
protectedpure virtual |
Write the given state to hardware.
You should implement this abstract method if you want to create your own switch.
In the implementation of this method, you should also call publish_state to acknowledge that the state was written to the hardware.
state | The state to write. Inversion is already applied if user specified it. |
Implemented in esphome::sprinkler::SprinklerControllerSwitch, esphome::nextion::NextionSwitch, esphome::dfrobot_sen0395::Sen0395StartAfterBootSwitch, esphome::modbus_controller::ModbusSwitch, esphome::template_::TemplateSwitch, esphome::gpio::GPIOSwitch, esphome::uart::UARTSwitch, esphome::ble_client::BLEClientSwitch, esphome::dfrobot_sen0395::Sen0395UartPresenceSwitch, esphome::micronova::MicroNovaSwitch, esphome::lvgl::LVGLSwitch, esphome::dfrobot_sen0395::Sen0395LedSwitch, esphome::output::OutputSwitch, esphome::tuya::TuyaSwitch, esphome::demo::DemoSwitch, esphome::pipsolar::PipsolarSwitch, esphome::tm1638::TM1638SwitchLed, esphome::copy::CopySwitch, esphome::homeassistant::HomeassistantSwitch, esphome::safe_mode::SafeModeSwitch, esphome::dfrobot_sen0395::Sen0395PowerSwitch, esphome::factory_reset::FactoryResetSwitch, esphome::haier::BeeperSwitch, esphome::haier::DisplaySwitch, esphome::haier::HealthModeSwitch, esphome::haier::QuietModeSwitch, esphome::ld2410::BluetoothSwitch, esphome::ld2410::EngineeringModeSwitch, esphome::restart::RestartSwitch, esphome::seeed_mr24hpc1::UnderlyOpenFunctionSwitch, esphome::shutdown::ShutdownSwitch, esphome::opentherm::OpenthermSwitch, and esphome::at581x::RFSwitch.
|
protected |
SwitchRestoreMode esphome::switch_::Switch::restore_mode {SWITCH_RESTORE_DEFAULT_OFF} |
|
protected |
bool esphome::switch_::Switch::state |
|
protected |