Ashley’s Light Fader 2.01✨: fade lights and/or color temperature with your choice of easing (curves), including ease-in, ease-out, and ease-in-out

Hi, @ooGDoo—I’m happy to help you if I can!

To get a better idea of what may be happening there, though, would you be open to enabling debug mode and then capturing a log excerpt of a test run where this weirdness happens? (I described the step-by-step process for enabling debugging and such in an earlier comment.)

Hi, apologies for hijacking this thread but I’ve just released a new custom integration called Fado Light Fader, and I think this will be of interest to people here, and I would appreciate any input from beta testers.

Fado provides smooth light fading for brightness, colors, and color temperatures, with automatic brightness restoration, autoconfiguration via the UI for optimal fade strategies, and support for native transitions.

I wrote a script in pyscript a couple of years ago to handle fading and was very happy with the result but didn’t think I could share it because there is no easy way to share pyscript scripts, other than copy and paste. A few weeks ago I started using Claude and my first request was “turn this script into a python integration”. It worked so well that I was encouraged to expand my horizons and I tackled all sorts of features that I wouldn’t have dreamed of before.

I then found this thread and, after reading through every post, I built a feature list both from the existing script and from the unimplemented feature requests mentioned by users. Now I have everything implemented and I think it is ready to share.

Here’s a link to my announcement post where you can see more details: Fado Light Fader Custom Integration

I think the integration is ready for release but I’m aware of how many different setups and lights there are out there so I’d really appreciate any feedback from interested parties.

Ashley, I added support for easing curves thanks to you, but I’m unsure whether I’m using the right approach for the auto option. I read through that code in your script but I didn’t understand the reasoning behind it, so I kept it simple. If you think I’m missing a trick please let me know

many thanks