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.