|
ESPHome 2026.8.0-dev
|
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. | |
| bool | button_off () |
| Press the OFF button. | |
| bool | button_heat () |
| Press the HEAT button. | |
| bool | button_ext_heat () |
| Press the EXT HT button. | |
| bool | button_turbo () |
| Press the TURBO button. | |
| bool | button_cool () |
| Press the COOL button. | |
| bool | button_dry () |
| Press the DRY button. | |
| bool | button_memory1 () |
| Press the M1 (memory recall) button. | |
| bool | button_memory2 () |
| Press the M2 (memory recall) button. | |
| bool | button_memory3 () |
| Press the M3 (memory recall) button. | |
| bool | send_button (BedjetButton button) |
Send the button. | |
| bool | set_target_temp (float temp_c) |
Set the target temperature to temp_c in °C. | |
| bool | set_fan_index (uint8_t fan_speed_index) |
| Set the fan speed to a stepped index in the range 0-19. | |
| bool | set_fan_speed (uint8_t fan_speed_pct) |
| Set the fan speed to a percent in the range 5% - 100%, at 5% increments. | |
| uint8_t | get_fan_index () |
| Return the fan speed index, in the range 0-19. | |
| uint8_t | get_fan_speed () |
| Return the fan speed as a percent in the range 5%-100%. | |
| bool | set_time_remaining (uint8_t hours, uint8_t mins) |
| Set the operational runtime remaining. | |
| uint16_t | get_time_remaining () |
| Return the remaining runtime, in seconds. | |
| bool | is_connected () |
| bool | has_status () |
| const BedjetStatusPacket * | get_status_packet () const |
| void | register_child (BedJetClient *obj) |
Register a BedJetClient child component. | |
| void | set_status_timeout (uint32_t timeout) |
| Set the status timeout. | |
| void | set_time_id (time::RealTimeClock *time_id) |
Set the time::RealTimeClock implementation. | |
| void | send_local_time () |
Attempts to sync the local time (via time_id) to the BedJet device. | |
| void | set_clock (uint8_t hour, uint8_t minute) |
| Attempt to set the BedJet device's clock to the specified time. | |
| 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. | |
| void | set_update_interval (uint32_t update_interval) |
| Manually set the update interval in ms for this polling object. | |
| void | call_setup () override |
| virtual uint32_t | get_update_interval () const |
| Get the update interval in ms of this sensor. | |
| 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) |
| void | call () |
| virtual void | on_shutdown () |
| virtual void | on_safe_shutdown () |
| virtual bool | teardown () |
| Called during teardown to allow component to gracefully finish operations. | |
| virtual void | on_powerdown () |
| Called after teardown is complete to power down hardware. | |
| uint8_t | get_component_state () const |
| void | reset_to_construction_state () |
| Reset this component back to the construction state to allow setup to run again. | |
| bool | is_in_loop_state () const |
| Check if this component has completed setup and is in the loop state. | |
| bool | is_idle () const |
| Check if this component is idle. | |
| void | mark_failed () |
| Mark this component as failed. | |
| void | mark_failed (const LogString *message) |
| void | disable_loop () |
| Disable this component's loop. | |
| void | enable_loop () |
| Enable this component's loop. | |
| void | enable_loop_soon_any_context () |
| Thread and ISR-safe version of enable_loop() that can be called from any context. | |
| 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 () |
| void | status_set_warning (const char *message) |
| void | status_set_warning (const LogString *message) |
| void | status_set_error () |
| void | status_set_error (const LogString *message) |
| void | status_clear_warning () |
| void | status_clear_error () |
| void | status_momentary_warning (const char *name, uint32_t length=5000) |
| Set warning status flag and automatically clear it after a timeout. | |
| void | status_momentary_error (const char *name, uint32_t length=5000) |
| Set error status flag and automatically clear it after a timeout. | |
| bool | has_overridden_loop () const |
| const LogString * | get_component_log_str () const ESPHOME_ALWAYS_INLINE |
| Get the integration where this component was declared as a LogString for logging. | |
| bool | should_warn_of_blocking (uint32_t blocking_time, uint32_t &threshold_ms_out) |
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. | |
| uint8_t | set_notify_ (bool enable) |
Configures the local ESP BLE client to register (true) or unregister (false) for status notifications. | |
| uint8_t | write_bedjet_packet_ (BedjetPacket *pkt) |
Send the BedjetPacket to the device. | |
| 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. | |
Protected Member Functions inherited from esphome::Component | |
| friend | void::setup () |
| friend | void::original_setup () |
| void | set_component_source_ (uint8_t index) |
| Set where this component was loaded from for some debug messages. | |
| void | call_dump_config_ () |
| void | enable_loop_slow_path_ () |
| void | set_component_state_ (uint8_t state) |
| Helper to set component state (clears state bits and sets new state) | |
| bool | set_status_flag_ (uint8_t flag) |
| Helper to set a status LED flag on both this component and the app. | |
| void | set_interval (const char *name, uint32_t interval, std::function< void()> &&f) |
| Set an interval function with a const char* name. | |
| void | set_interval (uint32_t id, uint32_t interval, std::function< void()> &&f) |
| Set an interval function with a numeric ID (zero heap allocation). | |
| void | set_interval (InternalSchedulerID id, uint32_t interval, std::function< void()> &&f) |
| void | set_interval (uint32_t interval, std::function< void()> &&f) |
| bool | cancel_interval (const char *name) |
| Cancel an interval function. | |
| bool | cancel_interval (uint32_t id) |
| bool | cancel_interval (InternalSchedulerID id) |
| void | set_timeout (const char *name, uint32_t timeout, std::function< void()> &&f) |
| Set a timeout function with a const char* name. | |
| void | set_timeout (uint32_t id, uint32_t timeout, std::function< void()> &&f) |
| Set a timeout function with a numeric ID (zero heap allocation). | |
| void | set_timeout (InternalSchedulerID id, uint32_t timeout, std::function< void()> &&f) |
| void | set_timeout (uint32_t timeout, std::function< void()> &&f) |
| bool | cancel_timeout (const char *name) |
| Cancel a timeout function. | |
| bool | cancel_timeout (uint32_t id) |
| bool | cancel_timeout (InternalSchedulerID id) |
| void | defer (const char *name, std::function< void()> &&f) |
| Defer a callback to the next loop() call with a const char* name. | |
| void | defer (std::function< void()> &&f) |
| Defer a callback to the next loop() call. | |
| void | defer (uint32_t id, std::function< void()> &&f) |
| Defer a callback with a numeric ID (zero heap allocation) | |
| bool | cancel_defer (const char *name) |
| Cancel a defer callback using the specified name, name must not be empty. | |
| bool | cancel_defer (uint32_t id) |
| void | status_clear_warning_slow_path_ () |
| void | status_clear_error_slow_path_ () |
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_ {0} |
| uint16_t | char_handle_name_ {0} |
| uint16_t | char_handle_status_ {0} |
| uint16_t | config_descr_status_ {0} |
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 | |
| uint8_t | component_source_index_ {0} |
| Index into component source PROGMEM lookup table (0 = not set) | |
| uint8_t | warn_if_blocking_over_ {WARN_IF_BLOCKING_OVER_CS} |
| Warn threshold in centiseconds (max 2550ms) | |
| uint8_t | component_state_ {0x00} |
| State of this component - each bit has a purpose: Bits 0-2: Component state (0x00=CONSTRUCTION, 0x01=SETUP, 0x02=LOOP, 0x03=FAILED, 0x04=LOOP_DONE) Bit 3: STATUS_LED_WARNING Bit 4: STATUS_LED_ERROR Bit 5: Has overridden loop() (set at registration time) Bits 6-7: Unused - reserved for future expansion. | |
| volatile bool | pending_enable_loop_ {false} |
| ISR-safe flag for enable_loop_soon_any_context. | |
| ComponentRuntimeStats | runtime_stats_ |
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 36 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 506 of file bedjet_hub.cpp.
|
protected |
Definition at line 512 of file bedjet_hub.cpp.
|
overridevirtual |
Reimplemented from esphome::Component.
Definition at line 493 of file bedjet_hub.cpp.
|
overridevirtual |
Reimplemented from esphome::ble_client::BLEClientNode.
Definition at line 231 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 78 of file bedjet_hub.h.
|
inline |
Definition at line 122 of file bedjet_hub.h.
|
inlineoverridevirtual |
Reimplemented from esphome::Component.
Definition at line 119 of file bedjet_hub.h.
|
inline |
Definition at line 93 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 92 of file bedjet_hub.h.
|
inline |
true if the BLEClient::node_state is ClientState::ESTABLISHED. Definition at line 90 of file bedjet_hub.h.
|
overridevirtual |
Reimplemented from esphome::ble_client::BLEClientNode.
Definition at line 486 of file bedjet_hub.cpp.
| void esphome::bedjet::BedJetHub::register_child | ( | BedJetClient * | obj | ) |
Register a BedJetClient child component.
Definition at line 548 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 447 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 469 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 72 of file bedjet_hub.h.
|
inlineprotected |
Definition at line 154 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 102 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 106 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 118 of file bedjet_hub.h.
|
protected |
Initializes time sync callbacks to support syncing current time to the BedJet.
Definition at line 459 of file bedjet_hub.cpp.
|
inlineprotected |
Definition at line 405 of file bedjet_hub.cpp.
|
overridevirtual |
Implements esphome::PollingComponent.
Definition at line 491 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 423 of file bedjet_hub.cpp.
|
protected |
Definition at line 166 of file bedjet_hub.h.
|
protected |
Definition at line 167 of file bedjet_hub.h.
|
protected |
Definition at line 168 of file bedjet_hub.h.
|
protected |
Definition at line 136 of file bedjet_hub.h.
|
protected |
Definition at line 163 of file bedjet_hub.h.
|
protected |
Definition at line 169 of file bedjet_hub.h.
|
staticprotected |
Definition at line 149 of file bedjet_hub.h.
|
protected |
Definition at line 160 of file bedjet_hub.h.
|
protected |
Definition at line 158 of file bedjet_hub.h.
|
staticprotected |
Definition at line 147 of file bedjet_hub.h.
|
protected |
Definition at line 156 of file bedjet_hub.h.
|
staticprotected |
Definition at line 148 of file bedjet_hub.h.
|
protected |
Definition at line 161 of file bedjet_hub.h.
|
protected |
Definition at line 143 of file bedjet_hub.h.
|
protected |
Definition at line 146 of file bedjet_hub.h.