43 lines
1.3 KiB
Python
43 lines
1.3 KiB
Python
import abc
|
|
import logging
|
|
from typing import Any, Dict, List, Optional
|
|
|
|
from homeassistant.components.water_heater import WaterHeaterEntity
|
|
from homeassistant.const import UnitOfTemperature
|
|
from gehomesdk import ErdCode, ErdMeasurementUnits
|
|
from ...const import DOMAIN
|
|
from .ge_erd_entity import GeEntity
|
|
|
|
_LOGGER = logging.getLogger(__name__)
|
|
|
|
class GeAbstractWaterHeater(GeEntity, WaterHeaterEntity, metaclass=abc.ABCMeta):
|
|
"""Mock temperature/operation mode supporting device as a water heater"""
|
|
|
|
@property
|
|
def heater_type(self) -> str:
|
|
raise NotImplementedError
|
|
|
|
@property
|
|
def operation_list(self) -> List[str]:
|
|
raise NotImplementedError
|
|
|
|
@property
|
|
def unique_id(self) -> str:
|
|
return f"{DOMAIN}_{self.serial_or_mac}_{self.heater_type}"
|
|
|
|
@property
|
|
def name(self) -> Optional[str]:
|
|
return f"{self.serial_or_mac} {self.heater_type.title()}"
|
|
|
|
@property
|
|
def temperature_unit(self):
|
|
#It appears that the GE API is alwasy Fehrenheit
|
|
#measurement_system = self.appliance.get_erd_value(ErdCode.TEMPERATURE_UNIT)
|
|
#if measurement_system == ErdMeasurementUnits.METRIC:
|
|
# return UnitOfTemperature.CELSIUS
|
|
return UnitOfTemperature.FAHRENHEIT
|
|
|
|
@property
|
|
def supported_features(self):
|
|
raise NotImplementedError
|