2020-12-28 15:46:15 -07:00
|
|
|
import logging
|
|
|
|
from typing import Type
|
|
|
|
|
2021-05-20 09:15:49 -06:00
|
|
|
from gehomesdk.erd import ErdApplianceType
|
2020-12-28 15:46:15 -07:00
|
|
|
|
|
|
|
from .base import ApplianceApi
|
|
|
|
from .oven import OvenApi
|
|
|
|
from .fridge import FridgeApi
|
|
|
|
from .dishwasher import DishwasherApi
|
2021-05-16 10:07:48 -06:00
|
|
|
from .washer import WasherApi
|
|
|
|
from .dryer import DryerApi
|
|
|
|
from .washer_dryer import WasherDryerApi
|
2020-12-28 15:46:15 -07:00
|
|
|
|
|
|
|
_LOGGER = logging.getLogger(__name__)
|
|
|
|
|
|
|
|
def get_appliance_api_type(appliance_type: ErdApplianceType) -> Type:
|
|
|
|
_LOGGER.debug(f"Found device type: {appliance_type}")
|
|
|
|
"""Get the appropriate appliance type"""
|
|
|
|
if appliance_type == ErdApplianceType.OVEN:
|
|
|
|
return OvenApi
|
|
|
|
if appliance_type == ErdApplianceType.FRIDGE:
|
|
|
|
return FridgeApi
|
|
|
|
if appliance_type == ErdApplianceType.DISH_WASHER:
|
|
|
|
return DishwasherApi
|
2021-05-16 10:07:48 -06:00
|
|
|
if appliance_type == ErdApplianceType.WASHER:
|
|
|
|
return WasherApi
|
|
|
|
if appliance_type == ErdApplianceType.DRYER:
|
|
|
|
return DryerApi
|
|
|
|
if appliance_type == ErdApplianceType.COMBINATION_WASHER_DRYER:
|
|
|
|
return WasherDryerApi
|
2020-12-28 15:46:15 -07:00
|
|
|
# Fallback
|
|
|
|
return ApplianceApi
|