Skip to content

Feature: add allowDisarm option to block HomeKit Disarm on Ring Alarm (PR #1650) #1651

@salmanesm

Description

@salmanesm

Description

HomeKit exposes a “Disarm” control for the Ring Alarm. Some households want arming/status in HomeKit but never want the alarm disarmed via Home, Siri, or automations (accidental taps, kids, voice misfires, etc.).

This request adds an optional config flag to allow disarming from HomeKit; when disabled, disarm requests are ignored while arming still works. Docs and a minimal implementation are included in PR #1650.

Link: #1650

Proposed solution

• Add optional config flag: allowDisarm (default: true) to the Homebridge Ring platform.
• When HomeKit sets SecuritySystemTargetState=DISARM and allowDisarm === false:
– Do not call the Ring API (quiet no-op).
– Immediately reset Target/Current characteristics to the previous values so the Home app “snaps back” without an error toast.
– Log a clear line for observability:
[Ring Alarm] Disarm attempt from HomeKit blocked (allowDisarm=false)

• Leave Arm Home/Away/Night behavior unchanged.
• README: document the flag and provide a config example:
{
"platform": "Ring",
"refreshToken": "",
"allowDisarm": false
}

Alternatives

• Throw an error from the onSet handler – surfaces a red error banner in Home; poorer UX.
• Remove the Disarm control – not supported by HomeKit’s Security System characteristic.
• Rely on HomeKit automations/permissions – brittle and doesn’t prevent manual disarm in the Home app.
• Use separate HomeKit users or Guided Access – operational overhead; still doesn’t fully prevent disarm.

Device data

Environment (example – adjust to your actual versions):
• Homebridge: 1.11.0
• homebridge-ring: 14.0.1 (custom build from PR #1650)
• Node.js: 18/20 LTS
• OS: Ubuntu 22.04 LTS (hb-service install)
• Ring hardware: Ring Alarm Base Station (Gen 2)

Config used for validation:
{
"platform": "Ring",
"refreshToken": "",
"allowDisarm": false
}

Expected behavior with allowDisarm=false:
• Arm Home/Away/Night succeed.
• Disarm is ignored; Home tile snaps back (no error toast).
• Log line: “[Ring Alarm] Disarm attempt from HomeKit blocked (allowDisarm=false)”.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions