Automation reference
Everything you can pick in the “When”, “If”, “Choose”, “Do” and “Wait for” nodes. How the canvas itself works is on the Automation editor page.
Triggers
A trigger is what happened. The “When” node can have several, and the automation starts from any of them. What to wait for in the “Wait for” node is picked from the same triggers, except sun and period (in Android — only “device”).
| Trigger | When it fires | Fields |
|---|---|---|
| device | A device turned on or off: a light, a door, a motion sensor | device; turned on or turned off; “and stays for” — optional |
| sensor | A number crossed a threshold: got warmer than 25, humidity fell below 30 | sensor; above and/or below |
| time | Every day at this time | hours and minutes |
| sun | Sunset or sunrise, with an offset | sunset or sunrise; offset in minutes, minus is earlier |
| button | A Zigbee button was pressed | button; press |
| period | Every so many minutes | every N minutes |
| MQTT | A message arrived on an MQTT topic | topic; JSON field; value |
Device
“And stays for” — the trigger fires only if the state held for that long. Without it, a “no motion — turn off” rule would fire in the very first second of quiet between two steps down the hallway.
Sensor
The trigger fires once, when crossing the threshold, not on every reading above it. Otherwise an “above 25 — turn on the fan” rule would fire every minute while it's hot.
Sun
The offset is for “half an hour before sunset”: in winter and summer that's different clock times, but you mean the same thing. Minus is before the event, plus is after.
Button
Buttons come from the Zigbee network, and each button has its own list of presses: single, double, triple, hold, release. If there are no buttons, check “Diagnostics” → Zigbee.
The trigger listens to the bridge topic zigbee2mqtt/<button>, so it works even when presses don't become a Home Assistant entity.
MQTT
Any topic on the home broker, not only Zigbee: a sensor on an ESP, someone else's server, your own script.
- Topic. Wildcards are allowed:
+— one level (home/+/motion),#— everything below (sensors/#). - JSON field — compare not the whole message but one field:
action,state,occupancy. Latin letters, digits and underscores only. - Value — fire only on it. Empty — on any message.
Conditions
A condition is what's true now. Picked in the “If” node and in each “Choose” option.
| Condition | What it checks |
|---|---|
| device | The device is on or off right now |
| sensor | The reading is above and/or below the threshold right now |
| time | It's between “from” and “to” now. Crossing midnight works: “from 22:00 to 07:00” means night |
| days | Today is one of the chosen weekdays |
| day/night | The sun is above or below the horizon right now |
| no more often | More than the given time has passed since the last run of this same automation |
“No more often” is a limiter. A rattling door or a leak sensor reporting every minute gives one notification, not a hundred. An automation that hasn't run yet passes the condition.
The condition properties show a live answer: “yes right now”, “no right now” or “unknown right now”.
Actions
An action is picked in the “Do” node. One node — one action.
| Action | What it does |
|---|---|
| toggle | Turn devices on, off or toggle them |
| light up | Turn on lights with brightness and warmth |
| preset | Turn on a light preset |
| say | A notification inside Home Assistant |
| phone | A notification on a phone |
| Alice | Speak through a Yandex speaker or give it a command |
| automation | Run another automation |
| remember, restore | A snapshot of devices and a return to it |
| sound | A sound on Homer speakers |
| MQTT | Publish a message to MQTT |
| HTTP | A request to an address |
Toggle
Turn on, off or toggle one or more devices: lights, relays, outlets mixed together.
Light up
Lights only. Brightness from 1 to 100 % and, if needed, warmth in kelvins. Color and warmth together don't work: a light that gets both carries out only half the command, so the check won't let such an automation through.
Preset
Turns on a preset — a Home Assistant scene you saved in the app. You don't need to list the lights in the automation. See Light presets.
Say
A notification inside Home Assistant: visible both on the tablet and on the phone. Works for everyone without setup. The title is “Home”.
Phone
A notification from the Home Assistant app on a phone; it arrives even away from home. A phone appears in the list by itself once the Home Assistant app on it has signed in to this home.
Alice
A Yandex speaker from the Yandex Station integration in Home Assistant. Three modes:
| Mode | What happens |
|---|---|
| say | The speaker reads the text aloud |
| command | As if you said it to her: “play Radio Record”, “set a timer for 10 minutes” |
| ask | Speaks and listens for the answer |
Through the cloud
This is the only action that goes through the Yandex cloud. Without internet the speaker stays silent — keep that in mind when you hang a “kitchen leak” on it.
“Ask” works only with a speaker the home is connected to directly. If the speaker is reachable only through the cloud, the panel warns you in red: the home will save the automation, but the speaker will stay silent. Set the speaker's address in the Yandex Station settings or choose “say”.
Automation
Runs another automation or any home rule. The called automation runs in full, even if its own trigger doesn't match right now. That's how a shared tail for two branches is drawn: as a separate automation that both call.
Remember and restore
Remember takes a snapshot of how the chosen devices are set now: on or off, brightness, color. Restore puts everything back — not “turn off”, but exactly as it was.
A typical example: motion in the hallway → remember → light up → wait 5 minutes → restore.
- One snapshot per automation: a second “remember” overwrites the first.
- The snapshot lives until the home restarts. Enough for “restore in five minutes”, not for “restore tomorrow”.
- The check won't let “restore” through without “remember” in the same automation.
Sound
A sound on Homer speakers. The speaker plays it itself.
| What | Options |
|---|---|
| Sound | doorbell, chime, beep, alarm, siren — synthesized in the speaker, no files needed |
| File | an mp3, wav or ogg address over http:// or https://; plays for at most a minute |
| Where | Homer speakers of this home, any combination; none selected — all of them play |
The route is described in the Home Assistant package ha/homer_speaker.yaml (the script.homer_speaker_sound script). The speakers listed in the automation are all Homer speakers of the home: the computer with Homer Node, the backup node, satellites.
- A satellite that goes through several computers gets the sound from the one it is connected to right now.
- A speaker that's off doesn't break the automation: the next step runs.
MQTT
Publish a message to a topic on the home broker.
- Topic — without
+and#: wildcards are only for subscriptions. - Message — text or JSON. Home Assistant templates work:
{{ states('sensor.x') }}gets substituted. - Once or retain in broker (retain): the broker hands a retained message to everyone who subscribes later.
Around Home Assistant
This is the same broker Zigbee2MQTT uses. Publishing to zigbee2mqtt/<light>/set switches the light around Home Assistant, and light memory rolls back such a brightness.
HTTP
The home itself makes the request: a webhook, someone else's server, your own script.
- Method: GET, POST or PUT.
- Address — starts with
http://orhttps://. - Request body (JSON) — for POST and PUT. Sent with type
application/json. - Home Assistant templates work in the address and body:
{{ states('sensor.x') }}. - The answer is awaited for up to 15 seconds.
You need the ha/homer_http.yaml package in Home Assistant: three commands rest_command.homer_http_get, …_post, …_put. Without it the home says there's no such service. The package is rolled out by tools/deploy-ha.py together with the other homer_* ones.
Wait and Wait for
| Node | Fields |
|---|---|
| Wait | pause length |
| Wait for | what to wait for: device, sensor, time, button or MQTT (in Android — device); “wait no longer than” |
Durations are shown in a human way: “30 s”, “10 min”, “1 h 30 min”.