I’m having trouble getting accurate color on my Sengled E11-N1EA Zigbee RGB bulbs when using the light.turn_on service or the Lovelace UI card. For example, I pick pure red on the color wheel, or call the light.turn_on
service with "color_name": "red"
but I get an orange-red light on the bulb. Similar issues with pure green and blue.
I’ve traced this issue to Home Assistant using the wrong conversion/normalization of colors to xy_color
values. The UI:red, light:orange situation is associated with HA publishing this to the MQTT topic:
zigbee2mqtt:info 2019-2-26 23:22:09 MQTT publish: topic 'zigbee2mqtt/Sengled 1', payload '{"state":"ON","brightness":255,"color_temp":387,"color_mode":1,"color":{"x":0.701,"y":0.299}}'
I sniffed the Zigbee packets between a Sengled bulb and the Sengled hub to come up with the necessary xy_color
values for red, green and blue. Manually publishing {"state":"ON","color_mode":1,"color":{"x":0.733,"y":0.264}}
to zigbee2mqtt/Sengled 1/set
results in a true red light.
However, calling the light.turn_on
service with "xy_color": [0.733, 0.264]
results in an unnecessarily normalized value of "color":{"x":0.693,"y":0.296}}'
being published to the topic.
Is there a way to manually set the allowable xy color gamut ranges on a device by device basis? Or, otherwise reconfigure the color wheel in Lovelace to directly publish my own recalibrated values to the MQTT topic?
I have a feeling that Home Assistant is somehow normalizing values for Phillips Hue bulbs and that my problem could be solved by tweaking this file, but I’m not sure what the next steps are.
I’m running Hass.io: 0.87.1, zigbee2mqtt: 1.1.1, Mosquitto broker: 4
Thanks!