67 lines
2.5 KiB
Python
67 lines
2.5 KiB
Python
import logging
|
|
from typing import Type
|
|
|
|
from gehomesdk.erd import ErdApplianceType
|
|
|
|
from .base import ApplianceApi
|
|
from .oven import OvenApi
|
|
from .cooktop import CooktopApi
|
|
from .fridge import FridgeApi
|
|
from .dishwasher import DishwasherApi
|
|
from .washer import WasherApi
|
|
from .dryer import DryerApi
|
|
from .washer_dryer import WasherDryerApi
|
|
from .water_filter import WaterFilterApi
|
|
from .advantium import AdvantiumApi
|
|
from .wac import WacApi
|
|
from .sac import SacApi
|
|
from .pac import PacApi
|
|
from .biac import BiacApi
|
|
from .hood import HoodApi
|
|
from .microwave import MicrowaveApi
|
|
from .water_softener import WaterSoftenerApi
|
|
from .water_heater import WaterHeaterApi
|
|
from .oim import OimApi
|
|
from .ucim import UcimApi
|
|
from .coffee_maker import CcmApi
|
|
from .dual_dishwasher import DualDishwasherApi
|
|
from .espresso_maker import EspressoMakerApi
|
|
from .dehumidifier import DehumidifierApi
|
|
|
|
_LOGGER = logging.getLogger(__name__)
|
|
|
|
|
|
def get_appliance_api_type(appliance_type: ErdApplianceType) -> Type:
|
|
"""Get the appropriate appliance type"""
|
|
_LOGGER.debug(f"Found device type: {appliance_type}")
|
|
known_types = {
|
|
ErdApplianceType.OVEN: OvenApi,
|
|
ErdApplianceType.COOKTOP: CooktopApi,
|
|
ErdApplianceType.ELECTRIC_COOKTOP: CooktopApi,
|
|
ErdApplianceType.FRIDGE: FridgeApi,
|
|
ErdApplianceType.BEVERAGE_CENTER: FridgeApi,
|
|
ErdApplianceType.DISH_WASHER: DishwasherApi,
|
|
ErdApplianceType.DUAL_DISH_WASHER: DualDishwasherApi,
|
|
ErdApplianceType.WASHER: WasherApi,
|
|
ErdApplianceType.DRYER: DryerApi,
|
|
ErdApplianceType.COMBINATION_WASHER_DRYER: WasherDryerApi,
|
|
ErdApplianceType.POE_WATER_FILTER: WaterFilterApi,
|
|
ErdApplianceType.WATER_SOFTENER: WaterSoftenerApi,
|
|
ErdApplianceType.WATER_HEATER: WaterHeaterApi,
|
|
ErdApplianceType.ADVANTIUM: AdvantiumApi,
|
|
ErdApplianceType.AIR_CONDITIONER: WacApi,
|
|
ErdApplianceType.SPLIT_AIR_CONDITIONER: SacApi,
|
|
ErdApplianceType.PORTABLE_AIR_CONDITIONER: PacApi,
|
|
ErdApplianceType.BUILT_IN_AIR_CONDITIONER: BiacApi,
|
|
ErdApplianceType.HOOD: HoodApi,
|
|
ErdApplianceType.MICROWAVE: MicrowaveApi,
|
|
ErdApplianceType.OPAL_ICE_MAKER: OimApi,
|
|
ErdApplianceType.UNDER_COUNTER_ICE_MAKER: UcimApi,
|
|
ErdApplianceType.CAFE_COFFEE_MAKER: CcmApi,
|
|
ErdApplianceType.ESPRESSO_MAKER: EspressoMakerApi,
|
|
ErdApplianceType.DEHUMIDIFIER: DehumidifierApi
|
|
}
|
|
|
|
# Get the appliance type
|
|
return known_types.get(appliance_type, ApplianceApi)
|