Alarm Logic
What This Page Covers
This page explains how the Security and Alarm Capability evaluates zone events, manages arm mode transitions, applies entry and exit delays, fires alarms and activates sirens. It describes the partition state machine and the rules that determine when a zone detection becomes a full alarm event.
Arm Mode Transitions
A partition is always in exactly one arm mode:
| Mode | Description |
|---|---|
DISARMED | No zones are monitored |
HOME | Partial arming — perimeter zones active, interior zones bypassed |
AWAY | Full arming — all zones monitored |
ENVIRONMENT | Perimeter or environmental arming |
MAINTENANCE | Maintenance mode — alarm triggers bypassed |
Arming
Transitioning from DISARMED to any armed mode requires an authenticated security session. The user provides a valid PIN (or uses quick-arm via key fob if enabled), and the partition moves to the target arm mode.
When arming begins, an exit delay starts. During this window the occupant can move through exit zones without triggering the alarm. Once the exit delay expires the partition is fully armed and all applicable zones are monitored.
If quickArm is enabled on the partition, arming can be initiated from a key fob or automation rule without PIN entry.
Disarming
Transitioning from any armed mode to DISARMED also requires a valid PIN via a security session. If a disarm command is received during an active entry delay, the partition disarms and no alarm fires.
Always-Armed Partitions
When alwaysArmed is set on a partition, disarming is not permitted. The partition remains in its armed mode regardless of user commands.
Zone Monitoring by Arm Mode
Not all zones are monitored in every arm mode. The zone type determines when the alarm logic evaluates that zone:
| Zone Type | DISARMED | HOME | AWAY | ENVIRONMENT | MAINTENANCE |
|---|---|---|---|---|---|
Interior | — | — | Monitored | — | — |
Perimeter | — | Monitored | Monitored | Monitored | — |
Panic | Monitored | Monitored | Monitored | Monitored | Monitored |
Silent | — | Monitored | Monitored | Monitored | — |
Safety | Monitored | Monitored | Monitored | Monitored | Monitored |
Tamper | Monitored | Monitored | Monitored | Monitored | Monitored |
Key implications:
- Interior zones are only active in
AWAYmode. InHOMEmode they are bypassed automatically, allowing occupants to move freely inside. - Perimeter zones are active in both
HOMEandAWAY, protecting the building shell. - Panic, Safety and Tamper zones are always active regardless of arm mode — they are 24-hour zones.
- Maintenance mode bypasses all alarm triggers except Panic, Safety and Tamper.
Exit Delay
The exit delay gives the occupant time to leave after arming. The sequence:
- User issues arm command (e.g.
DISARMED→AWAY). - Partition sets
exitStarted = trueand recordsexitFrom(start) andexitUntil(deadline). - During the exit delay, zones marked as
zoneExit = truedo not trigger the alarm — the occupant can open the exit door and pass through without consequence. - Non-exit zones that trip during the exit delay trigger an immediate alarm (there is no reason for movement in non-exit areas during arming).
- When the exit delay expires, all applicable zones become fully monitored.
Exit Delay Configuration
The exit delay duration is configured at the partition level:
exitDelay— seconds forAWAYmodehomeExitDelay— seconds forHOMEmode
Individual zones can override the partition-level exit delay with a per-zone exitDelay value.
Entry Delay
The entry delay gives the occupant time to disarm after entering through a designated entry point. The sequence:
- The partition is armed and an entry zone (
zoneEntry = true) trips. - Instead of firing immediately, the partition sets
entryStarted = true, recordsentryFrom/entryUntiland storesentryZone— the zone that initiated the delay. - The entry delay countdown begins.
- If the user disarms within the entry delay window, no alarm fires.
- If the entry delay expires without a valid disarm, the alarm fires.
Entry Delay Configuration
entryDelay— seconds forAWAYmode (partition-level)homeEntryDelay— seconds forHOMEmode (partition-level)
Individual zones can override the partition-level entry delay with per-zone entryDelay and homeEntryDelay values.
Follower Zones
A zone marked as zoneFollower = true inherits the entry delay when one is already active:
- Normally, only the primary entry zone (
zoneEntry = true) starts the entry delay countdown. A non-entry interior zone that trips while armed would fire the alarm immediately. - A follower zone is the exception: if it trips while an entry delay is already running, it is treated as if it were part of the entry path — it does not fire the alarm. The occupant walking past it on the way to the keypad does not trigger an immediate alarm.
- If no entry delay is active (i.e. the follower zone trips on its own without a preceding entry zone trip), it behaves like a normal zone and triggers the alarm immediately.
This models the common scenario where the occupant opens the front door (entry zone starts the delay) and then walks through a hallway (follower zone) to reach the keypad. Without the follower flag, the hallway motion sensor would fire instantly.
Trip and Alarm Firing
When a zone detects activity while the partition is armed and no delay window applies, the alarm fires.
Trip State
When a zone triggers, the partition state is updated:
| Field | Value |
|---|---|
tripped | true |
tripType | ALARM, TAMPER or similar depending on zone type |
trippedBy | Reference to the zone that caused the trip |
tripSensorState | Sensor state at the moment of the trip |
The tripped state coexists with the arm mode. A partition can be AWAY and tripped = true simultaneously — the arm mode does not change when an alarm fires.
Immediate Triggers
Some zone types bypass all delays and fire the alarm immediately:
- Panic zones — immediate alarm on any state change, regardless of arm mode.
- Safety zones — fire, gas or smoke detection triggers immediately with no delay.
- Tamper zones — sensor tamper triggers immediately.
Standard Trigger Sequence (Non-Entry Zone)
- Partition is armed.
- A monitored zone (not an entry zone) detects activity.
- Alarm fires immediately — no delay.
- Sirens activate after
sirenDelayseconds (if configured; otherwise immediate). - Notifications are sent through all configured channels.
- Event is logged with
needAck = trueif acknowledgement is required.
Entry Zone Trigger Sequence
- Partition is armed.
- An entry zone detects activity.
- Entry delay begins — siren is silent, no notifications yet.
- If disarmed within entry delay → partition disarmed, no alarm.
- If entry delay expires without disarm → alarm fires, sirens and notifications activate.
Siren Behaviour
When an alarm fires, the partition activates all devices in its sirens list. Configuration controls the timing:
| Setting | Description |
|---|---|
sirenDelay | Seconds after the alarm fires before the siren activates — allows a brief window for the occupant to realize they forgot to disarm |
sirenTime | Seconds the siren stays active before automatically silencing |
Per-zone sirenDelay overrides allow different zones to have different response times — for example, a longer siren delay on the entry door and a shorter one on a window.
Silent Alarm
When silentAlarm is enabled on a partition, the alarm fires silently — notifications are sent but no sirens activate. This is used in scenarios where alerting the intruder is undesirable.
Squawk Devices
Squawk devices (squawks list) provide audible confirmation of arm and disarm actions — a brief chirp when the partition arms or disarms. They do not activate during an alarm.
Cross-Zoning
Cross-zoning is a false-alarm reduction mechanism. When enabled on a partition:
- A single zone trip does not immediately fire the alarm.
- A second zone within the same
crossZoneGroupmust trip withincrossZoningTimeseconds. - Only when the second zone confirms the first does the alarm fire.
This prevents single-sensor false positives (e.g. a pet triggering one motion sensor) from causing a full alarm. Zones are grouped via the crossZoneGroup field — only zones in the same group confirm each other.
Configuration
| Setting | Level | Description |
|---|---|---|
crossZoning | Partition | Enable or disable cross-zoning |
crossZoningTime | Partition | Time window (seconds) within which a second zone must trip |
crossZoneGroup | Zone | Group assignment — zones confirm others in the same group |
Health Care Mode
When healthCareMode is enabled on a partition, the alarm logic inverts: instead of detecting intrusion (unexpected activity), it detects inactivity (absence of expected activity).
If no motion is detected within mobilityTime seconds, the partition fires an alert. This is designed for monitoring elderly or vulnerable occupants — silence means something may be wrong.
Health care mode uses the same zone infrastructure but interprets sensor data differently. Interior motion sensors that normally detect intrusion instead serve as activity indicators.
Zone Bypass
Zones can be bypassed before arming. A bypassed zone is excluded from monitoring — its state changes do not trigger the partition's alarm logic.
Bypass behaviour:
- Only zones with
bypassable = truecan be bypassed. - Users must have the
PRIV_BYPASSpermission on the partition. - When
removeZoneBypass = trueon a zone, the bypass is automatically removed after the partition is armed — it applies only to the arming cycle during which it was set. - Bypassed zones have
bypassed = truein their zone state.
Zone Readiness
Before arming, the system checks whether all zones are ready. A zone is ready when its bound sensor is in its normal (non-tripped) state and the sensor device is online.
Zone readiness state:
| Field | Meaning |
|---|---|
ready | Sensor is in normal state |
sensorOffline | Sensor device is not responding |
If a zone is not ready (sensor tripped or offline), arming may be blocked unless that zone is bypassed.
Chime
Zones with chime = true trigger a chime sound when tripped while the partition is disarmed. This provides awareness of entry and exit activity (e.g. a door opening) without requiring the partition to be armed. Chime is independent of the alarm logic and does not affect arming, delays or alarm state.
State Machine Summary
The partition state machine has five distinct states. Transitions are triggered by user commands, timer expiry or zone events.
States
| State | Key Fields | Description |
|---|---|---|
| Disarmed | armMode = DISARMED | No zones monitored, system inactive |
| Exiting | armMode = armed, exitStarted = true | Exit delay countdown active; exit zones suppressed |
| Armed | armMode = armed, tripped = false | All applicable zones monitored, waiting for events |
| Entry Delay | armMode = armed, entryStarted = true | Entry delay countdown active; awaiting disarm |
| Alarm | armMode = armed, tripped = true | Alarm fired; sirens active, notifications sent |
Transitions
| # | From | Trigger | To | Detail |
|---|---|---|---|---|
| 1 | Disarmed | Arm command (PIN or quick-arm) | Exiting | Exit delay countdown begins |
| 2 | Exiting | Exit delay expires | Armed | All applicable zones now monitored |
| 3 | Exiting | Disarm command (PIN) | Disarmed | Arming cancelled before completion |
| 4 | Exiting | Non-exit zone trips | Alarm | No valid reason for non-exit activity during exit |
| 5 | Armed | Entry zone trips | Entry Delay | Entry delay countdown starts |
| 6 | Armed | Non-entry zone trips | Alarm | No delay — immediate alarm |
| 7 | Armed | Panic / Safety / Tamper zone trips | Alarm | 24-hour zones — immediate, regardless of configuration |
| 8 | Armed | Disarm command (PIN) | Disarmed | Normal disarm, no alarm |
| 9 | Entry Delay | Disarm command (PIN) | Disarmed | Successful disarm within window — no alarm |
| 10 | Entry Delay | Follower zone trips | Entry Delay | Follower inherits active delay — no alarm yet |
| 11 | Entry Delay | Non-follower zone trips | Alarm | Non-follower zone has no delay protection |
| 12 | Entry Delay | Delay expires | Alarm | Occupant failed to disarm in time |
| 13 | Alarm | Disarm command (PIN) | Disarmed | Alarm acknowledged, sirens silenced |
Diagram
Notes
- The arm mode (
HOME,AWAY,ENVIRONMENT) persists through Entry Delay and Alarm states — it does not revert until an explicit disarm command. - Cross-zoning (when enabled) adds an intermediate confirmation step between the initial zone trip and the transition to Alarm: the first trip starts a timer and only escalates if a second zone in the same group trips within
crossZoningTimeseconds. MAINTENANCEmode follows the same state structure but suppresses transitions to Alarm for all zone types except Panic, Safety and Tamper.- The Alarm state is not self-clearing — it requires an explicit disarm to return to Disarmed. Sirens auto-silence after
sirenTimebut the tripped state remains.
Where to Continue
| Goal | Page |
|---|---|
| Understand partition and zone configuration in detail | Partitions and Zones |
| Configure notification channels and contacts | Notifications |
| Return to the Security and Alarm overview | Security and Alarm Overview |
| Understand the normalized device model that feeds zones | Device Normalization |