- added current_option override in select entity

This commit is contained in:
Jack Simbach 2021-07-13 14:42:22 -04:00
parent b973bc3698
commit fe47488d65
2 changed files with 14 additions and 2 deletions

View File

@ -1,6 +1,6 @@
import logging
from typing import Any, List
from typing import Any, List, Optional
from homeassistant.components.select import SelectEntity
from gehomesdk import ErdCodeType
@ -16,6 +16,8 @@ class OptionsConverter:
return []
def from_option_string(self, value: str) -> Any:
return value
def to_option_string(self, value: Any) -> Optional[str]:
return str(value)
class GeErdSelect(GeErdEntity, SelectEntity):
"""ERD-based selector entity"""
@ -25,6 +27,9 @@ class GeErdSelect(GeErdEntity, SelectEntity):
super().__init__(api, erd_code, erd_override=erd_override, icon_override=icon_override, device_class_override=device_class_override)
self._converter = converter
def current_option(self):
return self._converter.to_option_string(self.appliance.get_erd_value(self.erd_code))
def options(self) -> List[str]:
"Return a list of options"
return self._converter.options

View File

@ -1,5 +1,5 @@
import logging
from typing import List, Any
from typing import List, Any, Optional
from gehomesdk import ErdCodeType, ErdWaterFilterPosition
from ...devices import ApplianceApi
@ -15,6 +15,13 @@ class FilterPositionOptionsConverter(OptionsConverter):
return ErdWaterFilterPosition[value]
except:
return ErdWaterFilterPosition.UNKNOWN
def to_option_string(self, value: Any) -> Optional[str]:
try:
if value is not None:
return value.name.title()
except:
pass
return ErdWaterFilterPosition.UNKNOWN.name.title()
class GeErdFilterPositionSelect(GeErdSelect):
def __init__(self, api: ApplianceApi, erd_code: ErdCodeType):