ESPHome
2022.5.1
|
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 () |
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... | |
![]() | |
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... | |
Protected Member Functions | |
virtual void | write_state (bool state)=0 |
Write the given state to hardware. More... | |
uint32_t | hash_base () override |
![]() | |
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 42 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 40 of file switch.cpp.
std::string esphome::switch_::Switch::get_device_class | ( | ) |
Get the device class for this switch.
Definition at line 49 of file switch.cpp.
optional< bool > esphome::switch_::Switch::get_initial_state | ( | ) |
Definition at line 24 of file switch.cpp.
|
overrideprotectedvirtual |
Implements esphome::EntityBase.
Definition at line 46 of file switch.cpp.
bool esphome::switch_::Switch::is_inverted | ( | ) | const |
Definition at line 47 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 31 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 54 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 45 of file switch.cpp.
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::gpio::GPIOSwitch, esphome::nextion::NextionSwitch, esphome::output::OutputSwitch, esphome::template_::TemplateSwitch, esphome::modbus_controller::ModbusSwitch, esphome::ble_client::BLEClientSwitch, esphome::uart::UARTSwitch, esphome::tuya::TuyaSwitch, esphome::demo::DemoSwitch, esphome::pipsolar::PipsolarSwitch, esphome::copy::CopySwitch, esphome::safe_mode::SafeModeSwitch, esphome::restart::RestartSwitch, and esphome::shutdown::ShutdownSwitch.
|
protected |
|
protected |
|
protected |
bool esphome::switch_::Switch::state |
|
protected |