## Summary - New `frigate_detector` ansible role deploys the [apple-silicon-detector](https://github.com/frigate-nvr/apple-silicon-detector) as a LaunchAgent on indri - Switches Frigate from ONNX CPU detector (~117ms) to ZMQ detector backed by CoreML/Neural Engine (~15ms) - Removes detect FPS cap (no longer needed with fast inference) - Updates Frigate docs and adds changelog fragment ## Deployment ### Phase 1: Deploy detector on indri (one-time setup + ansible) ```fish ssh indri 'git clone https://github.com/frigate-nvr/apple-silicon-detector.git ~/code/3rd/apple-silicon-detector' ssh indri 'cd ~/code/3rd/apple-silicon-detector && make install' mise run provision-indri -- --tags frigate_detector --check --diff # dry run mise run provision-indri -- --tags frigate_detector # apply ssh indri 'launchctl list mcquack.eblume.frigate-detector' # verify running ssh indri 'tail ~/Library/Logs/mcquack.frigate-detector.out.log' # verify bound ``` ### Phase 2: Test connectivity ```fish kubectl --context=minikube-indri -n frigate exec deploy/frigate -- nc -vz host.minikube.internal 5555 ``` ### Phase 3: Deploy Frigate config (branch workflow) ```fish argocd app set frigate --revision feature/frigate-zmq-detector && argocd app sync frigate ``` ### Phase 4: Post-deploy checks - [ ] Pod starts, no config errors - [ ] `/api/stats` shows detector type zmq, inference_speed ~15ms - [ ] detect_fps uncapped - [ ] Recordings and MQTT events flowing - [ ] After merge: `argocd app set frigate --revision main && argocd app sync frigate` 🤖 Generated with [Claude Code](https://claude.com/claude-code) Reviewed-on: https://forge.ops.eblu.me/eblume/blumeops/pulls/206
88 lines
2.3 KiB
YAML
88 lines
2.3 KiB
YAML
apiVersion: v1
|
|
kind: ConfigMap
|
|
metadata:
|
|
name: frigate-config
|
|
namespace: frigate
|
|
data:
|
|
config.yml: |
|
|
mqtt:
|
|
host: mosquitto.mqtt.svc.cluster.local
|
|
port: 1883
|
|
|
|
go2rtc:
|
|
streams:
|
|
# GableCam IP is reserved in UX7 DHCP config
|
|
gablecam:
|
|
- "rtsp://{FRIGATE_CAMERA_USER}:{FRIGATE_CAMERA_PASSWORD}@192.168.1.159:554/h264Preview_01_main"
|
|
gablecam_sub:
|
|
- "rtsp://{FRIGATE_CAMERA_USER}:{FRIGATE_CAMERA_PASSWORD}@192.168.1.159:554/h264Preview_01_sub"
|
|
|
|
cameras:
|
|
gablecam:
|
|
enabled: true
|
|
ffmpeg:
|
|
inputs:
|
|
- path: rtsp://127.0.0.1:8554/gablecam
|
|
input_args: preset-rtsp-restream
|
|
roles: [record]
|
|
- path: rtsp://127.0.0.1:8554/gablecam_sub
|
|
input_args: preset-rtsp-restream
|
|
roles: [detect]
|
|
detect:
|
|
enabled: true
|
|
stationary:
|
|
max_frames:
|
|
default: 1500
|
|
motion:
|
|
mask:
|
|
- 0.401,0.026,0.4,0.078,0.587,0.072,0.585,0.02
|
|
- 0.881,0.422,0.789,0.245,0.595,0.054,0.531,0,0.634,0,0.824,0.192,0.892,0.307
|
|
zones:
|
|
driveway_entrance:
|
|
coordinates: 0.85,0.366,0.735,0.344,0.681,0.2,0.795,0.255
|
|
objects: [car, dog, person]
|
|
driveway:
|
|
coordinates: 0.767,0.25,0.58,0.2,0.218,0.25,0.128,0.296,0.003,0.565,0.001,0.992,0.826,0.992,0.897,0.665,0.869,0.608,0.788,0.354
|
|
review:
|
|
alerts:
|
|
labels: [person, car]
|
|
required_zones:
|
|
- driveway_entrance
|
|
detections:
|
|
required_zones:
|
|
- driveway
|
|
- driveway_entrance
|
|
objects:
|
|
track: [person, car, dog, cat, bird]
|
|
|
|
detectors:
|
|
apple_silicon:
|
|
type: zmq
|
|
endpoint: tcp://host.minikube.internal:5555
|
|
|
|
model:
|
|
model_type: yolo-generic
|
|
width: 320
|
|
height: 320
|
|
input_tensor: nchw
|
|
input_dtype: float
|
|
path: /media/frigate/models/yolov9m.onnx
|
|
labelmap_path: /labelmap/coco-80.txt
|
|
|
|
record:
|
|
enabled: true
|
|
continuous:
|
|
days: 3
|
|
alerts:
|
|
retain:
|
|
days: 30
|
|
mode: active_objects
|
|
detections:
|
|
retain:
|
|
days: 14
|
|
mode: motion
|
|
|
|
snapshots:
|
|
enabled: true
|
|
retain:
|
|
default: 14
|