Arm and disarm an alarm: state, delays, code pad, open sensors and who changed it last.
Works with any alarm control panel (Alarmo, Manual, Verisure, Ajax…). The arm modes come from the panel's features, and the shield pulses during delays and flashes when the alarm goes off.
Exit and entry delay countdown with a progress bar
Code pad when the panel needs a code
Open sensors and the last person who changed the state
Activity of the latest arm, disarm and trigger changes, with who made them
Alarmo refusing to arm lists the open sensors, with Arm anyway
Single-row mini card
Cameras of your choice, their snapshots shown while the alarm is triggered or counting down
Buttons section with switches, lights, scripts and scenes of your choice, such as the plugs of the cameras
Display names for the sensors, cameras and buttons, set in the visual editor
Cards
alarm-cardalarm-mini-card
type: custom:alarm-card
Install
1Open the repository in the Marketplace with the Add to Marketplace button above, or addgithub.com/juju35/ha-alarm-card as a custom repository (category Dashboard).
2Download it from the Marketplace.
3Reload the browser and add the card from the dashboard editor.
Gallery 11
Default viewArmedTriggeredCode padActivityOpen sensors when Alarmo refuses to armButtons sectionDefault viewMini card zoomed inShield flashing while triggeredShield pulsing while arming
Two cards: a full Alarm Card and a compact, single-row Alarm Mini Card (state, countdown and one-tap buttons)
Detail button at the top right of the mini card: it switches to the full card and back; a click anywhere outside the card brings the compact view back. When the card is too narrow for all its buttons (every arm mode at the default 6 columns), they move to a second row under the name
State shield colored by state and mode (disarmed, home, away, night, vacation, custom), pulsing during the exit / entry delay, flashing when the alarm goes off
One button per supported arm mode, and Disarm (Cancel during the exit delay)
Exit and entry delay countdown with a progress bar (Alarmo's delay, or the expiration attribute)
Code pad when the panel needs a code: digits for a number code (the keyboard's digits, Backspace and Enter work too), a password field otherwise
Sensors of your choice (doors, windows, motion, smoke, leak) with their state; arming with a sensor open asks first ("Kitchen window: open. Arm away anyway?") and, with Alarmo, forces the arming
Cameras of your choice: their latest snapshots show up while the alarm is triggered or counting down to it (or always), a tap opens the live view
Buttons of your choice: switches, lights and the like toggled with a tap (the smart plugs of the cameras, say), buttons, scripts and scenes run
Display names for the sensors, cameras and buttons, set in the visual editor or in YAML
Open and bypassed sensors reported by Alarmo, last trigger, who changed the state and since when
Alarmo refusing to arm over open sensors: the card lists them in a popup and offers Arm anyway (forced arming)
Optional activity section: the latest arm, disarm and trigger changes from the logbook, with when and who
Optional confirmation before disarming
Collapsible sensors section
Click the state or a sensor to open its more-info dialog
Visual editor in the dashboard UI for both cards (no YAML needed)
Light and dark mode, 22 languages (see Translations), reduced-motion aware
Single file, no external dependency
Supported integrations
Supported integrations
The cards work with any alarm control panel: the arm modes come from the panel's supported features and the keypad from its code format.
Everything: state, arm modes, keypad, exit and entry delays, open and bypassed sensors, last trigger, who changed the state, forced arming with a sensor open, "Arm anyway" when Alarmo refuses to arm
Manual (built in), Verisure, Ajax and any other panel
State, arm modes, keypad, delays (expiration attribute), the sensors you list
Prerequisites
Prerequisites
Home Assistant 2024.8 or later, with an alarm control panel (Alarmo recommended).
Edit a dashboard, click Add card and search for Alarm Card or Alarm Mini Card. The first alarm panel is preselected; pick the arm modes to show, the sensors to display and the options. Options left at their default are kept out of the generated YAML.
Show the title in the header (e.g. false under a section heading of your own)
show_subtitle
both
true
Show the subtitle under the title
modes
both
All supported
Arm modes to show, among home, away, night, vacation, custom_bypass (arm_ prefix optional); modes the panel does not support are ignored
sensors
both
—
Binary sensors to display and to check before arming: entity ids, or { entity, name }
buttons
both
—
Buttons section: switch, light, fan, input_boolean and siren entities show their state and a tap on their icon toggles them; button, input_button, script and scene entities run. A tap on the name opens the entity. Entity ids, or { entity, name }
cameras
both
—
Camera entities whose snapshots show in a Cameras section, refreshed with Home Assistant's camera pictures; a tap opens the camera. Entity ids, or { entity, name }
cameras_on_alarm
both
true
Show the cameras only while the alarm is triggered or its entry delay runs (pending); false: always
show_logo
both
true
Show the card logo
show_controls
both
true
Arm / disarm buttons
show_info
both
true
Who changed the state and the last trigger (Alarmo)
confirm_disarm
both
true without a code, false with one
Ask for confirmation before disarming. On by default when the panel needs no code, so one tap cannot disarm it; false turns it off. With a code, the code entry already protects disarming; true asks first as well. Cancelling an exit delay never asks
show_sensors
both
true
Sensors section (on the mini card: in its zoomed view)
collapsed
both
false
Fold the sensors section by default, click its title to unfold it (on the mini card: in its zoomed view)
show_activity
both
false
Activity section: the panel's latest arm, disarm and trigger changes from the logbook, with when (the exact time in the tooltip) and who (the person linked to the user, the user, or the automation) (on the mini card: in its zoomed view)
activity_count
both
5
Number of changes in the activity section (1 to 50)
activity_hours
both
24
Period of the activity section, in hours (1 to 168, i.e. 7 days)
zoom
mini
true
Detail button at the top right of the mini card: it shows the full card's content (with the same options) and switches back; false removes it
language
both
Auto
Force language: en, fr, de, es, sr, sr-Latn, it, nl, pt, pl, ro, da, sv, bg, ru, uk, hu, sk, cs, sl, lv or el (auto-detects from HA settings)
How it works
How it works
Modes: the buttons follow the panel's supported_features (home, away, night, vacation, custom bypass), narrowed by modes.
Code: when the panel has a code_format, Disarm opens the code pad, and so do the arm buttons unless code_arm_required is false. The code is sent with the standard alarm_control_panel.alarm_* services; a wrong code is reported by Home Assistant.
Open sensors: before arming, the card checks the configured sensors. When one is open it asks for confirmation; once confirmed, an Alarmo panel is armed with alarmo.arm and force: true (the standard service would be refused), other panels with the standard service.
Alarmo refusing to arm: Alarmo checks its own sensors and, when one is open, does not arm and fires the alarmo_failed_to_arm event. The card listens to it for an Alarmo panel and shows the open sensors in a popup at the top of the card; Arm anyway arms again with alarmo.arm and force: true, with the code just typed (else the code pad asks for it). The popup shows on the card that sent the arming, or, when the event names the panel, to the user who tried to arm. Home Assistant only lets administrators subscribe to this event: for other users the card shows no popup.
Activity: with show_activity, the card reads the panel's changes over activity_hours from the logbook (logbook/get_events) and keeps the arm, disarm and trigger ones. Who made a change comes from its context: the person linked to that user, the user's name (administrators only, from Home Assistant's user list), or the automation or script that did it. The list is read again when the panel changes state and every 10 minutes.
Unavailable sensors: Alarmo also reports sensors that are unavailable, or that no longer exist under the entity_id it was set up with, among its open sensors (they block arming). The card lists them on a separate "Unavailable" line; if an entity_id is shown there, update that sensor in Alarmo's settings.
Delays: during arming (exit delay) and pending (entry delay), the card counts down from Alarmo's delay attribute and the last state change, or from an expiration attribute.
Updates: the card only redraws when the panel, its sensors or the countdown change, and patches the page in place (no flicker, the code field keeps what you typed).
Support
Support
If you find this project useful, you can support its development:
Folding back on a tap elsewhere now works on iOS (Safari and the companion app): a tap on something that is not clickable sent no click to the page, so the unfolded sections, the confirmation popup, the code pad and the detailed view of the mini card stayed open. The press and the release are caught instead; a press in the card released outside of it and a scroll do not close anything.
Leaving the card (another dashboard view, a conditional card hidden) brings it back in its default state: sections folded as configured, popup and pad closed (the code typed is cleared), mini card compact.
1.9.0Nov 12, 2026
Features
show_title and show_subtitle options (also in the visual editor) hide the header's title and its subtitle, separately, for a card placed under a section heading of its own (asked in juju35/ha-vehicle-card#72).
1.8.0Nov 11, 2026
Features
Buttons: buttons adds a Buttons section with switches, lights, fans, input booleans and sirens (their state shown, a tap on the icon toggles them) and buttons, scripts and scenes (a tap runs them); a tap on the name opens the entity. For example the smart plugs of the cameras, to turn them on while at home (#52).
Display names in the visual editor: a Display names fold lists the sensors, cameras and buttons picked, each with its name, empty for the entity's own; saved as { entity, name } (#53). Cameras take a name too.
1.7.1Nov 9, 2026
Maintenance
No code change: released again to check the installation from the Marketplace.
1.7.0Nov 9, 2026
Features
Cameras: cameras lists camera entities whose latest snapshots show in a Cameras section while the alarm is triggered or its entry delay runs (cameras_on_alarm: false shows them always); a tap opens the camera's live view. Picked in the visual editor.
1.6.1Nov 9, 2026
Fixes
Translations: the cards are defined once the page's language file has arrived (at most 1.5 s; Home Assistant builds a card when its element gets defined), so the first render is already translated instead of English then redrawn; until a language file is in, a missing text reads the English one wherever the card has no fallback of its own.