Set up your house
Every game plays fine with nothing connected. If you want the room to react — lights dimming for night, a card you tap for a clue, a box that unlocks — this is how.
What is Home Assistant?
Home Assistant is free software that runs on a small computer in your home and controls your smart devices — lights, plugs, locks. We use it as the bridge: when a game reaches a dramatic beat, the TV sends a short message (a "webhook") to Home Assistant on your own network, and Home Assistant runs whatever you told it to — dim the lights, flash red, open a box. Nothing leaves your house, and we never touch your devices directly.
You set the address of your Home Assistant once, in the lobby's House panel on the TV. It is saved on that TV only.
Light cues
The TV posts to http://<your-home-system>:8123/api/webhook/games-<mood>
at three moments. Create one automation per mood in Home Assistant (Settings → Automations,
"Edit in YAML"). These use the living-room lights; change the entity names to your own.
- night — dusk falls; the room dims to candlelight.
- murder — a quick red pulse, then back to the candle.
- verdict — bright white for the reveal, then back to how it was.
# Home Assistant automations — one per light mood. The webhook_id must match
# the mood the TV posts (games-night, games-murder, games-verdict).
- alias: Games – night
trigger:
- platform: webhook
webhook_id: games-night
local_only: true # only devices on your own network
allowed_methods: [POST, GET]
action:
- service: scene.create # remember the current lights so verdict can restore them
data:
scene_id: games_before
snapshot_entities: [light.living_1, light.living_2, light.living_3, light.h6011]
- service: light.turn_on
target: { entity_id: [light.living_1, light.living_2, light.living_3, light.h6011] }
data: { brightness_pct: 5, color_temp_kelvin: 2200, transition: 3 }
- alias: Games – murder
trigger:
- platform: webhook
webhook_id: games-murder
local_only: true
allowed_methods: [POST, GET]
action:
- service: light.turn_on
target: { entity_id: [light.living_1, light.living_2, light.living_3, light.h6011] }
data: { rgb_color: [255, 0, 0], brightness_pct: 100 }
- delay: "00:00:02.5"
- service: light.turn_on
target: { entity_id: [light.living_1, light.living_2, light.living_3, light.h6011] }
data: { brightness_pct: 5, color_temp_kelvin: 2200, transition: 1 }
- alias: Games – verdict
trigger:
- platform: webhook
webhook_id: games-verdict
local_only: true
allowed_methods: [POST, GET]
action:
- service: light.turn_on
target: { entity_id: [light.living_1, light.living_2, light.living_3, light.h6011] }
data: { color_temp_kelvin: 4500, brightness_pct: 100 }
- delay: "00:00:02"
- service: scene.turn_on
target: { entity_id: scene.games_before }
continue_on_error: true # fine if no snapshot was taken
The House panel has a Test button for each mood, so you can confirm the wiring without starting a game.
Evidence cards
Cheap NFC stickers become clues you tap with a phone. Write each one with a free app like
NFC Tools: on the TV's card panel, each card shows the exact URL to write —
https://games.apricaut.com/t/<id>. Stick the tag on the object or in the
room it represents. During the game, a player taps it with their phone and the clue opens.
Tapping a brand-new card in the lobby lets you name it right on the TV.
A code lock box
For Escape Room, the finish is a locked box. The simplest version is a hardware combination box: set its dial to the code the TV shows, and the room has to earn that code to open it. For a hands-free version, wire a smart latch to Home Assistant (it shows up as a switch); the game pulses it open when the room enters the right code.
Which game uses what
| Game | Rooms | Lights | Cards | Lock box |
|---|---|---|---|---|
| Crown & Cloak | — | Yes | — | — |
| Lights Out | Yes | Yes | Yes | — |
| Locked In | Yes | Yes | Yes | Yes |