WTH can’t we permanently save scenes with an action?

Scenes have a scene.create action, but the scenes created this way are not permanent and don’t survive reboots. I’d like for the option to create permanent scenes to be added so that I can potentially give non-admin users the freedom to create scenes from the dashboard for all devices in an area.

I have scenes with several lights in them. When I tweak those lights by hand (brightness, color temperature, color), I want to save their current settings back into that same scene. The UI scene editor can do this, but there is no action I can call from an automation, script or dashboard button.

What exists today
scene.turn_on / scene.apply only apply a scene. They never store anything.
scene.create with snapshot_entities captures the current state, but creates a dynamic scene that is not persisted. It disappears on restart, can’t be edited in the UI, and doesn’t update my existing scene.

Editing scenes.yaml by hand or via the config API is not a supported way to do this and needs a reload.
What I’d expect
An action like scene.save (or scene.update) that stores the current state of the entities already in a

scene:
action: scene.save
target:
  entity_id: scene.living_room_evening

Real-world use case
Each room has multiple scenes (for example Day, Evening, Night and Off). Over time, the preferred light levels for each moment change slightly, so these scenes get tuned regularly.

My partner is a Home Assistant user and doesn’t understand how to open the scene editor. She wants to adjust the lights to her liking and then long-press the scene button on the dashboard. A confirmation pops up (“Save current light settings to this scene?”), and after she confirms, only that scene is updated.

tap_action:
  action: scene.turn_on
hold_action:
  action: perform-action
  perform_action: scene.save
  target:
    entity_id: scene.living_room_evening
  confirmation:
    text: Save current light settings to this scene?

Today this is impossible without helper entities or scripts with hardcoded values, and with 4+ scenes per room that quickly becomes unmanageable.
Why this matters
Scenes are tuned constantly by the people who use them.

It makes scenes usable for non-technical household members.
The UI editor already does this, so the logic exists. It just isn’t exposed as an action.
Optional extras: a list of entities to limit what gets saved, and a way to add or remove entities when saving.

Agreed. I set up an automation on a six-button panel to change scenes with a single press or save scenes with a double-press and didn’t find out until the next update that these scenes would disappear on reboot. Very frustrating.

Yes this has bugged me forever! Being able to automate the definition of scenes would make a lot of automations more powerful and flexible.

Description of the problem

Currently, dynamic scenes created on the fly using the scene.create service are stored exclusively in volatile memory (RAM). If Home Assistant restarts (due to a power outage, a system update, or a crash) between the moment scene.create is called and when scene.activate is triggered, the dynamic scene is completely lost.

Real-world use case

Taking a full snapshot of an entity’s state is extremely useful, and I rely on dynamic scenes across many different automations in my setup.

To give just one simplified example, I have a night and morning routine for my climate entities:

  1. At night, when activating “Night Mode”, I take a snapshot of all thermostats using scene.create and then lower the temperatures.
  2. During the night, temperatures might be adjusted manually if needed.
  3. In the morning, an automation calls scene.activate to restore the exact thermostat states from the previous evening.

If Home Assistant reboots overnight for any reason, the morning automation fails silently because the dynamically created scene no longer exists. This same issue affects all my other long-running automations that depend on entity snapshots.

Proposed solution

Add an optional boolean parameter to the scene.create action, such as persistent: true (defaulting to false to preserve current behavior and avoid unnecessary disk writes for short-lived snapshots).

Example:

action: scene.create
data:
  scene_id: before_night_mode
  persistent: true
  snapshot_entities:
    - climate.living_room
    - climate.bedroom

When persistent: true is set, Home Assistant should save the scene state to .storage (similar to how input_number or input_text helpers restore their state) and clean it up if overwritten or explicitly deleted.

Why existing workarounds are not ideal

Manually saving attributes into input_number or input_text helpers works for simple cases, but it becomes impossible to maintain when dealing with many different entity types across complex automations (thermostats with HVAC modes and target temperatures, lights with brightness and color attributes, media players, covers, etc.). Being able to take a native, persistent snapshot of entire entities is much cleaner and makes automations far more reliable.

TLDR: Never mind.

For the past 2 years I thought I’d come to discover how to create an automation for current state of lights in a room, turn them off/on momentarily, and then restore. . .

Last week I tried again, w/o success. But today I was able to save an automation that creates a scene on the fly, then deletes it. Now to try to understand why I couldn’t make that work last week (something about not being able to delete a scene that doesn’t yet exist).

I moved this into the WTH category for you and voted for it.
You should vote for it as well…

Done, thank you!