Commit Graph
100 Commits
Author SHA1 Message Date
Josh Hawkins bedba7a05a tweaks 2025-10-12 18:33:55 -05:00
Josh Hawkins 6f7c32ac02 only display validation results and enable save button if all streams have been tested 2025-10-12 18:21:45 -05:00
Josh Hawkins 71e0ead490 ensure test is invalidated if stream is changed 2025-10-12 18:21:23 -05:00
Josh Hawkins 59b7dea971 add validation results pane to step 3 2025-10-12 18:17:17 -05:00
Josh Hawkins ad3676f645 add stream details to overlay like stats in liveplayer 2025-10-12 18:16:56 -05:00
Josh Hawkins e9119f899f keep spaces in friendly name 2025-10-12 17:11:15 -05:00
Josh Hawkins f3bde69d73 add help/docs link popovers 2025-10-12 13:53:20 -05:00
Josh Hawkins 07340b88aa center camera name on mobile 2025-10-12 13:35:01 -05:00
Josh Hawkins d113537c30 prevent dialog from closing when clicking outside 2025-10-12 13:26:44 -05:00
Josh Hawkins 44ff205966 consolidate validation logic 2025-10-12 13:24:03 -05:00
Josh Hawkins e9459c5e29 add camera name to top 2025-10-12 13:11:39 -05:00
Josh Hawkins c2183bd850 add i18n and popover for brand url 2025-10-12 12:51:23 -05:00
Josh Hawkins 84ac8d3654 extract logic for friendly_name and use in wizard 2025-10-12 12:36:46 -05:00
Josh Hawkins 3c86363f82 add main wizard dialog component 2025-10-11 15:45:01 -05:00
Josh Hawkins c79b18817c add api endpoint to delete stream from go2rtc 2025-10-11 15:44:52 -05:00
Josh Hawkins c3e57285fd implement rough idea for step 3 2025-10-11 15:44:24 -05:00
Josh Hawkins 56e7ffdb25 fix type 2025-10-11 15:44:04 -05:00
Josh Hawkins 4f33f4f664 restream tweak 2025-10-11 15:43:00 -05:00
Josh Hawkins c01db9a1d2 add data unit i18n keys 2025-10-11 15:30:26 -05:00
Josh Hawkins 16d7d068ad add wizard to camera settings view 2025-10-11 06:52:28 -05:00
Josh Hawkins c80ecc7fd0 step 1 and 2 tweaks 2025-10-11 06:34:33 -05:00
Josh Hawkins 78f126b78f types 2025-10-11 06:34:23 -05:00
Josh Hawkins 71a7a9472e step 2 and i18n 2025-10-11 06:00:02 -05:00
Josh Hawkins 9bcbd9a26e step 1 tweaks 2025-10-11 05:59:28 -05:00
Josh Hawkins be896789c7 add camera image and stream details on successful test 2025-10-10 15:08:13 -05:00
Josh Hawkins 617d2a239e add go2rtc stream add and ffprobe snapshot endpoints 2025-10-10 14:58:56 -05:00
Josh Hawkins c96ee0c968 add helper function for ffmpeg snapshot 2025-10-10 14:58:18 -05:00
Josh Hawkins e7f0cf50bc add step 1 form 2025-10-10 13:56:04 -05:00
Josh Hawkins c068282143 tweak colors for dark mode to match figma 2025-10-10 13:16:47 -05:00
Josh Hawkins 4a34451232 add classname 2025-10-10 13:16:25 -05:00
Josh Hawkins ef3e9bccd3 add dots variant to step indicator 2025-10-10 12:06:26 -05:00
Josh Hawkins 1bb35380e6 add detailed param to ffprobe endpoint 2025-10-10 11:46:24 -05:00
Josh Hawkins 19d29527f1 fetch more from ffprobe 2025-10-10 09:46:41 -05:00
Josh HawkinsandGitHub f4e7549311 UI tweaks (#20401)
* font changes to better match figma

* fix alignment in debug view
2025-10-09 06:23:03 -06:00
Josh HawkinsandGitHub c61bb8f8ae Fix audio transcription (#20395)
CI / AMD64 Build (push) Waiting to run
CI / ARM Build (push) Waiting to run
CI / Jetson Jetpack 6 (push) Waiting to run
CI / AMD64 Extra Build (push) Blocked by required conditions
CI / ARM Extra Build (push) Blocked by required conditions
CI / Synaptics Build (push) Blocked by required conditions
CI / Assemble and push default build (push) Blocked by required conditions
* camera level config

* set up model runner on thread start to avoid unpickling error

* ensure feature is enabled globally

* suppress info logs from faster_whisper

* fix incorrect event_type for api and audio timeline entries

* docs

* fix

* clean up
2025-10-08 18:06:03 -05:00
Josh HawkinsandGitHub c71e235b38 sidebar i18n fixes (#20394)
CI / AMD64 Build (push) Waiting to run
CI / ARM Build (push) Waiting to run
CI / Jetson Jetpack 6 (push) Waiting to run
CI / ARM Extra Build (push) Blocked by required conditions
CI / Synaptics Build (push) Blocked by required conditions
CI / Assemble and push default build (push) Blocked by required conditions
CI / AMD64 Extra Build (push) Blocked by required conditions
2025-10-08 15:36:23 -06:00
Josh HawkinsandGitHub 7181f3db5c Tweaks (#20393)
* don't fetch trigger status if no triggers defined

* settings sidebar tweaks

* padding tweaks

* fix
2025-10-08 15:02:38 -06:00
Josh HawkinsandGitHub 6df950bb78 Refactor Settings UI (#20392)
* refactor with sidebar and mobile page

* sidebar spacing and color tweaks

* layout tweaks

* move camera switch button to header

* improve mobile

* remove back button on mobile page header

* mobile fixes

* remove debug

* don't use mobilepage

* more mobile tweaks

* use mobile page for components

* add optional actions to mobile page header for top right buttons

* fix alignment

* use page toggle

* tweaks

* sidebar inset tweaks

* move triggers to notifications sub menu

* consistency

* fix padding

* more padding fixes

* navigate history
2025-10-08 14:59:21 -05:00
Josh HawkinsandGitHub 4bea69591b Only show recordings summary for main camera in history view (#20344)
CI / AMD64 Build (push) Has been cancelled
CI / ARM Build (push) Has been cancelled
CI / Jetson Jetpack 6 (push) Has been cancelled
CI / AMD64 Extra Build (push) Has been cancelled
CI / ARM Extra Build (push) Has been cancelled
CI / Synaptics Build (push) Has been cancelled
CI / Assemble and push default build (push) Has been cancelled
2025-10-03 09:04:45 -06:00
Josh HawkinsandGitHub 658b0a064c Improve live view console errors (#20340)
* improve live view console errors

* more docs clarity
2025-10-03 06:37:18 -06:00
Josh HawkinsandGitHub d818dbb6ba Triggers tweaks (#20339)
* backend

* frontend

* use correct camera name param

* i18n

* change log message to debug level

* docs tweaks
2025-10-03 06:36:14 -06:00
Josh HawkinsandGitHub 85ace6a6be Add input focused boolean to face library keyboard listener (#20325)
Because the "a" key is used by the keyboard listener for select all, this would prevent it from being used in the tracked object details pane. This change mimics what is already done in Explore.
2025-10-02 06:31:09 -06:00
Josh HawkinsandGitHub 8307fe31aa Add ability to paste in image dropzone (#20310)
CI / AMD64 Build (push) Waiting to run
CI / ARM Build (push) Waiting to run
CI / Jetson Jetpack 6 (push) Waiting to run
CI / AMD64 Extra Build (push) Blocked by required conditions
CI / Synaptics Build (push) Blocked by required conditions
CI / Assemble and push default build (push) Blocked by required conditions
CI / ARM Extra Build (push) Blocked by required conditions
Primarily used in the face library, now users can use ctrl/meta-v to paste images from the clipboard in an image entry field
2025-10-01 12:49:26 -05:00
Josh HawkinsandGitHub 8430fbc705 Add request_time and upstream_response_time to nginx log (#20307) 2025-10-01 09:51:51 -05:00
Josh HawkinsandGitHub 16c88fa8ac Camera group url fixes (#20295)
* Fix group url param where a camera group was not always loaded

Need to use the loading state from the usePersistence hook because values are loaded from indexed db asynchronously

* ensure group icon changes when using url param

* clean up
2025-09-30 16:53:48 -06:00
Josh HawkinsandGitHub 1b6c246a44 Add shadcn sidebar component (#20292) 2025-09-30 15:02:35 -06:00
Josh HawkinsandGitHub 8b85cd816e Rename conflicting bash variables (#20276)
CI / AMD64 Build (push) Waiting to run
CI / ARM Build (push) Waiting to run
CI / Jetson Jetpack 6 (push) Waiting to run
CI / AMD64 Extra Build (push) Blocked by required conditions
CI / ARM Extra Build (push) Blocked by required conditions
CI / Synaptics Build (push) Blocked by required conditions
CI / Assemble and push default build (push) Blocked by required conditions
In bash you cannot redeclare a readonly variable as local, even within a function scope
2025-09-29 19:51:53 -06:00
Josh HawkinsandGitHub 12f8c3feac Watchdog enhancements (#20237)
CI / ARM Extra Build (push) Blocked by required conditions
CI / Synaptics Build (push) Blocked by required conditions
CI / Assemble and push default build (push) Blocked by required conditions
CI / AMD64 Build (push) Waiting to run
CI / ARM Build (push) Waiting to run
CI / Jetson Jetpack 6 (push) Waiting to run
CI / AMD64 Extra Build (push) Blocked by required conditions
* refactor get_video_properties and use json output from ffprobe

* add zmq topic

* publish valid segment data in recording maintainer

* check for valid video data

- restart separate record ffmpeg process if no video data has been received in 120s
- refactor datetime import

* listen to correct topic in embeddings maintainer

* refactor to move get_latest_segment_datetime logic to recordings maintainer

* debug logging

* cleanup
2025-09-28 10:52:14 -06:00
Josh HawkinsandGitHub b6552987b0 Fixes (#20254)
* fix api async/await functions

* fix synaptics detector from throwing error when unused

* clean up
2025-09-28 07:08:52 -06:00
Josh HawkinsandGitHub 7f7eefef7f Live view improvements (#20177) 2025-09-22 21:21:51 -05:00
Josh HawkinsandGitHub bdb7a18602 UI tweaks (#20168)
* use mobilepage with create trigger dialog

* use mobilepage with create user dialog

* use mobilepage with create role dialog
2025-09-22 08:36:36 -06:00
Josh HawkinsandGitHub cd519ed1ad Update triggers docs to explain why text-to-image triggers are unsupported (#20146)
Many users won't understand why CLIP models can't be magic object detectors or classifiers
2025-09-19 19:29:07 -06:00
Josh HawkinsandGitHub 251b029d6e LPR improvements (#20129)
* continue to use paddleocr v3 text detection model for large

v5 was not finding text on multi-line plates at all in testing

* implement clustering of plate variants per event

should reduce OCR inconsistencies and improve plate recognition stability by using string similarity to cluster similar variants (10 per event id) and choosing the highest confidence representative as the final plate

* pass camera

* prune number of variants based on detect fps

* implement replacement rules for cleaning up and normalizing plates

* docs

* docs
2025-09-18 15:12:17 -06:00
Josh HawkinsandGitHub 4914029a50 Add average_estimated_speed to mqtt docs (#20101) 2025-09-16 11:03:36 -06:00
Josh HawkinsandGitHub 975c8485f9 Catch exception when regex in LPR format field is invalid (#20099) 2025-09-16 07:41:25 -05:00
Josh HawkinsandGitHub 2d4a0cc584 false_positive endpoint needs to await send_to_plus call (#20069) 2025-09-14 11:31:07 -05:00
Josh HawkinsandGitHub 41ed013cc4 Check cameras param and continue to split for query (#20048) 2025-09-12 09:58:47 -06:00
Josh HawkinsandGitHub ed1e3a7c9a Enhance user roles to limit camera access (#20024)
* update config for roles and add validator

* ensure admin and viewer are never overridden

* add class method to user to retrieve all allowed cameras

* enforce config roles in auth api endpoints

* add camera access api dependency functions

* protect review endpoints

* protect preview endpoints

* rename param name for better fastapi injection matching

* remove unneeded

* protect export endpoints

* protect event endpoints

* protect media endpoints

* update auth hook for allowed cameras

* update default app view

* ensure anonymous user always returns all cameras

* limit cameras in explore

* cameras is already a list

* limit cameras in review/history

* limit cameras in live view

* limit cameras in camera groups

* only show face library and classification in sidebar for admin

* remove check in delete reviews

since admin role is required, no need to check camera access. fixes failing test

* pass request with camera access for tests

* more async

* camera access tests

* fix proxy auth tests

* allowed cameras for review tests

* combine event tests and refactor for camera access

* fix post validation for roles

* don't limit roles in create user dialog

* fix triggers endpoints

no need to run require camera access dep since the required role is admin

* fix type

* create and edit role dialogs

* delete role dialog

* fix role change dialog

* update settings view for roles

* i18n changes

* minor spacing tweaks

* docs

* use badges and camera name label component

* clarify docs

* display all cameras badge for admin and viewer

* i18n fix

* use validator to prevent reserved and empty roles from being assigned

* split users and roles into separate tabs in settings

* tweak docs

* clarify docs

* change icon

* don't memoize roles

always recalculate on component render
2025-09-12 05:19:29 -06:00
Josh HawkinsandGitHub 880902cdd7 Add specific notes for frigate+ models in object detector docs (#19971) 2025-09-08 09:29:03 -05:00
Josh HawkinsandGitHub 751de141d5 Fix model selection type in Frigate+ settings pane (#19952)
* model type does not need to match config model type

As long as a model is supported by a detector, it should be available in the list

* fix missing semicolon

the web linter was complaining
2025-09-07 19:19:40 -06:00
Josh HawkinsandGitHub 7566aecb0b Add note about Apple Silicon support in 0.17 (#19944) 2025-09-07 14:12:49 -05:00
Josh HawkinsandGitHub d7f7cd7be1 best thumbnail endpoint should pass correct extension param (#19930) 2025-09-05 06:33:57 -05:00
Josh HawkinsandGitHub b781f06f9c Constrain width of export preview dialog (#19908)
Matches the other export preview dialog in Review
2025-09-04 08:08:07 -05:00
Josh HawkinsandGitHub 62047c80d5 Poll for camera status on tracking end instead of waiting (#19879) 2025-09-02 06:17:01 -06:00
Josh HawkinsandGitHub 198e53bd42 Fix stream stats display (#19874)
* Fix stats calculations and labels

* fix linter from complaining

* fix mse calc

* label
2025-09-01 19:23:44 -05:00
Josh HawkinsandGitHub f7ed8b4cab Autotracking improvements (#19873)
* Use asyncio lock when checking camera status

get_camera_status() can be called during normal autotracking movement and from routine camera_maintenance(). Some cameras cause one of the status calls to hang, which then subsequently hangs autotracking. A lock serializes access and prevents the hang.

* use while loop in camera_maintenance for status check

some cameras seem to take a little bit to update their status, don't assume the first call shows the motor has stopped
2025-09-01 19:18:50 -05:00
Josh HawkinsandGitHub bd255362d6 Ensure proxy group claim uses the configured separator character (#19869)
* Ensure group claim uses the configured separator character

* refactor to helper function

* tests

* clean up
2025-09-01 15:30:30 -06:00
Josh Hawkins 55160f9235 fix more merge conflicts 2025-09-01 13:51:29 -05:00
Josh HawkinsandGitHub c7231648eb Add an icon and tooltip to explain detector CPU usage metric (#19825) 2025-08-28 17:15:00 -05:00
Josh HawkinsandGitHub 92555eb835 Add low shm warning to bottom bar (#19824)
* Add low shm warning to bottom bar

* change relevant link
2025-08-28 14:32:05 -05:00
Josh HawkinsandGitHub 16b7f7f6e7 Fix HLS video initial aspect on Chrome (#19805)
Explore videos are very small on Chrome specifically, this has something to do with how the latest version of Chrome loads video metadata. This change provides a default aspect ratio instead of a default height when the container ref is not defined yet
2025-08-27 12:27:18 -06:00
Josh HawkinsandGitHub d78b6e528b Only import degirum module if using degirum detector (#19802) 2025-08-27 08:31:01 -06:00
Josh HawkinsandGitHub 667c302a7d Allow scrolling on languages menu on mobile devices (#19797) 2025-08-27 05:44:10 -06:00
Josh HawkinsandGitHub fa6956c46e Update openapi schema with include_thumbnails deprecation comment (#19777) 2025-08-26 15:24:43 -06:00
Josh HawkinsandGitHub 398a3a7b95 Rename nickname to friendly_name (#19782)
Better aligns with convention from Home Assistant since many Frigate users are also HA users
2025-08-26 15:29:52 -05:00
Josh HawkinsandGitHub b5aa1b2c21 Fix autotracking calibration crash when zooming is disabled (#19776) 2025-08-26 12:39:23 -05:00
Josh HawkinsandGitHub 6c3f99150c Improve LPR regex support (#19767)
* add regex support to events api for recognized_license_plate

* frontend

add ability to use regexes in the plate search box and add select all/clear all links to quickly select all filtered plates
2025-08-26 08:11:37 -05:00
Josh HawkinsandGitHub 0dda37ac43 fix export dialog overflowing due to i18n time lengths (#19736)
wrap the pair of custom time pickers in a flex-wrap
2025-08-25 17:11:42 -06:00
Josh HawkinsandGitHub 22e981c38c Add role map support for proxy auth (#19758)
* update config

* add role map support

* docs
2025-08-25 17:58:41 -05:00
Josh HawkinsandGitHub c260642604 Improve audio detection debugging (#19753)
* create audio activity manager

move publishing logic out of audio detector

* dispatcher changes

* correctly publish full array of audio detections in onConnect

* frontend websocket hooks

* line graph

* debug tab and i18n

* docs

* clean up

* fix i18n key
2025-08-25 13:40:21 -05:00
Josh HawkinsandGitHub 1636fee36a Only try to import memryx SDK when memry detector is used (#19737) 2025-08-24 18:38:30 -05:00
Josh Hawkins 8be82b63f4 Translated using Weblate (Ukrainian)
Currently translated at 100.0% (117 of 117 strings)

Translation: Frigate NVR/views-system
Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-system/uk/
2025-08-22 17:56:38 -05:00
Josh HawkinsandGitHub 95131541c5 Consolidate documentation i18n keys (#19714)
* Consolidate documentation i18n keys

* individual translations
2025-08-22 17:19:00 -05:00
Josh HawkinsandGitHub a88760efa1 Display warning in frontend if shm size is too low (#19712)
* backend

refactor shm calculation to utility function so it can be used in frontend stats

* frontend

* fix check

* clean up
2025-08-22 13:48:27 -06:00
Josh HawkinsandGitHub 4fe246f472 Fixes (#19708)
* use custom swr fetcher to check for audio support

The go2rtc API doesn't always return stream data for anything not being actively consumed, so audio support was not always being correctly deduced. So we can use a custom swr fetcher to call the endpoint that probes the streams, which returns the correct producers data.

* return correct mime type for thumbnail and latest frame endpoints

follow up to https://github.com/blakeblackshear/frigate/pull/19555
2025-08-22 07:04:30 -05:00
Josh HawkinsandGitHub 7cf439e010 remove h264 reference for webrtc (#19688) 2025-08-21 08:21:18 -06:00
Josh HawkinsandGitHub 8a01643acf clarify webrtc for two way talk (#19683) 2025-08-21 04:43:07 -06:00
Josh HawkinsandGitHub 664a6fd0cb remove newlines (#19671)
let mermaid format the text directly
2025-08-20 14:19:55 -06:00
Josh HawkinsandGitHub 80144fe524 update bug report discussion template (#19670) 2025-08-20 15:10:24 -05:00
Josh HawkinsandGitHub 2b185a1105 Update bug report template (#19664)
* update bug report template

* remove additional field
2025-08-20 12:57:24 -06:00
Josh HawkinsandGitHub 75e33d8a56 Catch invalid key in genai prompt (#19657) 2025-08-20 08:03:50 -05:00
Josh HawkinsandGitHub 95cea06dd3 Revert video dimension layout fix for chrome (#19636)
originally introduced in https://github.com/blakeblackshear/frigate/pull/19414
2025-08-19 14:42:20 -05:00
Josh HawkinsandGitHub d27e8c1bbf run autotracking setup method in asyncio coroutine (#19614) 2025-08-19 07:07:24 -05:00
Josh HawkinsandGitHub 353ee1228c Return 500 from the face registration endpoint if Frigate has not yet been restarted (#19601) 2025-08-18 14:49:50 -06:00
Josh HawkinsandGitHub ba20b61c43 Deprecate API field include_thumbnails (#19584)
* Add deprecation note to API docs for include_thumbnails

* for search query params as well
2025-08-18 08:26:02 -05:00
Josh HawkinsandGitHub 9ed7ccab75 Embeddings maintainer should start if bird classification is enabled (#19576) 2025-08-17 19:48:21 -06:00
Josh HawkinsandGitHub 1db26cb41e Ensure birdseye is enabled before trying to grab a frame from it (#19573) 2025-08-17 17:26:18 -06:00
Josh HawkinsandGitHub 6840415b6c Fix content type for latest image API endpoint (#19555)
* Fix content type for latest image API endpoint

Extension is an enum and .value needed to be appended. Additionally, fastapi's Response() automatically sets the content type when media_type is specified, so a Content-Type in the headers was redundant.

* Remove another unneeded Content-Type
2025-08-16 21:20:21 -06:00
Josh HawkinsandBlake Blackshear 21ab164bfe Ensure alertVideos persistence is loaded before displaying thumb or preview (#19432)
The default value of true would cause previews to be loaded in the background even if the local storage value was false
2025-08-16 10:20:33 -05:00
Josh HawkinsandBlake Blackshear 8719216fa6 Dynamically enable/disable GenAI (#19139)
* config

* dispatcher and mqtt

* docs

* use config updater

* add switch to frontend
2025-08-16 10:20:33 -05:00