node-red-contrib-unifi-ultimate 0.1.0-beta.5
Node-RED nodes for Ubiquiti UniFi integrations, including UniFi Protect and UniFi Access.
Node-RED nodes for Ubiquiti UniFi integrations, currently covering UniFi Protect and a first UniFi Access beta.
Included in this first version
Unifi Protect Device: generic Protect object node with discovery of device types, instances, and device-specific capabilitiesUnifi Protect Config: shared configuration node for controller IP, API key header, API key, and TLS behaviorUnifi Access Device: first generic Access node focused on doors, Access devices, notification events, and safe doorbell controlUnifi Access Config: shared configuration node for host, bearer token, and TLS behavior
Example flows
- examples/unifi-protect-info.json: basic Protect camera observe example
- examples/unifi-protect-sensor-observe.json: Protect sensor boolean observe example
- examples/unifi-protect-camera-actions.json: Protect snapshot, PTZ preset, and doorbell message examples
- examples/unifi-access-door-control.json: Access door observe, unlock, and temporary lock rule examples
- examples/unifi-access-intercom-doorbell.json: Access intercom observe, trigger doorbell, and safe cancel example
Supported Access device types
DoorAccess Device
Supported Access capabilities
Common capabilities:
Receive EventsRead State
Door-specific capabilities:
Unlock DoorRead Lock RuleSet Temporary Lock RuleRead Emergency ModeSet Emergency Mode
Access device-specific capabilities:
Read Access MethodsUpdate Access MethodsTrigger DoorbellCancel Doorbell
Runtime behavior
The Device node supports runtime overrides via msg:
msg.deviceTypemsg.deviceIdmsg.capabilitymsg.capabilityConfigmsg.paramsmsg.querymsg.headersmsg.payload
Some capabilities expose options discovered from Protect and configured directly in the editor. For example:
Receive EventsonSensorlets you choose which boolean observable to monitorReceive EventsonCameralets you choose boolean event-driven observables like ring, motion, and smart detectionsReceive EventsonLightlets you choose boolean observables like motion or light on/offRecall PTZ Presetcan offer PTZ preset choices for the selected cameraStart PTZ Patroloffers patrol slot selectionShow Doorbell Messageguides predefined/custom/image doorbell messages and can load image assets from ProtectSwitch Live Viewcan offer available live views for the selected viewerUpdate One Propertydiscovers patchable properties from the selected device payload and adapts the value field to booleans, numbers, strings, or related object selections
In these cases, the node can be triggered by any input message and will build the correct request from the selected capability options.
For Sensor + Receive Events:
msg.payloadis normalized totrueorfalse- the full original device/event context is exposed in
msg.RAW
The same boolean-output pattern also applies to supported Camera + Receive Events and Light + Receive Events observables.
Output fields:
- Output 1: state or main capability response
- Output 2: Protect events for the selected device when capability is
Receive Events msg.unifiProtect: standardized device metadatamsg.device: last known object payload, when available
For the first UniFi Access beta:
Receive Eventsperforms an initial state fetch and then listens to the official Access notifications WebSocket- Output 1 carries the current door/device state or the main response
- Output 2 carries matching Access notification events
msg.unifiAccesscontains standardized metadata for Access nodesCancel Doorbellreturnsmsg.payload.skipped = truewhen the shared Access config node is not currently tracking any active ring