Stick a tiny NFC tag on your nightstand. Tap your phone before bed. Lights off, doors locked, alarm armed, morning alarm set. That's the magic of NFC tags with Home Assistant. They cost pennies, need no batteries, and turn any surface into a smart home control point. Here's everything you need to know.
Jump to a section
Getting NFC tags working takes about 5 minutes per tag. Here's the process from start to finish.
Download the Home Assistant Companion app on your iPhone or Android phone. Sign in and make sure it can reach your HA instance on your local network.
Open the Companion app, go to Settings → Tags → Create Tag. Give it a name (like "Nightstand" or "Front Door"). Tap Write Tag and hold your phone against the NFC sticker. The app writes a unique Home Assistant tag ID to it.
In Home Assistant, go to Settings → Automations → Create Automation. Choose Tag is scanned as your trigger. Select the tag you just wrote. Then add whatever actions you want: toggle lights, lock doors, set scenes, send notifications.
Peel the backing off your NFC sticker and stick it wherever makes sense. Under a nightstand, next to a light switch, on the inside of a cabinet door, behind a picture frame. The tag works through most non-metallic surfaces.
iPhone users: On iPhone XS and newer running iOS 13+, background tag reading means you can just tap your phone on the tag without opening the app first. A notification pops up, you tap it, and the automation runs. On older iPhones, you need to open the Companion app and use the NFC scan feature manually.
Android users: Most modern Android phones scan NFC tags automatically when the screen is on. The Home Assistant Companion app intercepts the tag and fires the automation directly. Some phones even scan tags with the screen off if NFC is enabled in settings.
The real fun starts when you think about where to place tags. Here are ten ideas that people actually use every day.
Stick it under your nightstand or phone stand. Tap before bed: all lights off, doors locked, alarm set, bedroom fan on. Tap in the morning: kitchen lights on, coffee maker starts, weather report on your speaker.
Place it by the door. Tap when leaving: all lights off, thermostat to away mode, robot vacuum starts, security cameras arm. Tap when arriving: welcome lights on, thermostat to home mode, disarm cameras.
Near your TV or gaming setup. Tap to activate: dim living room lights to 10%, turn on TV, set receiver to the right input, close blinds. A single tap replaces five remote controls.
On your desk. Tap to start work mode: office lights to focus brightness, set "Do Not Disturb" notification, start a focus timer, play work playlist on your speaker.
On the washing machine or dryer. Tap when you start a load: set a timer notification for 45 minutes. When it fires, you get an alert on your phone and your speaker announces the laundry is done.
Stick one near your plant area. Tap after watering: logs the date to a Home Assistant counter. If it has been more than 7 days, you get a reminder notification. Simple plant care tracking.
In your car or by the garage door button. Tap to open/close the garage, turn on driveway lights, and either arm or disarm the house depending on which direction you're going.
Let kids control their own room with a tap. Night light on/off, music player toggle, gentle color cycle for bedtime. Simpler than teaching them Home Assistant, and no screen time required.
On the leash hook or by the back door. Tap when you leave for the walk: porch lights on, set your status to "away," start a timer. Tap when you return: reset everything.
Stick different tags on coasters, album covers, or small cards. Each one plays a specific playlist or radio station on your nearest speaker. Physical media vibes without the physical media.
Here are practical automations you can copy and paste. Replace the entity IDs with your own.
Tap the bedside tag after 8 PM to run your full bedtime routine.
automation:
alias: "NFC Bedtime Routine"
trigger:
- platform: tag
tag_id: YOUR_TAG_ID_HERE
condition:
- condition: time
after: "20:00:00"
action:
- service: light.turn_off
target:
entity_id: all
- service: lock.lock
target:
entity_id: lock.front_door
- service: climate.set_temperature
target:
entity_id: climate.thermostat
data:
temperature: 18
- service: alarm_control_panel.alarm_arm_night
target:
entity_id: alarm_control_panel.homeSame tag flips between "movie mode" and normal lighting.
automation:
alias: "NFC Toggle Movie Mode"
trigger:
- platform: tag
tag_id: YOUR_TAG_ID_HERE
action:
- choose:
- conditions:
- condition: state
entity_id: light.living_room
state: "on"
attribute: brightness
# If lights are bright, switch to movie mode
sequence:
- service: scene.turn_on
target:
entity_id: scene.movie_mode
default:
- service: scene.turn_on
target:
entity_id: scene.living_room_normalTap the front door tag to switch everything to away mode.
automation:
alias: "NFC Leaving Home"
trigger:
- platform: tag
tag_id: YOUR_TAG_ID_HERE
action:
- service: light.turn_off
target:
entity_id: all
- service: climate.set_preset_mode
target:
entity_id: climate.thermostat
data:
preset_mode: away
- service: vacuum.start
target:
entity_id: vacuum.roborock
- service: notify.mobile_app_phone
data:
message: "House secured. Vacuum running. See you later!"Tap the washing machine tag to start a reminder timer.
automation:
alias: "NFC Laundry Timer"
trigger:
- platform: tag
tag_id: YOUR_TAG_ID_HERE
action:
- service: timer.start
target:
entity_id: timer.laundry
data:
duration: "00:45:00"
- service: notify.mobile_app_phone
data:
message: "Laundry timer started. I'll remind you in 45 minutes."Run different actions depending on who tapped the tag.
automation:
alias: "NFC Per-User Welcome"
trigger:
- platform: tag
tag_id: YOUR_TAG_ID_HERE
action:
- choose:
- conditions:
- condition: template
value_template: >
{{ trigger.context.user_id == 'YOUR_USER_ID' }}
sequence:
- service: media_player.play_media
target:
entity_id: media_player.kitchen_speaker
data:
media_content_id: "https://your-ha/local/welcome_home.mp3"
media_content_type: music
default:
- service: notify.mobile_app_phone
data:
message: "Someone scanned the front door tag."NFC tags don't work when stuck directly on metal. The metal interferes with the signal. Use "anti-metal" or "on-metal" NFC tags that have a ferrite shield layer, or place a non-metallic spacer (like a thick sticker) between the tag and metal surface.
Hide tags under surfaces for a cleaner look. NFC reads through wood, plastic, fabric, and thin stone. Stick a tag under a wooden nightstand and tap through the top. Under a desk mat. Behind a thin picture frame. Nobody needs to see them.
Make the same tag do different things based on time. A single bedside tag can run a morning routine before noon and a goodnight routine after 8 PM. Use the condition: time block in your automations to branch.
NFC tags only work through the Companion app, so guests need the app installed and connected to your HA instance. For guest scenarios, consider pairing NFC tags with a guest user account that has limited permissions. Or use smart locks with PIN codes for access control instead.
Use NFC tags alongside presence detection for smarter automations. The front door tag could check if you're the last person leaving (nobody else home) before activating full away mode. If others are still home, just set your personal status to away.
When you write a tag, give it a descriptive name in Home Assistant immediately. "Tag 1" and "Tag 2" will haunt you once you have 15 tags around the house. Use names like "bedside-master," "front-door," or "washing-machine." Future you will thank present you.
NFC tags are one of the cheapest, easiest Home Assistant projects. A pack of 25 tags costs less than lunch. Grab some, stick them around the house, and start turning taps into automations.
Total cost: under $12. Time to first working tag: about 5 minutes.