[Config Support]: Frigate 0.17 automatically generates a file named /config/go2rtc_homekit.yml #22397
-
Describe the problem you are havingFrigate 0.17 automatically generates a file named /config/go2rtc_homekit.yml, even when the user has never enabled HomeKit. This results in incorrect boolean values such as: Code Code Because of this, Frigate always generates go2rtc_homekit.yml. If the file is corrupted or empty, Frigate builds an invalid go2rtc config from it. The user’s own go2rtc: section in config.yaml is ignored. HomeKit cannot be disabled via YAML, only via environment variable. Symptoms Frigate logs show constant restarts of go2rtc. The file /config/go2rtc_homekit.yml is extremely small (e.g., 3 bytes). go2rtc always loads this file instead of the user’s config. Frigate appears unstable even though the user never enabled HomeKit. Workaround yaml
bash bash Frigate no longer generates the HomeKit config file. go2rtc stops crashing. The user’s own go2rtc configuration (if any) is used again. Frigate runs normally even without go2rtc. Version0.17.0-f0d69f7 Frigate config filemqtt:
enabled: true
host: 192.168.1.195
user: xx
password: xx
ffmpeg:
hwaccel_args:
- -hwaccel
- nvdec
- -hwaccel_output_format
- cuda
detectors:
coral1:
type: edgetpu
device: pci:0
coral2:
type: edgetpu
device: pci:1
coral3:
type: edgetpu
device: pci:2
coral4:
type: edgetpu
device: pci:3
coral5:
type: edgetpu
device: pci:4
coral6:
type: edgetpu
device: pci:5
coral7:
type: edgetpu
device: pci:6
model:
path: plus://9c641f67745f0cb4c1c07afdb950cda2
birdseye:
enabled: true
mode: continuous
width: 1920
height: 1080
record:
enabled: true
expire_interval: 720
sync_recordings: true
alerts:
retain:
days: 21
mode: active_objects
detections:
retain:
days: 21
mode: active_objects
continuous:
days: 6
motion:
days: 0
snapshots:
enabled: true
clean_copy: true
timestamp: true
retain:
default: 21
cameras:
NTEGRO:
ffmpeg:
hwaccel_args: preset-nvidia
inputs:
- path: rtsp://admin:Frigate2026@192.168.60.5:554/h265Preview_01_main
roles:
- detect
- record
objects:
track:
- person
- cat
- dog
- bicycle
motion:
threshold: 25
contour_area: 20
frame_alpha: 0.5
improve_contrast: true
zones:
zone_a2740b88:
coordinates:
0.006,0.327,0.216,0.294,0.455,0.348,0.532,0.33,0.536,0.214,0.38,0.174,-0.001,0.147
loitering_time: 0
friendly_name: AußerhalbGrundstück
NTEGRW:
ffmpeg:
hwaccel_args: preset-nvidia
inputs:
- path: rtsp://admin:Frigate2026@192.168.60.6:554/h265Preview_01_main
roles:
- detect
- record
objects:
track:
- person
- cat
- dog
- bicycle
motion:
threshold: 25
contour_area: 20
frame_alpha: 0.5
improve_contrast: true
STOGRO:
ffmpeg:
hwaccel_args: preset-nvidia
inputs:
- path: rtsp://admin:Frigate2026@192.168.60.7:554/h265Preview_01_main
roles:
- detect
- record
objects:
track:
- person
- cat
- dog
- bicycle
- bird
- deer
- fox
motion:
threshold: 25
contour_area: 20
frame_alpha: 0.5
improve_contrast: true
STOGEingang:
ffmpeg:
hwaccel_args: preset-nvidia
inputs:
- path: rtsp://admin:Frigate2026@192.168.60.8:554/h265Preview_01_main
roles:
- detect
- record
objects:
track:
- person
- cat
- dog
- bicycle
- bird
- deer
- fox
motion:
threshold: 25
contour_area: 20
frame_alpha: 0.5
improve_contrast: true
STOGRW:
ffmpeg:
hwaccel_args: preset-nvidia
inputs:
- path: rtsp://admin:Frigate2026@192.168.60.9:554/h265Preview_01_main
roles:
- detect
- record
objects:
track:
- person
- cat
- dog
- bicycle
- bird
motion:
threshold: 25
contour_area: 20
frame_alpha: 0.5
improve_contrast: true
WTEGRN:
ffmpeg:
hwaccel_args: preset-nvidia
inputs:
- path: rtsp://admin:Frigate2026@192.168.60.10:554/h265Preview_01_main
roles:
- detect
- record
objects:
track:
- person
- cat
- dog
- bicycle
motion:
threshold: 25
contour_area: 20
frame_alpha: 0.5
improve_contrast: true
OTOGRN:
ffmpeg:
hwaccel_args: preset-nvidia
inputs:
- path: rtsp://admin:Frigate2026@192.168.60.11:554/h265Preview_01_main
roles:
- detect
- record
objects:
track:
- person
- cat
- dog
- bicycle
motion:
threshold: 25
contour_area: 20
frame_alpha: 0.5
improve_contrast: true
OTEGRN:
ffmpeg:
hwaccel_args: preset-nvidia
inputs:
- path: rtsp://admin:Frigate2026@192.168.60.12:554/h265Preview_01_main
roles:
- detect
- record
objects:
track:
- person
- cat
- dog
- bicycle
- bird
motion:
threshold: 25
contour_area: 20
frame_alpha: 0.5
improve_contrast: true
Garage:
ffmpeg:
hwaccel_args: preset-nvidia
inputs:
- path: rtsp://admin:Frigate2026@192.168.60.13:554/h265Preview_01_main
roles:
- detect
- record
objects:
track:
- person
- cat
- dog
- bicycle
motion:
threshold: 25
contour_area: 20
frame_alpha: 0.5
improve_contrast: true
detect:
enabled: true
semantic_search:
enabled: true
model: jinav2
model_size: large
face_recognition:
enabled: true
# Optional: Minimum face distance score required to mark as a potential match (default: shown below)
unknown_score: 0.8
# Optional: Minimum face detection score required to detect a face (default: shown below)
# NOTE: This only applies when not running a Frigate+ model
detection_threshold: 0.7
# Optional: Minimum face distance score required to be considered a match (default: shown below)
recognition_threshold: 0.9
# Optional: Min area of detected face box to consider running face recognition (default: shown below)
min_area: 500
# Optional: Min face recognitions for the sub label to be applied to the person object (default: shown below)
min_faces: 1
# Optional: Number of images of recognized faces to save for training (default: shown below)
save_attempts: 200
# Optional: Apply a blur quality filter to adjust confidence based on the blur level of the image (default: shown below)
blur_confidence_filter: true
# Optional: Set the model size used face recognition. (default: shown below)
model_size: large
lpr:
enabled: true
# Optional: The device to run the models on (default: shown below)
# NOTE: See https://onnxruntime.ai/docs/execution-providers/ for more information
device: CPU
# Optional: Set the model size used for text detection. (default: shown below)
model_size: small
# Optional: License plate object confidence score required to begin running recognition (default: shown below)
detection_threshold: 0.7
# Optional: Minimum area of license plate to begin running recognition (default: shown below)
min_area: 1000
# Optional: Recognition confidence score required to add the plate to the object as a sub label (default: shown below)
recognition_threshold: 0.9
# Optional: Minimum number of characters a license plate must have to be added to the object as a sub label (default: shown below)
min_plate_length: 4
# Optional: Regular expression for the expected format of a license plate (default: shown below)
format: None
# Optional: Allow this number of missing/incorrect characters to still cause a detected plate to match a known plate
match_distance: 1
# Optional: Known plates to track (strings or regular expressions) (default: shown below)
known_plates:
Wolfgang:
- DH 41 176
Doris:
- DM 28 264
# Optional: Enhance the detected plate image with contrast adjustment and denoising (default: shown below)
# A value between 0 and 10. Higher values are not always better and may perform worse than lower values.
enhancement: 0
# Optional: Save plate images to /media/frigate/clips/lpr for debugging purposes (default: shown below)
debug_save_plates: false
# Optional: List of regex replacement rules to normalize detected plates (default: shown below)
# replace_rules: {}
classification:
bird:
enabled: true
# Optional: Minimum classification score required to be considered a match (default: shown below)
threshold: 0.9
version: 0.17-0Relevant Frigate log outputAttributeError: 'bool' object has no attribute 'get'
2026-03-12 10:08:22.356384819 [INFO] The go2rtc service exited with code 1 (by signal 0)
Traceback (most recent call last):
2026-03-12 10:08:23.623188295 [INFO] Preparing new go2rtc config...
File "/usr/local/go2rtc/create_config.py", line 77, in <module>
elif go2rtc_config["api"].get("origin") is None:
^^^^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'bool' object has no attribute 'get'
Traceback (most recent call last):
2026-03-12 10:08:23.932326239 [INFO] The go2rtc service exited with code 1 (by signal 0)
File "/usr/local/go2rtc/create_config.py", line 77, in <module>
2026-03-12 10:08:25.246103698 [INFO] Preparing new go2rtc config...
elif go2rtc_config["api"].get("origin") is None:
^^^^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'bool' object has no attribute 'get'
Traceback (most recent call last):
2026-03-12 10:08:25.537482054 [INFO] The go2rtc service exited with code 1 (by signal 0)
File "/usr/local/go2rtc/create_config.py", line 77, in <module>
2026-03-12 10:08:26.832886516 [INFO] Preparing new go2rtc config...
elif go2rtc_config["api"].get("origin") is None:
^^^^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'bool' object has no attribute 'get'
2026-03-12 10:08:27.147426242 [INFO] The go2rtc service exited with code 1 (by signal 0)
Traceback (most recent call last):
2026-03-12 10:08:28.452692156 [INFO] Preparing new go2rtc config...
File "/usr/local/go2rtc/create_config.py", line 77, in <module>
elif go2rtc_config["api"].get("origin") is None:
^^^^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'bool' object has no attribute 'get'
Traceback (most recent call last):
2026-03-12 10:08:28.753526126 [INFO] The go2rtc service exited with code 1 (by signal 0)
2026-03-12 10:08:30.041374289 [INFO] Preparing new go2rtc config...
File "/usr/local/go2rtc/create_config.py", line 77, in <module>
elif go2rtc_config["api"].get("origin") is None:
^^^^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'bool' object has no attribute 'get'
2026-03-12 10:08:30.315382834 [INFO] The go2rtc service exited with code 1 (by signal 0)
Traceback (most recent call last):
2026-03-12 10:08:31.601177342 [INFO] Preparing new go2rtc config...
File "/usr/local/go2rtc/create_config.py", line 77, in <module>
elif go2rtc_config["api"].get("origin") is None:
^^^^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'bool' object has no attribute 'get'
Traceback (most recent call last):
2026-03-12 10:08:31.912243344 [INFO] The go2rtc service exited with code 1 (by signal 0)
2026-03-12 10:08:33.209122379 [INFO] Preparing new go2rtc config...
File "/usr/local/go2rtc/create_config.py", line 77, in <module>
elif go2rtc_config["api"].get("origin") is None:
^^^^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'bool' object has no attribute 'get'
Traceback (most recent call last):
2026-03-12 10:08:33.505713691 [INFO] The go2rtc service exited with code 1 (by signal 0)
2026-03-12 10:08:34.788015599 [INFO] Preparing new go2rtc config...
File "/usr/local/go2rtc/create_config.py", line 77, in <module>
elif go2rtc_config["api"].get("origin") is None:
^^^^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'bool' object has no attribute 'get'
2026-03-12 10:08:35.095487391 [INFO] The go2rtc service exited with code 1 (by signal 0)
Traceback (most recent call last):
2026-03-12 10:08:36.434009732 [INFO] Preparing new go2rtc config...
File "/usr/local/go2rtc/create_config.py", line 77, in <module>
elif go2rtc_config["api"].get("origin") is None:
^^^^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'bool' object has no attribute 'get'
Traceback (most recent call last):
2026-03-12 10:08:36.771668521 [INFO] The go2rtc service exited with code 1 (by signal 0)
File "/usr/local/go2rtc/create_config.py", line 77, in <module>
2026-03-12 10:08:38.070975661 [INFO] Preparing new go2rtc config...
elif go2rtc_config["api"].get("origin") is None:
^^^^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'bool' object has no attribute 'get'
Traceback (most recent call last):
2026-03-12 10:08:38.377669762 [INFO] The go2rtc service exited with code 1 (by signal 0)
File "/usr/local/go2rtc/create_config.py", line 77, in <module>
2026-03-12 10:08:39.729008098 [INFO] Preparing new go2rtc config...
elif go2rtc_config["api"].get("origin") is None:
^^^^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'bool' object has no attribute 'get'
Traceback (most recent call last):
2026-03-12 10:08:39.995562668 [INFO] The go2rtc service exited with code 1 (by signal 0)Relevant go2rtc log outputinfo | 2026-03-12 10:46:06 | startup | Preparing new go2rtc config...
info | 2026-03-12 10:46:07 | startup | Starting go2rtc...
info | 2026-03-12 10:46:07 | startup | go2rtc platform=linux/amd64 revision=df95ce3 version=1.9.10
info | 2026-03-12 10:46:07 | startup | config path=/config/go2rtc_homekit.yml
info | 2026-03-12 10:46:07 | rtsp | listen addr=:8554
info | 2026-03-12 10:46:07 | api | listen addr=:1984
info | 2026-03-12 10:46:07 | webrtc | listen addr=:8555
info | 2026-03-12 10:46:16 | startup | Starting go2rtc healthcheck service...Frigate statscoral1
9.09ms
coral2
9.03ms
coral3
9.52ms
coral4
8.84ms
coral5
8.93ms
coral6
9.04ms
coral7
9.56ms
Temperatur des Detektors
coral1
53°C
coral2
51°C
coral3
55°C
coral4
52°C
coral5
53°C
coral6
55°C
coral7
61°C
CPU-Auslastung des Detektors
coral1
0.2%
coral2
0.2%
coral3
0.2%
coral4
0.2%
coral5
0.2%
coral6
0.2%
coral7
0.1%
Arbeitsspeichernutzung des Detektors
coral1
0.4%
coral2
0.4%
coral3
0.4%
coral4
0.4%
coral5
0.4%
coral6
0.4%
coral7
0.4%
GPUs
Hardwareinformationen
GPU Auslastung
NVIDIA T1000 8GB
17.0%
Grafikspeicher
NVIDIA T1000 8GB
39.23%
GPU Encoder
NVIDIA T1000 8GB
0.0%
GPU Decoder
NVIDIA T1000 8GB
64.0%
Andere Prozesse
CPU Auslastung für Prozess
Aufnahme
1.1%
Überprüfungsteil
0.5%
go2rtc
0.0%
Einbettungen
0.9%
Prozessspeicherauslastung
recording
0.4%
review segment
0.3%
go2rtc
0.0%
embeddings
5.4%Operating systemDebian Install methodDocker Compose docker-compose file or Docker CLI commandversion: "3.9"
services:
frigate:
container_name: frigate
image: ghcr.io/blakeblackshear/frigate:0.17.0
privileged: true
restart: unless-stopped
shm_size: "8192mb"
runtime: nvidia
devices:
- /dev/apex_0:/dev/apex_0
- /dev/apex_1:/dev/apex_1
- /dev/apex_2:/dev/apex_2
- /dev/apex_3:/dev/apex_3
- /dev/apex_4:/dev/apex_4
- /dev/apex_5:/dev/apex_5
- /dev/apex_6:/dev/apex_6
# - /dev/apex_7:/dev/apex_7
- /dev/dri/renderD128:/dev/dri/renderD128
device_cgroup_rules:
- 'c 120:* rmw'
volumes:
- /etc/localtime:/etc/localtime:ro
- /opt/frigate/config:/config
- /opt/frigate/media/clips:/media/frigate/clips
- /opt/frigate/media/exports:/media/frigate/exports
- /mnt/hdd/recordings:/media/frigate/recordings
- type: tmpfs
target: /tmp/cache
tmpfs:
size: 512000000
ports:
- "5000:5000"
- "8554:8554"
- "8555:8555/tcp"
- "8555:8555/udp"
environment:
FRIGATE_DISABLE_HOMEKIT: true
PLUS_API_KEY: "xx"
NVIDIA_VISIBLE_DEVICES: all
NVIDIA_DRIVER_CAPABILITIES: all
FRIGATE_RTSP_PASSWORD: "xx"
TZ: "Europe/Berlin"Object DetectorCoral Screenshots of the Frigate UI's System metrics pagesNo response Any other information that may be helpfulNo response |
Beta Was this translation helpful? Give feedback.
Replies: 2 comments 1 reply
-
|
The workaround you've identified is correct. When using features like face recognition, LPR, or semantic search in Frigate 0.17, go2rtc HomeKit configuration is implicitly enabled, and Frigate generates If this file becomes corrupted or malformed, go2rtc will crash repeatedly because it expects certain configuration values to be objects rather than booleans. (1) Your solution is the recommended approach:
environment:
FRIGATE_DISABLE_HOMEKIT: true
rm /config/go2rtc_homekit.yml
docker restart frigateThis behavior stems from how go2rtc handles HomeKit pairing data. The configuration file at Your docker-compose already includes This appears to be a bug in Frigate 0.17's handling of the HomeKit configuration file when it's malformed. Consider reporting this on the Frigate GitHub repository if you haven't already, as the config parser should handle empty or corrupted files more gracefully. 📚 Sources: Have another question? Just tag @inkeep. |
Beta Was this translation helpful? Give feedback.
-
|
Yes, Frigate 0.17 does generate This has already been fixed for 0.17.1 in #22346 In the meantime, you can just remove the contents of |
Beta Was this translation helpful? Give feedback.
My Reolink 810A and 811A are having issues with go2rtc. They run smoothly at 4K 25 FPS without this feature. I use 10 google tpu/pci.