[Config Support]: MQTT over websocket #14166
-
Describe the problem you are havingHi I have mosquitto running with websocket enabled
What do I need to enter in the Frigate config.mqtt object to get this working? mqtt:
host: ws://mqtt.lan.theautomation.nl
port: 80 mqtt:
host: mqtt.lan.theautomation.nl
port: 80 I expose mosquitto over port 80 via an ingress in my K8s cluster ---
apiVersion: apps/v1
kind: Deployment
metadata:
name: mosquitto
labels:
app: mosquitto
spec:
revisionHistoryLimit: 3
replicas: 1
strategy:
type: Recreate
selector:
matchLabels:
app: mosquitto
template:
metadata:
labels:
app: mosquitto
spec:
containers:
- name: mosquitto
image: "docker.io/eclipse-mosquitto:latest"
imagePullPolicy: Always
resources: {}
ports:
- name: mqtt
containerPort: 1883
protocol: TCP
- name: mqtt-websocket
containerPort: 9001
protocol: TCP
env:
- name: TZ
value: "Europe/Amsterdam"
livenessProbe:
tcpSocket:
port: 1883
initialDelaySeconds: 0
failureThreshold: 3
timeoutSeconds: 1
periodSeconds: 60
readinessProbe:
tcpSocket:
port: 1883
initialDelaySeconds: 0
failureThreshold: 3
timeoutSeconds: 1
periodSeconds: 60
startupProbe:
tcpSocket:
port: 1883
initialDelaySeconds: 0
failureThreshold: 30
timeoutSeconds: 1
periodSeconds: 5
volumeMounts:
- name: data
mountPath: /mosquitto/data
- name: config
mountPath: /mosquitto/config/mosquitto.conf
subPath: mosquitto.conf
volumes:
- name: data
persistentVolumeClaim:
claimName: pvc-iscsi-mosquitto-data
- name: config
configMap:
name: mosquitto-configmap
---
kind: Service
apiVersion: v1
metadata:
name: mosquitto
namespace: home-automation
labels:
app: mosquitto
spec:
selector:
app: mosquitto
type: ClusterIP
ports:
- name: mqtt
protocol: TCP
port: 1883
targetPort: mqtt
- name: mqtt-websocket
protocol: TCP
port: 9001
targetPort: mqtt-websocket
---
kind: Ingress
apiVersion: networking.k8s.io/v1
metadata:
name: mqtt-websocket
labels:
app: mosquitto
spec:
ingressClassName: nginx-private
rules:
- host: mqtt.lan.theautomation.nl
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: mosquitto
port:
name: mqtt-websocket I have tested the connection from Node-RED, from there I can successfully connect to the mosquitto instance over websocket. I hope some one can help me out here :) Version0.14.1-f4f3cfa Frigate config filetls:
enabled: false
auth:
enabled: True
mqtt:
host: mqtt.lan.theautomation.nl
port: 80
go2rtc:
streams:
backyard:
- rtsp://{FRIGATE_CAM01_RTSP_USER}:{FRIGATE_CAM01_RTSP_PASSWORD}@ipcam-01.lan.theautomation.nl:554/cam/realmonitor?channel=1&subtype=0
- "ffmpeg:backyard#audio=opus"
baby:
- rtsp://{FRIGATE_CAM02_RTSP_USER}:{FRIGATE_CAM02_RTSP_PASSWORD}@ipcam-02.lan.theautomation.nl/live0
- "ffmpeg:baby#audio=opus"
cameras:
backyard:
live:
stream_name: backyard
ffmpeg:
inputs:
- path: rtsp://127.0.0.1:8554/backyard
input_args: preset-rtsp-restream
roles:
- detect
- record
objects:
track:
- person
- cat
- dog
mask:
- 0,0,0,0.265,0.368,0.273,0.466,0.396,0.447,0.635,0.638,0.669,0.726,0.99,1,1,1,0
detect:
width: 1280
height: 720
fps: 5
record:
enabled: True
retain:
days: 3
mode: all
events:
retain:
default: 14
mode: motion
motion:
mask:
- 0,0.699,0.081,0.727,0.067,0.405,0.253,0.371,0.466,0.394,0.45,0.64,0.642,0.664,0.657,0.313,0.755,0.273,0.708,0.763,0.726,1,1,1,1,0,0,0
- 0.197,0.881,0.195,0.732,0.12,0.738,0.097,0.825,0.15,0.919
baby:
live:
stream_name: baby
ffmpeg:
inputs:
- path: rtsp://127.0.0.1:8554/baby
input_args: preset-rtsp-restream
roles:
- record
record:
enabled: True
retain:
days: 3
mode: all
review:
alerts:
labels: []
detections:
labels: []
motion:
mask:
- 0.715,0.015,0.716,0.053,0.979,0.05,0.979,0.01 Relevant Frigate log output2024-10-05 20:54:14.508175771 [2024-10-05 20:54:14] frigate.comms.mqtt ERROR : Unable to publish to backyard/all: client is not connected
2024-10-05 20:54:14.508260326 [2024-10-05 20:54:14] frigate.comms.mqtt ERROR : Unable to publish to backyard/motion: client is not connected
2024-10-05 20:54:15.428532719 [2024-10-05 20:54:15] frigate.comms.mqtt ERROR : Unable to publish to baby/all: client is not connected
2024-10-05 20:54:15.428592154 [2024-10-05 20:54:15] frigate.comms.mqtt ERROR : Unable to publish to baby/motion: client is not connected
2024-10-05 20:54:15.558635356 [2024-10-05 20:54:15] frigate.comms.mqtt ERROR : Unable to publish to events: client is not connected
2024-10-05 20:54:15.565230260 [2024-10-05 20:54:15] frigate.comms.mqtt ERROR : Unable to publish to baby/person: client is not connected
2024-10-05 20:54:15.565286042 [2024-10-05 20:54:15] frigate.comms.mqtt ERROR : Unable to publish to baby/all: client is not connected
2024-10-05 20:54:19.371517402 [INFO] Starting go2rtc healthcheck service...
2024-10-05 20:54:20.929341087 [2024-10-05 20:54:20] frigate.comms.mqtt ERROR : Unable to publish to events: client is not connected
2024-10-05 20:54:23.316974442 [2024-10-05 20:54:23] frigate.comms.mqtt ERROR : Unable to publish to events: client is not connected
2024-10-05 20:54:28.436629921 [2024-10-05 20:54:28] frigate.comms.mqtt ERROR : Unable to publish to events: client is not connected
2024-10-05 20:54:34.802764427 [2024-10-05 20:54:34] frigate.comms.mqtt ERROR : Unable to publish to events: client is not connected
2024-10-05 20:54:38.253805673 [2024-10-05 20:54:38] frigate.comms.mqtt ERROR : Unable to publish to stats: client is not connected
2024-10-05 20:54:39.351683222 [2024-10-05 20:54:39] frigate.comms.mqtt ERROR : Unable to publish to events: client is not connected
2024-10-05 20:54:48.462802707 10.42.0.1 - - [05/Oct/2024:20:54:48 +0000] "GET / HTTP/1.1" 200 6837 "-" "kube-probe/1.30" "-"
2024-10-05 20:54:48.462806893 10.42.0.1 - - [05/Oct/2024:20:54:48 +0000] "GET / HTTP/1.1" 200 6837 "-" "kube-probe/1.30" "-"
2024-10-05 20:54:49.903315273 [2024-10-05 20:54:49] frigate.comms.mqtt ERROR : Unable to publish to events: client is not connected
2024-10-05 20:54:54.086856666 [2024-10-05 20:54:54] frigate.comms.mqtt ERROR : Unable to publish to camera_activity: client is not connected Relevant go2rtc log output2024-10-05 20:54:09.373556970 [INFO] Preparing new go2rtc config...
2024-10-05 20:54:09.719300124 [INFO] Starting go2rtc...
2024-10-05 20:54:09.850079151 20:54:09.850 INF go2rtc platform=linux/amd64 revision=b2399f3 version=1.9.2
2024-10-05 20:54:09.850083951 20:54:09.850 INF config path=/dev/shm/go2rtc.yaml
2024-10-05 20:54:09.851486012 20:54:09.851 INF [rtsp] listen addr=:8554
2024-10-05 20:54:09.851573486 20:54:09.851 INF [api] listen addr=:1984
2024-10-05 20:54:09.851615712 20:54:09.851 INF [webrtc] listen addr=:8555/tcp
2024-10-05 20:54:19.371517402 [INFO] Starting go2rtc healthcheck service... Frigate stats{
"cameras": {
"baby": {
"audio_dBFS": 0,
"audio_rms": 0,
"camera_fps": 5,
"capture_pid": 420,
"detection_enabled": true,
"detection_fps": 0.1,
"ffmpeg_pid": 431,
"pid": 406,
"process_fps": 5,
"skipped_fps": 0
},
"backyard": {
"audio_dBFS": 0,
"audio_rms": 0,
"camera_fps": 5.1,
"capture_pid": 412,
"detection_enabled": true,
"detection_fps": 0,
"ffmpeg_pid": 428,
"pid": 405,
"process_fps": 5.1,
"skipped_fps": 0
}
},
"cpu_usages": {
"1": {
"cmdline": "/package/admin/s6/command/s6-svscan -d4 -- /run/service",
"cpu": "0.0",
"cpu_average": "0",
"mem": "0.0"
},
"15": {
"cmdline": "s6-supervise s6-linux-init-shutdownd",
"cpu": "0.0",
"cpu_average": "0",
"mem": "0.0"
},
"16": {
"cmdline": "/package/admin/s6-linux-init/command/s6-linux-init-shutdownd -c /run/s6/basedir -g 3000 -C -B",
"cpu": "0.0",
"cpu_average": "0",
"mem": "0.0"
},
"24": {
"cmdline": "s6-supervise s6rc-oneshot-runner",
"cpu": "0.0",
"cpu_average": "0",
"mem": "0.0"
},
"25": {
"cmdline": "s6-supervise s6rc-fdholder",
"cpu": "0.0",
"cpu_average": "0",
"mem": "0.0"
},
"26": {
"cmdline": "s6-supervise certsync",
"cpu": "0.0",
"cpu_average": "0",
"mem": "0.0"
},
"27": {
"cmdline": "s6-supervise certsync-log",
"cpu": "0.0",
"cpu_average": "0",
"mem": "0.0"
},
"28": {
"cmdline": "s6-supervise frigate",
"cpu": "0.0",
"cpu_average": "0",
"mem": "0.0"
},
"29": {
"cmdline": "s6-supervise frigate-log",
"cpu": "0.0",
"cpu_average": "0",
"mem": "0.0"
},
"30": {
"cmdline": "s6-supervise go2rtc",
"cpu": "0.0",
"cpu_average": "0",
"mem": "0.0"
},
"31": {
"cmdline": "s6-supervise go2rtc-healthcheck",
"cpu": "0.0",
"cpu_average": "0",
"mem": "0.0"
},
"32": {
"cmdline": "s6-supervise go2rtc-log",
"cpu": "0.0",
"cpu_average": "0",
"mem": "0.0"
},
"33": {
"cmdline": "s6-supervise nginx",
"cpu": "0.0",
"cpu_average": "0",
"mem": "0.0"
},
"34": {
"cmdline": "s6-supervise nginx-log",
"cpu": "0.0",
"cpu_average": "0",
"mem": "0.0"
},
"45": {
"cmdline": "/package/admin/s6-2.11.3.2/command/s6-fdholderd -1 -i data/rules",
"cpu": "0.0",
"cpu_average": "0",
"mem": "0.0"
},
"46": {
"cmdline": "/package/admin/s6/command/s6-ipcserverd -1 -- /package/admin/s6/command/s6-ipcserver-access -v0 -E -l0 -i data/rules -- /package/admin/s6/command/s6-sudod -t 30000 -- /package/admin/s6-rc/command/s6-rc-oneshot-run -l ../.. --",
"cpu": "0.0",
"cpu_average": "0",
"mem": "0.0"
},
"86": {
"cmdline": "s6-log -b -- T 1 n0 s10000000 T /dev/shm/logs/nginx",
"cpu": "0.0",
"cpu_average": "0",
"mem": "0.0"
},
"88": {
"cmdline": "s6-log -b -- T 1 n0 s10000000 T /dev/shm/logs/go2rtc",
"cpu": "0.0",
"cpu_average": "0",
"mem": "0.0"
},
"89": {
"cmdline": "s6-log -b -- T 1 n0 s10000000 T /dev/shm/logs/frigate",
"cpu": "0.0",
"cpu_average": "0",
"mem": "0.0"
},
"90": {
"cmdline": "s6-log -b -- T 1 n0 s10000000 T /dev/shm/logs/certsync",
"cpu": "0.0",
"cpu_average": "0",
"mem": "0.0"
},
"96": {
"cmdline": "/usr/local/go2rtc/bin/go2rtc -config=/dev/shm/go2rtc.yaml",
"cpu": "0.7",
"cpu_average": "0",
"mem": "0.3"
},
"104": {
"cmdline": "bash ./run.user go2rtc-healthcheck",
"cpu": "0.0",
"cpu_average": "0",
"mem": "0.0"
},
"108": {
"cmdline": "python3 -u -m frigate",
"cpu": "0.9",
"cpu_average": "1",
"mem": "3.6"
},
"127": {
"cmdline": "nginx: master process nginx",
"cpu": "0.0",
"cpu_average": "0",
"mem": "0.2"
},
"174": {
"cmdline": "nginx: worker process",
"cpu": "0.0",
"cpu_average": "0",
"mem": "0.1"
},
"175": {
"cmdline": "nginx: worker process",
"cpu": "0.0",
"cpu_average": "0",
"mem": "0.1"
},
"176": {
"cmdline": "nginx: worker process",
"cpu": "0.0",
"cpu_average": "0",
"mem": "0.1"
},
"177": {
"cmdline": "nginx: worker process",
"cpu": "0.0",
"cpu_average": "0",
"mem": "0.1"
},
"178": {
"cmdline": "nginx: cache manager process",
"cpu": "0.0",
"cpu_average": "0",
"mem": "0.1"
},
"311": {
"cmdline": "bash ./run.user certsync",
"cpu": "0.0",
"cpu_average": "0",
"mem": "0.0"
},
"329": {
"cmdline": "sleep 9999",
"cpu": "0.0",
"cpu_average": "0",
"mem": "0.0"
},
"344": {
"cmdline": "frigate.logger ",
"cpu": "0.1",
"cpu_average": "0",
"mem": "1.6"
},
"359": {
"cmdline": "frigate.recording_manager",
"cpu": "0.3",
"cpu_average": "0",
"mem": "2.0"
},
"361": {
"cmdline": "frigate.review_segment_manager",
"cpu": "0.1",
"cpu_average": "0",
"mem": "1.7"
},
"387": {
"cmdline": "/usr/bin/python3 -c from multiprocessing.resource_tracker import main;main(58)",
"cpu": "0.1",
"cpu_average": "0",
"mem": "0.1"
},
"388": {
"cmdline": "frigate.detector.cpu ",
"cpu": "0.8",
"cpu_average": "11",
"mem": "1.9"
},
"390": {
"cmdline": "frigate.output ",
"cpu": "0.5",
"cpu_average": "0",
"mem": "1.8"
},
"405": {
"cmdline": "frigate.process:backyard",
"cpu": "0.8",
"cpu_average": "0",
"mem": "2.1"
},
"406": {
"cmdline": "frigate.process:baby ",
"cpu": "1.1",
"cpu_average": "1",
"mem": "2.2"
},
"412": {
"cmdline": "frigate.capture:backyard",
"cpu": "0.9",
"cpu_average": "0",
"mem": "1.8"
},
"420": {
"cmdline": "frigate.capture:baby ",
"cpu": "1.6",
"cpu_average": "1",
"mem": "1.8"
},
"428": {
"cmdline": "ffmpeg -hide_banner -loglevel warning -threads 2 -user_agent FFmpeg Frigate/0.14.1-f4f3cfa -rtsp_transport tcp -timeout 5000000 -i rtsp://127.0.0.1:8554/backyard -f segment -segment_time 10 -segment_format mp4 -reset_timestamps 1 -strftime 1 -c copy -an /tmp/cache/backyard@%Y%m%d%H%M%S%z.mp4 -r 5 -vf fps=5,scale=1280:720 -threads 2 -f rawvideo -pix_fmt yuv420p pipe:",
"cpu": "15.3",
"cpu_average": "15",
"mem": "0.7"
},
"431": {
"cmdline": "ffmpeg -hide_banner -loglevel warning -threads 2 -user_agent FFmpeg Frigate/0.14.1-f4f3cfa -rtsp_transport tcp -timeout 5000000 -i rtsp://127.0.0.1:8554/baby -f segment -segment_time 10 -segment_format mp4 -reset_timestamps 1 -strftime 1 -c copy -an /tmp/cache/baby@%Y%m%d%H%M%S%z.mp4 -r 5 -vf fps=5,scale=1920:1080 -threads 2 -f rawvideo -pix_fmt yuv420p pipe:",
"cpu": "3.9",
"cpu_average": "3",
"mem": "0.7"
},
"498": {
"cmdline": "ffmpeg -threads 1 -f rawvideo -pix_fmt yuv420p -video_size 1280x720 -i pipe: -threads 1 -f mpegts -s 1280x720 -codec:v mpeg1video -q 8 -bf 0 pipe:",
"cpu": "0.0",
"cpu_average": "0",
"mem": "0.3"
},
"503": {
"cmdline": "ffmpeg -threads 1 -f rawvideo -pix_fmt yuv420p -video_size 1920x1080 -i pipe: -threads 1 -f mpegts -s 1280x720 -codec:v mpeg1video -q 8 -bf 0 pipe:",
"cpu": "0.0",
"cpu_average": "0",
"mem": "0.3"
},
"508": {
"cmdline": "ffmpeg -threads 1 -f rawvideo -pix_fmt yuv420p -video_size 1280x720 -i pipe: -threads 1 -f mpegts -s 1280x720 -codec:v mpeg1video -q 8 -bf 0 pipe:",
"cpu": "0.0",
"cpu_average": "0",
"mem": "0.2"
},
"2608": {
"cmdline": "sleep 30s",
"cpu": "0.0",
"cpu_average": "0",
"mem": "0.0"
},
"frigate.full_system": {
"cpu": "5.2",
"mem": "45.8"
}
},
"detection_fps": 0.1,
"detectors": {
"cpu": {
"detection_start": 0,
"inference_speed": 37.23,
"pid": 388
}
},
"processes": {
"go2rtc": {
"pid": 96
},
"logger": {
"pid": 344
},
"recording": {
"pid": 359
},
"review_segment": {
"pid": 361
}
},
"service": {
"last_updated": 1728162533,
"latest_version": "0.14.1",
"storage": {
"/dev/shm": {
"free": 1018.4,
"mount_type": "tmpfs",
"total": 1024,
"used": 5.6
},
"/media/frigate/clips": {
"free": 1890645,
"mount_type": "nfs4",
"total": 1938058,
"used": 47413
},
"/media/frigate/recordings": {
"free": 1890645,
"mount_type": "nfs4",
"total": 1938058,
"used": 47413
},
"/tmp/cache": {
"free": 1022.3,
"mount_type": "tmpfs",
"total": 1024,
"used": 1.7
}
},
"temperatures": {},
"uptime": 880,
"version": "0.14.1-f4f3cfa"
}
} Operating systemOther Install methodDocker Compose docker-compose file or Docker CLI command---
kind: PersistentVolume
apiVersion: v1
metadata:
name: pv-iscsi-frigate-config
labels:
app: frigate
spec:
storageClassName: "freenas-iscsi-manual-csi"
capacity:
storage: 1Gi
accessModes:
- ReadWriteOnce
persistentVolumeReclaimPolicy: Retain
csi:
driver: org.democratic-csi.node-manual
readOnly: false
fsType: xfs
volumeHandle: pv-iscsi-frigate-config
volumeAttributes:
portal: truenas-master.lan.theautomation.nl:3260
iqn: iqn.2005-10.org.freenas.ctl:frigate-config
lun: "0"
node_attach_driver: iscsi
provisioner_driver: node-manual
---
kind: PersistentVolume
apiVersion: v1
metadata:
name: pv-nfs-frigate-media
labels:
app: frigate
spec:
storageClassName: "freenas-nfs-manual-csi"
capacity:
storage: 200Gi
accessModes:
- ReadWriteMany
persistentVolumeReclaimPolicy: Retain
mountOptions:
- nfsvers=4
- nolock
- noatime
csi:
driver: org.democratic-csi.node-manual
readOnly: false
fsType: nfs
volumeHandle: pv-nfs-frigate-media
volumeAttributes:
server: truenas-master.lan.theautomation.nl
share: /mnt/ssd/containers/k8s/frigate-media
node_attach_driver: nfs
provisioner_driver: node-manual
---
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
name: pvc-iscsi-frigate-config
labels:
app: frigate
spec:
storageClassName: freenas-iscsi-manual-csi
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 1Gi
volumeName: pv-iscsi-frigate-config
---
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
name: pvc-nfs-frigate-media
namespace: home-automation
labels:
app: frigate
spec:
storageClassName: freenas-nfs-manual-csi
accessModes:
- ReadWriteMany
resources:
requests:
storage: 200Gi
volumeName: pv-nfs-frigate-media
---
apiVersion: bitnami.com/v1alpha1
kind: SealedSecret
metadata:
annotations:
sealedsecrets.bitnami.com/cluster-wide: "true"
creationTimestamp: null
name: frigate-secrets
spec:
encryptedData:
FRIGATE_CAM01_RTSP_PASSWORD: AgDoWK1xS72IQRQZvPOlVGoLkkHg38rOeGzoYDtU4RZkNtpLXpbYpemQ9NiXs32W8zJJq7Z15Etq3nh9fPIu8wxC6cq5hjVWpyiD+Ww5/9KHn/2ORnZM8qheahA/I9sdi8pp4QQGdCnLSJUspLxqGustJducrVkx0ipOaVA9FPydoCQjmMPbzqIpv8abs104R2Uco7qXKAeKYbcWE8GNI0VCFOe841ZbftPcZFf899IiRc0vyW+pfgpJlMtPrSqPF4JPrFcc++hiSrWZW9erfZczB4bYgR4/NfX2pTK38TBkGQIAiG7eeqKLGmxlWX3msizuyADAMU5ylkh1KvtUmjf3oFVZWs04wqKtlKRhJNgNy7y2A58TEd7jz1vOdScwc2CMDmR9RBMqDWW9GNafjB5CaLB6RcHQ4V1xGEOx8yZGJPlPgaXII/6wMdAxnsa9SkQg/2tX39mRL9BRc7y+APe0F8VG6+diqvnhfTVrsHOd1zciSLzx6ilO84Mbvf3JUDYGbexsqA7SvUShyTQ/IE17BUeGXL4nqpKQFrCLBF3/OpcWQfXNqtjpLj5NkUXz8XL48wE0FFitLv8gqjtb80ri+eeURhtkdoHYIquT6bOCopsk5TUn/jLma85euoCvflwbPIH0QDxvEhV2teDefj7/fOSzMjPYhsFH1qO3xrZdxeVDl3AgFOm79bFlGka1hbu+UgkAldeV2Q==
FRIGATE_CAM01_RTSP_USER: AgAeGVQt7QI77iEDclk7LRbxp8FS+D61gIC7QwW8dgb7kiGoHXCBQkOK2IWoEBRJS1ThL8OsxqDS5m+HAw90vNeykMCwpZwknnVbtR+bArKF6yIybk+3daXEvayTvvJ08k5p7keuawkNy3IzSU018+ZGOv8e3o/ZphMgYZEdp3xXuK/F0W1GgisgbI7c7gz2vt6K/DRoU1t31OiKszv/lvMP2uz+45c7HgjnqqYh/1+w4U1BbvGPe5NmEQM5qSvpv4V9gnbsLkvRhw2VcvbgDkkG23LdHffFQP6ctPxdiiiRVpI9kVGd66zHTJ38YYCXx08XBdViKRL9kdwsR4Pf0IypNjE44/l/s6kP6xYMaKJQHWpqqW9MhkBixCmelyKRy2eMJrI6Yx9HYlsdPFOu2tlLOp/MM/Lgj2LnFWf2szeNTch06hAzCKFED+HEskZX3Zr8QQzhWOpqBsXtlWgvLpvZsXrfS3voZ0n4kVCUJIXcv/wWsHYsJlKqbhiZoedHEXyaNAK59c41UHEpfQyTktjhP10mRKuTF5uSiR/N7PtgdGxSrmG2BbWfdsO+XO1dKmvlXisFRO+1AgjbosmXtcaITFyZ2hoRcOP/4GgnVKOPq8HhSMc+tAocCMLKe8uIqy5slJQMBZdLkdluPku3U1qoZmJhEjk5W3KdjT53VS3tc2iG/lBIZ20WVWyniOSywlm+iFm3Eg==
FRIGATE_CAM02_RTSP_PASSWORD: AgDW8k+EbURhswGkr/MoxDkxn99MzfyBlebVxXpL2f2C9lBMB3m1tnWycq0NuSTrjJYj3UOtkIiMFCz+hRYOvubqe1S9Wb0t8JeZrpvjJtSE7lc1PzBGwLCElrhShY4R5BfS/LW4jC/k5UIwM+epytql2F1aBrWtRMIqLlujI+rtvyWMNNgL458JZSyt2MaSaLOrd5zwpQLISTtMlKxTlsVzZUAV5MEM1DXmbpSBMyMDcKCI0ENkzFPAbwB59Z3rkQPPe/sk5G4VODJpXDa/mMdpTFYmJWWaXzEk9F5OsGgj7+pHFPQtEh7YxF7oheeeE40Ut7VwFDuEhjcwtJ8IggtdKd5LPC76dNbLawICCUSd674pXYAM4tkQM76h8FQtQsCDrKAdUMPi+cWCHPcgg8GVxR+YgsgUn0f0ZpkKeRWYLLg4udlCJkRQtBJTcFysafQRx+sb6RUm8eWna3NPxTM/ieGYi5W8W7Tdx1N/MBz5D3hrhSqfMxiJq4FOWJN8Vk8Jk4flB+NBiM3q/uMf4U0CuNTTwEYx5OP5F/CISH4nC+k8iQbuyqTtLHXcPGIuUwVePfujsQAu+twTgN167Xbl9KobDp7YKMCAigloKMhWRBLLHOVUdUXN8usdRAG8BJX/BntzO6epxDDTcNHW40UyWVQQrO/0AauFmFxs2FDmDqF+YxxV4o9gD5fyabU+5AUSR46degXaNUs3a/E=
FRIGATE_CAM02_RTSP_USER: AgAZLxQ8DjkQQO08in5R+TRFebzzytZjvWA3cn3B1+nsNcapa8JxaqIEQctmle8Zzf+f9qiQG52rbZ5vaF7pSZP8KmTr9trie/0OwhivqQ23Qxz0Uave0hosw94vNEyqj9R4ggTgKTMxrVPYXKvth4Q7vTBrq5TbXxiNtnzhv6oGUEbVJiT+1eHxj2axmkz3Hx08VK0ch1CArBFXp4YsL8QEwLR4La22+nuspsrKc9K1+04dDgHxSQOTXxTRe8faq0QDmf2CFqq2r/YyZZusFnyi6JV8F4UKB+0UIrfRfexoP5NUQG1jn3Pb4G6HGwf3lOMT9gssLgPXdHqAsQJpU/ePZFTlOqHHVs4jtgv9tezp9lvQ+Y0Jk67M0zcrufT5cp3XtS64wVrL3+iAV4ymlcDnzYIVsckooSVi/afTrtchRnAMUZGejYrS9EiVpPyFdplkqmmR9tk22hbgSHJyNdbFYY26rb4nfr8bFZfd1CPGkZq38uBdQfbDsCBUgRk+GyzKMMzzEigmYFCSA/uBafAyYmJ4EMPvkErOyCHq+boHJmCSwlRDvToqkDGsAyK1iAfNoyw3BvyJUpF6cwEXklHyo22q4aw7AnhRLa5/oOJoTeB06hok3OIfZGWxFo0Gk/60CGsNaEBfqUPhduEn7TI1KdhdvkN8R2hEGowrSabN+D0zEQBySsHcmf1pbWYsASa+fcVXkDt9QdjshM4=
template:
metadata:
annotations:
sealedsecrets.bitnami.com/cluster-wide: "true"
creationTimestamp: null
labels:
app: vaultwarden
name: frigate-secrets
type: Opaque
---
apiVersion: v1
kind: ConfigMap
metadata:
name: frigate
labels:
app: frigate
data:
config.yml: |
tls:
enabled: false
auth:
enabled: True
mqtt:
host: ws://mqtt.lan.theautomation.nl
port: 80
client_id: frigate2_docker
tls_insecure: true
# host: mosquitto.home-automation.svc.cluster.local
# port: 1883
go2rtc:
streams:
backyard:
- rtsp://{FRIGATE_CAM01_RTSP_USER}:{FRIGATE_CAM01_RTSP_PASSWORD}@ipcam-01.lan.theautomation.nl:554/cam/realmonitor?channel=1&subtype=0
- "ffmpeg:backyard#audio=opus"
baby:
- rtsp://{FRIGATE_CAM02_RTSP_USER}:{FRIGATE_CAM02_RTSP_PASSWORD}@ipcam-02.lan.theautomation.nl/live0
- "ffmpeg:baby#audio=opus"
cameras:
backyard:
live:
stream_name: backyard
ffmpeg:
inputs:
- path: rtsp://127.0.0.1:8554/backyard
input_args: preset-rtsp-restream
roles:
- detect
- record
objects:
track:
- person
- cat
- dog
mask:
- 0,0,0,0.265,0.368,0.273,0.466,0.396,0.447,0.635,0.638,0.669,0.726,0.99,1,1,1,0
detect:
width: 1280
height: 720
fps: 5
record:
enabled: True
retain:
days: 3
mode: all
events:
retain:
default: 14
mode: motion
motion:
mask:
- 0,0.699,0.081,0.727,0.067,0.405,0.253,0.371,0.466,0.394,0.45,0.64,0.642,0.664,0.657,0.313,0.755,0.273,0.708,0.763,0.726,1,1,1,1,0,0,0
- 0.197,0.881,0.195,0.732,0.12,0.738,0.097,0.825,0.15,0.919
baby:
live:
stream_name: baby
ffmpeg:
inputs:
- path: rtsp://127.0.0.1:8554/baby
input_args: preset-rtsp-restream
roles:
- record
record:
enabled: True
retain:
days: 3
mode: all
review:
alerts:
labels: []
detections:
labels: []
motion:
mask:
- 0.715,0.015,0.716,0.053,0.979,0.05,0.979,0.01
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: frigate
labels:
app: frigate
spec:
replicas: 1
revisionHistoryLimit: 3
strategy:
type: Recreate
selector:
matchLabels:
app: frigate
template:
metadata:
labels:
app: frigate
spec:
containers:
- name: frigate
image: "ghcr.io/blakeblackshear/frigate:stable"
imagePullPolicy: Always
securityContext:
privileged: true
ports:
- name: http
containerPort: 8971
protocol: TCP
- name: http-services
containerPort: 5000
protocol: TCP
- name: rtsp
containerPort: 8554
protocol: TCP
- name: webrtc-tcp
containerPort: 8555
protocol: TCP
- name: webrtc-udp
containerPort: 8555
protocol: UDP
- name: webrtc-api-tcp
containerPort: 1984
protocol: TCP
livenessProbe:
httpGet:
path: /
port: http-services
scheme: HTTP
initialDelaySeconds: 30
failureThreshold: 5
timeoutSeconds: 10
readinessProbe:
httpGet:
path: /
port: http-services
scheme: HTTP
initialDelaySeconds: 30
failureThreshold: 5
timeoutSeconds: 10
envFrom:
- secretRef:
name: frigate-secrets
optional: false
volumeMounts:
- name: configmap
mountPath: /config/config.yml
subPath: config.yml
- name: config
mountPath: /config
- name: media
mountPath: /media
- name: dshm
mountPath: /dev/shm
- name: tmp
mountPath: /tmp
resources: {}
volumes:
- name: configmap
configMap:
name: frigate
- name: config
persistentVolumeClaim:
claimName: pvc-iscsi-frigate-config
- name: media
persistentVolumeClaim:
claimName: pvc-nfs-frigate-media
- name: dshm
emptyDir:
medium: Memory
sizeLimit: 1Gi
- name: tmp
emptyDir:
medium: Memory
sizeLimit: 1Gi
---
apiVersion: v1
kind: Service
metadata:
name: frigate
labels:
app: frigate
spec:
selector:
app: frigate
type: ClusterIP
ipFamilyPolicy: SingleStack
ports:
- name: http
port: 8971
protocol: TCP
targetPort: http
- name: http-services
port: 5000
protocol: TCP
targetPort: http-services
- name: rtsp
port: 8554
protocol: TCP
targetPort: rtsp
- name: webrtc-tcp
protocol: TCP
port: 8555
targetPort: webrtc-tcp
- name: webrtc-udp
protocol: UDP
port: 8555
targetPort: webrtc-udp
- name: webrtc-api-tcp
protocol: TCP
port: 1984
targetPort: webrtc-api-tcp
---
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: frigate
labels:
app: frigate
spec:
ingressClassName: nginx-private
rules:
- host: frigate.lan.theautomation.nl
http:
paths:
- path: /
pathType: ImplementationSpecific
backend:
service:
name: frigate
port:
name: http
- host: frigate-webrtc-api.lan.theautomation.nl
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: frigate
port:
name: webrtc-api-tcp
tls:
- hosts:
- frigate.lan.theautomation.nl
- frigate-webrtc-api.lan.theautomation.nl
secretName: tls-wildcard-lan-theautomation-nl Object DetectorCPU (no coral) 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
-
Frigate's mqtt client does not use websockets, it uses the default Line 171 in 47ad0ca We don't have plans to change this, but you can either fork the code or just add |
Beta Was this translation helpful? Give feedback.
Frigate's mqtt client does not use websockets, it uses the default
tcp
. See the code:frigate/frigate/comms/mqtt.py
Line 171 in 47ad0ca
We don't have plans to change this, but you can either fork the code or just add
transport='websockets'
to the connect call, according to the paho mqtt docs. https://eclipse.dev/paho/files/paho.mqtt.python/html/client.html#paho.mqtt.client.Client.connect