Here is the full script in case it's helpful. took a hot second of searching to set everything up, but now it's really easy to use. When you call the script inside an automation it has input fields just like if you're calling a built-in function like light.turn_on
For your specific use case though, it may be easier to just take advantage of the built-in Scenes function. You can use an "entity snapshot" with "Scene: Create" a scene of the current state of your "bad" lights when the power goes out, then "Activate" that scene, perhaps with a couple of seconds transition time to smooth things out as soon as power is restored.
I use a similar scene based function to create flashing colored light alerts based on certain conditions.
alias: Light conditional smart dimming (Kelvin)
sequence:
- repeat:
for_each: "{{ lights }}"
sequence:
- variables:
light_state: "{{states(repeat.item)}}"
timescale: "{{states('input_number.timescale')}}"
- if:
- condition: template
value_template: "{{light_state == 'on'}}"
then:
- metadata: {}
data:
brightness_pct: "{{target_brightness}}"
transition: "{{transition_rate * timescale}}"
kelvin: "{{color_temperature}}"
target:
entity_id: "{{repeat.item}}"
action: light.turn_on
fields:
lights:
selector:
entity:
multiple: true
filter:
- domain: light
name: Light(s)
required: true
target_brightness:
selector:
number:
min: 1
max: 100
name: Target brightness (%)
default: 1
required: true
color_temperature:
selector:
color_temp:
unit: kelvin
min: 1500
max: 7000
name: Color temperature
required: true
default: 2200
transition_rate:
selector:
number:
min: 1
max: 600
name: Transition rate
description: Transition rate, scaled by 'input_number.timescale'
required: true
default: 100
description: Dims the target light(s) if they are on - Kelvin setpoint.
icon: mdi:lightbulb-auto-outline
mode: parallel
max: 15