9#include <protocol/haier_protocol.h>
35 public haier_protocol::ProtocolStream {
50 void setup()
override;
109 haier_protocol::HandlerError
answer_preprocess_(haier_protocol::FrameType request_message_type,
110 haier_protocol::FrameType expected_request_message_type,
111 haier_protocol::FrameType answer_message_type,
112 haier_protocol::FrameType expected_answer_message_type,
115 haier_protocol::FrameType message_type,
116 const uint8_t *data,
size_t data_size);
120 void send_message_(
const haier_protocol::HaierMessage &command,
bool use_crc, uint8_t num_repeats = 0,
121 std::chrono::milliseconds interval = std::chrono::milliseconds::zero());
send_message_t send_message_
This class is used to encode all control actions on a climate device.
ClimateDevice - This is the base class for all climate integrations.
This class contains all static data for climate devices.
bool reset_protocol_request_
virtual haier_protocol::HaierMessage get_power_message(bool state)=0
ProtocolPhases protocol_phase_
void add_status_message_callback(std::function< void(const char *, size_t)> &&callback)
SwitchState display_status_
esphome::climate::ClimateTraits traits_
bool get_health_mode() const
ESPPreferenceObject base_rtc_
void send_power_on_command()
bool is_message_interval_exceeded_(std::chrono::steady_clock::time_point now)
void set_supported_swing_modes(const std::set< esphome::climate::ClimateSwingMode > &modes)
void write_array(const uint8_t *data, size_t len) noexcept override
CallbackManager< void(const char *, size_t)> status_message_callback_
bool forced_request_status_
void set_supported_presets(const std::set< esphome::climate::ClimatePreset > &presets)
bool is_protocol_initialisation_interval_exceeded_(std::chrono::steady_clock::time_point now)
bool is_status_request_interval_exceeded_(std::chrono::steady_clock::time_point now)
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)
virtual void initialization()
virtual void save_settings()
haier_protocol::ProtocolHandler haier_protocol_
size_t available() noexcept override
void set_health_mode(bool state)
virtual void process_protocol_reset()
std::chrono::steady_clock::time_point last_request_timestamp_
const char * phase_to_string_(ProtocolPhases phase)
@ SENDING_UPDATE_SIGNAL_REQUEST
@ SENDING_ALARM_STATUS_REQUEST
@ SENDING_FIRST_STATUS_REQUEST
@ SENDING_FIRST_ALARM_STATUS_REQUEST
std::unique_ptr< uint8_t[]> last_status_message_
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)
void control(const esphome::climate::ClimateCall &call) override
bool can_send_message() const
virtual void process_phase(std::chrono::steady_clock::time_point now)=0
virtual bool prepare_pending_action()
bool get_display_state() const
void set_health_mode_switch(switch_::Switch *sw)
HaierClimateBase(const HaierClimateBase &)=delete
std::chrono::steady_clock::time_point last_valid_status_timestamp_
size_t read_array(uint8_t *data, size_t len) noexcept override
HaierClimateBase & operator=(const HaierClimateBase &)=delete
haier_protocol::HaierMessage get_wifi_signal_message_()
haier_protocol::HandlerError timeout_default_handler_(haier_protocol::FrameType request_type)
bool is_control_message_interval_exceeded_(std::chrono::steady_clock::time_point now)
virtual haier_protocol::HaierMessage get_control_message()=0
switch_::Switch * health_mode_switch_
bool valid_connection() const
uint8_t other_modes_fan_speed_
esphome::optional< PendingAction > action_request_
void set_answer_timeout(uint32_t timeout)
std::chrono::steady_clock::time_point last_status_request_
HvacSettings current_hvac_settings_
float get_setup_priority() const override
HvacSettings next_hvac_settings_
void set_display_switch(switch_::Switch *sw)
void dump_config() override
void set_display_state(bool state)
void send_power_off_command()
virtual void set_handlers()=0
void set_send_wifi(bool send_wifi)
virtual void set_phase(ProtocolPhases phase)
void send_custom_command(const haier_protocol::HaierMessage &message)
std::chrono::steady_clock::time_point last_signal_request_
void set_supported_modes(const std::set< esphome::climate::ClimateMode > &modes)
switch_::Switch * display_switch_
StatusMessageTrigger(HaierClimateBase *parent)
Base class for all switches.
optional< std::array< uint8_t, N > > read_array()
void write_array(const uint8_t *data, size_t len)
const float HARDWARE
For components that deal with hardware and are very important like GPIO switch.
Providing packet encoding functions for exchanging data with a remote host.
esphome::optional< esphome::climate::ClimateFanMode > fan_mode
esphome::optional< esphome::climate::ClimateSwingMode > swing_mode
esphome::optional< esphome::climate::ClimateMode > mode
esphome::optional< esphome::climate::ClimatePreset > preset
HvacSettings & operator=(const HvacSettings &)=default
HvacSettings(const HvacSettings &)=default
esphome::optional< float > target_temperature
esphome::optional< haier_protocol::HaierMessage > message