fix: correct brightness mapping for 0-255 configured light devices

Removed the erroneous brightness value mapping (1-100 ↔ 0-255) for devices
configured with brightness range [0, 255]. The previous logic incorrectly
assumed these devices actually operated in a 1-100 range, causing inaccurate
brightness values.
This commit is contained in:
Cyborg2017
2026-01-30 13:41:24 +08:00
parent 3cc231d65f
commit 81b8a509bc

View File

@@ -165,11 +165,9 @@ class MideaLightEntity(MideaEntity, LightEntity):
if brightness_value is not None:
brightness_value = int(brightness_value)
if brightness_value is not None:
# 如果配置是[0, 255]但实际设备范围是1-100需要特殊处理
# 配置是[0, 255]直接使用
if self._brightness_min == 0 and self._brightness_max == 255:
# 特殊处理设备1-100范围映射到HA的0-255范围
ha_brightness = round(brightness_value * 2.55) # 1-100 -> 0-255
return max(1, min(255, ha_brightness))
return max(1, min(255, brightness_value))
else:
# 正常范围映射
device_range = self._brightness_max - self._brightness_min
@@ -244,11 +242,11 @@ class MideaLightEntity(MideaEntity, LightEntity):
if target_brightness is not None and self._key_brightness and self._brightness_is_range:
# 范围模式将Home Assistant的0-255映射到设备范围
# 如果配置是[0, 255]但实际设备范围是1-100需要特殊处理
target_brightness = max(0, min(255, target_brightness))
# 配置是[0, 255]直接使用
if self._brightness_min == 0 and self._brightness_max == 255:
# 特殊处理:配置[0,255]但实际设备范围是1-100
device_brightness = round(target_brightness / 2.55) # 0-255 -> 0-100
device_brightness = max(1, min(100, device_brightness)) # 确保在1-100范围内
device_brightness = target_brightness
else:
# 正常范围映射
device_range = self._brightness_max - self._brightness_min