不再只有手機:StatusCast v3.4.0 把區域網裝置全接進來了

作者:干嘛哟2333 發布時間:2026年11月02日 08:28

【軟體】StatusCast v3.4.0 正式版:主機、手機、Mac、藍芽裝置,一行字全在狀態列

如果你在 OBS 裡直播或錄屏,可能見過這種小細節:畫面角落有一行字,實時顯示「手機電量、正在播放的歌、CPU 佔用」。

StatusCast 就是做這件事的 Windows 純後臺小工具。它每 30 秒採集一次裝置狀態,透過本地介面輸出,配合 NekoTool 在 OBS 裡顯示成一行文字。全部在本機執行,不需要賬號,不上傳任何資料。

這次 v3.4.0 是它釋出以來最大的一次更新:從「只看兩臺手機」,擴充套件成「手機 + 遊戲主機 + Mac/Linux 小主機 + 藍芽外設」,並且給每條連線都加了一條備用通道。

這次更新了什麼

一、遊戲主機正式上線(PS5 / Xbox / Switch 等)

在配置裡填上主機的區域網 IP 就行,不需要賬號、不需要 token、不用在主機上裝任何東西。

  • 探測順序:ARP → ping → TCP 埠,三級兜底

  • 連續 2 次探測失敗才判離線,1 次成功立即回線上,避免網路抖動誤報

  • 離線文案可以自己改,比如"已關機""待機中"

  • 順手記錄 MAC 地址,為以後的遠端喚醒留好介面

二、Mac / Linux 小主機

家裡有 MacBook、Mac mini、軟路由或者 Linux 小主機,可以走 SSH 通道:

  • 一條命令拉回:電量、充電狀態、機型、開機時長

  • 只用金鑰登入,首次連線自動記錄指紋,之後指紋變化會被直接拒絕

  • 主機睡眠或 SSH 不可達時,自動降級成區域網探活,仍然能顯示線上/離線

三、藍芽外設

耳機、手環、心率帶這類 BLE 裝置也能接進來:

  • 讀取公開的電量(0x180F)與心率(0x180D)服務

  • 不配對、不寫入裝置,地址和名稱只儲存在本機配置裡

  • 裝置名或地址二選一匹配;掃描不到、連不上都會如實標註,不會影響其它裝置

四、備用通道(這次的重點)

每臺裝置現在都有一條「有序通道鏈」,主通道斷了會自動試下一條,而不是整臺裝置從狀態列消失:

| 裝置 | 通道鏈 | | --- | --- | | iPhone | USB →(實驗)Wi-Fi → 區域網探活 | | Android | adb → 無線除錯自動發現/配對 → 區域網探活 | | 主機 | ARP → ping → TCP 埠 | | Mac / Linux | SSH → 區域網探活 |

降級時會明確告訴你「現在只能確認它在不在,拿不到電量」——狀態列如實顯示,不裝懂。

五、其它改進

  • 新增 /health 探活介面,方便判斷服務是否正常

  • 修復了「日誌裡說有健康檢查、實際卻沒有」的老問題

  • 自動化測試從 0 補到 211 項(Python 170 + C# 41),新增兩條 CI 流水線

  • 建立 schema/status-contract.json 欄位契約,Python 與 C# 兩側同時校驗,避免欄位各寫各的

  • 資料格式仍是 schema 3,舊配置直接相容

效果預覽

【配圖 1】OBS 網頁掛件(毛玻璃面板 + 雙機電量 + CPU/記憶體/網路) docs/screenshots/ui-widget.png

【配圖 2】終極單行狀態輸出(手機 + 系統 + 外掛) docs/screenshots/ps-ultimate.png

【配圖 3】後臺日誌(API、裝置探測、快照更新) docs/screenshots/daemon-log.png

【配圖 4 · 待補】主機 / 藍芽條目出現在 /status/ 或 OBS 行的實際截圖

怎麼用

  1. 準備:Windows 10/11,Python 3.10+(專案自帶 .venv 說明),構建需要 .NET 10 SDK

  2. 克隆倉庫,按 README 建虛擬環境、安裝依賴

  3. 構建並啟動 daemon

  4. 配合 NekoTool 的 ultimate_status.ps1,在 OBS 裡顯示成一行文字

最簡配置示例(config.json):

"Consoles": [ {"id": "ps5", "name": "PS5", "type": "ps5", "ip": "192.168.1.50", "offlineText": "已關機"} ], "SshNodes": [ {"id": "macbook", "name": "MacBook", "platform": "macos", "user": "fly", "host": "192.168.1.60", "sshKey": "~/.ssh/id_ed25519"} ], "BleDevices": [ {"id": "airpods", "name": "AirPods Pro", "address": "AA:BB:CC:DD:EE:FF"} ]

不配置這些鍵也完全沒問題,行為與上一個版本一致。

升級注意:更新後記得執行一次 pip install -r requirements.txt(新增了宣告的 bleak);如果你自己寫了讀取 /status/ 的程式,主機離線現在不再寫 error,改讀 console.online 與 console.statusText。

已知限制(說在前面)

  • 主機只能判斷「線上 / 離線」,分不清「在玩」還是「掛機」,更細的展示留到下個版本

  • iPhone 的 Wi-Fi 採集在當前 Apple 服務環境下仍不可用(實測診斷服務會被裝置斷開),繼續用 USB

  • 藍芽與降級資訊目前只寫進 JSON,OBS 那行還沒展示,下一版補

  • 部分真機專案仍待驗證(ARP 快取時間、真實 MAC/喚醒、Linux 多電池、macOS 充電狀態、BLE 真實讀數等),清單公開在倉庫裡

下載與反饋

  • StatusCast:StatusCast issue

  • NekoTool(OBS 展示層):NekoTool issue

  • 遇到問題或有想接的裝置,歡迎在 Issues 裡提;能描述清楚「裝置型號 + 系統版本 + 日誌」最好

如果這篇對你有用,點個贊讓更多做直播/錄屏的朋友看到。下一版主要做兩件事:把主機/藍芽的資訊真正顯示到 OBS 行裡,以及補完真機聯調。

下一步計劃

樓主買了個ESP32開發板,打算把資料測量放在開發板.