
🪄《BLE + HomeKit = 更智慧的家庭,讓溫濕度出現在 Apple 家庭 App 裡!》
資訊/科技

奧提斯
更新日:2025年4月22日
在上一篇,我成功讓 BLE 裝置進入 HomeKit,實現了「嘿 Siri,開風扇」的美夢。但風扇還是得我自己按按鈕,哪夠智慧?
今天,我要把溫濕度感測資料送進 HomeKit,讓我的風扇知道什麼時候該自動開!
🌡️ 目標畫面
打開 Apple 家庭 App:
- 出現一個「溫度感測器」配件
- 顯示當前溫度(來自你 BLE 裝置的資料)
- Siri 可以說出「目前室內溫度是 29 度」
- 可設定 HomeKit 自動化:「溫度超過 30 度就開風扇」
是不是突然有一點像在玩《模擬城市:極簡智慧宅豪華 DLC》?
🧠 技術架構簡介
我們要做的是這個流程:
BLE Sensor ➡ iOS App(or Node.js script) ➡ Homebridge Plugin(更新溫度 characteristic) ➡ HomeKit(顯示在 App 上)
我們不是真的在 BLE 裝置上跑 HAP(HomeKit Accessory Protocol),而是用 Homebridge 做中繼,讓 HomeKit 誤以為你 BLE 裝置是一個 Apple 認證的溫度計。
🧪 我是怎麼做的?
1️⃣ 裝好感測器,BLE 固件要能「廣播溫度/濕度」資料
你可以讓你的裝置定時透過廣播或 notify,發送溫濕度數據(GATT 的 characteristic)。像這樣:
// 簡化範例:廣播格式包含溫濕度資訊 uint8_t adv_data[] = { 0x02, 0x01, 0x06, 0x05, 0xFF, 0x01, 0x2A, 0x1E, 0x6B }; // 假設資料是 27.8°C
2️⃣ 使用 Homebridge Plugin 接收這些資料
我選擇的是:
homebridge-gatt-sensor
(可以解析廣播資料)- 或使用
homebridge-mqttthing
,從 MQTT 中取得感測數據
你也可以自製 plugin,只要把感測值寫進 HomeKit 的 temperature service:
this.temperatureService .getCharacteristic(Characteristic.CurrentTemperature) .updateValue(28.5);
3️⃣ 想要歷史記錄?加上 fakegato-history
插件!
這樣 Apple 家庭 App 雖然沒記錄圖表,但你可以用 Eve App(免費)看到溫度折線圖!📈
🎯 Bonus:Apple 家庭 App 設定自動化
搞定感測器後,我做了這些設定:
- 溫度 > 30°C:自動打開 HomeKit 智慧插座(接風扇)
- 濕度 < 45%:自動開啟超音波加濕器
這種感覺就像是自己打造一個私人小型中央空調系統。
🤓 踩雷注意:
- BLE 廣播頻率不要太快(建議 > 1 秒),避免干擾連線
- Apple 家庭 App 不支援「濕度歷史圖表」,要看歷史請裝 Eve App
- 請注意 BLE 連線次數有限,不要一次連好幾支 iPhone
- Plugin 解析資料失敗?檢查 UUID 與資料格式,通常是 bytes 排錯了
📢 結語
現在,我已經不是用手開風扇的普通人,我是靠氣溫自動開風扇的高級人類。
下一篇,我要進一步自動化整合,把 BLE 感測器當成 HomeKit 的觸發事件,讓裝置之間自己協調工作 —— 你只要坐著喝冰美式,什麼都不用動。
iOS App 客製化 上架。
iOS 軟體開發、修改、維護既有App
IT/程式 > iPhone/iPad/Mac應用程式開發
$ 10000

$ 10000

0 / 1000