ESPHome
2024.10.3
|
Hub component connecting to the BedJet device over Bluetooth. More...
#include <bedjet_hub.h>
Public Member Functions | |
void | upgrade_firmware () |
Attempts to check for and apply firmware updates. More... | |
bool | button_off () |
Press the OFF button. More... | |
bool | button_heat () |
Press the HEAT button. More... | |
bool | button_ext_heat () |
Press the EXT HT button. More... | |
bool | button_turbo () |
Press the TURBO button. More... | |
bool | button_cool () |
Press the COOL button. More... | |
bool | button_dry () |
Press the DRY button. More... | |
bool | button_memory1 () |
Press the M1 (memory recall) button. More... | |
bool | button_memory2 () |
Press the M2 (memory recall) button. More... | |
bool | button_memory3 () |
Press the M3 (memory recall) button. More... | |
bool | send_button (BedjetButton button) |
Send the button . More... | |
bool | set_target_temp (float temp_c) |
Set the target temperature to temp_c in °C. More... | |
bool | set_fan_index (uint8_t fan_speed_index) |
Set the fan speed to a stepped index in the range 0-19. More... | |
bool | set_fan_speed (uint8_t fan_speed_pct) |
Set the fan speed to a percent in the range 5% - 100%, at 5% increments. More... | |
uint8_t | get_fan_index () |
Return the fan speed index, in the range 0-19. More... | |
uint8_t | get_fan_speed () |
Return the fan speed as a percent in the range 5%-100%. More... | |
bool | set_time_remaining (uint8_t hours, uint8_t mins) |
Set the operational runtime remaining. More... | |
uint16_t | get_time_remaining () |
Return the remaining runtime, in seconds. More... | |
bool | is_connected () |
bool | has_status () |
const BedjetStatusPacket * | get_status_packet () const |
void | register_child (BedJetClient *obj) |
Register a BedJetClient child component. More... | |
void | set_status_timeout (uint32_t timeout) |
Set the status timeout. More... | |
void | set_time_id (time::RealTimeClock *time_id) |
Set the time::RealTimeClock implementation. More... | |
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 | loop () override |
void | update () override |
void | dump_config () override |
void | setup () override |
float | get_setup_priority () const override |
std::string | get_name () |
void | gattc_event_handler (esp_gattc_cb_event_t event, esp_gatt_if_t gattc_if, esp_ble_gattc_cb_param_t *param) override |
Public Member Functions inherited from esphome::ble_client::BLEClientNode | |
virtual void | gap_event_handler (esp_gap_ble_cb_event_t event, esp_ble_gap_cb_param_t *param) |
void | set_address (uint64_t address) |
BLEClient * | parent () |
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... | |
void | start_poller () |
void | stop_poller () |
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 () const |
bool | is_ready () const |
virtual bool | can_proceed () |
bool | status_has_warning () const |
bool | status_has_error () const |
void | status_set_warning (const char *message="unspecified") |
void | status_set_error (const char *message="unspecified") |
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 | dispatch_status_ () |
void | dispatch_state_ (bool is_ready) |
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) |
Send the BedjetPacket to the device. More... | |
void | set_name_ (const std::string &name) |
void | status_packet_ready_ () |
bool | discover_characteristics_ () |
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::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(uint8_t)> &&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(uint8_t)> &&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 | |
std::vector< BedJetClient * > | children_ |
time::RealTimeClock * | time_id_ {nullptr} |
uint32_t | timeout_ {DEFAULT_STATUS_TIMEOUT} |
std::string | name_ |
uint32_t | last_notify_ = 0 |
bool | force_refresh_ = false |
bool | processing_ = false |
std::unique_ptr< BedjetCodec > | codec_ |
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::ble_client::BLEClientNode | |
BLEClient * | parent_ |
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 = 15000 |
static const uint32_t | NOTIFY_WARN_THRESHOLD = 300000 |
static const uint32_t | DEFAULT_STATUS_TIMEOUT = 900000 |
Additional Inherited Members | |
Data Fields inherited from esphome::ble_client::BLEClientNode | |
espbt::ESPBTClient * | client |
espbt::ClientState | node_state |
Hub component connecting to the BedJet device over Bluetooth.
Definition at line 37 of file bedjet_hub.h.
bool esphome::bedjet::BedJetHub::button_cool | ( | ) |
Press the COOL button.
Definition at line 50 of file bedjet_hub.cpp.
bool esphome::bedjet::BedJetHub::button_dry | ( | ) |
Press the DRY button.
Definition at line 51 of file bedjet_hub.cpp.
bool esphome::bedjet::BedJetHub::button_ext_heat | ( | ) |
Press the EXT HT button.
Definition at line 48 of file bedjet_hub.cpp.
bool esphome::bedjet::BedJetHub::button_heat | ( | ) |
Press the HEAT button.
Definition at line 47 of file bedjet_hub.cpp.
bool esphome::bedjet::BedJetHub::button_memory1 | ( | ) |
Press the M1 (memory recall) button.
Definition at line 53 of file bedjet_hub.cpp.
bool esphome::bedjet::BedJetHub::button_memory2 | ( | ) |
Press the M2 (memory recall) button.
Definition at line 54 of file bedjet_hub.cpp.
bool esphome::bedjet::BedJetHub::button_memory3 | ( | ) |
Press the M3 (memory recall) button.
Definition at line 55 of file bedjet_hub.cpp.
bool esphome::bedjet::BedJetHub::button_off | ( | ) |
Press the OFF button.
Definition at line 52 of file bedjet_hub.cpp.
bool esphome::bedjet::BedJetHub::button_turbo | ( | ) |
Press the TURBO button.
Definition at line 49 of file bedjet_hub.cpp.
|
protected |
Definition at line 160 of file bedjet_hub.cpp.
|
protected |
Definition at line 496 of file bedjet_hub.cpp.
|
protected |
Definition at line 502 of file bedjet_hub.cpp.
|
overridevirtual |
Reimplemented from esphome::Component.
Definition at line 485 of file bedjet_hub.cpp.
|
overridevirtual |
Reimplemented from esphome::ble_client::BLEClientNode.
Definition at line 227 of file bedjet_hub.cpp.
uint8_t esphome::bedjet::BedJetHub::get_fan_index | ( | ) |
Return the fan speed index, in the range 0-19.
Definition at line 72 of file bedjet_hub.cpp.
|
inline |
Return the fan speed as a percent in the range 5%-100%.
Definition at line 79 of file bedjet_hub.h.
|
inline |
Definition at line 123 of file bedjet_hub.h.
|
inlineoverridevirtual |
Reimplemented from esphome::Component.
Definition at line 120 of file bedjet_hub.h.
|
inline |
Definition at line 94 of file bedjet_hub.h.
uint16_t esphome::bedjet::BedJetHub::get_time_remaining | ( | ) |
Return the remaining runtime, in seconds.
Definition at line 115 of file bedjet_hub.cpp.
|
inline |
Definition at line 93 of file bedjet_hub.h.
|
inline |
true
if the BLEClient::node_state
is ClientState::ESTABLISHED
. Definition at line 91 of file bedjet_hub.h.
|
overridevirtual |
Reimplemented from esphome::ble_client::BLEClientNode.
Definition at line 482 of file bedjet_hub.cpp.
void esphome::bedjet::BedJetHub::register_child | ( | BedJetClient * | obj | ) |
Register a BedJetClient
child component.
Definition at line 538 of file bedjet_hub.cpp.
bool esphome::bedjet::BedJetHub::send_button | ( | BedjetButton | button | ) |
Send the button
.
Definition at line 101 of file bedjet_hub.cpp.
void esphome::bedjet::BedJetHub::send_local_time | ( | ) |
Attempts to sync the local time (via time_id
) to the BedJet device.
Definition at line 443 of file bedjet_hub.cpp.
void esphome::bedjet::BedJetHub::set_clock | ( | uint8_t | hour, |
uint8_t | minute | ||
) |
Attempt to set the BedJet device's clock to the specified time.
Definition at line 465 of file bedjet_hub.cpp.
bool esphome::bedjet::BedJetHub::set_fan_index | ( | uint8_t | fan_speed_index | ) |
Set the fan speed to a stepped index in the range 0-19.
Definition at line 57 of file bedjet_hub.cpp.
|
inline |
Set the fan speed to a percent in the range 5% - 100%, at 5% increments.
Definition at line 73 of file bedjet_hub.h.
|
inlineprotected |
Definition at line 155 of file bedjet_hub.h.
|
protected |
Configures the local ESP BLE client to register (true
) or unregister (false
) for status notifications.
Definition at line 141 of file bedjet_hub.cpp.
|
inline |
Set the status timeout.
This is the max time to wait for a status update before the connection is presumed unusable.
Definition at line 103 of file bedjet_hub.h.
bool esphome::bedjet::BedJetHub::set_target_temp | ( | float | temp_c | ) |
Set the target temperature to temp_c
in °C.
Definition at line 80 of file bedjet_hub.cpp.
|
inline |
Set the time::RealTimeClock
implementation.
Definition at line 107 of file bedjet_hub.h.
bool esphome::bedjet::BedJetHub::set_time_remaining | ( | uint8_t | hours, |
uint8_t | mins | ||
) |
Set the operational runtime remaining.
The unit establishes and enforces runtime limits for some modes, so this call is not guaranteed to succeed.
Definition at line 90 of file bedjet_hub.cpp.
|
inlineoverridevirtual |
Reimplemented from esphome::Component.
Definition at line 119 of file bedjet_hub.h.
|
protected |
Initializes time sync callbacks to support syncing current time to the BedJet.
Definition at line 455 of file bedjet_hub.cpp.
|
inlineprotected |
Definition at line 401 of file bedjet_hub.cpp.
|
overridevirtual |
Implements esphome::PollingComponent.
Definition at line 483 of file bedjet_hub.cpp.
void esphome::bedjet::BedJetHub::upgrade_firmware | ( | ) |
Attempts to check for and apply firmware updates.
Definition at line 38 of file bedjet_hub.cpp.
|
protected |
Send the BedjetPacket
to the device.
Definition at line 125 of file bedjet_hub.cpp.
|
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 419 of file bedjet_hub.cpp.
|
protected |
Definition at line 167 of file bedjet_hub.h.
|
protected |
Definition at line 168 of file bedjet_hub.h.
|
protected |
Definition at line 169 of file bedjet_hub.h.
|
protected |
Definition at line 137 of file bedjet_hub.h.
|
protected |
Definition at line 164 of file bedjet_hub.h.
|
protected |
Definition at line 170 of file bedjet_hub.h.
|
staticprotected |
Definition at line 150 of file bedjet_hub.h.
|
protected |
Definition at line 161 of file bedjet_hub.h.
|
protected |
Definition at line 159 of file bedjet_hub.h.
|
staticprotected |
Definition at line 148 of file bedjet_hub.h.
|
protected |
Definition at line 157 of file bedjet_hub.h.
|
staticprotected |
Definition at line 149 of file bedjet_hub.h.
|
protected |
Definition at line 162 of file bedjet_hub.h.
|
protected |
Definition at line 144 of file bedjet_hub.h.
|
protected |
Definition at line 147 of file bedjet_hub.h.