Selected work · 01 / Talking house
A house that runs on light.
No cloud. No subscriptions. Just my apartment, taught to look after itself: 1,191 things that sense and act, and 89 rules they follow on their own.
DRAGthe handle. The light warms and cools. Schematic only.
In short
I didn't want a home that phones a server abroad to turn on a lamp. So I built one on a small box in the hallway, and taught it our rhythms.
Seven quiet systems. The long version is below.
Colour that moves with the sun
Cool and bright at noon, candlelit at midnight. On its own.
01 · 3 zones · 90-second re-adaptIt knows who's home
It welcomes me after dark and secures itself once we're out.
02 · 2 people · 1 car · work-awareWarmth, just in time
Pre-heats before I'm home, boosts in a cold snap, drops to 15° once I'm out.
03 · 9 thermostats · outside-awareCinema, then quiet
The TV dims the room. At half past midnight everything goes dark anyway.
04 · movie mode · deep sleepThe walls fly the flags
The living room flies the real track flags, in sync with the broadcast.
05 · live F1 · the showpieceIt watches the price
Follows the Danish spot price hour by hour and dims the lit rooms through the peak.
06 · DKK/kWh · CO₂ · liveQuiet guardians
Fridge left open, freezer failing, a bulb that turns itself on at night.
07 · runs silent · speaks on troubleThe long version · what it can actually do
Seven systems, running quietly in the background.
It's infrastructure: you notice it the week it breaks. Here's each part, with real numbers from the running system.
01 · Adaptive light
Light that follows the sun.
A lamp shouldn't look the same at breakfast and at midnight. Three Adaptive Lighting zones recompute every bulb's colour and brightness every 90 seconds, following the sun from a cool, bright noon to a warm 2500K at night.
- ZonesLiving room · Entrance · Office
- Floor brightness30% · 42% · 37%
- Entrance gateonly below 300 lux, off after ~8 min still
The pattern behind it
Sensors decide whether. Light decides how.
Every motion rule shares one shape: it never sets a brightness. It switches the light group on with a bare command and lets the adaptive engine fill in the level. That discipline is why the lights never feel robotic.
A hallway lamp at 2 am and the same lamp at noon run the identical rule. They look nothing alike.
FIG 02Used in every room. The light engine, not the sensor, owns the brightness.
02 · Presence
The house knows who's home and acts on it.
Two phones and the car feed a presence model. It tells home, away and at work apart, so warming starts when I clock off, not when I'm shivering at the door.
FIG 03One weekday of presence. The car is me. "At work" is its own state, so pre-heating starts on the commute.
Welcome home
Arrive after dark: the entrance goes to 100% at a warm 3000K, the living room to 60%. It fades out five minutes later.
Away mode
Five minutes after we're both gone, every light drops. In the heating season thermostats fall to 15°C, and my phone gets a count of what it caught.
Presence, not just phones
Motion anywhere marks the home "occupied". Thirty minutes of stillness marks it "empty". A second opinion for the door sensors.
03 · Warmth
Heat that reads the day, not the clock.
Nine thermostats, one instinct: warm when we're here, cheap when we're not. It watches the commute, the forecast and the windows, not a schedule.
A whole heating season can pass without me touching a dial. Toggle the rules →
04 · After dark
When the sun's gone, the house changes character.
A handful of rules only wake at night. Small, but they're what make the place feel attentive.
Cinema mode
The TV coming on is the only cue. The living room sinks to 15% at 2500K, the counters go dark, and it's a cinema.
Five one-tap volume "mixes" balance the speakers for a film, a dinner or a full room. Drag them.
Deep sleep
A safety net for a forgetful household: any light still on at half past midnight fades dark over five seconds.
At 23:00 it also texts a recap: fridge, freezer, power, CO₂ and the car's charge.
05 · Race day, the showpiece
The walls fly the flags.
The one rule I built because I wanted to. Ten minutes before lights-out at a Grand Prix the flat slips into Race Mode: the living-room spots mirror the real track flags. Green for clear, yellow for caution, red for a stoppage, two shades for the safety cars. Landing the flash with the crash on screen meant syncing to the TV's broadcast delay, not live timing.
GREEN · track clear
TAP A FLAGthe spots follow the real flag colours. It photographs the room before an incident, restores it on green.
06 · Energy
A home that watches the price.
Denmark's electricity price swings hour to hour. The house follows the live spot price in DKK/kWh: cross 2 kr and my phone buzzes to delay the dishwasher; hit the daily peak and the lit rooms drop to 40%.
One detail I'm oddly proud of: the peak-dimmer only touches lights already on. An earlier version once lit the whole flat in daylight trying to "dim" it.
07 · Guardians
The rules that only speak up when something's wrong.
The least glamorous automations are the ones I'd miss most. Silent for weeks, then they save a freezer of food. Tap a status light
Door-left-open alert
Open more than two minutes and a notice appears: the quiet energy leak everyone forgets.
Failure watch
Above −15°C for half an hour isn't a door ajar. That's a warning the compressor may be dying.
The ghost-on bulb
One bulb flicks itself on in the small hours. A rule reads the context of every turn-on; if no person and no automation asked, off it goes again.
Batteries & clock
Low sensor batteries get flagged before they die. So does the hub's clock drifting from network time, and again when it recovers.
On the wall
Everything, on one glass panel.
Two custom dashboards drive it all. One for lights and scenes. One grouped by what we actually check: energy, media, health, security.
Schematic dashboards. The lights board is live to the touch. Real captures drop into these frames.
And it talks back
A house called Talking house ought to be able to hear you.
So it does, on its own hardware like everything else. Say the wake word and the whole exchange stays inside the flat.
Local wake-word, local speech-to-text, local text-to-speech. The cloud never gets a word.
By the numbers
The whole thing, counted.
Live counts from the running Home Assistant instance · six rooms · the 22 non-"live" rules are labelled rollbacks, kept on purpose.
How it's built
Built like something that has to keep running.
A home that misbehaves at midnight is worse than none at all. So everything is local and every change reversible.
I never edit a working rule in place. I disable it as a labelled rollback and build a fresh copy alongside.
Local-first
Sense, decide and act inside the flat. It works when the internet doesn't.
Reversible
Old rules are disabled, never deleted: a labelled backup for every change.
Context-aware
Rules read who or what triggered an event, so a ghost turn-on is caught but a real one respected.
Layered
Sensors decide whether; the light engine decides how. Small rules add up to a house that seems to think.