Reduce tplink loss of precision during brightness conversion (#34210)

This commit is contained in:
J. Nick Koston 2020-04-14 13:48:35 -05:00 committed by GitHub
parent e2af216bcd
commit f516b24dfb
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 11 additions and 11 deletions

View File

@ -75,12 +75,12 @@ def add_entity(device: SmartBulb, async_add_entities):
def brightness_to_percentage(byt):
"""Convert brightness from absolute 0..255 to percentage."""
return int((byt * 100.0) / 255.0)
return round((byt * 100.0) / 255.0)
def brightness_from_percentage(percent):
"""Convert percentage to absolute value 0..255."""
return (percent * 255.0) / 100.0
return round((percent * 255.0) / 100.0)
class LightState(NamedTuple):

View File

@ -287,7 +287,7 @@ async def test_smartswitch(
state = hass.states.get("light.dimmer1")
assert state.state == "on"
assert state.attributes["brightness"] == 48.45
assert state.attributes["brightness"] == 51
assert sys_info["relay_state"] == 1
await hass.services.async_call(
@ -301,8 +301,8 @@ async def test_smartswitch(
state = hass.states.get("light.dimmer1")
assert state.state == "on"
assert state.attributes["brightness"] == 53.55
assert sys_info["brightness"] == 21
assert state.attributes["brightness"] == 56
assert sys_info["brightness"] == 22
sys_info["relay_state"] = 0
sys_info["brightness"] = 66
@ -327,7 +327,7 @@ async def test_smartswitch(
state = hass.states.get("light.dimmer1")
assert state.state == "on"
assert state.attributes["brightness"] == 168.3
assert state.attributes["brightness"] == 168
assert sys_info["brightness"] == 66
@ -373,7 +373,7 @@ async def test_light(hass: HomeAssistant, light_mock_data: LightMockData) -> Non
state = hass.states.get("light.light1")
assert state.state == "on"
assert state.attributes["brightness"] == 48.45
assert state.attributes["brightness"] == 51
assert state.attributes["hs_color"] == (110, 90)
assert state.attributes["color_temp"] == 222
assert light_state["on_off"] == 1
@ -389,9 +389,9 @@ async def test_light(hass: HomeAssistant, light_mock_data: LightMockData) -> Non
state = hass.states.get("light.light1")
assert state.state == "on"
assert state.attributes["brightness"] == 53.55
assert state.attributes["brightness"] == 56
assert state.attributes["hs_color"] == (23, 27)
assert light_state["brightness"] == 21
assert light_state["brightness"] == 22
assert light_state["hue"] == 23
assert light_state["saturation"] == 27
@ -423,7 +423,7 @@ async def test_light(hass: HomeAssistant, light_mock_data: LightMockData) -> Non
state = hass.states.get("light.light1")
assert state.state == "on"
assert state.attributes["brightness"] == 168.3
assert state.attributes["brightness"] == 168
assert state.attributes["hs_color"] == (77, 78)
assert state.attributes["color_temp"] == 156
assert light_state["brightness"] == 66
@ -434,7 +434,7 @@ async def test_light(hass: HomeAssistant, light_mock_data: LightMockData) -> Non
await update_entity(hass, "light.light1")
state = hass.states.get("light.light1")
assert state.attributes["brightness"] == 232.05
assert state.attributes["brightness"] == 232
async def test_get_light_state_retry(