Skip to main content

Security Partition — security_partition

One armable area of a security system. A panel with no partitions configured has exactly one.

Separate from the panel, which is a bridge: the panel is a box on a wall that holds things, and what it holds is partitions and zones. Arming is per partition and always has been — a house with the garage on its own partition arms the garage at night and the rest of it at bedtime — so a contract that armed "the panel" could not say what the hardware already does.

Zones are sensor bindings and are not part of this. A partition says whether an area is armed; a zone says whether a door is open, and an automation wants to trigger on exactly one of those.

There is no user code in this contract. Panels want one to disarm, and the credential belongs to the installation rather than to the command: a code passed as an argument would be typed into a controls page in the clear, stored in whatever rule referenced it, and copied into every automation that disarms. Drivers hold it as a device property, like every other secret they carry. That also makes disarming look like unlocking a lock, which is the right comparison — both are "anyone who can reach this controller can open the house", and the answer to that is who can reach the controller, not an argument on one command.

Capabilities​

Declared in the driver manifest under [[proxy]] capabilities. Anything not declared takes the default below.

CapabilityTypeDefaultMeaning
has_awaybooltrue
has_panicboolfalseAn alarm can be raised from here
has_staybooltrueCan arm the perimeter and leave the interior live

Commands​

arm_away​

Only present when has_away is declared true.

Arm everything, after the exit delay.

ParameterTypeNotes
bypassbool (optional)Arm over zones that are open, rather than refusing
instantbool (optional)Skip the exit delay — armed the moment the panel accepts it

arm_stay​

Only present when has_stay is declared true.

Arm the perimeter with the interior live, for a house with people in it.

ParameterTypeNotes
bypassbool (optional)
instantbool (optional)

disarm​

No parameters.

panic​

Only present when has_panic is declared true.

Trip the alarm deliberately. Whether this reaches a monitoring station is the panel's business, not ours.

ParameterTypeNotes
kindone of police · fire · auxiliary

Notifications​

code_required_changed​

Whether this partition insists on a code to arm it. Disarming always needs one.

Shown rather than acted on, and it is a report rather than a capability because a panel's installer can change it from the keypad on a Tuesday — a capability is resolved when a device is adopted and would then be wrong until somebody re-adopted it.

ParameterTypeNotes
requiredbool

online_changed​

ParameterTypeNotes
onlinebool

status_changed​

Where the partition is now. One notification rather than one per transition, because a partition is always in exactly one of these and a rule almost always wants the transition into a state.

ParameterTypeNotes
detailstring (optional)What kind of alarm, when the status is alarm
secondsu32 (optional)How long the delay runs, while it is one
statusone of disarmed · exit_delay · entry_delay · armed_stay · armed_away · alarm

State​

Last-known values core keeps for a binding of this proxy.

KeyTypeMeaning
alarmbool
armedbool
code_requiredbool
delay_secondsu32
onlinebool
statusstring