# Apple Home

Fregata works with the Apple Home app. Each camera you choose appears in
the Home app as a camera of its own, with live view at home and away,
snapshots, motion notifications, and talk through the camera's speaker. The Home app can also record your
cameras with HomeKit Secure Video, and a Fregata bridge can add sensors
and switches for Home app automations.

Apple Home is an extra way to see your cameras. Fregata keeps detecting,
recording and notifying as before, and its own recordings stay on your
Mac.

## How it works

Fregata runs an Apple Home service on your Mac, next to Frigate. The
service presents each camera you choose as an accessory on your local
network, and the Home app connects to it directly. Frigate tells the
service when there is motion, and the service tells the Home app.

When the Home app can't play a camera's stream as it is, Fregata converts
it on the Mac's Media Engine (its hardware video encoder) while you
watch. Each camera's Apple Home page says whether it needs a conversion,
and why.

Your home hub (an Apple TV or HomePod) does much of the rest: it lets you
watch away from home, and for HomeKit Secure Video it decides when to
record and stores the clips in iCloud.

Every Apple Home setting takes effect when Frigate restarts. After you
save one, the page says **Saved. Restart Frigate to apply the change.**,
with a **Restart Frigate** button.

## What you need

| To do this | You need |
| --- | --- |
| Add cameras, and watch them at home | An iPhone or iPad with the Home app, on the same network as the Mac while you add each camera |
| Get motion notifications, watch away from home, and run automations | A home hub: an Apple TV or HomePod set up as a home hub in the Home app |
| Record with HomeKit Secure Video | A home hub and an iCloud+ plan |
| Use the [newer HomeKit Secure Video](#the-newer-homekit-secure-video) | Every home hub on tvOS 27 or HomePod Software 27, a camera that sends H.265, and HomeKit Secure Video on for it |

HomeKit Secure Video is Apple's service, on Apple's terms. At the time of
writing, a 50 GB iCloud+ plan covers one camera, 200 GB up to five, and
2 TB or more any number. The Home app keeps the clips for 10 days, and
they don't count against your iCloud storage. See Apple's [HomeKit Secure
Video
page](https://support.apple.com/guide/icloud/icloud-homekit-secure-video-mme054c72692/icloud)
for the current terms.

The home hub also analyzes the recordings, only a few at a time, so a
home that records many cameras at once does best with an Apple TV 4K as
a hub. See [When the hub can't keep up](#when-the-hub-cant-keep-up).

:::note[Supported versions]
Apple Home in Fregata works with the Home app on iOS 27, iPadOS 27 and
macOS 27 or later, and with home hubs on tvOS 27 or HomePod Software 27 or
later.
:::

## Set up Apple Home

### 1. Turn on Apple Home

**In the Settings UI:**

1. Click Fregata's menu bar icon and choose **Open Frigate Web UI**.
2. Go to **Settings → Fregata (macOS) → Global configuration → Apple
   Home**.
3. Click **Turn on Apple Home**, then **Restart Frigate**.

**In config.yaml:**

```yaml
homekit:
  enabled: true
```

Then choose **Restart Frigate** from Fregata's menu bar icon.

Once Frigate has restarted, the page says **The Apple Home service is
running**.

If macOS asks whether Fregata may find devices on your local network,
allow it. The Home app can't find your cameras without it.

### 2. Choose the cameras to show

**In the Settings UI:**

1. On the same page, under **Cameras**, turn on the switch next to each
   camera you want in the Home app.
2. Click **Save**, then **Restart Frigate**.

You can also do this from a camera's own page: go to **Settings →
Fregata (macOS) → Camera configuration → Apple Home**, pick the camera in
the selector at the top, turn on **Show this camera in Apple Home**, and
click **Save**.

**In config.yaml:**

```yaml
cameras:
  front_door:
    homekit:
      enabled: true
```

Then restart Frigate.

After the restart, each camera you chose shows **Waiting for the Home
app**, and Fregata's menu bar menu has an **Apple Home** line that shows
the state at a glance (see [The menu bar's Apple Home
line](#the-menu-bars-apple-home-line)). A camera marked **Can't be shown**
says why. The usual reasons:

- **Its name.** Apple Home takes camera names of up to 64 letters,
  digits, hyphens and underscores. Rename the camera to show it.
- **go2rtc's RTSP server is off** (`go2rtc.rtsp.listen`). Live view in
  the Home app needs it.
- **It has no stream.** The camera has no go2rtc stream, and no record
  input to make one from. Add a go2rtc stream for it in **Settings →
  System → go2rtc streams**.

### 3. Add each camera to the Home app

1. On the **Apple Home** page, click **Add to the Home app** next to the
   camera. Its QR code and setup code appear. (The camera's own Apple
   Home page shows them too, under **The Home app**.)
2. On your iPhone or iPad, open the Home app, tap **+**, then **Add
   Accessory**.
3. Scan the QR code. Or tap **More options**, choose the camera, and
   enter its setup code.
4. The Home app calls the camera an **Uncertified Accessory**. Tap **Add
   Anyway**.
5. Choose a room and a name for the camera, and finish.

The camera's label on the Apple Home page changes to **In the Home app**,
and its picture appears in the Home app.

A few things to know:

- There's no link that opens the Home app at the right place: scan the QR
  code, or type the setup code.
- Treat a setup code like a password. A screenshot of a camera's page
  shows it, so crop it out of anything you share.
- After too many wrong setup codes, the camera blocks new pairings and is
  marked **Too many wrong codes**. Use [Reset
  pairing](#reset-a-cameras-pairing) to start again.
- You can rename the camera in the Home app at any time.

## Live view

### At home

The Home app plays a camera's stream as it is whenever it can. When it
can't, Fregata converts the stream on the Media Engine while you watch.
A regular camera's live view is H.264, at up to 1080p, so Fregata
converts, for example:

- an H.264 stream with more than one slice per picture, which the Home
  app can't play;
- an H.265 stream, unless the camera uses the [newer HomeKit Secure
  Video](#the-newer-homekit-secure-video);
- audio in a format the Home app doesn't play.

The camera's Apple Home page says which, under **Live view**: either
**The Home app plays this camera's stream as it is**, or what Fregata
converts, and why. Fregata checks each camera's stream when Frigate
starts. **Re-check** checks it again, lists what it found (**Video**,
**Slices per picture**, **Pixel format**, **Picture size**, **Audio**),
and says whether anything changed; if it did, restart Frigate to use
it.

**Keyframes decide how fast live view starts.** Live view starts at the
camera's next keyframe, so a camera that sends one every 10 seconds can
take several seconds to show a picture, and the Home app may give up
first. The page shows the interval it measured (**The camera sends a
keyframe every … s.**) and warns when it is too long. In the camera's own
settings, set the keyframe (I-frame) interval to 2 seconds or less: at 20
frames per second, that is an interval of 40 frames or fewer.

After a Frigate restart, live view comes back by itself within about 20
seconds, and the cameras stay in the Home app.

### Away from home

Live view away from home needs a home hub. You don't need to forward any
ports or set up remote access on the Mac.

**A regular camera** is relayed by your home hub, as a copy sized for a
phone connection. Live view starts at 640x360. About 8
seconds later the iPhone usually asks for 1280x720, and Fregata switches
within a couple of seconds, with a brief blip. The iPhone may switch back
and forth as its estimate of its connection changes. Away from home, a
regular camera always plays one of these copies, never the camera's own
stream.

**A camera of the [newer HomeKit Secure
Video](#the-newer-homekit-secure-video)** sends live view to Apple's relay
servers over the internet, rather than through your hub. Fregata offers a
copy the iPhone's connection can take: first 1080p at up to 1800 kbps
for a camera of 1080p or more, then 720p at up to 800 kbps once the
iPhone turns 1080p down, then 360p at 15 frames per second and up to 190
kbps if it turns 720p down twice in a row. The iPhone decides what its
connection takes.

Two quirks:

- If you move from Wi-Fi to cellular while a camera is open, the Home app
  waits for a timeout before it plays that camera again. It then plays by
  itself.
- On the newer kind, the first camera you open after the iPhone moves to
  cellular may not play at the first try. Open it again.

## Sound

Fregata sends each camera's audio to the Home app, for live view and for
HomeKit Secure Video recordings, and converts it when the Home app can't
play it as it is. To leave a camera's audio out:

**In the Settings UI:**

1. Go to **Settings → Fregata (macOS) → Camera configuration → Apple
   Home** and pick the camera.
2. Under **Motion in the Home app**, turn off **Send the camera's audio to
   the Home app**.
3. Click **Save**, then **Restart Frigate**.

**In config.yaml:**

```yaml
cameras:
  front_door:
    homekit:
      audio: false   # default: true
```

With the audio off, live view is silent and recorded clips are kept with
no sound. The Home app's own audio recording setting for the camera also
decides whether its clips have sound.

### Talk through the camera

When a camera has a speaker, the Home app's talk button plays your voice
through it, at home and away from home. Fregata reaches the speaker the way
Frigate's own live view does, through the camera's speaker channel in
go2rtc (its backchannel), so a camera Frigate can talk through can talk
from the Home app too. Fregata checks each camera for a speaker channel
when Frigate starts, and only a camera that has one shows the talk button.
A camera of the newer HomeKit Secure Video always shows it, because the
Home app needs that kind to have a speaker. Without a speaker channel,
nothing plays what you say.

The camera's Apple Home page says what it found, under **Motion in the
Home app**: the speaker channel and its codec, or why there is none. When
there is one, **Play a test sound** plays a short chime through the
camera's speaker, and **Last talk** says how the last talk went.

Talk is on for every camera with a speaker channel. To turn it off for a
camera:

**In the Settings UI:**

1. Go to **Settings → Fregata (macOS) → Camera configuration → Apple
   Home** and pick the camera.
2. Under **Motion in the Home app**, turn off **Talk through the camera's
   speaker**.
3. Click **Save**, then **Restart Frigate**.

**In config.yaml:**

```yaml
cameras:
  front_door:
    homekit:
      talk: false   # default: true
```

The camera's own sound keeps playing while you talk, so on a camera whose
microphone picks up its speaker you may hear yourself a moment later. The
first moment of a talk can be cut while the camera's speaker channel
opens. One viewer talks at a time: a second viewer's talk waits until the
first stops.

## Snapshots

The Home app shows a picture of each camera on its tile, in
notifications, and while live view starts. By default that picture is
Frigate's newest frame of the camera. It's ready at once, but it comes
from the stream Frigate detects on, so it's often smaller than live view,
and visibly softer when detection runs on a low-resolution substream.

To take the pictures from one of the camera's go2rtc streams instead,
such as the one live view plays:

**In the Settings UI:**

1. Go to **Settings → Fregata (macOS) → Camera configuration → Apple
   Home** and pick the camera.
2. Under **Motion in the Home app**, choose one of the camera's live view
   streams in **Snapshots from**. **The picture Frigate detects on** is
   the default.
3. Click **Save**, then **Restart Frigate**.

**In config.yaml:**

```yaml
cameras:
  front_door:
    homekit:
      snapshot_stream: front_door   # a go2rtc stream; empty: Frigate's frame
```

From a stream, Fregata takes a picture about every 10 seconds, all the
time. Pictures for motion notifications stay Frigate's newest frame, so
they show the motion. Only H.264 streams can be used: if the chosen
stream can't, the page says why and the pictures keep coming from
Frigate.

When a camera's stream is down and Frigate has no frames of it, its tile
shows **No Response**. It recovers by itself within about a second of the
camera coming back.

## Motion and notifications

Fregata tells the Home app when a camera sees motion. The Home app then
notifies you according to its own settings for that camera, so turn on
notifications for each camera in its settings in the Home app. Set up a
home hub too: see [What you need](#what-you-need).

### What counts as motion

By default, a camera reports motion to the Home app when Frigate raises
an alert for it, the same alerts you see in Review. You can change that
for each camera:

**In the Settings UI:**

1. Go to **Settings → Fregata (macOS) → Camera configuration → Apple
   Home** and pick the camera.
2. Under **Motion in the Home app**, choose a **Motion source**:
   - **Alerts** (the default): Frigate's alerts for this camera.
   - **Alerts and detections**: every review item for this camera.
   - **Any motion**: any motion Frigate sees, shadows and swaying trees
     included. Expect many notifications.
   - **Always on**: motion is reported all the time. Useful only for
     automations that need it.
3. Optionally, narrow **Alerts** and **Alerts and detections** with
   **Objects** (only review items with these objects count) and **Zones**
   (only activity in these zones counts). With none selected, every
   object and the whole picture count.
4. Set **Hold (seconds)**: how long motion stays on in the Home app after
   the activity ends. The default is 10.
5. Click **Save**, then **Restart Frigate**.

**In config.yaml:**

```yaml
cameras:
  front_door:
    homekit:
      trigger:
        mode: alerts        # alerts, detections, motion or continuous
        labels: [person]    # only these objects count; empty: no filter
        zones: [porch]      # only these Frigate zones count; empty: anywhere
        hold_seconds: 10    # 1 to 300
```

`mode: motion` is **Any motion**, and `continuous` is **Always on**.

**Any motion** has no position, so **Objects** and **Zones** can't narrow
it, and the page hides them. Frigate's motion masks still apply, because
Frigate's motion detection ignores masked areas.

Motion shows in the Home app as soon as it starts, and stays on while the
activity goes on, plus the hold. It stays on for at least 5 seconds. After
10 minutes of continuous activity it turns off for 2 seconds, then back
on if the activity is still going.

### Test it

Once the camera is in the Home app, click **Send a test notification**
on its page. Fregata reports
motion for a few seconds, and the Home app notifies you if the camera's
notifications are on. The notification's picture is a small thumbnail
the hub fetches about a second after the motion, or about 8 seconds
after it on cellular. Open the notification to see live view.

### Notifications and HomeKit Secure Video

A camera the Home app can record follows Apple's rules for notifications,
whatever Fregata reports:

- **While the Home app records it** (Stream & Allow Recording), the Home
  app decides from its own analysis of the video whether to notify you,
  under the camera's **Activity Notifications** setting in the Home app.
  That setting starts on people, animals and vehicles, so motion with
  none of them may bring no notification. A recording the hub couldn't
  analyze notifies you anyway: see [When the hub can't keep
  up](#when-the-hub-cant-keep-up).
- **While the Home app doesn't record it** (Recording Options on Stream,
  or no iCloud+ plan), the Home app discards every motion notification
  for that camera. Choose Stream & Allow Recording, or turn HomeKit Secure
  Video off for the camera in Fregata.

## Sensors and switches

The Fregata bridge adds occupancy sensors and switches for your cameras
to the Home app, for automations and scenes. It is one accessory that you
add once, and it carries the sensors and switches of every camera. The
cameras themselves are never put behind it, and the sensors and switches
work whether or not the camera itself is in the Home app.

| On the bridge | What it does |
| --- | --- |
| A sensor per object | On while Frigate sees that object on the camera, and off a little after. |
| A sensor per zone | On while the chosen objects are in that Frigate zone, or any object when none is chosen. |
| A sensor per sound | On while Frigate hears that sound. The camera has to listen for sounds (Frigate's audio detection). |
| **Detection**, **Recordings**, **Snapshots** and **Camera** switches | Turn that Frigate setting on and off while Frigate runs, as Frigate's own toggles do. They don't change `config.yaml`. **Recordings** is offered only while recording is on in the camera's config. |

:::caution
Anyone in your home who can control accessories in the Home app can turn
detection or recording off with these switches.
:::

### Turn on the bridge

**In the Settings UI:**

1. Go to **Settings → Fregata (macOS) → Global configuration → Apple
   Home**.
2. Under **Sensors and switches**, turn on **Show sensors and switches in
   Apple Home**. It saves at once. Restart Frigate once you have chosen
   the cameras' sensors and switches, below.

**In config.yaml:**

```yaml
homekit:
  bridge:
    enabled: true
```

### Choose each camera's sensors and switches

**In the Settings UI:**

1. Go to **Settings → Fregata (macOS) → Camera configuration → Apple
   Home** and pick the camera.
2. Under **Sensors and switches**, choose its **Objects**, **Zones**,
   **Sounds** and **Switches**.
3. Click **Save**, then **Restart Frigate**.

**In config.yaml:**

```yaml
cameras:
  front_door:
    homekit:
      sensors:
        objects: [person, car]   # one sensor per object
        zones: [driveway]        # one sensor per zone and object above
        audio: [bark]            # one sensor per sound
      switches:
        detect: true
        recordings: true
        snapshots: false
        enabled: false           # the Camera switch
```

### Add the bridge to the Home app

On the **Apple Home** page, under **Sensors and switches**, click **Add
the bridge to the Home app** and add it as you added a camera, with the
bridge's own setup code (with **More options**, choose **Fregata**). The
Home app then asks where to put each sensor and switch.

The page lists how many sensors and switches are on the bridge, and any
you chose that weren't on it at the last Frigate start. Apple's Home
app runs automations on a home hub, so they need one.

## Record with HomeKit Secure Video

With HomeKit Secure Video, the Home app records a camera's activity to
iCloud through your home hub. The hub analyzes the video, decides what to
keep, and stores the clips in iCloud, where the Home app shows them on the
camera's timeline for 10 days. Fregata keeps its own recordings either
way.

It needs a home hub and an iCloud+ plan (see [What you
need](#what-you-need)), and it is off for every camera until you turn it
on.

:::caution[Without iCloud+, leave it off]
Once a camera can record, the Home app shows its motion notifications
only while it records it. Set to Stream, or without an iCloud+ plan, the
Home app discards every motion notification for that camera. This is
Apple's rule: Fregata still reports the motion.
:::

Set it up in this order.

### 1. Add the camera to the Home app first

Add the camera as in [Set up Apple Home](#set-up-apple-home), with
HomeKit Secure Video still off in Fregata (the default), so the Home app
adds it as a streaming camera. For an H.265 camera that should use the
[newer HomeKit Secure Video](#the-newer-homekit-secure-video), follow that
section instead: such a camera is added with recording already on in
Fregata.

### 2. Let the Home app record the camera

**In the Settings UI:**

1. Go to **Settings → Fregata (macOS) → Camera configuration → Apple
   Home** and pick the camera.
2. Under **HomeKit Secure Video**, turn on **Let the Home app record this
   camera**.
3. Click **Save**, then **Restart Frigate**.

**In config.yaml:**

```yaml
cameras:
  front_door:
    homekit:
      recording: true   # default: false
```

Then restart Frigate.

The camera stays in the Home app: there is nothing to remove or add
again. The Home app may show its own prompt to set up recording; you can
follow it, or use the next step.

After changing this setting, check the camera's notifications in its
settings in the Home app.

### 3. Turn on recording in the Home app

1. In the Home app, open the camera, then its settings, then **Recording
   Options**.
2. Choose **Stream & Allow Recording**, for when you are home and when
   you are away, as you prefer.
3. Under **More Options**, **Record when** starts on "specific motion is
   detected": people, animals, vehicles and packages. Motion with none of
   those is recorded by the hub but no clip is kept. To keep a clip of
   any motion, choose "any motion is detected".

### Check that it records

Click **Send a test recording** on the camera's page. The button appears
once recording is on in the Home app and the hub has chosen how to record,
a moment after you save Recording Options. A clip appears in the camera's
timeline within about a minute. With **Record when** on specific motion,
a test with no person, animal, vehicle or package in view keeps no clip.

The **HomeKit Secure Video** card on the camera's page follows each
recording: **Recording is on in the Home app**, whether the hub records
the camera's stream as it is or through a conversion, and **Last clip**,
with its time and length.

### What the Home app records

- **The hub decides how long a clip is.** It starts recording when
  Fregata reports motion, keeps recording while it sees activity (inside
  your Activity Zones, if you drew any), and ends the clip itself. Motion
  going off in Fregata doesn't end it, so a scene that never stops
  moving, such as trees in the wind, can record for many minutes. The
  Home app shows a long recording as clips of up to 10 minutes each.
- **A clip starts a few seconds before the motion**, from the hub's
  prebuffer, and appears in the timeline within about a minute. It plays
  even while it is still recording.
- **The format.** The hub records H.264 (Main or High profile) at up to
  1080p, with keyframes at most 4 seconds apart, and AAC audio. A camera
  whose stream fits is recorded as it is. Otherwise Fregata converts it
  on the Media Engine for as long as recording is on in the Home app (see
  [Media Engine limits](#media-engine-limits)).
- **Keyframes.** If a camera's keyframes come more than 4 seconds apart,
  Fregata moves its recording to a conversion by itself, the camera's
  page says so, and it moves back once the keyframes fit again. Setting
  the camera's keyframe interval to 2 seconds suits both recording and
  live view.
- **Sound.** Clips have sound when the camera sends audio, **Send the
  camera's audio to the Home app** is on, and the Home app's audio
  recording is on for the camera. Otherwise they are kept with no sound.
- **Times.** The time on the Home app's playback bar is when each picture
  reached Fregata. A clock in the camera's own picture may read a couple
  of seconds earlier.
- **The red dot** next to **Live** at the top of a camera's timeline marks
  a camera that records. It doesn't mean a recording is in progress.

If other cameras record but one never does, your iCloud+ plan may not
cover that many cameras, and the camera's page suggests it.

### When the hub can't keep up

The home hub analyzes each recording for people, animals, vehicles and
packages, and it can analyze only a few at the same time: about two on a
HomePod mini, two or three on a HomePod, and five on an Apple TV 4K (2nd
or 3rd generation). With more than one hub, the hubs share the
recordings.

A recording the hub can't analyze isn't dropped. The hub keeps it while
Fregata reports motion, and notifies you, whatever **Record when** and
**Activity Notifications** are set to. Activity Zones don't apply to it,
since the hub applies them in the analysis it skipped. The notification
just says motion was detected.

So with several cameras on **Any motion** and one HomePod mini, swaying
trees can start more recordings at once than the hub can analyze, and
you get clips and notifications of plain motion. Each burst of Frigate
motion keeps a camera's motion on for about 40 seconds: Frigate's 30
seconds, plus Fregata's 10-second hold. To avoid it:

- Choose **Alerts**, or **Alerts and detections**, as the **Motion
  source** of most cameras (see [What counts as
  motion](#what-counts-as-motion)). The hub is then asked to look
  only when Frigate has seen something, and still makes its own call.
  Keep **Any motion** for one or two cameras.
- On a camera that stays on **Any motion**, add Frigate motion masks over
  moving shadows as well as the trees that cast them.
- Add an Apple TV 4K as a home hub.

### Activity Zones

You draw Activity Zones in the Home app: open the camera, then its
settings, then **Activity Zones**. The home hub applies them itself, from
its own analysis of the video, and Fregata never sees them. A recording
with no activity inside the zones keeps no clip, and drawing a zone over
the part of the picture that matters stops long recordings of constant
motion elsewhere. They work on both kinds of camera, on the recordings
the hub analyzes (see [When the hub can't keep
up](#when-the-hub-cant-keep-up)).

Fregata's own **Objects** and **Zones**, under **Motion in the Home
app**, are separate: they decide when Fregata reports motion in the first
place.

## The newer HomeKit Secure Video

Apple's newer HomeKit Secure Video, from iOS 27, is a second kind of
Apple Home camera, for H.265 cameras:

- Live view shows the camera's own H.265 video, with no conversion. At
  home the Home app gets the camera's stream as it is.
- Its HomeKit Secure Video clips are the camera's own video too. A
  camera whose stream the hub can't record as it is (for example one
  that starts its groups of pictures at CRA pictures rather than IDR
  pictures) is recorded through an H.264 conversion at up to 1080p
  instead, and its page says so.
- Away from home it plays copies sized for the connection, at up to
  1080p (see [Away from home](#away-from-home)).

It needs every home hub in your home on tvOS 27 or HomePod Software 27,
a camera that sends H.265, and HomeKit Secure Video turned on for the
camera in Fregata. Like any camera the Home app can record, it gets
motion notifications only while the Home app records it, which takes an
iCloud+ plan. A camera that doesn't meet these stays a regular camera.

### Turn it on

**In the Settings UI:**

1. Go to **Settings → Fregata (macOS) → Global configuration → Apple
   Home**.
2. Open **Advanced**, turn on **Every home hub runs tvOS 27 or HomePod
   Software 27**, then click **Save**.
3. For each H.265 camera, turn on **Let the Home app record this camera**
   on its page, as in [Let the Home app record the
   camera](#2-let-the-home-app-record-the-camera).
4. Restart Frigate.

**In config.yaml:**

```yaml
homekit:
  hksv3_hubs_ready: true   # only once every home hub runs version 27

cameras:
  front_door:
    homekit:
      enabled: true
      recording: true
```

Then restart Frigate.

Leave **Every home hub runs tvOS 27 or HomePod Software 27** off while any
Apple TV or HomePod that is a home hub in your home runs an older
version.

A camera gets its kind when you add it to the Home app, so add the camera
after these steps, and leave its Recording Options on Stream while you
add it. Then turn on recording as in [Turn on recording in the Home
app](#3-turn-on-recording-in-the-home-app). Under
**Kind of Apple Home camera**, its page then says **This camera uses the
newer HomeKit Secure Video.** A camera that stays regular says why: its
video isn't H.265, its HomeKit Secure Video is off, or Fregata couldn't
check its stream when Frigate last started.

### Choose a camera's kind

**Automatic** is the default: the newer kind for an H.265 camera with
HomeKit Secure Video on, once the **Advanced** switch is on, and a
regular camera otherwise. You can also fix a camera's kind:

**In the Settings UI:**

1. Go to **Settings → Fregata (macOS) → Camera configuration → Apple
   Home** and pick the camera.
2. Under **Kind of Apple Home camera**, choose **Kind for this camera**:
   **Automatic**, **Regular**, or **Newer HomeKit Secure Video**.
3. Click **Save**, then **Restart Frigate**.

**In config.yaml:**

```yaml
cameras:
  front_door:
    homekit:
      generation: auto   # auto, classic (Regular) or hksv3 (newer)
```

### Switch a camera that is already in the Home app

A camera already in the Home app keeps its kind until you switch it, and
saving a new kind only records your choice. Switching gives the camera a
new identity, so you remove it from the Home app and add it again, and
**removing it deletes its HomeKit Secure Video clips**.

1. Restart Frigate, if the page asks.
2. On the camera's page, under **Kind of Apple Home camera**, click
   **Switch now…**, and confirm.
3. The Home app now shows the old accessory as **No Response**. Remove
   it from the Home app.
4. Add the camera again with its new setup code, as in [Add each camera
   to the Home app](#3-add-each-camera-to-the-home-app).

## Manage your cameras

### Rename or remove a camera

A camera you remove or rename in Frigate keeps its accessory in the Home
app. The Apple Home page lists it under **Removed or renamed cameras**:

- To keep the accessory, with its room and automations, choose a camera
  in **Give it to…** and click **Move**. The Home app's accessory now
  shows that camera, with nothing to add again.
- Otherwise click **Forget**, which deletes its pairing, then remove the
  accessory from the Home app too.

Fregata forgets such a camera by itself after 30 days.

To stop showing a camera in the Home app, remove it in the Home app, then
turn off **Show this camera in Apple Home** on its page, click **Save**,
and restart Frigate.

### Reset a camera's pairing

**Reset pairing**, at the bottom of a camera's page, removes the camera
from the Home app on Fregata's side and gives it a new setup code.
Everyone who added the camera loses it: the Home app shows it as **No
Response** until you remove it there. Then add it again with its new
setup code. Use it after too many wrong setup codes, or to take the
camera away from everyone it was shared with.

The bridge has its own **Reset the bridge's pairing** on the Apple Home
page. The Home app then loses every sensor and switch on the bridge, with
their automations.

### Turn off Apple Home

**In the Settings UI:**

1. Go to **Settings → Fregata (macOS) → Global configuration → Apple
   Home**.
2. Click **Turn off Apple Home**, then **Turn off**.
3. Click **Restart Frigate**.

**In config.yaml:**

```yaml
homekit:
  enabled: false
```

Then restart Frigate.

The cameras stay in the Home app but show **No Response** until you turn
Apple Home on again. Their pairings are kept.

### Choose the stream for live view

By default, Apple Home plays the camera's first live view stream (the
first of its `live.streams`), or else the go2rtc stream named after the
camera, which Fregata makes from the camera's record input when go2rtc
has none. To use another go2rtc stream:

**In config.yaml only (the Settings UI has no control for the stream that Apple Home plays: Fregata picks one unless you set it):**

```yaml
cameras:
  front_door:
    homekit:
      stream: front_door_main   # a go2rtc stream; empty: Fregata picks
```

Then restart Frigate.

If that stream is made by an `exec:` or `ffmpeg:` source, or pulls another
go2rtc stream through go2rtc's own RTSP port, Fregata can only read it through
go2rtc. The first start with such a camera can take up to 60 seconds longer
while Fregata asks, and later starts use the answer. A camera that doesn't
answer in that time plays through a conversion, as a regular Apple Home camera.
Each start gives it up to 15 more seconds, so once it is back online, restart
Frigate. A camera you have already added to the Home app keeps its kind after
that restart: to make it the newer kind, [switch
it](#switch-a-camera-that-is-already-in-the-home-app).

### Limit Apple Home to some network interfaces

Apple Home is served on every network interface of the Mac. To serve it
only on some, list them:

**In config.yaml only (an advanced setting with no control in the Settings UI):**

```yaml
homekit:
  interfaces: [en0]   # empty: every interface
```

Then restart Frigate.

### Updating Fregata

Updating Fregata keeps every camera and the bridge in the Home app, with
no pairing again.

### If your config has go2rtc's own HomeKit export

A config brought over from Frigate on another system may have a
`homekit` section under `go2rtc`. go2rtc can't announce a camera on a
Mac, so that export doesn't work in Fregata, and the Apple Home page asks
you to remove it. Apple Home in Fregata replaces it. Remove any accessory
it added from the Home app, then delete the `homekit` section from
`go2rtc` in your config.

## Media Engine limits

Every conversion runs on the Mac's Media Engine, which only keeps up with
a few at once: on a base Mac mini M4, four 4K H.265 to 1080p conversions
kept up in real time, and each one more slowed every stream. So Fregata
counts conversions and refuses a new one past its limit, by default 4 on
a base chip, 6 on a Pro, 8 on a Max and 12 on an Ultra.

The count is shared by Apple Home's live view, Apple Home recordings,
browsers watching at a lower quality ([adaptive
transcoding](/reference/adaptive-transcoding/)), and recorded clips
converted for playback. A camera the hub records through a conversion
holds one all the time recording is on in the Home app. Cameras played
or recorded as they are use none.

When every conversion is in use, the camera's page says **Not enough
Media Engine capacity for this camera's conversion**, and live view works
again as soon as one is free. To set the limit yourself:

**In config.yaml only (the Settings UI has no control for it. It is set for the whole Mac, since one Media Engine serves every camera):**

```yaml
adaptive_transcoding:
  max_concurrent_transcodes: 6   # default: by chip (4, 6, 8 or 12)
```

Then restart Frigate.

A higher limit can make every converted stream stutter. Cameras that send
what the Home app plays as it is need no conversion at all.

## Privacy and security

- **On your network.** The Home app and your home hub connect to Fregata
  over your local network, and Apple says each session is encrypted with
  its own keys.
- **Nothing new goes to us.** Apple Home adds nothing to what Fregata
  sends us automatically (see [Privacy & telemetry](/reference/privacy-and-telemetry/)).
  The pairing keys and setup codes stay on your Mac. They are not in
  `config.yaml`, and diagnostic bundles leave them out.
- **Away from home.** A regular camera's live view is relayed by your
  home hub. The newer kind sends live view to an Apple relay server over
  the internet, with each frame also encrypted end to end.
- **HomeKit Secure Video.** Apple says your home hub analyzes the video
  and encrypts each clip before it uploads it to iCloud, with keys that
  only your devices hold. See Apple's [HomeKit camera
  security](https://support.apple.com/guide/security/camera-security-sec525461d19/web).
- **Your own recordings.** Fregata's recordings stay on your Mac's disk,
  as before. HomeKit Secure Video doesn't touch them.
- **People in your home.** Everyone you share your home with in the Home
  app can see your cameras, as the Home app's own sharing settings allow,
  and anyone who can control accessories can use the bridge's switches.

## Troubleshooting

### The camera's Troubleshooting card

Each camera's Apple Home page has a **Troubleshooting** card: a
checklist from the service to the clip. The first row that isn't ticked
is where it stops.

| Row | If it isn't ticked |
| --- | --- |
| **The Apple Home service is running** | Quit Fregata from the menu bar and open it again. |
| **The camera is shown in Apple Home** | Restart Frigate after turning the camera on. If it still isn't shown, the **Cameras** list on the Apple Home page says why. |
| **The camera is announced on the network** | On the Mac, open System Settings, then Privacy & Security, then Local Network, and turn on Fregata. |
| **The camera is in the Home app** | Add it with its setup code. |
| **A Home app or home hub is connected** | Nothing is connected right now. Notifications and watching away from home need a home hub. |
| **Frigate is connected to the Apple Home service** | Restart Frigate. |
| **Motion has been reported to the Home app** | Click **Send a test notification**. |
| **Recording is on in the Home app** | In the Home app, choose **Stream & Allow Recording** in the camera's **Recording Options**. |
| **The hub has asked to record** | Check that the home hub is on and up to date, and click **Send a test recording**. |
| **The hub took the last clip** | The row says why the last clip ended early. |

The last three rows appear only for a camera the Home app can record.

### The menu bar's Apple Home line

Fregata's menu bar menu shows an **Apple Home** line once a camera or the
bridge is on. Hover over it to see how many there are.

| The line says | It means |
| --- | --- |
| **Apple Home: connected** | The Home app or a home hub is connected to at least one camera, or to the bridge. |
| **Apple Home: not connected** | Your cameras are in the Home app, and nothing is connected right now. |
| **Apple Home: not added yet** | Nothing has been added to the Home app yet. |
| **Apple Home: needs attention** | A camera was given too many wrong setup codes, or isn't announced on the network. Open the Apple Home page. |
| **Apple Home: starting** | The service is starting. |
| **⚠︎ Apple Home blocked** | macOS is blocking Fregata's Local Network access. Click the line, then turn on Fregata under Local Network. |
| **⚠︎ Apple Home stopped** | The service stopped. Click the line to open the Apple Home page, which says why and what to do. |

### Common problems

**A camera shows No Response while Fregata is running.** The camera's own
stream is down, and Frigate has no frames of it. Get the camera back
online: the tile recovers by itself within about a second, with no
restart.

**At home, some cameras play without sound and others don't play at
all.** macOS is blocking Fregata's local network access. Open System
Settings, then Privacy & Security, then Local Network, and turn on
Fregata. Every camera comes back within moments, with no restart.

**Live view is slow to start, or never shows a picture.** The camera's
keyframes are too far apart. Set its keyframe (I-frame) interval to 2
seconds or less; the camera's page shows the interval it measured.

**The page says there isn't enough Media Engine capacity.** Every
conversion is in use. See [Media Engine limits](#media-engine-limits).

**Live view freezes after you restart Frigate.** That's expected: it
comes back within about 20 seconds.

**Away from home, the picture starts soft, then sharpens, or alternates
between the two.** That's expected: the iPhone starts at 640x360, asks for
1280x720 a few seconds later, and may switch back as its connection
changes.

**A camera won't play right after the iPhone leaves Wi-Fi while it was
open.** The Home app waits for a timeout first. Wait a little: it plays
without a force quit.

**No motion notifications.** Check, in order: notifications are on for
the camera in the Home app; a home hub is set up and online (the
Apple Home page says **No home hub is connected** when nothing has
connected for 6 hours); **Send a test notification** brings one. If the
camera has HomeKit Secure Video on, see [Notifications and HomeKit Secure
Video](#notifications-and-homekit-secure-video).

**Too many notifications, for example from swaying trees.** If the
camera's **Motion source** is **Any motion**, choose **Alerts**, or add
Frigate motion masks over the moving parts of the picture, moving
shadows included. For a camera the Home app records, its **Activity
Notifications** setting in the Home app decides too.

**Notifications say motion was detected, though Activity Notifications is
on specific motion.** The hub couldn't analyze those recordings, usually
because more cameras were recording at once than it can analyze. See
[When the hub can't keep up](#when-the-hub-cant-keep-up).

**A camera records, but no clip appears in the Home app.** The camera's
**Record when** is on specific motion, and there was no person, animal,
vehicle or package. Choose "any motion is detected" in its Recording
Options, under More Options.

**Send a test recording isn't on the camera's page.** Recording isn't on
in the Home app's Recording Options yet, or the hub hasn't chosen how to
record. Choose Stream & Allow Recording, and wait a moment.

**With an Activity Zone drawn, a test motion keeps no clip.** The zone
covers a part of the picture where nothing moves. Draw it where the
activity happens, or remove it.

**One recording runs for many minutes.** The hub keeps recording while it
sees activity. Draw an Activity Zone over the part of the picture that
matters.

**Seeking near the end of a clip shows a black picture, and seeking
stops working.** The clip is still recording, or has just ended. Close
and reopen the camera; a couple of minutes after the clip ends, it plays
to the end.

**The Home app shows a "recording available" prompt for a camera you
already added.** You turned on HomeKit Secure Video for it. Follow the
prompt, or turn it off again; the camera never has to be added again.

**The old accessory shows No Response after Reset pairing or Switch
now….** The camera has a new identity. Remove the old accessory from the
Home app, and add the camera again with its new setup code.

**On a Mac, the Home app shows a camera that won't load, or a picture
that never appears, after an update.** The Mac's Home app keeps the
camera's old details. Quit the Home app and open it again.

**Adding a camera is blocked after wrong setup codes.** Use [Reset
pairing](#reset-a-cameras-pairing), then add it with its new code.

**The page says Fregata couldn't read a camera's saved pairing.** Fregata
started a new one, so the old accessory no longer works. Remove it from
the Home app, then add the camera again with its setup code.

**The page says the Apple Home service stopped.** It says why. If it
stopped unexpectedly too many times in a row, choose **Restart Frigate**
from the menu bar to try again, and if it stops again, create a
diagnostic bundle and send it to us.

**A camera has no talk button in the Home app.** Fregata found no speaker
channel in its go2rtc stream, and its Apple Home page says why. Fregata
asks an RTSP camera whether it has a speaker channel, except through a
source that ends in `#backchannel=0`, and takes a source go2rtc uses
for two-way audio, such as `isapi://` for a Hikvision camera or
`tapo://`, as one. If Frigate's own live view can't talk through the
camera either, add the source go2rtc's documentation gives for your
camera's two-way audio to its stream, then restart Frigate.

**The talk button works, but nothing comes out of the camera.** Click
**Play a test sound** on the camera's Apple Home page. If the chime
doesn't play either, check the camera's speaker volume in its own
settings. **Last talk** names the error when a talk didn't reach the
camera, for example a speaker codec go2rtc can't convert to, or a camera
that allows only one connection at a time.

**A camera should be the newer kind but stays regular.** Check that
**Every home hub runs tvOS 27 or HomePod Software 27** is on, under
**Advanced** on the Apple Home page, or that the camera's kind is
**Newer HomeKit Secure Video**. Otherwise its page names the reason,
under **Kind of Apple Home camera**. Fix it, restart Frigate, and switch
the camera if it is already in the Home app.

**The camera's page says a switch to the other kind is waiting.** Restart
Frigate, then click **Switch now…** under **Kind of Apple Home camera**.

**The newer kind plays at home, but not away from home.** The first
camera you open after the iPhone moves to cellular may not play at the
first try: open it again. If it never plays away from home, create a
diagnostic bundle and send it to us. The Apple Home service's log
records each time the iPhone turned a copy down.

**The log shows "pair-verify failed … unknown controller" after you add or
remove a camera.** It is harmless: an Apple device tried an identity the
camera was never paired with.

### Getting help

When something goes wrong, note the time, then create a diagnostic bundle
straight away: from Fregata's menu bar icon, choose **Settings →
Troubleshooting → Create Diagnostic Bundle…**. It includes the Apple Home
service's logs, and never setup codes or keys. See [Getting
help](/guides/support/) for how to send it.

With it, tell us:

- your Fregata version, the Mac, and its macOS version;
- your home hubs, with their models and software versions;
- the iPhone or iPad, and its iOS version;
- your iCloud+ plan, if you use HomeKit Secure Video;
- each camera's make and model, and its video codec and resolution;
- what you did, what you expected, what happened, and when, to the
  minute.

Crop setup codes out of any screenshot you send.

## Known limits

- The newer HomeKit Secure Video needs every home hub on version 27.
- With HomeKit Secure Video on, the Home app sends a camera's
  notifications only while it records it. This is Apple's rule.
- Away from home, cameras play copies sized for the connection (a
  regular camera 360p or 720p, the newer kind up to 1080p), never the
  camera's own stream.
- Live view of a camera whose keyframes come far apart starts late.
- A home hub analyzes only a few recordings at a time, about two on a
  HomePod mini. Past that, the Home app keeps and notifies plain motion,
  whatever its settings say. See [When the hub can't keep
  up](#when-the-hub-cant-keep-up).
- A camera of the newer HomeKit Secure Video shows the Home app's talk
  button even when it has no speaker. With none, nothing plays what you
  say.
- The home hub decides how long clips are and applies Activity Zones, so
  Fregata can't show or change them.
- Switching a camera between the two kinds means removing it from the
  Home app and adding it again, which deletes its HomeKit Secure Video
  clips.
- Adding a camera always shows the Home app's Uncertified Accessory
  prompt, and no link opens the Home app at the right place.
- A camera's sensors and switches are separate accessories on the
  Fregata bridge, not part of the camera.
