通知与位置不生效的排查思路
自动化触发了手机却没动静、设备跟踪一直停在旧位置 —— 从服务端到系统权限逐层排查的固定路径。相关文档:把手机传感器用进自动化.md · 手机端连接中枢的完整流程.md · 桌面小部件与快捷磁贴怎么用.md
一、通知:先分清「没发出来」还是「没显示出来」
两端责任不同,用一条最简消息定位:在中枢的 开发者工具 → 动作 里选 notify.mobile_app_你的设备ID,只填 {"message": "Hello World"} 发送。
| 结果 | 结论 | 下一步 |
|---|---|---|
| 手机响了 | 链路通,问题在你的自动化内容 | 检查 payload(message 是必填字段) |
| 动作列表里没有这个动作 | 服务端没注册 | 强停 App → 重开 → 重启一次中枢 |
| 动作发了、手机没反应 | 手机端拦截 | 见下 |
二、手机端拦截,三层过一遍
- 系统通知开关:设置 → 应用 → 通知,总开关与分渠道都要开;
- 后台与省电:关电池优化、允许自启动、加后台白名单、锁定最近任务卡片 —— 国产系统把 App 判成营销类强行静音的情况不少见,声音、横幅、锁屏显示逐项放开;
- 勿扰与专注模式:系统级勿扰、就寝模式、数字健康的免打扰列表都会吞通知。
另外,免费推送通道对每台设备有每天 500 条的上限,日常告警够用,拿它高频刷状态会开始丢 —— 这种情况用同 tag 的合并通知更合适。内网环境下可以开启本地推送:通知走与中枢之间的长连接直接下发,更快也不占限额。
三、位置:前提缺一条整条链就断
设备跟踪实体要动起来,需要同时满足:
- 装的是 full 版 —— minimal 版没有位置跟踪;
- 系统位置权限「始终允许」,安卓 12 及以上还要精确定位;
- 手机系统自己的 GPS 开关开着;
- 中枢能被 App 在后台访问到(在家或配好远程)。
位置类传感器(后台位置、地理围栏、单次精确定位)要在 Manage Sensors → Location Sensors 里确认开了没。上报一直被跳过的,开 Troubleshooting 里的 location history 看日志:最近 48 小时每次上报的来源与结果都有记录,一条历史都没有基本就是后台权限问题。
四、高精度模式与耗电的权衡
后台位置可以开高精度模式,按固定间隔连续上报,代价是电量明显下降,且系统要求挂一条常驻通知。省电的正确姿势不是关掉位置,而是加约束:连上指定蓝牙设备才开、接近某个区域才开,两者可设「同时满足」或「满足其一」。不开高精度时,后台本来就是几分钟一次的常规频率,耗电有限。
五、还是不行时的重来一遍
确认 payload 没问题、系统权限也放开了仍收不到,按这个顺序重来:清空 App 数据(不是卸载重装,卸载重装会触发自动备份恢复,把坏状态带回来)→ 中枢集成面板移除该设备的条目 → 重启中枢 → 重新登录 App → 再测那条 Hello World。
首次配对与远程连接见手机端连接中枢的完整流程.md;传感器能上报什么见把手机传感器用进自动化.md。安卓端安装包的获取入口整理在 Home Assistant 安卓端说明站。