mirror of
https://github.com/GrKoR/esphome_aux_ac_component.git
synced 2026-01-01 22:29:09 +03:00
107 lines
3.4 KiB
C++
107 lines
3.4 KiB
C++
#pragma once
|
|
|
|
#include "esphome/components/climate/climate.h"
|
|
#include "esphome/core/optional.h"
|
|
|
|
namespace esphome
|
|
{
|
|
namespace aux_airconditioner
|
|
{
|
|
enum ac_mode : uint8_t
|
|
{
|
|
AC_MODE_AUTO = 0x00,
|
|
AC_MODE_COOL = 0x20,
|
|
AC_MODE_DRY = 0x40,
|
|
AC_MODE_HEAT = 0x80,
|
|
AC_MODE_FAN = 0xC0
|
|
};
|
|
|
|
std::string ac_mode_to_string(ac_mode mode);
|
|
|
|
using esphome::climate::ClimateMode;
|
|
ClimateMode ac_mode_to_climate_mode(ac_mode mode);
|
|
ac_mode climate_mode_to_ac_mode(ClimateMode mode);
|
|
|
|
// vertical louvers position in esphome / HA frontend
|
|
enum vlouver_esphome_position_t : uint8_t
|
|
{
|
|
AC_VLOUVER_FRONTEND_SWING = 0x00,
|
|
AC_VLOUVER_FRONTEND_STOP = 0x01,
|
|
AC_VLOUVER_FRONTEND_TOP = 0x02,
|
|
AC_VLOUVER_FRONTEND_MIDDLE_ABOVE = 0x03,
|
|
AC_VLOUVER_FRONTEND_MIDDLE = 0x04,
|
|
AC_VLOUVER_FRONTEND_MIDDLE_BELOW = 0x05,
|
|
AC_VLOUVER_FRONTEND_BOTTOM = 0x06,
|
|
};
|
|
|
|
enum ac_louver_V : uint8_t
|
|
{
|
|
AC_LOUVERV_SWING_UPDOWN = 0x00,
|
|
AC_LOUVERV_TOP = 0x01,
|
|
AC_LOUVERV_MIDDLE_ABOVE = 0x02,
|
|
AC_LOUVERV_MIDDLE = 0x03,
|
|
AC_LOUVERV_MIDDLE_BELOW = 0x04,
|
|
AC_LOUVERV_BOTTOM = 0x05,
|
|
// 0x06 tested and doing nothing
|
|
AC_LOUVERV_OFF = 0x07
|
|
};
|
|
|
|
ac_louver_V vlouver_frontend_to_ac_louver_V(const vlouver_esphome_position_t vlouver_frontend);
|
|
vlouver_esphome_position_t ac_louver_V_to_vlouver_frontend(const ac_louver_V aux_vlouver);
|
|
|
|
std::string ac_louver_V_to_string(ac_louver_V louver);
|
|
|
|
enum ac_louver_H : uint8_t
|
|
{
|
|
AC_LOUVERH_SWING_LEFTRIGHT = 0x00,
|
|
// AC_LOUVERH_OFF_AUX = 0x20, // 0b00100000
|
|
AC_LOUVERH_OFF = 0xE0 // 0b11100000
|
|
};
|
|
|
|
std::string ac_louver_H_to_string(ac_louver_H louver);
|
|
|
|
enum ac_fanspeed : uint8_t
|
|
{
|
|
AC_FANSPEED_HIGH = 0x20,
|
|
AC_FANSPEED_MEDIUM = 0x40,
|
|
AC_FANSPEED_LOW = 0x60,
|
|
AC_FANSPEED_AUTO = 0xA0
|
|
};
|
|
|
|
std::string ac_fanspeed_to_string(ac_fanspeed fanspeed);
|
|
|
|
using esphome::climate::ClimateFanMode;
|
|
ClimateFanMode ac_fanspeed_to_climate_fan_mode(ac_fanspeed fanspeed);
|
|
ac_fanspeed climate_fan_mode_to_ac_fanspeed(ClimateFanMode fanmode);
|
|
|
|
enum ac_fanspeed_real : uint8_t
|
|
{
|
|
AC_REAL_FAN_OFF = 0x00,
|
|
AC_REAL_FAN_MUTE = 0x01,
|
|
AC_REAL_FAN_LOW = 0x02,
|
|
AC_REAL_FAN_MID = 0x04,
|
|
AC_REAL_FAN_HIGH = 0x06,
|
|
AC_REAL_FAN_TURBO = 0x07
|
|
};
|
|
|
|
std::string ac_fanspeed_real_to_string(ac_fanspeed_real real_fanspeed);
|
|
|
|
enum command_type_t : uint8_t
|
|
{
|
|
COMMAND_TYPE_NONE = 0x00,
|
|
COMMAND_TYPE_REQUEST_11 = 0x01,
|
|
COMMAND_TYPE_REQUEST_21 = 0x02,
|
|
COMMAND_TYPE_SET_STATE = 0x03,
|
|
};
|
|
|
|
enum command_processor_state_t : uint8_t
|
|
{
|
|
CMD_PROCESSOR_STATE_NOT_STARTED = 0x00,
|
|
CMD_PROCESSOR_STATE_WAITING_FOR_F11 = 0x01,
|
|
CMD_PROCESSOR_STATE_PRECHECK_DONE = 0x02,
|
|
CMD_PROCESSOR_STATE_CMD_WAS_SENT = 0x03,
|
|
CMD_PROCESSOR_STATE_POSTCHECK_DONE = 0x04,
|
|
};
|
|
|
|
} // namespace aux_airconditioner
|
|
} // namespace GrKoR
|