Choose a repeating alert, then check its two inputs
For a Home Assistant door left open notification that repeats and can be silenced, use the built-in Alert integration. An integration is a feature or connection inside Home Assistant. This one watches a reading, waits, and sends reminders while the problem continues. First confirm that the door reading changes correctly. Then test a plain phone message. Only after both work should you add the configuration below.
This walkthrough monitors one patio door. It needs an existing contact sensor—the two-part device that detects whether a door is open—and the Home Assistant Companion App. It requires editing a configuration file. For a single message with no repeats, use a regular automation whose state trigger requires the sensor to stay on for five minutes. Put that duration in the trigger’s for setting; a delay action by itself would not cancel the message when the door closes. Choose Alert when you also want a deliberate “I know; stop reminding me for now” control.
Research method: researched from current Home Assistant documentation and the Alert implementation in Core 2026.9.1 on September 10, 2026. The YAML was syntax-checked, and the upstream alert logic was exercised with a simulated clock and notification service. This was not a running Home Assistant installation or a physical door or phone test. The cover is an AI-generated residential illustration.
1. Confirm the door reading and phone action
- Open Settings → Tools → States. Older versions call this Developer tools → States. Find your door’s entity ID, its internal name, such as
binary_sensor.patio_door_contact. - Open and close the door while watching that reading. A door binary sensor is an open-or-closed reading: its raw state is normally
onfor open andofffor closed, even if the dashboard uses friendly words. Verify yours; do not assume an opener’scover.…entity uses the same states. - In the Actions tool, select the phone’s
notify.mobile_app_…action and send a message such as “Door reminder test.” Allow notifications in the Companion App and phone settings. - Copy the exact working action name. This example needs a named
notify.mobile_app_…action; anotify.send_messagetarget is not interchangeable with its notifier entry. If your action isnotify.mobile_app_jamies_phone, the Alert notifier entry will bemobile_app_jamies_phone, withoutnotify..
The binary-sensor documentation explains raw states, including unknown and unavailable. The Companion notification guide covers the phone action. If the plain message fails, follow the notification delivery checks before changing door timing.
2. Add the delayed, repeating reminder
Save a copy of configuration.yaml, Home Assistant’s main settings file, before editing it. The configuration-file guide explains how to find and edit it for your installation. YAML is the indented text format used in that file.
Paste this at the top level of configuration.yaml, not in an automation’s YAML editor. Replace the sensor ID and notifier name with your own. If the file already has an alert: section, add patio_door_left_open: beneath that section; do not create a second alert: key. Keep any existing alerts.
Patio-door reminder configuration
alert:
patio_door_left_open:
name: "Patio door reminder"
entity_id: binary_sensor.patio_door_contact
state: "on"
skip_first: true
repeat:
- 5
- 15
- 30
can_acknowledge: true
title: "Check the patio door"
message: "The patio door sensor still reports open. Please check it."
notifiers:
- mobile_app_your_phone
data:
tag: patio-door-left-open
skip_first: true delays the initial message. The repeat numbers are gaps in minutes, not times measured from when the door opened. The final gap repeats. The notification tag groups this door’s updates so supported Companion notifications can replace the earlier message instead of filling the notification list. Give another door a different tag.
Open Settings → Tools → YAML and select Check configuration under Configuration validation before restarting. Older versions place this under Developer tools → YAML. See the configuration-check instructions. If it reports an error, fix the indentation or restore your saved file first. Restart Home Assistant to load the alert. Then close and reopen the door under supervision to start a fresh test.
Why there is no “door closed” message: this alert watches for the exact value on. A change to unavailable also ends it. A generic completion message would therefore risk claiming the door had closed when its sensor merely lost contact. Our example omits done_message. Check the actual door reading; a stopped reminder is not an all-clear. This follows the current Alert state-handling code.
Worked example: groceries through the patio door
Suppose Home Assistant observes the door opening at 6:00 pm. The times below are expected scheduling behavior for the example configuration, not measured phone-delivery times. Normal loading finishes before the first reminder; a forgotten door gets progressively less frequent follow-ups.
Scroll sideways to compare each household situation.
| What happens | Expected reminder behavior | What to do |
|---|---|---|
| Door closes at 6:03 pm | No message: it closed within the five-minute grace period. | Nothing; the next opening gets a new grace period. |
| Door stays open | Messages are scheduled for 6:05, 6:20, 6:50, 7:20 pm, and so on. | Check the door when the first useful reminder arrives. |
| You acknowledge at 6:07 while unloading | No more reminders during this uninterrupted open state. | Remember to close it when finished; acknowledgement does not move the door. |
| After acknowledgement, it closes at 6:12 and opens again at 6:14 | The new opening can produce a first reminder at 6:19. | You have silenced one opening, not tomorrow’s reminders. |
| At 6:08 the sensor becomes unavailable | The current alert stops, without a completion message. | Check the door and sensor. Do not interpret silence as closure. |
| Home Assistant restarts while the door is open | The old countdown and acknowledgement are lost; the original timetable is not preserved. | Check the door after restart and verify a fresh sensor event starts the alert. |
3. Make “stop reminding me” explicit
To acknowledge this opening, use the Actions tool, select alert.turn_off, and target alert.patio_door_left_open. The action snippet is:
Acknowledge the current opening
action: alert.turn_off
target:
entity_id: alert.patio_door_left_open
The alert’s state becomes off while the sensor still reports open. That means acknowledged. Its idle state means the watched condition is no longer active. Neither describes whether a lock is secured. Swiping away the phone notification only dismisses that message; this configuration does not connect the swipe to acknowledgement.
For convenient daily use, put the alert and the actual contact-sensor reading on a dashboard accessible to the household. Keep their names distinct: “Patio door reminder” and “Patio door contact.” If you add an acknowledgement button, label it Silence this opening, not “Close door.” It should run the action above, never an opener or lock action.
Use alert.turn_on on the same alert to undo acknowledgement while the door remains open. Reminders resume at the next scheduled check; this action does not itself send an immediate phone message. Closing and reopening normally clears acknowledgement and starts over.
4. Test the behavior without leaving a door unsecured
For timing practice, create a Toggle helper under Settings → Devices & services → Helpers → Create helper. Name it “Door reminder test” and copy its entity ID. An input boolean helper is a software on/off switch you can change without moving hardware.
- Before enabling the real-door setup, temporarily use the helper ID as the alert’s
entity_idand setrepeat: 1. Keepskip_first: true. Check configuration and restart. - Turn the helper off, then on. Turn it off again within a minute: expect no reminder.
- Turn it on and leave it on. Expect one scheduled message after a minute and another a minute later. Actual phone arrival can be delayed.
- Acknowledge using
alert.turn_off. Leave the helper on for another two minutes and confirm no new reminder arrives. - Turn the helper off, then on. Confirm that a new cycle can notify you again. Restore the real sensor ID and the three original repeat intervals, check configuration, and restart.
- Make one supervised real-door test. Confirm the sensor, first reminder, close-to-stop behavior, and household acknowledgement control. Remove the temporary helper when finished.
Also check the sensor after a normal Home Assistant restart. The current Alert implementation listens for state-change events; it does not restore an elapsed deadline. Do not assume a door already open at startup will be caught immediately. A later qualifying sensor update can start a fresh cycle. A stale sensor that never changes may leave the reminder silent.
When the result is wrong
Scroll sideways to read the next check for each symptom.
| Symptom | Check first | Next step |
|---|---|---|
| No reminder entity after restart | Configuration errors, duplicate alert: sections, or code pasted into the automation editor. | Check the file and logs. Restore the saved configuration if necessary. |
| Contact says open, alert stays idle | Exact sensor ID and raw state, then whether an event occurred after the alert loaded. | With the door supervised, close and reopen it. Confirm both readings change. |
| Alert is on; phone stays quiet | Has the first delay elapsed? Does the plain phone action still work? | Check notifier spelling and phone delivery. Alert being on is not a delivery receipt. |
| Reminders continue after swiping away the message | Was the alert acknowledged in Home Assistant? | Use alert.turn_off; message dismissal is separate. |
| Reminders stop although the door is open | Alert acknowledgement, sensor availability, and recent restarts. | Inspect the door first. Restore the sensor connection before trusting the next cycle. |
| Reminder repeats even though the door is shut | Does the sensor itself still report open? | Check alignment and reporting using its manufacturer’s instructions. Changing the interval will not repair a wrong reading. |
This example does not send a separate warning for a missing sensor, enforce quiet hours, or remember acknowledgements across restarts. Start with one door and agree on its grace period. Add those features only when the household needs them and can test their behavior. Use a separate automation override if you need a longer planned pause across several openings.
Other practical questions
Does this work without internet?
The alert logic runs in Home Assistant. With a locally connected sensor, that part can work during an internet outage while Home Assistant and the local network stay powered. Ordinary phone push may still need internet. Companion App Local Push needs a supported, active connection of its own; test delivery under your actual conditions.
Can I use it for a garage door or several doors?
Yes, with a verified open/closed reading. A garage opener may expose a cover whose states differ from a contact sensor. Inspect its actual states before adapting entity_id and state. For several doors, begin with a separately named alert, message and notification tag for each, so you know which opening you are silencing. For choosing opener hardware, use the Home Assistant garage-door setup guide.
Will this close or lock the door?
No. It sends reminders only. A closed contact is not proof a lock is engaged. Keep normal physical security checks, and do not add unattended door movement without the hardware’s safety provisions. Consider whether door names should appear on a phone’s lock screen.
For Tara’s home automation kit with coordinated local routines, the useful handoff is simple: which door is monitored, who gets the reminder, how to silence it, and what to check after a failure. Everyone using the home should be able to understand those four things.
