There are a lot of home alarm systems on the market, and most require you to purchase a bundled package from a provider that includes hardware, professional installation, and a monthly subscription. While these solutions work for many, I wanted something more customizable. I also didn’t want a company constantly tracking my cameras and sensors, if they want my data, they can pay me for it. I’m not about to pay them to take it.
I’ve been using Home Assistant on and off for years, and it has really matured. I recently put together a simple DIY alarm system that mimics many of the features of a traditional setup. Here’s what I wanted:
- Window and Door sensors
- Phone app control (as a front panel)
- Smoke/Fire/CO monitoring
- A loud siren
- Voice announcements when doors open and alerts if they’re left open
At the heart of my system is a Raspberry Pi 5 from Canakit. This kit is great because it includes everything you need to start: power supply, case, SD card, card reader, cables, and a fan. For this project, there’s no need for a monitor, mouse, or keyboard. You’ll access it over your home network.
Next, I added a UPS battery backup to keep the Pi, router, and modem running in a power outage. Only one side of the unit is backed up so be sure to plug essential devices into that side. The other side functions as a surge protector for non-critical gear like your TV or game console.
Wireless Protocols
For wireless sensors, I prefer Z-Wave over Zigbee. Z-Wave is generally more secure, though it’s slightly pricier and offers fewer product options. Zigbee is widely used and supports more device types (like bulbs and outlets), but in my opinion, it’s too easy to hack for use in a security system. You can use both in Home Assistant if you want the best of both worlds.
Z-Wave is more secure partly because it’s governed by the Z-Wave Alliance. Devices must be certified to use the protocol. Z-Wave frequencies vary by region, so check the Alliance’s site to find compatible devices and manuals for pairing or resetting.
Door and Window Sensors
You’ll need a Z-Wave USB dongle to connect the Pi to your sensors.
For sensors, I recommend Ring’s Z-Wave contact sensors. They’re affordable and easy to install. If your doors or frames aren’t aligned, these risers help position the magnets properly. You can also 3D print your own and use extra adhesive strips. For garage doors, I use these handy brackets.
Smoke and CO Monitoring
If your home has wired smoke detectors, you can retrofit them with this Z-Wave sensor. It listens for alarms and sends a signal to Home Assistant. If you’re buying new detectors, Ring’s listener is a solid option. Note that it doesn’t detect CO directly. Instead, it listens for the sound of a CO alarm and then alerts your system.
Siren
The siren I use is discontinued, but this Aeotec model is a good replacement. These sirens often support multiple chimes and alarms, so you can assign different sounds to different events, like a door chime or an intrusion alert. You’ll configure these behaviors through Home Assistant automations.
Announcements
I currently use an Echo Dot for spoken notifications when doors open or to remind me if they’re left open at night. You can also use Google Home or other smart speakers.
Other Devices
Depending on your needs, you can add leak sensors near washers, sinks, or sump pumps. Zooz even makes an actuator that can shut off your water supply in an emergency.
Brands I’ve used successfully include Zooz, Aeotec, Dome, and Ecolink which are all great for Z-Wave sensors and actuators.
Home Assistant Setup
Home Assistant is the software platform powering all of this. You can do everything from integrating smart bulbs to automating your HVAC. For this build, we’ll stick to the basics, sensor monitoring and phone access.
The simplest and most stable install is flashing Home Assistant as the Raspberry Pi’s operating system. Their official install guide walks you through it. You won’t need a monitor or keyboard, just plug the Pi into your router with Ethernet and power it up.
After a few minutes, go to http://homeassistant:8123/ in your browser to finish setup by creating your username and password. In the next post, we’ll walk through adding sensors and automations. Then we’ll learn how to access the system remotely and have voice announcements for when events happen.