Turn binary lights on at the *end* of transition time

Like a lot of us, I currently have an automation for “lights on at night”.

I specify 30min for the transition and it’s quite lovely for dimmable lights.
But for the non-dimmable bulbs it’s jarring that they turn on at the beginning of the slow transition.

Feels much better if the dimmable lights slowly rise to 99%, then the binary lights come on at full brightness.

When you start the automation for the dimmable lights to come on, start a separate timer for 30mins, and when it finishes, that trigger turns on the other lights in another automation.

Or just use a delay, probably with a subsequent condition to make sure that the other lights are still on.

1 Like

@planetawylie @anon43302295 both of those are fairly fragile.
Is there an argument to be made for the end-user experience of having binary lights come on first and then a smooth fade from the dimmable ones?

You decide when to send the signal to the lights and what signal to send. If you send turn_on, it will turn on the lights. If you send turn_on with a transition (and the light supports it) then it will react accordingly. You’re currently sending turn_on to all the lights at the same time, if you want them to turn on later you have to send the signal later.

You can use a delay or a wait_template, you could write a python script or some code in appdaemon, but the simple fact is that you must choose when the signals are sent to each light. Homeassistant’s job is to interface your desired action to the desired device at the time of your choosing.

You may feel these options are ‘fragile’ but they are, in fact, you being in charge of the end result. Trust that you are not fragile.

automation:
  trigger:
    platform: time
    at: '21:00:00'
  action:
    - service: light.turn_on
      data:
        entity_id: light.dimmable
        brightness: 255
        transition: 3600
    - wait_template: "{{ is_state_attr('light.dimmable' , 'brightness' , '255' }}"
    - service: light.turn_on
      entity_id: light.not_dimmable