我的目标是读出我的设备的当前RGB值(这部分工作),并用亮度值计算新的RGB值。亮度值通过mqtt提供,介于0和255之间,RGB值的范围也在0到255之间。目前,我没有得到可用的RGB值,比如100023等等\N
我的代码使用回调,每个回调都是为多个设备设置的。我有一个带有if语句的回调,它检查负载并执行每种情况,如state = 0
或color = [245, 0, 30]
我的第一个想法是通过将0到255的范围映射到0到100的范围,并将每个RGb值与fac相乘,来计算一个名为fac的值,但这会产生无法使用的输出。在当前的代码中,我添加了一些数学来获得可用的值,但是我在其中有一些想法错误
一些最小代码:
elif 'brightness' in payload: #brightness changed
print(f"brightness changed: {payload['brightness']}")
color = {}
led_info = sdk.get_led_positions_by_device_index(device_index)
current_color = sdk.get_led_colors_by_device_index(device_index, list(led_info))
current_color2 = tuple(current_color.values())
print(f"nwo current color is: {current_color2}")
current_color3 = current_color2[1]
print(type(current_color3))
print(current_color3)
fac = payload['brightness']
print(fac)
color['r'] = math.floor(current_color3[0] / fac)
color['g'] = math.floor(current_color3[1] / fac)
color['b'] = math.floor(current_color3[2] / fac)
set_all_device_leds(device_index, color)
state_payload["state"] = "ON"
state_payload["brightness"] = payload["brightness"]
state_payload["color"] = color
print(state_payload["color"])
要查看我的完整源代码(如果需要),请访问github链接:https://github.com/Tenn0/iCue2sACN/blob/67ab0a52eeb127d98c768228f7015326323a4a1c/src/main.py (函数位于第177行)
目前没有回答
相关问题 更多 >
编程相关推荐