Correct calculation and units of light level values. (#23309)

pull/23353/head
Richard Mitchell 2019-04-23 05:28:40 +01:00 committed by Paulus Schoutsen
parent f514d44224
commit df3ceb8d87
2 changed files with 12 additions and 7 deletions

View File

@ -27,12 +27,17 @@ class HueLightLevel(GenericHueGaugeSensorEntity):
"""The light level sensor entity for a Hue motion sensor device."""
device_class = DEVICE_CLASS_ILLUMINANCE
unit_of_measurement = "Lux"
unit_of_measurement = "lx"
@property
def state(self):
"""Return the state of the device."""
return self.sensor.lightlevel
# https://developers.meethue.com/develop/hue-api/supported-devices/#clip_zll_lightlevel
# Light level in 10000 log10 (lux) +1 measured by sensor. Logarithm
# scale used because the human eye adjusts to light levels and small
# changes at low lux levels are more noticeable than at high lux
# levels.
return 10 ** ((self.sensor.lightlevel - 1) / 10000)
@property
def device_state_attributes(self):

View File

@ -48,7 +48,7 @@ PRESENCE_SENSOR_1_PRESENT = {
}
LIGHT_LEVEL_SENSOR_1 = {
"state": {
"lightlevel": 0,
"lightlevel": 1,
"dark": True,
"daylight": True,
"lastupdated": "2019-01-01T01:00:00"
@ -141,7 +141,7 @@ PRESENCE_SENSOR_2_NOT_PRESENT = {
}
LIGHT_LEVEL_SENSOR_2 = {
"state": {
"lightlevel": 100,
"lightlevel": 10001,
"dark": True,
"daylight": True,
"lastupdated": "2019-01-01T01:00:00"
@ -234,7 +234,7 @@ PRESENCE_SENSOR_3_PRESENT = {
}
LIGHT_LEVEL_SENSOR_3 = {
"state": {
"lightlevel": 0,
"lightlevel": 1,
"dark": True,
"daylight": True,
"lastupdated": "2019-01-01T01:00:00"
@ -399,7 +399,7 @@ async def test_sensors(hass, mock_bridge):
assert presence_sensor_1 is not None
assert presence_sensor_1.state == 'on'
assert light_level_sensor_1 is not None
assert light_level_sensor_1.state == '0'
assert light_level_sensor_1.state == '1.0'
assert light_level_sensor_1.name == 'Living room sensor light level'
assert temperature_sensor_1 is not None
assert temperature_sensor_1.state == '17.75'
@ -414,7 +414,7 @@ async def test_sensors(hass, mock_bridge):
assert presence_sensor_2 is not None
assert presence_sensor_2.state == 'off'
assert light_level_sensor_2 is not None
assert light_level_sensor_2.state == '100'
assert light_level_sensor_2.state == '10.0'
assert light_level_sensor_2.name == 'Kitchen sensor light level'
assert temperature_sensor_2 is not None
assert temperature_sensor_2.state == '18.75'