- sensor configuration updates

This commit is contained in:
Jack Simbach 2020-12-29 12:02:56 -05:00
parent ebd50d10de
commit 1374b3629e
7 changed files with 54 additions and 27 deletions

View File

@ -22,7 +22,7 @@ class DishwasherApi(ApplianceApi):
GeErdSensor(self, ErdCode.CYCLE_STATE), GeErdSensor(self, ErdCode.CYCLE_STATE),
GeErdSensor(self, ErdCode.OPERATING_MODE), GeErdSensor(self, ErdCode.OPERATING_MODE),
GeErdSensor(self, ErdCode.PODS_REMAINING_VALUE), GeErdSensor(self, ErdCode.PODS_REMAINING_VALUE),
GeErdSensor(self, ErdCode.RINSE_AGENT), GeErdSensor(self, ErdCode.RINSE_AGENT, icon_override="mdi:sparkle"),
GeErdSensor(self, ErdCode.TIME_REMAINING), GeErdSensor(self, ErdCode.TIME_REMAINING),
] ]
entities = base_entities + dishwasher_entities entities = base_entities + dishwasher_entities

View File

@ -1,3 +1,5 @@
from homeassistant.components.binary_sensor import DEVICE_CLASS_PROBLEM
from homeassistant.const import DEVICE_CLASS_TEMPERATURE
import logging import logging
from typing import List from typing import List
@ -5,7 +7,15 @@ from homeassistant.helpers.entity import Entity
from gekitchen.erd import ErdCode, ErdApplianceType from gekitchen.erd import ErdCode, ErdApplianceType
from .base import ApplianceApi from .base import ApplianceApi
from ..entities import GeErdSensor, GeErdSwitch, GeFridgeEntity, GeFreezerEntity from ..entities import (
GeErdSensor,
GeErdSwitch,
GeFridge,
GeFreezer,
GeDispenser,
GeErdPropertySensor,
GeErdPropertyBinarySensor
)
_LOGGER = logging.getLogger(__name__) _LOGGER = logging.getLogger(__name__)
@ -15,17 +25,38 @@ class FridgeApi(ApplianceApi):
def get_all_entities(self) -> List[Entity]: def get_all_entities(self) -> List[Entity]:
base_entities = super().get_all_entities() base_entities = super().get_all_entities()
fridge_entities = []
freezer_entities = []
dispenser_entities = []
fridge_entities = [ common_entities = [
GeErdSensor(self, ErdCode.AIR_FILTER_STATUS),
GeErdSensor(self, ErdCode.DOOR_STATUS),
GeErdSensor(self, ErdCode.FRIDGE_MODEL_INFO), GeErdSensor(self, ErdCode.FRIDGE_MODEL_INFO),
GeErdSwitch(self, ErdCode.SABBATH_MODE),
GeErdSensor(self, ErdCode.DOOR_STATUS),
GeErdPropertyBinarySensor(self, ErdCode.DOOR_STATUS, "any_open")
]
fridge_entities.extend([
GeErdSensor(self, ErdCode.WATER_FILTER_STATUS),
GeErdPropertySensor(self, ErdCode.CURRENT_TEMPERATURE, "fridge"),
GeFridge(self),
])
freezer_entities.extend([
GeErdPropertySensor(self, ErdCode.CURRENT_TEMPERATURE, "freezer"),
GeFreezer(self),
])
dispenser_entities.extend([
GeErdSensor(self, ErdCode.HOT_WATER_IN_USE), GeErdSensor(self, ErdCode.HOT_WATER_IN_USE),
GeErdSensor(self, ErdCode.HOT_WATER_SET_TEMP), GeErdSensor(self, ErdCode.HOT_WATER_SET_TEMP),
GeErdSensor(self, ErdCode.HOT_WATER_STATUS), GeErdPropertySensor(self, ErdCode.HOT_WATER_STATUS, "status"),
GeErdSwitch(self, ErdCode.SABBATH_MODE), GeErdPropertySensor(self, ErdCode.HOT_WATER_STATUS, "time_remaining", icon_override="mdi:timer-outline"),
GeFreezerEntity(self), GeErdPropertySensor(self, ErdCode.HOT_WATER_STATUS, "time_remaining", device_class_override=DEVICE_CLASS_TEMPERATURE),
GeFridgeEntity(self), GeErdPropertyBinarySensor(self, ErdCode.HOT_WATER_STATUS, "faulted", device_class_override=DEVICE_CLASS_PROBLEM),
] GeDispenser(self)
entities = base_entities + fridge_entities ])
entities = base_entities + common_entities + fridge_entities + freezer_entities + dispenser_entities
return entities return entities

View File

@ -1,6 +1,7 @@
import logging import logging
from typing import List from typing import List
from homeassistant.const import DEVICE_CLASS_POWER_FACTOR
from homeassistant.helpers.entity import Entity from homeassistant.helpers.entity import Entity
from gekitchen import ( from gekitchen import (
ErdCode, ErdCode,
@ -16,7 +17,6 @@ from ..entities import (
GeErdBinarySensor, GeErdBinarySensor,
GeErdPropertyBinarySensor, GeErdPropertyBinarySensor,
GeOven, GeOven,
GeErdCooktopBurnerSensor,
UPPER_OVEN, UPPER_OVEN,
LOWER_OVEN LOWER_OVEN
) )
@ -76,7 +76,7 @@ class OvenApi(ApplianceApi):
cooktop_entities.append(GeErdPropertyBinarySensor(self, ErdCode.COOKTOP_STATUS, k+".on")) cooktop_entities.append(GeErdPropertyBinarySensor(self, ErdCode.COOKTOP_STATUS, k+".on"))
cooktop_entities.append(GeErdPropertyBinarySensor(self, ErdCode.COOKTOP_STATUS, k+".synchronized")) cooktop_entities.append(GeErdPropertyBinarySensor(self, ErdCode.COOKTOP_STATUS, k+".synchronized"))
if not v.on_off_only: if not v.on_off_only:
cooktop_entities.append(GeErdCooktopBurnerSensor(self, ErdCode.COOKTOP_STATUS, k+".power_pct")) cooktop_entities.append(GeErdSensor(self, ErdCode.COOKTOP_STATUS, k+".power_pct", icon_override="mdi:fire", device_class_override=DEVICE_CLASS_POWER_FACTOR))
return base_entities + oven_entities + cooktop_entities return base_entities + oven_entities + cooktop_entities

View File

@ -81,6 +81,8 @@ class GeErdEntity(GeEntity):
return None return None
if self.erd_code_class == ErdCodeClass.CLOCK: if self.erd_code_class == ErdCodeClass.CLOCK:
return "mdi:clock" return "mdi:clock"
if self.erd_code_class == ErdCodeClass.COUNTER:
return "mdi:counter"
if self.erd_code_class == ErdCodeClass.DOOR: if self.erd_code_class == ErdCodeClass.DOOR:
return "mdi:door" return "mdi:door"
if self.erd_code_class == ErdCodeClass.TIMER: if self.erd_code_class == ErdCodeClass.TIMER:

View File

@ -47,3 +47,11 @@ class GeErdSensor(GeErdEntity, Entity):
return DEVICE_CLASS_BATTERY return DEVICE_CLASS_BATTERY
return None return None
def _get_icon(self):
if self.erd_code_class == ErdCodeClass.DOOR:
if self.state.lower().endswith("open"):
return "mdi:door-open"
if self.state.lower().endswith("closed"):
return "mdi:door-closed"
return super()._get_icon()

View File

@ -1,3 +1,2 @@
from .ge_oven import GeOven from .ge_oven import GeOven
from .ge_erd_cooktop_burner_sensor import GeErdCooktopBurnerSensor
from .const import UPPER_OVEN, LOWER_OVEN from .const import UPPER_OVEN, LOWER_OVEN

View File

@ -1,13 +0,0 @@
from typing import Optional
from ..common import GeErdPropertySensor
class GeErdCooktopBurnerSensor(GeErdPropertySensor):
icon = "mdi:fire"
@property
def units(self) -> Optional[str]:
return "%"
@property
def device_class(self) -> Optional[str]:
return "power_factor"