How to have RGB-light always power up with the same color/brightness

I have a Zigbee RGB color light for which I use the light-card in my dash. The problem is that when I occasionally change the color or brightness I like it to revert to a predefined (white) color and brightness the next time I turn it on in my dash. I can think of all kinds of “hacky” ways to accomplish this but I was wondering what the proper way is to do this as it doesn’t seem a very exotic scenario.

My quiet easy way:
Make a scene, how you like the lights to be.
Make an automation, which calls the scene at the moment the lights go on.
Done.

I use scrips and the light.turn_on service, because scripts allow for logic and scenes do not. I also have helpers for the default values so I can change those. scrips allow for that, again, scenes do not. I also do not like that when I edit a scene, it sets the lights on that way during editing.

I don’t call the script when the light toggle is flipped, because I hate it when the lights for instance first go to full brightness before going dim. So I use voice, physical buttons or dashboard buttons for each “scene” (actually a script):

On occasion I also have off scripts that first set the light back to the default, short before going off. I do that when the default is dimmer than the manual set brightness at that time. That way, the toggles to on to the default without intervention.

The truth is that very few lights have the ability to set their values if the light is ‘off’

This means, for example, that if have an RGB bulb which, for sake of example was last red when it was turned on, at 50% brightness, it will always turn on in that setting, even for a split second before any other commands set it to something else.

Yes, indeed. That is why I use an off script in some situations as I described above. If the light goes from bright, to the default less bright, to off within a fraction of a second, that is barely noticable. And when you turn it on, it is the way you want it.

So the off script is: if the light is too bright: set default brightness and wait shortly. Then turn it off.
Unfortunately you cannot tell what the brighness will be when it turns on, so a comparable script for on is hard. But you can do: if light turned on, go to default brightness afterwards. Combine those and you’ll almost always have a smooth experience, and never first full bright and then dim when you don’t want it to.

For color you could try something similar. But it would be far more noticeable. That is why scenes, or better yet, scripts for scenes, work best. They turn the light immediately to what you ask.

Thanks for all the tips, although it will help for a final solution, I still feel like it’s hacky. I hoped there would be a “nice” way in HA which simply combines the light card and “light_on”-service, but for now I’ll settle with the script-solution.

While setting this up I ran into an issue: When creating an automation use a device on/off trigger to run a script performing a “light_on” service call, it doesn’t work. Probably because the light_on service call triggers another device on/off trigger. How did you guys handle this? Using single mode with a small delay? Or is there a better solution?

or…
Defaulting lights & light profile - how?.