Family presence that survives a real family — privacy-first, no Companion app needed (beta)

I've run Home Assistant since the early days, and the one thing I could never get solid was family presence. Not for me — I'll run anything — but for the family.

The Companion app is the more powerful option, and I use it myself. But it asks every tracked person to install, configure, and keep an HA-aware app running, and in a real family that doesn't survive — battery worries, "why do I need this," it quietly gets deleted. Router/MAC-based presence, meanwhile, got broken by randomized MAC addresses on iOS and Android. So my dashboards were always half-broken, and anything I automated on presence couldn't be trusted.

So I built the thing I wanted, and I've open-sourced the Home Assistant integration for it: GitHub - positionguard/positionguard-homeassistant: Privacy-first family location for Home Assistant — area-level presence, no exact coordinates. · GitHub
The short version:

  • Family members install the PositionGuard app on their phone (iPhone or Android) and join your group — no HA account and no Companion app needed for them.
  • The integration polls the PositionGuard service and exposes each member as native device_tracker and binary_sensor entities — Home / Away plus named areas like "School," "Work," "Grandma's."
  • You automate on those entities the normal way.

Technical notes for this crowd:

  • Area-level by design. HA receives only which area someone's in (Home, School, Grandma's), never exact coordinates or a continuous track — so your HA history is area presence, not a precise log of everywhere your family has been. It's also why it stays light on battery: it detects area transitions, not streaming GPS.
  • Survives MAC randomization — presence is reported by the phone, not detected by the router.
  • Mixed iPhone/Android in one group.
  • Members control what they share and can pause sharing per-person anytime.

Install (HACS custom repository): set up your family group with areas in the app → mint an API key at dev.positionguardai.com → add the repo to HACS as a custom Integration → add the integration in HA and paste your key. Members appear within ~30 seconds. Full steps in the README.

Disclosure, so nothing's a surprise: the integration requires a PositionGuard account and API key — it depends on the hosted PositionGuard service and is not local-only; presence syncs through the cloud. If local-only is a dealbreaker, that's completely fair. Usage limits are documented in the README.

What I'd love from you: try it and tell me what breaks or confuses you, and what presence automations you'd want it to enable. I'll be in the thread.

— Christer

A little more up front sharing of this information would be helpful...
(From your webpage)

7. Subscriptions and Payments

PositionGuard may offer free and paid subscription tiers. Paid subscriptions are billed through Apple's App Store. Subscription terms, pricing, and renewal policies are presented at the time of purchase. You may manage or cancel your subscription through your device's App Store settings.

Fair point, and thank you — that's exactly the kind of thing I'd rather hear early. The Terms language is deliberately generic (it has to cover future possibilities), which makes it vaguer than the actual current reality, and I can see how that's more unsettling than clarifying.

The plain version: for a normal-sized household it's free. On iOS there's an optional paid tier ($4.99/mo or $39.99/yr) that only matters if you want unlimited groups/areas/members beyond the free limits — a typical family never hits them. Android is free through the beta. I'm not monetizing location data, and there's no ad model — the paid tier is the whole commercial story, which is intentional given what this app is.

You've convinced me the pricing should be stated clearly up front on the site rather than left to the Terms to imply — I'll get that fixed. Appreciate you taking the time to actually look.

Did you know this?
(Quote from a recent HA error)

legacy device trackers are deprecated and will be removed in Home Assistant Core 2027.5

Migrating away from OpenWrt ubus legacy device tracker before 2027.5

You cannot advertise closed source paid software on these forums.

Understood, and apologies — I didn't realize that was the policy here, and I should have checked before posting. Not trying to skirt the rules. I'll take this down / leave it unlisted. Thanks for the heads up, petro.

Quick note for anyone who saw this earlier: the original version of this post was unlisted, fairly, for reading too promotional — it included app store links and pricing details, which isn't what this forum is for. I've reworked it with the moderators' guidance to focus on the open-source integration itself. Thanks to the mod team for the clear guidance and the second chance.

Good thing to check before installing something new — and yes, aware of it. That deprecation targets the legacy device_tracker platform (the known_devices.yaml / scanner-style trackers, like the OpenWrt ubus one in your link). This integration is config-entry based on the modern entity platform — TrackerEntity with a data-update coordinator, set up entirely through the config flow, no YAML, no see() calls anywhere. So the 2027.5 removal doesn't affect it. Fair question though, and worth anyone asking before adopting a new integration.

@clu for those of us that have a lot of Zones already created in HA, if you could have a auto-sync built-in, that would help make a transition easier.

That's a really good idea — and you've put your finger on exactly the right friction point. Long-time HA users have years of Zones built up, and asking people to re-create that geography by hand in another app is real transition cost.

Honest current state: the integration is read-only today (by design — group and area management lives in the app), so there's no write path for this yet. But an import of HA Zones as PositionGuard areas is a genuinely good fit for the roadmap, and it wouldn't cross the privacy boundary since defining areas is an owner action, not a member-sharing one.

One question back so I build the right thing: would a one-time import (pull my Zones in when I set up) cover it for you, or do you actually want ongoing sync — Zones changed in HA staying matched in PositionGuard? The first is much simpler and I suspect it's what most people need for the transition you're describing, but tell me if I'm wrong.