Fix mqtt json light allows to set brightness value >255 (#104220)
This commit is contained in:
parent
ec069fbebf
commit
68f8b2cab5
2 changed files with 25 additions and 4 deletions
|
@ -367,10 +367,13 @@ class MqttLightJson(MqttEntity, LightEntity, RestoreEntity):
|
||||||
if brightness_supported(self.supported_color_modes):
|
if brightness_supported(self.supported_color_modes):
|
||||||
try:
|
try:
|
||||||
if brightness := values["brightness"]:
|
if brightness := values["brightness"]:
|
||||||
self._attr_brightness = int(
|
self._attr_brightness = min(
|
||||||
|
int(
|
||||||
brightness # type: ignore[operator]
|
brightness # type: ignore[operator]
|
||||||
/ float(self._config[CONF_BRIGHTNESS_SCALE])
|
/ float(self._config[CONF_BRIGHTNESS_SCALE])
|
||||||
* 255
|
* 255
|
||||||
|
),
|
||||||
|
255,
|
||||||
)
|
)
|
||||||
else:
|
else:
|
||||||
_LOGGER.debug(
|
_LOGGER.debug(
|
||||||
|
|
|
@ -1785,6 +1785,24 @@ async def test_brightness_scale(
|
||||||
assert state.state == STATE_ON
|
assert state.state == STATE_ON
|
||||||
assert state.attributes.get("brightness") == 255
|
assert state.attributes.get("brightness") == 255
|
||||||
|
|
||||||
|
# Turn on the light with half brightness
|
||||||
|
async_fire_mqtt_message(
|
||||||
|
hass, "test_light_bright_scale", '{"state":"ON", "brightness": 50}'
|
||||||
|
)
|
||||||
|
|
||||||
|
state = hass.states.get("light.test")
|
||||||
|
assert state.state == STATE_ON
|
||||||
|
assert state.attributes.get("brightness") == 128
|
||||||
|
|
||||||
|
# Test limmiting max brightness
|
||||||
|
async_fire_mqtt_message(
|
||||||
|
hass, "test_light_bright_scale", '{"state":"ON", "brightness": 103}'
|
||||||
|
)
|
||||||
|
|
||||||
|
state = hass.states.get("light.test")
|
||||||
|
assert state.state == STATE_ON
|
||||||
|
assert state.attributes.get("brightness") == 255
|
||||||
|
|
||||||
|
|
||||||
@pytest.mark.parametrize(
|
@pytest.mark.parametrize(
|
||||||
"hass_config",
|
"hass_config",
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue