Thank you for the reply, and your suggested yaml. The reason I tried floats and excessive {{}}'s was due to this post and this one. I don’t think I can use int as xy_color are decimals, so I tried floats.
Unfortunately, this is the log when I try your suggestion, so I think you might be right.
Invalid service data for light.turn_on: None for dictionary value @ data['xy_color']. Got '[ 0.4949, 0.4202 ]'
Maybe I need to do it like
{% if states.sensor.met_office_temperature.state|int >=10 %}
{% set x as 0.2309 set y as 0.2889 %}
{% elif states.sensor.met_office_temperature.state|int <= 2 %}
{% set x as 0.3542 set y as 0.362 %}
{% else %}
{% set x as 0.4949 set y as 0.4202 %}
{% endif %}
['{{x|float}}','{{y|float}}']
???