Local-first home intelligence
ZORDON

A home brain that interprets like a model and acts like a machine.

A privacy-first smart-home hub running entirely on a recycled Xiaomi phone. Natural language in; a small local model reads intent, deterministic code validates and executes — or refuses. Nothing about the flat leaves the flat.

Runs offline on a €0 recycled phone · Qwen local · governed cloud escalation
The thesis

The model proposes. Deterministic code disposes.

The same principle behind every system I build for regulated industries, running in my living room. The LLM never touches a light directly — it only produces a structured intent that a hard-coded gate has to accept.

01 · Interpret

Local LLM

Qwen2.5 on the phone reads “make it cozy” or “¿quién vive aquí?” into a typed intent. Ambiguous cases escalate to a capped cloud model.

02 · Validate

Governance gate

  • Action in the allow-list?
  • Target a real device?
  • Caller permitted?
  • Else — refuse, don't guess.
03 · Execute

Deterministic Python

Only validated intents reach the hardware over the LAN. Every action is logged. The model can be wrong; the flat can't.

Why it matters: an LLM that can hallucinate a light command is a novelty; one that physically can't act outside a verified envelope is infrastructure. Zordon is the home-scale proof of the pattern.

What it runs

One hub, the whole flat

Built feature by feature into a single always-on service — reached from a web page on the wifi or a Telegram bot from anywhere.

💡

Lights & scenes

Seven Yeelights over the LAN — colour, per-room, and modes: home, sleep, away, movie.

🎬

Two projectors

Movie night dims the room, wakes the projector over ADB and opens the app. Living room and bedroom.

🎵

Music mode

Beat-reactive lighting driven by a laptop FFT, triggered and synced over MQTT.

📋

Notes & reminders

Per-person notes, a shared grocery list, Telegram reminders — the low-friction memory an ADHD brain needs.

🧾

Purchase intelligence

Sorli and Glovo receipts parsed into a purchase history — the groundwork for “you're about to run out of X”.

🚲

Live city data

Real-time Bicing e-bike availability and Gràcia weather, injected only when asked — never invented.

📱

Phone control

Drives the phone over ADB: launch Spotify, toggle Bluetooth, and a “find my phone” that rings it at full volume.

👁

The Zordon face

A canvas pin-wall face — glowing eyes, a slow blink — projected on the wall on command. Because why not.

🔐

Who's talking

Identity by device on the wifi and by Telegram ID — owner, flatmate, guest — each with their own permissions and profile.

Design stance

Built for a real home, not a demo

Private

Local by default

Intent parsing, device control and telemetry stay on the phone and the LAN. The cloud model is an escalation, capped and optional — never a dependency.

Legible

Calm & neurodivergent-friendly

A quiet interface with progressive disclosure and capability-aware controls. Designed around a 2e / ADHD brain: less on screen, clear reasons, no dead ends.

Shared

Multi-resident

Flatmates get their own scoped access and a self-service profile, bilingual EN/ES, with home control that unlocks on move-in — not a single-owner gadget.

Under the hood

A recycled phone, treated like a server

No cloud platform, no subscription, no new hardware — a decommissioned handset running a real service stack in Termux.

Redmi Note 12 · Termux Qwen2.5-1.5B local llama.cpp GLM-4.6 capped escalation FastAPI · Uvicorn Mosquitto · MQTT Yeelight LAN ADB · Android TV & phone Telegram long-poll GBFS · Open-Meteo