-
-
Notifications
You must be signed in to change notification settings - Fork 31.1k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add video event proxy endpoint for unifiprotect #129980
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Please take a look at the requested changes, and use the Ready for review button when you are done, thanks 👍 |
Codecov is failing with error: Report creating failed: {"message":"Token required because branch is protected"} |
added link to the doc PR home-assistant/home-assistant.io#35629 |
Can someone please review? |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
As mentioned in the other comment, I'm not sure if I'm doing this correctly—I keep getting a 404 error.
It seems that not all changes are being captured by the tests yet.
@lutzvahl I’ve already seen videos briefly appear in the notifications, but unfortunately, I’ve also encountered some 400 errors. Do I need to configure something, like a delay until the event is over? |
Sure, this is a notification action I'm using. I've connected my local DEV_ENV to the unifi console for testing.
for the old video API use this video tag
Yes, the event needs to be over to get the video feed, see line 262 in the views file |
That didn't work reliably for me—in fact, it was more reliably not working. However, what worked well was this: sending the notification when motion transitions from "on" to "off," ensuring that the event is truly over.
|
Thanks @RaHehl for your review and testing. Unfortunately I can't merge it: Anything to be done on my end to get another reviewer added? |
@lutzvahl I think, essentially, you can only wait. For me, it’s fine, but I also don’t know all the rules here yet, and I haven’t worked much with Python so far. My area of expertise is actually Java. What might help is the example you can use to test everything. With a bit of luck, maybe @bdraco will have time to take a look at it. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Please add test coverage for the missing lines
… ongoing C) No video stream (Error case)
Proposed change
As of now, unifi protect comes with 2x API endpoints to be used within HA to get
A) a thumbnail for an event: /api/unifiprotect/thumbnail/{nvr_id}/{event_id}:
B) a part of a video from a camera: /api/unifiprotect/video/{nvr_id}/{camera_id}/{start}/{end}:
This CL adds a new proxy endpoint to receive the full video for an event: /api/unifiprotect/video/{nvr_id}/{event_id}. This is needed as the last_changed timestamp of the sensor in HA is not the same as the unifi protect event start date, hence it's impossible in HA to calc the correct start & end timestamps to see the full event video e.g. as part of a notification.
Type of change
Additional information
Checklist
ruff format homeassistant tests
)If user exposed functionality or configuration variables are added/changed:
In case the new API proxy endpoint will be accepted, I'll update the docs prior to landing this CL.
If the code communicates with devices, web services, or third-party tools:
Updated and included derived files by running:
python3 -m script.hassfest
.requirements_all.txt
.Updated by running
python3 -m script.gen_requirements_all
.