ESPHome  2022.6.2
Public Member Functions | Protected Member Functions | Protected Attributes | Static Protected Attributes
esphome::bedjet::Bedjet Class Reference

#include <bedjet.h>

Inheritance diagram for esphome::bedjet::Bedjet:
esphome::climate::Climate esphome::ble_client::BLEClientNode esphome::PollingComponent esphome::EntityBase esphome::Component

Public Member Functions

void setup () override
 
void loop () override
 
void update () override
 
void gattc_event_handler (esp_gattc_cb_event_t event, esp_gatt_if_t gattc_if, esp_ble_gattc_cb_param_t *param) override
 
void dump_config () override
 
float get_setup_priority () const override
 
void set_time_id (time::RealTimeClock *time_id)
 
void send_local_time ()
 Attempts to sync the local time (via time_id) to the BedJet device. More...
 
void set_clock (uint8_t hour, uint8_t minute)
 Attempt to set the BedJet device's clock to the specified time. More...
 
void set_status_timeout (uint32_t timeout)
 
void set_heating_mode (BedjetHeatMode mode)
 Sets the default strategy to use for climate::CLIMATE_MODE_HEAT. More...
 
void upgrade_firmware ()
 Attempts to check for and apply firmware updates. More...
 
climate::ClimateTraits traits () override
 
- Public Member Functions inherited from esphome::climate::Climate
 Climate ()
 Construct a climate device with empty name (will be set later). More...
 
 Climate (const std::string &name)
 Construct a climate device with a name. More...
 
 ESPDEPRECATED ("away is deprecated, use preset instead", "v1.20") bool away
 Whether the climate device is in away mode. More...
 
void add_on_state_callback (std::function< void()> &&callback)
 Add a callback for the climate device state, each time the state of the climate device is updated (using publish_state), this callback will be called. More...
 
ClimateCall make_call ()
 Make a climate device control call, this is used to control the climate device, see the ClimateCall description for more info. More...
 
void publish_state ()
 Publish the state of the climate device, to be called from integrations. More...
 
ClimateTraits get_traits ()
 Get the traits of this climate device with all overrides applied. More...
 
void set_visual_min_temperature_override (float visual_min_temperature_override)
 
void set_visual_max_temperature_override (float visual_max_temperature_override)
 
void set_visual_temperature_step_override (float visual_temperature_step_override)
 
- Public Member Functions inherited from esphome::EntityBase
 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)
 
- Public Member Functions inherited from esphome::ble_client::BLEClientNode
void set_address (uint64_t address)
 
BLEClientparent ()
 
void set_ble_client_parent (BLEClient *parent)
 
- Public Member Functions inherited from esphome::PollingComponent
 PollingComponent ()
 
 PollingComponent (uint32_t update_interval)
 Initialize this polling component with the given update interval in ms. More...
 
virtual void set_update_interval (uint32_t update_interval)
 Manually set the update interval in ms for this polling object. More...
 
void call_setup () override
 
virtual uint32_t get_update_interval () const
 Get the update interval in ms of this sensor. More...
 
- Public Member Functions inherited from esphome::Component
float get_actual_setup_priority () const
 
void set_setup_priority (float priority)
 
virtual float get_loop_priority () const
 priority of loop(). More...
 
void call ()
 
virtual void on_shutdown ()
 
virtual void on_safe_shutdown ()
 
uint32_t get_component_state () const
 
virtual void mark_failed ()
 Mark this component as failed. More...
 
bool is_failed ()
 
virtual bool can_proceed ()
 
bool status_has_warning ()
 
bool status_has_error ()
 
void status_set_warning ()
 
void status_set_error ()
 
void status_clear_warning ()
 
void status_clear_error ()
 
void status_momentary_warning (const std::string &name, uint32_t length=5000)
 
void status_momentary_error (const std::string &name, uint32_t length=5000)
 
bool has_overridden_loop () const
 
void set_component_source (const char *source)
 Set where this component was loaded from for some debug messages. More...
 
const char * get_component_source () const
 Get the integration where this component was declared as a string. More...
 

Protected Member Functions

void control (const climate::ClimateCall &call) override
 
void setup_time_ ()
 Initializes time sync callbacks to support syncing current time to the BedJet. More...
 
uint8_t set_notify_ (bool enable)
 Configures the local ESP BLE client to register (true) or unregister (false) for status notifications. More...
 
uint8_t write_bedjet_packet_ (BedjetPacket *pkt)
 Writes one BedjetPacket to the BLE client on the BEDJET_COMMAND_UUID. More...
 
void reset_state_ ()
 Resets states to defaults. More...
 
bool update_status_ ()
 Attempts to update the climate device from the last received BedjetStatusPacket. More...
 
bool is_valid_ ()
 
uint8_t write_notify_config_descriptor_ (bool enable)
 Reimplementation of BLEClient.gattc_event_handler() for ESP_GATTC_REG_FOR_NOTIFY_EVT. More...
 
- Protected Member Functions inherited from esphome::climate::Climate
bool set_fan_mode_ (ClimateFanMode mode)
 Set fan mode. Reset custom fan mode. Return true if fan mode has been changed. More...
 
bool set_custom_fan_mode_ (const std::string &mode)
 Set custom fan mode. Reset primary fan mode. Return true if fan mode has been changed. More...
 
bool set_preset_ (ClimatePreset preset)
 Set preset. Reset custom preset. Return true if preset has been changed. More...
 
bool set_custom_preset_ (const std::string &preset)
 Set custom preset. Reset primary preset. Return true if preset has been changed. More...
 
optional< ClimateDeviceRestoreStaterestore_state_ ()
 Restore the state of the climate device, call this from your setup() method. More...
 
void save_state_ ()
 Internal method to save the state of the climate device to recover memory. More...
 
void dump_traits_ (const char *tag)
 
- 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 Member Functions inherited from esphome::Component
virtual void call_loop ()
 
virtual void call_dump_config ()
 
void set_interval (const std::string &name, uint32_t interval, std::function< void()> &&f)
 Set an interval function with a unique name. More...
 
void set_interval (uint32_t interval, std::function< void()> &&f)
 
bool cancel_interval (const std::string &name)
 Cancel an interval function. More...
 
void set_retry (const std::string &name, uint32_t initial_wait_time, uint8_t max_attempts, std::function< RetryResult()> &&f, float backoff_increase_factor=1.0f)
 Set an retry function with a unique name. More...
 
void set_retry (uint32_t initial_wait_time, uint8_t max_attempts, std::function< RetryResult()> &&f, float backoff_increase_factor=1.0f)
 
bool cancel_retry (const std::string &name)
 Cancel a retry function. More...
 
void set_timeout (const std::string &name, uint32_t timeout, std::function< void()> &&f)
 Set a timeout function with a unique name. More...
 
void set_timeout (uint32_t timeout, std::function< void()> &&f)
 
bool cancel_timeout (const std::string &name)
 Cancel a timeout function. More...
 
void defer (const std::string &name, std::function< void()> &&f)
 Defer a callback to the next loop() call. More...
 
void defer (std::function< void()> &&f)
 Defer a callback to the next loop() call. More...
 
bool cancel_defer (const std::string &name)
 Cancel a defer callback using the specified name, name must not be empty. More...
 

Protected Attributes

optional< time::RealTimeClock * > time_id_ {}
 
uint32_t timeout_ {DEFAULT_STATUS_TIMEOUT}
 
BedjetHeatMode heating_mode_ = HEAT_MODE_HEAT
 
uint32_t last_notify_ = 0
 
bool force_refresh_ = false
 
std::unique_ptr< BedjetCodeccodec_
 
uint16_t char_handle_cmd_
 
uint16_t char_handle_name_
 
uint16_t char_handle_status_
 
uint16_t config_descr_status_
 
- Protected Attributes inherited from esphome::climate::Climate
friend ClimateCall
 
CallbackManager< void()> state_callback_ {}
 
ESPPreferenceObject rtc_
 
optional< float > visual_min_temperature_override_ {}
 
optional< float > visual_max_temperature_override_ {}
 
optional< float > visual_temperature_step_override_ {}
 
- Protected Attributes inherited from esphome::EntityBase
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}
 
- Protected Attributes inherited from esphome::ble_client::BLEClientNode
BLEClientparent_
 
uint64_t address_
 
- Protected Attributes inherited from esphome::PollingComponent
uint32_t update_interval_
 
- Protected Attributes inherited from esphome::Component
uint32_t component_state_ {0x0000}
 State of this component. More...
 
float setup_priority_override_ {NAN}
 
const char * component_source_ = nullptr
 

Static Protected Attributes

static const uint32_t MIN_NOTIFY_THROTTLE = 5000
 
static const uint32_t NOTIFY_WARN_THRESHOLD = 300000
 
static const uint32_t DEFAULT_STATUS_TIMEOUT = 900000
 

Additional Inherited Members

- Data Fields inherited from esphome::climate::Climate
ClimateMode mode {CLIMATE_MODE_OFF}
 The active mode of the climate device. More...
 
ClimateAction action {CLIMATE_ACTION_OFF}
 The active state of the climate device. More...
 
float current_temperature {NAN}
 The current temperature of the climate device, as reported from the integration. More...
 
union {
   float   target_temperature
 The target temperature of the climate device. More...
 
   struct {
      float   target_temperature_low
 The minimum target temperature of the climate device, for climate devices with split target temperature. More...
 
      float   target_temperature_high
 The maximum target temperature of the climate device, for climate devices with split target temperature. More...
 
   } 
 
}; 
 
optional< ClimateFanModefan_mode
 The active fan mode of the climate device. More...
 
ClimateSwingMode swing_mode
 The active swing mode of the climate device. More...
 
optional< std::string > custom_fan_mode
 The active custom fan mode of the climate device. More...
 
optional< ClimatePresetpreset
 The active preset of the climate device. More...
 
optional< std::string > custom_preset
 The active custom preset mode of the climate device. More...
 
- Data Fields inherited from esphome::ble_client::BLEClientNode
espbt::ESPBTClientclient
 
espbt::ClientState node_state
 

Detailed Description

Definition at line 29 of file bedjet.h.

Member Function Documentation

◆ control()

void esphome::bedjet::Bedjet::control ( const climate::ClimateCall call)
overrideprotectedvirtual

Implements esphome::climate::Climate.

Definition at line 113 of file bedjet.cpp.

◆ dump_config()

void esphome::bedjet::Bedjet::dump_config ( )
overridevirtual

Reimplemented from esphome::Component.

Definition at line 56 of file bedjet.cpp.

◆ gattc_event_handler()

void esphome::bedjet::Bedjet::gattc_event_handler ( esp_gattc_cb_event_t  event,
esp_gatt_if_t  gattc_if,
esp_ble_gattc_cb_param_t *  param 
)
overridevirtual

Implements esphome::ble_client::BLEClientNode.

Definition at line 257 of file bedjet.cpp.

◆ get_setup_priority()

float esphome::bedjet::Bedjet::get_setup_priority ( ) const
inlineoverridevirtual

Reimplemented from esphome::Component.

Definition at line 37 of file bedjet.h.

◆ is_valid_()

bool esphome::bedjet::Bedjet::is_valid_ ( )
inlineprotected

Definition at line 112 of file bedjet.h.

◆ loop()

void esphome::bedjet::Bedjet::loop ( )
overridevirtual

Reimplemented from esphome::ble_client::BLEClientNode.

Definition at line 111 of file bedjet.cpp.

◆ reset_state_()

void esphome::bedjet::Bedjet::reset_state_ ( )
protected

Resets states to defaults.

Definition at line 101 of file bedjet.cpp.

◆ send_local_time()

void esphome::bedjet::Bedjet::send_local_time ( )

Attempts to sync the local time (via time_id) to the BedJet device.

Definition at line 466 of file bedjet.cpp.

◆ set_clock()

void esphome::bedjet::Bedjet::set_clock ( uint8_t  hour,
uint8_t  minute 
)

Attempt to set the BedJet device's clock to the specified time.

Definition at line 492 of file bedjet.cpp.

◆ set_heating_mode()

void esphome::bedjet::Bedjet::set_heating_mode ( BedjetHeatMode  mode)
inline

Sets the default strategy to use for climate::CLIMATE_MODE_HEAT.

Definition at line 46 of file bedjet.h.

◆ set_notify_()

uint8_t esphome::bedjet::Bedjet::set_notify_ ( bool  enable)
protected

Configures the local ESP BLE client to register (true) or unregister (false) for status notifications.

Definition at line 524 of file bedjet.cpp.

◆ set_status_timeout()

void esphome::bedjet::Bedjet::set_status_timeout ( uint32_t  timeout)
inline

Definition at line 44 of file bedjet.h.

◆ set_time_id()

void esphome::bedjet::Bedjet::set_time_id ( time::RealTimeClock time_id)
inline

Definition at line 40 of file bedjet.h.

◆ setup()

void esphome::bedjet::Bedjet::setup ( )
overridevirtual

Reimplemented from esphome::Component.

Definition at line 82 of file bedjet.cpp.

◆ setup_time_()

void esphome::bedjet::Bedjet::setup_time_ ( )
protected

Initializes time sync callbacks to support syncing current time to the BedJet.

Definition at line 480 of file bedjet.cpp.

◆ traits()

climate::ClimateTraits esphome::bedjet::Bedjet::traits ( )
inlineoverridevirtual

Implements esphome::climate::Climate.

Definition at line 51 of file bedjet.h.

◆ update()

void esphome::bedjet::Bedjet::update ( )
overridevirtual

Implements esphome::PollingComponent.

Definition at line 633 of file bedjet.cpp.

◆ update_status_()

bool esphome::bedjet::Bedjet::update_status_ ( )
protected

Attempts to update the climate device from the last received BedjetStatusPacket.

Returns
true if the status has been applied; false if there is nothing to apply.

Definition at line 547 of file bedjet.cpp.

◆ upgrade_firmware()

void esphome::bedjet::Bedjet::upgrade_firmware ( )

Attempts to check for and apply firmware updates.

Definition at line 47 of file bedjet.cpp.

◆ write_bedjet_packet_()

uint8_t esphome::bedjet::Bedjet::write_bedjet_packet_ ( BedjetPacket pkt)
protected

Writes one BedjetPacket to the BLE client on the BEDJET_COMMAND_UUID.

Definition at line 508 of file bedjet.cpp.

◆ write_notify_config_descriptor_()

uint8_t esphome::bedjet::Bedjet::write_notify_config_descriptor_ ( bool  enable)
protected

Reimplementation of BLEClient.gattc_event_handler() for ESP_GATTC_REG_FOR_NOTIFY_EVT.

This is a copy of ble_client's automatic handling of ESP_GATTC_REG_FOR_NOTIFY_EVT, in order to undo the same on unregister. It also allows us to maintain the config descriptor separately, since the parent BLEClient is going to purge all descriptors once we set our connection status to Established.

Definition at line 442 of file bedjet.cpp.

Field Documentation

◆ char_handle_cmd_

uint16_t esphome::bedjet::Bedjet::char_handle_cmd_
protected

Definition at line 122 of file bedjet.h.

◆ char_handle_name_

uint16_t esphome::bedjet::Bedjet::char_handle_name_
protected

Definition at line 123 of file bedjet.h.

◆ char_handle_status_

uint16_t esphome::bedjet::Bedjet::char_handle_status_
protected

Definition at line 124 of file bedjet.h.

◆ codec_

std::unique_ptr<BedjetCodec> esphome::bedjet::Bedjet::codec_
protected

Definition at line 121 of file bedjet.h.

◆ config_descr_status_

uint16_t esphome::bedjet::Bedjet::config_descr_status_
protected

Definition at line 125 of file bedjet.h.

◆ DEFAULT_STATUS_TIMEOUT

const uint32_t esphome::bedjet::Bedjet::DEFAULT_STATUS_TIMEOUT = 900000
staticprotected

Definition at line 105 of file bedjet.h.

◆ force_refresh_

bool esphome::bedjet::Bedjet::force_refresh_ = false
protected

Definition at line 119 of file bedjet.h.

◆ heating_mode_

BedjetHeatMode esphome::bedjet::Bedjet::heating_mode_ = HEAT_MODE_HEAT
protected

Definition at line 101 of file bedjet.h.

◆ last_notify_

uint32_t esphome::bedjet::Bedjet::last_notify_ = 0
protected

Definition at line 118 of file bedjet.h.

◆ MIN_NOTIFY_THROTTLE

const uint32_t esphome::bedjet::Bedjet::MIN_NOTIFY_THROTTLE = 5000
staticprotected

Definition at line 103 of file bedjet.h.

◆ NOTIFY_WARN_THRESHOLD

const uint32_t esphome::bedjet::Bedjet::NOTIFY_WARN_THRESHOLD = 300000
staticprotected

Definition at line 104 of file bedjet.h.

◆ time_id_

optional<time::RealTimeClock *> esphome::bedjet::Bedjet::time_id_ {}
protected

Definition at line 97 of file bedjet.h.

◆ timeout_

uint32_t esphome::bedjet::Bedjet::timeout_ {DEFAULT_STATUS_TIMEOUT}
protected

Definition at line 100 of file bedjet.h.


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