# MQTT, webhooks, notifications

Fregata uses upstream Frigate's notification model unchanged. The
short version: **MQTT for live state, the HTTP API for snapshots
and clips, webhooks if you want a synchronous out-of-band push**.
This page covers the macOS-specific bits and points at the Frigate
docs for the rest.

## The data plane

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 JPEG to
   `~/Fregata/media/clips/<camera>-<event-id>.jpg`.
4. (If `record.enabled: true`) the event clip to
   `~/Fregata/media/clips/<camera>-<event-id>.mp4`, once the event
   ends.

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) or at `https://<host>:8971/api/...` (HTTPS + login) — see
[the Frigate HTTP API reference](https://docs.frigate.video/integrations/api/).

## MQTT setup

The minimal config block in `~/Fregata/config/config.yml`:

```yaml
mqtt:
  enabled: true
  host: 10.0.1.42
  port: 1883
  user: fregata
  password: {FREGATA_MQTT_PASSWORD}
  topic_prefix: frigate
  client_id: fregata
  stats_interval: 60
```

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](https://docs.frigate.video/integrations/mqtt).


## Push notifications to your phone

The cleanest path:

**Through Home Assistant.** The HA mobile app supports rich push
with images via `notify.mobile_app_*`. The
[Home Assistant guide](/guides/home-assistant/) shows the
automation template.

There's no first-party Frigate or Fregata mobile app and no plans for one. Notification delivery is best left to Home Assistant, or whichever of the dozens of solid push services you already
use.

## A note on macOS power management

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](/guides/network-and-remote-access/#mac-sleep-and-wake-on-demand)
for the full story (including the lid-close caveat on laptops).
