mirror of https://github.com/simbaja/ha_gehome.git
- added support for split AC devices
This commit is contained in:
parent
ceb24a8dbf
commit
2cc5f3a361
|
@ -13,6 +13,7 @@ from .washer_dryer import WasherDryerApi
|
||||||
from .water_filter import WaterFilterApi
|
from .water_filter import WaterFilterApi
|
||||||
from .advantium import AdvantiumApi
|
from .advantium import AdvantiumApi
|
||||||
from .wac import WacApi
|
from .wac import WacApi
|
||||||
|
from .sac import SacApi
|
||||||
|
|
||||||
_LOGGER = logging.getLogger(__name__)
|
_LOGGER = logging.getLogger(__name__)
|
||||||
|
|
||||||
|
@ -38,6 +39,8 @@ def get_appliance_api_type(appliance_type: ErdApplianceType) -> Type:
|
||||||
return AdvantiumApi
|
return AdvantiumApi
|
||||||
if appliance_type == ErdApplianceType.AIR_CONDITIONER:
|
if appliance_type == ErdApplianceType.AIR_CONDITIONER:
|
||||||
return WacApi
|
return WacApi
|
||||||
|
if appliance_type == ErdApplianceType.SPLIT_AIR_CONDITIONER:
|
||||||
|
return SacApi
|
||||||
|
|
||||||
# Fallback
|
# Fallback
|
||||||
return ApplianceApi
|
return ApplianceApi
|
||||||
|
|
|
@ -0,0 +1,37 @@
|
||||||
|
import logging
|
||||||
|
from typing import List
|
||||||
|
|
||||||
|
from homeassistant.helpers.entity import Entity
|
||||||
|
from gehomesdk.erd import ErdCode, ErdApplianceType
|
||||||
|
|
||||||
|
from .base import ApplianceApi
|
||||||
|
from ..entities import GeSacClimate, GeErdSensor, GeErdBinarySensor, GeErdSwitch, ErdOnOffBoolConverter
|
||||||
|
|
||||||
|
_LOGGER = logging.getLogger(__name__)
|
||||||
|
|
||||||
|
|
||||||
|
class SacApi(ApplianceApi):
|
||||||
|
"""API class for Split AC objects"""
|
||||||
|
APPLIANCE_TYPE = ErdApplianceType.SPLIT_AIR_CONDITIONER
|
||||||
|
|
||||||
|
def get_all_entities(self) -> List[Entity]:
|
||||||
|
base_entities = super().get_all_entities()
|
||||||
|
|
||||||
|
sac_entities = [
|
||||||
|
GeSacClimate(self),
|
||||||
|
GeErdSensor(self, ErdCode.AC_TARGET_TEMPERATURE),
|
||||||
|
GeErdSensor(self, ErdCode.AC_AMBIENT_TEMPERATURE),
|
||||||
|
GeErdSensor(self, ErdCode.AC_FAN_SETTING, icon_override="mdi:fan"),
|
||||||
|
GeErdSensor(self, ErdCode.AC_OPERATION_MODE),
|
||||||
|
GeErdSwitch(self, ErdCode.AC_POWER_STATUS, bool_converter=ErdOnOffBoolConverter(), icon_on_override="mdi:power-on", icon_off_override="mdi:power-off"),
|
||||||
|
]
|
||||||
|
|
||||||
|
if self.has_erd_code(ErdCode.SAC_SLEEP_MODE):
|
||||||
|
GeErdSwitch(self, ErdCode.SAC_SLEEP_MODE, bool_converter=ErdOnOffBoolConverter(), icon_on_override="mdi:sleep", icon_off_override="mdi:sleep-off"),
|
||||||
|
if self.has_erd_code(ErdCode.SAC_AUTO_SWING_MODE):
|
||||||
|
GeErdSwitch(self, ErdCode.SAC_AUTO_SWING_MODE, bool_converter=ErdOnOffBoolConverter(), icon_on_override="mdi:arrow-decision-auto", icon_off_override="mdi:arrow-decision-auto-outline"),
|
||||||
|
|
||||||
|
|
||||||
|
entities = base_entities + sac_entities
|
||||||
|
return entities
|
||||||
|
|
|
@ -11,7 +11,7 @@ _LOGGER = logging.getLogger(__name__)
|
||||||
|
|
||||||
|
|
||||||
class WacApi(ApplianceApi):
|
class WacApi(ApplianceApi):
|
||||||
"""API class for window AC objects"""
|
"""API class for Window AC objects"""
|
||||||
APPLIANCE_TYPE = ErdApplianceType.AIR_CONDITIONER
|
APPLIANCE_TYPE = ErdApplianceType.AIR_CONDITIONER
|
||||||
|
|
||||||
def get_all_entities(self) -> List[Entity]:
|
def get_all_entities(self) -> List[Entity]:
|
||||||
|
|
|
@ -1 +1,2 @@
|
||||||
from .ge_wac_climate import GeWacClimate
|
from .ge_wac_climate import GeWacClimate
|
||||||
|
from .ge_sac_climate import GeSacClimate
|
Loading…
Reference in New Issue