Overview
UniFi Protect is Ubiquiti’s video security software. It runs on a UniFi OS console, such as a Dream Machine Pro or a Cloud Key, and manages the UniFi cameras that you adopt into it. Cameras record to the console’s own storage. Seam connects to your UniFi console over your local network through a Seam Bridge. Once the console is connected, each camera adopted by that console appears in Seam as a device. You can stream live video, receive motion events, and retrieve a short clip and thumbnail for each motion event.UniFi Protect requires a Seam Bridge running on the same local network as the console. Seam never reaches the console over the public internet.
Supported Devices
Each Seam connected account represents one UniFi console running UniFi Protect. Every camera adopted by that console becomes a Seam device with theunifi_protect_camera device type.
Seam has verified this integration on one configuration: a UniFi Dream Machine Pro running UniFi Protect 7.3.70, with a G5 Turret Ultra camera. Other consoles and cameras may work, but Seam hasn’t verified them.
Supported Features
Before offering or opening a live view, check
device.can_stream_live_video. The console and its paired Seam Bridge must both be online.
Brand-Specific Restrictions
- Seam Bridge required. Live video, motion events, and clips all travel through the paired Seam Bridge. Seam doesn’t connect to UniFi Protect without one. If the Bridge or the console can’t be reached, cameras that Seam previously synced are reported offline.
- One console per connected account. Connect each UniFi console separately. All of the console’s adopted cameras appear under that one connected account.
- Stable local address. Seam stores the console’s local IP address or hostname. Reserve the console’s IP address in your router so that it doesn’t change.
- Live view changes a camera setting. The first live view of a camera turns on that camera’s low-quality RTSPS stream in UniFi Protect. This is a one-time setting change on the console. See What Happens on the First Live View.
- Event clips need a local-only user. See Event Clips and Thumbnails.
- Reconnect after a certificate reset. Seam pins the console’s TLS certificate the first time it connects. If the certificate is replaced, for example after a factory reset, reconnect the console. See the setup guide.
Event Clips and Thumbnails
For each motion event, Seam can retrieve a 20-second clip from the console’s own recordings: 5 seconds before and 15 seconds after the start of the event. Clips come from the camera’s high-quality channel and are H.264 MP4 files. Seam also creates a thumbnail from the clip. The IDs of both are in the event’smedia_ids. To fetch them, see Retrieve Event Media.
In Seam’s testing, a clip was available about 30 seconds after the motion started.
Event clips require:
- A local-only UniFi user with View Only Protect access. When you connect the console, enter this user’s username and password in the optional local user fields. A UniFi cloud account can’t be used. See the setup guide.
- Recording turned on. Clips come from the console’s own storage, so the console must be recording the camera.
unavailable with a reason.
Brand-Specific Events
Seam fires the following camera event for UniFi Protect devices:camera.activated: Fired when UniFi Protect detects motion. The event’sactivation_reasonismotion_detected. Seam merges overlapping Protect motion and smart-detection events, so you receive one event for each activation. In Seam’s testing, the event arrived about 2.5 seconds after the motion started.
motion_sub_type is set as follows:
Device Metadata
Each UniFi Protect device exposes the following optional fields indevice.properties.unifi_protect_metadata: camera_id, camera_name, model, mac, has_mic, and nvr_name. Any of them may be absent.
Device Provider Key
Seam identifies these devices with theunifi_protect device provider key. A Connect Webview shows UniFi Protect only when you include unifi_protect in the accepted_providers list, or set provider_category to cameras. For more information, see Customize the Brands to Display in Your Connect Webviews.