Links on the site may earn us an affiliate commission. Learn more.

Today, we’ll go over on how to integrate Apple’s HomeKit with Home Assistant. So you can control your Home Assistant entities from the Apple Home app. The integration will also enable you to use Siri on Apple devices to send voice commands to your Home Assistant entities.

Add HomeKit integration in Home Assistant

The first thing that you need to do is to add the integration. So, in Home Assistant, go to configurationDevices & Services, and click on Add integration. Search for HomeKit and then click on it. A pop-up comes up where you can select the domains you would like to expose. Some domains like TV media players, locks, and cameras would create separate entries in accessory mode. We’ll go over that in more detail later on.

After selecting the domains you would like to expose to HomeKit, click on Submit. Another pop-up comes up, letting you know to follow the instructions in the notification panel to pair with HomeKit. Click on Submit again. Then, on the next page, you can add the new HomeKit bridge to an area and then click on Finish.

Add integration to Apple’s Home app

If you open the notification panel in Home Assistant, there is a QR code that you’ll need to scan with the Apple Home app. So, open the app on your iOS device, click on Add Accessory and scan the QR code provided in Home Assistant. Then, click on Add to Home and on the pop-up that comes up saying that the accessory is uncertified with HomeKit, just click on Add Anyway. Then, you can select the location for the bridge and change the default name if you would like. Click on Continue, and the bridge is now added to the Home App.

Next, you can start configuring the entities exposed to HomeKit so, click on Continue. On each entity, you would have the option to link it to a specific location in your home and change the entity’s name.

Expose entities in Accessory Mode

When exposing entities like TV media players, cameras, or locks, the HomeKit bridge is set up in accessory mode. Additional HomeKit entries are created for each device that needs to operate in accessory mode.

If you add those specific domains when you first set up the HomeKit integration, then the additional HomeKit entries are created automatically for those entities. However, if you are adding them after setting up the Home bridge, you need to add another bridge and add the domains for the entities that will run in accessory mode.

Before creating another bridge for devices in accessory mode, change the default name for the primary bridge, so you know which bridge is for what exactly. You can click on the Menu icon on the right side of the current bridge, then click on Rename and set up a new name. After that, click on Add integration, search for HomeKit, click on it and add the domains you would like to set up in accessory mode. Click on Submit. Then Submit again and then click on Finish.

After that, you will see the separate entries for the devices in accessory mode. At this point, the second bridge that was created can be deleted. So, click on it, click on the Menu icon, and click on Delete.

Next, to add the devices to the Home app, open the notification panel to get the QR code for the devices. Then, open the Home app, tap on the “+” Plus icon on the right, and click on Add Accessory. Scan the QR code and then click on Add to Home. On the uncertified pop-up that comes up, click on Add anyway. Then, you can add the device to a specific location and change the default name if you would like. After that, you can repeat the same steps to add any additional devices in accessory mode.

One thing that is very useful when adding a smart doorbell and you have an Apple TV is that when you are streaming something on your Apple TV, and someone rings the doorbell, you actually get a pop-up with a live feed of who is at the door. If you also have notifications set up for when there is motion detected, you would also get a pop-up showing you the motion that was detected. So, definitely, something helpful to add if you have these devices.

Expose scripts to HomeKit

If you have scripts that you would like to expose to HomeKit, you can do that as well. However, the scripts would show in the Home app as switches. And anytime you trigger them, the switch would turn on, send the command to Home Assistant, and then the switch would turn off.

To expose additional domains to HomeKit, click on the HomeKit bridge and click on Configure. Select the domains you would like to add and then click on Submit. On the next page, you have the option to select which entities you want to include or exclude. You can also just click on submit, and it would include all entities under the domain you are adding.

I wouldn’t recommend doing that because something to have in mind is that you have a maximum of 150 accessories that you can add per bridge. If you plan on exceeding that limit, you would need to create an additional bridge. So, to avoid exposing unnecessary entities, I would recommend using the Include option and just select the entities you would like to expose.

One bad thing is that at the time of this video, there is no search option to quickly locate the ones that you would like to add. You would have to scroll through all the entities to locate them and add them. Hopefully, they’ll add search functionality in the future to make it easier. When you are done, click on Submit. Then Submit again, and lastly, click on Finish. If you check the Home app, the script entities would now be available there.

How to access HomeKit when away from home

One question that you might be asking is, can you use the Home app when not connected to your home network? Well, it depends. If you only have an iPhone, then no. The phone would need to be connected to your home network to communicate with Home Assistant. However, if you have an Apple TV, HomePod, or an iPad, those devices can act as a hub so you can control your devices when you are away from home. The Apple TV and the HomePod are set up by default to work as a hub. However, an iPad, you would need to enable it manually.

The first thing you want to check on your iPad is that you have the Home app enabled in iCloud. So go to Settings, tap on your name at the top, and tap on iCloud. Then scroll down and verify that Home is turned on. After that, on the left side, scroll down and tap on Home. Turn on the option that says “Use this iPad as a Home Hub”, and that’s it. If you open the Home app, tap on the Home icon at the top, open the Home Settings, and then Home Hubs & Bridges, you should see the iPad connected under Home Hubs.

Now, when you are away from home, you’ll be able to control your devices securely using the Home app. Just remember that the iPad will need to be home and connected to your home network for this to work.

Want to support my work?