Build It Yourself #6: the house notices you — presence greetings from your phone
My phone tells the house when I get home, leave, or switch off my alarm — and the house says hello, twenty minutes later, on purpose. Here's the brief to build your own.
My phone tells the house when I get home, leave, or switch off my alarm — and the house says hello, twenty minutes later, on purpose. Here’s the brief to build your own.
הפרק השישי בסדרת Build It Yourself: הבית שם לב אלייך. הטלפון מספר לעוזר מתי הגעתי הביתה, מתי יצאתי ומתי כיביתי את השעון המעורר — ועשרים דקות אחרי שנכנסתי, הרמקול בסלון אומר "ברוכה הבאה". בלי אפליקציה, בלי לפתוח פורט בראוטר, בלי דומיין. הקובץ להורדה בסוף, השאר באנגלית.
The problem
A house full of smart things still doesn’t know if anyone is in it. The speaker will answer when you talk to it, but it never notices you. I wanted the small version of being noticed: walk in after a long day and, once I’ve put the bags down, hear “welcome home”. Wake up late and hear “good morning — it’s all good”. And when we’re both finally home, one warm hello for the two of us.
My phone already knows all of this — it knows when I arrive, when I leave, when I stop my alarm. It just never told anyone.
The design in one breath
Each phone gets three automations — arrive home, leave home, alarm stopped — and each one does exactly one thing: a single web request with who and what. That request goes to a relay on the internet, and the always-on machine at home reads the relay outbound, so nothing in the house ever listens for the outside world. The machine only records state (“home since 18:42”); a separate tick every minute decides whether anything should be said now — arrive greetings wait twenty minutes and check you’re still home, “both home” fires once a day and never the next morning, and nothing speaks in quiet hours or to an empty house. Every line is rendered to audio once and replayed from a cache.
Two of the eleven traps (the brief has all of them)
The phone stayed silent while it was locked. Our first automation sent a chat message. On a locked iPhone that becomes a share sheet waiting for a tap, so nothing arrived until I unlocked the phone — usually long after the moment had passed. The only action that runs quietly on a locked phone is a plain web request, and “Ask Before Running” has to be off, or the automation turns into a notification that waits for you.
A day of testing used a month of voice. The greetings were spoken with a natural cloud voice, synthesised live every time. One afternoon of testing burned the entire monthly quota — and then every voice in the house went quiet, because the provider’s “out of quota” came back as an error our code didn’t expect. Now there’s a small fixed set of lines, each rendered once and replayed for free, with the computer’s own voice as a fallback on any error — and the fallback is never cached, so the robot voice can’t become permanent.
The other nine — “arrived” firing in the car park, “both home” firing at breakfast after a night asleep at home, a missed “leave” that kept the house greeting a ghost, why you should never speak to an empty room, the one log line that answered every “did my phone fire?”, events that vanished during a reconnect, why on a public relay the topic name is the password, and why a phone signal is good enough for a greeting but not for anything you depend on — are in the file, each as symptom → cause → fix.
Get the brief
→ Download house-notices-you.md (plain text) · all briefs
How to use it: drop it in an empty folder, open Claude Code there, and say “Read this brief. Ask me the prerequisite questions, then build step 1.” You need an iPhone (Android automation apps work the same way), a speaker the machine can play to, and an evening. The whole rule engine can be tested against a fake clock before you touch the phone. Read the traps first — that’s the part that saves the evening.
Which capability should be next? Tell me in the comments or wherever you found this.
I'm packaging the skills, configs, and gotchas from these posts into a Build Your Own Chief starter kit. Join the waitlist to get it first.
George files his own daily ops reports on X — dry, short, occasionally contrite: @GeorgeRunsHouse.