通过手机端主动、智能地向 Home Assistant 服务器上报实时位置。
解决官方 APP 定位更新慢、耗电重等问题,让基于 device_tracker 的自动化更可靠。
前往 GitHub Releases 下载并安装 APK。
Release 版本未预置高德 API Key,若要启用高德融合定位,请在应用内手动配置。
克隆仓库后,使用 Android Studio 打开项目,同步 Gradle 后即可运行或打包 APK。
若希望在构建阶段内置高德 API Key,请在项目根目录创建 local.properties 并加入以下内容:
AMAP_API_KEY=YourAmapApiKeyHere加入后,应用内的 API Key 配置入口将不再显示。
首次打开 APP,完成用户向导并连接到你的 Home Assistant 服务器。
随后在 Home Assistant 确认对应 device_tracker 实体的状态与坐标。
- 手机厂商通常对应用后台活动有严格限制,需要在系统电池/后台管理中将本应用设为
允许后台活动或不受限制。 - 部分 ROM 需要
锁定应用进程并允许开机自启。
在用户页按向导添加服务器与用户,可选择两种方式完成与 device_tracker 的绑定:
- 注册新的
device_tracker,由本应用自动创建; - 复用已有的
device_tracker:若你已抓包获得该实体的 Webhook ID,可直接填入以完成绑定。
支持在一台手机上同时给多台 Home Assistant 服务器上报位置。
回到首页启用基础定位。APP 会按 1–15 分钟的动态间隔主动上报位置,间隔由移动速度自适应。
定位提供链路按“融合 → 网络 → GPS → 被动”依次回退
- 单次请求 10 秒无结果即切换下一种定位方式,兼顾时效与能耗。
- 旨在提供实时定位兜底机制,适用于对实时性不高的场景。如需增强实时性,请按需启用下文所述的各项辅助功能。
- 手机定位并非 100% 准确,当出现定位偏移时,极有可能误触自动化。建议合理配置“地理围栏”,以减少自动化误触。
🔋 荣耀 Magic 6 Pro 手机启用全部辅助功能使用 7×24 小时,每日平均仅消耗约 20–70 mAh 电量,定位约 220-260 次。长时间移动、不同设备、不同系统会影响耗电与定位频次,结果会有差异。
在设置页开启“网络状态触发器”。当网络从固定 Wi-Fi(非按流量计费)切到其它网络,或从其它网络切回固定 Wi-Fi 时,APP 会额外触发一次计划外定位:
- 切入固定 Wi-Fi:延迟 1 秒触发;
- 切出固定 Wi-Fi:延迟 1 分钟触发(避免“刚出门”仍贴近接入点导致误判)。
以 Wi-Fi 设备作为围栏参照,提供两项增强逻辑:
- 离开保护:若定位“离开”了区域,但手机仍能扫描到围栏内指定的 Wi-Fi,则判定为定位漂移,不改变
device_tracker的进/出状态(仍会上报坐标)。 - 快速进入:手机扫描到附近 Wi-Fi 的时间往往早于定位。当扫描到围栏内 Wi-Fi 时,直接用围栏坐标作为设备坐标上报。
你可以指定上报数据时使用的网络。
Home Assistant 默认使用 HTTP 协议。在连接公共 Wi-Fi 或代理等不可信网络时,通信内容可能被截获。你可以通过自定义网络偏好(如仅使用移动数据)来保护与 Home Assistant 的连接。
国内厂商通常不会把当日步数同步到 Health Connect,导致 Home Assistant 无法获取当日步数。
我知道,这与位置上报无关——
但是本应用确实可以把手机步数传感器的数据推送到 Health Connect。
在系统电池/后台管理中将本应用设为 允许后台活动 或 不受限制。部分 ROM 还需 锁定应用进程 与 允许开机自启。
目前仅确认荣耀 MagicOS 可以正常保活,其他品牌手机请自行测试,如有问题请提交 Issue。
确认已在应用内填写 API Key,或在构建期通过 local.properties 写入 AMAP_API_KEY。
本项目以 AGPL-3.0 开源发布。