mirror of
https://github.com/home-assistant/core.git
synced 2025-07-08 13:57:10 +00:00
Correct calculation and units of light level values. (#23309)
This commit is contained in:
parent
d0f9595ad9
commit
845d81bdae
@ -27,12 +27,17 @@ class HueLightLevel(GenericHueGaugeSensorEntity):
|
|||||||
"""The light level sensor entity for a Hue motion sensor device."""
|
"""The light level sensor entity for a Hue motion sensor device."""
|
||||||
|
|
||||||
device_class = DEVICE_CLASS_ILLUMINANCE
|
device_class = DEVICE_CLASS_ILLUMINANCE
|
||||||
unit_of_measurement = "Lux"
|
unit_of_measurement = "lx"
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def state(self):
|
def state(self):
|
||||||
"""Return the state of the device."""
|
"""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
|
@property
|
||||||
def device_state_attributes(self):
|
def device_state_attributes(self):
|
||||||
|
@ -48,7 +48,7 @@ PRESENCE_SENSOR_1_PRESENT = {
|
|||||||
}
|
}
|
||||||
LIGHT_LEVEL_SENSOR_1 = {
|
LIGHT_LEVEL_SENSOR_1 = {
|
||||||
"state": {
|
"state": {
|
||||||
"lightlevel": 0,
|
"lightlevel": 1,
|
||||||
"dark": True,
|
"dark": True,
|
||||||
"daylight": True,
|
"daylight": True,
|
||||||
"lastupdated": "2019-01-01T01:00:00"
|
"lastupdated": "2019-01-01T01:00:00"
|
||||||
@ -141,7 +141,7 @@ PRESENCE_SENSOR_2_NOT_PRESENT = {
|
|||||||
}
|
}
|
||||||
LIGHT_LEVEL_SENSOR_2 = {
|
LIGHT_LEVEL_SENSOR_2 = {
|
||||||
"state": {
|
"state": {
|
||||||
"lightlevel": 100,
|
"lightlevel": 10001,
|
||||||
"dark": True,
|
"dark": True,
|
||||||
"daylight": True,
|
"daylight": True,
|
||||||
"lastupdated": "2019-01-01T01:00:00"
|
"lastupdated": "2019-01-01T01:00:00"
|
||||||
@ -234,7 +234,7 @@ PRESENCE_SENSOR_3_PRESENT = {
|
|||||||
}
|
}
|
||||||
LIGHT_LEVEL_SENSOR_3 = {
|
LIGHT_LEVEL_SENSOR_3 = {
|
||||||
"state": {
|
"state": {
|
||||||
"lightlevel": 0,
|
"lightlevel": 1,
|
||||||
"dark": True,
|
"dark": True,
|
||||||
"daylight": True,
|
"daylight": True,
|
||||||
"lastupdated": "2019-01-01T01:00:00"
|
"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 is not None
|
||||||
assert presence_sensor_1.state == 'on'
|
assert presence_sensor_1.state == 'on'
|
||||||
assert light_level_sensor_1 is not None
|
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 light_level_sensor_1.name == 'Living room sensor light level'
|
||||||
assert temperature_sensor_1 is not None
|
assert temperature_sensor_1 is not None
|
||||||
assert temperature_sensor_1.state == '17.75'
|
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 is not None
|
||||||
assert presence_sensor_2.state == 'off'
|
assert presence_sensor_2.state == 'off'
|
||||||
assert light_level_sensor_2 is not None
|
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 light_level_sensor_2.name == 'Kitchen sensor light level'
|
||||||
assert temperature_sensor_2 is not None
|
assert temperature_sensor_2 is not None
|
||||||
assert temperature_sensor_2.state == '18.75'
|
assert temperature_sensor_2.state == '18.75'
|
||||||
|
Loading…
x
Reference in New Issue
Block a user