OwnTracks 位置感知
将以下提示词粘贴到你的 AI 对话框中:
请根据 https://skillhub.cn/install/skillhub.md,安装 @user_15292d5a/yjkj-owntracks-location 到我的 AI 助手。
技能介绍
问题背景
当用户问“我现在在哪”“这里是我常去的 X”时,大模型通常拿不到持续、可信的位置来源。手机系统权限不可靠,浏览器定位又受网页上下文限制。OwnTracks 本身能发送位置,但需要一个长期可查询、可关联地点名称的服务端。
工作方式
这个技能把 OwnTracks 的 HTTP 推送落到本地服务中:接收端监听 /owntracks,要求报文包含 _type: "location",再把坐标写入 SQLite。之后可通过 /latest 获取最近位置,/history?limit=50 读取轨迹,/health 检查服务状态。除原始位置外,还提供 places 能力,把“公司”“家”等命名地点保存起来,并用 haversine 公式计算当前位置与目标地点的距离。
使用时,OwnTracks 手机 App 需切到 HTTP 模式,指向接收端地址,并通过同一局域网或 Tailscale 可达。当用户要求记住当前位置为某地点时,可先读取 /latest,再反解地名或业务名称,然后写入命名地点。整体链路是 OwnTracks -> HTTP webhook -> SQLite -> Agent 查询。
适用边界
它适合自建位置记录、家庭网络或私有 Tailscale 场景,不适合替代高精度地图 API。需要 Node.js 22+ 与 better-sqlite3;手机必须能访问接收端。位置数据是“最后一次已知位置”,不是实时追踪承诺;命名地点依赖反解质量,若业务名称不明确,结果可能偏泛。
使用场景
- 在自建 Agent 中回答“我现在在哪”,从 /latest 取坐标并反解地址。
- 用 Tailscale 连接手机与接收端,配置 OwnTracks HTTP 模式后查询最近轨迹。
- 把当前位置保存为“公司”或“家”,再用 haversine 查询当前位置到该地点的距离。
- 排查 OwnTracks 推送是否到达,通过 /health 与 /latest 确认最近位置已入库。
适合人员
- 自建个人 Agent 的开发者,想让模型回答“我在哪”并记住常用地点。
- 维护家庭网络位置日志的极客,想把 OwnTracks 推送存入 SQLite 并查询。
- 做离线位置实验的工程师,想用 Tailscale 打通手机到接收端的推送链路。
- 构建地理问答助手的开发者,需要命名地点距离判断当前位置是否靠近目标。