mirror of
https://github.com/GrKoR/esphome_aux_ac_component.git
synced 2026-01-01 14:19:13 +03:00
245 lines
6.4 KiB
C++
245 lines
6.4 KiB
C++
#include "aircon_common.h"
|
|
|
|
namespace esphome
|
|
{
|
|
namespace aux_airconditioner
|
|
{
|
|
std::string ac_mode_to_string(ac_mode mode)
|
|
{
|
|
switch (mode)
|
|
{
|
|
case AC_MODE_AUTO:
|
|
return "AC_MODE_AUTO";
|
|
|
|
case AC_MODE_COOL:
|
|
return "AC_MODE_COOL";
|
|
|
|
case AC_MODE_DRY:
|
|
return "AC_MODE_DRY";
|
|
|
|
case AC_MODE_HEAT:
|
|
return "AC_MODE_HEAT";
|
|
|
|
case AC_MODE_FAN:
|
|
return "AC_MODE_FAN";
|
|
|
|
default:
|
|
return "mode unknown";
|
|
}
|
|
}
|
|
|
|
ClimateMode ac_mode_to_climate_mode(ac_mode mode)
|
|
{
|
|
switch (mode)
|
|
{
|
|
case AC_MODE_AUTO:
|
|
return ClimateMode::CLIMATE_MODE_HEAT_COOL;
|
|
|
|
case AC_MODE_COOL:
|
|
return ClimateMode::CLIMATE_MODE_COOL;
|
|
|
|
case AC_MODE_DRY:
|
|
return ClimateMode::CLIMATE_MODE_DRY;
|
|
|
|
case AC_MODE_HEAT:
|
|
return ClimateMode::CLIMATE_MODE_HEAT;
|
|
|
|
case AC_MODE_FAN:
|
|
return ClimateMode::CLIMATE_MODE_FAN_ONLY;
|
|
|
|
default:
|
|
return ClimateMode::CLIMATE_MODE_OFF;
|
|
}
|
|
}
|
|
|
|
ac_mode climate_mode_to_ac_mode(ClimateMode mode)
|
|
{
|
|
switch (mode)
|
|
{
|
|
case ClimateMode::CLIMATE_MODE_HEAT_COOL:
|
|
return AC_MODE_AUTO;
|
|
|
|
case ClimateMode::CLIMATE_MODE_COOL:
|
|
return AC_MODE_COOL;
|
|
|
|
case ClimateMode::CLIMATE_MODE_DRY:
|
|
return AC_MODE_DRY;
|
|
|
|
case ClimateMode::CLIMATE_MODE_HEAT:
|
|
return AC_MODE_HEAT;
|
|
|
|
case ClimateMode::CLIMATE_MODE_FAN_ONLY:
|
|
return AC_MODE_FAN;
|
|
|
|
default:
|
|
return AC_MODE_FAN;
|
|
}
|
|
}
|
|
|
|
ac_louver_V vlouver_frontend_to_ac_louver_V(const vlouver_esphome_position_t vlouver_frontend)
|
|
{
|
|
switch (vlouver_frontend)
|
|
{
|
|
case AC_VLOUVER_FRONTEND_SWING:
|
|
return ac_louver_V::AC_LOUVERV_SWING_UPDOWN;
|
|
|
|
case AC_VLOUVER_FRONTEND_STOP:
|
|
return ac_louver_V::AC_LOUVERV_OFF;
|
|
|
|
case AC_VLOUVER_FRONTEND_TOP:
|
|
return ac_louver_V::AC_LOUVERV_SWING_UPDOWN;
|
|
|
|
case AC_VLOUVER_FRONTEND_MIDDLE_ABOVE:
|
|
return ac_louver_V::AC_LOUVERV_MIDDLE_ABOVE;
|
|
|
|
case AC_VLOUVER_FRONTEND_MIDDLE:
|
|
return ac_louver_V::AC_LOUVERV_MIDDLE;
|
|
|
|
case AC_VLOUVER_FRONTEND_MIDDLE_BELOW:
|
|
return ac_louver_V::AC_LOUVERV_MIDDLE_BELOW;
|
|
|
|
case AC_VLOUVER_FRONTEND_BOTTOM:
|
|
return ac_louver_V::AC_LOUVERV_BOTTOM;
|
|
|
|
default:
|
|
return ac_louver_V::AC_LOUVERV_OFF;
|
|
}
|
|
}
|
|
|
|
std::string ac_louver_V_to_string(ac_louver_V louver)
|
|
{
|
|
switch (louver)
|
|
{
|
|
case AC_LOUVERV_SWING_UPDOWN:
|
|
return "AC_LOUVERV_SWING_UPDOWN";
|
|
|
|
case AC_LOUVERV_TOP:
|
|
return "AC_LOUVERV_TOP";
|
|
|
|
case AC_LOUVERV_MIDDLE_ABOVE:
|
|
return "AC_LOUVERV_MIDDLE_ABOVE";
|
|
|
|
case AC_LOUVERV_MIDDLE:
|
|
return "AC_LOUVERV_MIDDLE";
|
|
|
|
case AC_LOUVERV_MIDDLE_BELOW:
|
|
return "AC_LOUVERV_MIDDLE_BELOW";
|
|
|
|
case AC_LOUVERV_BOTTOM:
|
|
return "AC_LOUVERV_BOTTOM";
|
|
|
|
case AC_LOUVERV_OFF:
|
|
return "AC_LOUVERV_OFF";
|
|
|
|
default:
|
|
return "unknown vertical louver position";
|
|
}
|
|
}
|
|
|
|
std::string ac_louver_H_to_string(ac_louver_H louver)
|
|
{
|
|
switch (louver)
|
|
{
|
|
case AC_LOUVERH_SWING_LEFTRIGHT:
|
|
return "AC_LOUVERH_SWING_LEFTRIGHT";
|
|
|
|
case AC_LOUVERH_OFF:
|
|
return "AC_LOUVERH_OFF";
|
|
|
|
default:
|
|
return "unknown horizontal louver position";
|
|
}
|
|
}
|
|
|
|
std::string ac_fanspeed_to_string(ac_fanspeed fanspeed)
|
|
{
|
|
switch (fanspeed)
|
|
{
|
|
case AC_FANSPEED_HIGH:
|
|
return "AC_FANSPEED_HIGH";
|
|
|
|
case AC_FANSPEED_MEDIUM:
|
|
return "AC_FANSPEED_MEDIUM";
|
|
|
|
case AC_FANSPEED_LOW:
|
|
return "AC_FANSPEED_LOW";
|
|
|
|
case AC_FANSPEED_AUTO:
|
|
return "AC_FANSPEED_AUTO";
|
|
|
|
default:
|
|
return "unknown";
|
|
}
|
|
}
|
|
|
|
ClimateFanMode ac_fanspeed_to_climate_fan_mode(ac_fanspeed fanspeed)
|
|
{
|
|
switch (fanspeed)
|
|
{
|
|
case AC_FANSPEED_HIGH:
|
|
return ClimateFanMode::CLIMATE_FAN_HIGH;
|
|
|
|
case AC_FANSPEED_MEDIUM:
|
|
return ClimateFanMode::CLIMATE_FAN_MEDIUM;
|
|
|
|
case AC_FANSPEED_LOW:
|
|
return ClimateFanMode::CLIMATE_FAN_LOW;
|
|
|
|
case AC_FANSPEED_AUTO:
|
|
return ClimateFanMode::CLIMATE_FAN_AUTO;
|
|
|
|
default:
|
|
return ClimateFanMode::CLIMATE_FAN_LOW;
|
|
}
|
|
}
|
|
|
|
ac_fanspeed climate_fan_mode_to_ac_fanspeed(ClimateFanMode fanmode)
|
|
{
|
|
switch (fanmode)
|
|
{
|
|
case ClimateFanMode::CLIMATE_FAN_AUTO:
|
|
return AC_FANSPEED_AUTO;
|
|
|
|
case ClimateFanMode::CLIMATE_FAN_LOW:
|
|
return AC_FANSPEED_LOW;
|
|
|
|
case ClimateFanMode::CLIMATE_FAN_MEDIUM:
|
|
return AC_FANSPEED_MEDIUM;
|
|
|
|
case ClimateFanMode::CLIMATE_FAN_HIGH:
|
|
return AC_FANSPEED_HIGH;
|
|
|
|
default:
|
|
return ac_fanspeed::AC_FANSPEED_LOW;
|
|
}
|
|
}
|
|
|
|
std::string ac_fanspeed_real_to_string(ac_fanspeed_real real_fanspeed)
|
|
{
|
|
switch (real_fanspeed)
|
|
{
|
|
case AC_REAL_FAN_OFF:
|
|
return "AC_REAL_FAN_OFF";
|
|
|
|
case AC_REAL_FAN_MUTE:
|
|
return "AC_REAL_FAN_MUTE";
|
|
|
|
case AC_REAL_FAN_LOW:
|
|
return "AC_REAL_FAN_LOW";
|
|
|
|
case AC_REAL_FAN_MID:
|
|
return "AC_REAL_FAN_MID";
|
|
|
|
case AC_REAL_FAN_HIGH:
|
|
return "AC_REAL_FAN_HIGH";
|
|
|
|
case AC_REAL_FAN_TURBO:
|
|
return "AC_REAL_FAN_TURBO";
|
|
|
|
default:
|
|
return "unknown";
|
|
}
|
|
}
|
|
|
|
} // namespace aux_airconditioner
|
|
} // namespace esphome
|