Whilst the smart home is still in its infancy, there are many different types of HomeKit accessory on the market. The HomeKit smart buttons help control other HomeKit accessories like lights or fans. Popular smart buttons available now include the Logitech POP Smart Button Kit, FIBARO The Button, and the Elgato Eve Button. Here’s how to set them up and start using them to control HomeKit scenes, lights and more …
First things first, you need to add the smart button to your HomeKit home. Configuration steps will vary slightly depending on which brand you have. Often, the manufacturer recommends downloading their third-party app and following some pairing instructions. You will then need to register the accessory with HomeKit by typing in the 8-digit code on the sticker that comes with the product.
In the case of the Logitech POP Smart Button, you can actually set up the accessory from the WiFi settings of an iOS device. Just follow the prompts and the iPhone or iPad automagically sends the WiFi credentials to the bridge. You can then go into the Home app and Add Accessory.
To use the accessory with HomeKit, you will need to add the accessory in the Home app if it isn’t there. Each HomeKit-enabled button will come with a HomeKit authentication code, usually included on the packaging as a sticker.
Open the Home app, tap Add Accessory and use the camera to scan this code. Once the accessory is assigned in HomeKit, there is usually no reason to open the third-party app again.
In this example, you can see the Logitech POP Button is now appearing in my HomeKit Default Room. The bridge also appears as a separate tile, unfortunately this cannot be hidden.
To tell HomeKit where the button is located, press firmly on the tile and open the Details (renamed to ‘Settings’ in iOS 12). Tap on the Room cell, and pick a different room from the drop-down options. You can tap Create New to add a new named room on the fly.
Okay. Now for the fun stuff. In the preview pane for the button, it will say ‘there is an unconfigured button’. This indicates that HomeKit knows about the button as a thing, but is letting you know that no actions have been selected — so nothing will happen when you press it.
To wire up the button to do something, go back into the Details menu. Below the name of the accessory and the room are a list of actions. The POP Button has a Single Press action, a Double Press action and a Long Press action.
Select the action you want to edit, such as Single Press. The Home app presents a list of all the scenes and accessories in your home. Select which accessories you want to change when the button is pressed. Tap Next. This screen lets you set the properties of the accessories. Think of this screen like a snapshot of the desired state of these accessories when the button action is fired.
You can press ‘Test this Action’ to update the accessories there and then, so you can preview what will happen. You can add a Turn Off timeout, that automatically switches off any accessories turned on by this action after a set duration. For example, you could press the smart button to turn on all the lights in the garden, but have them automatically turn themselves off after half-an-hour.
When you are finished, tap Done and the action is set up. Repeat for the other unset actions available for your smart button. When there are no more ‘Add’ links on the details page, you have configured all possible actions for the button accessory.
You can now try them out by tapping, double-tapping and pressing on your physical button. It’s like a super-customizable remote for your smart home.
One shortcoming of the Home app as of iOS 11 (and iOS 12) is that smart buttons do not support a toggle action. If you want to have a button act like a on-off switch — tap once to turn a light on, tap again to turn it off — you simply can’t with the Apple Home app. There is a workaround, but it’s a bit inelegant:
Download one of the various third-party HomeKit client apps from the App Store, like Controller for HomeKit or Home. Create an automation that is triggered when the smart button is pressed, including a condition based on the status of your lights. You want to set up one automation that says ‘when I press my button, if the light is turned off, turn it on’ and another automation that handles the inverse case: ‘when I press my button, if the light is turned on, turn it off’.
Then, next time you trigger the button with a physical press, both automations will respond to the event … but only one will actually complete, as the two conditions essentially form a boolean test where one will always be true and the other one will always be false. This creates a makeshift toggle behavior.
It’s frustrating that it has to be that fiddly, but it does the job. Hopefully, toggle functionality is improved in future versions of iOS so workarounds involving third-party apps and intricate automation trees aren’t necessary.