📜 地理圍欄事件
| 時間 | 區域 | 裝置 | 事件 | 座標 | 操作 | |
|---|---|---|---|---|---|---|
| 載入中… | ||||||
💬 WhatsApp 通知(QR code 配對)
請以 WhatsApp 手機 App:設定 → 已連結的裝置 → 連結裝置,掃描此 QR Code。 QR 每約 20 秒自動更新,掃描後狀態會變為「已連線」。
📍 地理圍欄通知文字內容(可個別關閉下列欄位)
🤖 Bot 查詢「單一裝置地點」時的回覆
開著時,只傳「位置/where/在哪」這類關鍵字,Bot 會先列一張裝置選單;回覆編號或裝置名稱,它才送出那一台的位置/離欄報告。 第一項永遠是「📋 所有裝置的離欄報告」,所以整批報告不會因為這個開關而消失;查詢本身已帶裝置名(如「位置 iPhone 12 Pro」)時照舊直接回,不會多問一句。 關掉=回到舊行為:一句「位置」直接回所有裝置的離欄報告。
開啟後,「📍 裝置地點」與「📍 位置提示(離欄中)」會各多一行中文地點(如「雅翔道(西九龍)」「九龍站停車場(西九龍)」)。 Nominatim 免金鑰、與通知附圖的圖磚同一個生態,但受對方使用政策限制:全伺服器每秒最多 1 次、同一地點 6 小時只問一次。 Google 沒這條速率限制、地名通常更貼日常叫法,代價是要一組 Geocoding API 金鑰。 兩個來源都只把量化到約 110 m 的座標送出去;查不到、連不出去或沒金鑰時就照舊只給座標與地圖連結, 地點不會寫進軌跡庫。
金鑰只存在伺服器的 settings.json(與 WhatsApp 登入憑證同卷、權限 700)。面板回讀時一律脫敏,
只顯示「已設定/最後 4 碼」,不會把明文傳給瀏覽器;留空按「儲存金鑰」等於沒改動,要真的移除請按「清除金鑰」。
不想寫進設定檔的話,也可用環境變數 GOOGLE_MAPS_API_KEY(需要重建容器),面板那欄優先於它。
選了 Google 卻沒有任何金鑰時會自動退回 Nominatim(地點那行不會憑空消失)。
傳「iPhone 12 Pro 在哪」等含裝置名稱的訊息時,bot 會回該裝置地點; 裝置名稱對應多台時會先回編號選單讓你選(5 分鐘內有效)。
🤖 Bot 查詢「📊 軌跡圖像」時的互動
開著時,只傳「軌跡/track」Bot 會先列一張裝置選單;回覆編號它才畫那一台的圖。 第一項永遠是「📊 所有裝置」,所以所有裝置那張圖不會因為這個開關而消失;查詢本身已帶裝置名(如「軌跡 iPhone 12 Pro」)時照舊直接回,不會多問一句。 一句話裡沒講時間範圍時會接著問第二格(1/6/12/24 小時);寫了就用那句(如「軌跡 1小時 z16」),選完裝置不會被重置。 關掉=兩格都不問:一句「軌跡」直接出所有裝置最近 1 小時的圖。
🤖 Bot 在「群組」裡收到指令時
無論這個開關處於什麼狀態,白名單的人在群組裡傳指令時,查詢內容一律走私訊 (裝置動態不便在群裡公開顯示),群裡那句話也不會被 bot 當成指令二次處理。 開著只是讓群裡知道「有東西發出去了」;關掉=群裡完全沒聲音,只有你的私訊與 🤖 訊息記錄留痕。
部分帳號(如 Business/Cloud API 號碼、或以 …@lid 抵達的私訊)的 WhatsApp 身分辨識與電話號碼不同,
這類號碼請把識別碼填在這裡才會收到 bot 回覆(可從 log「whatsapp inbound from …」查到)。
填純號碼或完整 JID 等價(兩種寫法都認)。只影響「能否對 bot 下指令」,不影響推播對象。
VPS 需能連線 WhatsApp 伺服器(web.whatsapp.com);配對 session 儲存在伺服器
whatsapp.sqlite3,等同登入憑證,請勿外流。
👥 通知名單
| 名稱 | 電話 | 正規化 | 啟用 | |
|---|---|---|---|---|
| 尚無收件人 | ||||
電話格式不拘:+852 9123 4567/85291234567/91234567 都可以。
👥 WhatsApp 群組通知
勾選要接收通知的群組。清單來自 WhatsApp 帳號目前已加入的群組(需先連線才能讀取); 啟用後,地理圍欄事件、離欄提示、軌跡圖像與測試訊息都會送到群組。
| 啟用 | 群組名稱 | 成員 | JID |
|---|---|---|---|
| 載入中… | |||
📊 軌跡圖像 WhatsApp 推送
把裝置軌跡畫成地圖圖像經 WhatsApp 傳送。可設定多項排程(定時/每日/每星期指定日循環),
也可直接在 WhatsApp 傳 軌跡/軌跡 iPhone 1小時/軌跡 z16 即時查詢(僅限通知名單內號碼)。
| 啟用 | 排程內容 | 推送規則 | 上次推送 | |
|---|---|---|---|---|
| 尚無排程,點下方「+ 新增排程」建立 | ||||
💡 「立即發送」已移至左側欄,可在那裡選擇裝置/範圍並篩選要送的號碼與群組。
新增排程
🔒 排程送到群組=把裝置位置對整個群公開(圖與說明文字所有成員都看得到)。🤖 Bot 在群裡收到指令時查詢內容一律走私訊,排程推送做不到這件事,要請自己斟酌。
「只送勾選的」是點名發送:即使那個號碼或群組在名單裡是停用狀態,這一條排程照樣會送出去。同一個人若同時是被勾選的號碼、又在被勾選的群組裡,會收到兩次。
📊 裝置軌跡
| 時間 | 裝置 | 來源 | 座標 | 精度(公尺) |
|---|---|---|---|---|
| 請選擇裝置與時間範圍後查詢 | ||||
🏷️ 裝置管理(AirTag/Find My 配件)
停用後該裝置會從位置抓取、地圖、地理圍欄評估、軌跡錄製全鏈路排除,
設定與私鑰分開存放,私鑰重匯出也不會洗掉。壞掉的配件(如 me:/001078)停用後還能省下 Apple 掃描卡頓。
| 名稱 | 型號 | identifier | 狀態 | 開關 | 操作 |
|---|---|---|---|---|---|
| 載入中… | |||||
⚙️ 資料保留與向 Apple 詢問的頻率
停用裝置是「根本不問」,下面的間隔是「多久問一次」——兩者都會影響 Apple 風控與耗電。 背景採集是唯一向 Apple 詢問的地方:每 — 秒抓一次、寫進資料庫, 並順帶評估地理圍欄;面板、地圖與 bot 一律只讀資料庫,因此看到的座標最多落後一個採集週期(地圖上會標出實際資料時間)。 下面四個旋鈕:兩個「間隔」決定多久真的向 Apple 要一次新位置,一個管軌跡留多久,一個管每輪往回掃多深。改動立即生效,不需重啟。
「抓取掃描深度」管的是每輪往回掃多深,不是能看到多舊的報告: 迴圈一拿到最新一筆就停,調大只是多花請求;配對日比這個窗口更舊的配件,Apple 那側根本不看這個值。 要補齊幾週前的舊軌跡,用 🏷️ 裝置卡上的「歷史軌跡」→「⛏ 深挖入庫」(挖一次算一次成本,不會永久抬高每輪請求)。
| 項目 | 目前值 | 環境變數 |
|---|---|---|
| 載入中… | ||
🤖 WhatsApp Bot
🧩 指令管理
內建指令(軌跡/位置/說明)可改分類、關鍵字與啟用;也可新增「關鍵字 → 固定回覆」 的自訂指令。停用的指令完全不會被觸發。
| 分類 | 名稱 | 關鍵字 | 動作 | 啟用 | |
|---|---|---|---|---|---|
| 載入中… | |||||
新增指令
📨 訊息記錄
記錄所有進出 bot 的 WhatsApp 訊息(含被忽略的,會註明原因),最多保留 5000 筆。
| 時間 | 方向 | 對象 | 內容 | 備註 |
|---|---|---|---|---|
| 載入中… | ||||
❓ 使用指引
📖 關於本頁
本頁內容由伺服器自動產生:API 清單為程式碼路由的即時內省, WhatsApp bot 指令來自集中登記表——專案新增或修改端點/指令時,本頁自動更新,無需手動維護。
🧩 API 使用方法
端點有兩條認證路:服務憑證(請求標頭 X-API-Key,擁有全部權限,
給 curl / bot 用)與一般使用者(WhatsApp 驗證碼登入後的 session cookie,
依 scope 逐路由控管)。/health 始終公開。
點擊任一列的「範例」可展開完整說明、所需 scope 與可複製的 curl 指令。
載入中…
🤖 WhatsApp bot 使用方法
向已連結的 WhatsApp 帳號(即「💬 通知」分頁完成 QR 配對的機器人號碼)傳送訊息即可觸發指令。 僅通知名單內的號碼傳送才會有回應;點擊範例可一鍵複製。
載入中…
👥 用戶管理
用戶在首次以通知名單電話 + WhatsApp 驗證碼登入時自動開戶(預設=全部唯讀)。 此頁可改角色、逐路由勾選讀取權限、分配寫入權限、停用、撤銷登入。 權限變更即時生效,對方不必重新登入。
| 唯一 ID | 姓名 | 登記電話 | 角色 | 權限數 | 活躍 session | 最後登入 | 狀態 | 操作 |
|---|---|---|---|---|---|---|---|---|
| 載入中… | ||||||||
編輯權限
📋 審計日誌
記錄登入/驗證碼申請、權限拒絕、改權與高敏感操作(最新在前)。 「執行者」為進行操作的 admin,「使用者」為被操作的對象。
| 時間 | 事件 | 使用者 | 執行者 | 詳情 |
|---|---|---|---|---|
| 載入中… | ||||