Commit Graph

373 Commits

Author SHA1 Message Date
Josh Hawkins
f0b15e1f04
Provide default value for dashboard audio support (#17495)
* Provide default value for audio support to fix crash

* optional
2025-04-02 06:43:28 -06:00
Josh Hawkins
2c1ded37a1
Ensure we use the stream name from local storage on mobile (#17452) 2025-03-30 06:17:25 -06:00
Nicolas Mowen
9e8b85a957
Implement enchrichments events per second graph (#17436)
* Cleanup existing naming

* Add face recognitions per second

* Add lpr fps

* Add all eps

* Clean up line graph

* Translations

* Change wording

* Fix incorrect access

* Don't require plates

* Add comment

* Fix
2025-03-28 18:13:35 -05:00
Josh Hawkins
23c3323871
Dynamic embeddings reindexing (#17418)
* reindex with api endpoint and zmq

* threading

* frontend

* require admin role
2025-03-27 11:29:34 -06:00
leccelecce
53c8aa25cb
Fix missing restart notification in Classification settings (#17397)
* Use different message key to fix missing restart message

* Move addMessage to finally block
2025-03-26 15:44:15 -06:00
leccelecce
4ccf61a6d7
Fix wrong value displayed in facerec settings (#17383) 2025-03-26 07:16:12 -05:00
Nicolas Mowen
b18d1fb970
Refactor face recognition (#17368)
* Refactor face recognition to allow for running lbph or embedding

* Cleanup

* Use weighted average for faces

* Set correct url

* Cleanup

* Update docs

* Update docs

* Use scipy trimmed mean

* Normalize

* Handle color and gray landmark detection

* Upgrade to new arcface model

* Implement sigmoid function

* Rename

* Rename to arcface

* Fix

* Add face recognition model size to ui config

* Update toast
2025-03-25 19:59:03 -05:00
leccelecce
983dd87ffb
Revert go2rtc call checks for enabled camera state (#17355)
* Revert "Fix camera enabled check (#17331)"

This reverts commit 1e45f63a7c.

* Revert "Fix webUI generating HTTP500s when camera disabled (#17305)"

This reverts commit 644faaf65b.
2025-03-25 05:48:06 -06:00
leccelecce
05d39f79b0
Add ability to update Frigate+ model to latest from UI (#17324)
* Add ability to update Frigate+ model to latest

* UI tweaks

* further UI tweaks

* UI tweaks: add width and height, fix select

* Add placeholder while API call in progress

* Fix Frigate+ enabled check

* Fix config change lost when reloading page

* Add persistent message requiring restart

* Drop down supported detectors and dimensions

* Add width and height to display

* Update FrigatePlusSettingsView.tsx

* Temp fix for Codespaces not loading

* Add i18n, format

* remove unneeded brackets

* missing colon

* Revert "Temp fix for Codespaces not loading"

This reverts commit 75b19674ce.
2025-03-24 09:19:58 -06:00
Nicolas Mowen
a8fa77c6b9
Classification fixes (#17337)
* Cleanup classification settings behavior

* Cleanup response

* restore
2025-03-24 09:12:42 -05:00
leccelecce
1e45f63a7c
Fix camera enabled check (#17331)
* Fix camera enabled check

* Add fix to LiveCameraView
2025-03-24 06:38:53 -06:00
Josh Hawkins
b7fcd41737
UI tweaks (#17319) 2025-03-23 12:51:06 -06:00
leccelecce
644faaf65b
Fix webUI generating HTTP500s when camera disabled (#17305)
* Check camera enabled state before querying go2rtc

* lint

* Add change to CameraStreamingDialog
2025-03-22 14:13:41 -05:00
Josh Hawkins
d32949017b
Bugfixes and docs tweaks (#17307)
* ensure config file is updated with booleans instead of strings

* catch onvif error

* ensure object type is available as a ptz tracker

* update live view docs
2025-03-22 06:38:33 -06:00
Nicolas Mowen
d84fd324b2
Actually set the configured face and lpr settings (#17272) 2025-03-20 07:48:50 -06:00
leccelecce
6cb385f6a7
Plus settings - fix model ID overlap (#17265) 2025-03-20 04:46:34 -05:00
leccelecce
1787f6130d
Add model ID to Frigate+ settings page (#17261) 2025-03-19 20:56:38 -05:00
Nicolas Mowen
bf22d89f67
Improve Face Library Management (#17213)
* Set maximum number of face images to be kept

* Fix vertical camera scaling

* adjust wording

* Add attributes to search data

* Add button to train face from event

* Handle event id saving in API
2025-03-17 16:57:46 -05:00
Josh Hawkins
fad62b996a
Add Frigate+ pane to Settings UI (#17208)
* add plus data to config api response

* add fields to frontend type

* add frigate+ page in settings

* add docs

* fix label in explore detail dialog
2025-03-17 13:44:57 -05:00
GuoQing Liu
8f4e86e476
chinese i18n fix (#17190)
* fix: fix dialog some key capitalization

* chore: remove audio duplicate key. (i18next can't use it! maybe need change key name? )

* feat: add chinese missing keys.
fix: fix some keys error

* feat: add chinese readme file

* feat: add system feature pages embeddings i18n keys

* fix: fix audio file keys wrong
2025-03-17 09:01:07 -05:00
Josh Hawkins
03da70cb81
Refactor and clean up i18n (#17198)
* clean up i18n

* fix key

* fix key
2025-03-17 06:26:01 -06:00
GuoQing Liu
d34533981f
feat: add i18n (translation/localization) (#16877)
* Translation module init

* Add more i18n keys

* fix: fix string wrong

* refactor: use namespace translation file

* chore: add more translation key

* fix: fix some page name error

* refactor: change Trans tag for t function

* chore: fix some key not work

* chore: fix SearchFilterDialog i18n key error

Co-authored-by: Josh Hawkins <32435876+hawkeye217@users.noreply.github.com>

* chore: fix en i18n file filter missing some keys

* chore: add some i18n keys

* chore: add more i18n keys again

* feat: add search page i18n

* feat: add explore model i18n keys

* Update web/src/components/menu/GeneralSettings.tsx

Co-authored-by: Josh Hawkins <32435876+hawkeye217@users.noreply.github.com>

* Update web/src/components/menu/GeneralSettings.tsx

Co-authored-by: Josh Hawkins <32435876+hawkeye217@users.noreply.github.com>

* Update web/src/components/menu/GeneralSettings.tsx

Co-authored-by: Josh Hawkins <32435876+hawkeye217@users.noreply.github.com>

* feat: add more live i18n keys

* feat: add more search setting i18n keys

* fix: remove some comment

* fix: fix some setting page url error

* Update web/src/views/settings/SearchSettingsView.tsx

Co-authored-by: Josh Hawkins <32435876+hawkeye217@users.noreply.github.com>

* fix: add system missing keys

* fix: update password update i18n keys

* chore: remove outdate translation.json file

* fix: fix exploreSettings error

* chore: add object setting i18n keys

* Update web/src/views/recording/RecordingView.tsx

Co-authored-by: Josh Hawkins <32435876+hawkeye217@users.noreply.github.com>

* Update web/public/locales/en/components/filter.json

Co-authored-by: Josh Hawkins <32435876+hawkeye217@users.noreply.github.com>

* Update web/src/components/overlay/ExportDialog.tsx

Co-authored-by: Josh Hawkins <32435876+hawkeye217@users.noreply.github.com>

* feat: add more i18n keys

* fix: fix motionDetectionTuner html node

* feat: add more page i18n keys

* fix: cameraStream i18n keys error

* feat: add Player i18n keys

* feat: add more toast i18n keys

* feat: change explore setting name

* feat: add more document title i18n keys

* feat: add more search i18n keys

* fix: fix accessDenied i18n keys error

* chore: add objectType i18n

* chore: add  inputWithTags i18n

* chore: add SearchFilterDialog i18n

* Update web/src/views/settings/ObjectSettingsView.tsx

Co-authored-by: Josh Hawkins <32435876+hawkeye217@users.noreply.github.com>

* Update web/src/views/settings/ObjectSettingsView.tsx

Co-authored-by: Josh Hawkins <32435876+hawkeye217@users.noreply.github.com>

* Update web/src/views/settings/ObjectSettingsView.tsx

Co-authored-by: Josh Hawkins <32435876+hawkeye217@users.noreply.github.com>

* Update web/src/views/settings/ObjectSettingsView.tsx

Co-authored-by: Josh Hawkins <32435876+hawkeye217@users.noreply.github.com>

* Update web/src/views/settings/ObjectSettingsView.tsx

Co-authored-by: Josh Hawkins <32435876+hawkeye217@users.noreply.github.com>

* chore: add some missing i18n keys

* chore: remove most import { t } from "i18next";

---------

Co-authored-by: Josh Hawkins <32435876+hawkeye217@users.noreply.github.com>
2025-03-16 10:36:20 -05:00
Nicolas Mowen
a995872d1c
Add face recognition and license plate recognition to settings UI (#17152)
* Refactor explore settings to classification settings

* Cleanup

* Add face config section

* Add license plate recognition to settings

* Update face recognition docs

* Fix variable usage

* Fix typo

* Update docs/docs/configuration/face_recognition.md

Co-authored-by: Josh Hawkins <32435876+hawkeye217@users.noreply.github.com>

* Improve spacing and add face library to mobile

* Clarify docs

---------

Co-authored-by: Josh Hawkins <32435876+hawkeye217@users.noreply.github.com>
2025-03-14 11:23:37 -05:00
Josh Hawkins
124cc4c9cc
Rename identifier field (#17128)
* backend rename

* frontend

* docs

* fix api path
2025-03-12 17:45:16 -06:00
Josh Hawkins
6360802612
Use identifier field for unknown license plates (#17123)
* backend

* backend fixes

* api for search queries

* frontend

* docs

* add filterable scroll list to more filters pane for identifiers

* always publish identifier
2025-03-12 14:38:28 -06:00
Josh Hawkins
4806d30406
Bugfixes (#17112)
* ensure disabled and offline messages don't overlay each other

* clean up enabled logic

* fix on demand recording button

* clean up
2025-03-12 06:09:09 -06:00
Nicolas Mowen
7d44970f78
Face multi select (#17068)
* Implement multi select for face library

* Clear list of selected

* Add keyboard shortcut
2025-03-10 10:01:52 -05:00
Josh Hawkins
74ca009b0b
UI viewer role (#16978)
* db migration

* db model

* assign admin role on password reset

* add role to jwt and api responses

* don't restrict api access for admins yet

* use json response

* frontend auth context

* update auth form for profile endpoint

* add access denied page

* add protected routes

* auth hook

* dialogs

* user settings view

* restrict viewer access to settings

* restrict camera functions for viewer role

* add password dialog to account menu

* spacing tweak

* migrator default to admin

* escape quotes in migrator

* ui tweaks

* tweaks

* colors

* colors

* fix merge conflict

* fix icons

* add api layer enforcement

* ui tweaks

* fix error message

* debug

* clean up

* remove print

* guard apis for admin only

* fix tests

* fix review tests

* use correct error responses from api in toasts

* add role to account menu
2025-03-08 10:01:08 -06:00
Josh Hawkins
0e3e2e5ccc
Add cameras filter to history view (#16995) 2025-03-06 19:00:15 -07:00
Nicolas Mowen
433da8ffce
Update web deps (#16983)
* Update vite

* Update LuIcons

* Update radix packages

* Fix other icons

* Use correct node version

* Remove superfluous web build on python tests

* Move web build to test
2025-03-06 10:50:37 -06:00
jdryden572
389c707ad2
Orient live camera feed for best screen fit when in fullscreen mode (#16947)
* Change orientation in fullscreen to best fit video

* Refactor effect to simplify, add more comments
2025-03-04 14:30:34 -06:00
Josh Hawkins
5210d8c0a2
Add camera enable switch to mobile drawer (#16929) 2025-03-03 17:41:28 -07:00
Nicolas Mowen
2946c935ee
Disabled camera output (#16920)
* Fix live cameras not showing on refresh

* Fix live dashboard when birdseye is added

* Handle cameras that are offline / disabled

* Use black instead of green frame

* Fix missing mqtt topics
2025-03-03 15:05:49 -06:00
Josh Hawkins
531042467a
Dynamically enable/disable cameras (#16894)
* config options

* metrics

* stop and restart ffmpeg processes

* dispatcher

* frontend websocket

* buttons for testing

* don't recreate log pipe

* add/remove cam from birdseye when enabling/disabling

* end all objects and send empty camera activity

* enable/disable switch in ui

* disable buttons when camera is disabled

* use enabled_in_config for some frontend checks

* tweaks

* handle settings pane with disabled cameras

* frontend tweaks

* change to debug log

* mqtt docs

* tweak

* ensure all ffmpeg processes are initially started

* clean up

* use zmq

* remove camera metrics

* remove camera metrics

* tweaks

* frontend tweaks
2025-03-03 08:30:52 -07:00
Nicolas Mowen
7eb3c87fa0
UI tweaks (#16813)
* Add escape to close review details

* Refresh review page automatically if there are currently no items to review
2025-02-25 19:17:39 -06:00
Nicolas Mowen
f49a8009ec
Remove thumb from database field (#16647)
* Remove thumbnail from dict

* Create thumbnail diectory

* Cleanup handling of tracked object images

* Make thumbnail optional

* Handle cases where thumbnail is used

* Expand options for thumbnail api

* Fix up the does not exist condition

* Remove absolute usages of thumbnails

* Write thumbnails for external events

* Reduce webp quality

* Use webp everywhere in frontend

* Formatting

* Always consider all events when re-indexing

* Add thumbnail deletion and cleanup path management

* Cleanup imports

* Rename def

* Don't save thumbnail for every object

* Correct event count

* Use correct function

* Include thumbnail in query

* Remove unused

* Fix requiring exception
2025-02-18 07:46:29 -07:00
Josh Hawkins
3f07d2d37c
Improve notifications (#16632)
* add notification cooldown

* cooldown docs

* show alert box when notifications are used in an insecure context

* add ability to suspend notifications from dashboard context menu
2025-02-17 07:19:03 -07:00
Josh Hawkins
d6b5dc93cc
Fix streaming dialog and use less text on register button (#16518) 2025-02-12 06:16:32 -07:00
Josh Hawkins
11baf237bc
Ensure all streaming settings are saved correctly on mobile (#16511)
* Ensure streaming settings are saved correctly on mobile

* remove extra check
2025-02-11 16:49:22 -07:00
Josh Hawkins
a3ede3cf8a
Snap points to edges and create object mask from bounding box (#16488) 2025-02-11 09:08:28 -07:00
Josh Hawkins
82f8694464
Toggle review alerts and detections (#16482)
* backend

* frontend

* docs

* fix topic name and initial websocket state

* update reference config

* fix mqtt docs

* fix initial topics

* don't apply max severity when alerts/detections are disabled

* fix ws merge

* tweaks
2025-02-11 07:46:25 -07:00
Josh Hawkins
9a0211a71c
Improve Notifications (#16453)
* backend

* frontend

* add notification config at camera level

* camera level notifications in dispatcher

* initial onconnect

* frontend

* backend for suspended notifications

* frontend

* use base communicator

* initialize all cameras in suspended array and use 0 for unsuspended

* remove switch and use select for suspending in frontend

* use timestamp instead of datetime

* frontend tweaks

* mqtt docs

* fix button width

* use grid for layout

* use thread and queue for processing notifications with 10s timeout

* clean up

* move async code to main class

* tweaks

* docs

* remove warning message
2025-02-10 19:47:15 -07:00
Josh Hawkins
72209986b6
Estimated object speed for zones (#16452)
* utility functions

* backend config

* backend object speed tracking

* draw speed on debug view

* basic frontend zone editor

* remove line sorting

* fix types

* highlight line on canvas when entering value in zone edit pane

* rename vars and add validation

* ensure speed estimation is disabled when user adds more than 4 points

* pixel velocity in debug

* unit_system in config

* ability to define unit system in config

* save max speed to db

* frontend

* docs

* clarify docs

* utility functions

* backend config

* backend object speed tracking

* draw speed on debug view

* basic frontend zone editor

* remove line sorting

* fix types

* highlight line on canvas when entering value in zone edit pane

* rename vars and add validation

* ensure speed estimation is disabled when user adds more than 4 points

* pixel velocity in debug

* unit_system in config

* ability to define unit system in config

* save max speed to db

* frontend

* docs

* clarify docs

* fix duplicates from merge

* include max_estimated_speed in api responses

* add units to zone edit pane

* catch undefined

* add average speed

* clarify docs

* only track average speed when object is active

* rename vars

* ensure points and distances are ordered clockwise

* only store the last 10 speeds like score history

* remove max estimated speed

* update docs

* update docs

* fix point ordering

* improve readability

* docs inertia recommendation

* fix point ordering

* check object frame time

* add velocity angle to frontend

* docs clarity

* add frontend speed filter

* fix mqtt docs

* fix mqtt docs

* don't try to remove distances if they weren't already defined

* don't display estimates on debug view/snapshots if object is not in a speed tracking zone

* docs

* implement speed_threshold for zone presence

* docs for threshold

* better ground plane image

* improve image zone size

* add inertia to speed threshold example
2025-02-10 13:23:42 -07:00
Josh Hawkins
dd7820e4ee
Improve live streaming (#16447)
* config file changes

* config migrator

* stream selection on single camera live view

* camera streaming settings dialog

* manage persistent group streaming settings

* apply streaming settings in camera groups

* add ability to clear all streaming settings from settings

* docs

* update reference config

* fixes

* clarify docs

* use first stream as default in dialog

* ensure still image is visible after switching stream type to none

* docs

* clarify docs

* add ability to continue playing stream in background

* fix props

* put stream selection inside dropdown on desktop

* add capabilities to live mode hook

* live context menu component

* resize observer: only return new dimensions if they've actually changed

* pass volume prop to players

* fix slider bug, https://github.com/shadcn-ui/ui/issues/1448

* update react-grid-layout

* prevent animated transitions on draggable grid layout

* add context menu to dashboards

* use provider

* streaming dialog from context menu

* docs

* add jsmpeg warning to context menu

* audio and two way talk indicators in single camera view

* add link to debug view

* don't use hook

* create manual events from live camera view

* maintain grow classes on grid items

* fix initial volume state on default dashboard

* fix pointer events causing context menu to end up underneath image on iOS

* mobile drawer tweaks

* stream stats

* show settings menu for non-restreamed cameras

* consistent settings icon

* tweaks

* optional stats to fix birdseye player

* add toaster to live camera view

* fix crash on initial save in streaming dialog

* don't require restreaming for context menu streaming settings

* add debug view to context menu

* stats fixes

* update docs

* always show stream info when restreamed

* update camera streaming dialog

* make note of no h265 support for webrtc

* docs clarity

* ensure docs show streams as a dict

* docs clarity

* fix css file

* tweaks
2025-02-10 09:42:35 -07:00
Josh Hawkins
d5b60237a2
Improve display of recordings data (#16436)
* backend

* frontend

* add earliest recording available to storage metrics page
2025-02-09 16:02:36 -07:00
Josh Hawkins
c8cec63cb9
Object area debugging and improvements (#16432)
* add ability to specify min and max area as percentages

* debug draw area and ratio

* docs

* update for best percentage
2025-02-09 14:48:23 -07:00
Josh Hawkins
cc2dbdcb44
Timeline improvements (#16429)
* virtualize event segments

* use virtual segments in event review timeline

* add segmentkey to props

* virtualize motion segments

* use virtual segments in motion review timeline

* update draggable element hook to use only math

* timeline zooming hook

* add zooming to event review timeline

* update playground

* zoomable timeline on recording view

* consolidate divs in summary timeline

* only calculate motion data for visible motion segments

* use swr loading state

* fix motion only

* keep handlebar centered when zooming

* zoom animations

* clean up

* ensure motion only checks both halves of segment

* prevent handlebar jump when using motion only mode
2025-02-09 14:13:32 -07:00
Nicolas Mowen
a6ae208fe7 Add metrics page for embeddings and face / license plate processing times (#15818)
* Get stats for embeddings inferences

* cleanup embeddings inferences

* Enable UI for feature metrics

* Change threshold

* Fix check

* Update python for actions

* Set python version

* Ignore type for now
2025-02-08 12:47:01 -06:00
Josh Hawkins
aedfaa3641
Don't prevent default when tracked object details description input is focused (#16064) 2025-01-20 06:23:22 -07:00
Josh Hawkins
171a89f37b
Language consistency - use Explore instead of Search (#15709) 2024-12-27 17:38:43 -07:00