node-red-contrib-alarm-ultimate 0.3.0-beta.7

Alarm System node for Node-RED.

npm install node-red-contrib-alarm-ultimate

Alarm Ultimate for Node-RED

NPM version NPM downloads Node-RED Flows License GitHub issues Status: beta

node-red-contrib-alarm-ultimate

Alarm System Ultimate nodes + web panel for Node-RED.

Alarm Ultimate video (YouTube)
Watch the video on YouTube

Includes:

  • AlarmSystemUltimate (BETA): full alarm control panel node (zones, entry/exit delays, bypass, chime, 24h/fire/tamper, siren, event log, optional per-zone sensor supervision).
  • Helper nodes: AlarmUltimateState, AlarmUltimateZone, AlarmUltimateSiren.
    • AlarmUltimateState: Input/Output node with embedded adapters (Default / Homekit / Ax Pro / KNX-Ultimate).
    • AlarmUltimateZone: output-only zone events splitter (no adapters).
    • AlarmUltimateSiren: output-only siren state splitter.
  • Web tools: Zones JSON mapper + web Alarm Panel (embeddable in Node-RED Dashboard).

Note: AlarmSystemUltimate is currently BETA.

Table of contents

Install

  • Palette Manager: Menu → Manage paletteInstall → search alarm ultimate
  • NPM:
npm i node-red-contrib-alarm-ultimate

Quick start

Beginner-friendly flow:

  1. Add an AlarmSystemUltimate (BETA) node.
  2. Click Manage zones and add at least one zone (example topic: sensor/frontdoor). Use Export JSON / Import JSON in the Zones JSON Mapper web tool to backup/restore your zones. Important: after editing zones, click Done in the Node-RED editor to save (if you click Cancel, changes are lost).
  3. Send sensor messages to the Alarm node:
    • open: msg.topic="sensor/frontdoor", msg.payload=true
    • close: msg.topic="sensor/frontdoor", msg.payload=false
  4. Arm/disarm by sending a control message to the Alarm node:
    • msg.topic = controlTopic (default alarm)
    • msg.command = "arm" or msg.command = "disarm"
  5. Connect a Debug node to the Alarm output to see events.

Optional (recommended):

  • For sensor integrations that don't use msg.topic, use Zones → Zone input adapter in the AlarmSystemUltimate editor (KNX-Ultimate: knx.destination, AX Pro: payload.zoneUpdate).
  • Use AlarmUltimateState in Input mode to normalize arm/disarm commands (e.g. HomeKit) and inject them into the selected Alarm node.
  • Use AlarmUltimateState in Output mode with an Adapter to format state events for external systems (HomeKit / KNX / AX Pro / ...).
  • Use AlarmUltimateZone / AlarmUltimateSiren output-only nodes to split Alarm outputs into dedicated streams.
  • For distributed flows, use Node-RED built-in link in / link out to fan-in sensors/commands and fan-out Alarm outputs (see examples/alarm-ultimate-link-bus.json).

Screenshots

Alarm Panel (web)

Alarm Panel mock

Flow overview

Typical flow overview

Nodes

Alarm System Ultimate (BETA)

Main node that:

  • Receives control commands on msg.topic === controlTopic
  • Receives sensor messages on any other topic and matches them to a configured zone

It emits events and state updates on 9 outputs (see the node help in the editor for full details). Output #1 (All messages) is a superset and may emit a single message or an array (event + siren at the same time).

Use AlarmUltimateState (Output mode + Adapter) to format state events for your integrations, and AlarmUltimateZone / AlarmUltimateSiren to split outputs into dedicated streams.

Open zones listing features:

  • Open Zones (Arming): open zones listing while arming (interval configurable; 0 disables)
  • Open Zones (Cycle): cyclic open zones listing at a fixed interval (any alarm state; 0 disables)

Arming behavior:

  • By default, arming is blocked if any (non-bypassed) zone is open.
  • If enabled in a zone, supervision.blockArm: true also blocks arming while the zone is MISSING.
  • Optional node setting: Wait zones closed before exit delay (when arming with open zones, the node waits for all zones to close before starting the exit delay countdown).

Persistence:

  • Enable Persist state to keep armed/disarmed state, bypass list, event log and zone state across Node-RED restarts/deploys.

Optional per-zone sensor supervision

You can enable sensor supervision per zone to detect devices that stop reporting.

  • Supervision starts immediately when the node runs.
  • If a zone does not receive a valid sensor update for timeoutSeconds, the node emits supervision_lost and the Alarm Panel shows … • MISSING.
  • The next valid sensor update emits supervision_restored.
  • If blockArm: true, arming is blocked while the zone is missing.

“Valid” means the message value can be converted to boolean using the Alarm node With Input property (default msg.payload), e.g. true/false, open/closed, on/off, 1/0.

Example zone:

{
  "name": "Front door",
  "topic": "sensor/frontdoor",
  "type": "perimeter",
  "supervision": { "enabled": true, "timeoutSeconds": 120, "blockArm": true }
}

Helper nodes (I/O)

AlarmUltimateState and AlarmUltimateZone can work in two modes:

  • Output: emit Alarm events to the flow (no wiring from the Alarm node required).
  • Input: receive messages from the flow, apply an Adapter, and inject them into the selected Alarm node.

AlarmUltimateSiren remains output-only and emits siren telegrams.

  • Alarm State (AlarmUltimateState): emits .../event telegrams (msg.event, msg.payload = { event, mode, ... })
  • Alarm Zone (AlarmUltimateZone): emits zone_open / zone_close as .../event telegrams
  • Alarm Siren (AlarmUltimateSiren): emits siren telegrams (msg.topic = <controlTopic>/siren, msg.event = siren_on|siren_off, msg.payload = true|false)

Canonical envelope (msg.alarmUltimate)

All nodes in this package add a stable, versioned object to every output message:

msg.alarmUltimate = {
  v: 1,
  ts: 1700000000000,
  kind: "event|siren|open_zones|any_zone_open|command|...",
  alarm: { id, name, controlTopic },
  event: "armed|disarmed|zone_open|siren_on|...",
  mode: "armed|disarmed",
  reason: "init|timeout|manual|...",
};

Embedded adapters use msg.alarmUltimate as the canonical source, so they do not depend on user-configurable msg.topic / msg.payload formats.

Web tools

These pages are served via the Node-RED admin HTTP endpoint:

  • Zones JSON Mapper: /alarm-ultimate/alarm-json-mapper
  • Alarm Panel: /alarm-ultimate/alarm-panel

The Alarm Panel supports:

  • Preselect node: /alarm-ultimate/alarm-panel?id=<alarmNodeId>
  • Embed mode (for Dashboard iframes): /alarm-ultimate/alarm-panel?embed=1&id=<alarmNodeId>
  • Views: view=keypad, view=zones, view=log (e.g. /alarm-ultimate/alarm-panel?embed=1&view=log&id=<alarmNodeId>)

The Zones JSON Mapper supports:

  • Sample message mapping (e.g. KNX Ultimate): map topic/payload fields and generate a zone template.
  • ETS Group Addresses export (TSV): paste the exported table and generate zones in batch (boolean datapoints only).
  • Backup/restore: Export JSON / Import JSON for zone definitions.
  • Quality-of-life: bulk apply (Kind/Supervision), sorting, duplicate-topic skipping on import, persisted Step 1 input.

Examples

  • examples/alarm-ultimate-basic.json: ready-to-import flow with AlarmSystemUltimate, injects and debug nodes.
  • examples/alarm-ultimate-dashboard.json: Node-RED Dashboard example embedding the Alarm Panel in a ui_template iframe.
  • examples/alarm-ultimate-dashboard-controls.json: Node-RED Dashboard example with the embedded panel plus command buttons (and a small sensor simulator).
  • examples/alarm-ultimate-dashboard-v2.json: Dashboard 2.0 example for @flowfuse/node-red-dashboard (Alarm Panel + basic controls + status).
  • examples/alarm-ultimate-home-assistant-alarm-panel.json: Home Assistant Add-on example (no MQTT) using the HA Alarm Panel card.

See examples/README.md.

Development

Run tests:

npm test

Permissions and endpoints

When Node-RED authentication is enabled, the admin endpoints use these permissions (if available):

  • AlarmSystemUltimate.read
  • AlarmSystemUltimate.write

HTTP admin endpoints:

  • GET /alarm-ultimate/alarm/nodes
  • GET /alarm-ultimate/alarm/:id/state
  • GET /alarm-ultimate/alarm/:id/log
  • POST /alarm-ultimate/alarm/:id/command
  • GET /alarm-ultimate/alarm-json-mapper
  • GET /alarm-ultimate/alarm-panel

Node Info

Version: 0.3.0-beta.7
Updated 4 days ago
License: MIT
Rating: 5.0 1

Categories

Actions

Rate:

Downloads

1141 in the last week

Nodes

  • AlarmSystemUltimate
  • AlarmUltimateState
  • AlarmUltimateZone
  • AlarmUltimateSiren

Keywords

  • node-red
  • alarm
  • security

Maintainers