XY Color Gamut Issues with Sengled RGB Bulbs on zigbee2mqtt

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!

2 Likes

I too have this same issue. Mostly however with brightness level. When I set the bulbs (via Lovelace UI) when adding a scene the brightness level is lower when the scene is activated. (Running Hass.io)

1 Like