Skip to content

Commit a8e161c

Browse files
committed
- added temperature label for fridge drawer options
1 parent a0f4982 commit a8e161c

File tree

2 files changed

+29
-5
lines changed

2 files changed

+29
-5
lines changed

custom_components/ge_home/devices/fridge.py

+3-1
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,8 @@ def get_all_entities(self) -> List[Entity]:
5959
interior_light: int = self.try_get_erd_value(ErdCode.INTERIOR_LIGHT)
6060
proximity_light: ErdOnOff = self.try_get_erd_value(ErdCode.PROXIMITY_LIGHT)
6161

62+
units = self.hass.config.units
63+
6264
# Common entities
6365
common_entities = [
6466
GeErdSensor(self, ErdCode.FRIDGE_MODEL_INFO),
@@ -88,7 +90,7 @@ def get_all_entities(self) -> List[Entity]:
8890
if(proximity_light and proximity_light != ErdOnOff.NA):
8991
fridge_entities.append(GeErdSwitch(self, ErdCode.PROXIMITY_LIGHT, ErdOnOffBoolConverter(), icon_on_override="mdi:lightbulb-on", icon_off_override="mdi:lightbulb"))
9092
if(convertable_drawer and convertable_drawer != ErdConvertableDrawerMode.NA):
91-
fridge_entities.append(GeErdSelect(self, ErdCode.CONVERTABLE_DRAWER_MODE, ConvertableDrawerModeOptionsConverter()))
93+
fridge_entities.append(GeErdSelect(self, ErdCode.CONVERTABLE_DRAWER_MODE, ConvertableDrawerModeOptionsConverter(units)))
9294

9395
# Freezer entities
9496
if fridge_model_info is None or fridge_model_info.has_freezer:

custom_components/ge_home/entities/fridge/convertable_drawer_mode_options.py

+26-4
Original file line numberDiff line numberDiff line change
@@ -2,33 +2,55 @@
22
from typing import List, Any, Optional
33

44
from gehomesdk import ErdConvertableDrawerMode
5+
from homeassistant.const import TEMP_FAHRENHEIT
6+
from homeassistant.util.unit_system import UnitSystem
57
from ..common import OptionsConverter
68

79
_LOGGER = logging.getLogger(__name__)
810

11+
_TEMP_MAP = {
12+
ErdConvertableDrawerMode.MEAT: 29,
13+
ErdConvertableDrawerMode.BEVERAGE: 33,
14+
ErdConvertableDrawerMode.SNACK: 37,
15+
ErdConvertableDrawerMode.WINE: 42
16+
}
17+
918
class ConvertableDrawerModeOptionsConverter(OptionsConverter):
10-
def __init__(self):
19+
def __init__(self, units: UnitSystem):
1120
super().__init__()
1221
self._excluded_options = [
1322
ErdConvertableDrawerMode.UNKNOWN0,
1423
ErdConvertableDrawerMode.UNKNOWN1,
1524
ErdConvertableDrawerMode.NA
1625
]
26+
self._units = units
1727

1828
@property
1929
def options(self) -> List[str]:
20-
return [i.stringify() for i in ErdConvertableDrawerMode if i not in self._excluded_options]
30+
return [self.to_option_string(i) for i in ErdConvertableDrawerMode if i not in self._excluded_options]
31+
2132
def from_option_string(self, value: str) -> Any:
2233
try:
23-
return ErdConvertableDrawerMode[value.upper()]
34+
v = value.split(" ")[0]
35+
return ErdConvertableDrawerMode[v.upper()]
2436
except:
2537
_LOGGER.warn(f"Could not set hood light level to {value.upper()}")
2638
return ErdConvertableDrawerMode.NA
2739
def to_option_string(self, value: ErdConvertableDrawerMode) -> Optional[str]:
2840
try:
2941
if value is not None:
30-
return value.stringify()
42+
v = value.stringify()
43+
t = _TEMP_MAP.get(value, None)
44+
45+
if t and self._units.is_metric:
46+
t = self._units.temperature(float(t), TEMP_FAHRENHEIT)
47+
t = round(t,1)
48+
49+
if t:
50+
return f"{v} ({t}{self._units.temperature_unit})"
51+
return v
3152
except:
3253
pass
54+
3355
return ErdConvertableDrawerMode.NA.stringify()
3456

0 commit comments

Comments
 (0)