Add RainMachine device classes where appropriate (#24682)

This commit is contained in:
Aaron Bach 2019-06-21 17:12:28 -06:00 committed by GitHub
parent 9b52b9bf66
commit 729df112a7
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 17 additions and 7 deletions

View File

@ -69,14 +69,15 @@ BINARY_SENSORS = {
SENSORS = { SENSORS = {
TYPE_FLOW_SENSOR_CLICK_M3: ( TYPE_FLOW_SENSOR_CLICK_M3: (
'Flow Sensor Clicks', 'mdi:water-pump', 'clicks/m^3'), 'Flow Sensor Clicks', 'mdi:water-pump', 'clicks/m^3', None),
TYPE_FLOW_SENSOR_CONSUMED_LITERS: ( TYPE_FLOW_SENSOR_CONSUMED_LITERS: (
'Flow Sensor Consumed Liters', 'mdi:water-pump', 'liter'), 'Flow Sensor Consumed Liters', 'mdi:water-pump', 'liter', None),
TYPE_FLOW_SENSOR_START_INDEX: ( TYPE_FLOW_SENSOR_START_INDEX: (
'Flow Sensor Start Index', 'mdi:water-pump', None), 'Flow Sensor Start Index', 'mdi:water-pump', None),
TYPE_FLOW_SENSOR_WATERING_CLICKS: ( TYPE_FLOW_SENSOR_WATERING_CLICKS: (
'Flow Sensor Clicks', 'mdi:water-pump', 'clicks'), 'Flow Sensor Clicks', 'mdi:water-pump', 'clicks', None),
TYPE_FREEZE_TEMP: ('Freeze Protect Temperature', 'mdi:thermometer', '°C'), TYPE_FREEZE_TEMP: (
'Freeze Protect Temperature', 'mdi:thermometer', '°C', 'temperature'),
} }
BINARY_SENSOR_SCHEMA = vol.Schema({ BINARY_SENSOR_SCHEMA = vol.Schema({
@ -371,10 +372,16 @@ class RainMachineEntity(Entity):
def __init__(self, rainmachine): def __init__(self, rainmachine):
"""Initialize.""" """Initialize."""
self._attrs = {ATTR_ATTRIBUTION: DEFAULT_ATTRIBUTION} self._attrs = {ATTR_ATTRIBUTION: DEFAULT_ATTRIBUTION}
self._device_class = None
self._dispatcher_handlers = [] self._dispatcher_handlers = []
self._name = None self._name = None
self.rainmachine = rainmachine self.rainmachine = rainmachine
@property
def device_class(self):
"""Return the device class."""
return self._device_class
@property @property
def device_info(self): def device_info(self):
"""Return device registry information for this entity.""" """Return device registry information for this entity."""

View File

@ -26,9 +26,10 @@ async def async_setup_entry(hass, entry, async_add_entities):
sensors = [] sensors = []
for sensor_type in rainmachine.sensor_conditions: for sensor_type in rainmachine.sensor_conditions:
name, icon, unit = SENSORS[sensor_type] name, icon, unit, device_class = SENSORS[sensor_type]
sensors.append( sensors.append(
RainMachineSensor(rainmachine, sensor_type, name, icon, unit)) RainMachineSensor(
rainmachine, sensor_type, name, icon, unit, device_class))
async_add_entities(sensors, True) async_add_entities(sensors, True)
@ -36,10 +37,12 @@ async def async_setup_entry(hass, entry, async_add_entities):
class RainMachineSensor(RainMachineEntity): class RainMachineSensor(RainMachineEntity):
"""A sensor implementation for raincloud device.""" """A sensor implementation for raincloud device."""
def __init__(self, rainmachine, sensor_type, name, icon, unit): def __init__(
self, rainmachine, sensor_type, name, icon, unit, device_class):
"""Initialize.""" """Initialize."""
super().__init__(rainmachine) super().__init__(rainmachine)
self._device_class = device_class
self._icon = icon self._icon = icon
self._name = name self._name = name
self._sensor_type = sensor_type self._sensor_type = sensor_type