# \[APP\]\[Pro\]\[TEST\] Dashboard Alarm Keypad – a code-protected keypad for any alarm

**URL:** <https://community.homey.app/t/app-pro-test-dashboard-alarm-keypad-a-code-protected-keypad-for-any-alarm/161154>\
**Category:** Apps\
**Created:** [October 21, 2026, 7:44pm UTC](https://community.homey.app/t/app-pro-test-dashboard-alarm-keypad-a-code-protected-keypad-for-any-alarm/161154 "2026-10-21T19:44:54Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![Simon\_Salvin](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/simon_salvin/32/144694_2.png) [@Simon\_Salvin](https://community.homey.app/u/Simon_Salvin)\
**Post date:** [October 21, 2026, 7:44pm UTC](https://community.homey.app/t/app-pro-test-dashboard-alarm-keypad-a-code-protected-keypad-for-any-alarm/161154/1 "2026-10-21T19:44:54Z")

</div>

Hi all,

I’d like to share a new app: **Dashboard Alarm Keypad**. It puts a proper alarm keypad on your Homey dashboard: one tap to arm, a code to disarm. It works with **any alarm system** you can control from a flow.

**Why I built it:** our alarm is an Aqara M3 hub, controlled through Apple Home. When we go away, our cat sitter looks after Monté (our cat). She needed a way to switch the alarm off from the wall-mounted iPad dashboard. A plain on/off button wasn’t safe, because anyone standing at the iPad could press it. I wanted a real keypad with a code, and I couldn’t find one, so I built it.

 ![IMG_1134](https://us1.discourse-cdn.com/flex025/uploads/athom/original/3X/3/1/312f56e68f1a19bfd5326137421f55b3cc31e70a.jpeg)

* * *

## What it does

- **Arm** with one tap, no code needed, so you can arm it on your way out.
- **Disarm** with a 4–8 digit code. Everyone gets their **own code** (e.g. family, cleaner, cat sitter), and the flow tells you **who** disarmed it.
- **Live status ring** around a photo of your choice: Disarmed, Home, Night, Arming…, Armed or Alarm!
- When the alarm is going off, **Disarm turns into a red “Stop alarm” button**.
- **Lockout** after too many wrong codes, with flow triggers so you can get a notification.
- Codes are stored **hashed** , never in plain text, and are checked on Homey, not on the tablet.
- Light and dark mode. English, Dutch, German, French, Spanish and Italian.

## Flow cards

| **Type** | **Card** |
| --- | --- |
| Trigger | **Arm was pressed** |
| Trigger | **Correct code entered to disarm** (tag: _User_) |
| Trigger | **A wrong code was entered** (tag: _Attempts left_) |
| Trigger | **Keypad locked after too many wrong codes** (tag: _Locked for (seconds)_) |
| Action | **Set keypad status to** Disarmed / Home / Night / Arming / Armed (away) / Alarm going off |
| Condition | **Keypad status is / is not** … |

The idea is simple:

1. **Keypad → alarm:** use the triggers to arm and disarm your alarm.
2. **Alarm → keypad:** use _Set keypad status_ so the widget always shows what your alarm is really doing, including changes made somewhere else (geofencing, another app, a siren going off).

When the status is set to **Arming** , the keypad switches itself to **Armed** after the exit delay set in the app settings, so you don’t need a delay card for that.

## Setup

1. Install the app and open its **settings** :
  - Add a code for each person.
  - Optional: upload a photo for the widget (it’s cropped automatically).
  - Set the **exit delay** to match your alarm, and choose whether the status after disarming is _Disarmed_ or _Home_.

2. Add the **Alarm Keypad** widget to a dashboard.
3. Build the flows for your alarm (see the Aqara example below, and the notes for other systems after that).

* * *

## Example: Aqara M3 hub (alarm in the Aqara / Apple Home ecosystem)

The Aqara alert system can’t be controlled from Homey directly: it isn’t exposed over Matter. But the M3 has a feature called **Advanced Matter Bridging** that solves this in both directions:

- **Scenes** you create in the Aqara app appear in Homey as **plugs**. Turning the plug on runs the scene.
- **Signals** (conditions you define in the Aqara app) appear in Homey as **occupancy sensors**.

So: scenes let Homey **control** the alarm, and Signals let Homey **see** what the alarm is doing.

### **Step 1: Delays in the Aqara app**

Alert system → **Away mode** :

- **Entry delay:** 60 seconds, time to get from the door to the dashboard and enter your code. The hub beeps during the countdown.
- **Arming (exit) delay:** 30 seconds, time to get out of the door.

Leave Home and Night mode without delays.

### **Step 2: Scenes, so Homey can control the alarm**

Create these scenes in the Aqara app (Scenes → +), with the action **Alert system** :

| **Scene** | **Actions** |
| --- | --- |
| **Alarm Away** | Arm automatically → **Away** |
| **Alarm Arrive** | Disarm automatically → **Away** , delay **3 seconds** , Arm automatically → **Home** |
| **Alarm Silence** | **Turn off alarm** (stops the siren but keeps the current mode) |

Tip: avoid the “switch arming/disarming” (toggle) action. If Homey and the hub ever disagree about the state, a toggle does the opposite of what you meant.

Then share them with Homey: **Profile → Connect to Ecosystems → Matter → Scenes** , add all three, and choose the **M3** as the bridge (the one already paired to Homey). They appear in Homey as plugs. The plugs turn themselves off after running, so they behave like buttons.

Tip: you can edit a scene in the Aqara app at any time (e.g. change the delay), and Homey doesn’t need to know. But if you **delete** and re-create a scene, you get a new plug and have to update your flows.

### **Step 3: Signals, so the keypad knows the real alarm status**

**Profile → Connect to Ecosystems → Matter → Signals → +**

Under **If** , tap **Add → Alert system** , choose the **mode** (Home / Away / Night), then the **event** (_Arm_, _Disarm_ or _When the alarm sounds_). Create these five Signals:

| **Signal** | **If…** | **Notes** |
| --- | --- | --- |
| **Alarm Home** | Home mode → **Arm** | |
| **Alarm Away** | Away mode → **Arm** | |
| **Alarm Night** | Night mode → **Arm** | |
| **Alarm Disarmed** | Home → **Disarm** , Away → **Disarm** , Night → **Disarm** | Add all three with **Add** , then set **Any condition is met** |
| **Alarm Triggered** | Home → **Alarm sounds** , Away → **Alarm sounds** , Night → **Alarm sounds** | Same: three conditions, **Any** |

Make sure “ **Any** condition is met” is selected for the last two. With “All”, it would wait for all three, which can never happen.

The Signals appear in Homey as occupancy sensors. I put them all in their own “Alarm” zone to keep things tidy.

### **Step 4: The flows**

[Upload: docs/flow-keypad.png]

**Alarm keypad → controls alarm**

| **When** | **Then** |
| --- | --- |
| Arm was pressed | **Alarm Away** plug → Turn on |
| Correct code entered to disarm | **Alarm Silence** → Turn on, 1 second delay, **Alarm Arrive** → Turn on. Plus a push notification: “Alarm disarmed by [User]” |
| A wrong code was entered | Push notification: “Wrong code entered on the alarm keypad – [Attempts left] tries left” |
| Keypad locked after too many wrong codes | Push notification: “Alarm keypad locked for [Locked for (seconds)] seconds” |

Disarm runs **Silence** first and then **Arrive**. That way, one code entry stops a sounding siren in any mode _and_ takes the alarm out of Away. With Silence alone, the alarm stays in Away and the next movement sets it off again.

**Alarm status → keypad widget**

| **When (sensor: “The motion alarm turned on”)** | **Then** |
| --- | --- |
| Alarm Home | Set keypad status to **Home** |
| Alarm Away | Set keypad status to **Arming** (the app switches to _Armed_ after the exit delay) |
| Alarm Night | Set keypad status to **Night** |
| Alarm Disarmed | Set keypad status to **Disarmed** |
| Alarm Triggered | Set keypad status to **Alarm going off** |

In the app settings I set **Status after disarm** to **Home** , to match the _Alarm Arrive_ scene.

When you disarm with Alarm Arrive, you’ll briefly see _Disarmed_ and then _Home_. That’s just the scene’s two steps coming back through the Signals.

You can use the same scene plugs in your other flows too. For example, I use **Alarm Arrive** when someone’s phone arrives home, and **Alarm Away** when everyone has left.

* * *

## Using it with other alarm systems

The app doesn’t talk to any alarm itself. It’s purely a keypad with flow cards. If your alarm can be **controlled** from a flow and can **report** its state to a flow, it’ll work. The pattern is always the same:

**1. Keypad → alarm**

- **Arm was pressed** → your alarm’s “arm” action
- **Correct code entered to disarm** → your alarm’s “disarm” action

**2. Alarm → keypad**

- Your alarm’s “armed / disarmed / alarm triggered” triggers → **Set keypad status to …**

Some examples:

- **An alarm that shows up as a device in Homey** (via its own app, Z-Wave, Zigbee or Matter) with a security/alarm mode: use its _set mode_ action for arming and disarming, and its _mode changed_ / _alarm triggered_ triggers to set the keypad status.
- **A Homey-based security app** (e.g. a virtual alarm system built from your sensors): arm and disarm it with its action cards, and use its state triggers to set the keypad status.
- **An alarm only reachable through another ecosystem** (Apple Home, Google Home, SmartThings…): use virtual switches or Matter-bridged scenes, as in the Aqara example above. Homey flips a switch, and the other ecosystem’s automation arms or disarms the alarm.
- **No real alarm at all?** You can still use it as a code-protected button, e.g. to disable a “nobody home” mode, unlock a feature, or log who came home.

If your alarm can’t report its state, you can still use the keypad. Add _Set keypad status_ next to the arm and disarm actions in the same flows. The widget then shows what the keypad last did, rather than the alarm’s real state.

* * *

## Good to know

- This is a **keypad for an alarm you already have** , not a certified alarm system.
- Arming doesn’t need a code on purpose, as on most alarm panels. Disarming always does.
- The lockout applies to the whole app, so it covers every dashboard with the widget on it.
- Requires Homey Pro (dashboard widgets aren’t available on Homey Cloud).

**App Store:** [https://homey.app/a/com.simon.dashboardalarmkeypad](https://homey.app/en-gb/app/com.simon.dashboardalarmkeypad/Dashboard-Alarm-Keypad/test/)

Feedback and ideas very welcome, especially if you connect it to a different alarm system. Let me know how you wired it, and I’ll add it to this post!
