Skip to content

Notifications and MQTT

Fregata uses upstream Frigate’s notification model unchanged. The short version: Fregata Mobile or Frigate’s own web push for alerts on your phone, MQTT for live state, and the HTTP API for snapshots and clips. This page covers the macOS-specific bits and points at the Frigate docs for the rest.

There are a few ways to get an alert on your phone. Start with Fregata Mobile.

Fregata Mobile is a free, native app for iPhone, iPad and Apple Watch, made for Fregata and for Frigate. It is in public beta. Alerts arrive with the picture, then a short clip, straight from your own NVR. You don’t need Home Assistant or MQTT, and there is no account to create. Alerts are encrypted so Apple’s servers can never read them. Live view, recordings and snapshots come straight from your NVR, and your video never passes through our relay.

Under the hood it uses Frigate’s own web push, delivered through a relay we run. Notification filters let you choose which cameras, objects and zones may alert you, and the app also has Live Activities and widgets.

What you need:

  • An iPhone or iPad on iOS or iPadOS 26 or later. The Apple Watch app needs watchOS 26.
  • Port 8971, the one that asks for a sign-in. Over port 5000, live view works, but while sign-in is on (Fregata’s default) alerts registered there are silently dropped.
  • A way for the phone to reach your Mac when you’re out. See Fregata Mobile: away from home.

With an administrator account the app can set up the server side for you: tap Set up automatically, and it turns on notifications for your cameras, registers the phone and restarts Frigate once, after asking you. The steps, and the same changes by hand, are in Fregata Mobile’s Set up alerts page.

Frigate can also send web push notifications straight to a browser, or to a web app on a phone’s Home Screen, with no extra software. They are sent for review alerts only, not for detections. Frigate’s requirements, as they apply to Fregata:

  • You open the web UI over https while signed in. Fregata serves HTTPS on port 8971 by default, so use https://<mac-ip>:8971, not port 5000.
  • The browser has to trust the certificate. Fregata’s default certificate is self-signed, and a browser won’t register for notifications on a certificate the device doesn’t trust. Either install the certificate as trusted on that device, or put Fregata behind a reverse proxy with a real certificate.
  • Your Mac can reach the internet, because Frigate hands each message to the browser vendor’s push service (Google’s or Mozilla’s, for example).
  • Away from home, the Mac has to be reachable from outside. See Network & remote access.
  • On an iPhone or iPad, the web UI has to be added to the Home Screen (Share → Add to Home Screen) and opened from that icon.

Chrome shows the picture in the notification. Safari and Firefox show only a title and a message.

  1. In the web UI, go to Settings → Notifications → Notifications.
  2. Enter your address under Email. Frigate requires one, and passes it to the push service as the contact address.
  3. Under Cameras, turn on the cameras you want alerts from, then click Save.
  4. On each device that should get notifications, open the web UI over https on port 8971, sign in, open Settings → Notifications → Notifications and click Register This Device.
  5. Choose Restart Frigate from the tray. Frigate reads its list of registered devices only when it starts, so nothing is sent until it restarts.
  6. Click Send a test notification (an administrator sees it once the device is registered) to check that it arrives.

Frigate’s notifications documentation covers per-camera cooldowns and a troubleshooting FAQ for notifications that stop arriving.

If you already run Home Assistant, its mobile app supports rich push with images via notify.mobile_app_*. The Home Assistant guide shows the automation template. Home Assistant isn’t required for phone alerts, and it keeps working alongside Fregata Mobile.

Anything that can read Frigate’s MQTT topics can turn events into its own notifications. Fregata publishes the same topics as Frigate. See MQTT setup below.

When something happens on a camera, Fregata emits:

  1. An MQTT message on a per-camera, per-class topic.
  2. A new row in the SQLite events table.
  3. (If snapshots.enabled: true) a clean snapshot to ~/Fregata/media/clips/<camera>-<event-id>-clean.webp. The annotated version (timestamp, bounding box, object crop) isn’t stored separately — it’s rendered on request via the HTTP API’s /api/events/<event-id>/snapshot.jpg.
  4. (If record.enabled: true) the footage around the event stays in the normal recording segments under ~/Fregata/media/recordings/. There is no separate clip file: /api/events/<event-id>/clip.mp4 cuts the clip from those segments when you request it.

Frigate’s HTTP API exposes all of those to the rest of your stack — locally at http://127.0.0.1:5000/api/... (plain HTTP, unauthenticated, loopback-only — use 127.0.0.1, not localhost, or AirPlay Receiver can silently intercept it; see Network & remote access) or at https://<host>:8971/api/... (HTTPS + login) — see the Frigate HTTP API reference.

Connect Fregata to your MQTT broker from the web UI’s Settings, or by adding an mqtt block to ~/Fregata/config/config.yml:

  1. In the web UI, go to Settings → System → MQTT.
  2. Turn on Enable MQTT.
  3. Set MQTT host to your broker’s address (for example 10.0.1.42) and MQTT port to 1883.
  4. Set MQTT username (for example fregata) and MQTT password. To keep the password out of config.yml, first add a FRIGATE_MQTT_PASSWORD variable in the tray’s Settings → Environment Variables… and choose Restart Now (Frigate only sees new variables after a restart, and rejects a {FRIGATE_…} name it doesn’t know; see Environment variables). Then type {FRIGATE_MQTT_PASSWORD} as the password here.
  5. Optionally set Topic prefix and Client ID. Stats interval is under Advanced Settings.
  6. Click Save. MQTT changes always need a restart, so click Restart when the page asks, or choose Restart Frigate from the tray.

Fregata sets topic_prefix: frigate by default for compatibility with existing dashboards and the HA integration. Override it if you want — but if you do, remember to set the same topic_prefix in the HA integration config.

The topics you’ll typically care about:

Topic Payload When
frigate/events JSON event object New event, in-progress update, end
frigate/<camera>/<class> ON / OFF Class enters or leaves the frame
frigate/<camera>/<class>/snapshot JPEG bytes New event snapshot
frigate/<camera>/motion ON / OFF Motion start / stop
frigate/stats JSON system stats Every stats_interval seconds

For the full topic catalog see the Frigate MQTT reference.

Fregata holds a .idleSystemSleepDisabled activity assertion for the whole time Frigate is running, so the system stays awake on its own — MQTT publishes keep flowing without you needing to touch Energy Saver. See Mac sleep and Wake-On-Demand for the full story (including the lid-close caveat on laptops).