ESPHome  2024.3.1
Public Member Functions | Data Fields | Protected Attributes
esphome::binary_sensor::BinarySensor Class Reference

Base class for all binary_sensor-type classes. More...

#include <binary_sensor.h>

Inheritance diagram for esphome::binary_sensor::BinarySensor:
esphome::EntityBase esphome::EntityBase_DeviceClass esphome::analog_threshold::AnalogThresholdBinarySensor esphome::binary_sensor::BinarySensorInitiallyOff esphome::cap1188::CAP1188Channel esphome::copy::CopyBinarySensor esphome::cst816::CST816Button esphome::demo::DemoBinarySensor esphome::esp32_touch::ESP32TouchBinarySensor esphome::gpio::GPIOBinarySensor esphome::gt911::GT911Button esphome::homeassistant::HomeassistantBinarySensor esphome::ld2420::LD2420BinarySensor esphome::matrix_keypad::MatrixKeypadBinarySensor esphome::modbus_controller::ModbusBinarySensor esphome::mpr121::MPR121Channel esphome::nfc::NfcTagBinarySensor esphome::pn532::PN532BinarySensor esphome::qwiic_pir::QwiicPIRComponent esphome::rc522::RC522BinarySensor esphome::status::StatusBinarySensor esphome::sx1509::SX1509BinarySensor esphome::template_::TemplateBinarySensor esphome::tm1637::TM1637Key esphome::tm1638::TM1638Key esphome::touchscreen::TouchscreenBinarySensor esphome::tt21100::TT21100Button esphome::ttp229_bsf::TTP229BSFChannel esphome::ttp229_lsf::TTP229Channel esphome::tuya::TuyaBinarySensor esphome::vbus::VBusCustomSubBSensor

Public Member Functions

 BinarySensor ()
 
void add_on_state_callback (std::function< void(bool)> &&callback)
 Add a callback to be notified of state changes. More...
 
void publish_state (bool state)
 Publish a new state to the front-end. More...
 
void publish_initial_state (bool state)
 Publish the initial state, this will not make the callback manager send callbacks and is meant only for the initial state on boot. More...
 
void add_filter (Filter *filter)
 
void add_filters (const std::vector< Filter *> &filters)
 
void set_publish_initial_state (bool publish_initial_state)
 
void send_state_internal (bool state, bool is_initial)
 
virtual bool has_state () const
 Return whether this binary sensor has outputted a state. More...
 
virtual bool is_status_binary_sensor () const
 
- Public Member Functions inherited from esphome::EntityBase
const StringRefget_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...
 

Protected Attributes

CallbackManager< void(bool)> state_callback_ {}
 
Filterfilter_list_ {nullptr}
 
bool has_state_ {false}
 
bool publish_initial_state_ {false}
 
Deduplicator< bool > publish_dedup_
 
- 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...
 

Additional Inherited Members

- Protected Member Functions inherited from esphome::EntityBase
virtual uint32_t hash_base ()
 The hash_base() function has been deprecated. More...
 
void calc_object_id_ ()
 

Detailed Description

Base class for all binary_sensor-type classes.

This class includes a callback that components such as MQTT can subscribe to for state changes. The sub classes should notify the front-end of new states via the publish_state() method which handles inverted inputs for you.

Definition at line 37 of file binary_sensor.h.

Constructor & Destructor Documentation

◆ BinarySensor()

esphome::binary_sensor::BinarySensor::BinarySensor ( )
explicit

Definition at line 45 of file binary_sensor.cpp.

Member Function Documentation

◆ add_filter()

void esphome::binary_sensor::BinarySensor::add_filter ( Filter filter)

Definition at line 47 of file binary_sensor.cpp.

◆ add_filters()

void esphome::binary_sensor::BinarySensor::add_filters ( const std::vector< Filter *> &  filters)

Definition at line 58 of file binary_sensor.cpp.

◆ add_on_state_callback()

void esphome::binary_sensor::BinarySensor::add_on_state_callback ( std::function< void(bool)> &&  callback)

Add a callback to be notified of state changes.

Parameters
callbackThe void(bool) callback.

Definition at line 10 of file binary_sensor.cpp.

◆ has_state()

bool esphome::binary_sensor::BinarySensor::has_state ( ) const
virtual

Return whether this binary sensor has outputted a state.

Reimplemented in esphome::binary_sensor::BinarySensorInitiallyOff.

Definition at line 63 of file binary_sensor.cpp.

◆ is_status_binary_sensor()

bool esphome::binary_sensor::BinarySensor::is_status_binary_sensor ( ) const
virtual

Reimplemented in esphome::status::StatusBinarySensor.

Definition at line 64 of file binary_sensor.cpp.

◆ publish_initial_state()

void esphome::binary_sensor::BinarySensor::publish_initial_state ( bool  state)

Publish the initial state, this will not make the callback manager send callbacks and is meant only for the initial state on boot.

Parameters
stateThe new state.

Definition at line 23 of file binary_sensor.cpp.

◆ publish_state()

void esphome::binary_sensor::BinarySensor::publish_state ( bool  state)

Publish a new state to the front-end.

Parameters
stateThe new state.

Definition at line 14 of file binary_sensor.cpp.

◆ send_state_internal()

void esphome::binary_sensor::BinarySensor::send_state_internal ( bool  state,
bool  is_initial 
)

Definition at line 32 of file binary_sensor.cpp.

◆ set_publish_initial_state()

void esphome::binary_sensor::BinarySensor::set_publish_initial_state ( bool  publish_initial_state)
inline

Definition at line 66 of file binary_sensor.h.

Field Documentation

◆ filter_list_

Filter* esphome::binary_sensor::BinarySensor::filter_list_ {nullptr}
protected

Definition at line 79 of file binary_sensor.h.

◆ has_state_

bool esphome::binary_sensor::BinarySensor::has_state_ {false}
protected

Definition at line 80 of file binary_sensor.h.

◆ publish_dedup_

Deduplicator<bool> esphome::binary_sensor::BinarySensor::publish_dedup_
protected

Definition at line 82 of file binary_sensor.h.

◆ publish_initial_state_

bool esphome::binary_sensor::BinarySensor::publish_initial_state_ {false}
protected

Definition at line 81 of file binary_sensor.h.

◆ state

bool esphome::binary_sensor::BinarySensor::state

The current reported state of the binary sensor.

Definition at line 61 of file binary_sensor.h.

◆ state_callback_

CallbackManager<void(bool)> esphome::binary_sensor::BinarySensor::state_callback_ {}
protected

Definition at line 78 of file binary_sensor.h.


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