RoomCaddie
Smart home
Tell Home Assistant or any web address what the room is doing.
RoomCaddie can tell Home Assistant, or any web address, when a tile starts or ends and when the room starts, goes idle, wakes or exits. Your hub decides what to do with that: a light scene, the projector, a receiver input, a fan, a phone notification. RoomCaddie only sends. Nothing is sent until you add a connection in Settings. The same text is on roomcaddie.com and behind "How to set up" under Settings > Smart home inside RoomCaddie.
Home Assistant
- Make the automation in Home Assistant. Settings > Automations & Scenes > Create automation > Create new automation. Add a trigger and pick Webhook. Copy the webhook id. Leave "Only accessible from the local network" on; RoomCaddie is on your network. The allowed method must include POST (it does by default).
- Connect RoomCaddie. In RoomCaddie open Settings (the pencil on the home screen, then Settings...), find the Smart home row and press Set up..., then Add Home Assistant. The address is already
http://homeassistant.local:8123; change it if your Home Assistant lives somewhere else (for examplehttp://192.168.1.20:8123). Paste the webhook id. Press Test. "Home Assistant answered in 0.3 s" means the two can talk. It does not prove the id: Home Assistant answers every webhook id, right or wrong, so step 3 is the real check. "No answer" means the address is wrong or Home Assistant is off. Press Save. - Choose what the automation does. Back in Home Assistant, open the automation's trace (the three dots > Traces) and you will see the test RoomCaddie just sent, with every field below. Add the actions you want. To react to one event only, add a condition on the message:
{{ trigger.json.event == 'activity.started' }}. The tile's name istrigger.json.activityand the note you typed istrigger.json.note, so one automation can run a different scene per tile. - Tell a tile to send. Edit the tile (the pencil, then tap the tile). Under its steps there is a Smart home row. Open it and tick On start, On end, or both, and type a note if your automation reads one (for example
scene: golf). On end needs a main program with "Come back to the home screen when it closes", because that is the moment RoomCaddie knows the tile ended; the message carries the whole minutes it ran. - Room events, if you want them. In Settings > Smart home each connection has four ticks: Room started, Idle screen on, Idle screen off, RoomCaddie exits. They are all off until you tick them.
Any web address
Add a URL instead of (or as well as) Home Assistant. Give it a name, paste the address, and choose how to send: POST the message (the message below, as JSON) or GET the URL as typed (nothing added; good for devices that take their command in the address, like a WLED light strip's /win&PL=3). Everything else works the same: Test, the room-event ticks, On start and On end on a tile.
The message
Every send is one small JSON object. Fields never change meaning; new ones may be added later, never removed. A GET sends no message, only the address.
{"event":"activity.started","activity":"Play Golf","note":"scene: golf",
"room":"THE MURPHY SIM BAY","minutes":null,"time":"2026-10-08T21:42:07-04:00",
"rc_version":"1.5.0"}
| Event | When |
|---|---|
test | The Test button in Settings |
activity.started | A tile with On start launches |
activity.ended | That tile's main program closes; minutes is how long it ran |
tile.pressed | A smart-home tile is tapped; activity is the tile's name, note its note |
room.started | RoomCaddie opens |
room.idle | The idle screen comes on |
room.awake | The idle screen goes off |
room.exit | RoomCaddie closes, including when the PC shuts down, restarts or signs out |
When RoomCaddie closes with a tile still running, that tile's activity.ended goes first, then room.exit, once.
What to expect
- Nothing waits for your hub. A signal goes out alongside the launch; the program starts the same instant. If the hub never answers, the tile still runs exactly as before.
- If a signal fails (no answer within 5 seconds, then one retry 2 seconds later), nothing appears during the activity. When the home screen comes back, one quiet line under the clock says which connection did not answer. It clears on the next signal that gets through, and Settings > Smart home shows the last answer per connection and the last 20 signals.
- Your network only, by default. An address on your own network needs nothing. An address on the internet needs its "send to it anyway" tick.
https://to an address on your own network is refused, because RoomCaddie has no way to check a home-made certificate; usehttp://. - The webhook id and the URL are secrets. After Save they are shown like a password (Show reveals them), they are never written to the signal log, and they are removed from support info before it leaves your PC.