Links on the site may earn us an affiliate commission. Learn more.

Alarmo is a custom integration for Home Assistant that allows creating an alarm system for your home. It uses the existing sensor in Home Assistant to create a secured system. This guide will cover how to install and configure the integration and set up a couple of scripts to use when the alarm is triggered.

Installation

To install Alarmo, you can easily do it from the Home Assistant Community Store, AKA HACS. If you don’t have HACS installed, I have a tutorial showing how to set it up in Home Assistant. You can find the guide here.

In Home Assistant, go into HACS, Integrations, and click on Explore & download repositories. Search for Alarmo and click on it. Click on Download this repository with HACS, then click Download again to set up the latest version. After the installation completes, restart Home Assistant. When it is back online, go to Settings, Devices & Services, and click on Add integration. Search for Alarmo and click on it. Lastly, click on Finish.

Configuration

You can access the configuration panel from the Home Assistant sidebar to configure the integration. The settings are separated between 4 tabs.

General tab

The General tab shows the available modes you can set up. The options Armed away and Armed home are enabled by default. If you click on the modes, you can enable or disable them. You can also edit the Exit delay, the Entry delay, and the Trigger time.

Below the Modes section, you have the Areas section, where you can set up separate alarm systems for different areas of your home. Each area will have its own set of sensors.

Sensors tab

In the Sensors tab, you have a list of available binary sensors in Home Assistant. You can then select and add the sensors you want to use with the alarm system. The sensors are automatically set up with a device type. However, on some occasions, the device type is not accurately set up. If you have that issue, you can change the device type after you add the sensors to your alarm system.

At the top, you have the added sensors. You can click on them, and under Device type, you can select the correct device type for the sensor. Other options that you have when Editing the sensor are that you can enable the sensor for a specific mode, group sensors together, and also remove the sensor.

Codes tab

In the Codes tab, you can set up if you want to use a code when arming or disarming the alarm. Set up the code format to be a pin code or a password. There is also User management, where you can add multiple users that can control the alarm system with their codes. When adding a new user, you can set up the name for the user, a code, and select if the user can arm or disarm the alarm.

Actions tab

The Actions tab is the automation section in Alarmo. At the top, you can set up to get notifications on mobile devices when certain alarm events happen. Then below, you can set up the actions to take when the alarm state changes.

Set up notifications for when the alarm is triggered

Click on New Notification under the Action tab. Under Condition, click on Event, and in the dropdown, select Alarm triggered. Under Mode, you can select which mode you would like to link to the notification.

Under Task, click on Target, and select the device you want to send the notification. Then, set up a Title for the alert. The Message section already has a generated message. However, you can change it to whatever you would like. You can also use wildcards with the message—for example, the “Open Sensor” wildcard, which tells you which sensor triggered the alarm. You can also add the “Arm Mode” wildcard, which tells which arm mode was triggered.

The default message is good enough. It alerts that the alarm was triggered and also shows what sensor was triggered. You can also change the format of the wildcard. You can choose if you want just to see the sensor’s name or also the state.

Under Options, you can enter a name that will describe the notification. Click on Save, and the automation is ready.

Set up notifications for when the alarm is disarmed

You can follow the same steps above to set up a notification to know when the alarm is disarmed. You just need to select the Alarm disarmed event and choose the mode you want to link to the notification. Then, select the device that you would like to send the alert to. Under Message, it will also have a generated message, and you can use the wildcard Change by, which will let you know who disarmed the alarm. This wildcard is handy when multiple users can control the alarm system.

When you are done, you can click on Save, and you now have 2 automations set up. One will send a notification when the alarm is triggered, and the other will send a message when the alarm is disarmed.

Set up notifications for when the alarm failed to arm

There is another notification I would suggest adding, which is for when arming the alarm fails. You can set up the notification with actionable options to try to arm the alarm again from just the notification itself.

Add a new notification, and set the Event to, Failed to arm. Set the Mode to Away. Under, Task, set the Target to your mobile device. Set a Title for the alert, and for the Message, leave it set to the default message. After that, click on the Switch to YAML option. Then between the title and the service, enter the following:

  data:
    actions:
      - action: ALARMO_RETRY_ARM
        title: Retry Arm
      - action: ALARMO_FORCE_ARM
        title: Force Arm

This will show 2 push buttons in the notification—one to retry to arm the alarm and the other to force the alarm to arm. You can click on the, Try it button to see the notification on your device. Lastly, click on Save, and the notification is ready to go.

Create scrips for Alarmo actions

We have the notifications set up to get alerts when the state of the alarm changes. Now, we need to create some actions that will trigger automations within the home. For example, we can have an action that will activate a siren when the alarm is triggered. There are some sirens that you can integrate with Home Assistant. For example, the Aeotec Siren 6 is a good Z-Wave siren. However, if you have smart speakers in your home, like a Google Home, you could set up a script to play a siren sound when the alarm is triggered. You can also set it up to loop until the alarm is disarmed.

Set up a Siren Scrip

Go to Settings, Automations & Scenes, Scripts, and click Add script. In the script editor, you can set the name to Sire. Then under Sequence, we first want to raise the speaker’s volume, so set the Action type to Call service, and the Service set it to media_player.volume_set. Under Targets, click on Choose entity and select the smart speaker. Then, under Level, set the volume level that you would like.

Add another action below and set the Action type to, Repeat and the Repeat type to, Until. Then, add a condition, and set the Condition type to State. The Entity set it to the Alarmo entity and set the state to disarmed.

Next, we need to add an action that will play the siren on the smart speaker and add the siren sound to the local media in Home Assistant. So, add a new action and set the Action type to Play media. Then, select the smart speaker that you would like to play the siren. Next, click on Pick media, Local media; at the top, click on Manage, and then Add media. Select the siren sound you want to use and then click on Upload. You can find the siren sound that I’m using here. Exit the Media management pop-up and then select the media file.

The last thing we need to do is add a wait template that will check when the media player finishes playing the sound so it can play the siren sound again. Click on Add action. Set the Action type to Wait for template, and below enter the following:

{{ is_state("media_player.lr_speaker", "idle") }} 
# Change media_player.lr_speaker with your speaker entity name

This will check the speaker state, and if it’s idle, it will play the sound file again. Lastly, click on Save.

Set up a Stop siren script

Next, we need to create another script to stop the media player when the alarm is disarmed. On top of that, we also want to lower the speaker’s volume. So, add a new script. You can set the name to Stop Siren. Then, under Sequence, set the Action type to Call service and the Service to media_player.turn_off. Under Target, select the smart speaker.

Add a new action and set the Action type to Call service and the Service to media_player.volume_set. Under Target, select the smart speaker and under Level, specify the volume level that you would like. Lastly, Save the script.

Create Actions

Now that we have the 2 scripts created, we can go back to the Alarmo panel and create 2 actions. One will trigger the siren script when the alarm is triggered, and the other will run the Stop Siren when the alarm is disarmed.

Create a Triggered action

In the Alarmo panel, go to the Actions tab, and click on New action. Set the event to Alarm is triggered, and the Mode to Away. Then, under Task, set the Entity to the Siren script, and for the Action, select Run. Lastly, set up a name for this action and click on Save.

Create a disarmed action

Create a new action. Set the event to Alarm is disarmed and the Mode to Away. Under Task, set the Stop Siren script; under Action, select Run. Name the action and then save it.

Alarmo custom alarm card

Next, we want to set up the alarm panel on the dashboard so we can quickly arm and disarm the alarm. You could use the default Home Assistant alarm panel card with Alarmo. However, Alarmo has a custom alarm card available which brings a few more features than the default card in Home Assistant. For example, the Alarmo card would show which sensor triggered the alarm when the alarm is triggered. Also, when you arm the alarm, it will show a countdown timer, indicating how much time is left.

Installation

To install the Alarmo custom card, go into HACS, Frontend, and click on Explore & download repositories. Search for Alarmo and select the Alarmo Card. Click on Download this repository with HACS, and click Download again to download the latest version. Reload the page, and the Alarmo card is now ready to use.

Add Alarmo panel card on the Dashboard

Go to the Dashboard, click on the icon with the 3 dots on the top right, and click on Edit Dashboard. Click on Add card, search for Alarmo, and select the custom Alarmo card.

In the configuration, under Entity, select the Alarmo control panel entity. There are several options that you can customize. For example, you can enable the Alarm modes you would like to see on the Alarmo card. You can also change the size of the Modes bottoms and the keypad. This is handy when you have a tablet on the wall where you control your Home Assistant. There is also an option, enabled by default, to show diagnostic messages on the card itself. For example, if the alarm is triggered, it would show a message with the sensor’s name that triggered the alarm. When done with the configuration, save the card so it can be available on the dashboard.

Testing the alarm panel

If you arm the alarm, the countdown timer shows up. If we open a door with a sensor, the pending state and a countdown timer come up. When the timer ends, the alarm is triggered, and the Siren script is executed. The alarm card then shows which sensor triggered the alarm. A notification also comes up on the mobile device, letting us know the alarm was triggered. It also shows which sensor triggered the alarm.

If we enter the code to disarm the alarm, the Siren stop script runs, and the siren sound stops. Another notification is sent to the mobile device, letting us know that the alarm was disarmed and the name of the user that disarmed it.

If the door is left open and we attempt to arm the alarm, the alarm card shows a message saying that the alarm couldn’t be armed and shows the currently opened sensor. Also, a notification comes up on the mobile device with the same message. If we press and hold the notification, we get the actions that we can push to Home Assistant. If the door is closed and we retry again, the notification goes away, and the alarm card starts the timer to arm the alarm.

Want to support my work?