7 #ifdef USE_BINARY_SENSOR 46 OUTDOOR_TEMPERATURE = 0,
49 INDOOR_COIL_TEMPERATURE,
50 OUTDOOR_COIL_TEMPERATURE,
51 OUTDOOR_DEFROST_TEMPERATURE,
52 OUTDOOR_IN_AIR_TEMPERATURE,
53 OUTDOOR_OUT_AIR_TEMPERATURE,
57 EXPANSION_VALVE_OPEN_DEGREE,
58 SUB_SENSOR_TYPE_COUNT,
59 BIG_DATA_FRAME_SUB_SENSORS = INDOOR_COIL_TEMPERATURE,
65 sensor::Sensor *sub_sensors_[(size_t) SubSensorType::SUB_SENSOR_TYPE_COUNT]{
nullptr};
67 #ifdef USE_BINARY_SENSOR 70 OUTDOOR_FAN_STATUS = 0,
74 FOUR_WAY_VALVE_STATUS,
75 INDOOR_ELECTRIC_HEATING_STATUS,
76 SUB_BINARY_SENSOR_TYPE_COUNT,
89 void dump_config()
override;
90 void set_beeper_state(
bool state);
91 bool get_beeper_state()
const;
96 std::string get_cleaning_status_text()
const;
98 void start_self_cleaning();
99 void start_steri_cleaning();
102 void add_alarm_start_callback(std::function<
void(uint8_t,
const char *)> &&callback);
103 void add_alarm_end_callback(std::function<
void(uint8_t,
const char *)> &&callback);
107 void set_handlers()
override;
108 void process_phase(std::chrono::steady_clock::time_point now)
override;
109 haier_protocol::HaierMessage get_control_message()
override;
110 haier_protocol::HaierMessage get_power_message(
bool state)
override;
111 bool prepare_pending_action()
override;
112 void process_protocol_reset()
override;
113 bool should_get_big_data_();
116 haier_protocol::HandlerError get_device_version_answer_handler_(haier_protocol::FrameType request_type,
117 haier_protocol::FrameType message_type,
119 haier_protocol::HandlerError get_device_id_answer_handler_(haier_protocol::FrameType request_type,
120 haier_protocol::FrameType message_type,
121 const uint8_t *data,
size_t data_size);
122 haier_protocol::HandlerError status_handler_(haier_protocol::FrameType request_type,
123 haier_protocol::FrameType message_type,
const uint8_t *data,
125 haier_protocol::HandlerError get_management_information_answer_handler_(haier_protocol::FrameType request_type,
126 haier_protocol::FrameType message_type,
127 const uint8_t *data,
size_t data_size);
128 haier_protocol::HandlerError get_alarm_status_answer_handler_(haier_protocol::FrameType request_type,
129 haier_protocol::FrameType message_type,
130 const uint8_t *data,
size_t data_size);
131 haier_protocol::HandlerError alarm_status_message_handler_(haier_protocol::FrameType type,
const uint8_t *buffer,
134 haier_protocol::HandlerError process_status_message_(
const uint8_t *packet, uint8_t size);
135 void process_alarm_message_(
const uint8_t *packet, uint8_t size,
bool check_new);
136 void fill_control_messages_queue_();
137 void clear_control_messages_queue_();
153 uint8_t active_alarms_[8];
159 float active_alarm_count_{NAN};
161 int big_data_sensors_{0};
168 [
this](uint8_t alarm_code,
const char *alarm_message) { this->trigger(alarm_code, alarm_message); });
176 [
this](uint8_t alarm_code,
const char *alarm_message) { this->trigger(alarm_code, alarm_message); });
AirflowVerticalDirection vertical_direction_
void add_alarm_end_callback(std::function< void(uint8_t, const char *)> &&callback)
bool got_valid_outdoor_temp_
CleaningState cleaning_status_
HonControlMethod control_method_
esphome::optional< HardwareInfo > hvac_hardware_info_
void set_control_method(HonControlMethod method)
void add_alarm_start_callback(std::function< void(uint8_t, const char *)> &&callback)
int extra_control_packet_bytes_
void set_extra_control_packet_bytes_size(size_t size)
AirflowHorizontalDirection
std::chrono::steady_clock::time_point last_alarm_request_
std::string hardware_version_
float get_active_alarm_count() const
This is a workaround until we can figure out a way to get the tflite-micro idf component code availab...
Base class for all binary_sensor-type classes.
HaierAlarmStartTrigger(HonClimate *parent)
Base-class for all sensors.
std::string software_version_
std::queue< haier_protocol::HaierMessage > control_messages_queue_
std::string protocol_version_
AirflowHorizontalDirection horizontal_direction_
HaierAlarmEndTrigger(HonClimate *parent)