Smart Home AssistantNewsletter

Home Assistant Alarm Panel: Setup Guide

SepehrBy Sepehr· 19/06/2026· 8 min read
Home Assistant Alarm Panel: Setup Guide

Home Assistant's alarm control panel is a software-defined security layer built on top of the sensors you already own. Rather than paying for a dedicated alarm hub and monthly monitoring subscription, you configure HA's manual alarm integration to watch your door contacts, window sensors, and motion detectors — arming, triggering, and notifying you entirely on your own terms. This guide walks through every step: YAML setup, adding sensors as triggers, building the Lovelace PIN card, automating arm and disarm with presence detection, sending alerts to your phone, adding a siren, and understanding where HA's alarm falls short of a professional system.

What the Home Assistant alarm panel actually is

It is a virtual alarm control panel entity, not a physical device. The alarm_control_panel domain in Home Assistant defines an entity with a set of states — disarmed, arming, armed_home, armed_away, armed_night, pending, and triggered — and exposes services such as alarm_control_panel.alarm_arm_away and alarm_control_panel.alarm_trigger that automations can call. HA does not know about your home's perimeter on its own; you teach it by pointing binary sensor entities (door contacts, window contacts, PIR motion sensors) at the alarm and writing automations that trigger the panel when those sensors open or detect movement.

The result is a genuinely capable DIY system. The chief trade-off — explored at the end of this guide — is that it relies on your HA server staying powered and connected, which a dedicated panel with a battery backup does not.

Setting up the manual alarm control panel (YAML)

The manual platform is the simplest way to get started. Add the following block to your configuration.yaml (or an included file), then restart Home Assistant:

alarm_control_panel:
  - platform: manual
    name: Home Alarm
    unique_id: home_alarm_panel
    code: "1234"
    code_arm_required: false
    arming_time: 30
    delay_time: 30
    trigger_time: 300
    disarmed:
      trigger_time: 0
    armed_home:
      arming_time: 0
      delay_time: 0

Key parameters explained:

  • code — the PIN required to disarm the alarm. Store it as a secret in secrets.yaml for better security: code: !secret alarm_code.
  • code_arm_required — set to false if you want to arm without entering a PIN (useful when automations arm the panel on departure).
  • arming_time — seconds the panel stays in the arming state before becoming active; gives you time to leave the house. Set to 0 for armed_home since you are not leaving.
  • delay_time — seconds in the pending state after a sensor trip, giving you time to disarm before the alarm triggers. Set to 0 for armed_home if you want instant triggering.
  • trigger_time — how long the alarm stays in the triggered state. 300 seconds (five minutes) is a sensible default.
  • disarmed → trigger_time: 0 — prevents sensors tripping the panel when it is disarmed.

After restarting, you will find a new entity such as alarm_control_panel.home_alarm in the Developer Tools → States view. By default only armed_home and armed_away modes are active; add armed_night or armed_vacation to the arming_states list if you need them.

Adding sensors as alarm triggers

Binary sensors — door contacts, window contacts, and motion detectors — are the eyes of your HA alarm. For each sensor you want to guard, create an automation that watches the sensor and calls alarm_control_panel.alarm_trigger when the alarm is armed. A single automation can cover multiple sensors using the for keyword or by listing multiple triggers:

alias: Alarm — trigger on sensor open
trigger:
  - platform: state
    entity_id:
      - binary_sensor.front_door
      - binary_sensor.back_door
      - binary_sensor.kitchen_window
      - binary_sensor.hallway_motion
    to: "on"
condition:
  - condition: not
    conditions:
      - condition: state
        entity_id: alarm_control_panel.home_alarm
        state: disarmed
action:
  - service: alarm_control_panel.alarm_trigger
    target:
      entity_id: alarm_control_panel.home_alarm

The condition blocks the trigger when the alarm is disarmed, so opening your front door while at home does not accidentally set off the siren. If you want motion sensors to be active only in armed_away mode (but not armed_home, where occupants would trip them), add a second condition: state: armed_away.

Pair this with the best smart door sensors for UK homes — Zigbee and Z-Wave contacts integrate directly into HA and report instantly without a cloud relay. See our Home Assistant automations guide for deeper coverage of trigger and condition syntax.

Creating the alarm Lovelace card with a PIN pad

Home Assistant ships a built-in alarm panel card that renders a number pad for entering your PIN and buttons for each arm mode. Add it to any dashboard via the card picker (search for "Alarm Panel") or paste this YAML into the card editor:

type: alarm-panel
name: House Alarm
entity: alarm_control_panel.home_alarm
states:
  - arm_home
  - arm_away
  - arm_night

The card automatically shows a numeric keypad when the entity's code format is a PIN, or switches to a text field if you have set an alphanumeric code. Tapping Arm Away starts the arming countdown; the card colour changes through arming (amber), armed (red), and triggered (pulsing red) states.

For a more feature-rich experience, the community Alarmo custom component (available via HACS) replaces the manual YAML integration with a full UI-based alarm manager. Alarmo supports per-user PINs, sensor bypass, and its own card — a good option if you prefer managing everything through the HA interface rather than YAML files.

Automating arm and disarm with presence detection

The most reliable way to arm your alarm when you leave is to tie it to presence detection rather than a manual button press you might forget. If you have already set up device trackers — using the Home Assistant Companion app, Unifi presence, or a Bluetooth tracker — you can arm the panel automatically when everyone leaves:

alias: Alarm — arm away when home empty
trigger:
  - platform: state
    entity_id: group.all_residents
    to: not_home
    for:
      minutes: 2
action:
  - service: alarm_control_panel.alarm_arm_away
    target:
      entity_id: alarm_control_panel.home_alarm

The two-minute for delay prevents the alarm arming during the brief "not home" blip that some trackers report as you move through the house. For the disarm side, trigger alarm_control_panel.alarm_disarm when someone arrives home — but always include the code parameter in the service call to prevent an automation from disarming the alarm without authentication. See our presence detection guide for setting up reliable device trackers.

Alert notifications when the alarm triggers

A silent alarm is not much of a deterrent. Hook up at least one notification channel so you know immediately if the alarm fires while you are away. The three most popular approaches for UK users are:

Home Assistant Companion app push notifications

The HA Companion app for iOS and Android registers a notifier on each device. Create an automation triggered by the alarm panel entering the triggered state and call notify.mobile_app_your_phone:

alias: Alarm — push notification on trigger
trigger:
  - platform: state
    entity_id: alarm_control_panel.home_alarm
    to: triggered
action:
  - service: notify.mobile_app_sepehrs_iphone
    data:
      title: "Alarm Triggered!"
      message: "Your home alarm has been triggered. Check the cameras."
      data:
        push:
          sound: default
          interruption-level: critical

Setting interruption-level: critical on iOS bypasses Do Not Disturb — essential for a security alert.

Telegram bot notifications

Home Assistant's Telegram integration lets you send rich messages with inline keyboards. Once your bot token and chat ID are configured, the service call is notify.telegram. You can include a photo from a linked camera in the same notification, giving you visual confirmation alongside the alert.

Email and SMS

For SMS, the SMTP integration can send email-to-SMS to your UK carrier's gateway (e.g. 07700900000@txt.o2.co.uk) or you can use a Twilio add-on. Email via SMTP is the simplest option and requires no additional accounts.

Whichever channel you choose, also add a notification for the arming state (so you know the alarm is counting down) and the disarmed state (confirmation the alarm was properly turned off). See our Home Assistant notifications guide for full setup instructions across all channels.

Adding a siren

An audible siren turns a silent software alarm into a genuine deterrent. Several options work well with Home Assistant in the UK:

  • Zigbee sirens — devices such as the frient Smart Siren (which ships a UK version) pair with Zigbee2MQTT or ZHA and appear as siren entities in HA. Trigger them with a siren.turn_on service call in your triggered automation.
  • Z-Wave sirens — Z-Wave's encrypted mesh makes it the stronger choice for security; a Z-Wave siren paired via Z-Wave JS is harder to jam than Zigbee.
  • Smart plugs with a standalone siren — a cheap 12V wired siren on a smart plug is effective if you do not need Zigbee/Z-Wave; toggle the plug via switch.turn_on.

Add the siren to your triggered automation alongside the notification, and add siren.turn_off to your disarm automation so the siren stops when you enter your PIN.

Integrating commercial alarm systems: Ring Alarm Pro

The official Ring integration in Home Assistant supports Ring cameras, doorbells, chimes, and intercoms — but it does not currently support Ring Alarm Pro panel control (arm/disarm). The Ring cloud API does not expose alarm system endpoints to third-party integrations at the time of writing, so you cannot arm or disarm a Ring Alarm Pro directly from HA's alarm panel entity.

What you can do is use Ring devices alongside HA's software alarm: Ring door sensors can report their state to HA via the Ring integration, and HA can send Ring Chime notifications. For a fully HA-controlled alarm, you are better served by native Zigbee or Z-Wave sensors rather than Ring's proprietary hardware. For more on what Ring Alarm Pro does well as a standalone system, see our Ring Alarm Pro review.

Limitations versus a dedicated alarm system

The HA alarm panel is powerful for a DIY setup, but it has real gaps compared to a professional-grade system. Understand these before relying on it as your primary security layer:

  • No battery backup by default. If your Raspberry Pi or NUC loses power during a break-in, the alarm stops functioning. A UPS (uninterruptible power supply) mitigates this but adds cost and complexity.
  • No professional monitoring. There is no 24/7 monitoring centre that will call the police if your alarm triggers while you are out of mobile range. The HA alarm is self-monitored only.
  • Internet dependency for remote alerts. Push notifications and Telegram messages require your broadband to be working. If an intruder cuts the line, you may not receive alerts.
  • Single point of failure. Your entire smart home — lights, heating, alarm — runs on one HA instance. A dedicated alarm panel has its own processor and does not share failure modes with your automation hub.
  • No tamper detection on the panel itself. A physical alarm control panel has tamper switches; your HA server does not.

For most UK households using HA's alarm alongside smart home security best practices — visible cameras, good locks, and reactive lighting — the software alarm provides a meaningful extra layer. For high-risk properties or those requiring insurance compliance, a Secured by Design-certified dedicated system is the appropriate choice.

Quick-start checklist

To summarise the full setup process:

  1. Add the alarm_control_panel: platform: manual block to configuration.yaml and restart HA.
  2. Create an automation to trigger the panel when door/window/motion sensors activate while the alarm is armed.
  3. Add the alarm panel card to your Lovelace dashboard and set a secure PIN.
  4. Create arm-away and disarm automations linked to your presence detection group.
  5. Add at least one notification automation for the triggered state (Companion app, Telegram, or SMTP).
  6. Pair a Zigbee or Z-Wave siren and add it to your triggered and disarm automations.
  7. Put your HA server on a UPS to maintain operation during power cuts.

Frequently asked questions

Does Home Assistant have a built-in alarm system?
Yes — the alarm_control_panel integration (manual platform) provides a software-based alarm with arm/disarm modes, a PIN code, and configurable arming and entry delays. It is not a physical alarm panel but works with your existing door, window, and motion sensors to trigger notifications and sirens.
Can I use Home Assistant alarm panel with Ring Alarm Pro?
Not for full alarm control. The official Ring integration in Home Assistant supports cameras, doorbells, and chimes but does not currently allow you to arm or disarm a Ring Alarm Pro panel. For a fully HA-controlled alarm, native Zigbee or Z-Wave sensors are a better fit.
What is the difference between armed_home and armed_away in Home Assistant?
armed_away activates arming and entry delays so you have time to leave and re-enter before the alarm triggers. armed_home is designed for when you are inside — it typically skips the arming delay and can be configured with zero entry delay so motion sensors in occupied areas are excluded while perimeter sensors remain active.
How do I add a PIN to my Home Assistant alarm panel?
Set the code parameter in your configuration.yaml under the manual alarm_control_panel platform, for example code: '1234'. For better security, store the value in secrets.yaml using code: !secret alarm_code. The Lovelace alarm panel card will automatically display a numeric keypad.

Sources

Sources verified 2026-06-19

  1. Home Assistant — Manual Alarm Control Panel
  2. Home Assistant — Alarm control panel
  3. Home Assistant — Alarm panel card
  4. Home Assistant — Ring integration
  5. Home Assistant — Telegram integration
  6. Unsplash — Security keypad photo by vuk burgic
Sepehr

Written by

Sepehr

Head of Engineering with 15+ years of software experience and a decade of hands-on smart home tinkering. I run everything I write about — Home Assistant, Zigbee2MQTT, Frigate, and a full self-hosted homelab. Independent coverage, no brand deals, UK-focused.

LinkedIn →

Related reading