I built a live 3D digital twin of my house in Home Assistant, then used the 3D model to locate us to within ~1.5 m

Wait 5 sec.

https://preview.redd.it/ilmjaw7bh9xh1.png?width=1200&format=png&auto=webp&s=8bb2294ae9444b6527dcfc0891eef41366c3a1e3 For the last few weeks I've been building a different kind of dashboard: instead of cards, a live 3D replica of my real house that runs in the browser and is driven entirely by Home Assistant. Demo (day, night and a rainstorm) The 3D house Everything you see comes from a real sensor: lights, awnings, the garage door, smoke and leak sensors, the fridge temperatures, even the rain and wind from my weather station. You can control the house from it: click a lamp to turn it on, move an awning, change the TV volume. The garage door and the lock ask for confirmation first. When something happens (motion, a door opening, smoke), the camera flies to that room on its own. It runs as a Home Assistant sidebar panel (no extra login, works in the app too) or as a standalone site. The house is generated from the original floor plans by Python scripts that build the Blender file from scratch. It's rendered with Three.js, and a small Node.js gateway talks to HA over the WebSocket API. Everything is self-hosted in Docker. I built it in about two weeks with AI coding agents (GitHub Copilot). Full write-up, with a second video and the sensor list: https://jumacabo.com/blog/home-assistant-3d-house/ https://reddit.com/link/1xdmdsk/video/utig42o7i9xh1/player Then the 3D model turned out to be useful for presence too I was using Bermuda for room presence, and the more Bluetooth proxies I added, the worse it got. Sitting on the sofa, I kept flipping between the living room and the bedroom right above it. But the 3D model already knew every wall, floor slab and piece of furniture. So I placed my 21 proxies in it (14 are Shellys that were already there switching lights, the rest are Atom Echos) and wrote my own engine. For every point on a 50 cm grid it works out what each proxy should hear, compares that with what they actually hear, and keeps a probability cloud that can only change floors through the stairs. Side by side on the same readings, my room changes per hour went from 38 with Bermuda to 7, and floor jumps from 15.5 to 1.9. It's accurate to about 1.5 m, and around 60 cm at spots where I've trained it. It publishes area, floor, confidence and X/Y/Z per person over MQTT, and the 3D house draws each of us where we actually are. Write-up: https://jumacabo.com/blog/bluetooth-trilateration/ A tip that helps with Bermuda too: make sure your ESPHome proxies scan 100% of the time (window equal to interval under esp32_ble_tracker) and set the Shelly Bluetooth scanner mode to Auto. That took me from about 15 readings per minute per person to around 250. https://i.redd.it/p6tu3d52i9xh1.gif   submitted by   /u/jumacabo   to   r/homeassistant [link]   [comments]