Got `color_temp` argument in `turn_on` service, which is deprecated and will break in Home Assistant 2026.1, please use `color_temp_kelvin` argument
I am using Zigbee2MQTT, which handles color temp in mireds. So I have set up my automations/etc. in HA to also use mireds. Why does the HA team always make breaking changes? Why is it necessary to remove mired based color_temp?
From memory there was quite a big pushback when the team changed to mireds for color temp. As nearly everyone used Kelvin. So it was changed back. See: WTH is light temperature not in Kelvin?
Why can’t we have both?
Simplicity basically.
Less options the dev team have to support.
You should still be able to specify color temp in Kelvin.
The conversion is straightforward, so why keep users changing back and forth while it is so easy to support both? What was gained from the change, what is gained by changing it again? We have brightness and brightness_pct, we can also have mired and kelvin. (For the record, I don’t use either right now but I do agree that if a large chunk of 2.000.000 users is using it, you need a good reason to have them change all automations, blueprints, etc that are depending on it).
2025-08-31 10:07:04.573 WARNING (MainThread) [homeassistant.components.light.reproduce_state] Color mode color_temp specified but attribute color_temp_kelvin missing for: light.hallway_rear, using color_temp (mireds) as fallback
2025-08-31 10:07:09.873 WARNING (MainThread) [homeassistant.components.light.reproduce_state] Color mode color_temp specified but attribute color_temp_kelvin missing for: light.hallway_rear, using color_temp (mireds) as fallback
2025-08-31 10:07:21.553 WARNING (MainThread) [homeassistant.components.light.reproduce_state] Color mode color_temp specified but attribute color_temp_kelvin missing for: light.landing_spots, using color_temp (mireds) as fallback
2025-08-31 10:07:21.554 WARNING (MainThread) [homeassistant.components.light.reproduce_state] Color mode color_temp specified but attribute color_temp_kelvin missing for: light.landing_wall, using color_temp (mireds) as fallback
2025-08-31 10:09:02.893 WARNING (MainThread) [homeassistant.components.light.reproduce_state] Color mode color_temp specified but attribute color_temp_kelvin missing for: light.hallway_rear, using color_temp (mireds) as fallback
2025-08-31 10:09:11.837 WARNING (MainThread) [homeassistant.components.light.reproduce_state] Color mode color_temp specified but attribute color_temp_kelvin missing for: light.hallway_rear, using color_temp (mireds) as fallback
2025-08-31 10:09:22.573 WARNING (MainThread) [homeassistant.components.light.reproduce_state] Color mode color_temp specified but attribute color_temp_kelvin missing for: light.hallway_rear, using color_temp (mireds) as fallback
So I changed all my scenes to state color_temp_kelvin instead of color_temp, no more logs, also no more lights changing colour temp.
I agree, why can’t we keep both? This is a massive pita for me as I chose mired a long time ago for all my automations and scripts due to it’s more intuitive nature and quite simply, less text to enter!
The real WTF are light templates. set_temperature now expects color_temp_kelvin to be supplied instead of color_temp, but the temperature section still uses mireds! Likewise, you have to use max_mireds and min_mireds, because max_color_temp_kelvin and min_color_temp_kelvin aren’t yet implemented.
I am entirely confused. The logs informed me that my template lights needed to be converted from mired to kelvin by 2026.1. So I converted. Guess what? Now this is the report is on 2026.3:
Invalid config for 'template' at templates.yaml, line 46: 'color_temp_kelvin' is an invalid option for 'template', check: light->0->color_temp_kelvin Invalid config for 'template' at templates.yaml, line 47: 'min_kelvin' is an invalid option for 'template', check: light->0->min_kelvin Invalid config for 'template' at templates.yaml, line 48: 'max_kelvin' is an invalid option for 'template', check: light->0->max_kelvin Invalid config for 'template' at templates.yaml, line 81: 'set_temperature_kelvin' is an invalid option for 'template', check: light->0->set_temperature_kelvin
Meanwhile, the Template docs for Light have nothing about all of this.