ha_gehome/ge_kitchen/entities/common/ge_entity.py

41 lines
900 B
Python
Raw Normal View History

from typing import Optional, Dict, Any
from gekitchen import GeAppliance
from ge_kitchen.devices import ApplianceApi
class GeEntity:
"""Base class for all GE Entities"""
should_poll = False
def __init__(self, api: ApplianceApi):
self._api = api
self.hass = None
@property
def unique_id(self) -> str:
raise NotImplementedError
@property
def api(self) -> ApplianceApi:
return self._api
@property
def device_info(self) -> Optional[Dict[str, Any]]:
return self.api.device_info
@property
def serial_number(self):
return self.api.serial_number
@property
def available(self) -> bool:
return self.appliance.available
@property
def appliance(self) -> GeAppliance:
return self.api.appliance
@property
def name(self) -> Optional[str]:
raise NotImplementedError