Add IlluminanceMeasurementSensor to ZHA (#14563)

* add IlluminanceMeasurementSensor

* address review comment

* Fix whitespace error during merge
This commit is contained in:
David F. Mulcahey 2018-05-21 00:56:41 -04:00 committed by Russell Cloran
parent 0589379de5
commit a183043d5d
2 changed files with 19 additions and 1 deletions

View file

@ -32,7 +32,8 @@ def async_setup_platform(hass, config, async_add_devices, discovery_info=None):
def make_sensor(discovery_info): def make_sensor(discovery_info):
"""Create ZHA sensors factory.""" """Create ZHA sensors factory."""
from zigpy.zcl.clusters.measurement import ( from zigpy.zcl.clusters.measurement import (
RelativeHumidity, TemperatureMeasurement, PressureMeasurement RelativeHumidity, TemperatureMeasurement, PressureMeasurement,
IlluminanceMeasurement
) )
from zigpy.zcl.clusters.smartenergy import Metering from zigpy.zcl.clusters.smartenergy import Metering
in_clusters = discovery_info['in_clusters'] in_clusters = discovery_info['in_clusters']
@ -42,6 +43,8 @@ def make_sensor(discovery_info):
sensor = TemperatureSensor(**discovery_info) sensor = TemperatureSensor(**discovery_info)
elif PressureMeasurement.cluster_id in in_clusters: elif PressureMeasurement.cluster_id in in_clusters:
sensor = PressureSensor(**discovery_info) sensor = PressureSensor(**discovery_info)
elif IlluminanceMeasurement.cluster_id in in_clusters:
sensor = IlluminanceMeasurementSensor(**discovery_info)
elif Metering.cluster_id in in_clusters: elif Metering.cluster_id in in_clusters:
sensor = MeteringSensor(**discovery_info) sensor = MeteringSensor(**discovery_info)
else: else:
@ -148,6 +151,20 @@ class PressureSensor(Sensor):
return round(float(self._state)) return round(float(self._state))
class IlluminanceMeasurementSensor(Sensor):
"""ZHA lux sensor."""
@property
def unit_of_measurement(self):
"""Return the unit of measurement of this entity."""
return 'lx'
@property
def state(self):
"""Return the state of the entity."""
return self._state
class MeteringSensor(Sensor): class MeteringSensor(Sensor):
"""ZHA Metering sensor.""" """ZHA Metering sensor."""

View file

@ -48,6 +48,7 @@ def populate_data():
zcl.clusters.measurement.RelativeHumidity: 'sensor', zcl.clusters.measurement.RelativeHumidity: 'sensor',
zcl.clusters.measurement.TemperatureMeasurement: 'sensor', zcl.clusters.measurement.TemperatureMeasurement: 'sensor',
zcl.clusters.measurement.PressureMeasurement: 'sensor', zcl.clusters.measurement.PressureMeasurement: 'sensor',
zcl.clusters.measurement.IlluminanceMeasurement: 'sensor',
zcl.clusters.smartenergy.Metering: 'sensor', zcl.clusters.smartenergy.Metering: 'sensor',
zcl.clusters.security.IasZone: 'binary_sensor', zcl.clusters.security.IasZone: 'binary_sensor',
zcl.clusters.hvac.Fan: 'fan', zcl.clusters.hvac.Fan: 'fan',