# \[APP\]\[Pro\] Ubiquiti UniFi Protect

**URL:** <https://community.homey.app/t/app-pro-ubiquiti-unifi-protect/42966>\
**Category:** Apps\
**Tags:** app, camera\
**Created:** [February 14, 2021, 9:51am UTC](https://community.homey.app/t/app-pro-ubiquiti-unifi-protect/42966 "2021-02-14T09:51:40Z")\
**Posts on this page:** 20\
**Page:** 53

<div class="post-metadata">

**Author:** ![ObelixNL](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/obelixnl/32/172250_2.png) [@ObelixNL](https://community.homey.app/u/ObelixNL)\
**Post date:** [September 24, 2026, 5:10pm UTC](https://community.homey.app/t/app-pro-ubiquiti-unifi-protect/42966/1058 "2026-09-24T17:10:17Z")

</div>

Can you try to disable all streams and enable only the low resolution shared stream (rtsps) ?

---

<div class="post-metadata">

**Author:** ![Fac3](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/fac3/32/4550_2.png) [@Fac3](https://community.homey.app/u/Fac3)\
**Post date:** [September 25, 2026, 12:49pm UTC](https://community.homey.app/t/app-pro-ubiquiti-unifi-protect/42966/1060 "2026-09-25T12:49:45Z")

</div>

I’ve deleted credentials as you requested, since then, G3/4/5 cameras are streaming, while G6 still not.

---

<div class="post-metadata">

**Author:** ![Fac3](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/fac3/32/4550_2.png) [@Fac3](https://community.homey.app/u/Fac3)\
**Post date:** [September 25, 2026, 12:51pm UTC](https://community.homey.app/t/app-pro-ubiquiti-unifi-protect/42966/1061 "2026-09-25T12:51:24Z")

</div>

@ObelixNL Can you reproduce the zone activity issue?

---

<div class="post-metadata">

**Author:** ![ObelixNL](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/obelixnl/32/172250_2.png) [@ObelixNL](https://community.homey.app/u/ObelixNL)\
**Post date:** [September 25, 2026, 3:49pm UTC](https://community.homey.app/t/app-pro-ubiquiti-unifi-protect/42966/1062 "2026-09-25T15:49:26Z")

</div>

Did you also try to disable all streams behalve the low res stream? And restarted the Homey Protect app? It works on my test phone.

---

<div class="post-metadata">

**Author:** ![Michael\_Withagen](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/michael_withagen/32/79696_2.png) [@Michael\_Withagen](https://community.homey.app/u/Michael_Withagen)\
**Post date:** [September 25, 2026, 4:34pm UTC](https://community.homey.app/t/app-pro-ubiquiti-unifi-protect/42966/1063 "2026-09-25T16:34:33Z")

</div>

Doesn’t make a difference but I think it stays on the high res stream, rebooting the app re-enables all 3 options so I can’t turn it off and force it to reconnect.

---

<div class="post-metadata">

**Author:** ![Fac3](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/fac3/32/4550_2.png) [@Fac3](https://community.homey.app/u/Fac3)\
**Post date:** [September 28, 2026, 4:14pm UTC](https://community.homey.app/t/app-pro-ubiquiti-unifi-protect/42966/1064 "2026-09-28T16:14:27Z")

</div>

I’ve checked what you suggested. Even Protect controller was restarted on UDM just for sure. Still live feed comes with black picture and sound.

---

<div class="post-metadata">

**Author:** ![oklie](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/oklie/32/11344_2.png) [@oklie](https://community.homey.app/u/oklie)\
**Post date:** [October 4, 2026, 3:05pm UTC](https://community.homey.app/t/app-pro-ubiquiti-unifi-protect/42966/1065 "2026-10-04T15:05:15Z")

</div>

Have you enabled Super Encoding in the latest Protect release? I had also black live screens with this setting on.

---

<div class="post-metadata">

**Author:** ![LionelDerBoven](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/lionelderboven/32/121059_2.png) [@LionelDerBoven](https://community.homey.app/u/LionelDerBoven)\
**Post date:** [October 4, 2026, 4:33pm UTC](https://community.homey.app/t/app-pro-ubiquiti-unifi-protect/42966/1066 "2026-10-04T16:33:57Z")

</div>

Hi! I found a small bug and opened a PR for it: a guest leaving the Wi-Fi is not seen, because the console reports it as EVT\_WG\_Disconnected and the app only listens to EVT\_WU\_\*:  
steffjenl/com-homey-unifinetwork#28 · Handle wireless guest events…. I also opened a feature request for “first / last client on a Wi-Fi network” with an SSID argument: steffjenl/com-homey-unifinetwork#29. I have both running in a small add-on app and am happy to help get them into this app.

---

<div class="post-metadata">

**Author:** ![Fac3](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/fac3/32/4550_2.png) [@Fac3](https://community.homey.app/u/Fac3)\
**Post date:** [October 5, 2026, 6:26am UTC](https://community.homey.app/t/app-pro-ubiquiti-unifi-protect/42966/1067 "2026-10-05T06:26:20Z")

</div>

Yeah! Thanks! It was the root of the issue. Video encoding should be on standard instead of enhanced.

---

<div class="post-metadata">

**Author:** ![cautje](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/cautje/32/328_2.png) [@cautje](https://community.homey.app/u/cautje)\
**Post date:** [October 9, 2026, 11:02am UTC](https://community.homey.app/t/app-pro-ubiquiti-unifi-protect/42966/1068 "2026-10-09T11:02:48Z")

</div>

Hi,

Is there a way to swich the relais ports on the doorhub by a homey flow?

Thx!!!

---

<div class="post-metadata">

**Author:** ![Fac3](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/fac3/32/4550_2.png) [@Fac3](https://community.homey.app/u/Fac3)\
**Post date:** [October 9, 2026, 1:09pm UTC](https://community.homey.app/t/app-pro-ubiquiti-unifi-protect/42966/1069 "2026-10-09T13:09:19Z")

</div>

Dear @ObelixNL

Please response to this.

---

<div class="post-metadata">

**Author:** ![ObelixNL](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/obelixnl/32/172250_2.png) [@ObelixNL](https://community.homey.app/u/ObelixNL)\
**Post date:** [October 9, 2026, 1:40pm UTC](https://community.homey.app/t/app-pro-ubiquiti-unifi-protect/42966/1070 "2026-10-09T13:40:52Z")

</div>

Do you have an example flow?

---

<div class="post-metadata">

**Author:** ![Fac3](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/fac3/32/4550_2.png) [@Fac3](https://community.homey.app/u/Fac3)\
**Post date:** [October 9, 2026, 1:54pm UTC](https://community.homey.app/t/app-pro-ubiquiti-unifi-protect/42966/1071 "2026-10-09T13:54:21Z")

</div>

This issue is not representable by a flow. As you can see on the screenshots above, if in a zone there are only cameras, Homey does not handle them as motion sensor, so zone activity cards does not work. While, if I put a motion sensor into the zone, Homey handles motion sensor and camera in the Zone Activity.

---

<div class="post-metadata">

**Author:** ![ObelixNL](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/obelixnl/32/172250_2.png) [@ObelixNL](https://community.homey.app/u/ObelixNL)\
**Post date:** [October 9, 2026, 10:37pm UTC](https://community.homey.app/t/app-pro-ubiquiti-unifi-protect/42966/1072 "2026-10-09T22:37:53Z")

</div>

Can you try the Test version and add an ‘Camera zone detection’ device into your zone?

---

<div class="post-metadata">

**Author:** ![Fac3](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/fac3/32/4550_2.png) [@Fac3](https://community.homey.app/u/Fac3)\
**Post date:** [October 10, 2026, 7:36am UTC](https://community.homey.app/t/app-pro-ubiquiti-unifi-protect/42966/1073 "2026-10-10T07:36:35Z")

</div>

Hi! I’ve just checked, this way it works fine! Thanks!!!

---

<div class="post-metadata">

**Author:** ![Erikvl87](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/erikvl87/32/112784_2.png) [@Erikvl87](https://community.homey.app/u/Erikvl87)\
**Post date:** [October 23, 2026, 3:13pm UTC](https://community.homey.app/t/app-pro-ubiquiti-unifi-protect/42966/1075 "2026-10-23T15:13:41Z")

</div>

Hi! Thanks for building and maintaining this app.

I noticed that the app served me low quality camera snapshots. I have some scenarios where this becomes an issue, one of them being when casting the image to a high resolution device. I’ve created a PR to fix this and would appreciate it if you could take a look.

> <https://github.com/steffjenl/com-homey-unifiprotect/pull/59>
>
> \## Problem
> 
> Camera and doorbell snapshots are low resolution (640x360 or 480x360…) when the V1 login is configured, even with an API key set as well. With only an API key, the doorbell package snapshot shows the main camera image instead of the package camera.
> 
> \## Root cause
> 
> \- Snapshots tried V1 first. The V1 \`cameras/{id}/snapshot\` and \`package-snapshot\` endpoints ignore \`w\` (and \`h\`, \`highQuality\`) and always return the low stream. The V2 snapshot endpoint returns the highest stream.
> \- The V2 package snapshot called the normal snapshot endpoint without \`channel=package\`.
> 
> \## Change
> 
> \- Camera and doorbell snapshots try V2 first and fall back to V1 when the V2 request fails. If V1 is not available, the V2 error is thrown.
> \- The doorbell package snapshot requests \`channel=package\` on V2, with V1 \`package-snapshot\` as fallback.
> \- \`highQuality\` is deliberately not sent: it makes no difference on cameras that support it, and cameras without full HD snapshot support (G5 Flex) answer it with a 400.
> \- \`specs/unifi-protect-api-notes.md\`: added the V1 snapshot endpoints and the measurements below.
> 
> \## Measurements
> 
> Observed on UDM SE, Protect 7.3.70:
> 
> | Camera | V1 \`snapshot\` (any \`w\`/\`h\`) | V2 \`snapshot\` (no params) | V2 \`highQuality=true\` |
> |--------|------|------|------|
> | G3 / G3 Dome (max 1920x1080) | 640x360 | 1920x1080 | 1920x1080 |
> | G4 Doorbell Pro (max 1600x1200) | 480x360 | 1600x1200 | 1600x1200 |
> | G4 Doorbell Pro package camera | 480x360 (\`package-snapshot\`) | 960x720 (\`channel=package\`) | 960x720 |
> | G5 Flex (max 2688x1512) | 640x360 | 640x360 | 400 \`Camera does not support full HD snapshot\` |
> 
> A V2 snapshot takes about 100–300 ms, the same as V1. Normally only the V2 request is made; V1 is only called when V2 fails, for example with an invalid API key.
> 
> \## Testing
> 
> \- \`npm test\`: all 579 tests pass. New \`test/unit/snapshot-quality.test.js\` covers the V2-first order, the V1 fallback, rethrowing the V2 error without V1, and the package channel (regression test).
> \- ESLint: no new errors in the changed files.
> \- \`homey app validate\` passes.
> \- Confirmed on a real Homey with this build.

---

<div class="post-metadata">

**Author:** ![Erikvl87](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/erikvl87/32/112784_2.png) [@Erikvl87](https://community.homey.app/u/Erikvl87)\
**Post date:** [October 24, 2026, 9:09pm UTC](https://community.homey.app/t/app-pro-ubiquiti-unifi-protect/42966/1076 "2026-10-24T21:09:18Z")

</div>

I created one more PR. When a flow uses the camera image in more than one card, each card gets a different picture, because a new snapshot is taken every time. So I added a doorbell card that takes one snapshot and keeps it as a tag for a while, so every card in the flow uses the same picture.

Here’s the PR, happy to hear what you think:

> <https://github.com/steffjenl/com-homey-unifiprotect/pull/60>
>
> \## Problem
> 
> The doorbell camera image tag fetches a new snapshot every time a ca…rd reads it. In a flow like "Doorbell pressed" \> AI image analysis \> push notification with the image, the AI card and the notification each read the tag a few seconds apart, so they get different pictures.
> 
> \## Change
> 
> New Advanced Flow action card on the doorbell: "Get the current camera image, usable for \[\[minutes\]\] minutes" (NL "Haal het huidige camerabeeld op, bruikbaar voor \[\[minutes\]\] minuten"). It reads the snapshot once and returns it as the image tag "Camera image" (\`ufp\_camera\_image\`). Every card that uses that tag gets the same bytes. Nothing is saved in Protect.
> 
> \- The tag stays usable for the minutes set on the card (1 to 999, the same maximum as Homey's Delay card), then the image is unregistered. The field is optional (\`required: false\`) with placeholder 30; an empty or invalid value (for example a tag in Advanced Flow) uses 30, values above 999 use 999. Flow card args have no default value property, so placeholder plus fallback is the closest option.
> \- The snapshot is fetched before the card returns, so a failed fetch fails the card in the flow instead of returning an empty tag.
> \- Titles, hint and field label in all 12 locales.
> 
> Why an action card and not a tag on "Doorbell pressed": a tag on the trigger would fetch and hold a picture on every press, for every user, whether or not a flow uses it. With the action card a picture only exists when a flow asks for one. It also lets users put a Delay card before it, for example so the visitor's finger is out of the picture.
> 
> \## Memory
> 
> Each run holds one picture in memory until its minutes run out. At 1600x1200 a snapshot is roughly 150 to 400 KB (estimated, not measured), so normal doorbell use stays at a few MB even at 999 minutes. The risk is a long lifetime on a card that runs often: a card run every 30 seconds with 999 minutes would hold about 2000 pictures (around 600 MB).
> 
> \## Testing
> 
> \- \`npm test\`: all 583 tests pass. New \`test/unit/doorbell-camera-image-action.test.js\` covers one fetch for repeated and parallel reads, a second run not changing the first run's picture, unregistering after the chosen minutes, the fallbacks for empty, invalid and too large values, a missing or empty snapshot failing the card, and the driver passing the tag and minutes through.
> \- \`homey app validate --level publish\` passes.
> \- Confirmed on a real Homey with this build.

---

<div class="post-metadata">

**Author:** ![ObelixNL](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/obelixnl/32/172250_2.png) [@ObelixNL](https://community.homey.app/u/ObelixNL)\
**Post date:** [October 24, 2026, 9:49pm UTC](https://community.homey.app/t/app-pro-ubiquiti-unifi-protect/42966/1077 "2026-10-24T21:49:29Z")

</div>

Both PR’s are merged and created 1.13.5 test version

---

<div class="post-metadata">

**Author:** ![Edwin\_Nauta](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/edwin_nauta/32/125905_2.png) [@Edwin\_Nauta](https://community.homey.app/u/Edwin_Nauta)\
**Post date:** [October 26, 2026, 7:49pm UTC](https://community.homey.app/t/app-pro-ubiquiti-unifi-protect/42966/1079 "2026-10-26T19:49:20Z")

</div>

Hi, following up on the G6 live view issue discussed with @Fac3 above — I’m seeing the exact same problem.

Setup: Homey Pro, UniFi Protect app v1.13.2. Camera: Mastcamera (UniFi G6 PTZ).

Symptoms: snapshot works, motion detection works, camera is online in Protect with live video working fine there. In Homey (web app via my.homey.app) the live view never loads — it briefly shows “Stream laden…” then falls back to the last snapshot with “Camera is not available”.

What I tried, no change in any case:

- Videocodec setting: Automatisch vs H.264 (forced)
- 
  - Enabled Medium + Low Resolution RTSPS in UniFi Protect in addition to the existing High Resolution stream

- Extra data point: I also have a G3 Bullet camera, and that one currently shows the exact same “camera not available” error in Homey — unlike what @Fac3 reported (G3/4/5 working). Happy to provide more logs/info if useful.

---

<div class="post-metadata">

**Author:** ![Alex\_R](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/alex_r/32/121550_2.png) [@Alex\_R](https://community.homey.app/u/Alex_R)\
**Post date:** [October 29, 2026, 3:50am UTC](https://community.homey.app/t/app-pro-ubiquiti-unifi-protect/42966/1080 "2026-10-29T03:50:11Z")

</div>

I finally installed my G6 Pro Entry that’s been sitting in a box for over a month, and I’m having “same but different” issues when using 1.13.2 version of the app.

When viewed in Homey web browser UI, it all works fine in best quality, I can see the live view by clicking on the device.

The story changes when using the Homey app. On iPad Mini 6, Galaxy Tab S9+, Pixel 7, Pixel 10 and few other tablets, it’s just a black screen with “live” on it, but no actual video stream. If I open Homey in a web browser (not the Homey app) on these devices, the video works fine. It’s just the Homey app that is showing “black video”.

[Previous page](https://community.homey.app/t/app-pro-ubiquiti-unifi-protect/42966.md?page=52)
