Table of Contents
Why People Get Confused
When you're new to Home Assistant, the distinction between Scenes and Scripts can feel arbitrary. Both seem to "do stuff" — turn on lights, set thermostats, lock doors. So why does HA have two separate concepts? And when should you use which?
The confusion is understandable, but once you understand the mental model behind each, the distinction becomes clear and you'll naturally reach for the right tool. Let's break it down.
What Are Scenes?
A Scene in Home Assistant is a snapshot of desired device states. Think of it as a "preset" — you tell HA what state you want multiple entities to be in, and activating the scene puts them all in those states simultaneously.
Scenes are about state, not actions. A scene doesn't "turn on a light" — it says "I want this light to be ON, at 50% brightness, with color temperature 3000K." The scene stores the desired end state, not the process of getting there.
Creating a Scene
Go to Settings → Automations & Scenes → Scenes → Add Scene. Give it a name, then use the "Add entities" button to select which devices to include. For each entity, set its desired state. Save, and your scene is ready to activate from the dashboard, voice assistant, or an automation.
Example Scene: "Movie Time"
- Living room overhead light: OFF
- Floor lamp: ON, 20% brightness, warm white
- Bias lighting: ON, red, 30%
- TV: ON (if a smart TV is integrated)
- Thermostat: 21°C
Activating this scene instantly applies all these states at once. It's perfect for setting a "mood" across multiple devices.
What Are Scripts?
A Script is a reusable sequence of actions. Where scenes capture state, scripts define behavior — a series of steps that execute in order. Scripts support delays, conditions, loops, variables, and calling other scripts or services.
Scripts are about process. A script can say: "Turn on the hallway light, wait 30 seconds, then turn it off again." That kind of timed, sequential behavior is impossible to express in a scene.
Creating a Script
Go to Settings → Automations & Scenes → Scripts → Add Script. The script editor uses the same action editor as automations — you can add service calls, delays, conditions, device actions, and more. Scripts appear as entities you can call from automations, dashboards, or voice assistants.
Example Script: "Good Morning Routine"
- Turn bedroom light on at 10% brightness
- Wait 5 minutes
- Gradually increase bedroom light to 80%
- Turn on kitchen lights at 100%
- Start the coffee maker switch
- Send a notification: "Good morning! Coffee is brewing."
This sequence with delays and multiple steps is exactly what scripts are designed for. A scene cannot express timing, transitions, or conditional logic.
Key Differences at a Glance
| Feature | Scenes | Scripts |
|---|---|---|
| Purpose | Desired end state | Sequence of actions |
| Supports delays | No | Yes |
| Supports conditions | No | Yes |
| Supports loops | No | Yes |
| Multi-entity control | Yes | Yes |
| Can pass variables | No | Yes |
| Activated as entity | Yes (scene.turn_on) | Yes (script.run) |
| Appears in dashboard | Yes | Yes |
| Works with voice assistants | Yes | Yes |
| Best for | Light moods, presets | Routines, sequences |
When to Use Scenes
Reach for a scene when you want to:
- Set multiple lights to specific colors/brightness for a mood (movie, dinner, reading)
- Create presets your family can activate from the dashboard or voice
- Store and recall a specific device configuration
- Quickly apply a group of states without any timing logic
Scenes are also great because they're human-friendly. Non-technical family members can activate "Dinner Scene" or "Night Scene" from a dashboard button without needing to understand the underlying entities.
When to Use Scripts
Reach for a script when you want to:
- Create a timed sequence (turn on, wait, turn off)
- Build a morning/evening routine with multiple steps
- Add conditional logic (if it's raining, skip opening the blinds)
- Reuse the same set of actions across multiple automations
- Send notifications, make API calls, or interact with HA services
- Create a "toggle" behavior that checks current state before acting
Combining Scenes, Scripts & Automations
The real power comes from combining all three. Here's the conceptual model that works well:
- Scenes — Define the desired device states for specific moods/modes
- Scripts — Define reusable action sequences (routines)
- Automations — Define triggers that call scenes and scripts automatically
For example: An automation triggered at sunset calls a script. The script checks if anyone is home, and if so, activates a "Evening Lights" scene. The automation handles the when, the script handles the logic, and the scene handles the device states. Each tool does what it's best at.
Practical Examples
Scene: "Bedtime"
All lights off. Bedroom nightlight at 5%. Thermostat set to 19°C. Alarm panel armed. Activate with a dashboard button or voice command before bed.
Script: "Leave Home"
Turn off all lights → turn off all switches → lock front door → set thermostat to eco mode → send notification "Home secured and eco mode activated." Triggered by an automation when last person leaves, or manually via a "Leaving" dashboard button.
Scene + Script: "Movie Night"
Script: Check if it's after 6 PM (condition). If yes, activate "Movie Time" scene. Turn on the TV. Dim the hallway light. Send a notification "Movie mode on 🍿". The scene handles the lighting preset; the script handles the logic and additional actions.
Summary
Use Scenes for device state presets — lighting moods, climate settings, multi-device configurations you want to recall with a single tap. Use Scripts for action sequences — anything with timing, conditions, or multiple steps. And use Automations to trigger both automatically based on time, presence, sensor readings, or any other event in your home.
SmartWired participates in the Amazon Associates Programme. We may earn a commission from qualifying purchases at no extra cost to you.