Professional monitoring services charge $20–50 per month — $240–600 per year — for someone to call the police when your alarm triggers. With Home Assistant and a handful of Zigbee sensors, you can build a smart alarm system that sends you an immediate phone notification, sounds a local siren, and optionally shares a video clip from your cameras. No monthly fees, no contracts, and arguably faster response since you are the first to know.
What You Need
- Home Assistant (already running on your hub)
- 2–4 Zigbee door/window contact sensors ($5–10 each)
- 1–2 Zigbee motion sensors ($8–15 each)
- A Zigbee siren ($20–40)
- Home Assistant Companion app on your smartphone
Total hardware cost: $60–120 for a basic system covering a typical home.
How Home Assistant Alarm Panel Works
Home Assistant includes a built-in Manual Alarm Control Panel integration. It manages alarm states (disarmed, armed away, armed home, armed night, triggered) and provides a simple code-protected interface for arming and disarming.
Add it to your configuration:
alarm_control_panel:
- platform: manual
name: "Home Alarm"
code: "1234"
arming_time: 30
delay_time: 30
trigger_time: 120
disarm_after_trigger: false
Step 1: Install and Configure Sensors
Add your Zigbee contact sensors to doors and windows via ZHA or Zigbee2MQTT. Place motion sensors in hallways, the living room, and other key areas. Label each sensor clearly: binary_sensor.front_door, binary_sensor.back_window_kitchen, etc.
Step 2: Create the Alarm Trigger Automation
alias: "Alarm - Trigger on Sensor"
trigger:
- platform: state
entity_id:
- binary_sensor.front_door
- binary_sensor.back_door
- binary_sensor.living_room_motion
to: "on"
condition:
- condition: state
entity_id: alarm_control_panel.home_alarm
state:
- armed_away
- armed_home
- armed_night
action:
- service: alarm_control_panel.alarm_trigger
target:
entity_id: alarm_control_panel.home_alarm
Step 3: Create the Alarm Response Automation
alias: "Alarm - Response on Trigger"
trigger:
- platform: state
entity_id: alarm_control_panel.home_alarm
to: triggered
action:
- service: siren.turn_on
target:
entity_id: siren.zigbee_siren
- service: notify.mobile_app_your_phone
data:
title: "ALARM TRIGGERED"
message: "Home alarm is active. Check cameras."
Step 4: Add Camera Snapshots to Alerts
If you have Frigate running, include a camera snapshot in the notification:
- service: notify.mobile_app_your_phone
data:
title: "ALARM TRIGGERED"
message: "Motion detected — camera snapshot attached"
data:
image: /api/camera_proxy/camera.frigate_front_door
Step 5: Arming and Disarming
Add an alarm control panel card to your Home Assistant dashboard. You can also arm and disarm via the Home Assistant Companion app from anywhere (via Tailscale), a Zigbee keypad at the door, NFC tags, or presence detection (automatically disarm when your phone connects to home Wi-Fi).
Recommended Zigbee Siren
The Heiman Zigbee Siren (~$25) and Frient Intelligent Siren (~$35) are popular choices that work well with ZHA and Zigbee2MQTT. Look for a siren with both audible alarm and strobe light — the visual component is useful for deaf household members and confusing for intruders.
Related: Pair your alarm with instant notifications by sending Home Assistant security alerts to Telegram.
Choosing how you arm and disarm
Three realistic options, each with a real tradeoff: a physical Zigbee keypad (~$40–60) feels the most like a traditional alarm and works even if your phone is dead or elsewhere; the Home Assistant Companion app is free and convenient but means fumbling with a phone at the door; presence-based auto-arm/disarm (using phone location or Wi-Fi connection) is the most seamless day-to-day but needs a reliable fallback for the times presence detection lags, so most people run it alongside one of the other two rather than as the only method.
Entry and exit delays, set deliberately
A common beginner mistake is copying default delay times without thinking about their own home. An exit delay of 30–60 seconds needs to be long enough to actually leave through your usual door without adjustment; an entry delay on that same door needs to be long enough to disarm before the alarm sounds, but short everywhere else (a window, a back door) where nobody should be entering during normal use at all — giving every entry point the same generous delay just gives an intruder more time.
The honest weak point: false alarms
Professional monitoring companies have decades of tuning to reduce false dispatches; a DIY system doesn’t have that discipline built in unless you add it yourself. The fixes that matter most: require two sensors to agree (a door sensor and a motion sensor, not either alone) before triggering a loud alarm for anything short of a specific “breach” sensor, and add a short grace-period notification (“Front door opened — disarm within 20s”) before escalating to sirens, so a forgetful household member has a chance to self-correct before the whole system goes off.
Free guide — no signup
Trying to cut the cloud out of your smart home? This is the whole map in one place.