ESPHome
2023.3.2
|
Base class for all switches. More...
#include <switch.h>
Public Member Functions | |
Switch () | |
Switch (const std::string &name) | |
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 |
std::string | get_device_class () |
Get the device class for this switch. More... | |
void | set_device_class (const std::string &device_class) |
Set the Home Assistant device class for this switch. More... | |
void | set_restore_mode (SwitchRestoreMode restore_mode) |
![]() | |
EntityBase () | |
EntityBase (std::string name) | |
const std::string & | get_name () const |
void | set_name (const std::string &name) |
const std::string & | get_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) |
const std::string & | get_icon () const |
void | set_icon (const std::string &name) |
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... | |
![]() | |
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_ |
optional< std::string > | device_class_ |
![]() | |
std::string | name_ |
std::string | object_id_ |
std::string | icon_ |
uint32_t | object_id_hash_ |
bool | internal_ {false} |
bool | disabled_by_default_ {false} |
EntityCategory | entity_category_ {ENTITY_CATEGORY_NONE} |
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 10 of file switch.cpp.
|
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 61 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 59 of file switch.cpp.
std::string esphome::switch_::Switch::get_device_class | ( | ) |
Get the device class for this switch.
Definition at line 67 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 24 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 34 of file switch.cpp.
bool esphome::switch_::Switch::is_inverted | ( | ) | const |
Definition at line 65 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 48 of file switch.cpp.
void esphome::switch_::Switch::set_device_class | ( | const std::string & | device_class | ) |
Set the Home Assistant device class for this switch.
Definition at line 72 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 64 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 20 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 16 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 12 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::modbus_controller::ModbusSwitch, esphome::template_::TemplateSwitch, esphome::gpio::GPIOSwitch, esphome::ble_client::BLEClientSwitch, esphome::uart::UARTSwitch, esphome::output::OutputSwitch, esphome::tuya::TuyaSwitch, esphome::demo::DemoSwitch, esphome::pipsolar::PipsolarSwitch, esphome::tm1638::TM1638SwitchLed, esphome::copy::CopySwitch, esphome::safe_mode::SafeModeSwitch, esphome::factory_reset::FactoryResetSwitch, esphome::restart::RestartSwitch, and esphome::shutdown::ShutdownSwitch.
|
protected |
|
protected |
SwitchRestoreMode esphome::switch_::Switch::restore_mode {SWITCH_RESTORE_DEFAULT_OFF} |
|
protected |
bool esphome::switch_::Switch::state |
|
protected |