Fix zha illuminance measured value mapping (#108547)
parent
3a510f84a7
commit
279f7264e7
|
@ -481,8 +481,12 @@ class Illuminance(Sensor):
|
|||
_attr_state_class: SensorStateClass = SensorStateClass.MEASUREMENT
|
||||
_attr_native_unit_of_measurement = LIGHT_LUX
|
||||
|
||||
def formatter(self, value: int) -> int:
|
||||
def formatter(self, value: int) -> int | None:
|
||||
"""Convert illumination data."""
|
||||
if value == 0:
|
||||
return 0
|
||||
if value == 0xFFFF:
|
||||
return None
|
||||
return round(pow(10, ((value - 1) / 10000)))
|
||||
|
||||
|
||||
|
|
|
@ -136,6 +136,12 @@ async def async_test_illuminance(hass, cluster, entity_id):
|
|||
await send_attributes_report(hass, cluster, {1: 1, 0: 10, 2: 20})
|
||||
assert_state(hass, entity_id, "1", LIGHT_LUX)
|
||||
|
||||
await send_attributes_report(hass, cluster, {1: 0, 0: 0, 2: 20})
|
||||
assert_state(hass, entity_id, "0", LIGHT_LUX)
|
||||
|
||||
await send_attributes_report(hass, cluster, {1: 0, 0: 0xFFFF, 2: 20})
|
||||
assert_state(hass, entity_id, "unknown", LIGHT_LUX)
|
||||
|
||||
|
||||
async def async_test_metering(hass, cluster, entity_id):
|
||||
"""Test Smart Energy metering sensor."""
|
||||
|
|
Loading…
Reference in New Issue