diff --git a/docs/docs/configuration/advanced/reference.md b/docs/docs/configuration/advanced/reference.md index 5c07e98a96..81feb17db7 100644 --- a/docs/docs/configuration/advanced/reference.md +++ b/docs/docs/configuration/advanced/reference.md @@ -212,7 +212,6 @@ audio: listen: - bark - fire_alarm - - scream - speech - yell # Optional: Filters to configure detection. diff --git a/docs/docs/configuration/audio_detectors.md b/docs/docs/configuration/audio_detectors.md index eba22ec184..c8c3ada9d4 100644 --- a/docs/docs/configuration/audio_detectors.md +++ b/docs/docs/configuration/audio_detectors.md @@ -88,7 +88,7 @@ Volume is considered motion for recordings, this means when the `record -> retai ### Configuring Audio Events -The included audio model has over [500 different types](https://github.com/blakeblackshear/frigate/blob/dev/audio-labelmap.txt) of audio that can be detected, many of which are not practical. By default `bark`, `fire_alarm`, `scream`, `speech`, and `yell` are enabled but these can be customized. +The included audio model has over [500 different types](https://github.com/blakeblackshear/frigate/blob/dev/audio-labelmap.txt) of audio that can be detected, many of which are not practical. By default `bark`, `fire_alarm`, `speech`, and `yell` are enabled but these can be customized. @@ -107,7 +107,6 @@ audio: listen: - bark - fire_alarm - - scream - speech - yell ``` @@ -115,6 +114,70 @@ audio: +### Common Audio Labels + +The labelmap includes hundreds of sound types. The labels below are the ones most users may find practical, grouped by what they're typically used for. Use the exact label string from the left column in your `listen` config, or search for the label in the Frigate UI directly. + +Some labels cover several related sounds: `yell` is triggered by shouting, yelling, children shouting, and screaming; `crying` covers baby cries, sobbing, and whimpering; and `speech` covers ordinary talking and conversation. + +**Safety and security** + +| Label | Detects | +| ---------------- | ---------------------------------- | +| `yell` | Shouting, yelling, screaming | +| `fire_alarm` | Fire and smoke alarm sirens | +| `smoke_detector` | Smoke detector beeps | +| `alarm` | General alarm sounds | +| `car_alarm` | Car alarms | +| `siren` | Emergency vehicle and civil sirens | +| `glass` | Glass clinking | +| `shatter` | Breaking glass | +| `breaking` | Something breaking | +| `gunshot` | Gunshots | +| `explosion` | Explosions | + +**People and activity** + +| Label | Detects | +| ----------- | ------------------------ | +| `speech` | Talking and conversation | +| `laughter` | Laughing | +| `crying` | Baby crying and sobbing | +| `cough` | Coughing | +| `footsteps` | Footsteps and walking | +| `knock` | Knocking on a door | +| `doorbell` | Doorbell | +| `ding-dong` | Doorbell chime | + +**Pets and animals** + +| Label | Detects | +| ---------- | ---------------- | +| `bark` | Dog barking | +| `dog` | Other dog sounds | +| `howl` | Howling | +| `growling` | Growling | +| `meow` | Cat meowing | +| `cat` | Other cat sounds | +| `hiss` | Hissing | + +**Vehicles and driveway** + +| Label | Detects | +| ----------------- | -------------------- | +| `car` | Passing cars | +| `honk` | Car horns | +| `truck` | Trucks | +| `reversing_beeps` | Vehicle backup beeps | +| `motorcycle` | Motorcycles | +| `engine_starting` | Engines starting | + +:::tip + +Frequently-heard labels like `speech` can generate a lot of events, and each event could save a snapshot and recording based on your configuration, so start with a focused set — the defaults (`bark`, `fire_alarm`, `speech`, `yell`) plus a few of the safety labels above cover most needs — and expand from there. See the [full audio labelmap](https://github.com/blakeblackshear/frigate/blob/dev/audio-labelmap.txt) or the Frigate UI for every available type. + +::: + ### Audio Transcription Frigate supports fully local audio transcription using either `sherpa-onnx` or OpenAI's open-source Whisper models via `faster-whisper`. The goal of this feature is to support Semantic Search for `speech` audio events. Frigate is not intended to act as a continuous, fully-automatic speech transcription service — automatically transcribing all speech (or queuing many audio events for transcription) requires substantial CPU (or GPU) resources and is impractical on most systems. For this reason, transcriptions for events are initiated manually from the UI or the API rather than being run continuously in the background. diff --git a/frigate/config/camera/audio.py b/frigate/config/camera/audio.py index 6028802df9..59a5180bed 100644 --- a/frigate/config/camera/audio.py +++ b/frigate/config/camera/audio.py @@ -9,7 +9,7 @@ from ..base import FrigateBaseModel __all__ = ["AudioConfig", "AudioFilterConfig"] -DEFAULT_LISTEN_AUDIO = ["bark", "fire_alarm", "scream", "speech", "yell"] +DEFAULT_LISTEN_AUDIO = ["bark", "fire_alarm", "speech", "yell"] class AudioFilterConfig(FrigateBaseModel): @@ -41,7 +41,7 @@ class AudioConfig(FrigateBaseModel): listen: list[str] = Field( default=DEFAULT_LISTEN_AUDIO, title="Listen types", - description="List of audio event types to detect (for example: bark, fire_alarm, scream, speech, yell).", + description="List of audio event types to detect (for example: bark, fire_alarm, speech, yell).", ) filters: Optional[dict[str, AudioFilterConfig]] = Field( None, diff --git a/frigate/config/camera/ffmpeg.py b/frigate/config/camera/ffmpeg.py index 6341cbcd13..7e63c4a1ed 100644 --- a/frigate/config/camera/ffmpeg.py +++ b/frigate/config/camera/ffmpeg.py @@ -49,7 +49,7 @@ class FfmpegConfig(FrigateBaseModel): path: str = Field( default="default", title="FFmpeg path", - description='Path to the FFmpeg binary to use or a version alias ("5.0" or "8.0").', + description='Path to the FFmpeg binary to use or a version alias ("7.0" or "8.0").', ) global_args: Union[str, list[str]] = Field( default=FFMPEG_GLOBAL_ARGS_DEFAULT, diff --git a/web/e2e/fixtures/mock-data/cases.json b/web/e2e/fixtures/mock-data/cases.json index 5d0c96b8c1..6174cdebf3 100644 --- a/web/e2e/fixtures/mock-data/cases.json +++ b/web/e2e/fixtures/mock-data/cases.json @@ -1 +1 @@ -[{"id": "case-001", "name": "Package Theft Investigation", "description": "Review of suspicious activity near the front porch", "created_at": 1775407931.3863528, "updated_at": 1775483531.3863528}] \ No newline at end of file +[{"id": "case-001", "name": "Package Theft Investigation", "description": "Review of suspicious activity near the front porch", "created_at": 1780597809.365581, "updated_at": 1780673409.365581}] \ No newline at end of file diff --git a/web/e2e/fixtures/mock-data/config-snapshot.json b/web/e2e/fixtures/mock-data/config-snapshot.json index 6b87982c48..2df402bc99 100644 --- a/web/e2e/fixtures/mock-data/config-snapshot.json +++ b/web/e2e/fixtures/mock-data/config-snapshot.json @@ -1 +1 @@ -{"version": null, "safe_mode": false, "environment_vars": {}, "logger": {"default": "info", "logs": {}}, "auth": {"enabled": true, "reset_admin_password": false, "cookie_name": "frigate_token", "cookie_secure": false, "session_length": 86400, "refresh_time": 1800, "failed_login_rate_limit": null, "trusted_proxies": [], "hash_iterations": 600000, "roles": {"admin": [], "viewer": []}, "admin_first_time_login": false}, "database": {"path": "/config/frigate.db"}, "go2rtc": {}, "mqtt": {"enabled": true, "host": "mqtt", "port": 1883, "topic_prefix": "frigate", "client_id": "frigate", "stats_interval": 60, "user": null, "password": null, "tls_ca_certs": null, "tls_client_cert": null, "tls_client_key": null, "tls_insecure": null, "qos": 0}, "notifications": {"enabled": false, "email": null, "cooldown": 0, "enabled_in_config": false}, "networking": {"ipv6": {"enabled": false}, "listen": {"internal": 5000, "external": 8971}}, "proxy": {"header_map": {"user": null, "role": null, "role_map": {}}, "logout_url": null, "auth_secret": null, "default_role": "viewer", "separator": ","}, "telemetry": {"network_interfaces": [], "stats": {"amd_gpu_stats": true, "intel_gpu_stats": true, "network_bandwidth": false, "intel_gpu_device": null}, "version_check": true}, "tls": {"enabled": true}, "ui": {"timezone": null, "time_format": "browser", "date_style": "short", "time_style": "medium", "unit_system": "metric"}, "detectors": {"cpu": {"type": "cpu", "model": {"path": "/cpu_model.tflite", "labelmap_path": null, "width": 320, "height": 320, "labelmap": {}, "attributes_map": {"person": ["amazon", "face"], "car": ["amazon", "an_post", "canada_post", "dhl", "dpd", "fedex", "gls", "license_plate", "nzpost", "postnl", "postnord", "purolator", "royal_mail", "ups", "usps"], "motorcycle": ["license_plate"]}, "input_tensor": "nhwc", "input_pixel_format": "rgb", "input_dtype": "int", "model_type": "ssd"}, "model_path": null}}, "model": {"path": null, "labelmap_path": null, "width": 320, "height": 320, "labelmap": {}, "attributes_map": {"person": ["amazon", "face"], "car": ["amazon", "an_post", "canada_post", "dhl", "dpd", "fedex", "gls", "license_plate", "nzpost", "postnl", "postnord", "purolator", "royal_mail", "ups", "usps"], "motorcycle": ["license_plate"]}, "input_tensor": "nhwc", "input_pixel_format": "rgb", "input_dtype": "int", "model_type": "ssd", "all_attributes": ["amazon", "an_post", "canada_post", "dhl", "dpd", "face", "fedex", "gls", "license_plate", "nzpost", "postnl", "postnord", "purolator", "royal_mail", "ups", "usps"], "colormap": {}}, "genai": {}, "cameras": {"front_door": {"name": "front_door", "friendly_name": null, "enabled": true, "audio": {"enabled": false, "max_not_heard": 30, "min_volume": 500, "listen": ["bark", "fire_alarm", "scream", "speech", "yell"], "filters": {"a_capella": {"threshold": 0.8}, "accelerating": {"threshold": 0.8}, "accordion": {"threshold": 0.8}, "acoustic_guitar": {"threshold": 0.8}, "afrobeat": {"threshold": 0.8}, "air_brake": {"threshold": 0.8}, "air_conditioning": {"threshold": 0.8}, "air_horn": {"threshold": 0.8}, "aircraft": {"threshold": 0.8}, "aircraft_engine": {"threshold": 0.8}, "alarm": {"threshold": 0.8}, "alarm_clock": {"threshold": 0.8}, "ambient_music": {"threshold": 0.8}, "ambulance": {"threshold": 0.8}, "angry_music": {"threshold": 0.8}, "animal": {"threshold": 0.8}, "applause": {"threshold": 0.8}, "arrow": {"threshold": 0.8}, "artillery_fire": {"threshold": 0.8}, "babbling": {"threshold": 0.8}, "background_music": {"threshold": 0.8}, "bagpipes": {"threshold": 0.8}, "bang": {"threshold": 0.8}, "banjo": {"threshold": 0.8}, "bark": {"threshold": 0.8}, "basketball_bounce": {"threshold": 0.8}, "bass_drum": {"threshold": 0.8}, "bass_guitar": {"threshold": 0.8}, "bathtub": {"threshold": 0.8}, "beatboxing": {"threshold": 0.8}, "beep": {"threshold": 0.8}, "bell": {"threshold": 0.8}, "bellow": {"threshold": 0.8}, "bicycle": {"threshold": 0.8}, "bicycle_bell": {"threshold": 0.8}, "bird": {"threshold": 0.8}, "biting": {"threshold": 0.8}, "bleat": {"threshold": 0.8}, "blender": {"threshold": 0.8}, "bluegrass": {"threshold": 0.8}, "blues": {"threshold": 0.8}, "boat": {"threshold": 0.8}, "boiling": {"threshold": 0.8}, "boing": {"threshold": 0.8}, "boom": {"threshold": 0.8}, "bouncing": {"threshold": 0.8}, "bow-wow": {"threshold": 0.8}, "bowed_string_instrument": {"threshold": 0.8}, "brass_instrument": {"threshold": 0.8}, "breaking": {"threshold": 0.8}, "breathing": {"threshold": 0.8}, "burping": {"threshold": 0.8}, "burst": {"threshold": 0.8}, "bus": {"threshold": 0.8}, "busy_signal": {"threshold": 0.8}, "buzz": {"threshold": 0.8}, "buzzer": {"threshold": 0.8}, "cacophony": {"threshold": 0.8}, "camera": {"threshold": 0.8}, "cap_gun": {"threshold": 0.8}, "car": {"threshold": 0.8}, "car_alarm": {"threshold": 0.8}, "car_passing_by": {"threshold": 0.8}, "carnatic_music": {"threshold": 0.8}, "cash_register": {"threshold": 0.8}, "cat": {"threshold": 0.8}, "caterwaul": {"threshold": 0.8}, "cattle": {"threshold": 0.8}, "caw": {"threshold": 0.8}, "cello": {"threshold": 0.8}, "chainsaw": {"threshold": 0.8}, "change_ringing": {"threshold": 0.8}, "chant": {"threshold": 0.8}, "chatter": {"threshold": 0.8}, "cheering": {"threshold": 0.8}, "chewing": {"threshold": 0.8}, "chicken": {"threshold": 0.8}, "child_singing": {"threshold": 0.8}, "children_playing": {"threshold": 0.8}, "chime": {"threshold": 0.8}, "chink": {"threshold": 0.8}, "chird": {"threshold": 0.8}, "chirp": {"threshold": 0.8}, "chirp_tone": {"threshold": 0.8}, "choir": {"threshold": 0.8}, "chop": {"threshold": 0.8}, "chopping": {"threshold": 0.8}, "chorus_effect": {"threshold": 0.8}, "christian_music": {"threshold": 0.8}, "christmas_music": {"threshold": 0.8}, "church_bell": {"threshold": 0.8}, "civil_defense_siren": {"threshold": 0.8}, "clang": {"threshold": 0.8}, "clapping": {"threshold": 0.8}, "clarinet": {"threshold": 0.8}, "classical_music": {"threshold": 0.8}, "clatter": {"threshold": 0.8}, "clickety-clack": {"threshold": 0.8}, "clicking": {"threshold": 0.8}, "clip-clop": {"threshold": 0.8}, "clock": {"threshold": 0.8}, "cluck": {"threshold": 0.8}, "cock-a-doodle-doo": {"threshold": 0.8}, "coin": {"threshold": 0.8}, "computer_keyboard": {"threshold": 0.8}, "coo": {"threshold": 0.8}, "cough": {"threshold": 0.8}, "country": {"threshold": 0.8}, "cowbell": {"threshold": 0.8}, "crack": {"threshold": 0.8}, "crackle": {"threshold": 0.8}, "creak": {"threshold": 0.8}, "cricket": {"threshold": 0.8}, "croak": {"threshold": 0.8}, "crow": {"threshold": 0.8}, "crowd": {"threshold": 0.8}, "crumpling": {"threshold": 0.8}, "crunch": {"threshold": 0.8}, "crushing": {"threshold": 0.8}, "crying": {"threshold": 0.8}, "cupboard_open_or_close": {"threshold": 0.8}, "cutlery": {"threshold": 0.8}, "cymbal": {"threshold": 0.8}, "dance_music": {"threshold": 0.8}, "dental_drill's_drill": {"threshold": 0.8}, "dial_tone": {"threshold": 0.8}, "didgeridoo": {"threshold": 0.8}, "ding": {"threshold": 0.8}, "ding-dong": {"threshold": 0.8}, "disco": {"threshold": 0.8}, "dishes": {"threshold": 0.8}, "distortion": {"threshold": 0.8}, "dog": {"threshold": 0.8}, "dogs": {"threshold": 0.8}, "door": {"threshold": 0.8}, "doorbell": {"threshold": 0.8}, "double_bass": {"threshold": 0.8}, "drawer_open_or_close": {"threshold": 0.8}, "drill": {"threshold": 0.8}, "drip": {"threshold": 0.8}, "drum": {"threshold": 0.8}, "drum_and_bass": {"threshold": 0.8}, "drum_kit": {"threshold": 0.8}, "drum_machine": {"threshold": 0.8}, "drum_roll": {"threshold": 0.8}, "dubstep": {"threshold": 0.8}, "duck": {"threshold": 0.8}, "echo": {"threshold": 0.8}, "effects_unit": {"threshold": 0.8}, "electric_guitar": {"threshold": 0.8}, "electric_piano": {"threshold": 0.8}, "electric_shaver": {"threshold": 0.8}, "electric_toothbrush": {"threshold": 0.8}, "electronic_dance_music": {"threshold": 0.8}, "electronic_music": {"threshold": 0.8}, "electronic_organ": {"threshold": 0.8}, "electronic_tuner": {"threshold": 0.8}, "electronica": {"threshold": 0.8}, "emergency_vehicle": {"threshold": 0.8}, "engine": {"threshold": 0.8}, "engine_knocking": {"threshold": 0.8}, "engine_starting": {"threshold": 0.8}, "environmental_noise": {"threshold": 0.8}, "eruption": {"threshold": 0.8}, "exciting_music": {"threshold": 0.8}, "explosion": {"threshold": 0.8}, "fart": {"threshold": 0.8}, "field_recording": {"threshold": 0.8}, "filing": {"threshold": 0.8}, "fill": {"threshold": 0.8}, "finger_snapping": {"threshold": 0.8}, "fire": {"threshold": 0.8}, "fire_alarm": {"threshold": 0.8}, "fire_engine": {"threshold": 0.8}, "firecracker": {"threshold": 0.8}, "fireworks": {"threshold": 0.8}, "fixed-wing_aircraft": {"threshold": 0.8}, "flamenco": {"threshold": 0.8}, "flap": {"threshold": 0.8}, "flapping_wings": {"threshold": 0.8}, "flute": {"threshold": 0.8}, "fly": {"threshold": 0.8}, "foghorn": {"threshold": 0.8}, "folk_music": {"threshold": 0.8}, "footsteps": {"threshold": 0.8}, "fowl": {"threshold": 0.8}, "french_horn": {"threshold": 0.8}, "frog": {"threshold": 0.8}, "frying": {"threshold": 0.8}, "funk": {"threshold": 0.8}, "fusillade": {"threshold": 0.8}, "gargling": {"threshold": 0.8}, "gasp": {"threshold": 0.8}, "gears": {"threshold": 0.8}, "glass": {"threshold": 0.8}, "glockenspiel": {"threshold": 0.8}, "goat": {"threshold": 0.8}, "gobble": {"threshold": 0.8}, "gong": {"threshold": 0.8}, "goose": {"threshold": 0.8}, "gospel_music": {"threshold": 0.8}, "groan": {"threshold": 0.8}, "growling": {"threshold": 0.8}, "grunge": {"threshold": 0.8}, "grunt": {"threshold": 0.8}, "guitar": {"threshold": 0.8}, "gunshot": {"threshold": 0.8}, "gurgling": {"threshold": 0.8}, "gush": {"threshold": 0.8}, "hair_dryer": {"threshold": 0.8}, "hammer": {"threshold": 0.8}, "hammond_organ": {"threshold": 0.8}, "hands": {"threshold": 0.8}, "happy_music": {"threshold": 0.8}, "harmonic": {"threshold": 0.8}, "harmonica": {"threshold": 0.8}, "harp": {"threshold": 0.8}, "harpsichord": {"threshold": 0.8}, "heart_murmur": {"threshold": 0.8}, "heartbeat": {"threshold": 0.8}, "heavy_engine": {"threshold": 0.8}, "heavy_metal": {"threshold": 0.8}, "helicopter": {"threshold": 0.8}, "hi-hat": {"threshold": 0.8}, "hiccup": {"threshold": 0.8}, "hip_hop_music": {"threshold": 0.8}, "hiss": {"threshold": 0.8}, "honk": {"threshold": 0.8}, "hoot": {"threshold": 0.8}, "horse": {"threshold": 0.8}, "house_music": {"threshold": 0.8}, "howl": {"threshold": 0.8}, "hum": {"threshold": 0.8}, "humming": {"threshold": 0.8}, "ice_cream_truck": {"threshold": 0.8}, "idling": {"threshold": 0.8}, "independent_music": {"threshold": 0.8}, "insect": {"threshold": 0.8}, "inside": {"threshold": 0.8}, "jackhammer": {"threshold": 0.8}, "jazz": {"threshold": 0.8}, "jet_engine": {"threshold": 0.8}, "jingle": {"threshold": 0.8}, "jingle_bell": {"threshold": 0.8}, "keyboard": {"threshold": 0.8}, "keys_jangling": {"threshold": 0.8}, "knock": {"threshold": 0.8}, "laughter": {"threshold": 0.8}, "lawn_mower": {"threshold": 0.8}, "light_engine": {"threshold": 0.8}, "liquid": {"threshold": 0.8}, "livestock": {"threshold": 0.8}, "lullaby": {"threshold": 0.8}, "machine_gun": {"threshold": 0.8}, "mains_hum": {"threshold": 0.8}, "mallet_percussion": {"threshold": 0.8}, "mandolin": {"threshold": 0.8}, "mantra": {"threshold": 0.8}, "maraca": {"threshold": 0.8}, "marimba": {"threshold": 0.8}, "mechanical_fan": {"threshold": 0.8}, "mechanisms": {"threshold": 0.8}, "medium_engine": {"threshold": 0.8}, "meow": {"threshold": 0.8}, "microwave_oven": {"threshold": 0.8}, "middle_eastern_music": {"threshold": 0.8}, "moo": {"threshold": 0.8}, "mosquito": {"threshold": 0.8}, "motor_vehicle": {"threshold": 0.8}, "motorboat": {"threshold": 0.8}, "motorcycle": {"threshold": 0.8}, "mouse": {"threshold": 0.8}, "music": {"threshold": 0.8}, "music_for_children": {"threshold": 0.8}, "music_of_africa": {"threshold": 0.8}, "music_of_asia": {"threshold": 0.8}, "music_of_bollywood": {"threshold": 0.8}, "music_of_latin_america": {"threshold": 0.8}, "musical_instrument": {"threshold": 0.8}, "neigh": {"threshold": 0.8}, "new-age_music": {"threshold": 0.8}, "noise": {"threshold": 0.8}, "ocean": {"threshold": 0.8}, "oink": {"threshold": 0.8}, "opera": {"threshold": 0.8}, "orchestra": {"threshold": 0.8}, "organ": {"threshold": 0.8}, "outside": {"threshold": 0.8}, "owl": {"threshold": 0.8}, "pant": {"threshold": 0.8}, "patter": {"threshold": 0.8}, "percussion": {"threshold": 0.8}, "pets": {"threshold": 0.8}, "piano": {"threshold": 0.8}, "pig": {"threshold": 0.8}, "pigeon": {"threshold": 0.8}, "ping": {"threshold": 0.8}, "pink_noise": {"threshold": 0.8}, "pizzicato": {"threshold": 0.8}, "plop": {"threshold": 0.8}, "plucked_string_instrument": {"threshold": 0.8}, "police_car": {"threshold": 0.8}, "pop_music": {"threshold": 0.8}, "pour": {"threshold": 0.8}, "power_tool": {"threshold": 0.8}, "power_windows": {"threshold": 0.8}, "printer": {"threshold": 0.8}, "progressive_rock": {"threshold": 0.8}, "propeller": {"threshold": 0.8}, "psychedelic_rock": {"threshold": 0.8}, "pulleys": {"threshold": 0.8}, "pulse": {"threshold": 0.8}, "pump": {"threshold": 0.8}, "punk_rock": {"threshold": 0.8}, "purr": {"threshold": 0.8}, "quack": {"threshold": 0.8}, "race_car": {"threshold": 0.8}, "radio": {"threshold": 0.8}, "rail_transport": {"threshold": 0.8}, "railroad_car": {"threshold": 0.8}, "rain": {"threshold": 0.8}, "rain_on_surface": {"threshold": 0.8}, "raindrop": {"threshold": 0.8}, "rapping": {"threshold": 0.8}, "ratchet": {"threshold": 0.8}, "rats": {"threshold": 0.8}, "rattle": {"threshold": 0.8}, "reggae": {"threshold": 0.8}, "reverberation": {"threshold": 0.8}, "reversing_beeps": {"threshold": 0.8}, "rhythm_and_blues": {"threshold": 0.8}, "rimshot": {"threshold": 0.8}, "ringtone": {"threshold": 0.8}, "roar": {"threshold": 0.8}, "roaring_cats": {"threshold": 0.8}, "rock_and_roll": {"threshold": 0.8}, "rock_music": {"threshold": 0.8}, "roll": {"threshold": 0.8}, "rowboat": {"threshold": 0.8}, "rub": {"threshold": 0.8}, "rumble": {"threshold": 0.8}, "run": {"threshold": 0.8}, "rustle": {"threshold": 0.8}, "rustling_leaves": {"threshold": 0.8}, "sad_music": {"threshold": 0.8}, "sailboat": {"threshold": 0.8}, "salsa_music": {"threshold": 0.8}, "sampler": {"threshold": 0.8}, "sanding": {"threshold": 0.8}, "sawing": {"threshold": 0.8}, "saxophone": {"threshold": 0.8}, "scary_music": {"threshold": 0.8}, "scissors": {"threshold": 0.8}, "scrape": {"threshold": 0.8}, "scratch": {"threshold": 0.8}, "scratching": {"threshold": 0.8}, "sewing_machine": {"threshold": 0.8}, "shatter": {"threshold": 0.8}, "sheep": {"threshold": 0.8}, "ship": {"threshold": 0.8}, "shofar": {"threshold": 0.8}, "shuffle": {"threshold": 0.8}, "shuffling_cards": {"threshold": 0.8}, "sidetone": {"threshold": 0.8}, "sigh": {"threshold": 0.8}, "silence": {"threshold": 0.8}, "sine_wave": {"threshold": 0.8}, "singing": {"threshold": 0.8}, "singing_bowl": {"threshold": 0.8}, "single-lens_reflex_camera": {"threshold": 0.8}, "sink": {"threshold": 0.8}, "siren": {"threshold": 0.8}, "sitar": {"threshold": 0.8}, "sizzle": {"threshold": 0.8}, "ska": {"threshold": 0.8}, "skateboard": {"threshold": 0.8}, "skidding": {"threshold": 0.8}, "slam": {"threshold": 0.8}, "slap": {"threshold": 0.8}, "sliding_door": {"threshold": 0.8}, "slosh": {"threshold": 0.8}, "smash": {"threshold": 0.8}, "smoke_detector": {"threshold": 0.8}, "snake": {"threshold": 0.8}, "snare_drum": {"threshold": 0.8}, "sneeze": {"threshold": 0.8}, "snicker": {"threshold": 0.8}, "sniff": {"threshold": 0.8}, "snoring": {"threshold": 0.8}, "snort": {"threshold": 0.8}, "sodeling": {"threshold": 0.8}, "sonar": {"threshold": 0.8}, "song": {"threshold": 0.8}, "soul_music": {"threshold": 0.8}, "sound_effect": {"threshold": 0.8}, "soundtrack_music": {"threshold": 0.8}, "speech": {"threshold": 0.8}, "splash": {"threshold": 0.8}, "splinter": {"threshold": 0.8}, "spray": {"threshold": 0.8}, "squawk": {"threshold": 0.8}, "squeak": {"threshold": 0.8}, "squeal": {"threshold": 0.8}, "squish": {"threshold": 0.8}, "static": {"threshold": 0.8}, "steam": {"threshold": 0.8}, "steam_whistle": {"threshold": 0.8}, "steel_guitar": {"threshold": 0.8}, "steelpan": {"threshold": 0.8}, "stir": {"threshold": 0.8}, "stomach_rumble": {"threshold": 0.8}, "stream": {"threshold": 0.8}, "string_section": {"threshold": 0.8}, "strum": {"threshold": 0.8}, "subway": {"threshold": 0.8}, "swing_music": {"threshold": 0.8}, "synthesizer": {"threshold": 0.8}, "synthetic_singing": {"threshold": 0.8}, "tabla": {"threshold": 0.8}, "tambourine": {"threshold": 0.8}, "tap": {"threshold": 0.8}, "tapping": {"threshold": 0.8}, "tearing": {"threshold": 0.8}, "techno": {"threshold": 0.8}, "telephone": {"threshold": 0.8}, "telephone_bell_ringing": {"threshold": 0.8}, "telephone_dialing": {"threshold": 0.8}, "television": {"threshold": 0.8}, "tender_music": {"threshold": 0.8}, "theme_music": {"threshold": 0.8}, "theremin": {"threshold": 0.8}, "throat_clearing": {"threshold": 0.8}, "throbbing": {"threshold": 0.8}, "thump": {"threshold": 0.8}, "thunder": {"threshold": 0.8}, "thunderstorm": {"threshold": 0.8}, "thunk": {"threshold": 0.8}, "tick": {"threshold": 0.8}, "tick-tock": {"threshold": 0.8}, "timpani": {"threshold": 0.8}, "tire_squeal": {"threshold": 0.8}, "toilet_flush": {"threshold": 0.8}, "tools": {"threshold": 0.8}, "toot": {"threshold": 0.8}, "toothbrush": {"threshold": 0.8}, "traditional_music": {"threshold": 0.8}, "traffic_noise": {"threshold": 0.8}, "train": {"threshold": 0.8}, "train_horn": {"threshold": 0.8}, "train_wheels_squealing": {"threshold": 0.8}, "train_whistle": {"threshold": 0.8}, "trance_music": {"threshold": 0.8}, "trickle": {"threshold": 0.8}, "trombone": {"threshold": 0.8}, "truck": {"threshold": 0.8}, "trumpet": {"threshold": 0.8}, "tubular_bells": {"threshold": 0.8}, "tuning_fork": {"threshold": 0.8}, "turkey": {"threshold": 0.8}, "typewriter": {"threshold": 0.8}, "typing": {"threshold": 0.8}, "ukulele": {"threshold": 0.8}, "vacuum_cleaner": {"threshold": 0.8}, "vehicle": {"threshold": 0.8}, "vibraphone": {"threshold": 0.8}, "vibration": {"threshold": 0.8}, "video_game_music": {"threshold": 0.8}, "violin": {"threshold": 0.8}, "vocal_music": {"threshold": 0.8}, "water": {"threshold": 0.8}, "water_tap": {"threshold": 0.8}, "waterfall": {"threshold": 0.8}, "waves": {"threshold": 0.8}, "wedding_music": {"threshold": 0.8}, "whack": {"threshold": 0.8}, "whale_vocalization": {"threshold": 0.8}, "wheeze": {"threshold": 0.8}, "whimper_dog": {"threshold": 0.8}, "whip": {"threshold": 0.8}, "whir": {"threshold": 0.8}, "whispering": {"threshold": 0.8}, "whistle": {"threshold": 0.8}, "whistling": {"threshold": 0.8}, "white_noise": {"threshold": 0.8}, "whoop": {"threshold": 0.8}, "whoosh": {"threshold": 0.8}, "wild_animals": {"threshold": 0.8}, "wind": {"threshold": 0.8}, "wind_chime": {"threshold": 0.8}, "wind_instrument": {"threshold": 0.8}, "wind_noise": {"threshold": 0.8}, "wood": {"threshold": 0.8}, "wood_block": {"threshold": 0.8}, "writing": {"threshold": 0.8}, "yell": {"threshold": 0.8}, "yip": {"threshold": 0.8}, "zing": {"threshold": 0.8}, "zipper": {"threshold": 0.8}, "zither": {"threshold": 0.8}}, "enabled_in_config": false, "num_threads": 2}, "audio_transcription": {"enabled": false, "enabled_in_config": false, "live_enabled": false}, "birdseye": {"enabled": true, "mode": "objects", "order": 0}, "detect": {"enabled": false, "height": 720, "width": 1280, "fps": 5, "min_initialized": 2, "max_disappeared": 25, "stationary": {"interval": 50, "threshold": 50, "max_frames": {"default": null, "objects": {}}, "classifier": true}, "annotation_offset": 0}, "face_recognition": {"enabled": false, "min_area": 750}, "ffmpeg": {"path": "default", "global_args": ["-hide_banner", "-loglevel", "warning", "-threads", "2"], "hwaccel_args": "preset-vaapi", "input_args": "preset-rtsp-generic", "output_args": {"detect": ["-threads", "2", "-f", "rawvideo", "-pix_fmt", "yuv420p"], "record": "preset-record-generic-audio-aac"}, "retry_interval": 10.0, "apple_compatibility": false, "gpu": 0, "inputs": [{"path": "rtsp://10.0.0.1:554/video", "roles": ["record", "detect"], "global_args": [], "hwaccel_args": [], "input_args": []}]}, "live": {"streams": {"front_door": "front_door"}, "height": 720, "quality": 8}, "lpr": {"enabled": false, "expire_time": 3, "min_area": 1000, "enhancement": 0}, "motion": {"enabled": true, "threshold": 30, "lightning_threshold": 0.8, "skip_motion_threshold": null, "improve_contrast": true, "contour_area": 10, "delta_alpha": 0.2, "frame_alpha": 0.01, "frame_height": 100, "mask": {}, "mqtt_off_delay": 30, "enabled_in_config": null}, "objects": {"track": ["person"], "filters": {"person": {"min_area": 0, "max_area": 24000000, "min_ratio": 0, "max_ratio": 24000000, "threshold": 0.7, "min_score": 0.5, "mask": {}}}, "mask": {}, "genai": {"enabled": false, "use_snapshot": false, "prompt": "Analyze the sequence of images containing the {label}. Focus on the likely intent or behavior of the {label} based on its actions and movement, rather than describing its appearance or the surroundings. Consider what the {label} is doing, why, and what it might do next.", "object_prompts": {}, "objects": [], "required_zones": [], "debug_save_thumbnails": false, "send_triggers": {"tracked_object_end": true, "after_significant_updates": null}, "enabled_in_config": false}}, "record": {"enabled": false, "expire_interval": 60, "continuous": {"days": 0}, "motion": {"days": 0}, "detections": {"pre_capture": 5, "post_capture": 5, "retain": {"days": 10, "mode": "motion"}}, "alerts": {"pre_capture": 5, "post_capture": 5, "retain": {"days": 10, "mode": "motion"}}, "export": {"hwaccel_args": "preset-vaapi"}, "preview": {"quality": "medium"}, "enabled_in_config": false}, "review": {"alerts": {"enabled": true, "labels": ["person", "car"], "required_zones": [], "enabled_in_config": true, "cutoff_time": 40}, "detections": {"enabled": true, "labels": null, "required_zones": [], "cutoff_time": 30, "enabled_in_config": true}, "genai": {"enabled": false, "alerts": true, "detections": false, "image_source": "preview", "additional_concerns": [], "debug_save_thumbnails": false, "enabled_in_config": false, "preferred_language": null, "activity_context_prompt": "### Normal Activity Indicators (Level 0)\n- Known/verified people in any zone at any time\n- People with pets in residential areas\n- Routine residential vehicle access during daytime/evening (6 AM - 10 PM): entering, exiting, loading/unloading items \u2014 normal commute and travel patterns\n- Deliveries or services during daytime/evening (6 AM - 10 PM): carrying packages to doors/porches, placing items, leaving\n- Services/maintenance workers with visible tools, uniforms, or service vehicles during daytime\n- Activity confined to public areas only (sidewalks, streets) without entering property at any time\n\n### Suspicious Activity Indicators (Level 1)\n- **Checking or probing vehicle/building access**: trying handles without entering, peering through windows, examining multiple vehicles, or possessing break-in tools \u2014 Level 1\n- **Unidentified person in private areas (driveways, near vehicles/buildings) during late night/early morning (11 PM - 5 AM)** \u2014 ALWAYS Level 1 regardless of activity or duration\n- Taking items that don't belong to them (packages, objects from porches/driveways)\n- Climbing or jumping fences/barriers to access property\n- Attempting to conceal actions or items from view\n- Prolonged loitering: remaining in same area without visible purpose throughout most of the sequence\n\n### Critical Threat Indicators (Level 2)\n- Holding break-in tools (crowbars, pry bars, bolt cutters)\n- Weapons visible (guns, knives, bats used aggressively)\n- Forced entry in progress\n- Physical aggression or violence\n- Active property damage or theft in progress\n\n### Assessment Guidance\nEvaluate in this order:\n\n1. **If person is verified/known** \u2192 Level 0 regardless of time or activity\n2. **If person is unidentified:**\n - Check time: If late night/early morning (11 PM - 5 AM) AND in private areas (driveways, near vehicles/buildings) \u2192 Level 1\n - Check actions: If probing access (trying handles without entering, checking multiple vehicles), taking items, climbing \u2192 Level 1\n - Otherwise, if daytime/evening (6 AM - 10 PM) with clear legitimate purpose (delivery, service, routine vehicle access) \u2192 Level 0\n3. **Escalate to Level 2 if:** Weapons, break-in tools, forced entry in progress, violence, or active property damage visible (escalates from Level 0 or 1)\n\nThe mere presence of an unidentified person in private areas during late night hours is inherently suspicious and warrants human review, regardless of what activity they appear to be doing or how brief the sequence is."}}, "semantic_search": {"triggers": {}}, "snapshots": {"enabled": false, "timestamp": false, "bounding_box": true, "crop": false, "required_zones": [], "height": null, "retain": {"default": 10, "mode": "motion", "objects": {}}, "quality": 60}, "timestamp_style": {"position": "tl", "format": "%m/%d/%Y %H:%M:%S", "color": {"red": 255, "green": 255, "blue": 255}, "thickness": 2, "effect": null}, "best_image_timeout": 60, "mqtt": {"enabled": true, "timestamp": true, "bounding_box": true, "crop": true, "height": 270, "required_zones": [], "quality": 70}, "notifications": {"enabled": false, "email": null, "cooldown": 0, "enabled_in_config": false}, "onvif": {"host": "", "port": 8000, "user": null, "password": null, "tls_insecure": false, "profile": null, "autotracking": {"enabled": false, "calibrate_on_startup": false, "zooming": "disabled", "zoom_factor": 0.3, "track": ["person"], "required_zones": [], "return_preset": "home", "timeout": 10, "movement_weights": [], "enabled_in_config": false}, "ignore_time_mismatch": false}, "type": "generic", "ui": {"order": 0, "dashboard": true}, "webui_url": null, "profiles": {}, "zones": {}, "enabled_in_config": true}, "backyard": {"name": "backyard", "friendly_name": null, "enabled": true, "audio": {"enabled": false, "max_not_heard": 30, "min_volume": 500, "listen": ["bark", "fire_alarm", "scream", "speech", "yell"], "filters": {"a_capella": {"threshold": 0.8}, "accelerating": {"threshold": 0.8}, "accordion": {"threshold": 0.8}, "acoustic_guitar": {"threshold": 0.8}, "afrobeat": {"threshold": 0.8}, "air_brake": {"threshold": 0.8}, "air_conditioning": {"threshold": 0.8}, "air_horn": {"threshold": 0.8}, "aircraft": {"threshold": 0.8}, "aircraft_engine": {"threshold": 0.8}, "alarm": {"threshold": 0.8}, "alarm_clock": {"threshold": 0.8}, "ambient_music": {"threshold": 0.8}, "ambulance": {"threshold": 0.8}, "angry_music": {"threshold": 0.8}, "animal": {"threshold": 0.8}, "applause": {"threshold": 0.8}, "arrow": {"threshold": 0.8}, "artillery_fire": {"threshold": 0.8}, "babbling": {"threshold": 0.8}, "background_music": {"threshold": 0.8}, "bagpipes": {"threshold": 0.8}, "bang": {"threshold": 0.8}, "banjo": {"threshold": 0.8}, "bark": {"threshold": 0.8}, "basketball_bounce": {"threshold": 0.8}, "bass_drum": {"threshold": 0.8}, "bass_guitar": {"threshold": 0.8}, "bathtub": {"threshold": 0.8}, "beatboxing": {"threshold": 0.8}, "beep": {"threshold": 0.8}, "bell": {"threshold": 0.8}, "bellow": {"threshold": 0.8}, "bicycle": {"threshold": 0.8}, "bicycle_bell": {"threshold": 0.8}, "bird": {"threshold": 0.8}, "biting": {"threshold": 0.8}, "bleat": {"threshold": 0.8}, "blender": {"threshold": 0.8}, "bluegrass": {"threshold": 0.8}, "blues": {"threshold": 0.8}, "boat": {"threshold": 0.8}, "boiling": {"threshold": 0.8}, "boing": {"threshold": 0.8}, "boom": {"threshold": 0.8}, "bouncing": {"threshold": 0.8}, "bow-wow": {"threshold": 0.8}, "bowed_string_instrument": {"threshold": 0.8}, "brass_instrument": {"threshold": 0.8}, "breaking": {"threshold": 0.8}, "breathing": {"threshold": 0.8}, "burping": {"threshold": 0.8}, "burst": {"threshold": 0.8}, "bus": {"threshold": 0.8}, "busy_signal": {"threshold": 0.8}, "buzz": {"threshold": 0.8}, "buzzer": {"threshold": 0.8}, "cacophony": {"threshold": 0.8}, "camera": {"threshold": 0.8}, "cap_gun": {"threshold": 0.8}, "car": {"threshold": 0.8}, "car_alarm": {"threshold": 0.8}, "car_passing_by": {"threshold": 0.8}, "carnatic_music": {"threshold": 0.8}, "cash_register": {"threshold": 0.8}, "cat": {"threshold": 0.8}, "caterwaul": {"threshold": 0.8}, "cattle": {"threshold": 0.8}, "caw": {"threshold": 0.8}, "cello": {"threshold": 0.8}, "chainsaw": {"threshold": 0.8}, "change_ringing": {"threshold": 0.8}, "chant": {"threshold": 0.8}, "chatter": {"threshold": 0.8}, "cheering": {"threshold": 0.8}, "chewing": {"threshold": 0.8}, "chicken": {"threshold": 0.8}, "child_singing": {"threshold": 0.8}, "children_playing": {"threshold": 0.8}, "chime": {"threshold": 0.8}, "chink": {"threshold": 0.8}, "chird": {"threshold": 0.8}, "chirp": {"threshold": 0.8}, "chirp_tone": {"threshold": 0.8}, "choir": {"threshold": 0.8}, "chop": {"threshold": 0.8}, "chopping": {"threshold": 0.8}, "chorus_effect": {"threshold": 0.8}, "christian_music": {"threshold": 0.8}, "christmas_music": {"threshold": 0.8}, "church_bell": {"threshold": 0.8}, "civil_defense_siren": {"threshold": 0.8}, "clang": {"threshold": 0.8}, "clapping": {"threshold": 0.8}, "clarinet": {"threshold": 0.8}, "classical_music": {"threshold": 0.8}, "clatter": {"threshold": 0.8}, "clickety-clack": {"threshold": 0.8}, "clicking": {"threshold": 0.8}, "clip-clop": {"threshold": 0.8}, "clock": {"threshold": 0.8}, "cluck": {"threshold": 0.8}, "cock-a-doodle-doo": {"threshold": 0.8}, "coin": {"threshold": 0.8}, "computer_keyboard": {"threshold": 0.8}, "coo": {"threshold": 0.8}, "cough": {"threshold": 0.8}, "country": {"threshold": 0.8}, "cowbell": {"threshold": 0.8}, "crack": {"threshold": 0.8}, "crackle": {"threshold": 0.8}, "creak": {"threshold": 0.8}, "cricket": {"threshold": 0.8}, "croak": {"threshold": 0.8}, "crow": {"threshold": 0.8}, "crowd": {"threshold": 0.8}, "crumpling": {"threshold": 0.8}, "crunch": {"threshold": 0.8}, "crushing": {"threshold": 0.8}, "crying": {"threshold": 0.8}, "cupboard_open_or_close": {"threshold": 0.8}, "cutlery": {"threshold": 0.8}, "cymbal": {"threshold": 0.8}, "dance_music": {"threshold": 0.8}, "dental_drill's_drill": {"threshold": 0.8}, "dial_tone": {"threshold": 0.8}, "didgeridoo": {"threshold": 0.8}, "ding": {"threshold": 0.8}, "ding-dong": {"threshold": 0.8}, "disco": {"threshold": 0.8}, "dishes": {"threshold": 0.8}, "distortion": {"threshold": 0.8}, "dog": {"threshold": 0.8}, "dogs": {"threshold": 0.8}, "door": {"threshold": 0.8}, "doorbell": {"threshold": 0.8}, "double_bass": {"threshold": 0.8}, "drawer_open_or_close": {"threshold": 0.8}, "drill": {"threshold": 0.8}, "drip": {"threshold": 0.8}, "drum": {"threshold": 0.8}, "drum_and_bass": {"threshold": 0.8}, "drum_kit": {"threshold": 0.8}, "drum_machine": {"threshold": 0.8}, "drum_roll": {"threshold": 0.8}, "dubstep": {"threshold": 0.8}, "duck": {"threshold": 0.8}, "echo": {"threshold": 0.8}, "effects_unit": {"threshold": 0.8}, "electric_guitar": {"threshold": 0.8}, "electric_piano": {"threshold": 0.8}, "electric_shaver": {"threshold": 0.8}, "electric_toothbrush": {"threshold": 0.8}, "electronic_dance_music": {"threshold": 0.8}, "electronic_music": {"threshold": 0.8}, "electronic_organ": {"threshold": 0.8}, "electronic_tuner": {"threshold": 0.8}, "electronica": {"threshold": 0.8}, "emergency_vehicle": {"threshold": 0.8}, "engine": {"threshold": 0.8}, "engine_knocking": {"threshold": 0.8}, "engine_starting": {"threshold": 0.8}, "environmental_noise": {"threshold": 0.8}, "eruption": {"threshold": 0.8}, "exciting_music": {"threshold": 0.8}, "explosion": {"threshold": 0.8}, "fart": {"threshold": 0.8}, "field_recording": {"threshold": 0.8}, "filing": {"threshold": 0.8}, "fill": {"threshold": 0.8}, "finger_snapping": {"threshold": 0.8}, "fire": {"threshold": 0.8}, "fire_alarm": {"threshold": 0.8}, "fire_engine": {"threshold": 0.8}, "firecracker": {"threshold": 0.8}, "fireworks": {"threshold": 0.8}, "fixed-wing_aircraft": {"threshold": 0.8}, "flamenco": {"threshold": 0.8}, "flap": {"threshold": 0.8}, "flapping_wings": {"threshold": 0.8}, "flute": {"threshold": 0.8}, "fly": {"threshold": 0.8}, "foghorn": {"threshold": 0.8}, "folk_music": {"threshold": 0.8}, "footsteps": {"threshold": 0.8}, "fowl": {"threshold": 0.8}, "french_horn": {"threshold": 0.8}, "frog": {"threshold": 0.8}, "frying": {"threshold": 0.8}, "funk": {"threshold": 0.8}, "fusillade": {"threshold": 0.8}, "gargling": {"threshold": 0.8}, "gasp": {"threshold": 0.8}, "gears": {"threshold": 0.8}, "glass": {"threshold": 0.8}, "glockenspiel": {"threshold": 0.8}, "goat": {"threshold": 0.8}, "gobble": {"threshold": 0.8}, "gong": {"threshold": 0.8}, "goose": {"threshold": 0.8}, "gospel_music": {"threshold": 0.8}, "groan": {"threshold": 0.8}, "growling": {"threshold": 0.8}, "grunge": {"threshold": 0.8}, "grunt": {"threshold": 0.8}, "guitar": {"threshold": 0.8}, "gunshot": {"threshold": 0.8}, "gurgling": {"threshold": 0.8}, "gush": {"threshold": 0.8}, "hair_dryer": {"threshold": 0.8}, "hammer": {"threshold": 0.8}, "hammond_organ": {"threshold": 0.8}, "hands": {"threshold": 0.8}, "happy_music": {"threshold": 0.8}, "harmonic": {"threshold": 0.8}, "harmonica": {"threshold": 0.8}, "harp": {"threshold": 0.8}, "harpsichord": {"threshold": 0.8}, "heart_murmur": {"threshold": 0.8}, "heartbeat": {"threshold": 0.8}, "heavy_engine": {"threshold": 0.8}, "heavy_metal": {"threshold": 0.8}, "helicopter": {"threshold": 0.8}, "hi-hat": {"threshold": 0.8}, "hiccup": {"threshold": 0.8}, "hip_hop_music": {"threshold": 0.8}, "hiss": {"threshold": 0.8}, "honk": {"threshold": 0.8}, "hoot": {"threshold": 0.8}, "horse": {"threshold": 0.8}, "house_music": {"threshold": 0.8}, "howl": {"threshold": 0.8}, "hum": {"threshold": 0.8}, "humming": {"threshold": 0.8}, "ice_cream_truck": {"threshold": 0.8}, "idling": {"threshold": 0.8}, "independent_music": {"threshold": 0.8}, "insect": {"threshold": 0.8}, "inside": {"threshold": 0.8}, "jackhammer": {"threshold": 0.8}, "jazz": {"threshold": 0.8}, "jet_engine": {"threshold": 0.8}, "jingle": {"threshold": 0.8}, "jingle_bell": {"threshold": 0.8}, "keyboard": {"threshold": 0.8}, "keys_jangling": {"threshold": 0.8}, "knock": {"threshold": 0.8}, "laughter": {"threshold": 0.8}, "lawn_mower": {"threshold": 0.8}, "light_engine": {"threshold": 0.8}, "liquid": {"threshold": 0.8}, "livestock": {"threshold": 0.8}, "lullaby": {"threshold": 0.8}, "machine_gun": {"threshold": 0.8}, "mains_hum": {"threshold": 0.8}, "mallet_percussion": {"threshold": 0.8}, "mandolin": {"threshold": 0.8}, "mantra": {"threshold": 0.8}, "maraca": {"threshold": 0.8}, "marimba": {"threshold": 0.8}, "mechanical_fan": {"threshold": 0.8}, "mechanisms": {"threshold": 0.8}, "medium_engine": {"threshold": 0.8}, "meow": {"threshold": 0.8}, "microwave_oven": {"threshold": 0.8}, "middle_eastern_music": {"threshold": 0.8}, "moo": {"threshold": 0.8}, "mosquito": {"threshold": 0.8}, "motor_vehicle": {"threshold": 0.8}, "motorboat": {"threshold": 0.8}, "motorcycle": {"threshold": 0.8}, "mouse": {"threshold": 0.8}, "music": {"threshold": 0.8}, "music_for_children": {"threshold": 0.8}, "music_of_africa": {"threshold": 0.8}, "music_of_asia": {"threshold": 0.8}, "music_of_bollywood": {"threshold": 0.8}, "music_of_latin_america": {"threshold": 0.8}, "musical_instrument": {"threshold": 0.8}, "neigh": {"threshold": 0.8}, "new-age_music": {"threshold": 0.8}, "noise": {"threshold": 0.8}, "ocean": {"threshold": 0.8}, "oink": {"threshold": 0.8}, "opera": {"threshold": 0.8}, "orchestra": {"threshold": 0.8}, "organ": {"threshold": 0.8}, "outside": {"threshold": 0.8}, "owl": {"threshold": 0.8}, "pant": {"threshold": 0.8}, "patter": {"threshold": 0.8}, "percussion": {"threshold": 0.8}, "pets": {"threshold": 0.8}, "piano": {"threshold": 0.8}, "pig": {"threshold": 0.8}, "pigeon": {"threshold": 0.8}, "ping": {"threshold": 0.8}, "pink_noise": {"threshold": 0.8}, "pizzicato": {"threshold": 0.8}, "plop": {"threshold": 0.8}, "plucked_string_instrument": {"threshold": 0.8}, "police_car": {"threshold": 0.8}, "pop_music": {"threshold": 0.8}, "pour": {"threshold": 0.8}, "power_tool": {"threshold": 0.8}, "power_windows": {"threshold": 0.8}, "printer": {"threshold": 0.8}, "progressive_rock": {"threshold": 0.8}, "propeller": {"threshold": 0.8}, "psychedelic_rock": {"threshold": 0.8}, "pulleys": {"threshold": 0.8}, "pulse": {"threshold": 0.8}, "pump": {"threshold": 0.8}, "punk_rock": {"threshold": 0.8}, "purr": {"threshold": 0.8}, "quack": {"threshold": 0.8}, "race_car": {"threshold": 0.8}, "radio": {"threshold": 0.8}, "rail_transport": {"threshold": 0.8}, "railroad_car": {"threshold": 0.8}, "rain": {"threshold": 0.8}, "rain_on_surface": {"threshold": 0.8}, "raindrop": {"threshold": 0.8}, "rapping": {"threshold": 0.8}, "ratchet": {"threshold": 0.8}, "rats": {"threshold": 0.8}, "rattle": {"threshold": 0.8}, "reggae": {"threshold": 0.8}, "reverberation": {"threshold": 0.8}, "reversing_beeps": {"threshold": 0.8}, "rhythm_and_blues": {"threshold": 0.8}, "rimshot": {"threshold": 0.8}, "ringtone": {"threshold": 0.8}, "roar": {"threshold": 0.8}, "roaring_cats": {"threshold": 0.8}, "rock_and_roll": {"threshold": 0.8}, "rock_music": {"threshold": 0.8}, "roll": {"threshold": 0.8}, "rowboat": {"threshold": 0.8}, "rub": {"threshold": 0.8}, "rumble": {"threshold": 0.8}, "run": {"threshold": 0.8}, "rustle": {"threshold": 0.8}, "rustling_leaves": {"threshold": 0.8}, "sad_music": {"threshold": 0.8}, "sailboat": {"threshold": 0.8}, "salsa_music": {"threshold": 0.8}, "sampler": {"threshold": 0.8}, "sanding": {"threshold": 0.8}, "sawing": {"threshold": 0.8}, "saxophone": {"threshold": 0.8}, "scary_music": {"threshold": 0.8}, "scissors": {"threshold": 0.8}, "scrape": {"threshold": 0.8}, "scratch": {"threshold": 0.8}, "scratching": {"threshold": 0.8}, "sewing_machine": {"threshold": 0.8}, "shatter": {"threshold": 0.8}, "sheep": {"threshold": 0.8}, "ship": {"threshold": 0.8}, "shofar": {"threshold": 0.8}, "shuffle": {"threshold": 0.8}, "shuffling_cards": {"threshold": 0.8}, "sidetone": {"threshold": 0.8}, "sigh": {"threshold": 0.8}, "silence": {"threshold": 0.8}, "sine_wave": {"threshold": 0.8}, "singing": {"threshold": 0.8}, "singing_bowl": {"threshold": 0.8}, "single-lens_reflex_camera": {"threshold": 0.8}, "sink": {"threshold": 0.8}, "siren": {"threshold": 0.8}, "sitar": {"threshold": 0.8}, "sizzle": {"threshold": 0.8}, "ska": {"threshold": 0.8}, "skateboard": {"threshold": 0.8}, "skidding": {"threshold": 0.8}, "slam": {"threshold": 0.8}, "slap": {"threshold": 0.8}, "sliding_door": {"threshold": 0.8}, "slosh": {"threshold": 0.8}, "smash": {"threshold": 0.8}, "smoke_detector": {"threshold": 0.8}, "snake": {"threshold": 0.8}, "snare_drum": {"threshold": 0.8}, "sneeze": {"threshold": 0.8}, "snicker": {"threshold": 0.8}, "sniff": {"threshold": 0.8}, "snoring": {"threshold": 0.8}, "snort": {"threshold": 0.8}, "sodeling": {"threshold": 0.8}, "sonar": {"threshold": 0.8}, "song": {"threshold": 0.8}, "soul_music": {"threshold": 0.8}, "sound_effect": {"threshold": 0.8}, "soundtrack_music": {"threshold": 0.8}, "speech": {"threshold": 0.8}, "splash": {"threshold": 0.8}, "splinter": {"threshold": 0.8}, "spray": {"threshold": 0.8}, "squawk": {"threshold": 0.8}, "squeak": {"threshold": 0.8}, "squeal": {"threshold": 0.8}, "squish": {"threshold": 0.8}, "static": {"threshold": 0.8}, "steam": {"threshold": 0.8}, "steam_whistle": {"threshold": 0.8}, "steel_guitar": {"threshold": 0.8}, "steelpan": {"threshold": 0.8}, "stir": {"threshold": 0.8}, "stomach_rumble": {"threshold": 0.8}, "stream": {"threshold": 0.8}, "string_section": {"threshold": 0.8}, "strum": {"threshold": 0.8}, "subway": {"threshold": 0.8}, "swing_music": {"threshold": 0.8}, "synthesizer": {"threshold": 0.8}, "synthetic_singing": {"threshold": 0.8}, "tabla": {"threshold": 0.8}, "tambourine": {"threshold": 0.8}, "tap": {"threshold": 0.8}, "tapping": {"threshold": 0.8}, "tearing": {"threshold": 0.8}, "techno": {"threshold": 0.8}, "telephone": {"threshold": 0.8}, "telephone_bell_ringing": {"threshold": 0.8}, "telephone_dialing": {"threshold": 0.8}, "television": {"threshold": 0.8}, "tender_music": {"threshold": 0.8}, "theme_music": {"threshold": 0.8}, "theremin": {"threshold": 0.8}, "throat_clearing": {"threshold": 0.8}, "throbbing": {"threshold": 0.8}, "thump": {"threshold": 0.8}, "thunder": {"threshold": 0.8}, "thunderstorm": {"threshold": 0.8}, "thunk": {"threshold": 0.8}, "tick": {"threshold": 0.8}, "tick-tock": {"threshold": 0.8}, "timpani": {"threshold": 0.8}, "tire_squeal": {"threshold": 0.8}, "toilet_flush": {"threshold": 0.8}, "tools": {"threshold": 0.8}, "toot": {"threshold": 0.8}, "toothbrush": {"threshold": 0.8}, "traditional_music": {"threshold": 0.8}, "traffic_noise": {"threshold": 0.8}, "train": {"threshold": 0.8}, "train_horn": {"threshold": 0.8}, "train_wheels_squealing": {"threshold": 0.8}, "train_whistle": {"threshold": 0.8}, "trance_music": {"threshold": 0.8}, "trickle": {"threshold": 0.8}, "trombone": {"threshold": 0.8}, "truck": {"threshold": 0.8}, "trumpet": {"threshold": 0.8}, "tubular_bells": {"threshold": 0.8}, "tuning_fork": {"threshold": 0.8}, "turkey": {"threshold": 0.8}, "typewriter": {"threshold": 0.8}, "typing": {"threshold": 0.8}, "ukulele": {"threshold": 0.8}, "vacuum_cleaner": {"threshold": 0.8}, "vehicle": {"threshold": 0.8}, "vibraphone": {"threshold": 0.8}, "vibration": {"threshold": 0.8}, "video_game_music": {"threshold": 0.8}, "violin": {"threshold": 0.8}, "vocal_music": {"threshold": 0.8}, "water": {"threshold": 0.8}, "water_tap": {"threshold": 0.8}, "waterfall": {"threshold": 0.8}, "waves": {"threshold": 0.8}, "wedding_music": {"threshold": 0.8}, "whack": {"threshold": 0.8}, "whale_vocalization": {"threshold": 0.8}, "wheeze": {"threshold": 0.8}, "whimper_dog": {"threshold": 0.8}, "whip": {"threshold": 0.8}, "whir": {"threshold": 0.8}, "whispering": {"threshold": 0.8}, "whistle": {"threshold": 0.8}, "whistling": {"threshold": 0.8}, "white_noise": {"threshold": 0.8}, "whoop": {"threshold": 0.8}, "whoosh": {"threshold": 0.8}, "wild_animals": {"threshold": 0.8}, "wind": {"threshold": 0.8}, "wind_chime": {"threshold": 0.8}, "wind_instrument": {"threshold": 0.8}, "wind_noise": {"threshold": 0.8}, "wood": {"threshold": 0.8}, "wood_block": {"threshold": 0.8}, "writing": {"threshold": 0.8}, "yell": {"threshold": 0.8}, "yip": {"threshold": 0.8}, "zing": {"threshold": 0.8}, "zipper": {"threshold": 0.8}, "zither": {"threshold": 0.8}}, "enabled_in_config": false, "num_threads": 2}, "audio_transcription": {"enabled": false, "enabled_in_config": false, "live_enabled": false}, "birdseye": {"enabled": true, "mode": "objects", "order": 0}, "detect": {"enabled": false, "height": 720, "width": 1280, "fps": 5, "min_initialized": 2, "max_disappeared": 25, "stationary": {"interval": 50, "threshold": 50, "max_frames": {"default": null, "objects": {}}, "classifier": true}, "annotation_offset": 0}, "face_recognition": {"enabled": false, "min_area": 750}, "ffmpeg": {"path": "default", "global_args": ["-hide_banner", "-loglevel", "warning", "-threads", "2"], "hwaccel_args": "preset-vaapi", "input_args": "preset-rtsp-generic", "output_args": {"detect": ["-threads", "2", "-f", "rawvideo", "-pix_fmt", "yuv420p"], "record": "preset-record-generic-audio-aac"}, "retry_interval": 10.0, "apple_compatibility": false, "gpu": 0, "inputs": [{"path": "rtsp://10.0.0.2:554/video", "roles": ["record", "detect"], "global_args": [], "hwaccel_args": [], "input_args": []}]}, "live": {"streams": {"backyard": "backyard"}, "height": 720, "quality": 8}, "lpr": {"enabled": false, "expire_time": 3, "min_area": 1000, "enhancement": 0}, "motion": {"enabled": true, "threshold": 30, "lightning_threshold": 0.8, "skip_motion_threshold": null, "improve_contrast": true, "contour_area": 10, "delta_alpha": 0.2, "frame_alpha": 0.01, "frame_height": 100, "mask": {}, "mqtt_off_delay": 30, "enabled_in_config": null}, "objects": {"track": ["person"], "filters": {"person": {"min_area": 0, "max_area": 24000000, "min_ratio": 0, "max_ratio": 24000000, "threshold": 0.7, "min_score": 0.5, "mask": {}}}, "mask": {}, "genai": {"enabled": false, "use_snapshot": false, "prompt": "Analyze the sequence of images containing the {label}. Focus on the likely intent or behavior of the {label} based on its actions and movement, rather than describing its appearance or the surroundings. Consider what the {label} is doing, why, and what it might do next.", "object_prompts": {}, "objects": [], "required_zones": [], "debug_save_thumbnails": false, "send_triggers": {"tracked_object_end": true, "after_significant_updates": null}, "enabled_in_config": false}}, "record": {"enabled": false, "expire_interval": 60, "continuous": {"days": 0}, "motion": {"days": 0}, "detections": {"pre_capture": 5, "post_capture": 5, "retain": {"days": 10, "mode": "motion"}}, "alerts": {"pre_capture": 5, "post_capture": 5, "retain": {"days": 10, "mode": "motion"}}, "export": {"hwaccel_args": "preset-vaapi"}, "preview": {"quality": "medium"}, "enabled_in_config": false}, "review": {"alerts": {"enabled": true, "labels": ["person", "car"], "required_zones": [], "enabled_in_config": true, "cutoff_time": 40}, "detections": {"enabled": true, "labels": null, "required_zones": [], "cutoff_time": 30, "enabled_in_config": true}, "genai": {"enabled": false, "alerts": true, "detections": false, "image_source": "preview", "additional_concerns": [], "debug_save_thumbnails": false, "enabled_in_config": false, "preferred_language": null, "activity_context_prompt": "### Normal Activity Indicators (Level 0)\n- Known/verified people in any zone at any time\n- People with pets in residential areas\n- Routine residential vehicle access during daytime/evening (6 AM - 10 PM): entering, exiting, loading/unloading items \u2014 normal commute and travel patterns\n- Deliveries or services during daytime/evening (6 AM - 10 PM): carrying packages to doors/porches, placing items, leaving\n- Services/maintenance workers with visible tools, uniforms, or service vehicles during daytime\n- Activity confined to public areas only (sidewalks, streets) without entering property at any time\n\n### Suspicious Activity Indicators (Level 1)\n- **Checking or probing vehicle/building access**: trying handles without entering, peering through windows, examining multiple vehicles, or possessing break-in tools \u2014 Level 1\n- **Unidentified person in private areas (driveways, near vehicles/buildings) during late night/early morning (11 PM - 5 AM)** \u2014 ALWAYS Level 1 regardless of activity or duration\n- Taking items that don't belong to them (packages, objects from porches/driveways)\n- Climbing or jumping fences/barriers to access property\n- Attempting to conceal actions or items from view\n- Prolonged loitering: remaining in same area without visible purpose throughout most of the sequence\n\n### Critical Threat Indicators (Level 2)\n- Holding break-in tools (crowbars, pry bars, bolt cutters)\n- Weapons visible (guns, knives, bats used aggressively)\n- Forced entry in progress\n- Physical aggression or violence\n- Active property damage or theft in progress\n\n### Assessment Guidance\nEvaluate in this order:\n\n1. **If person is verified/known** \u2192 Level 0 regardless of time or activity\n2. **If person is unidentified:**\n - Check time: If late night/early morning (11 PM - 5 AM) AND in private areas (driveways, near vehicles/buildings) \u2192 Level 1\n - Check actions: If probing access (trying handles without entering, checking multiple vehicles), taking items, climbing \u2192 Level 1\n - Otherwise, if daytime/evening (6 AM - 10 PM) with clear legitimate purpose (delivery, service, routine vehicle access) \u2192 Level 0\n3. **Escalate to Level 2 if:** Weapons, break-in tools, forced entry in progress, violence, or active property damage visible (escalates from Level 0 or 1)\n\nThe mere presence of an unidentified person in private areas during late night hours is inherently suspicious and warrants human review, regardless of what activity they appear to be doing or how brief the sequence is."}}, "semantic_search": {"triggers": {}}, "snapshots": {"enabled": false, "timestamp": false, "bounding_box": true, "crop": false, "required_zones": [], "height": null, "retain": {"default": 10, "mode": "motion", "objects": {}}, "quality": 60}, "timestamp_style": {"position": "tl", "format": "%m/%d/%Y %H:%M:%S", "color": {"red": 255, "green": 255, "blue": 255}, "thickness": 2, "effect": null}, "best_image_timeout": 60, "mqtt": {"enabled": true, "timestamp": true, "bounding_box": true, "crop": true, "height": 270, "required_zones": [], "quality": 70}, "notifications": {"enabled": false, "email": null, "cooldown": 0, "enabled_in_config": false}, "onvif": {"host": "", "port": 8000, "user": null, "password": null, "tls_insecure": false, "profile": null, "autotracking": {"enabled": false, "calibrate_on_startup": false, "zooming": "disabled", "zoom_factor": 0.3, "track": ["person"], "required_zones": [], "return_preset": "home", "timeout": 10, "movement_weights": [], "enabled_in_config": false}, "ignore_time_mismatch": false}, "type": "generic", "ui": {"order": 0, "dashboard": true}, "webui_url": null, "profiles": {}, "zones": {}, "enabled_in_config": true}, "garage": {"name": "garage", "friendly_name": null, "enabled": true, "audio": {"enabled": false, "max_not_heard": 30, "min_volume": 500, "listen": ["bark", "fire_alarm", "scream", "speech", "yell"], "filters": {"a_capella": {"threshold": 0.8}, "accelerating": {"threshold": 0.8}, "accordion": {"threshold": 0.8}, "acoustic_guitar": {"threshold": 0.8}, "afrobeat": {"threshold": 0.8}, "air_brake": {"threshold": 0.8}, "air_conditioning": {"threshold": 0.8}, "air_horn": {"threshold": 0.8}, "aircraft": {"threshold": 0.8}, "aircraft_engine": {"threshold": 0.8}, "alarm": {"threshold": 0.8}, "alarm_clock": {"threshold": 0.8}, "ambient_music": {"threshold": 0.8}, "ambulance": {"threshold": 0.8}, "angry_music": {"threshold": 0.8}, "animal": {"threshold": 0.8}, "applause": {"threshold": 0.8}, "arrow": {"threshold": 0.8}, "artillery_fire": {"threshold": 0.8}, "babbling": {"threshold": 0.8}, "background_music": {"threshold": 0.8}, "bagpipes": {"threshold": 0.8}, "bang": {"threshold": 0.8}, "banjo": {"threshold": 0.8}, "bark": {"threshold": 0.8}, "basketball_bounce": {"threshold": 0.8}, "bass_drum": {"threshold": 0.8}, "bass_guitar": {"threshold": 0.8}, "bathtub": {"threshold": 0.8}, "beatboxing": {"threshold": 0.8}, "beep": {"threshold": 0.8}, "bell": {"threshold": 0.8}, "bellow": {"threshold": 0.8}, "bicycle": {"threshold": 0.8}, "bicycle_bell": {"threshold": 0.8}, "bird": {"threshold": 0.8}, "biting": {"threshold": 0.8}, "bleat": {"threshold": 0.8}, "blender": {"threshold": 0.8}, "bluegrass": {"threshold": 0.8}, "blues": {"threshold": 0.8}, "boat": {"threshold": 0.8}, "boiling": {"threshold": 0.8}, "boing": {"threshold": 0.8}, "boom": {"threshold": 0.8}, "bouncing": {"threshold": 0.8}, "bow-wow": {"threshold": 0.8}, "bowed_string_instrument": {"threshold": 0.8}, "brass_instrument": {"threshold": 0.8}, "breaking": {"threshold": 0.8}, "breathing": {"threshold": 0.8}, "burping": {"threshold": 0.8}, "burst": {"threshold": 0.8}, "bus": {"threshold": 0.8}, "busy_signal": {"threshold": 0.8}, "buzz": {"threshold": 0.8}, "buzzer": {"threshold": 0.8}, "cacophony": {"threshold": 0.8}, "camera": {"threshold": 0.8}, "cap_gun": {"threshold": 0.8}, "car": {"threshold": 0.8}, "car_alarm": {"threshold": 0.8}, "car_passing_by": {"threshold": 0.8}, "carnatic_music": {"threshold": 0.8}, "cash_register": {"threshold": 0.8}, "cat": {"threshold": 0.8}, "caterwaul": {"threshold": 0.8}, "cattle": {"threshold": 0.8}, "caw": {"threshold": 0.8}, "cello": {"threshold": 0.8}, "chainsaw": {"threshold": 0.8}, "change_ringing": {"threshold": 0.8}, "chant": {"threshold": 0.8}, "chatter": {"threshold": 0.8}, "cheering": {"threshold": 0.8}, "chewing": {"threshold": 0.8}, "chicken": {"threshold": 0.8}, "child_singing": {"threshold": 0.8}, "children_playing": {"threshold": 0.8}, "chime": {"threshold": 0.8}, "chink": {"threshold": 0.8}, "chird": {"threshold": 0.8}, "chirp": {"threshold": 0.8}, "chirp_tone": {"threshold": 0.8}, "choir": {"threshold": 0.8}, "chop": {"threshold": 0.8}, "chopping": {"threshold": 0.8}, "chorus_effect": {"threshold": 0.8}, "christian_music": {"threshold": 0.8}, "christmas_music": {"threshold": 0.8}, "church_bell": {"threshold": 0.8}, "civil_defense_siren": {"threshold": 0.8}, "clang": {"threshold": 0.8}, "clapping": {"threshold": 0.8}, "clarinet": {"threshold": 0.8}, "classical_music": {"threshold": 0.8}, "clatter": {"threshold": 0.8}, "clickety-clack": {"threshold": 0.8}, "clicking": {"threshold": 0.8}, "clip-clop": {"threshold": 0.8}, "clock": {"threshold": 0.8}, "cluck": {"threshold": 0.8}, "cock-a-doodle-doo": {"threshold": 0.8}, "coin": {"threshold": 0.8}, "computer_keyboard": {"threshold": 0.8}, "coo": {"threshold": 0.8}, "cough": {"threshold": 0.8}, "country": {"threshold": 0.8}, "cowbell": {"threshold": 0.8}, "crack": {"threshold": 0.8}, "crackle": {"threshold": 0.8}, "creak": {"threshold": 0.8}, "cricket": {"threshold": 0.8}, "croak": {"threshold": 0.8}, "crow": {"threshold": 0.8}, "crowd": {"threshold": 0.8}, "crumpling": {"threshold": 0.8}, "crunch": {"threshold": 0.8}, "crushing": {"threshold": 0.8}, "crying": {"threshold": 0.8}, "cupboard_open_or_close": {"threshold": 0.8}, "cutlery": {"threshold": 0.8}, "cymbal": {"threshold": 0.8}, "dance_music": {"threshold": 0.8}, "dental_drill's_drill": {"threshold": 0.8}, "dial_tone": {"threshold": 0.8}, "didgeridoo": {"threshold": 0.8}, "ding": {"threshold": 0.8}, "ding-dong": {"threshold": 0.8}, "disco": {"threshold": 0.8}, "dishes": {"threshold": 0.8}, "distortion": {"threshold": 0.8}, "dog": {"threshold": 0.8}, "dogs": {"threshold": 0.8}, "door": {"threshold": 0.8}, "doorbell": {"threshold": 0.8}, "double_bass": {"threshold": 0.8}, "drawer_open_or_close": {"threshold": 0.8}, "drill": {"threshold": 0.8}, "drip": {"threshold": 0.8}, "drum": {"threshold": 0.8}, "drum_and_bass": {"threshold": 0.8}, "drum_kit": {"threshold": 0.8}, "drum_machine": {"threshold": 0.8}, "drum_roll": {"threshold": 0.8}, "dubstep": {"threshold": 0.8}, "duck": {"threshold": 0.8}, "echo": {"threshold": 0.8}, "effects_unit": {"threshold": 0.8}, "electric_guitar": {"threshold": 0.8}, "electric_piano": {"threshold": 0.8}, "electric_shaver": {"threshold": 0.8}, "electric_toothbrush": {"threshold": 0.8}, "electronic_dance_music": {"threshold": 0.8}, "electronic_music": {"threshold": 0.8}, "electronic_organ": {"threshold": 0.8}, "electronic_tuner": {"threshold": 0.8}, "electronica": {"threshold": 0.8}, "emergency_vehicle": {"threshold": 0.8}, "engine": {"threshold": 0.8}, "engine_knocking": {"threshold": 0.8}, "engine_starting": {"threshold": 0.8}, "environmental_noise": {"threshold": 0.8}, "eruption": {"threshold": 0.8}, "exciting_music": {"threshold": 0.8}, "explosion": {"threshold": 0.8}, "fart": {"threshold": 0.8}, "field_recording": {"threshold": 0.8}, "filing": {"threshold": 0.8}, "fill": {"threshold": 0.8}, "finger_snapping": {"threshold": 0.8}, "fire": {"threshold": 0.8}, "fire_alarm": {"threshold": 0.8}, "fire_engine": {"threshold": 0.8}, "firecracker": {"threshold": 0.8}, "fireworks": {"threshold": 0.8}, "fixed-wing_aircraft": {"threshold": 0.8}, "flamenco": {"threshold": 0.8}, "flap": {"threshold": 0.8}, "flapping_wings": {"threshold": 0.8}, "flute": {"threshold": 0.8}, "fly": {"threshold": 0.8}, "foghorn": {"threshold": 0.8}, "folk_music": {"threshold": 0.8}, "footsteps": {"threshold": 0.8}, "fowl": {"threshold": 0.8}, "french_horn": {"threshold": 0.8}, "frog": {"threshold": 0.8}, "frying": {"threshold": 0.8}, "funk": {"threshold": 0.8}, "fusillade": {"threshold": 0.8}, "gargling": {"threshold": 0.8}, "gasp": {"threshold": 0.8}, "gears": {"threshold": 0.8}, "glass": {"threshold": 0.8}, "glockenspiel": {"threshold": 0.8}, "goat": {"threshold": 0.8}, "gobble": {"threshold": 0.8}, "gong": {"threshold": 0.8}, "goose": {"threshold": 0.8}, "gospel_music": {"threshold": 0.8}, "groan": {"threshold": 0.8}, "growling": {"threshold": 0.8}, "grunge": {"threshold": 0.8}, "grunt": {"threshold": 0.8}, "guitar": {"threshold": 0.8}, "gunshot": {"threshold": 0.8}, "gurgling": {"threshold": 0.8}, "gush": {"threshold": 0.8}, "hair_dryer": {"threshold": 0.8}, "hammer": {"threshold": 0.8}, "hammond_organ": {"threshold": 0.8}, "hands": {"threshold": 0.8}, "happy_music": {"threshold": 0.8}, "harmonic": {"threshold": 0.8}, "harmonica": {"threshold": 0.8}, "harp": {"threshold": 0.8}, "harpsichord": {"threshold": 0.8}, "heart_murmur": {"threshold": 0.8}, "heartbeat": {"threshold": 0.8}, "heavy_engine": {"threshold": 0.8}, "heavy_metal": {"threshold": 0.8}, "helicopter": {"threshold": 0.8}, "hi-hat": {"threshold": 0.8}, "hiccup": {"threshold": 0.8}, "hip_hop_music": {"threshold": 0.8}, "hiss": {"threshold": 0.8}, "honk": {"threshold": 0.8}, "hoot": {"threshold": 0.8}, "horse": {"threshold": 0.8}, "house_music": {"threshold": 0.8}, "howl": {"threshold": 0.8}, "hum": {"threshold": 0.8}, "humming": {"threshold": 0.8}, "ice_cream_truck": {"threshold": 0.8}, "idling": {"threshold": 0.8}, "independent_music": {"threshold": 0.8}, "insect": {"threshold": 0.8}, "inside": {"threshold": 0.8}, "jackhammer": {"threshold": 0.8}, "jazz": {"threshold": 0.8}, "jet_engine": {"threshold": 0.8}, "jingle": {"threshold": 0.8}, "jingle_bell": {"threshold": 0.8}, "keyboard": {"threshold": 0.8}, "keys_jangling": {"threshold": 0.8}, "knock": {"threshold": 0.8}, "laughter": {"threshold": 0.8}, "lawn_mower": {"threshold": 0.8}, "light_engine": {"threshold": 0.8}, "liquid": {"threshold": 0.8}, "livestock": {"threshold": 0.8}, "lullaby": {"threshold": 0.8}, "machine_gun": {"threshold": 0.8}, "mains_hum": {"threshold": 0.8}, "mallet_percussion": {"threshold": 0.8}, "mandolin": {"threshold": 0.8}, "mantra": {"threshold": 0.8}, "maraca": {"threshold": 0.8}, "marimba": {"threshold": 0.8}, "mechanical_fan": {"threshold": 0.8}, "mechanisms": {"threshold": 0.8}, "medium_engine": {"threshold": 0.8}, "meow": {"threshold": 0.8}, "microwave_oven": {"threshold": 0.8}, "middle_eastern_music": {"threshold": 0.8}, "moo": {"threshold": 0.8}, "mosquito": {"threshold": 0.8}, "motor_vehicle": {"threshold": 0.8}, "motorboat": {"threshold": 0.8}, "motorcycle": {"threshold": 0.8}, "mouse": {"threshold": 0.8}, "music": {"threshold": 0.8}, "music_for_children": {"threshold": 0.8}, "music_of_africa": {"threshold": 0.8}, "music_of_asia": {"threshold": 0.8}, "music_of_bollywood": {"threshold": 0.8}, "music_of_latin_america": {"threshold": 0.8}, "musical_instrument": {"threshold": 0.8}, "neigh": {"threshold": 0.8}, "new-age_music": {"threshold": 0.8}, "noise": {"threshold": 0.8}, "ocean": {"threshold": 0.8}, "oink": {"threshold": 0.8}, "opera": {"threshold": 0.8}, "orchestra": {"threshold": 0.8}, "organ": {"threshold": 0.8}, "outside": {"threshold": 0.8}, "owl": {"threshold": 0.8}, "pant": {"threshold": 0.8}, "patter": {"threshold": 0.8}, "percussion": {"threshold": 0.8}, "pets": {"threshold": 0.8}, "piano": {"threshold": 0.8}, "pig": {"threshold": 0.8}, "pigeon": {"threshold": 0.8}, "ping": {"threshold": 0.8}, "pink_noise": {"threshold": 0.8}, "pizzicato": {"threshold": 0.8}, "plop": {"threshold": 0.8}, "plucked_string_instrument": {"threshold": 0.8}, "police_car": {"threshold": 0.8}, "pop_music": {"threshold": 0.8}, "pour": {"threshold": 0.8}, "power_tool": {"threshold": 0.8}, "power_windows": {"threshold": 0.8}, "printer": {"threshold": 0.8}, "progressive_rock": {"threshold": 0.8}, "propeller": {"threshold": 0.8}, "psychedelic_rock": {"threshold": 0.8}, "pulleys": {"threshold": 0.8}, "pulse": {"threshold": 0.8}, "pump": {"threshold": 0.8}, "punk_rock": {"threshold": 0.8}, "purr": {"threshold": 0.8}, "quack": {"threshold": 0.8}, "race_car": {"threshold": 0.8}, "radio": {"threshold": 0.8}, "rail_transport": {"threshold": 0.8}, "railroad_car": {"threshold": 0.8}, "rain": {"threshold": 0.8}, "rain_on_surface": {"threshold": 0.8}, "raindrop": {"threshold": 0.8}, "rapping": {"threshold": 0.8}, "ratchet": {"threshold": 0.8}, "rats": {"threshold": 0.8}, "rattle": {"threshold": 0.8}, "reggae": {"threshold": 0.8}, "reverberation": {"threshold": 0.8}, "reversing_beeps": {"threshold": 0.8}, "rhythm_and_blues": {"threshold": 0.8}, "rimshot": {"threshold": 0.8}, "ringtone": {"threshold": 0.8}, "roar": {"threshold": 0.8}, "roaring_cats": {"threshold": 0.8}, "rock_and_roll": {"threshold": 0.8}, "rock_music": {"threshold": 0.8}, "roll": {"threshold": 0.8}, "rowboat": {"threshold": 0.8}, "rub": {"threshold": 0.8}, "rumble": {"threshold": 0.8}, "run": {"threshold": 0.8}, "rustle": {"threshold": 0.8}, "rustling_leaves": {"threshold": 0.8}, "sad_music": {"threshold": 0.8}, "sailboat": {"threshold": 0.8}, "salsa_music": {"threshold": 0.8}, "sampler": {"threshold": 0.8}, "sanding": {"threshold": 0.8}, "sawing": {"threshold": 0.8}, "saxophone": {"threshold": 0.8}, "scary_music": {"threshold": 0.8}, "scissors": {"threshold": 0.8}, "scrape": {"threshold": 0.8}, "scratch": {"threshold": 0.8}, "scratching": {"threshold": 0.8}, "sewing_machine": {"threshold": 0.8}, "shatter": {"threshold": 0.8}, "sheep": {"threshold": 0.8}, "ship": {"threshold": 0.8}, "shofar": {"threshold": 0.8}, "shuffle": {"threshold": 0.8}, "shuffling_cards": {"threshold": 0.8}, "sidetone": {"threshold": 0.8}, "sigh": {"threshold": 0.8}, "silence": {"threshold": 0.8}, "sine_wave": {"threshold": 0.8}, "singing": {"threshold": 0.8}, "singing_bowl": {"threshold": 0.8}, "single-lens_reflex_camera": {"threshold": 0.8}, "sink": {"threshold": 0.8}, "siren": {"threshold": 0.8}, "sitar": {"threshold": 0.8}, "sizzle": {"threshold": 0.8}, "ska": {"threshold": 0.8}, "skateboard": {"threshold": 0.8}, "skidding": {"threshold": 0.8}, "slam": {"threshold": 0.8}, "slap": {"threshold": 0.8}, "sliding_door": {"threshold": 0.8}, "slosh": {"threshold": 0.8}, "smash": {"threshold": 0.8}, "smoke_detector": {"threshold": 0.8}, "snake": {"threshold": 0.8}, "snare_drum": {"threshold": 0.8}, "sneeze": {"threshold": 0.8}, "snicker": {"threshold": 0.8}, "sniff": {"threshold": 0.8}, "snoring": {"threshold": 0.8}, "snort": {"threshold": 0.8}, "sodeling": {"threshold": 0.8}, "sonar": {"threshold": 0.8}, "song": {"threshold": 0.8}, "soul_music": {"threshold": 0.8}, "sound_effect": {"threshold": 0.8}, "soundtrack_music": {"threshold": 0.8}, "speech": {"threshold": 0.8}, "splash": {"threshold": 0.8}, "splinter": {"threshold": 0.8}, "spray": {"threshold": 0.8}, "squawk": {"threshold": 0.8}, "squeak": {"threshold": 0.8}, "squeal": {"threshold": 0.8}, "squish": {"threshold": 0.8}, "static": {"threshold": 0.8}, "steam": {"threshold": 0.8}, "steam_whistle": {"threshold": 0.8}, "steel_guitar": {"threshold": 0.8}, "steelpan": {"threshold": 0.8}, "stir": {"threshold": 0.8}, "stomach_rumble": {"threshold": 0.8}, "stream": {"threshold": 0.8}, "string_section": {"threshold": 0.8}, "strum": {"threshold": 0.8}, "subway": {"threshold": 0.8}, "swing_music": {"threshold": 0.8}, "synthesizer": {"threshold": 0.8}, "synthetic_singing": {"threshold": 0.8}, "tabla": {"threshold": 0.8}, "tambourine": {"threshold": 0.8}, "tap": {"threshold": 0.8}, "tapping": {"threshold": 0.8}, "tearing": {"threshold": 0.8}, "techno": {"threshold": 0.8}, "telephone": {"threshold": 0.8}, "telephone_bell_ringing": {"threshold": 0.8}, "telephone_dialing": {"threshold": 0.8}, "television": {"threshold": 0.8}, "tender_music": {"threshold": 0.8}, "theme_music": {"threshold": 0.8}, "theremin": {"threshold": 0.8}, "throat_clearing": {"threshold": 0.8}, "throbbing": {"threshold": 0.8}, "thump": {"threshold": 0.8}, "thunder": {"threshold": 0.8}, "thunderstorm": {"threshold": 0.8}, "thunk": {"threshold": 0.8}, "tick": {"threshold": 0.8}, "tick-tock": {"threshold": 0.8}, "timpani": {"threshold": 0.8}, "tire_squeal": {"threshold": 0.8}, "toilet_flush": {"threshold": 0.8}, "tools": {"threshold": 0.8}, "toot": {"threshold": 0.8}, "toothbrush": {"threshold": 0.8}, "traditional_music": {"threshold": 0.8}, "traffic_noise": {"threshold": 0.8}, "train": {"threshold": 0.8}, "train_horn": {"threshold": 0.8}, "train_wheels_squealing": {"threshold": 0.8}, "train_whistle": {"threshold": 0.8}, "trance_music": {"threshold": 0.8}, "trickle": {"threshold": 0.8}, "trombone": {"threshold": 0.8}, "truck": {"threshold": 0.8}, "trumpet": {"threshold": 0.8}, "tubular_bells": {"threshold": 0.8}, "tuning_fork": {"threshold": 0.8}, "turkey": {"threshold": 0.8}, "typewriter": {"threshold": 0.8}, "typing": {"threshold": 0.8}, "ukulele": {"threshold": 0.8}, "vacuum_cleaner": {"threshold": 0.8}, "vehicle": {"threshold": 0.8}, "vibraphone": {"threshold": 0.8}, "vibration": {"threshold": 0.8}, "video_game_music": {"threshold": 0.8}, "violin": {"threshold": 0.8}, "vocal_music": {"threshold": 0.8}, "water": {"threshold": 0.8}, "water_tap": {"threshold": 0.8}, "waterfall": {"threshold": 0.8}, "waves": {"threshold": 0.8}, "wedding_music": {"threshold": 0.8}, "whack": {"threshold": 0.8}, "whale_vocalization": {"threshold": 0.8}, "wheeze": {"threshold": 0.8}, "whimper_dog": {"threshold": 0.8}, "whip": {"threshold": 0.8}, "whir": {"threshold": 0.8}, "whispering": {"threshold": 0.8}, "whistle": {"threshold": 0.8}, "whistling": {"threshold": 0.8}, "white_noise": {"threshold": 0.8}, "whoop": {"threshold": 0.8}, "whoosh": {"threshold": 0.8}, "wild_animals": {"threshold": 0.8}, "wind": {"threshold": 0.8}, "wind_chime": {"threshold": 0.8}, "wind_instrument": {"threshold": 0.8}, "wind_noise": {"threshold": 0.8}, "wood": {"threshold": 0.8}, "wood_block": {"threshold": 0.8}, "writing": {"threshold": 0.8}, "yell": {"threshold": 0.8}, "yip": {"threshold": 0.8}, "zing": {"threshold": 0.8}, "zipper": {"threshold": 0.8}, "zither": {"threshold": 0.8}}, "enabled_in_config": false, "num_threads": 2}, "audio_transcription": {"enabled": false, "enabled_in_config": false, "live_enabled": false}, "birdseye": {"enabled": true, "mode": "objects", "order": 0}, "detect": {"enabled": false, "height": 720, "width": 1280, "fps": 5, "min_initialized": 2, "max_disappeared": 25, "stationary": {"interval": 50, "threshold": 50, "max_frames": {"default": null, "objects": {}}, "classifier": true}, "annotation_offset": 0}, "face_recognition": {"enabled": false, "min_area": 750}, "ffmpeg": {"path": "default", "global_args": ["-hide_banner", "-loglevel", "warning", "-threads", "2"], "hwaccel_args": "preset-vaapi", "input_args": "preset-rtsp-generic", "output_args": {"detect": ["-threads", "2", "-f", "rawvideo", "-pix_fmt", "yuv420p"], "record": "preset-record-generic-audio-aac"}, "retry_interval": 10.0, "apple_compatibility": false, "gpu": 0, "inputs": [{"path": "rtsp://10.0.0.3:554/video", "roles": ["record", "detect"], "global_args": [], "hwaccel_args": [], "input_args": []}]}, "live": {"streams": {"garage": "garage"}, "height": 720, "quality": 8}, "lpr": {"enabled": false, "expire_time": 3, "min_area": 1000, "enhancement": 0}, "motion": {"enabled": true, "threshold": 30, "lightning_threshold": 0.8, "skip_motion_threshold": null, "improve_contrast": true, "contour_area": 10, "delta_alpha": 0.2, "frame_alpha": 0.01, "frame_height": 100, "mask": {}, "mqtt_off_delay": 30, "enabled_in_config": null}, "objects": {"track": ["person"], "filters": {"person": {"min_area": 0, "max_area": 24000000, "min_ratio": 0, "max_ratio": 24000000, "threshold": 0.7, "min_score": 0.5, "mask": {}}}, "mask": {}, "genai": {"enabled": false, "use_snapshot": false, "prompt": "Analyze the sequence of images containing the {label}. Focus on the likely intent or behavior of the {label} based on its actions and movement, rather than describing its appearance or the surroundings. Consider what the {label} is doing, why, and what it might do next.", "object_prompts": {}, "objects": [], "required_zones": [], "debug_save_thumbnails": false, "send_triggers": {"tracked_object_end": true, "after_significant_updates": null}, "enabled_in_config": false}}, "record": {"enabled": false, "expire_interval": 60, "continuous": {"days": 0}, "motion": {"days": 0}, "detections": {"pre_capture": 5, "post_capture": 5, "retain": {"days": 10, "mode": "motion"}}, "alerts": {"pre_capture": 5, "post_capture": 5, "retain": {"days": 10, "mode": "motion"}}, "export": {"hwaccel_args": "preset-vaapi"}, "preview": {"quality": "medium"}, "enabled_in_config": false}, "review": {"alerts": {"enabled": true, "labels": ["person", "car"], "required_zones": [], "enabled_in_config": true, "cutoff_time": 40}, "detections": {"enabled": true, "labels": null, "required_zones": [], "cutoff_time": 30, "enabled_in_config": true}, "genai": {"enabled": false, "alerts": true, "detections": false, "image_source": "preview", "additional_concerns": [], "debug_save_thumbnails": false, "enabled_in_config": false, "preferred_language": null, "activity_context_prompt": "### Normal Activity Indicators (Level 0)\n- Known/verified people in any zone at any time\n- People with pets in residential areas\n- Routine residential vehicle access during daytime/evening (6 AM - 10 PM): entering, exiting, loading/unloading items \u2014 normal commute and travel patterns\n- Deliveries or services during daytime/evening (6 AM - 10 PM): carrying packages to doors/porches, placing items, leaving\n- Services/maintenance workers with visible tools, uniforms, or service vehicles during daytime\n- Activity confined to public areas only (sidewalks, streets) without entering property at any time\n\n### Suspicious Activity Indicators (Level 1)\n- **Checking or probing vehicle/building access**: trying handles without entering, peering through windows, examining multiple vehicles, or possessing break-in tools \u2014 Level 1\n- **Unidentified person in private areas (driveways, near vehicles/buildings) during late night/early morning (11 PM - 5 AM)** \u2014 ALWAYS Level 1 regardless of activity or duration\n- Taking items that don't belong to them (packages, objects from porches/driveways)\n- Climbing or jumping fences/barriers to access property\n- Attempting to conceal actions or items from view\n- Prolonged loitering: remaining in same area without visible purpose throughout most of the sequence\n\n### Critical Threat Indicators (Level 2)\n- Holding break-in tools (crowbars, pry bars, bolt cutters)\n- Weapons visible (guns, knives, bats used aggressively)\n- Forced entry in progress\n- Physical aggression or violence\n- Active property damage or theft in progress\n\n### Assessment Guidance\nEvaluate in this order:\n\n1. **If person is verified/known** \u2192 Level 0 regardless of time or activity\n2. **If person is unidentified:**\n - Check time: If late night/early morning (11 PM - 5 AM) AND in private areas (driveways, near vehicles/buildings) \u2192 Level 1\n - Check actions: If probing access (trying handles without entering, checking multiple vehicles), taking items, climbing \u2192 Level 1\n - Otherwise, if daytime/evening (6 AM - 10 PM) with clear legitimate purpose (delivery, service, routine vehicle access) \u2192 Level 0\n3. **Escalate to Level 2 if:** Weapons, break-in tools, forced entry in progress, violence, or active property damage visible (escalates from Level 0 or 1)\n\nThe mere presence of an unidentified person in private areas during late night hours is inherently suspicious and warrants human review, regardless of what activity they appear to be doing or how brief the sequence is."}}, "semantic_search": {"triggers": {}}, "snapshots": {"enabled": false, "timestamp": false, "bounding_box": true, "crop": false, "required_zones": [], "height": null, "retain": {"default": 10, "mode": "motion", "objects": {}}, "quality": 60}, "timestamp_style": {"position": "tl", "format": "%m/%d/%Y %H:%M:%S", "color": {"red": 255, "green": 255, "blue": 255}, "thickness": 2, "effect": null}, "best_image_timeout": 60, "mqtt": {"enabled": true, "timestamp": true, "bounding_box": true, "crop": true, "height": 270, "required_zones": [], "quality": 70}, "notifications": {"enabled": false, "email": null, "cooldown": 0, "enabled_in_config": false}, "onvif": {"host": "", "port": 8000, "user": null, "password": null, "tls_insecure": false, "profile": null, "autotracking": {"enabled": false, "calibrate_on_startup": false, "zooming": "disabled", "zoom_factor": 0.3, "track": ["person"], "required_zones": [], "return_preset": "home", "timeout": 10, "movement_weights": [], "enabled_in_config": false}, "ignore_time_mismatch": false}, "type": "generic", "ui": {"order": 0, "dashboard": true}, "webui_url": null, "profiles": {}, "zones": {}, "enabled_in_config": true}}, "audio": {"enabled": false, "max_not_heard": 30, "min_volume": 500, "listen": ["bark", "fire_alarm", "scream", "speech", "yell"], "filters": {"a_capella": {"threshold": 0.8}, "accelerating": {"threshold": 0.8}, "accordion": {"threshold": 0.8}, "acoustic_guitar": {"threshold": 0.8}, "afrobeat": {"threshold": 0.8}, "air_brake": {"threshold": 0.8}, "air_conditioning": {"threshold": 0.8}, "air_horn": {"threshold": 0.8}, "aircraft": {"threshold": 0.8}, "aircraft_engine": {"threshold": 0.8}, "alarm": {"threshold": 0.8}, "alarm_clock": {"threshold": 0.8}, "ambient_music": {"threshold": 0.8}, "ambulance": {"threshold": 0.8}, "angry_music": {"threshold": 0.8}, "animal": {"threshold": 0.8}, "applause": {"threshold": 0.8}, "arrow": {"threshold": 0.8}, "artillery_fire": {"threshold": 0.8}, "babbling": {"threshold": 0.8}, "background_music": {"threshold": 0.8}, "bagpipes": {"threshold": 0.8}, "bang": {"threshold": 0.8}, "banjo": {"threshold": 0.8}, "bark": {"threshold": 0.8}, "basketball_bounce": {"threshold": 0.8}, "bass_drum": {"threshold": 0.8}, "bass_guitar": {"threshold": 0.8}, "bathtub": {"threshold": 0.8}, "beatboxing": {"threshold": 0.8}, "beep": {"threshold": 0.8}, "bell": {"threshold": 0.8}, "bellow": {"threshold": 0.8}, "bicycle": {"threshold": 0.8}, "bicycle_bell": {"threshold": 0.8}, "bird": {"threshold": 0.8}, "biting": {"threshold": 0.8}, "bleat": {"threshold": 0.8}, "blender": {"threshold": 0.8}, "bluegrass": {"threshold": 0.8}, "blues": {"threshold": 0.8}, "boat": {"threshold": 0.8}, "boiling": {"threshold": 0.8}, "boing": {"threshold": 0.8}, "boom": {"threshold": 0.8}, "bouncing": {"threshold": 0.8}, "bow-wow": {"threshold": 0.8}, "bowed_string_instrument": {"threshold": 0.8}, "brass_instrument": {"threshold": 0.8}, "breaking": {"threshold": 0.8}, "breathing": {"threshold": 0.8}, "burping": {"threshold": 0.8}, "burst": {"threshold": 0.8}, "bus": {"threshold": 0.8}, "busy_signal": {"threshold": 0.8}, "buzz": {"threshold": 0.8}, "buzzer": {"threshold": 0.8}, "cacophony": {"threshold": 0.8}, "camera": {"threshold": 0.8}, "cap_gun": {"threshold": 0.8}, "car": {"threshold": 0.8}, "car_alarm": {"threshold": 0.8}, "car_passing_by": {"threshold": 0.8}, "carnatic_music": {"threshold": 0.8}, "cash_register": {"threshold": 0.8}, "cat": {"threshold": 0.8}, "caterwaul": {"threshold": 0.8}, "cattle": {"threshold": 0.8}, "caw": {"threshold": 0.8}, "cello": {"threshold": 0.8}, "chainsaw": {"threshold": 0.8}, "change_ringing": {"threshold": 0.8}, "chant": {"threshold": 0.8}, "chatter": {"threshold": 0.8}, "cheering": {"threshold": 0.8}, "chewing": {"threshold": 0.8}, "chicken": {"threshold": 0.8}, "child_singing": {"threshold": 0.8}, "children_playing": {"threshold": 0.8}, "chime": {"threshold": 0.8}, "chink": {"threshold": 0.8}, "chird": {"threshold": 0.8}, "chirp": {"threshold": 0.8}, "chirp_tone": {"threshold": 0.8}, "choir": {"threshold": 0.8}, "chop": {"threshold": 0.8}, "chopping": {"threshold": 0.8}, "chorus_effect": {"threshold": 0.8}, "christian_music": {"threshold": 0.8}, "christmas_music": {"threshold": 0.8}, "church_bell": {"threshold": 0.8}, "civil_defense_siren": {"threshold": 0.8}, "clang": {"threshold": 0.8}, "clapping": {"threshold": 0.8}, "clarinet": {"threshold": 0.8}, "classical_music": {"threshold": 0.8}, "clatter": {"threshold": 0.8}, "clickety-clack": {"threshold": 0.8}, "clicking": {"threshold": 0.8}, "clip-clop": {"threshold": 0.8}, "clock": {"threshold": 0.8}, "cluck": {"threshold": 0.8}, "cock-a-doodle-doo": {"threshold": 0.8}, "coin": {"threshold": 0.8}, "computer_keyboard": {"threshold": 0.8}, "coo": {"threshold": 0.8}, "cough": {"threshold": 0.8}, "country": {"threshold": 0.8}, "cowbell": {"threshold": 0.8}, "crack": {"threshold": 0.8}, "crackle": {"threshold": 0.8}, "creak": {"threshold": 0.8}, "cricket": {"threshold": 0.8}, "croak": {"threshold": 0.8}, "crow": {"threshold": 0.8}, "crowd": {"threshold": 0.8}, "crumpling": {"threshold": 0.8}, "crunch": {"threshold": 0.8}, "crushing": {"threshold": 0.8}, "crying": {"threshold": 0.8}, "cupboard_open_or_close": {"threshold": 0.8}, "cutlery": {"threshold": 0.8}, "cymbal": {"threshold": 0.8}, "dance_music": {"threshold": 0.8}, "dental_drill's_drill": {"threshold": 0.8}, "dial_tone": {"threshold": 0.8}, "didgeridoo": {"threshold": 0.8}, "ding": {"threshold": 0.8}, "ding-dong": {"threshold": 0.8}, "disco": {"threshold": 0.8}, "dishes": {"threshold": 0.8}, "distortion": {"threshold": 0.8}, "dog": {"threshold": 0.8}, "dogs": {"threshold": 0.8}, "door": {"threshold": 0.8}, "doorbell": {"threshold": 0.8}, "double_bass": {"threshold": 0.8}, "drawer_open_or_close": {"threshold": 0.8}, "drill": {"threshold": 0.8}, "drip": {"threshold": 0.8}, "drum": {"threshold": 0.8}, "drum_and_bass": {"threshold": 0.8}, "drum_kit": {"threshold": 0.8}, "drum_machine": {"threshold": 0.8}, "drum_roll": {"threshold": 0.8}, "dubstep": {"threshold": 0.8}, "duck": {"threshold": 0.8}, "echo": {"threshold": 0.8}, "effects_unit": {"threshold": 0.8}, "electric_guitar": {"threshold": 0.8}, "electric_piano": {"threshold": 0.8}, "electric_shaver": {"threshold": 0.8}, "electric_toothbrush": {"threshold": 0.8}, "electronic_dance_music": {"threshold": 0.8}, "electronic_music": {"threshold": 0.8}, "electronic_organ": {"threshold": 0.8}, "electronic_tuner": {"threshold": 0.8}, "electronica": {"threshold": 0.8}, "emergency_vehicle": {"threshold": 0.8}, "engine": {"threshold": 0.8}, "engine_knocking": {"threshold": 0.8}, "engine_starting": {"threshold": 0.8}, "environmental_noise": {"threshold": 0.8}, "eruption": {"threshold": 0.8}, "exciting_music": {"threshold": 0.8}, "explosion": {"threshold": 0.8}, "fart": {"threshold": 0.8}, "field_recording": {"threshold": 0.8}, "filing": {"threshold": 0.8}, "fill": {"threshold": 0.8}, "finger_snapping": {"threshold": 0.8}, "fire": {"threshold": 0.8}, "fire_alarm": {"threshold": 0.8}, "fire_engine": {"threshold": 0.8}, "firecracker": {"threshold": 0.8}, "fireworks": {"threshold": 0.8}, "fixed-wing_aircraft": {"threshold": 0.8}, "flamenco": {"threshold": 0.8}, "flap": {"threshold": 0.8}, "flapping_wings": {"threshold": 0.8}, "flute": {"threshold": 0.8}, "fly": {"threshold": 0.8}, "foghorn": {"threshold": 0.8}, "folk_music": {"threshold": 0.8}, "footsteps": {"threshold": 0.8}, "fowl": {"threshold": 0.8}, "french_horn": {"threshold": 0.8}, "frog": {"threshold": 0.8}, "frying": {"threshold": 0.8}, "funk": {"threshold": 0.8}, "fusillade": {"threshold": 0.8}, "gargling": {"threshold": 0.8}, "gasp": {"threshold": 0.8}, "gears": {"threshold": 0.8}, "glass": {"threshold": 0.8}, "glockenspiel": {"threshold": 0.8}, "goat": {"threshold": 0.8}, "gobble": {"threshold": 0.8}, "gong": {"threshold": 0.8}, "goose": {"threshold": 0.8}, "gospel_music": {"threshold": 0.8}, "groan": {"threshold": 0.8}, "growling": {"threshold": 0.8}, "grunge": {"threshold": 0.8}, "grunt": {"threshold": 0.8}, "guitar": {"threshold": 0.8}, "gunshot": {"threshold": 0.8}, "gurgling": {"threshold": 0.8}, "gush": {"threshold": 0.8}, "hair_dryer": {"threshold": 0.8}, "hammer": {"threshold": 0.8}, "hammond_organ": {"threshold": 0.8}, "hands": {"threshold": 0.8}, "happy_music": {"threshold": 0.8}, "harmonic": {"threshold": 0.8}, "harmonica": {"threshold": 0.8}, "harp": {"threshold": 0.8}, "harpsichord": {"threshold": 0.8}, "heart_murmur": {"threshold": 0.8}, "heartbeat": {"threshold": 0.8}, "heavy_engine": {"threshold": 0.8}, "heavy_metal": {"threshold": 0.8}, "helicopter": {"threshold": 0.8}, "hi-hat": {"threshold": 0.8}, "hiccup": {"threshold": 0.8}, "hip_hop_music": {"threshold": 0.8}, "hiss": {"threshold": 0.8}, "honk": {"threshold": 0.8}, "hoot": {"threshold": 0.8}, "horse": {"threshold": 0.8}, "house_music": {"threshold": 0.8}, "howl": {"threshold": 0.8}, "hum": {"threshold": 0.8}, "humming": {"threshold": 0.8}, "ice_cream_truck": {"threshold": 0.8}, "idling": {"threshold": 0.8}, "independent_music": {"threshold": 0.8}, "insect": {"threshold": 0.8}, "inside": {"threshold": 0.8}, "jackhammer": {"threshold": 0.8}, "jazz": {"threshold": 0.8}, "jet_engine": {"threshold": 0.8}, "jingle": {"threshold": 0.8}, "jingle_bell": {"threshold": 0.8}, "keyboard": {"threshold": 0.8}, "keys_jangling": {"threshold": 0.8}, "knock": {"threshold": 0.8}, "laughter": {"threshold": 0.8}, "lawn_mower": {"threshold": 0.8}, "light_engine": {"threshold": 0.8}, "liquid": {"threshold": 0.8}, "livestock": {"threshold": 0.8}, "lullaby": {"threshold": 0.8}, "machine_gun": {"threshold": 0.8}, "mains_hum": {"threshold": 0.8}, "mallet_percussion": {"threshold": 0.8}, "mandolin": {"threshold": 0.8}, "mantra": {"threshold": 0.8}, "maraca": {"threshold": 0.8}, "marimba": {"threshold": 0.8}, "mechanical_fan": {"threshold": 0.8}, "mechanisms": {"threshold": 0.8}, "medium_engine": {"threshold": 0.8}, "meow": {"threshold": 0.8}, "microwave_oven": {"threshold": 0.8}, "middle_eastern_music": {"threshold": 0.8}, "moo": {"threshold": 0.8}, "mosquito": {"threshold": 0.8}, "motor_vehicle": {"threshold": 0.8}, "motorboat": {"threshold": 0.8}, "motorcycle": {"threshold": 0.8}, "mouse": {"threshold": 0.8}, "music": {"threshold": 0.8}, "music_for_children": {"threshold": 0.8}, "music_of_africa": {"threshold": 0.8}, "music_of_asia": {"threshold": 0.8}, "music_of_bollywood": {"threshold": 0.8}, "music_of_latin_america": {"threshold": 0.8}, "musical_instrument": {"threshold": 0.8}, "neigh": {"threshold": 0.8}, "new-age_music": {"threshold": 0.8}, "noise": {"threshold": 0.8}, "ocean": {"threshold": 0.8}, "oink": {"threshold": 0.8}, "opera": {"threshold": 0.8}, "orchestra": {"threshold": 0.8}, "organ": {"threshold": 0.8}, "outside": {"threshold": 0.8}, "owl": {"threshold": 0.8}, "pant": {"threshold": 0.8}, "patter": {"threshold": 0.8}, "percussion": {"threshold": 0.8}, "pets": {"threshold": 0.8}, "piano": {"threshold": 0.8}, "pig": {"threshold": 0.8}, "pigeon": {"threshold": 0.8}, "ping": {"threshold": 0.8}, "pink_noise": {"threshold": 0.8}, "pizzicato": {"threshold": 0.8}, "plop": {"threshold": 0.8}, "plucked_string_instrument": {"threshold": 0.8}, "police_car": {"threshold": 0.8}, "pop_music": {"threshold": 0.8}, "pour": {"threshold": 0.8}, "power_tool": {"threshold": 0.8}, "power_windows": {"threshold": 0.8}, "printer": {"threshold": 0.8}, "progressive_rock": {"threshold": 0.8}, "propeller": {"threshold": 0.8}, "psychedelic_rock": {"threshold": 0.8}, "pulleys": {"threshold": 0.8}, "pulse": {"threshold": 0.8}, "pump": {"threshold": 0.8}, "punk_rock": {"threshold": 0.8}, "purr": {"threshold": 0.8}, "quack": {"threshold": 0.8}, "race_car": {"threshold": 0.8}, "radio": {"threshold": 0.8}, "rail_transport": {"threshold": 0.8}, "railroad_car": {"threshold": 0.8}, "rain": {"threshold": 0.8}, "rain_on_surface": {"threshold": 0.8}, "raindrop": {"threshold": 0.8}, "rapping": {"threshold": 0.8}, "ratchet": {"threshold": 0.8}, "rats": {"threshold": 0.8}, "rattle": {"threshold": 0.8}, "reggae": {"threshold": 0.8}, "reverberation": {"threshold": 0.8}, "reversing_beeps": {"threshold": 0.8}, "rhythm_and_blues": {"threshold": 0.8}, "rimshot": {"threshold": 0.8}, "ringtone": {"threshold": 0.8}, "roar": {"threshold": 0.8}, "roaring_cats": {"threshold": 0.8}, "rock_and_roll": {"threshold": 0.8}, "rock_music": {"threshold": 0.8}, "roll": {"threshold": 0.8}, "rowboat": {"threshold": 0.8}, "rub": {"threshold": 0.8}, "rumble": {"threshold": 0.8}, "run": {"threshold": 0.8}, "rustle": {"threshold": 0.8}, "rustling_leaves": {"threshold": 0.8}, "sad_music": {"threshold": 0.8}, "sailboat": {"threshold": 0.8}, "salsa_music": {"threshold": 0.8}, "sampler": {"threshold": 0.8}, "sanding": {"threshold": 0.8}, "sawing": {"threshold": 0.8}, "saxophone": {"threshold": 0.8}, "scary_music": {"threshold": 0.8}, "scissors": {"threshold": 0.8}, "scrape": {"threshold": 0.8}, "scratch": {"threshold": 0.8}, "scratching": {"threshold": 0.8}, "sewing_machine": {"threshold": 0.8}, "shatter": {"threshold": 0.8}, "sheep": {"threshold": 0.8}, "ship": {"threshold": 0.8}, "shofar": {"threshold": 0.8}, "shuffle": {"threshold": 0.8}, "shuffling_cards": {"threshold": 0.8}, "sidetone": {"threshold": 0.8}, "sigh": {"threshold": 0.8}, "silence": {"threshold": 0.8}, "sine_wave": {"threshold": 0.8}, "singing": {"threshold": 0.8}, "singing_bowl": {"threshold": 0.8}, "single-lens_reflex_camera": {"threshold": 0.8}, "sink": {"threshold": 0.8}, "siren": {"threshold": 0.8}, "sitar": {"threshold": 0.8}, "sizzle": {"threshold": 0.8}, "ska": {"threshold": 0.8}, "skateboard": {"threshold": 0.8}, "skidding": {"threshold": 0.8}, "slam": {"threshold": 0.8}, "slap": {"threshold": 0.8}, "sliding_door": {"threshold": 0.8}, "slosh": {"threshold": 0.8}, "smash": {"threshold": 0.8}, "smoke_detector": {"threshold": 0.8}, "snake": {"threshold": 0.8}, "snare_drum": {"threshold": 0.8}, "sneeze": {"threshold": 0.8}, "snicker": {"threshold": 0.8}, "sniff": {"threshold": 0.8}, "snoring": {"threshold": 0.8}, "snort": {"threshold": 0.8}, "sodeling": {"threshold": 0.8}, "sonar": {"threshold": 0.8}, "song": {"threshold": 0.8}, "soul_music": {"threshold": 0.8}, "sound_effect": {"threshold": 0.8}, "soundtrack_music": {"threshold": 0.8}, "speech": {"threshold": 0.8}, "splash": {"threshold": 0.8}, "splinter": {"threshold": 0.8}, "spray": {"threshold": 0.8}, "squawk": {"threshold": 0.8}, "squeak": {"threshold": 0.8}, "squeal": {"threshold": 0.8}, "squish": {"threshold": 0.8}, "static": {"threshold": 0.8}, "steam": {"threshold": 0.8}, "steam_whistle": {"threshold": 0.8}, "steel_guitar": {"threshold": 0.8}, "steelpan": {"threshold": 0.8}, "stir": {"threshold": 0.8}, "stomach_rumble": {"threshold": 0.8}, "stream": {"threshold": 0.8}, "string_section": {"threshold": 0.8}, "strum": {"threshold": 0.8}, "subway": {"threshold": 0.8}, "swing_music": {"threshold": 0.8}, "synthesizer": {"threshold": 0.8}, "synthetic_singing": {"threshold": 0.8}, "tabla": {"threshold": 0.8}, "tambourine": {"threshold": 0.8}, "tap": {"threshold": 0.8}, "tapping": {"threshold": 0.8}, "tearing": {"threshold": 0.8}, "techno": {"threshold": 0.8}, "telephone": {"threshold": 0.8}, "telephone_bell_ringing": {"threshold": 0.8}, "telephone_dialing": {"threshold": 0.8}, "television": {"threshold": 0.8}, "tender_music": {"threshold": 0.8}, "theme_music": {"threshold": 0.8}, "theremin": {"threshold": 0.8}, "throat_clearing": {"threshold": 0.8}, "throbbing": {"threshold": 0.8}, "thump": {"threshold": 0.8}, "thunder": {"threshold": 0.8}, "thunderstorm": {"threshold": 0.8}, "thunk": {"threshold": 0.8}, "tick": {"threshold": 0.8}, "tick-tock": {"threshold": 0.8}, "timpani": {"threshold": 0.8}, "tire_squeal": {"threshold": 0.8}, "toilet_flush": {"threshold": 0.8}, "tools": {"threshold": 0.8}, "toot": {"threshold": 0.8}, "toothbrush": {"threshold": 0.8}, "traditional_music": {"threshold": 0.8}, "traffic_noise": {"threshold": 0.8}, "train": {"threshold": 0.8}, "train_horn": {"threshold": 0.8}, "train_wheels_squealing": {"threshold": 0.8}, "train_whistle": {"threshold": 0.8}, "trance_music": {"threshold": 0.8}, "trickle": {"threshold": 0.8}, "trombone": {"threshold": 0.8}, "truck": {"threshold": 0.8}, "trumpet": {"threshold": 0.8}, "tubular_bells": {"threshold": 0.8}, "tuning_fork": {"threshold": 0.8}, "turkey": {"threshold": 0.8}, "typewriter": {"threshold": 0.8}, "typing": {"threshold": 0.8}, "ukulele": {"threshold": 0.8}, "vacuum_cleaner": {"threshold": 0.8}, "vehicle": {"threshold": 0.8}, "vibraphone": {"threshold": 0.8}, "vibration": {"threshold": 0.8}, "video_game_music": {"threshold": 0.8}, "violin": {"threshold": 0.8}, "vocal_music": {"threshold": 0.8}, "water": {"threshold": 0.8}, "water_tap": {"threshold": 0.8}, "waterfall": {"threshold": 0.8}, "waves": {"threshold": 0.8}, "wedding_music": {"threshold": 0.8}, "whack": {"threshold": 0.8}, "whale_vocalization": {"threshold": 0.8}, "wheeze": {"threshold": 0.8}, "whimper_dog": {"threshold": 0.8}, "whip": {"threshold": 0.8}, "whir": {"threshold": 0.8}, "whispering": {"threshold": 0.8}, "whistle": {"threshold": 0.8}, "whistling": {"threshold": 0.8}, "white_noise": {"threshold": 0.8}, "whoop": {"threshold": 0.8}, "whoosh": {"threshold": 0.8}, "wild_animals": {"threshold": 0.8}, "wind": {"threshold": 0.8}, "wind_chime": {"threshold": 0.8}, "wind_instrument": {"threshold": 0.8}, "wind_noise": {"threshold": 0.8}, "wood": {"threshold": 0.8}, "wood_block": {"threshold": 0.8}, "writing": {"threshold": 0.8}, "yell": {"threshold": 0.8}, "yip": {"threshold": 0.8}, "zing": {"threshold": 0.8}, "zipper": {"threshold": 0.8}, "zither": {"threshold": 0.8}}, "enabled_in_config": null, "num_threads": 2}, "birdseye": {"enabled": true, "mode": "objects", "restream": false, "width": 1280, "height": 720, "quality": 8, "inactivity_threshold": 30, "layout": {"scaling_factor": 2.0, "max_cameras": null}, "idle_heartbeat_fps": 0.0}, "detect": {"enabled": false, "height": null, "width": null, "fps": 5, "min_initialized": null, "max_disappeared": null, "stationary": {"interval": null, "threshold": null, "max_frames": {"default": null, "objects": {}}, "classifier": true}, "annotation_offset": 0}, "ffmpeg": {"path": "default", "global_args": ["-hide_banner", "-loglevel", "warning", "-threads", "2"], "hwaccel_args": "preset-vaapi", "input_args": "preset-rtsp-generic", "output_args": {"detect": ["-threads", "2", "-f", "rawvideo", "-pix_fmt", "yuv420p"], "record": "preset-record-generic-audio-aac"}, "retry_interval": 10.0, "apple_compatibility": false, "gpu": 0}, "live": {"streams": [], "height": 720, "quality": 8}, "motion": null, "objects": {"track": ["person"], "filters": {"amazon": {"min_area": 0, "max_area": 24000000, "min_ratio": 0, "max_ratio": 24000000, "threshold": 0.7, "min_score": 0.7, "mask": {}}, "dpd": {"min_area": 0, "max_area": 24000000, "min_ratio": 0, "max_ratio": 24000000, "threshold": 0.7, "min_score": 0.7, "mask": {}}, "an_post": {"min_area": 0, "max_area": 24000000, "min_ratio": 0, "max_ratio": 24000000, "threshold": 0.7, "min_score": 0.7, "mask": {}}, "royal_mail": {"min_area": 0, "max_area": 24000000, "min_ratio": 0, "max_ratio": 24000000, "threshold": 0.7, "min_score": 0.7, "mask": {}}, "ups": {"min_area": 0, "max_area": 24000000, "min_ratio": 0, "max_ratio": 24000000, "threshold": 0.7, "min_score": 0.7, "mask": {}}, "nzpost": {"min_area": 0, "max_area": 24000000, "min_ratio": 0, "max_ratio": 24000000, "threshold": 0.7, "min_score": 0.7, "mask": {}}, "license_plate": {"min_area": 0, "max_area": 24000000, "min_ratio": 0, "max_ratio": 24000000, "threshold": 0.7, "min_score": 0.7, "mask": {}}, "canada_post": {"min_area": 0, "max_area": 24000000, "min_ratio": 0, "max_ratio": 24000000, "threshold": 0.7, "min_score": 0.7, "mask": {}}, "postnord": {"min_area": 0, "max_area": 24000000, "min_ratio": 0, "max_ratio": 24000000, "threshold": 0.7, "min_score": 0.7, "mask": {}}, "postnl": {"min_area": 0, "max_area": 24000000, "min_ratio": 0, "max_ratio": 24000000, "threshold": 0.7, "min_score": 0.7, "mask": {}}, "face": {"min_area": 0, "max_area": 24000000, "min_ratio": 0, "max_ratio": 24000000, "threshold": 0.7, "min_score": 0.7, "mask": {}}, "dhl": {"min_area": 0, "max_area": 24000000, "min_ratio": 0, "max_ratio": 24000000, "threshold": 0.7, "min_score": 0.7, "mask": {}}, "fedex": {"min_area": 0, "max_area": 24000000, "min_ratio": 0, "max_ratio": 24000000, "threshold": 0.7, "min_score": 0.7, "mask": {}}, "usps": {"min_area": 0, "max_area": 24000000, "min_ratio": 0, "max_ratio": 24000000, "threshold": 0.7, "min_score": 0.7, "mask": {}}, "gls": {"min_area": 0, "max_area": 24000000, "min_ratio": 0, "max_ratio": 24000000, "threshold": 0.7, "min_score": 0.7, "mask": {}}, "purolator": {"min_area": 0, "max_area": 24000000, "min_ratio": 0, "max_ratio": 24000000, "threshold": 0.7, "min_score": 0.7, "mask": {}}}, "mask": {}, "genai": {"enabled": false, "use_snapshot": false, "prompt": "Analyze the sequence of images containing the {label}. Focus on the likely intent or behavior of the {label} based on its actions and movement, rather than describing its appearance or the surroundings. Consider what the {label} is doing, why, and what it might do next.", "object_prompts": {}, "objects": [], "required_zones": [], "debug_save_thumbnails": false, "send_triggers": {"tracked_object_end": true, "after_significant_updates": null}, "enabled_in_config": null}}, "record": {"enabled": false, "expire_interval": 60, "continuous": {"days": 0}, "motion": {"days": 0}, "detections": {"pre_capture": 5, "post_capture": 5, "retain": {"days": 10, "mode": "motion"}}, "alerts": {"pre_capture": 5, "post_capture": 5, "retain": {"days": 10, "mode": "motion"}}, "export": {"hwaccel_args": "auto"}, "preview": {"quality": "medium"}, "enabled_in_config": null}, "review": {"alerts": {"enabled": true, "labels": ["person", "car"], "required_zones": [], "enabled_in_config": null, "cutoff_time": 40}, "detections": {"enabled": true, "labels": null, "required_zones": [], "cutoff_time": 30, "enabled_in_config": null}, "genai": {"enabled": false, "alerts": true, "detections": false, "image_source": "preview", "additional_concerns": [], "debug_save_thumbnails": false, "enabled_in_config": null, "preferred_language": null, "activity_context_prompt": "### Normal Activity Indicators (Level 0)\n- Known/verified people in any zone at any time\n- People with pets in residential areas\n- Routine residential vehicle access during daytime/evening (6 AM - 10 PM): entering, exiting, loading/unloading items \u2014 normal commute and travel patterns\n- Deliveries or services during daytime/evening (6 AM - 10 PM): carrying packages to doors/porches, placing items, leaving\n- Services/maintenance workers with visible tools, uniforms, or service vehicles during daytime\n- Activity confined to public areas only (sidewalks, streets) without entering property at any time\n\n### Suspicious Activity Indicators (Level 1)\n- **Checking or probing vehicle/building access**: trying handles without entering, peering through windows, examining multiple vehicles, or possessing break-in tools \u2014 Level 1\n- **Unidentified person in private areas (driveways, near vehicles/buildings) during late night/early morning (11 PM - 5 AM)** \u2014 ALWAYS Level 1 regardless of activity or duration\n- Taking items that don't belong to them (packages, objects from porches/driveways)\n- Climbing or jumping fences/barriers to access property\n- Attempting to conceal actions or items from view\n- Prolonged loitering: remaining in same area without visible purpose throughout most of the sequence\n\n### Critical Threat Indicators (Level 2)\n- Holding break-in tools (crowbars, pry bars, bolt cutters)\n- Weapons visible (guns, knives, bats used aggressively)\n- Forced entry in progress\n- Physical aggression or violence\n- Active property damage or theft in progress\n\n### Assessment Guidance\nEvaluate in this order:\n\n1. **If person is verified/known** \u2192 Level 0 regardless of time or activity\n2. **If person is unidentified:**\n - Check time: If late night/early morning (11 PM - 5 AM) AND in private areas (driveways, near vehicles/buildings) \u2192 Level 1\n - Check actions: If probing access (trying handles without entering, checking multiple vehicles), taking items, climbing \u2192 Level 1\n - Otherwise, if daytime/evening (6 AM - 10 PM) with clear legitimate purpose (delivery, service, routine vehicle access) \u2192 Level 0\n3. **Escalate to Level 2 if:** Weapons, break-in tools, forced entry in progress, violence, or active property damage visible (escalates from Level 0 or 1)\n\nThe mere presence of an unidentified person in private areas during late night hours is inherently suspicious and warrants human review, regardless of what activity they appear to be doing or how brief the sequence is."}}, "snapshots": {"enabled": false, "timestamp": false, "bounding_box": true, "crop": false, "required_zones": [], "height": null, "retain": {"default": 10, "mode": "motion", "objects": {}}, "quality": 60}, "timestamp_style": {"position": "tl", "format": "%m/%d/%Y %H:%M:%S", "color": {"red": 255, "green": 255, "blue": 255}, "thickness": 2, "effect": null}, "audio_transcription": {"enabled": false, "language": "en", "device": "CPU", "model_size": "small", "live_enabled": false}, "classification": {"bird": {"enabled": false, "threshold": 0.9}, "custom": {}}, "semantic_search": {"enabled": false, "reindex": false, "model": "jinav1", "model_size": "small", "device": null}, "face_recognition": {"enabled": false, "model_size": "small", "unknown_score": 0.8, "detection_threshold": 0.7, "recognition_threshold": 0.9, "min_area": 750, "min_faces": 1, "save_attempts": 200, "blur_confidence_filter": true, "device": null}, "lpr": {"enabled": false, "model_size": "small", "detection_threshold": 0.7, "min_area": 1000, "recognition_threshold": 0.9, "min_plate_length": 4, "format": null, "match_distance": 1, "known_plates": {}, "enhancement": 0, "debug_save_plates": false, "device": null, "replace_rules": []}, "camera_groups": {"default": {"cameras": ["front_door", "backyard", "garage"], "icon": "generic", "order": 0}, "outdoor": {"cameras": ["front_door", "backyard"], "icon": "generic", "order": 1}}, "profiles": {}} \ No newline at end of file +{"version": null, "safe_mode": false, "environment_vars": {}, "logger": {"default": "info", "logs": {}}, "auth": {"enabled": true, "reset_admin_password": false, "cookie_name": "frigate_token", "cookie_secure": false, "session_length": 86400, "refresh_time": 1800, "failed_login_rate_limit": null, "trusted_proxies": [], "hash_iterations": 600000, "roles": {"admin": [], "viewer": []}, "admin_first_time_login": false}, "database": {"path": "/config/frigate.db"}, "go2rtc": {}, "mqtt": {"enabled": true, "host": "mqtt", "port": 1883, "topic_prefix": "frigate", "client_id": "frigate", "stats_interval": 60, "user": null, "password": null, "tls_ca_certs": null, "tls_client_cert": null, "tls_client_key": null, "tls_insecure": null, "qos": 0}, "notifications": {"enabled": false, "email": null, "cooldown": 0, "enabled_in_config": false}, "networking": {"ipv6": {"enabled": false}, "listen": {"internal": 5000, "external": 8971}}, "proxy": {"header_map": {"user": null, "role": null, "role_map": {}}, "logout_url": null, "auth_secret": null, "default_role": "viewer", "separator": ","}, "telemetry": {"network_interfaces": [], "stats": {"amd_gpu_stats": true, "intel_gpu_stats": true, "network_bandwidth": false, "intel_gpu_device": null}, "version_check": true}, "tls": {"enabled": true}, "ui": {"timezone": null, "time_format": "browser", "unit_system": "metric"}, "detectors": {"cpu": {"type": "cpu", "model": {"path": "/cpu_model.tflite", "labelmap_path": null, "width": 320, "height": 320, "labelmap": {}, "attributes_map": {"person": ["amazon", "face"], "car": ["amazon", "an_post", "canada_post", "dhl", "dpd", "fedex", "gls", "license_plate", "nzpost", "postnl", "postnord", "purolator", "royal_mail", "ups", "usps"], "motorcycle": ["license_plate"]}, "input_tensor": "nhwc", "input_pixel_format": "rgb", "input_dtype": "int", "model_type": "ssd"}, "model_path": null}}, "model": {"path": null, "labelmap_path": null, "width": 320, "height": 320, "labelmap": {}, "attributes_map": {"person": ["amazon", "face"], "car": ["amazon", "an_post", "canada_post", "dhl", "dpd", "fedex", "gls", "license_plate", "nzpost", "postnl", "postnord", "purolator", "royal_mail", "ups", "usps"], "motorcycle": ["license_plate"]}, "input_tensor": "nhwc", "input_pixel_format": "rgb", "input_dtype": "int", "model_type": "ssd", "all_attributes": ["amazon", "an_post", "canada_post", "dhl", "dpd", "face", "fedex", "gls", "license_plate", "nzpost", "postnl", "postnord", "purolator", "royal_mail", "ups", "usps"], "colormap": {}}, "genai": {}, "cameras": {"front_door": {"name": "front_door", "friendly_name": null, "enabled": true, "audio": {"enabled": false, "max_not_heard": 30, "min_volume": 500, "listen": ["bark", "fire_alarm", "speech", "yell"], "filters": {"bark": {"threshold": 0.8}, "fire_alarm": {"threshold": 0.8}, "speech": {"threshold": 0.8}, "yell": {"threshold": 0.8}}, "enabled_in_config": false, "num_threads": 2}, "audio_transcription": {"enabled": false, "enabled_in_config": false, "live_enabled": false}, "birdseye": {"enabled": true, "mode": "objects", "order": 0}, "detect": {"enabled": false, "height": 720, "width": 1280, "fps": 5, "min_initialized": 2, "max_disappeared": 25, "stationary": {"interval": 50, "threshold": 50, "max_frames": {"default": null, "objects": {}}, "classifier": true}, "annotation_offset": 0}, "face_recognition": {"enabled": false, "min_area": 750}, "ffmpeg": {"path": "default", "global_args": ["-hide_banner", "-loglevel", "warning", "-threads", "2"], "hwaccel_args": "preset-vaapi", "input_args": "preset-rtsp-generic", "output_args": {"detect": ["-threads", "2", "-f", "rawvideo", "-pix_fmt", "yuv420p"], "record": "preset-record-generic-audio-aac"}, "retry_interval": 10.0, "apple_compatibility": false, "gpu": 0, "inputs": [{"path": "rtsp://10.0.0.1:554/video", "roles": ["record", "detect"], "global_args": [], "hwaccel_args": [], "input_args": []}]}, "live": {"streams": {"front_door": "front_door"}, "height": 720, "quality": 8}, "lpr": {"enabled": false, "expire_time": 3, "min_area": 1000, "enhancement": 0}, "motion": {"enabled": true, "threshold": 30, "lightning_threshold": 0.8, "skip_motion_threshold": null, "improve_contrast": true, "contour_area": 10, "delta_alpha": 0.2, "frame_alpha": 0.01, "frame_height": 100, "mask": {}, "mqtt_off_delay": 30, "enabled_in_config": null}, "objects": {"track": ["person"], "filters": {"person": {"min_area": 0, "max_area": 24000000, "min_ratio": 0, "max_ratio": 24000000, "threshold": 0.7, "min_score": 0.5, "mask": {}}}, "mask": {}, "genai": {"enabled": false, "use_snapshot": false, "prompt": "Analyze the sequence of images containing the {label}. Focus on the likely intent or behavior of the {label} based on its actions and movement, rather than describing its appearance or the surroundings. Consider what the {label} is doing, why, and what it might do next.", "object_prompts": {}, "objects": [], "required_zones": [], "debug_save_thumbnails": false, "send_triggers": {"tracked_object_end": true, "after_significant_updates": null}, "enabled_in_config": false}}, "record": {"enabled": false, "expire_interval": 60, "continuous": {"days": 0}, "motion": {"days": 0}, "detections": {"pre_capture": 5, "post_capture": 5, "retain": {"days": 10, "mode": "motion"}}, "alerts": {"pre_capture": 5, "post_capture": 5, "retain": {"days": 10, "mode": "motion"}}, "export": {"hwaccel_args": "preset-vaapi", "max_concurrent": 3}, "preview": {"quality": "medium"}, "enabled_in_config": false}, "review": {"alerts": {"enabled": true, "labels": ["person", "car"], "required_zones": [], "enabled_in_config": true, "cutoff_time": 40}, "detections": {"enabled": true, "labels": null, "required_zones": [], "cutoff_time": 30, "enabled_in_config": true}, "genai": {"enabled": false, "alerts": true, "detections": false, "image_source": "preview", "additional_concerns": [], "debug_save_thumbnails": false, "enabled_in_config": false, "preferred_language": null, "activity_context_prompt": "### Normal Activity Indicators (Level 0)\n- Known/verified people in any zone at any time\n- People with pets in residential areas\n- Routine residential vehicle access during daytime/evening (6 AM - 10 PM): entering, exiting, loading/unloading items \u2014 normal commute and travel patterns\n- Deliveries or services during daytime/evening (6 AM - 10 PM): carrying packages to doors/porches, placing items, leaving\n- Services/maintenance workers with visible tools, uniforms, or service vehicles during daytime\n- Activity confined to public areas only (sidewalks, streets) without entering property at any time\n\n### Suspicious Activity Indicators (Level 1)\n- **Checking or probing vehicle/building access**: trying handles without entering, peering through windows, examining multiple vehicles, or possessing break-in tools \u2014 Level 1\n- **Unidentified person in private areas (driveways, near vehicles/buildings) during late night/early morning (11 PM - 5 AM)** \u2014 ALWAYS Level 1 regardless of activity or duration\n- Taking items that don't belong to them (packages, objects from porches/driveways)\n- Climbing or jumping fences/barriers to access property\n- Attempting to conceal actions or items from view\n- Prolonged loitering: remaining in same area without visible purpose throughout most of the sequence\n\n### Critical Threat Indicators (Level 2)\n- Holding break-in tools (crowbars, pry bars, bolt cutters)\n- Weapons visible (guns, knives, bats used aggressively)\n- Forced entry in progress\n- Physical aggression or violence\n- Active property damage or theft in progress\n\n### Assessment Guidance\nEvaluate in this order:\n\n1. **If person is verified/known** \u2192 Level 0 regardless of time or activity\n2. **If person is unidentified:**\n - Check time: If late night/early morning (11 PM - 5 AM) AND in private areas (driveways, near vehicles/buildings) \u2192 Level 1\n - Check actions: If probing access (trying handles without entering, checking multiple vehicles), taking items, climbing \u2192 Level 1\n - Otherwise, if daytime/evening (6 AM - 10 PM) with clear legitimate purpose (delivery, service, routine vehicle access) \u2192 Level 0\n3. **Escalate to Level 2 if:** Weapons, break-in tools, forced entry in progress, violence, or active property damage visible (escalates from Level 0 or 1)\n\nThe mere presence of an unidentified person in private areas during late night hours is inherently suspicious and warrants human review, regardless of what activity they appear to be doing or how brief the sequence is."}}, "semantic_search": {"triggers": {}}, "snapshots": {"enabled": false, "timestamp": false, "bounding_box": true, "crop": false, "required_zones": [], "height": null, "retain": {"default": 10, "mode": "motion", "objects": {}}, "quality": 60}, "timestamp_style": {"position": "tl", "format": "%m/%d/%Y %H:%M:%S", "color": {"red": 255, "green": 255, "blue": 255}, "thickness": 2, "effect": null}, "best_image_timeout": 60, "mqtt": {"enabled": true, "timestamp": true, "bounding_box": true, "crop": true, "height": 270, "required_zones": [], "quality": 70}, "notifications": {"enabled": false, "email": null, "cooldown": 0, "enabled_in_config": false}, "onvif": {"host": "", "port": 8000, "user": null, "password": null, "tls_insecure": false, "profile": null, "autotracking": {"enabled": false, "calibrate_on_startup": false, "zooming": "disabled", "zoom_factor": 0.3, "track": ["person"], "required_zones": [], "return_preset": "home", "timeout": 10, "movement_weights": [], "enabled_in_config": false}, "ignore_time_mismatch": false}, "type": "generic", "ui": {"order": 0, "dashboard": true, "review": true}, "webui_url": null, "profiles": {}, "zones": {}, "enabled_in_config": true}, "backyard": {"name": "backyard", "friendly_name": null, "enabled": true, "audio": {"enabled": false, "max_not_heard": 30, "min_volume": 500, "listen": ["bark", "fire_alarm", "speech", "yell"], "filters": {"bark": {"threshold": 0.8}, "fire_alarm": {"threshold": 0.8}, "speech": {"threshold": 0.8}, "yell": {"threshold": 0.8}}, "enabled_in_config": false, "num_threads": 2}, "audio_transcription": {"enabled": false, "enabled_in_config": false, "live_enabled": false}, "birdseye": {"enabled": true, "mode": "objects", "order": 0}, "detect": {"enabled": false, "height": 720, "width": 1280, "fps": 5, "min_initialized": 2, "max_disappeared": 25, "stationary": {"interval": 50, "threshold": 50, "max_frames": {"default": null, "objects": {}}, "classifier": true}, "annotation_offset": 0}, "face_recognition": {"enabled": false, "min_area": 750}, "ffmpeg": {"path": "default", "global_args": ["-hide_banner", "-loglevel", "warning", "-threads", "2"], "hwaccel_args": "preset-vaapi", "input_args": "preset-rtsp-generic", "output_args": {"detect": ["-threads", "2", "-f", "rawvideo", "-pix_fmt", "yuv420p"], "record": "preset-record-generic-audio-aac"}, "retry_interval": 10.0, "apple_compatibility": false, "gpu": 0, "inputs": [{"path": "rtsp://10.0.0.2:554/video", "roles": ["record", "detect"], "global_args": [], "hwaccel_args": [], "input_args": []}]}, "live": {"streams": {"backyard": "backyard"}, "height": 720, "quality": 8}, "lpr": {"enabled": false, "expire_time": 3, "min_area": 1000, "enhancement": 0}, "motion": {"enabled": true, "threshold": 30, "lightning_threshold": 0.8, "skip_motion_threshold": null, "improve_contrast": true, "contour_area": 10, "delta_alpha": 0.2, "frame_alpha": 0.01, "frame_height": 100, "mask": {}, "mqtt_off_delay": 30, "enabled_in_config": null}, "objects": {"track": ["person"], "filters": {"person": {"min_area": 0, "max_area": 24000000, "min_ratio": 0, "max_ratio": 24000000, "threshold": 0.7, "min_score": 0.5, "mask": {}}}, "mask": {}, "genai": {"enabled": false, "use_snapshot": false, "prompt": "Analyze the sequence of images containing the {label}. Focus on the likely intent or behavior of the {label} based on its actions and movement, rather than describing its appearance or the surroundings. Consider what the {label} is doing, why, and what it might do next.", "object_prompts": {}, "objects": [], "required_zones": [], "debug_save_thumbnails": false, "send_triggers": {"tracked_object_end": true, "after_significant_updates": null}, "enabled_in_config": false}}, "record": {"enabled": false, "expire_interval": 60, "continuous": {"days": 0}, "motion": {"days": 0}, "detections": {"pre_capture": 5, "post_capture": 5, "retain": {"days": 10, "mode": "motion"}}, "alerts": {"pre_capture": 5, "post_capture": 5, "retain": {"days": 10, "mode": "motion"}}, "export": {"hwaccel_args": "preset-vaapi", "max_concurrent": 3}, "preview": {"quality": "medium"}, "enabled_in_config": false}, "review": {"alerts": {"enabled": true, "labels": ["person", "car"], "required_zones": [], "enabled_in_config": true, "cutoff_time": 40}, "detections": {"enabled": true, "labels": null, "required_zones": [], "cutoff_time": 30, "enabled_in_config": true}, "genai": {"enabled": false, "alerts": true, "detections": false, "image_source": "preview", "additional_concerns": [], "debug_save_thumbnails": false, "enabled_in_config": false, "preferred_language": null, "activity_context_prompt": "### Normal Activity Indicators (Level 0)\n- Known/verified people in any zone at any time\n- People with pets in residential areas\n- Routine residential vehicle access during daytime/evening (6 AM - 10 PM): entering, exiting, loading/unloading items \u2014 normal commute and travel patterns\n- Deliveries or services during daytime/evening (6 AM - 10 PM): carrying packages to doors/porches, placing items, leaving\n- Services/maintenance workers with visible tools, uniforms, or service vehicles during daytime\n- Activity confined to public areas only (sidewalks, streets) without entering property at any time\n\n### Suspicious Activity Indicators (Level 1)\n- **Checking or probing vehicle/building access**: trying handles without entering, peering through windows, examining multiple vehicles, or possessing break-in tools \u2014 Level 1\n- **Unidentified person in private areas (driveways, near vehicles/buildings) during late night/early morning (11 PM - 5 AM)** \u2014 ALWAYS Level 1 regardless of activity or duration\n- Taking items that don't belong to them (packages, objects from porches/driveways)\n- Climbing or jumping fences/barriers to access property\n- Attempting to conceal actions or items from view\n- Prolonged loitering: remaining in same area without visible purpose throughout most of the sequence\n\n### Critical Threat Indicators (Level 2)\n- Holding break-in tools (crowbars, pry bars, bolt cutters)\n- Weapons visible (guns, knives, bats used aggressively)\n- Forced entry in progress\n- Physical aggression or violence\n- Active property damage or theft in progress\n\n### Assessment Guidance\nEvaluate in this order:\n\n1. **If person is verified/known** \u2192 Level 0 regardless of time or activity\n2. **If person is unidentified:**\n - Check time: If late night/early morning (11 PM - 5 AM) AND in private areas (driveways, near vehicles/buildings) \u2192 Level 1\n - Check actions: If probing access (trying handles without entering, checking multiple vehicles), taking items, climbing \u2192 Level 1\n - Otherwise, if daytime/evening (6 AM - 10 PM) with clear legitimate purpose (delivery, service, routine vehicle access) \u2192 Level 0\n3. **Escalate to Level 2 if:** Weapons, break-in tools, forced entry in progress, violence, or active property damage visible (escalates from Level 0 or 1)\n\nThe mere presence of an unidentified person in private areas during late night hours is inherently suspicious and warrants human review, regardless of what activity they appear to be doing or how brief the sequence is."}}, "semantic_search": {"triggers": {}}, "snapshots": {"enabled": false, "timestamp": false, "bounding_box": true, "crop": false, "required_zones": [], "height": null, "retain": {"default": 10, "mode": "motion", "objects": {}}, "quality": 60}, "timestamp_style": {"position": "tl", "format": "%m/%d/%Y %H:%M:%S", "color": {"red": 255, "green": 255, "blue": 255}, "thickness": 2, "effect": null}, "best_image_timeout": 60, "mqtt": {"enabled": true, "timestamp": true, "bounding_box": true, "crop": true, "height": 270, "required_zones": [], "quality": 70}, "notifications": {"enabled": false, "email": null, "cooldown": 0, "enabled_in_config": false}, "onvif": {"host": "", "port": 8000, "user": null, "password": null, "tls_insecure": false, "profile": null, "autotracking": {"enabled": false, "calibrate_on_startup": false, "zooming": "disabled", "zoom_factor": 0.3, "track": ["person"], "required_zones": [], "return_preset": "home", "timeout": 10, "movement_weights": [], "enabled_in_config": false}, "ignore_time_mismatch": false}, "type": "generic", "ui": {"order": 0, "dashboard": true, "review": true}, "webui_url": null, "profiles": {}, "zones": {}, "enabled_in_config": true}, "garage": {"name": "garage", "friendly_name": null, "enabled": true, "audio": {"enabled": false, "max_not_heard": 30, "min_volume": 500, "listen": ["bark", "fire_alarm", "speech", "yell"], "filters": {"bark": {"threshold": 0.8}, "fire_alarm": {"threshold": 0.8}, "speech": {"threshold": 0.8}, "yell": {"threshold": 0.8}}, "enabled_in_config": false, "num_threads": 2}, "audio_transcription": {"enabled": false, "enabled_in_config": false, "live_enabled": false}, "birdseye": {"enabled": true, "mode": "objects", "order": 0}, "detect": {"enabled": false, "height": 720, "width": 1280, "fps": 5, "min_initialized": 2, "max_disappeared": 25, "stationary": {"interval": 50, "threshold": 50, "max_frames": {"default": null, "objects": {}}, "classifier": true}, "annotation_offset": 0}, "face_recognition": {"enabled": false, "min_area": 750}, "ffmpeg": {"path": "default", "global_args": ["-hide_banner", "-loglevel", "warning", "-threads", "2"], "hwaccel_args": "preset-vaapi", "input_args": "preset-rtsp-generic", "output_args": {"detect": ["-threads", "2", "-f", "rawvideo", "-pix_fmt", "yuv420p"], "record": "preset-record-generic-audio-aac"}, "retry_interval": 10.0, "apple_compatibility": false, "gpu": 0, "inputs": [{"path": "rtsp://10.0.0.3:554/video", "roles": ["record", "detect"], "global_args": [], "hwaccel_args": [], "input_args": []}]}, "live": {"streams": {"garage": "garage"}, "height": 720, "quality": 8}, "lpr": {"enabled": false, "expire_time": 3, "min_area": 1000, "enhancement": 0}, "motion": {"enabled": true, "threshold": 30, "lightning_threshold": 0.8, "skip_motion_threshold": null, "improve_contrast": true, "contour_area": 10, "delta_alpha": 0.2, "frame_alpha": 0.01, "frame_height": 100, "mask": {}, "mqtt_off_delay": 30, "enabled_in_config": null}, "objects": {"track": ["person"], "filters": {"person": {"min_area": 0, "max_area": 24000000, "min_ratio": 0, "max_ratio": 24000000, "threshold": 0.7, "min_score": 0.5, "mask": {}}}, "mask": {}, "genai": {"enabled": false, "use_snapshot": false, "prompt": "Analyze the sequence of images containing the {label}. Focus on the likely intent or behavior of the {label} based on its actions and movement, rather than describing its appearance or the surroundings. Consider what the {label} is doing, why, and what it might do next.", "object_prompts": {}, "objects": [], "required_zones": [], "debug_save_thumbnails": false, "send_triggers": {"tracked_object_end": true, "after_significant_updates": null}, "enabled_in_config": false}}, "record": {"enabled": false, "expire_interval": 60, "continuous": {"days": 0}, "motion": {"days": 0}, "detections": {"pre_capture": 5, "post_capture": 5, "retain": {"days": 10, "mode": "motion"}}, "alerts": {"pre_capture": 5, "post_capture": 5, "retain": {"days": 10, "mode": "motion"}}, "export": {"hwaccel_args": "preset-vaapi", "max_concurrent": 3}, "preview": {"quality": "medium"}, "enabled_in_config": false}, "review": {"alerts": {"enabled": true, "labels": ["person", "car"], "required_zones": [], "enabled_in_config": true, "cutoff_time": 40}, "detections": {"enabled": true, "labels": null, "required_zones": [], "cutoff_time": 30, "enabled_in_config": true}, "genai": {"enabled": false, "alerts": true, "detections": false, "image_source": "preview", "additional_concerns": [], "debug_save_thumbnails": false, "enabled_in_config": false, "preferred_language": null, "activity_context_prompt": "### Normal Activity Indicators (Level 0)\n- Known/verified people in any zone at any time\n- People with pets in residential areas\n- Routine residential vehicle access during daytime/evening (6 AM - 10 PM): entering, exiting, loading/unloading items \u2014 normal commute and travel patterns\n- Deliveries or services during daytime/evening (6 AM - 10 PM): carrying packages to doors/porches, placing items, leaving\n- Services/maintenance workers with visible tools, uniforms, or service vehicles during daytime\n- Activity confined to public areas only (sidewalks, streets) without entering property at any time\n\n### Suspicious Activity Indicators (Level 1)\n- **Checking or probing vehicle/building access**: trying handles without entering, peering through windows, examining multiple vehicles, or possessing break-in tools \u2014 Level 1\n- **Unidentified person in private areas (driveways, near vehicles/buildings) during late night/early morning (11 PM - 5 AM)** \u2014 ALWAYS Level 1 regardless of activity or duration\n- Taking items that don't belong to them (packages, objects from porches/driveways)\n- Climbing or jumping fences/barriers to access property\n- Attempting to conceal actions or items from view\n- Prolonged loitering: remaining in same area without visible purpose throughout most of the sequence\n\n### Critical Threat Indicators (Level 2)\n- Holding break-in tools (crowbars, pry bars, bolt cutters)\n- Weapons visible (guns, knives, bats used aggressively)\n- Forced entry in progress\n- Physical aggression or violence\n- Active property damage or theft in progress\n\n### Assessment Guidance\nEvaluate in this order:\n\n1. **If person is verified/known** \u2192 Level 0 regardless of time or activity\n2. **If person is unidentified:**\n - Check time: If late night/early morning (11 PM - 5 AM) AND in private areas (driveways, near vehicles/buildings) \u2192 Level 1\n - Check actions: If probing access (trying handles without entering, checking multiple vehicles), taking items, climbing \u2192 Level 1\n - Otherwise, if daytime/evening (6 AM - 10 PM) with clear legitimate purpose (delivery, service, routine vehicle access) \u2192 Level 0\n3. **Escalate to Level 2 if:** Weapons, break-in tools, forced entry in progress, violence, or active property damage visible (escalates from Level 0 or 1)\n\nThe mere presence of an unidentified person in private areas during late night hours is inherently suspicious and warrants human review, regardless of what activity they appear to be doing or how brief the sequence is."}}, "semantic_search": {"triggers": {}}, "snapshots": {"enabled": false, "timestamp": false, "bounding_box": true, "crop": false, "required_zones": [], "height": null, "retain": {"default": 10, "mode": "motion", "objects": {}}, "quality": 60}, "timestamp_style": {"position": "tl", "format": "%m/%d/%Y %H:%M:%S", "color": {"red": 255, "green": 255, "blue": 255}, "thickness": 2, "effect": null}, "best_image_timeout": 60, "mqtt": {"enabled": true, "timestamp": true, "bounding_box": true, "crop": true, "height": 270, "required_zones": [], "quality": 70}, "notifications": {"enabled": false, "email": null, "cooldown": 0, "enabled_in_config": false}, "onvif": {"host": "", "port": 8000, "user": null, "password": null, "tls_insecure": false, "profile": null, "autotracking": {"enabled": false, "calibrate_on_startup": false, "zooming": "disabled", "zoom_factor": 0.3, "track": ["person"], "required_zones": [], "return_preset": "home", "timeout": 10, "movement_weights": [], "enabled_in_config": false}, "ignore_time_mismatch": false}, "type": "generic", "ui": {"order": 0, "dashboard": true, "review": true}, "webui_url": null, "profiles": {}, "zones": {}, "enabled_in_config": true}}, "audio": {"enabled": false, "max_not_heard": 30, "min_volume": 500, "listen": ["bark", "fire_alarm", "speech", "yell"], "filters": {"bark": {"threshold": 0.8}, "fire_alarm": {"threshold": 0.8}, "speech": {"threshold": 0.8}, "yell": {"threshold": 0.8}}, "enabled_in_config": null, "num_threads": 2}, "birdseye": {"enabled": true, "mode": "objects", "restream": false, "width": 1280, "height": 720, "quality": 8, "inactivity_threshold": 30, "layout": {"scaling_factor": 2.0, "max_cameras": null}, "idle_heartbeat_fps": 0.0}, "detect": {"enabled": false, "height": null, "width": null, "fps": 5, "min_initialized": null, "max_disappeared": null, "stationary": {"interval": null, "threshold": null, "max_frames": {"default": null, "objects": {}}, "classifier": true}, "annotation_offset": 0}, "ffmpeg": {"path": "default", "global_args": ["-hide_banner", "-loglevel", "warning", "-threads", "2"], "hwaccel_args": "preset-vaapi", "input_args": "preset-rtsp-generic", "output_args": {"detect": ["-threads", "2", "-f", "rawvideo", "-pix_fmt", "yuv420p"], "record": "preset-record-generic-audio-aac"}, "retry_interval": 10.0, "apple_compatibility": false, "gpu": 0}, "live": {"streams": [], "height": 720, "quality": 8}, "motion": null, "objects": {"track": ["person"], "filters": {"royal_mail": {"min_area": 0, "max_area": 24000000, "min_ratio": 0, "max_ratio": 24000000, "threshold": 0.7, "min_score": 0.7, "mask": {}}, "an_post": {"min_area": 0, "max_area": 24000000, "min_ratio": 0, "max_ratio": 24000000, "threshold": 0.7, "min_score": 0.7, "mask": {}}, "ups": {"min_area": 0, "max_area": 24000000, "min_ratio": 0, "max_ratio": 24000000, "threshold": 0.7, "min_score": 0.7, "mask": {}}, "postnord": {"min_area": 0, "max_area": 24000000, "min_ratio": 0, "max_ratio": 24000000, "threshold": 0.7, "min_score": 0.7, "mask": {}}, "dhl": {"min_area": 0, "max_area": 24000000, "min_ratio": 0, "max_ratio": 24000000, "threshold": 0.7, "min_score": 0.7, "mask": {}}, "postnl": {"min_area": 0, "max_area": 24000000, "min_ratio": 0, "max_ratio": 24000000, "threshold": 0.7, "min_score": 0.7, "mask": {}}, "usps": {"min_area": 0, "max_area": 24000000, "min_ratio": 0, "max_ratio": 24000000, "threshold": 0.7, "min_score": 0.7, "mask": {}}, "face": {"min_area": 0, "max_area": 24000000, "min_ratio": 0, "max_ratio": 24000000, "threshold": 0.7, "min_score": 0.7, "mask": {}}, "license_plate": {"min_area": 0, "max_area": 24000000, "min_ratio": 0, "max_ratio": 24000000, "threshold": 0.7, "min_score": 0.7, "mask": {}}, "dpd": {"min_area": 0, "max_area": 24000000, "min_ratio": 0, "max_ratio": 24000000, "threshold": 0.7, "min_score": 0.7, "mask": {}}, "amazon": {"min_area": 0, "max_area": 24000000, "min_ratio": 0, "max_ratio": 24000000, "threshold": 0.7, "min_score": 0.7, "mask": {}}, "fedex": {"min_area": 0, "max_area": 24000000, "min_ratio": 0, "max_ratio": 24000000, "threshold": 0.7, "min_score": 0.7, "mask": {}}, "canada_post": {"min_area": 0, "max_area": 24000000, "min_ratio": 0, "max_ratio": 24000000, "threshold": 0.7, "min_score": 0.7, "mask": {}}, "nzpost": {"min_area": 0, "max_area": 24000000, "min_ratio": 0, "max_ratio": 24000000, "threshold": 0.7, "min_score": 0.7, "mask": {}}, "gls": {"min_area": 0, "max_area": 24000000, "min_ratio": 0, "max_ratio": 24000000, "threshold": 0.7, "min_score": 0.7, "mask": {}}, "purolator": {"min_area": 0, "max_area": 24000000, "min_ratio": 0, "max_ratio": 24000000, "threshold": 0.7, "min_score": 0.7, "mask": {}}}, "mask": {}, "genai": {"enabled": false, "use_snapshot": false, "prompt": "Analyze the sequence of images containing the {label}. Focus on the likely intent or behavior of the {label} based on its actions and movement, rather than describing its appearance or the surroundings. Consider what the {label} is doing, why, and what it might do next.", "object_prompts": {}, "objects": [], "required_zones": [], "debug_save_thumbnails": false, "send_triggers": {"tracked_object_end": true, "after_significant_updates": null}, "enabled_in_config": null}}, "record": {"enabled": false, "expire_interval": 60, "continuous": {"days": 0}, "motion": {"days": 0}, "detections": {"pre_capture": 5, "post_capture": 5, "retain": {"days": 10, "mode": "motion"}}, "alerts": {"pre_capture": 5, "post_capture": 5, "retain": {"days": 10, "mode": "motion"}}, "export": {"hwaccel_args": "preset-vaapi", "max_concurrent": 3}, "preview": {"quality": "medium"}, "enabled_in_config": null}, "review": {"alerts": {"enabled": true, "labels": ["person", "car"], "required_zones": [], "enabled_in_config": null, "cutoff_time": 40}, "detections": {"enabled": true, "labels": null, "required_zones": [], "cutoff_time": 30, "enabled_in_config": null}, "genai": {"enabled": false, "alerts": true, "detections": false, "image_source": "preview", "additional_concerns": [], "debug_save_thumbnails": false, "enabled_in_config": null, "preferred_language": null, "activity_context_prompt": "### Normal Activity Indicators (Level 0)\n- Known/verified people in any zone at any time\n- People with pets in residential areas\n- Routine residential vehicle access during daytime/evening (6 AM - 10 PM): entering, exiting, loading/unloading items \u2014 normal commute and travel patterns\n- Deliveries or services during daytime/evening (6 AM - 10 PM): carrying packages to doors/porches, placing items, leaving\n- Services/maintenance workers with visible tools, uniforms, or service vehicles during daytime\n- Activity confined to public areas only (sidewalks, streets) without entering property at any time\n\n### Suspicious Activity Indicators (Level 1)\n- **Checking or probing vehicle/building access**: trying handles without entering, peering through windows, examining multiple vehicles, or possessing break-in tools \u2014 Level 1\n- **Unidentified person in private areas (driveways, near vehicles/buildings) during late night/early morning (11 PM - 5 AM)** \u2014 ALWAYS Level 1 regardless of activity or duration\n- Taking items that don't belong to them (packages, objects from porches/driveways)\n- Climbing or jumping fences/barriers to access property\n- Attempting to conceal actions or items from view\n- Prolonged loitering: remaining in same area without visible purpose throughout most of the sequence\n\n### Critical Threat Indicators (Level 2)\n- Holding break-in tools (crowbars, pry bars, bolt cutters)\n- Weapons visible (guns, knives, bats used aggressively)\n- Forced entry in progress\n- Physical aggression or violence\n- Active property damage or theft in progress\n\n### Assessment Guidance\nEvaluate in this order:\n\n1. **If person is verified/known** \u2192 Level 0 regardless of time or activity\n2. **If person is unidentified:**\n - Check time: If late night/early morning (11 PM - 5 AM) AND in private areas (driveways, near vehicles/buildings) \u2192 Level 1\n - Check actions: If probing access (trying handles without entering, checking multiple vehicles), taking items, climbing \u2192 Level 1\n - Otherwise, if daytime/evening (6 AM - 10 PM) with clear legitimate purpose (delivery, service, routine vehicle access) \u2192 Level 0\n3. **Escalate to Level 2 if:** Weapons, break-in tools, forced entry in progress, violence, or active property damage visible (escalates from Level 0 or 1)\n\nThe mere presence of an unidentified person in private areas during late night hours is inherently suspicious and warrants human review, regardless of what activity they appear to be doing or how brief the sequence is."}}, "snapshots": {"enabled": false, "timestamp": false, "bounding_box": true, "crop": false, "required_zones": [], "height": null, "retain": {"default": 10, "mode": "motion", "objects": {}}, "quality": 60}, "timestamp_style": {"position": "tl", "format": "%m/%d/%Y %H:%M:%S", "color": {"red": 255, "green": 255, "blue": 255}, "thickness": 2, "effect": null}, "audio_transcription": {"enabled": false, "language": "en", "device": "CPU", "model_size": "small", "live_enabled": false}, "classification": {"bird": {"enabled": false, "threshold": 0.9}, "custom": {}}, "semantic_search": {"enabled": false, "reindex": false, "model": "jinav1", "model_size": "small", "device": null}, "face_recognition": {"enabled": false, "model_size": "small", "unknown_score": 0.8, "detection_threshold": 0.7, "recognition_threshold": 0.9, "min_area": 750, "min_faces": 1, "save_attempts": 200, "blur_confidence_filter": true, "device": null}, "lpr": {"enabled": false, "model_size": "small", "detection_threshold": 0.7, "min_area": 1000, "recognition_threshold": 0.9, "min_plate_length": 4, "format": null, "match_distance": 1, "known_plates": {}, "enhancement": 0, "debug_save_plates": false, "device": null, "replace_rules": []}, "camera_groups": {"default": {"cameras": ["front_door", "backyard", "garage"], "icon": "generic", "order": 0}, "outdoor": {"cameras": ["front_door", "backyard"], "icon": "generic", "order": 1}}, "profiles": {}} \ No newline at end of file diff --git a/web/e2e/fixtures/mock-data/events.json b/web/e2e/fixtures/mock-data/events.json index a50c1d7bc7..fa698a9b41 100644 --- a/web/e2e/fixtures/mock-data/events.json +++ b/web/e2e/fixtures/mock-data/events.json @@ -1 +1 @@ -[{"id": "event-person-001", "label": "person", "sub_label": null, "camera": "front_door", "start_time": 1775487131.3863528, "end_time": 1775487161.3863528, "false_positive": false, "zones": ["front_yard"], "thumbnail": null, "has_clip": true, "has_snapshot": true, "retain_indefinitely": false, "plus_id": null, "model_hash": "abc123", "detector_type": "cpu", "model_type": "ssd", "data": {"top_score": 0.92, "score": 0.92, "region": [0.1, 0.1, 0.5, 0.8], "box": [0.2, 0.15, 0.45, 0.75], "area": 0.18, "ratio": 0.6, "type": "object", "description": "A person walking toward the front door", "average_estimated_speed": 1.2, "velocity_angle": 45.0, "path_data": [[[0.2, 0.5], 0.0], [[0.3, 0.5], 1.0]]}}, {"id": "event-car-001", "label": "car", "sub_label": null, "camera": "backyard", "start_time": 1775483531.3863528, "end_time": 1775483576.3863528, "false_positive": false, "zones": ["driveway"], "thumbnail": null, "has_clip": true, "has_snapshot": true, "retain_indefinitely": false, "plus_id": null, "model_hash": "def456", "detector_type": "cpu", "model_type": "ssd", "data": {"top_score": 0.87, "score": 0.87, "region": [0.3, 0.2, 0.9, 0.7], "box": [0.35, 0.25, 0.85, 0.65], "area": 0.2, "ratio": 1.25, "type": "object", "description": "A car parked in the driveway", "average_estimated_speed": 0.0, "velocity_angle": 0.0, "path_data": []}}, {"id": "event-person-002", "label": "person", "sub_label": null, "camera": "garage", "start_time": 1775479931.3863528, "end_time": 1775479951.3863528, "false_positive": false, "zones": [], "thumbnail": null, "has_clip": false, "has_snapshot": true, "retain_indefinitely": false, "plus_id": null, "model_hash": "ghi789", "detector_type": "cpu", "model_type": "ssd", "data": {"top_score": 0.78, "score": 0.78, "region": [0.0, 0.0, 0.6, 0.9], "box": [0.1, 0.05, 0.5, 0.85], "area": 0.32, "ratio": 0.5, "type": "object", "description": null, "average_estimated_speed": 0.5, "velocity_angle": 90.0, "path_data": [[[0.1, 0.4], 0.0]]}}] \ No newline at end of file +[{"id": "event-person-001", "label": "person", "sub_label": null, "camera": "front_door", "start_time": 1780677009.365581, "end_time": 1780677039.365581, "false_positive": false, "zones": ["front_yard"], "thumbnail": null, "has_clip": true, "has_snapshot": true, "retain_indefinitely": false, "plus_id": null, "model_hash": "abc123", "detector_type": "cpu", "model_type": "ssd", "data": {"top_score": 0.92, "score": 0.92, "region": [0.1, 0.1, 0.5, 0.8], "box": [0.2, 0.15, 0.45, 0.75], "area": 0.18, "ratio": 0.6, "type": "object", "description": "A person walking toward the front door", "average_estimated_speed": 1.2, "velocity_angle": 45.0, "path_data": [[[0.2, 0.5], 0.0], [[0.3, 0.5], 1.0]]}}, {"id": "event-car-001", "label": "car", "sub_label": null, "camera": "backyard", "start_time": 1780673409.365581, "end_time": 1780673454.365581, "false_positive": false, "zones": ["driveway"], "thumbnail": null, "has_clip": true, "has_snapshot": true, "retain_indefinitely": false, "plus_id": null, "model_hash": "def456", "detector_type": "cpu", "model_type": "ssd", "data": {"top_score": 0.87, "score": 0.87, "region": [0.3, 0.2, 0.9, 0.7], "box": [0.35, 0.25, 0.85, 0.65], "area": 0.2, "ratio": 1.25, "type": "object", "description": "A car parked in the driveway", "average_estimated_speed": 0.0, "velocity_angle": 0.0, "path_data": []}}, {"id": "event-person-002", "label": "person", "sub_label": null, "camera": "garage", "start_time": 1780669809.365581, "end_time": 1780669829.365581, "false_positive": false, "zones": [], "thumbnail": null, "has_clip": false, "has_snapshot": true, "retain_indefinitely": false, "plus_id": null, "model_hash": "ghi789", "detector_type": "cpu", "model_type": "ssd", "data": {"top_score": 0.78, "score": 0.78, "region": [0.0, 0.0, 0.6, 0.9], "box": [0.1, 0.05, 0.5, 0.85], "area": 0.32, "ratio": 0.5, "type": "object", "description": null, "average_estimated_speed": 0.5, "velocity_angle": 90.0, "path_data": [[[0.1, 0.4], 0.0]]}}] \ No newline at end of file diff --git a/web/e2e/fixtures/mock-data/exports.json b/web/e2e/fixtures/mock-data/exports.json index 9af04f45a8..7e6c787088 100644 --- a/web/e2e/fixtures/mock-data/exports.json +++ b/web/e2e/fixtures/mock-data/exports.json @@ -1 +1 @@ -[{"id": "export-001", "camera": "front_door", "name": "Front Door - Person Alert", "date": 1775490731.3863528, "video_path": "/exports/export-001.mp4", "thumb_path": "/exports/export-001-thumb.jpg", "in_progress": false, "export_case_id": null}, {"id": "export-002", "camera": "backyard", "name": "Backyard - Car Detection", "date": 1775483531.3863528, "video_path": "/exports/export-002.mp4", "thumb_path": "/exports/export-002-thumb.jpg", "in_progress": false, "export_case_id": "case-001"}, {"id": "export-003", "camera": "garage", "name": "Garage - In Progress", "date": 1775492531.3863528, "video_path": "/exports/export-003.mp4", "thumb_path": "/exports/export-003-thumb.jpg", "in_progress": true, "export_case_id": null}] \ No newline at end of file +[{"id": "export-001", "camera": "front_door", "name": "Front Door - Person Alert", "date": 1780680609.365581, "video_path": "/exports/export-001.mp4", "thumb_path": "/exports/export-001-thumb.jpg", "in_progress": false, "export_case_id": null}, {"id": "export-002", "camera": "backyard", "name": "Backyard - Car Detection", "date": 1780673409.365581, "video_path": "/exports/export-002.mp4", "thumb_path": "/exports/export-002-thumb.jpg", "in_progress": false, "export_case_id": "case-001"}, {"id": "export-003", "camera": "garage", "name": "Garage - In Progress", "date": 1780682409.365581, "video_path": "/exports/export-003.mp4", "thumb_path": "/exports/export-003-thumb.jpg", "in_progress": true, "export_case_id": null}] \ No newline at end of file diff --git a/web/e2e/fixtures/mock-data/review-summary.json b/web/e2e/fixtures/mock-data/review-summary.json index ba54df37c9..bb3afc2ea3 100644 --- a/web/e2e/fixtures/mock-data/review-summary.json +++ b/web/e2e/fixtures/mock-data/review-summary.json @@ -1 +1 @@ -{"2026-04-06": {"day": "2026-04-06", "reviewed_alert": 1, "reviewed_detection": 0, "total_alert": 2, "total_detection": 2}, "2026-04-05": {"day": "2026-04-05", "reviewed_alert": 3, "reviewed_detection": 2, "total_alert": 3, "total_detection": 4}} \ No newline at end of file +{"2026-06-05": {"day": "2026-06-05", "reviewed_alert": 1, "reviewed_detection": 0, "total_alert": 2, "total_detection": 2}, "2026-06-04": {"day": "2026-06-04", "reviewed_alert": 3, "reviewed_detection": 2, "total_alert": 3, "total_detection": 4}} \ No newline at end of file diff --git a/web/e2e/fixtures/mock-data/reviews.json b/web/e2e/fixtures/mock-data/reviews.json index 4930f01598..0b60850cfa 100644 --- a/web/e2e/fixtures/mock-data/reviews.json +++ b/web/e2e/fixtures/mock-data/reviews.json @@ -1 +1 @@ -[{"id": "review-alert-001", "camera": "front_door", "start_time": "2026-04-06T09:52:11.386353", "end_time": "2026-04-06T09:52:41.386353", "has_been_reviewed": false, "severity": "alert", "thumb_path": "/clips/front_door/review-alert-001-thumb.jpg", "data": {"audio": [], "detections": ["person-abc123"], "objects": ["person"], "sub_labels": [], "significant_motion_areas": [], "zones": ["front_yard"]}}, {"id": "review-alert-002", "camera": "backyard", "start_time": "2026-04-06T08:52:11.386353", "end_time": "2026-04-06T08:52:56.386353", "has_been_reviewed": true, "severity": "alert", "thumb_path": "/clips/backyard/review-alert-002-thumb.jpg", "data": {"audio": [], "detections": ["car-def456"], "objects": ["car"], "sub_labels": [], "significant_motion_areas": [], "zones": ["driveway"]}}, {"id": "review-detect-001", "camera": "garage", "start_time": "2026-04-06T07:52:11.386353", "end_time": "2026-04-06T07:52:31.386353", "has_been_reviewed": false, "severity": "detection", "thumb_path": "/clips/garage/review-detect-001-thumb.jpg", "data": {"audio": [], "detections": ["person-ghi789"], "objects": ["person"], "sub_labels": [], "significant_motion_areas": [], "zones": []}}, {"id": "review-detect-002", "camera": "front_door", "start_time": "2026-04-06T06:52:11.386353", "end_time": "2026-04-06T06:52:26.386353", "has_been_reviewed": false, "severity": "detection", "thumb_path": "/clips/front_door/review-detect-002-thumb.jpg", "data": {"audio": [], "detections": ["car-jkl012"], "objects": ["car"], "sub_labels": [], "significant_motion_areas": [], "zones": ["front_yard"]}}] \ No newline at end of file +[{"id": "review-alert-001", "camera": "front_door", "start_time": "2026-06-05T11:30:09.365581", "end_time": "2026-06-05T11:30:39.365581", "has_been_reviewed": false, "severity": "alert", "thumb_path": "/clips/front_door/review-alert-001-thumb.jpg", "data": {"audio": [], "detections": ["person-abc123"], "objects": ["person"], "sub_labels": [], "significant_motion_areas": [], "zones": ["front_yard"]}}, {"id": "review-alert-002", "camera": "backyard", "start_time": "2026-06-05T10:30:09.365581", "end_time": "2026-06-05T10:30:54.365581", "has_been_reviewed": true, "severity": "alert", "thumb_path": "/clips/backyard/review-alert-002-thumb.jpg", "data": {"audio": [], "detections": ["car-def456"], "objects": ["car"], "sub_labels": [], "significant_motion_areas": [], "zones": ["driveway"]}}, {"id": "review-detect-001", "camera": "garage", "start_time": "2026-06-05T09:30:09.365581", "end_time": "2026-06-05T09:30:29.365581", "has_been_reviewed": false, "severity": "detection", "thumb_path": "/clips/garage/review-detect-001-thumb.jpg", "data": {"audio": [], "detections": ["person-ghi789"], "objects": ["person"], "sub_labels": [], "significant_motion_areas": [], "zones": []}}, {"id": "review-detect-002", "camera": "front_door", "start_time": "2026-06-05T08:30:09.365581", "end_time": "2026-06-05T08:30:24.365581", "has_been_reviewed": false, "severity": "detection", "thumb_path": "/clips/front_door/review-detect-002-thumb.jpg", "data": {"audio": [], "detections": ["car-jkl012"], "objects": ["car"], "sub_labels": [], "significant_motion_areas": [], "zones": ["front_yard"]}}] \ No newline at end of file diff --git a/web/public/locales/en/config/cameras.json b/web/public/locales/en/config/cameras.json index 98e625abf7..dd7c7e0a58 100644 --- a/web/public/locales/en/config/cameras.json +++ b/web/public/locales/en/config/cameras.json @@ -29,7 +29,7 @@ }, "listen": { "label": "Listen types", - "description": "List of audio event types to detect (for example: bark, fire_alarm, scream, speech, yell)." + "description": "List of audio event types to detect (for example: bark, fire_alarm, speech, yell)." }, "filters": { "label": "Audio filters", @@ -156,7 +156,7 @@ "description": "FFmpeg settings including binary path, args, hwaccel options, and per-role output args.", "path": { "label": "FFmpeg path", - "description": "Path to the FFmpeg binary to use or a version alias (\"5.0\" or \"7.0\")." + "description": "Path to the FFmpeg binary to use or a version alias (\"7.0\" or \"8.0\")." }, "global_args": { "label": "FFmpeg global arguments", diff --git a/web/public/locales/en/config/global.json b/web/public/locales/en/config/global.json index 119d384e43..09facf0da3 100644 --- a/web/public/locales/en/config/global.json +++ b/web/public/locales/en/config/global.json @@ -547,7 +547,7 @@ }, "listen": { "label": "Listen types", - "description": "List of audio event types to detect (for example: bark, fire_alarm, scream, speech, yell)." + "description": "List of audio event types to detect (for example: bark, fire_alarm, speech, yell)." }, "filters": { "label": "Audio filters", @@ -683,7 +683,7 @@ "description": "FFmpeg settings including binary path, args, hwaccel options, and per-role output args.", "path": { "label": "FFmpeg path", - "description": "Path to the FFmpeg binary to use or a version alias (\"5.0\" or \"7.0\")." + "description": "Path to the FFmpeg binary to use or a version alias (\"7.0\" or \"8.0\")." }, "global_args": { "label": "FFmpeg global arguments", diff --git a/web/public/locales/en/views/settings.json b/web/public/locales/en/views/settings.json index a5edab9788..a40ce797dc 100644 --- a/web/public/locales/en/views/settings.json +++ b/web/public/locales/en/views/settings.json @@ -1914,6 +1914,9 @@ "resolutionHigh": "This detect resolution is higher than recommended and may cause increased resource usage without improving detection accuracy. A detect resolution at or below 1080p is recommended for most cameras.", "globalResolutionMultipleCameras": "A global detect resolution is set while multiple cameras are configured. Unless all cameras share the same resolution and aspect ratio, the detect width and height should be defined per camera to match each camera's native aspect ratio." }, + "ffmpeg": { + "hwaccelManualNotRecommended": "Manual hardware acceleration arguments are not recommended. Unless a specific requirement exists, select the preset that matches your hardware." + }, "objects": { "genaiNoDescriptionsProvider": "You must configure a GenAI provider with the 'descriptions' role for descriptions to be generated." }, diff --git a/web/src/components/config-form/section-configs/ffmpeg.ts b/web/src/components/config-form/section-configs/ffmpeg.ts index ee73f2e2bf..6f9cffad9e 100644 --- a/web/src/components/config-form/section-configs/ffmpeg.ts +++ b/web/src/components/config-form/section-configs/ffmpeg.ts @@ -22,6 +22,27 @@ const ffmpegArgsWidget = ( const ffmpeg: SectionConfigOverrides = { base: { sectionDocs: "/configuration/ffmpeg_presets", + fieldMessages: [ + { + key: "hwaccel-manual-not-recommended", + field: "hwaccel_args", + position: "after", + messageKey: "configMessages.ffmpeg.hwaccelManualNotRecommended", + severity: "warning", + condition: (ctx) => { + // Manual mode is active when hwaccel_args is an explicit args list + // or a non-preset string + const value = ctx.formData?.hwaccel_args; + if (Array.isArray(value)) { + return value.length > 0; + } + if (typeof value === "string") { + return !value.startsWith("preset-"); + } + return false; + }, + }, + ], fieldDocs: { hwaccel_args: "/configuration/ffmpeg_presets#hwaccel-presets", "inputs.hwaccel_args": "/configuration/ffmpeg_presets#hwaccel-presets", diff --git a/web/src/components/config-form/theme/templates/FieldTemplate.tsx b/web/src/components/config-form/theme/templates/FieldTemplate.tsx index 2ee91ae033..d9df9e8e0a 100644 --- a/web/src/components/config-form/theme/templates/FieldTemplate.tsx +++ b/web/src/components/config-form/theme/templates/FieldTemplate.tsx @@ -386,11 +386,14 @@ export function FieldTemplate(props: FieldTemplateProps) { const beforeContent = renderCustom(beforeSpec); const afterContent = renderCustom(afterSpec); - // Read field-level conditional messages from FieldMessagesContext + // Read field-level conditional messages from FieldMessagesContext. + // For multi-schema fields (anyOf/oneOf), FieldTemplate renders twice for + // the same path (wrapper + inner branch); skip the wrapper pass so the + // message isn't shown twice, mirroring how labels/descriptions dedupe. const fieldPathStr = pathSegments.join("."); - const fieldMessageSpecs = allFieldMessages.filter( - (m) => m.field === fieldPathStr, - ); + const fieldMessageSpecs = isMultiSchemaWrapper + ? [] + : allFieldMessages.filter((m) => m.field === fieldPathStr); const beforeMessages = fieldMessageSpecs.filter( (m) => (m.position ?? "before") === "before", );