Have lights "Breathe"?

Hi!

Anyone out there that have any good idea on how to make a light “breathe” in a loop?

So the thing I want to do is have a light dim down slowly and then dim up again slowly.
This should be a loop in some way?

Thanks!

1 Like

In the same idea how to make a light “candle”

This sort of real time profiling of device output is not suited to HA
Your best bet is to either buy equipment that does these effects locally or there may be someone on the MQTT side of things where yo can select effects programmed into an arduino or similar.
HA outputs only update 1/sec hence requires local intelligence

Edit: HA is for home automation ‘control’ not particularly for ‘effects’ though scenes can be used to set up static effects :man_shrugging:

Well, you can do a script which fades your light slowly up and then down, then execute itself again.
Not the best solution, but it should work.

Yeah, but to simulate a a breathing pattern you’d need a sinusoidal profile and on quite a regular basis.
A ramp up/down using ‘transition’, over say 4 or 5 seconds, would be a poor substitute.
Dunno, it may be worth trying even if just to test if it will suffice.

“Normal” wifi bulbs can’t do sinusoidal profiles on their own, they just ramp up/down like you said.

This would be the only way. It isn’t that bad, just don’t let it go to zero brightness.
My thought was “255-50-255-repeat” over 5 seconds or similar.

The only way to archieve custom profiles (not linear) would be bombarding the bulb with commands, but any minor lag in latency would be noticeable and cause it to stutter.

1 Like

is there anyway to do like a loop for the script?

something like

hue.light brightness 100% -> 10% over a 5 second timeline

BTW, using Hue lights so maybe there is a way to trigger the fading from another service and then just call that service from HA

Just have an automation that calls script1 that -
Turns on bulb on with brightness: 50, transition: 4
Then delay: ‘00:00:04’
Then turn it on again (doesn’t matter if it’s already on)
brightness :255, transition: 4
Then delay: ‘00:00:04’
Then call another script, that calls script1

If you want to break the loop add a condition that an input boolean must be on

1 Like