Make sure MQTT light brightness is not rounded to 0 (#35207)

This commit is contained in:
Erik Montnemery 2020-05-05 00:54:49 +02:00 committed by GitHub
parent 94b6130af6
commit f9b420a5a5
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 209 additions and 12 deletions

View file

@ -459,11 +459,14 @@ class MqttLightJson(
message["transition"] = kwargs[ATTR_TRANSITION]
if ATTR_BRIGHTNESS in kwargs and self._brightness is not None:
message["brightness"] = int(
kwargs[ATTR_BRIGHTNESS]
/ float(DEFAULT_BRIGHTNESS_SCALE)
* self._config[CONF_BRIGHTNESS_SCALE]
brightness_normalized = kwargs[ATTR_BRIGHTNESS] / DEFAULT_BRIGHTNESS_SCALE
brightness_scale = self._config[CONF_BRIGHTNESS_SCALE]
device_brightness = min(
round(brightness_normalized * brightness_scale), brightness_scale
)
# Make sure the brightness is not rounded down to 0
device_brightness = max(device_brightness, 1)
message["brightness"] = device_brightness
if self._optimistic:
self._brightness = kwargs[ATTR_BRIGHTNESS]