Gotta love when code for a thing that is made by Home Assistant breaks because of one little piece of the code is just simply built wrong!

(Sorry @danieldeni, nothing against you lol. Just blaming things not being as simple as one would think)
Gotta love when code for a thing that is made by Home Assistant breaks because of one little piece of the code is just simply built wrong!

(Sorry @danieldeni, nothing against you lol. Just blaming things not being as simple as one would think)
New Update Available (2026.01.1)
Fix triggered notifications and add documentation improvements
Whatâs Fixed:
Whatâs New:
Upgrade Instructions:
kinda new to this so sorry if itâs a stupid question but how do i use the arming mode?
I got everything to work but i just have the issue if i set it to away mode and leave the house the alarm triggers when i open my door. how do i use the arming mode so i give myself like 30sec or so to leave the house?
That is set with the arming_time parameter in the Manual Alarm Control Panel you made in YAML. It can have different settings per mode. If you dont set it, it should default to 60s.
As mentioned in the instructions inside the blueprint you should not set the ZHA Alarm Panel as the Main Alarm Panel, as that one doesnât have the pending and arming states, so always directly switches states.
thx! i set the wrong main panel everything is working now.
New Update Available (2026.01.2)
Improve notification message readability and update documentation
Whatâs Changed:
Upgrade Instructions:
@danieldeni
I have a problem.
So, when my alarm gets triggered by a sensor, it gets almost immediately dismissed and the mode switched back.
Which versions of HA / Z2M?
What was the state your Manual Alarm Control Panel was in when it got triggered?
Are you using a physical keypad and if so, connected through Z2M or ZHA?
I havenât experienced this myself and am using it with the Z2M keypad + Dashboard Keypad.
I think itâs 2026.01.2 for MACP (according to the version history) and 2026.03.1b3 for HA Core. I am using a dashboard keypad, and it always does it on Armed Away, since I donât currently use the other states, other than Disarmed, Armed Away, and Triggered. I also redid my entire blueprint just to be sure.
I am not running the beta of HA Core. Will see tonight if anything changes in 2026.03.0 release.
Okay, but the thing is, itâs been happening for a while, not just for this updateâŚ
No issues for me. Can you show how you have set up your Manual Alarm Control Panel? The blueprint shows how I have set mine, which works for me.
I got as much as I could. I didnât really configure much, so Iâm just showing whatâs necessary related to the arming and triggering.
This is not readable.
Can you click on the three dots in the top right of that menu and click on Edit in YAML. Copy all the text and paste in a reply.
Mark it as preformatted text in the post, so it is easier to read.
Sorry about that. Here is the full YAML. I have privated my entity information in the yaml to protect my information.
use_blueprint:
path: danielpetrovic/alarm-system-with-keypad.yaml
input:
alarm_control_panel_main: alarm_control_panel.alarm
alarm_code_user:
- input_text.alarm_code_user_1
- input_text.alarm_code_user_2
alarm_code_user_name: input_text.alarm_code_user_name
integration_type:
- dashboard
alarm_dashboard_code: input_text.alarm_dashboard_code
alarm_dashboard_action: input_text.alarm_dashboard_action
alarm_presence_sensor: binary_sensor.home_members
alarm_auto_arm_away: true
alarm_auto_disarm_arriving: true
alarm_schedule_weekdays_enabled: false
alarm_schedule_weekends_enabled: false
alarm_notifications_target:
- {{ target_1 }}
- {{ target_2 }}
- {{ target_3 }}
- {{ target_4 }}
- {{ target_5 }}
- {{ target_6 }}
- {{ target_7 }}
- {{ target_8 }}
alarm_announcements_engine: tts.home_assistant_cloud
alarm_announcements_player:
- {{ announcements_device }}
alarm_sensor_away:
- {{ sensor_1 }}
- {{ sensor_2 }}
- {{ sensor_3 }}
alarm_notifications_critical_armed_away: true
alarm_notifications_critical_armed_home: true
alarm_notifications_critical_armed_night: true
alarm_sensor_night:
- {{ sensor_1 }}
- {{ sensor_3 }}
alarm_notifications_critical_arming: true
alarm_notifications_critical_pending: true
alarm_notifications_critical_disarmed: true
The configuration of the blueprint seems to be ok.
Can you also post the YAML config of
alarm_control_panel.alarm itself? You should have this in YAML somewhere. As this is the entity that actually handles the state changes.
Yes, I found it in /homeassistant/packages/alarm.yaml.
alarm_control_panel:
- platform: manual
name: Alarm
# Code is required to ARM the system, as requested.
code_arm_required: true
# --- Armed Away Settings ---
armed_away:
# Arming Time: 30 seconds to leave the house
arming_time: 30
# Delay Time: 60 seconds (1 minute) to enter the code
delay_time: 60
# --- Armed Home Settings ---
armed_home:
# Arming Time: Instant arm
arming_time: 0
# Delay Time: 30 seconds to enter the code
delay_time: 30
# --- Armed Night Settings ---
armed_night:
# Arming Time: Instant arm
arming_time: 0
# Delay Time: 30 seconds to enter the code
delay_time: 30
The issue is that your blueprint config is missing the alarm_code_main input, but your alarm panel has code_arm_required: true. The blueprint sends the master code to the panel on every arm/disarm, when itâs not configured, it sends an empty code which the panel rejects.
Since youâre only using the dashboard keypad, the simplest fix is to just disable the code requirement on the panel side, the blueprint handles all code validation internally, the panel doesnât need to enforce it too:
alarm_control_panel:
- platform: manual
name: Alarm
code_arm_required: false # â change this
Thanks for this blueprint, but Iâm having an issue. I have the following setup/hardware intended for the integration.
HA Core 2026.3.2
Sonoff Zigbee 3.0 USB Dongle Plus
Frient KEPZB0-110
All I want to do is have the ability to set individual user codes to be used with the Frient Keypad to change the alarm state, so that I can automate access to various part of the house (garage door, smart locks, etc) based on alarm arming and disarming. The Master set in the Alarm Code Main helper (which is the same code programmed within ZHA settings) will disarm the ZHA Keypad alarm. However, when I enter the codes for my two users (kids and guest) as set in the Alarm Code Kids and Alarm Code Guest helpers, the Frient alarm device in ZHA stays on âArmed Awayâ and doesnât disarm. In all instances, the Alarm created by the Blueprint (manual Alarm Control Panel) doesnât change states at all
Iâm wondering whatâs wrong with my setup.
I have the following set in my alarms.yaml
# Manual Alarm Control Panel
alarm_control_panel:
- platform: manual
name: Alarm
code_arm_required: true
armed_away:
arming_time: 0
delay_time: 20
armed_home:
arming_time: 0
delay_time: 10
armed_night:
arming_time: 0
delay_time: 20
# Input Text Helpers
input_text:
# Main/Master code (sent to alarm panel)
alarm_code_main:
name: Alarm Code Main
icon: mdi:server-security
mode: password
min: 4
max: 16
pattern: "^[0-9]+$" # Supports PIN only
# User codes (validated by blueprint)
alarm_code_user_1:
name: Alarm Code Kids
icon: mdi:teddy-bear
mode: password
min: 4
max: 16
pattern: "^[0-9A-F+]+$" # Supports PIN and RFID
alarm_code_user_2:
name: Alarm Code Guest
icon: mdi:vacuum
mode: password
min: 4
max: 16
pattern: "^[0-9A-F+]+$" # Supports PIN and RFID
# User name storage (updated by blueprint)
alarm_code_user_name:
name: Alarm Last User Name
icon: mdi:account
max: 255re
And here is the Automation from Blueprint YAML
alias: Frient Keypad Blueprint
description: ""
use_blueprint:
path: danielpetrovic/alarm-system-with-keypad.yaml
input:
alarm_control_panel_main: alarm_control_panel.alarm
alarm_code_main: input_text.alarm_code_main
alarm_code_user:
- input_text.alarm_code_user_1
- input_text.alarm_code_user_2
alarm_code_user_name: input_text.alarm_code_user_name
integration_type:
- zha
zha_alarm_keypad_device: "actualdevicenumbersredacted"
zha_alarm_control_panel_keypad: alarm_control_panel.frient_a_s_kepzb_110_alarm_control_panel
zha_alarm_code_keypad: input_text.alarm_code_main
alarm_schedule_weekdays_enabled: false
alarm_schedule_weekends_enabled: false