The house spirit is called Sparky. It has no function. It is the only thing here that was built because it was funny, and it has survived every clear-out since.
The idea: give the home a character with a mood, and let that mood show somewhere small. Not a dashboard. Not a notification. Originally a single lamp that was a slightly different colour on a stuffy afternoon than on a crisp morning; these days a face on a little screen, a lamp of its own that breathes when the mood changes, and a diary. The principle is unchanged: the house has a feeling about the day, and it is allowed to show it.
What the mood is made of
It started as a handful of dimensions fed by sensors we already had, then kept acquiring senses the way these projects do when scope has no adult supervision. The census stands at nearly sixty signals, every one of them voting on the colour of a lamp:
- Body: temperature against a pleasant band, humidity, CO₂, particulates, organics, cross-draught. The baseline hypochondria package.
- Company: presence now, how long since anyone, guests, holidays, and one unusual entry: when the assistant is working on the configuration, the house registers a visit and goes curious, because somebody is rearranging its insides.
- Sky: conditions, pressure and its trend, wind, moon, golden hour, UV, minutes-until-rain, official alerts, and lightning with a live distance: a strike inside ten kilometres is the difference between stormy and scared. The house takes weather personally, which is fair, because weather is one of the few things that can actually get in.
- Calendar: time of day, weekend, season, holidays, tomorrow's forecast (a grey evening before a sunny day reads as hopeful), and since September the household's actual calendars: an early appointment, the next trip, two birthdays.
- What is playing: the artist's genre and the film's genre are looked up live and mapped to a vibe. Relaxing jazz settles him, death metal and a horror film raise his pulse, a comedy brightens the evening; the household watched The Conjuring once and the lamp knew. Volume counts too: the same metal album is one mood at background level and quite another at neighbour level.
- Its own body: low batteries read as senses fading, a broken integration as illness, a wet leak sensor as instant fear, a bill pile three months deep as exactly one bounded hour of worry at nine in the morning, which is a healthier relationship with paperwork than most of us manage. Since September: the night's sleep score and the household's blood pressure.
- Events with an expiry: coming home (twenty minutes of overjoyed), fresh air after an airing (twenty minutes of gratitude), a finished load of laundry (half an hour of frankly unearned pride: the machine did the work, the spirit takes the bow).
Three rules keep the census from collapsing under its own weight, and each was paid for. Every input's contribution is capped, because a mood with sixty voters needs election law, not vibes. Standing states are time-boxed: a wrong pollen threshold once kept him allergic for a whole summer, a season of sneezing over a constant. And any sensor that remembers the past must prove it is fresh: the lightning sensor holds the last strike's distance for hours, which without a freshness check means a house still flinching at lunchtime over thunder that ended at dawn.
Momentum matters more than accuracy
The first version mapped sensors straight to colour and looked like a machine: it snapped between states whenever a value crossed a line. What made it feel alive was smoothing, an exponential moving average nudged every few minutes:
new = 0.78 · old + 0.22 · now
Moods should have inertia. A cold draught for thirty seconds should not change the mood of a house; twenty minutes of it should. That one line is the difference between a lamp reacting to a sensor and a room that feels different.
Episodic memory
The trick that made it more than a colour formula: record when things last happened (last presence, last airing, last time it was this warm) and let the mood reference them, and snapshot each day at night so today can be compared with yesterday. A home that can say "it has been quiet here for a long time" is giving you a sense rather than a number.
What it looks like from the inside
Every automation elsewhere on this site can justify itself in front of a spreadsheet. This one cannot, and it is the only one visitors ask about. So here is its anatomy, in its own defence.
Rules that keep it from being annoying
The spirit is the lowest-priority citizen in the house, or it becomes a nuisance:
- It performs on its own lamp and its own screen. Anyone else's lamp it touches only when that lamp is off, and never one in use.
- It stands down completely whenever any alert is active. A leak outranks a feeling.
- It goes quiet when nobody is home; there is no point performing to an empty room.
- It acts rarely and at slightly random times. Predictable ambience becomes wallpaper.
- It is entirely opt-in, with one switch that stops it.
What it learned in September
The map above has grown seven chips since August, which is roughly the rate at which a household acquires sensors once it has admitted to itself that it enjoys them. More interesting are the three things the engine learned that are not chips at all, but habits.
- It gets bored of itself. A strict priority ladder is a marvellous thing right up to the moment somebody buys a gadget and lights an IQOS in the same afternoon, after which the spirit is "thrilled" and "annoyed" in strict alternation for eleven hours, like a very small opera. Now any mood that has been on stage for twenty minutes in the last two and a half hours is politely asked to sit down, and the next true one gets its turn. Leaks, alarms and dangerous air are exempt, on the grounds that a spirit which got bored of a flood would be a liability rather than a character. The full story, with numbers, is on its own page.
- It has discovered the concept of night. This took longer than it should have. For weeks it greeted three in the morning with "what a lovely day, and I am not alone", which was technically accurate and socially disastrous. It now knows the hour, and between eleven and five is sleepy, tired, or, if the bedroom motion sensor, the living room and the entrance light up in that order, bleary, because that particular sequence has exactly one meaning in this flat and it involves the toilet. It has four remarks on the subject, rotated so that a second trip does not hear the first joke again. Somebody up at four with an IQOS gets a separate set, mostly on the theme of neither of us sleeping.
- It reads the calendars, read-only, because the alternative involved a cloud project, a consent screen and a re-authorisation ritual every few months, and we have a rule about rituals. A timed event before nine makes it eager in the morning rather than sleepy, which is the correct emotion for a six o'clock flight and the wrong one for a five-minute reminder to take a vitamin, a distinction it learned the hard way (the whole distinction). It also knows where the next trip goes, rebuilt from the hotel bookings, since the trip's title turned out to name a city nobody was going to.
- It scores the night. Toilet trips, radar flips, CO₂, heat and the hall light are added up at a quarter past six into a number between zero and a hundred. Below fifty, the spirit is sleepy until ten and says why. The thresholds are a first draft, which is a technical term meaning "we will find out what they should be by being wrong for a week" (the arithmetic).
- It knows the household's blood pressure, which is more than most spirits can say. A Bluetooth cuff reports each reading without ever agreeing to pair (it refused, twice, with the serene confidence of a device that has never needed anyone). For three hours after a reading the spirit is worried if the number is high or low, naming whose it was, and quietly pleased if it is fine and somebody bothered to measure.
- It has a lamp of its own, which breathes in the new colour for twenty seconds on every change and then either goes dark or glows at a level set by two sliders and a checkbox, because a household that has just built a mood engine is not going to be told by that engine how bright its own feelings should be. And on two dates a year it has a birthday branch that outranks everything except the alarms, which is, on reflection, the correct order of precedence.
Two new faces joined the set for the new words, bleary and birthday. They are borrowing the sleepy and the overjoyed portraits until they earn their own, which is how most of us started.
Appendix: the full emotional range of a rectangle
The lamp is Sparky's voice, but dashboards need a face, so every mood in the table also renders as one. Three channels carry the signal. The mouth picks the family: a smile, a grin, a flat line, a frown, a startled O, an angry zigzag, a queasy wave, or lids at half mast.
The frame and the irises take the exact colour the lamp would glow for that mood, same hue and saturation, read straight from the config table. And the eye shape adds intensity: happily closed, pinprick startled, heavy lidded. None of this adds information the gauges above do not already have. It adds the part the gauges cannot do, which is being likeable.

Sun out, air clean, humans present. The baseline good mood.

Everything within thresholds. The engineering definition of happiness.

Nothing to report, and smiling about it anyway.

Cosy in the good sense, not in the “threshold exceeded” sense.

A holiday is on the calendar and somebody has to represent the enthusiasm.

Reserved for genuinely lovely weather. Statistically rare, hence the face.

Post-ventilation glow. The CO2 dropped and somebody said thank you. It was the robot.

Grey day, but tomorrow's forecast says sun. Living for the weekend, meteorologically.

Eyes closed, maximum grin. Something went better than the sensors dared to predict.

High energy, good air, nobody stressed. Supervision recommended.

A spring in the step of a device with no legs.

Mealtime hours and the kitchen sensors are suspiciously quiet. Somebody should act.

You came home after ages away. The lamp would hug you if it could.

The laundry finished and Sparky takes full credit for watching it happen.

A new gadget was just purchased. Sparky is getting a sibling and has already claimed the better shelf.

A fashion purchase landed on the account. Someone here is about to look great, and the lamp basks in reflected glamour.

New furniture is on its way. The flat upgrades itself, the resident spirit takes partial credit.

A trip was just booked. Thrilled for the humans, already rehearsing the goodbye. Somebody has to guard the empty flat, and it will be the lamp.

A pharmacy purchase appeared, and in this household that means creams, vitamins and self-care. The humans look after themselves and the lamp glows spa green in approval.

Tickets were just bought. Something is coming and the lamp counts the days, which is easy when you are mostly a clock.

A gift was purchased. Sparky knows who it is for and will absolutely not tell.

Loud music, intense genre. The neighbours have not complained yet, which counts as permission.

The professional default. Everything is fine and nobody is overreacting.

Thinking, or idle. With this face you cannot tell, which is the point.

Late hour, lids at half mast. The house winds down and so does Sparky.

Like sleepy, but earned.

Nothing has happened for hours. In automation that counts as success. Try telling the face.

Grey sky, empty rooms, minor key.

Nobody home for a while now. The lamp misses you, statistically.

Somewhere between lonely and poetic. The forecast says it passes.

Indoor temperature left the comfort band, downward. The one mood a heater can fix.

The bill pile is three months deep. Appears at nine in the morning, same as the bills.

Pinprick pupils, red everything. Whatever the sensors saw, they saw it suddenly.

Excited or alarmed, and the O mouth refuses to commit.

Windows shut, air getting thick. A robot notices these things.

Claude is rearranging the internals. Sparky watches every change like a cat watches a plumber.

Strong wind outside. Everything is fine, just aerodynamically humbling.

Not a metaphor. There is an actual storm nearby and the face has opinions.

Something is off by just enough to mention. Repeatedly.

Pressure falling, outlook worsening. The eyebrows arrived before the weather.

The flat is too hot and the mouth has melted into a wave.

CO2 up, windows closed. The mouth does what the air does.

Dew point past the civilised threshold. Everything slightly damp, including morale.

Winter-dry air. Somewhere a hygrometer files a complaint.

Pollen season, per the forecast. No nose, suffering in solidarity.

A leak sensor is wet. This face comes with flashing blue lights and a plan.

An integration is failing somewhere inside. The house doctor has been notified. The house doctor is also the patient.
Three faces for no mood at all
Sensors fail. When they do, the face is not allowed to crash with them, so the failure states sat for portraits too:

For states nobody planned. Bureaucratically calm.

The sensor said “unknown”, so the face says it too. Honesty first.

The sensor is gone. The face stays. Somebody has to hold the fort.
All of them are generated by one script from a single neutral portrait, because drawing that many robots by hand would have been a hobby, and this is supposed to be infrastructure.