ESPHome  2021.9.1
Public Member Functions | Data Fields | Protected Member Functions | Protected Attributes
esphome::switch_::Switch Class Referenceabstract

Base class for all switches. More...

#include <switch.h>

Inheritance diagram for esphome::switch_::Switch:
esphome::Nameable esphome::ble_client::BLEClientSwitch esphome::demo::DemoSwitch esphome::gpio::GPIOSwitch esphome::nextion::NextionSwitch esphome::output::OutputSwitch esphome::pipsolar::PipsolarSwitch esphome::restart::RestartSwitch esphome::shutdown::ShutdownSwitch esphome::template_::TemplateSwitch esphome::tuya::TuyaSwitch esphome::uart::UARTSwitch

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 set_icon (const std::string &icon)
 Set the icon for this switch. "" for no icon. More...
 
std::string get_icon ()
 Get the icon for this switch. Using icon() if not manually set. 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
 
- Public Member Functions inherited from esphome::Nameable
 Nameable ()
 
 Nameable (std::string name)
 
const std::string & get_name () const
 
void set_name (const std::string &name)
 
const std::string & get_object_id ()
 Get the sanitized name of this nameable as an ID. Caching it internally. More...
 
uint32_t get_object_id_hash ()
 
bool is_internal () const
 
void set_internal (bool internal)
 
bool is_disabled_by_default () const
 Check if this object is declared to be disabled by default. More...
 
void set_disabled_by_default (bool disabled_by_default)
 

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...
 
virtual std::string icon ()
 Override this to set the Home Assistant icon for this switch. More...
 
uint32_t hash_base () override
 
- Protected Member Functions inherited from esphome::Nameable
void calc_object_id_ ()
 

Protected Attributes

optional< std::string > icon_ {}
 The icon shown here. Not set means use default from switch. Empty means no icon. More...
 
CallbackManager< void(bool)> state_callback_ {}
 
bool inverted_ {false}
 
Deduplicator< bool > publish_dedup_
 
ESPPreferenceObject rtc_
 
- Protected Attributes inherited from esphome::Nameable
std::string name_
 
std::string object_id_
 
uint32_t object_id_hash_
 
bool internal_ {false}
 
bool disabled_by_default_ {false}
 

Detailed Description

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.

Definition at line 29 of file switch.h.

Constructor & Destructor Documentation

◆ Switch() [1/2]

esphome::switch_::Switch::Switch ( )
explicit

Definition at line 11 of file switch.cpp.

◆ Switch() [2/2]

esphome::switch_::Switch::Switch ( const std::string &  name)
explicit

Definition at line 10 of file switch.cpp.

Member Function Documentation

◆ add_on_state_callback()

void esphome::switch_::Switch::add_on_state_callback ( std::function< void(bool)> &&  callback)

Set callback for state changes.

Parameters
callbackThe void(bool) callback.

Definition at line 50 of file switch.cpp.

◆ assumed_state()

bool esphome::switch_::Switch::assumed_state ( )
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 48 of file switch.cpp.

◆ get_icon()

std::string esphome::switch_::Switch::get_icon ( )

Get the icon for this switch. Using icon() if not manually set.

Definition at line 13 of file switch.cpp.

◆ get_initial_state()

optional< bool > esphome::switch_::Switch::get_initial_state ( )

Definition at line 32 of file switch.cpp.

◆ hash_base()

uint32_t esphome::switch_::Switch::hash_base ( )
overrideprotectedvirtual

Implements esphome::Nameable.

Definition at line 54 of file switch.cpp.

◆ icon()

std::string esphome::switch_::Switch::icon ( )
protectedvirtual

Override this to set the Home Assistant icon for this switch.

Return "" to disable this feature.

Returns
The icon of this switch, for example "mdi:fan".

Definition at line 9 of file switch.cpp.

◆ is_inverted()

bool esphome::switch_::Switch::is_inverted ( ) const

Definition at line 55 of file switch.cpp.

◆ publish_state()

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.

Parameters
stateThe new state.

Definition at line 39 of file switch.cpp.

◆ set_icon()

void esphome::switch_::Switch::set_icon ( const std::string &  icon)

Set the icon for this switch. "" for no icon.

Definition at line 19 of file switch.cpp.

◆ set_inverted()

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.

Parameters
invertedWhether to invert this switch.

Definition at line 53 of file switch.cpp.

◆ toggle()

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 28 of file switch.cpp.

◆ turn_off()

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 24 of file switch.cpp.

◆ turn_on()

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 20 of file switch.cpp.

◆ write_state()

virtual void esphome::switch_::Switch::write_state ( bool  state)
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.

Parameters
stateThe state to write. Inversion is already applied if user specified it.

Implemented in esphome::gpio::GPIOSwitch, esphome::nextion::NextionSwitch, esphome::template_::TemplateSwitch, esphome::ble_client::BLEClientSwitch, esphome::uart::UARTSwitch, esphome::output::OutputSwitch, esphome::tuya::TuyaSwitch, esphome::demo::DemoSwitch, esphome::pipsolar::PipsolarSwitch, esphome::restart::RestartSwitch, and esphome::shutdown::ShutdownSwitch.

Field Documentation

◆ icon_

optional<std::string> esphome::switch_::Switch::icon_ {}
protected

The icon shown here. Not set means use default from switch. Empty means no icon.

Definition at line 117 of file switch.h.

◆ inverted_

bool esphome::switch_::Switch::inverted_ {false}
protected

Definition at line 120 of file switch.h.

◆ publish_dedup_

Deduplicator<bool> esphome::switch_::Switch::publish_dedup_
protected

Definition at line 121 of file switch.h.

◆ rtc_

ESPPreferenceObject esphome::switch_::Switch::rtc_
protected

Definition at line 122 of file switch.h.

◆ state

bool esphome::switch_::Switch::state

The current reported state of the binary sensor.

Definition at line 44 of file switch.h.

◆ state_callback_

CallbackManager<void(bool)> esphome::switch_::Switch::state_callback_ {}
protected

Definition at line 119 of file switch.h.


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