Daniel sent us this one, and it's one of those prompts where the frustration is practically radiating off the screen. He's spending five to ten minutes a day hunting for misplaced things — phone, wallet, keys, charger — and he's realized the commercial tracker model breaks down when you need to track twenty-plus items around the house. Tile, Pebble Bee, AirTag — they're designed for your three to five most valuable things, not the sprawling archipelago of objects an ADHD brain can misplace between breakfast and lunch. So the question is: can you build a self-hosted BLE tracking system in Home Assistant that scales to thirty tags without costing a fortune, and can you take a version of it on the road?
The answer, which I find genuinely exciting, is yes — with some caveats that are actually interesting rather than deal-breaking. The core insight here is that commercial trackers solve the wrong problem for this use case. Each Tile or AirTag is essentially a tiny computer that phones home through a proprietary app and a cloud service. When you have twenty of them, you're paying for twenty little cloud-connected computers. What you actually need is twenty dumb radio beacons and one smart listener.
The musical equivalent of beige wallpaper — you don't need each tag to be a soloist, you need them to be the chorus.
And that chorus is dirt cheap. Generic BLE tags — the kind that just broadcast a MAC address and maybe a battery level — are two to five dollars each on AliExpress right now. I'm looking at listings from this week. XiaoMi Mijia temperature sensors, which also broadcast BLE, are around four dollars. Basic nRF-based tags without screens or buttons are under three dollars in bulk.
The math is: twenty Tiles at twenty-five dollars each is five hundred dollars. Twenty generic tags at three dollars each is sixty dollars. That's an eight-to-one ratio before you even factor in subscription fees.
And Tile's premium subscription, which gives you smart alerts and location history, is thirty dollars a year. So over three years, you're looking at nearly six hundred dollars versus sixty. But the cost savings are actually the second-most interesting thing here. The first is the architectural shift.
Walk me through that. What's actually happening under the hood when a BLE tag talks to a coordinator?
There are two fundamentally different modes. Mode one is a persistent connection — the coordinator and the tag establish a link, they negotiate parameters, and they maintain an active channel. This is what your phone does with your smartwatch. It's reliable, you get bidirectional communication, but it burns through connection slots fast. A BLE four-point-zero coordinator can maintain maybe ten simultaneous connections in practice — the spec says more, but real-world throughput and latency make ten the practical ceiling.
Ten connections for twenty tags means you're already in trouble.
You'd need two coordinators, and you'd have to manually assign tags to each one. It gets messy. But mode two — and this is where the DIY approach really shines — is connectionless scanning. The tags just broadcast advertising packets into the void every few seconds. They don't know or care if anyone is listening. The coordinator just scans, picks up those packets, and logs the MAC address, signal strength, and timestamp.
The tag is basically a lighthouse, and the coordinator is a ship watching for the beam.
And because there's no connection to maintain, a single BLE five-point-zero coordinator can track twenty, thirty, even fifty tags simultaneously. The limit isn't connection slots — it's how fast the coordinator can cycle through the advertising channels and how densely the tags are broadcasting. BLE five's extended advertising feature lets you cram more data into each packet and use coded physical layers for longer range, but for basic presence detection, you don't even need that. BLE four-point-two is sufficient for most home setups.
You mentioned this has been stable in Home Assistant for a while now.
Since mid-twenty twenty-one, actually. The ESPHome BLE tracker component was released then and reached stability with version twenty twenty-two point six. It's been rock solid for over three years. The way it works is you take an ESP32 dev board — these are five to ten dollars each — and you flash it with ESPHome firmware. The ESP32 has built-in BLE and WiFi. You configure it as a BLE proxy, which means it scans for advertising packets and forwards whatever it sees to Home Assistant over your local network.
You can scatter these around the house like little radio ears.
That's the architecture. One ESP32 per floor, maybe one in the garage, one in the basement. Each one covers roughly five hundred to a thousand square feet with line of sight — walls knock that down, but BLE penetrates drywall reasonably well. Home Assistant receives all the data and deduplicates it, so if three proxies all see the same tag, it just shows you the strongest signal and the most recent timestamp.
Now I've got my house instrumented. I've got three or four ESP32s. I've bought twenty-five tags from AliExpress. What does the actual user experience look like when I can't find my medication bag?
You open the Home Assistant dashboard on your phone, and you see a list of all your tagged items with their last-seen time and approximate location. If you've set up zones — kitchen, bedroom, office — the dashboard shows which zone the tag was last detected in. You tap the medication bag, and it shows "last seen 45 seconds ago in bedroom, signal strength minus 62 dBm," which means it's probably within ten feet of the bedroom ESP32. You walk in there, and if you need more precision, you can trigger a manual scan that increases the polling frequency for thirty seconds. The RSSI number climbs as you get closer.
RSSI being received signal strength indicator.
And minus sixty-two is pretty strong — that's probably line of sight within fifteen feet. Minus eighty-five means it's behind a wall or under a cushion. It's not sub-meter precision like ultra-wideband, but for "which room is my laptop in," it's more than adequate.
This is the part where I ask about the catch.
There are a few. The biggest one is that generic BLE tags don't have speakers. Tile and AirTag can play a sound. With a DIY system, you're navigating by signal strength, not by following a beep. For most items, that's fine — you can see your laptop, you just need to know which room it's in. For keys buried in a couch cushion, the lack of audio is a real limitation.
Although there are generic tags with buzzers now, aren't there?
There are, and they're getting cheaper. You can find BLE tags with a small piezo buzzer for around six to eight dollars. The challenge is that triggering the buzzer requires a connection, not just scanning — so you'd need to briefly connect, send the command, and disconnect. ESPHome supports this through its BLE client component, but it's more complex than pure scanning. Each buzzer activation ties up a connection slot for a few seconds.
You'd use scanning mode for continuous tracking, and only establish a connection when you need to make noise.
And for twenty tags, you'd stagger those connections — you're never triggering more than one buzzer at a time anyway. The other catch is the crowd-finding network. Apple's Find My network uses every iPhone on the planet as a passive scanner. Tile has its own user network, though it's much smaller. If you leave your wallet in a coffee shop, AirTag will tell you exactly where it is because someone else's phone walked past it. A DIY tag has no such network. Once it's out of range of your home ESP32s, it's gone.
Which for a home-focused system, who cares? But the prompt specifically asked about travel.
This is where it gets clever. The travel solution is a portable coordinator. The simplest version is a Raspberry Pi Zero 2 W — that's a fifteen-dollar computer the size of a pack of gum — with a USB BLE dongle. You flash it with a lightweight Linux distribution, install a Python library called Bleak for BLE scanning, and run a script that logs every advertising packet it sees to a local SQLite database.
You power this with a battery pack?
A ten-thousand milliamp-hour USB battery pack will run a Pi Zero for about fifteen to twenty hours of continuous scanning. The Pi creates its own WiFi hotspot, or connects to the hotel WiFi, and serves a simple web dashboard that you access from your phone. It shows all your tags, their last-seen times, and crucially — it can send an alert if a tag drops out of range for more than, say, two minutes.
You set this up in your hotel room, and if you leave your medication bag in a taxi, the Pi notices the tag hasn't been seen for two minutes and pushes a notification.
And because it's logging everything to a database, you can look back and see "okay, the medication bag was last seen at 3:17 PM at signal strength minus 78 — which means it was probably still in the room, but maybe in the bathroom — and then it dropped off entirely at 3:19, which is when I would have been walking out to the taxi." That timestamp is your smoking gun.
That's the kind of forensic breadcrumb trail that commercial trackers charge a subscription for.
You own the data. It's not on Tile's servers. For people with ADHD, there's something psychologically valuable about knowing the system is entirely under your control — you're not dependent on a company's continued support or a cloud service's uptime.
Let's talk about the ADHD angle specifically, because I think this is where the prompt gets really interesting. It's not just about finding things faster. It's about reducing the cognitive overhead of keeping track of objects in the first place.
There's research on this. Adults with ADHD spend an estimated seventy-six to ninety-five hours per year searching for misplaced items. That's two full work weeks. But the hidden cost is the background anxiety — the low-grade awareness that you don't know where six of your twenty important things are right now, and at any moment you might need one and have to drop everything to hunt for it.
The system isn't just a finder. It's an external working memory for physical objects.
That's the right way to think about it. And once it's integrated with Home Assistant, you can build automations that actively reduce that cognitive load. The most obvious one is a "leaving the house" routine. You've got a door sensor or a presence detection trigger. When you open the front door between seven and nine AM, Home Assistant checks the last-seen time for your phone, wallet, keys, medication bag, laptop bag, and charger. If any of them haven't been detected in the last five minutes — meaning they're not on your person — it sends a notification: "Wallet not detected. Are you sure you have it?
Like a pre-flight checklist, but it runs automatically.
It's not nagging you when you're already out the door. It catches the omission before you leave. Another automation: a bedtime routine that checks if your phone is in the bedroom charging zone. If the bedroom ESP32 hasn't seen the phone's tag in the last ten minutes, it flashes the bedroom lights once as a gentle reminder.
That's the difference between a reactive system and a proactive one. Tile beeps when you've already lost something. This tells you you're about to lose something.
You can get creative with it. One Home Assistant user I read about set up an automation where if their medication bag wasn't detected near the kitchen table between eight and nine AM — their designated pill-taking window — the kitchen speaker would announce "medication reminder" in a calm voice. Not an alarm, not a nag. Just a quiet nudge.
The glockenspiel of corporate approachability, but for your own brain.
I'm not entirely sure what that means, but I think I agree.
We've got the home system mapped out. ESP32s as distributed scanners, generic BLE tags on everything, Home Assistant as the brain, automations as the proactive layer. The travel Pi is the portable version. What about the phone itself? Could the phone just be the coordinator?
It can, and for some people that's the simplest travel solution. Both Android and iOS have apps that can scan for BLE advertisements — BLE Scanner on Android is a good one, and there are Shortcuts-based solutions on iOS. But there are two problems. One, your phone is one of the things you're trying to track. If you're using your phone to find your phone, you've got a recursion problem.
The snake eating its own tail, but the tail is also lost.
Two, phone-based scanning is battery-intensive if it's running continuously. A dedicated Pi Zero with a BLE dongle can scan twenty-four seven without touching your phone's battery. And three — which I just thought of — your phone moves with you. A stationary coordinator in your hotel room provides a fixed reference point. If your phone is the scanner and you walk to the lobby, suddenly all your tags appear to "disappear" because the scanner moved away from them.
The Pi is the anchor, and the phone is the display.
That's the cleanest architecture. Pi scans, logs, and serves a web page. Phone connects to the Pi's WiFi hotspot and views the dashboard. No internet required, no cloud dependency. It works in airplane mode.
Which is relevant for international travel where you might not have data.
And the whole travel kit — Pi Zero 2 W, BLE dongle, battery pack, five tags — fits in a sunglasses case. Total cost around fifty dollars.
I want to circle back to something you mentioned earlier about the tags themselves. You said to look for tags that advertise continuously, not just on button press. How do you tell the difference before buying?
This is a real pitfall. A lot of cheap BLE tags on AliExpress are designed as "find my phone" buttons — you press the button, they broadcast briefly, your phone rings. Those are useless for passive tracking. What you want are tags described as "BLE beacon" or "BLE tracker tag" that specifically mention "continuous advertising" or "broadcast interval." The listing should specify an advertising interval — typically between one hundred milliseconds and two seconds. A one-second interval means the tag broadcasts once per second, which is fine for household tracking where objects don't move that fast.
The faster the interval, the more battery it burns.
A tag broadcasting at one hundred millisecond intervals will drain a CR2032 coin cell in about three months. At two-second intervals, that same battery lasts over a year. For most household items, a two-second interval is perfectly adequate — you're not tracking a moving vehicle, you're tracking a wallet that's either on the nightstand or under the couch.
There's something almost philosophical about this. We're talking about attaching tiny radio beacons to everything we own so that a network of listening posts can tell us where our stuff is. It's like giving every object a tiny voice that just says "I'm here, I'm here, I'm here" over and over.
The house listens. It's ambient computing in the truest sense — the infrastructure fades into the background, and you only interact with it when you need to know where something is. The rest of the time, it's just a quiet hum of radio chatter that you never notice.
Until your medication bag wanders off, and then the house gently taps you on the shoulder.
That's the vision. And I think what makes this approach compelling for the specific use case in the prompt is that it scales in a way commercial trackers fundamentally don't. The marginal cost of adding a twentieth tag is three dollars and thirty seconds of configuration. With Tile, it's twenty-five dollars and another device to manage in the app. At some point — and I'd argue that point is around eight to ten items — the commercial model stops making sense and the DIY model starts making overwhelming sense.
Let's get concrete about setup. If someone's listening and wants to try this, what's the actual step-by-step?
Step one: get a single ESP32 dev board — the Wemos D1 Mini ESP32 or the M5Stack Atom Lite are both excellent choices, around seven dollars. Flash it with ESPHome. The ESPHome website has a web-based flasher now — you literally plug in the ESP32, open a browser, click flash, and it's done. Step two: in the ESPHome configuration, add the BLE tracker component. It's about eight lines of YAML. Step three: plug it in somewhere central, connect it to your WiFi, and it'll appear in Home Assistant automatically if you have the ESPHome integration set up.
Then you just...
You don't even need to pair them. That's the beauty of connectionless scanning. You take a BLE tag out of the box, pull the battery tab, and it starts broadcasting. The ESP32 sees it within seconds. Home Assistant shows a new device with a MAC address. You rename it to "wallet" or "keys" or "charger," and you're done. No pairing, no app, no account.
That's almost anticlimactic.
The best infrastructure is boring. But step four is where it gets powerful: add more ESP32s. Put one in the bedroom, one in the living room, one in the kitchen. Home Assistant will automatically triangulate based on which proxy sees the strongest signal. You don't need to configure zones manually unless you want to — the system just knows "this tag is closest to the kitchen proxy.
For the travel Pi?
That's slightly more involved but still accessible. You need a Raspberry Pi Zero 2 W, a microSD card, a USB BLE dongle — the nRF52840-based ones are best — and a battery pack. You install Raspberry Pi OS Lite, then install Bleak via pip. There are scripts on GitHub that handle the scanning and logging — search for "BLE presence logger" or "BLE room tracker." The web dashboard can be as simple as a single HTML page served by Python's built-in HTTP server. Total setup time: maybe an hour if you're comfortable with the command line, two hours if you're learning as you go.
Once it's running, it's just...
Until the heat death of the universe or the battery pack runs out, whichever comes first.
With a ten-thousand milliamp-hour pack, that's about fifteen hours. What if you're on a longer trip?
You plug the battery pack into the wall when you're in the room, and it charges while the Pi keeps running. Or you bring a second battery pack and swap them. Or — and this is where I get excited — you can use a phone running Termux on Android as the coordinator. Termux is a terminal emulator that gives you a Linux environment. You can install Python and Bleak directly on your phone, run the scanning script, and serve the dashboard over the phone's WiFi hotspot. Your phone becomes the Pi.
Earlier you said using the phone as the coordinator has the recursion problem.
It does if the phone is one of the tracked items. But if you're using a second phone — an old one you've retired — it's perfect. And most people have an old phone in a drawer somewhere. Wipe it, install Termux, and you've got a dedicated travel coordinator with a built-in screen, battery, and WiFi. Zero additional hardware cost.
A retired phone as a dedicated BLE scanner. That's the kind of repurposing that makes me happy.
It's elegant because it solves multiple problems at once. The old phone already has a battery management system, a case, a screen for debugging, and WiFi. You're not building anything — you're just installing software on hardware you already own.
Let's talk about what's coming. You mentioned BLE five-point-one's direction-finding capabilities. Angle of arrival, angle of departure. What does that actually mean for this use case?
BLE five-point-one introduced direction-finding using antenna arrays. Instead of just knowing signal strength — which tells you distance but not direction — the coordinator can determine the angle the signal is coming from. With two coordinators, you get intersection, and suddenly you have sub-meter positioning. Not quite as precise as ultra-wideband, which is what AirTag uses for precision finding, but dramatically better than RSSI alone.
Instead of "your keys are in the living room," it's "your keys are on the left side of the couch, under the cushion.
That's the promise. The hardware is available — Nordic Semiconductor's nRF5340 supports direction-finding — but the software ecosystem is still maturing. Home Assistant doesn't natively support AoA positioning yet, though there are community projects working on it. I'd expect this to be mainstream in two to three years.
Matter is the smart home interoperability standard backed by Apple, Google, Amazon, and Samsung. It already includes BLE for device commissioning. The roadmap includes BLE-based device location as a standard feature, which would mean any Matter-compatible BLE tag would work with any Matter-compatible coordinator, regardless of manufacturer. That's the holy grail — a tag you buy from any vendor that works with any hub you already own.
The DIY approach we're describing is essentially a preview of that future, built with today's tools.
In some ways, it's better than what Matter will deliver, because it's fully local and fully open. Matter still has cloud dependencies for some features. The ESPHome-plus-Home-Assistant stack is entirely local — it works during an internet outage, it works if the manufacturer goes out of business, it works if you decide to never update the firmware again.
There's a philosophical alignment here with the self-hosting movement more broadly. You're trading convenience for control, but in this specific case, the convenience of the DIY approach is actually catching up fast.
It's crossed the threshold. Three years ago, I would have said this was a fun project for tinkerers but not practical for most people. Today, with the web-based ESPHome flasher, the maturity of the BLE tracker component, and the availability of cheap tags, I'd say it's accessible to anyone who's comfortable configuring Home Assistant. You don't need to write code. You need to copy-paste some YAML and plug things into USB ports.
The last thing I want to touch on is the tag itself getting lost. What happens when you misplace the thing that's supposed to help you find misplaced things?
This is where the system really shines compared to commercial trackers. When a Tile's battery dies, you have to notice, order a replacement, and re-pair it. With a DIY system, Home Assistant can monitor the battery level of each tag — most BLE tags broadcast their battery percentage in the advertising packet. You set up an automation: if a tag's battery drops below twenty percent and hasn't been replaced in two weeks, send a notification. Or if a tag hasn't been seen at all in forty-eight hours, it might be lost or dead — send an alert to check on it.
The system monitors itself.
Because tags are three dollars, you keep spares. When a tag dies or gets lost, you grab a new one from the drawer, pull the tab, and rename it in Home Assistant. Thirty seconds of downtime. Compare that to ordering a replacement Tile, waiting for shipping, and going through the pairing process.
The disposable nature of it almost feels wasteful, but we're talking about a CR2032 battery and a tiny circuit board. The environmental impact of twenty generic tags is probably less than the packaging waste from five commercial trackers.
The tags themselves last years. The limiting factor is the battery, not the electronics. When the battery dies, you replace the coin cell — most tags have a removable back. One tag can serve you for a decade.
Alright, let's land this. If someone's sitting there with their phone charger missing for the third time this week, what's the first thing they should do?
Install the BLE Monitor integration in Home Assistant. It's available through HACS — the Home Assistant Community Store. Once it's installed, it'll automatically detect any BLE devices in range. Then buy a single ESP32 for seven dollars, flash it with ESPHome, and place it in your most cluttered room. Buy a five-pack of generic BLE beacons from AliExpress for about twelve dollars. Tag your five most-misplaced items. Live with it for a week. See if the detection range and reliability meet your needs.
If it works, scale up.
If it works, buy three more ESP32s and twenty more tags. Total investment at that point is under a hundred dollars for whole-house coverage of thirty items. That's less than four Tiles.
The economics are almost absurd.
And I think that's the thing I want people to take away from this. We've been trained by the market to think that tracking our belongings requires a per-item subscription to a cloud service. It doesn't. It requires a twenty-year-old radio protocol, some open-source software, and the willingness to spend an afternoon setting it up. The technology has been ready for years. The community just needed to build the user-friendly layer on top.
Now it's built.
Now it's built.
Now: Hilbert's daily fun fact.
Hilbert: In nineteen fourteen, a construction crew building the Alaska Railroad near the Yukon River accidentally dynamited a frozen mammoth carcass. The workers, thinking they'd struck a petrified horse, used the tusks as survey stakes for two weeks before a visiting geologist realized what they'd found. The mammoth meat was reportedly still fresh enough that local sled dogs ate it without hesitation.
That's one way to use paleontological treasure.
This has been My Weird Prompts. Thanks to our producer Hilbert Flumingtop. If you enjoyed this episode, leave us a review wherever you get your podcasts — it helps more people find the show. Find transcripts and more at myweirdprompts.I'm Corn.
I'm Herman Poppleberry. Go tag your charger.