mirror of
https://github.com/GrKoR/esphome_aux_ac_component.git
synced 2026-01-01 22:29:09 +03:00
v.1 beta 1 initial commit
This commit is contained in:
245
components/aux_ac/aircon_common.cpp
Normal file
245
components/aux_ac/aircon_common.cpp
Normal file
@@ -0,0 +1,245 @@
|
||||
#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
|
||||
Reference in New Issue
Block a user