ESPHome  2024.11.0
Public Member Functions | Protected Member Functions | Protected Attributes
esphome::haier::Smartair2Climate Class Reference

#include <smartair2_climate.h>

Inheritance diagram for esphome::haier::Smartair2Climate:
esphome::haier::HaierClimateBase esphome::Component esphome::climate::Climate esphome::uart::UARTDevice esphome::EntityBase

Public Member Functions

 Smartair2Climate ()
 
 Smartair2Climate (const Smartair2Climate &)=delete
 
Smartair2Climateoperator= (const Smartair2Climate &)=delete
 
 ~Smartair2Climate ()
 
void dump_config () override
 
void set_alternative_swing_control (bool swing_control)
 
- Public Member Functions inherited from esphome::haier::HaierClimateBase
void set_display_switch (switch_::Switch *sw)
 
void set_health_mode_switch (switch_::Switch *sw)
 
 HaierClimateBase ()
 
 HaierClimateBase (const HaierClimateBase &)=delete
 
HaierClimateBaseoperator= (const HaierClimateBase &)=delete
 
 ~HaierClimateBase ()
 
void setup () override
 
void loop () override
 
void control (const esphome::climate::ClimateCall &call) override
 
float get_setup_priority () const override
 
void set_display_state (bool state)
 
bool get_display_state () const
 
void set_health_mode (bool state)
 
bool get_health_mode () const
 
void send_power_on_command ()
 
void send_power_off_command ()
 
void toggle_power ()
 
void reset_protocol ()
 
void set_supported_modes (const std::set< esphome::climate::ClimateMode > &modes)
 
void set_supported_swing_modes (const std::set< esphome::climate::ClimateSwingMode > &modes)
 
void set_supported_presets (const std::set< esphome::climate::ClimatePreset > &presets)
 
bool valid_connection () const
 
size_t available () noexcept override
 
size_t read_array (uint8_t *data, size_t len) noexcept override
 
void write_array (const uint8_t *data, size_t len) noexcept override
 
bool can_send_message () const
 
void set_answer_timeout (uint32_t timeout)
 
void set_send_wifi (bool send_wifi)
 
void send_custom_command (const haier_protocol::HaierMessage &message)
 
void add_status_message_callback (std::function< void(const char *, size_t)> &&callback)
 
- 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...
 
- Public Member Functions inherited from esphome::climate::Climate
 Climate ()
 
void add_on_state_callback (std::function< void(Climate &)> &&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...
 
void add_on_control_callback (std::function< void(ClimateCall &)> &&callback)
 Add a callback for the climate device configuration; each time the configuration parameters of a climate device is updated (using perform() of a ClimateCall), this callback will be called, before any on_state callback. 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 target, float current)
 
void set_visual_min_humidity_override (float visual_min_humidity_override)
 
void set_visual_max_humidity_override (float visual_max_humidity_override)
 
- 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::uart::UARTDevice
 UARTDevice ()=default
 
 UARTDevice (UARTComponent *parent)
 
void set_uart_parent (UARTComponent *parent)
 
void write_byte (uint8_t data)
 
void write_array (const uint8_t *data, size_t len)
 
void write_array (const std::vector< uint8_t > &data)
 
template<size_t N>
void write_array (const std::array< uint8_t, N > &data)
 
void write_str (const char *str)
 
bool read_byte (uint8_t *data)
 
bool peek_byte (uint8_t *data)
 
bool read_array (uint8_t *data, size_t len)
 
template<size_t N>
optional< std::array< uint8_t, N > > read_array ()
 
int available ()
 
void flush ()
 
int read ()
 
size_t write (uint8_t data)
 
int peek ()
 
void check_uart_settings (uint32_t baud_rate, uint8_t stop_bits=1, UARTParityOptions parity=UART_CONFIG_PARITY_NONE, uint8_t data_bits=8)
 Check that the configuration of the UART bus matches the provided values and otherwise print a warning. More...
 

Protected Member Functions

void set_handlers () override
 
void process_phase (std::chrono::steady_clock::time_point now) override
 
haier_protocol::HaierMessage get_power_message (bool state) override
 
haier_protocol::HaierMessage get_control_message () override
 
haier_protocol::HandlerError status_handler_ (haier_protocol::FrameType request_type, haier_protocol::FrameType message_type, const uint8_t *data, size_t data_size)
 
haier_protocol::HandlerError get_device_version_answer_handler_ (haier_protocol::FrameType request_type, haier_protocol::FrameType message_type, const uint8_t *data, size_t data_size)
 
haier_protocol::HandlerError get_device_id_answer_handler_ (haier_protocol::FrameType request_type, haier_protocol::FrameType message_type, const uint8_t *data, size_t data_size)
 
haier_protocol::HandlerError messages_timeout_handler_with_cycle_for_init_ (haier_protocol::FrameType message_type)
 
haier_protocol::HandlerError process_status_message_ (const uint8_t *packet, uint8_t size)
 
- Protected Member Functions inherited from esphome::haier::HaierClimateBase
const char * phase_to_string_ (ProtocolPhases phase)
 
virtual void save_settings ()
 
virtual void initialization ()
 
virtual bool prepare_pending_action ()
 
virtual void process_protocol_reset ()
 
esphome::climate::ClimateTraits traits () override
 
haier_protocol::HandlerError answer_preprocess_ (haier_protocol::FrameType request_message_type, haier_protocol::FrameType expected_request_message_type, haier_protocol::FrameType answer_message_type, haier_protocol::FrameType expected_answer_message_type, ProtocolPhases expected_phase)
 
haier_protocol::HandlerError report_network_status_answer_handler_ (haier_protocol::FrameType request_type, haier_protocol::FrameType message_type, const uint8_t *data, size_t data_size)
 
haier_protocol::HandlerError timeout_default_handler_ (haier_protocol::FrameType request_type)
 
void send_message_ (const haier_protocol::HaierMessage &command, bool use_crc, uint8_t num_repeats=0, std::chrono::milliseconds interval=std::chrono::milliseconds::zero())
 
virtual void set_phase (ProtocolPhases phase)
 
void reset_phase_ ()
 
void reset_to_idle_ ()
 
bool is_message_interval_exceeded_ (std::chrono::steady_clock::time_point now)
 
bool is_status_request_interval_exceeded_ (std::chrono::steady_clock::time_point now)
 
bool is_control_message_interval_exceeded_ (std::chrono::steady_clock::time_point now)
 
bool is_protocol_initialisation_interval_exceeded_ (std::chrono::steady_clock::time_point now)
 
haier_protocol::HaierMessage get_wifi_signal_message_ ()
 
- Protected Member Functions inherited from esphome::Component
virtual void call_loop ()
 
virtual void call_setup ()
 
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 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 Attributes

bool use_alternative_swing_control_
 
- Protected Attributes inherited from esphome::haier::HaierClimateBase
switch_::Switchdisplay_switch_ {nullptr}
 
switch_::Switchhealth_mode_switch_ {nullptr}
 
haier_protocol::ProtocolHandler haier_protocol_
 
ProtocolPhases protocol_phase_
 
esphome::optional< PendingActionaction_request_
 
uint8_t fan_mode_speed_
 
uint8_t other_modes_fan_speed_
 
SwitchState display_status_ {SwitchState::ON}
 
SwitchState health_mode_ {SwitchState::OFF}
 
bool force_send_control_
 
bool forced_request_status_
 
bool reset_protocol_request_
 
bool send_wifi_signal_
 
bool use_crc_
 
esphome::climate::ClimateTraits traits_
 
HvacSettings current_hvac_settings_
 
HvacSettings next_hvac_settings_
 
std::unique_ptr< uint8_t[]> last_status_message_ {nullptr}
 
std::chrono::steady_clock::time_point last_request_timestamp_
 
std::chrono::steady_clock::time_point last_valid_status_timestamp_
 
std::chrono::steady_clock::time_point last_status_request_
 
std::chrono::steady_clock::time_point last_signal_request_
 
CallbackManager< void(const char *, size_t)> status_message_callback_ {}
 
ESPPreferenceObject base_rtc_
 
- 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}
 
- Protected Attributes inherited from esphome::climate::Climate
friend ClimateCall
 
CallbackManager< void(Climate &)> state_callback_ {}
 
CallbackManager< void(ClimateCall &)> control_callback_ {}
 
ESPPreferenceObject rtc_
 
optional< float > visual_min_temperature_override_ {}
 
optional< float > visual_max_temperature_override_ {}
 
optional< float > visual_target_temperature_step_override_ {}
 
optional< float > visual_current_temperature_step_override_ {}
 
optional< float > visual_min_humidity_override_ {}
 
optional< float > visual_max_humidity_override_ {}
 
- 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::uart::UARTDevice
UARTComponentparent_ {nullptr}
 

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...
 
float current_humidity {NAN}
 The current humidity 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 {NAN}
 The minimum target temperature of the climate device, for climate devices with split target temperature. More...
 
      float   target_temperature_high {NAN}
 The maximum target temperature of the climate device, for climate devices with split target temperature. More...
 
   } 
 
}; 
 
float target_humidity
 The target humidity of the climate device. 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...
 
- Protected Types inherited from esphome::haier::HaierClimateBase
enum  ProtocolPhases {
  ProtocolPhases::UNKNOWN = -1, ProtocolPhases::SENDING_INIT_1 = 0, ProtocolPhases::SENDING_INIT_2, ProtocolPhases::SENDING_FIRST_STATUS_REQUEST,
  ProtocolPhases::SENDING_FIRST_ALARM_STATUS_REQUEST, ProtocolPhases::IDLE, ProtocolPhases::SENDING_STATUS_REQUEST, ProtocolPhases::SENDING_UPDATE_SIGNAL_REQUEST,
  ProtocolPhases::SENDING_SIGNAL_LEVEL, ProtocolPhases::SENDING_CONTROL, ProtocolPhases::SENDING_ACTION_COMMAND, ProtocolPhases::SENDING_ALARM_STATUS_REQUEST,
  ProtocolPhases::NUM_PROTOCOL_PHASES
}
 
enum  SwitchState { SwitchState::OFF = 0b00, SwitchState::ON = 0b01, SwitchState::PENDING_OFF = 0b10, SwitchState::PENDING_ON = 0b11 }
 

Detailed Description

Definition at line 9 of file smartair2_climate.h.

Constructor & Destructor Documentation

◆ Smartair2Climate() [1/2]

esphome::haier::Smartair2Climate::Smartair2Climate ( )

Definition at line 20 of file smartair2_climate.cpp.

◆ Smartair2Climate() [2/2]

esphome::haier::Smartair2Climate::Smartair2Climate ( const Smartair2Climate )
delete

◆ ~Smartair2Climate()

esphome::haier::Smartair2Climate::~Smartair2Climate ( )

Member Function Documentation

◆ dump_config()

void esphome::haier::Smartair2Climate::dump_config ( )
overridevirtual

Reimplemented from esphome::haier::HaierClimateBase.

Definition at line 123 of file smartair2_climate.cpp.

◆ get_control_message()

haier_protocol::HaierMessage esphome::haier::Smartair2Climate::get_control_message ( )
overrideprotectedvirtual

Implements esphome::haier::HaierClimateBase.

Definition at line 233 of file smartair2_climate.cpp.

◆ get_device_id_answer_handler_()

haier_protocol::HandlerError esphome::haier::Smartair2Climate::get_device_id_answer_handler_ ( haier_protocol::FrameType  request_type,
haier_protocol::FrameType  message_type,
const uint8_t *  data,
size_t  data_size 
)
protected

◆ get_device_version_answer_handler_()

haier_protocol::HandlerError esphome::haier::Smartair2Climate::get_device_version_answer_handler_ ( haier_protocol::FrameType  request_type,
haier_protocol::FrameType  message_type,
const uint8_t *  data,
size_t  data_size 
)
protected

Definition at line 75 of file smartair2_climate.cpp.

◆ get_power_message()

haier_protocol::HaierMessage esphome::haier::Smartair2Climate::get_power_message ( bool  state)
overrideprotectedvirtual

Implements esphome::haier::HaierClimateBase.

Definition at line 223 of file smartair2_climate.cpp.

◆ messages_timeout_handler_with_cycle_for_init_()

haier_protocol::HandlerError esphome::haier::Smartair2Climate::messages_timeout_handler_with_cycle_for_init_ ( haier_protocol::FrameType  message_type)
protected

Definition at line 92 of file smartair2_climate.cpp.

◆ operator=()

Smartair2Climate& esphome::haier::Smartair2Climate::operator= ( const Smartair2Climate )
delete

◆ process_phase()

void esphome::haier::Smartair2Climate::process_phase ( std::chrono::steady_clock::time_point  now)
overrideprotectedvirtual

Implements esphome::haier::HaierClimateBase.

Definition at line 128 of file smartair2_climate.cpp.

◆ process_status_message_()

haier_protocol::HandlerError esphome::haier::Smartair2Climate::process_status_message_ ( const uint8_t *  packet,
uint8_t  size 
)
protected

Definition at line 387 of file smartair2_climate.cpp.

◆ set_alternative_swing_control()

void esphome::haier::Smartair2Climate::set_alternative_swing_control ( bool  swing_control)

Definition at line 548 of file smartair2_climate.cpp.

◆ set_handlers()

void esphome::haier::Smartair2Climate::set_handlers ( )
overrideprotectedvirtual

Implements esphome::haier::HaierClimateBase.

Definition at line 105 of file smartair2_climate.cpp.

◆ status_handler_()

haier_protocol::HandlerError esphome::haier::Smartair2Climate::status_handler_ ( haier_protocol::FrameType  request_type,
haier_protocol::FrameType  message_type,
const uint8_t *  data,
size_t  data_size 
)
protected

Definition at line 24 of file smartair2_climate.cpp.

Field Documentation

◆ use_alternative_swing_control_

bool esphome::haier::Smartair2Climate::use_alternative_swing_control_
protected

Definition at line 36 of file smartair2_climate.h.


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