Alarm control panel
The Alarm control panel integrationIntegrations connect and integrate Home Assistant with your devices, services, and more. [Learn more] brings your home alarm system into Home Assistant. Whether you have a professionally installed security system or a DIY setup, this integration gives you full control over arming and disarming from anywhere. Imagine your alarm arming itself automatically when the last person leaves the house, disarming the moment you arrive home, sending an urgent notification to your phone when the alarm triggers at 3 AM, or quietly switching to night mode when bedtime rolls around. With Home Assistant watching over your security system, you get peace of mind knowing your home protects itself.
Building block integration
This alarm control panel is a building block integration that cannot be added to your Home Assistant directly but is used and provided by other integrations.
A building block integration differs from the typical integration that connects to a device or service. Instead, other integrations that do integrate a device or service into Home Assistant use this alarm control panel building block to provide entities, services, and other functionality that you can use in your automations or dashboards.
If one of your integrations features this building block, this page documents the functionality the alarm control panel building block offers.
The state of an alarm panel entity
An alarm panel entityAn entity represents a sensor, actor, or function in Home Assistant. Entities are used to monitor physical properties or to control other entities. An entity is usually part of a device or a service. [Learn more] reflects the current state of your alarm system. Not every alarm panel supports every state or every arming mode. Home Assistant shows only the modes your hardware provides.
- Disarmed: the alarm is off. Sensors are not being monitored.
- Armed home: perimeter protection while you are inside. Doors and windows are monitored, but interior motion sensors are ignored so you move freely around the house.
- Armed away: full protection for when nobody is home. All sensors (perimeter and interior) are active.
- Armed night: similar to home mode, but tuned for sleeping. Typically covers perimeter sensors and selected interior zones while leaving bedroom areas free.
- Armed vacation: extended away protection for longer trips. Some systems enable additional monitoring or alerts in this mode.
- Armed custom bypass: armed with one or more zones deliberately skipped. Useful when you want to leave a specific door or window open while arming the rest of the system.
- Arming: the alarm is counting down its exit delay. You have a short window to leave the house before monitoring begins.
- Pending: the alarm detected a sensor trip and is counting down its entry delay. You have a short window to disarm before the alarm triggers.
- Triggered: the alarm has gone off. Sirens, notifications, and any other alert actions are active.
- Disarming: the alarm is in the process of being disarmed.
- Unavailable: the entity is currently unavailable.
- Unknown: the state is not yet known.
Using an alarm PIN code in actions
Some alarm panels require a PIN code to arm, disarm, or both. Others work without a PIN code. If your panel requires a PIN and you omit it or enter the wrong one, the action fails silently, and the alarm stays in its current state.
-
Check your alarm integration’s documentation to find out whether a PIN is required for arming, disarming, or both.
-
In your automation or script, add the alarm action.
-
If a PIN is needed, under Data, add
codewith your PIN:actions: - action: alarm_control_panel.alarm_disarm target: entity_id: alarm_control_panel.home_alarm data: code: "1234"
About the “Changed by” attribute
If your alarm panel supports it, the Changed by (changed_by) attribute tells you who last changed the alarm state. This is the name or identifier reported by your alarm system, for example a person’s name like “Franck Nijhof” or a key fob ID. You can use this attribute in notifications and automations to keep your household informed about who armed or disarmed the alarm.
Alarm automation examples
The real power of this integration is combining triggers and conditions into automations that protect your home without you having to think about it. Here are a few ideas to get you started.
You don’t need to edit YAML to use these examples. Copy a YAML snippet from this page, open the automation editor in Home Assistant, and press Ctrl+V (or Cmd+V on Mac). Home Assistant automatically converts the pasted YAML into the visual editor format, whether it’s a full automation, a single trigger, a condition, or an action.
Automation: arm the alarm when everyone leaves
When the last person leaves the house, arm the alarm in away mode automatically. No more wondering whether you remembered to set the alarm after rushing out the door.
- Trigger: Everyone leaves the home zone
- Action: Arm the alarm in away mode
YAML example for arming when everyone leaves
alias: "Arm alarm when everyone leaves"
triggers:
- trigger: zone
entity_id: person.alex
zone: zone.home
event: leave
- trigger: zone
entity_id: person.jamie
zone: zone.home
event: leave
conditions:
- condition: not
conditions:
- condition: zone
entity_id:
- person.alex
- person.jamie
zone: zone.home
actions:
- action: alarm_control_panel.alarm_arm_away
target:
entity_id: alarm_control_panel.home_alarm
Automation: disarm when you arrive home
When you pull into the driveway, Home Assistant recognizes you are home and disarms the alarm. You walk through the front door without fumbling for a keypad or app.
- Trigger: Your person entity enters the home zone
- Action: Disarm the alarm
YAML example for disarming on arrival
alias: "Disarm alarm on arrival"
triggers:
- trigger: zone
entity_id: person.alex
zone: zone.home
event: enter
actions:
- action: alarm_control_panel.alarm_disarm
target:
entity_id: alarm_control_panel.home_alarm
data:
code: "1234"
Automation: send an urgent notification when the alarm triggers
If the alarm goes off, you want to know immediately, even if you are on the other side of town. This automation sends a critical notification to your phone the instant the alarm triggers.
- Trigger: Alarm triggered
- Action: Send a critical mobile notification
YAML example for an alarm trigger notification
alias: "Notify on alarm trigger"
triggers:
- trigger: alarm_control_panel.triggered
target:
entity_id: alarm_control_panel.home_alarm
options:
behavior: any
actions:
- action: notify.mobile_app_phone
data:
title: "Alarm triggered"
message: >
Your home alarm has been triggered.
Check your cameras immediately.
Automation: arm in night mode at bedtime
When bedtime arrives, switch the alarm to night mode so perimeter sensors stay active while you move freely inside the house.
- Trigger: Time reaches 23:00
- Action: Arm the alarm in night mode
YAML example for arming at bedtime
alias: "Arm alarm at bedtime"
triggers:
- trigger: time
at: "23:00:00"
actions:
- action: alarm_control_panel.alarm_arm_night
target:
entity_id: alarm_control_panel.home_alarm
Automation: notify the household who disarmed the alarm
If your alarm panel reports who made the change, you get a notification telling you exactly who disarmed the system. Handy for families who want to know when the kids got home, or for keeping a log of who opened up the house.
- Trigger: Alarm disarmed
- Action: Send a notification with the name of the person who disarmed it
YAML example for a changed-by notification
alias: "Notify who disarmed the alarm"
triggers:
- trigger: alarm_control_panel.disarmed
target:
entity_id: alarm_control_panel.home_alarm
options:
behavior: any
actions:
- action: notify.notify
data:
title: "Alarm disarmed"
message: >
The alarm was disarmed
by {{ state_attr(
'alarm_control_panel.home_alarm',
'changed_by') }}.
List of triggers
The Alarm control panel integrationIntegrations connect and integrate Home Assistant with your devices, services, and more. [Learn more] provides the following triggers. Each link below opens a dedicated page with examples, fields, and a step-by-step UI walkthrough.
-
Alarm armed (
alarm_control_panel.armed) Triggers after one or more alarms become armed, regardless of the mode. -
Alarm armed away (
alarm_control_panel.armed_away) Triggers after one or more alarms become armed in away mode. -
Alarm armed home (
alarm_control_panel.armed_home) Triggers after one or more alarms become armed in home mode. -
Alarm armed night (
alarm_control_panel.armed_night) Triggers after one or more alarms become armed in night mode. -
Alarm armed vacation (
alarm_control_panel.armed_vacation) Triggers after one or more alarms become armed in vacation mode. -
Alarm disarmed (
alarm_control_panel.disarmed) Triggers after one or more alarms become disarmed. -
Alarm triggered (
alarm_control_panel.triggered) Triggers after one or more alarms become triggered.
For an overview of every trigger across all integrations, see the triggers reference.
List of conditions
The Alarm control panel integrationIntegrations connect and integrate Home Assistant with your devices, services, and more. [Learn more] provides the following conditions. Each link below opens a dedicated page with examples, fields, and a step-by-step UI walkthrough.
-
Alarm is armed (
alarm_control_panel.is_armed) Tests if one or more alarms are armed. -
Alarm is armed away (
alarm_control_panel.is_armed_away) Tests if one or more alarms are armed in away mode. -
Alarm is armed home (
alarm_control_panel.is_armed_home) Tests if one or more alarms are armed in home mode. -
Alarm is armed night (
alarm_control_panel.is_armed_night) Tests if one or more alarms are armed in night mode. -
Alarm is armed vacation (
alarm_control_panel.is_armed_vacation) Tests if one or more alarms are armed in vacation mode. -
Alarm is disarmed (
alarm_control_panel.is_disarmed) Tests if one or more alarms are disarmed. -
Alarm is triggered (
alarm_control_panel.is_triggered) Tests if one or more alarms are triggered.
For an overview of every condition across all integrations, see the conditions reference.
List of actions
The Alarm control panel integrationIntegrations connect and integrate Home Assistant with your devices, services, and more. [Learn more] provides the following actions. Each link below opens a dedicated page with examples, parameters, and a step-by-step UI walkthrough.
-
Arm alarm away (
alarm_control_panel.alarm_arm_away) Arm an alarm control panel in away mode. Optionally provide a code if your alarm panel requires one. -
Arm alarm with custom bypass (
alarm_control_panel.alarm_arm_custom_bypass) Arm an alarm control panel while bypassing specific zones. Optionally provide a code if your alarm panel requires one. -
Arm alarm home (
alarm_control_panel.alarm_arm_home) Arm an alarm control panel in home mode. Optionally provide a code if your alarm panel requires one. -
Arm alarm night (
alarm_control_panel.alarm_arm_night) Arm an alarm control panel in night mode. Optionally provide a code if your alarm panel requires one. -
Arm alarm vacation (
alarm_control_panel.alarm_arm_vacation) Arm an alarm control panel in vacation mode. Optionally provide a code if your alarm panel requires one. -
Disarm alarm (
alarm_control_panel.alarm_disarm) Disarm an alarm control panel. Optionally provide a code if your alarm panel requires one. -
Trigger alarm (
alarm_control_panel.alarm_trigger) Manually trigger an alarm control panel. Optionally provide a code if your alarm panel requires one.
For an overview of every action across all integrations, see the actions reference.