Turn off lights with Elgato Eve Motion
A battery powered, hubless motion sensor with HomeKit support? Sounds like it has potential, I thought to myself. Sure, it has some limitations. Elgato promises a 2 second average response time, which is not really fast enough for 'follow me' type lighting events, but is fine for convenience and security light types uses. So far it seems to work as advertised, and setting up an event in Apple's Home app to turn on lights when motion is detected was trivial.
What I found a bit more difficult, and after looking for answers seems to be a common question, is how to turn them off again once the motion stops. A little experimentation yielded success, so I thought I'd write it up for those looking to do similar.
The first thing to note is that the Home app doesn't (yet) provide the granularity to differentiate Motion start from Motion stop. It simply allows you to tag a 'sensor' to trigger the event. Triggering an event on motion start seems obvious, and that's what it does. To turn them off requires the use of the Elgato Eve app to configure the rule.
Update for iOS11: This is now MUCH easier with the addition of the new Turn Off feature. Once your motion activated On automation is set up, simply set the Turn Off time on the last screen of the automation setup as shown below. For iOS10, read on.
Configuring iOS 10
The Eve app is a little less intuitive, but gives the extra options to allow this to work. Thanks to HomeKit cross vendor sync it also present the new rule in the Home app as well, and allows the use of configured Scenes from the Home app to target the event. Having confirmed that, it was just a matter of selecting the right settings in the Eve app to do what I needed.
First up, we need to configure the Motion to have sufficient active time. The Motion can be set with a Duration, which defines how long it will present as being triggered. This effectively sets how long between the On event and the Off event. If this is to short the events may collide and give unreliable results (due to the variable signal time between the Motion and the Home app).
I chose to set the Duration value to 10 minutes, although you can choose from a set of times, that seemed safe and practical to ensure we didn't have any issues. You could try 5 minutes, but I wouldn't go any lower.
To do this, open the Eve app.
Select Settings, and then the Motion device to be configured.
On the Accessories page will by the Duration value.
Tap that to select from the list of available times (from 5 seconds all the way up to 15 hours).
OK, so now we are clear to create the Off rule. You'll want to create a Scene in the Home app with the lights required in the off state. If you don't want this showing on the Home screen you can turn off the Show in Favorites option.
In the Home app, tap the + button, and select Add Scene.
Choose Custom and name it something useful. I used 'Nightlight Off'.
Tap Add Accessories and selects the lights to be turned off.
On the next screen set them to Turn Off and you're done.
Now we have a scene to use, we can create the motion rule.
Go into the Eve app, and select Scenes
You should see your Motion On event already listed.
Tap Add Rule and then Next
Give it a name, say "Resume sleep" then tap Add Value Trigger
This is where we specify the Motion stopped event, called "Clear". Tap Motion from the Types list
Select the Eve Motion device to use, then tap Specific. That gives the option to select Clear
Now we can set conditions, such as to only trigger the event after sunset. You can choose a variety of other conditions, such as if other devices are in a certain state, but for the sunset rule, we use a Time Condition. You can use other time conditions to create a window where the rule will be in effect. You'll need to add two time conditions for beginning and end, but be aware that if the intent is to cover night hours you are better off simply using "after sunset" due to the way HomeKit considers the day to end at midnight.
Select Day Event, then Sunset.
Finally, we select the Scene to trigger, which is where I added the 'Nightlight Off' I create previously.
So, what will this do? When the Eve motion triggers, it will activate the Nightlight scene configured in the Home app, and will remain "triggered" for 10 minutes. At the end of the 10 minutes, assuming no other motion is detected, the Eve Motion will reset it's state to Clear, which will trigger the new rule we created to activate the Nightlight Off scene. Motion turns the lights on for 10 minutes, then off again.