7#ifdef USE_BINARY_SENSOR
64#ifdef USE_BINARY_SENSOR
132 void process_phase(std::chrono::steady_clock::time_point now)
override;
142 haier_protocol::FrameType message_type,
143 const uint8_t *data,
size_t data_size);
145 haier_protocol::FrameType message_type,
146 const uint8_t *data,
size_t data_size);
147 haier_protocol::HandlerError
status_handler_(haier_protocol::FrameType request_type,
148 haier_protocol::FrameType message_type,
const uint8_t *data,
151 haier_protocol::FrameType message_type,
152 const uint8_t *data,
size_t data_size);
154 haier_protocol::FrameType message_type,
155 const uint8_t *data,
size_t data_size);
201 [
this](uint8_t alarm_code,
const char *alarm_message) { this->
trigger(alarm_code, alarm_message); });
209 [
this](uint8_t alarm_code,
const char *alarm_message) { this->
trigger(alarm_code, alarm_message); });
Base class for all binary_sensor-type classes.
HaierAlarmEndTrigger(HonClimate *parent)
HaierAlarmStartTrigger(HonClimate *parent)
void set_quiet_mode_switch(switch_::Switch *sw)
bool should_get_big_data_()
void dump_config() override
esphome::optional< hon_protocol::VerticalSwingMode > get_vertical_airflow() const
void add_alarm_end_callback(std::function< void(uint8_t, const char *)> &&callback)
ESPPreferenceObject hon_rtc_
void set_sub_text_sensor(SubTextSensorType type, text_sensor::TextSensor *sens)
uint8_t active_alarms_[8]
haier_protocol::HandlerError status_handler_(haier_protocol::FrameType request_type, haier_protocol::FrameType message_type, const uint8_t *data, size_t data_size)
HonControlMethod control_method_
void initialization() override
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)
int extra_control_packet_bytes_
float get_active_alarm_count() const
CallbackManager< void(uint8_t, const char *)> alarm_end_callback_
void set_status_message_header_size(size_t size)
void set_extra_sensors_packet_bytes_size(size_t size)
esphome::optional< HardwareInfo > hvac_hardware_info_
void set_sub_sensor(SubSensorType type, sensor::Sensor *sens)
void set_handlers() override
CallbackManager< void(uint8_t, const char *)> alarm_start_callback_
void update_sub_sensor_(SubSensorType type, float value)
void set_sub_binary_sensor(SubBinarySensorType type, binary_sensor::BinarySensor *sens)
haier_protocol::HaierMessage get_power_message(bool state) override
bool got_valid_outdoor_temp_
text_sensor::TextSensor * sub_text_sensors_[(size_t) SubTextSensorType::SUB_TEXT_SENSOR_TYPE_COUNT]
haier_protocol::HandlerError get_alarm_status_answer_handler_(haier_protocol::FrameType request_type, haier_protocol::FrameType message_type, const uint8_t *data, size_t data_size)
int status_message_header_size_
switch_::Switch * beeper_switch_
std::chrono::steady_clock::time_point last_alarm_request_
void start_steri_cleaning()
sensor::Sensor * sub_sensors_[(size_t) SubSensorType::SUB_SENSOR_TYPE_COUNT]
void set_beeper_state(bool state)
@ SUB_TEXT_SENSOR_TYPE_COUNT
int real_sensors_packet_size_
void set_horizontal_airflow(hon_protocol::HorizontalSwingMode direction)
haier_protocol::HandlerError process_status_message_(const uint8_t *packet, uint8_t size)
void add_alarm_start_callback(std::function< void(uint8_t, const char *)> &&callback)
@ SUB_BINARY_SENSOR_TYPE_COUNT
@ INDOOR_ELECTRIC_HEATING_STATUS
HonClimate & operator=(const HonClimate &)=delete
void start_self_cleaning()
void set_vertical_airflow(hon_protocol::VerticalSwingMode direction)
bool get_beeper_state() const
CleaningState cleaning_status_
haier_protocol::HandlerError get_management_information_answer_handler_(haier_protocol::FrameType request_type, haier_protocol::FrameType message_type, const uint8_t *data, size_t data_size)
void set_control_method(HonControlMethod method)
std::queue< haier_protocol::HaierMessage > control_messages_queue_
esphome::optional< hon_protocol::HorizontalSwingMode > current_horizontal_swing_
void set_quiet_mode_state(bool state)
int real_control_packet_size_
void set_extra_control_packet_bytes_size(size_t size)
void update_sub_text_sensor_(SubTextSensorType type, const std::string &value)
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)
binary_sensor::BinarySensor * sub_binary_sensors_[(size_t) SubBinarySensorType::SUB_BINARY_SENSOR_TYPE_COUNT]
haier_protocol::HandlerError alarm_status_message_handler_(haier_protocol::FrameType type, const uint8_t *buffer, size_t size)
void clear_control_messages_queue_()
float active_alarm_count_
void update_sub_binary_sensor_(SubBinarySensorType type, uint8_t value)
haier_protocol::HaierMessage get_control_message() override
void process_phase(std::chrono::steady_clock::time_point now) override
esphome::optional< hon_protocol::HorizontalSwingMode > pending_horizontal_direction_
bool get_quiet_mode_state() const
switch_::Switch * quiet_mode_switch_
HonClimate(const HonClimate &)=delete
std::string get_cleaning_status_text() const
void process_protocol_reset() override
int extra_sensors_packet_bytes_
CleaningState get_cleaning_status() const
esphome::optional< hon_protocol::HorizontalSwingMode > get_horizontal_airflow() const
SwitchState quiet_mode_state_
void fill_control_messages_queue_()
void set_beeper_switch(switch_::Switch *sw)
esphome::optional< hon_protocol::VerticalSwingMode > current_vertical_swing_
@ BIG_DATA_FRAME_SUB_SENSORS
@ EXPANSION_VALVE_OPEN_DEGREE
@ OUTDOOR_IN_AIR_TEMPERATURE
@ INDOOR_COIL_TEMPERATURE
@ OUTDOOR_COIL_TEMPERATURE
@ OUTDOOR_OUT_AIR_TEMPERATURE
@ OUTDOOR_DEFROST_TEMPERATURE
void process_alarm_message_(const uint8_t *packet, uint8_t size, bool check_new)
bool prepare_pending_action() override
esphome::optional< hon_protocol::VerticalSwingMode > pending_vertical_direction_
Base-class for all sensors.
Base class for all switches.
Providing packet encoding functions for exchanging data with a remote host.
std::string protocol_version_
std::string hardware_version_
std::string software_version_
hon_protocol::HorizontalSwingMode last_horizontal_swing
hon_protocol::VerticalSwingMode last_vertiacal_swing