- added ability to have a uom override

- fixed a few sensor configurations
This commit is contained in:
Jack Simbach 2021-07-22 22:46:38 -04:00
parent 2c51691c73
commit d616f21ac5
3 changed files with 24 additions and 7 deletions

View File

@ -22,7 +22,7 @@ class DishwasherApi(ApplianceApi):
GeErdSensor(self, ErdCode.DISHWASHER_CYCLE_NAME),
GeErdSensor(self, ErdCode.DISHWASHER_CYCLE_STATE),
GeErdSensor(self, ErdCode.DISHWASHER_OPERATING_MODE),
GeErdSensor(self, ErdCode.DISHWASHER_PODS_REMAINING_VALUE),
GeErdSensor(self, ErdCode.DISHWASHER_PODS_REMAINING_VALUE, uom_override="pods"),
GeErdSensor(self, ErdCode.DISHWASHER_RINSE_AGENT, icon_override="mdi:sparkles"),
GeErdSensor(self, ErdCode.DISHWASHER_TIME_REMAINING),
GeErdBinarySensor(self, ErdCode.DISHWASHER_DOOR_STATUS),
@ -31,7 +31,7 @@ class DishwasherApi(ApplianceApi):
GeErdPropertySensor(self, ErdCode.DISHWASHER_USER_SETTING, "sound", icon_override="mdi:volume-high"),
GeErdPropertySensor(self, ErdCode.DISHWASHER_USER_SETTING, "lock_control", icon_override="mdi:lock"),
GeErdPropertySensor(self, ErdCode.DISHWASHER_USER_SETTING, "sabbath", icon_override="mdi:star-david"),
GeErdPropertySensor(self, ErdCode.DISHWASHER_USER_SETTING, "cycle_mode"),
GeErdPropertySensor(self, ErdCode.DISHWASHER_USER_SETTING, "cycle_mode", icon_override="mdi:state-machine"),
GeErdPropertySensor(self, ErdCode.DISHWASHER_USER_SETTING, "presoak"),
GeErdPropertySensor(self, ErdCode.DISHWASHER_USER_SETTING, "bottle_jet"),
GeErdPropertySensor(self, ErdCode.DISHWASHER_USER_SETTING, "wash_temp", icon_override="mdi:coolant-temperature"),

View File

@ -55,11 +55,11 @@ class DryerApi(ApplianceApi):
if self.has_erd_code(ErdCode.LAUNDRY_DRYER_LEVEL_SENSOR_DISABLED):
dryer_entities.extend([GeErdBinarySensor(self, ErdCode.LAUNDRY_DRYER_LEVEL_SENSOR_DISABLED)])
if self.has_erd_code(ErdCode.LAUNDRY_DRYER_SHEET_USAGE_CONFIGURATION):
dryer_entities.extend([GeErdBinarySensor(self, ErdCode.LAUNDRY_DRYER_SHEET_USAGE_CONFIGURATION)])
dryer_entities.extend([GeErdSensor(self, ErdCode.LAUNDRY_DRYER_SHEET_USAGE_CONFIGURATION)])
if self.has_erd_code(ErdCode.LAUNDRY_DRYER_SHEET_INVENTORY):
dryer_entities.extend([GeErdBinarySensor(self, ErdCode.LAUNDRY_DRYER_SHEET_INVENTORY)])
dryer_entities.extend([GeErdSensor(self, ErdCode.LAUNDRY_DRYER_SHEET_INVENTORY, uom_override="sheets")])
if self.has_erd_code(ErdCode.LAUNDRY_DRYER_ECODRY_STATUS):
dryer_entities.extend([GeErdBinarySensor(self, ErdCode.LAUNDRY_DRYER_ECODRY_STATUS)])
dryer_entities.extend([GeErdSensor(self, ErdCode.LAUNDRY_DRYER_ECODRY_STATUS)])
return dryer_entities

View File

@ -8,14 +8,26 @@ from homeassistant.const import (
TEMP_FAHRENHEIT,
)
from homeassistant.helpers.entity import Entity
from gehomesdk import ErdCode, ErdCodeClass, ErdMeasurementUnits
from gehomesdk import ErdCode, ErdCodeType, ErdCodeClass, ErdMeasurementUnits
from .ge_erd_entity import GeErdEntity
from ...devices import ApplianceApi
class GeErdSensor(GeErdEntity, Entity):
"""GE Entity for sensors"""
def __init__(
self,
api: ApplianceApi,
erd_code: ErdCodeType,
erd_override: str,
icon_override: str,
device_class_override: str,
uom_override: str
):
super().__init__(api, erd_code, erd_override, icon_override, device_class_override)
self._uom_override = uom_override
@property
def state(self) -> Optional[str]:
try:
@ -38,6 +50,11 @@ class GeErdSensor(GeErdEntity, Entity):
def _get_uom(self):
"""Select appropriate units"""
#if we have an override, just use it
if self._uom_override:
return self._uom_override
if (
self.erd_code_class
in [ErdCodeClass.RAW_TEMPERATURE, ErdCodeClass.NON_ZERO_TEMPERATURE]