HomeKit and NFC tags

I have been reading a 9to5 Mac article about Homekit that explains how to integrate NFC tags into the system to trigger Homekit automations. For example I have a dehumidifier that lacks a timer. I am adding a smart switch to control it. I have received a dozen NFC tags via Amazon (for about $1 each) and will set up an automation to turn on the dehumidifier when I wave my iPhone (or Apple Watch) near one of the tags. The automation will turn it off after 3 hours.
Fingers crossed that it will work! :blush:
HomeKit Weekly: A beginner's guide to your Apple smart home - 9to5Mac

1 Like

Hmmm… it seems that Homekit/Home app doesn’t have a simple timer function: if outlet is turned on (eg tapping the small icon in the Home app) then turn it off after X minutes!
I can create an automation for another accessory that does this: if device 2 is turned on then turn on device 1 and turn it off after X minutes. But then I need a dummy outlet or other accessory to achieve this.
There have been many complaints online about this oversight but no fix from Apple.
In any case, my dehumidifier does not turn on automatically when the power outlet is activated so my plans have come to nothing (other than learning about more limitations with Homekit).
Snapshot of automation triggered by another accessory being turned on (gives a “Turn off” option)

All of my HomeKit outlets have this. It’s weird that yours don’t.

One thing to try is to change the outlet to a light (it asks when you set up an outlet if it’s a light or not) and see if the turn off after control returns.

Fwiw, I have the same issue with a dehumidifier and I use a HomeKit Eve Degree device which measures humidity levels. I have one automation that turns on the outlet when humidity reaches 80% or more and turns it off when humidity reaches 74% or less. But I need something like this rather than NFC tags because I’m only there a couple months every year. If I had one gripe at all about using Eve Degree it’s that it’s a battery controlled device that needs a new battery once a year or so. I wish they had a model that could be plugged in.

1 Like

Apologies - I hadn’t made myself clear. Yes the timed off feature is available with any automation that I create for an outlet or light, as illustrated in the snapshot. But I cannot trigger that timed automation by turning on that dehumidifier outlet, either by tapping its icon on the home screen or by creating a scene to turn it on.

The only way seems to be to create an automation that triggers if another device is turned on (or off @) as in the snapshot where the dehumidifier outlet is turned on for 2 minutes if the fan outlet is turned on (2 minutes was chosen for test purposes - Homekit allows up to 4 hours for timed off).

I have since realised that using an NFC tag should do the trick as waving my iPhone near it should create an event (similar to the fan turning on) that I can use to trigger the timed automation.
I will play with an NFC tag today and see if this works.

@ or a sensor triggers an event

Snapshot of scene with no “Turn off” option (compare with the previous snapshot of an automation triggered by an event - so, unlike automations, scenes can turn on accessories but do have have the option for a timer).

Unfortunately using an NFC tag does not solve the problem. That is because the Shortcut app that is triggered by tapping an NFC tag simply activates an existing Home scene or automation (that does not let me set a timer). It does not create a Homekit event that I can use to trigger a timed automation.

So my only option seems to be to have a second outlet that I turn on using the NFC tag and that, in turn, triggers an automation that turns on the humidifier outlet for a set time - as in the previous screenshot. That second outlet would likely not be used for any other control (at least Ikea smart outlets are relatively cheap!).

Also, not surprisingly, the Apple Watch SE does not detect NFC tags - I have to tap the tag with my iPhone.

Snapshot from Shortcuts app (see 9to5 article for details)

I think I have found a way using Shortcuts. I finally found how to control Homekit accessories with IF /OTHERWISE statements in Shortcuts. The trick is to add an action using the search field:


Choose Apps, scroll to the Home app and select the Accessory to be controlled.

This places the action (eg Set C7 Volvo [on] ) at the foot of the action list (below the END IF statement). You now need to drag it to the correct location in the list.
In my example I check if the C7 outlet (my EV charger) is on. If it is on then turn it off. Otherwise turn it on.


Cumbersome but it works. Holding my phone near the NFC tag toggles the outlet state.
Back to the timer issue… one of the Shortcut actions is “wait”. I should be able add this to the action list so that the outlet is turned on, wait for a specified time then turn it off. An exercise for later today :blush:

2 Likes

The Wait action sort of works. Annoyingly it seems that the duration can only be set by stepping up through a seconds counter. Also I have to figure out how to trigger the shortcut. At the moment I am using the NFC technique. I need to convert that to a Siri request. It would be useful to be able to tell Siri something like “Turn the kitchen fan on for 2 hours”

Can a normal iOS timer trigger a HomeKit scene? Maybe “Turn kitchen fan on”, followed by “turn kitchen fan off in 2 hours”?

There are several ways of dealing with the timer issue but most involve using tedious shortcuts that need an iOS device present. The purpose is to detect when a device is turned on (manually - not via an automation) and automatically turn it off off after a certain time has expired.

You can create an automation to detect when an accessory (eg a fan) is turned on and take action but that action cannot be to turn the accessory off after a certain time.

To get around this try creating an automation that detects when the fan is turned on and then turns another accessory on (such as an unused outlet or a light) and set that accessory to turn off after a certain time (up to 4 hours).

Now create a new automation that detects when the light is turned off and then turns the fan off.