技能誌

🤖《自動化才是王道!我用 BLE 感測器自動開關 HomeKit 裝置》

資訊/科技
奧提斯的頭像
奧提斯
更新日:2025年4月22日

你知道什麼叫「半智慧家庭」嗎?

就是你可以透過 App 控制裝置,但你還是要自己手動按按鈕。

這跟用遙控器開電視,其實沒什麼差別。

所以我說,自動化才是真正的靈魂!

這篇,我會教你怎麼用 BLE 感測器當成觸發條件,讓 HomeKit 裝置自己動起來。溫度太高?自動開風扇。光線太暗?自動開燈。

我們要做的,是讓你的家變成會思考的生物。


🎯 整體目標

當 BLE 感測器回報資料變化時,自動觸發 HomeKit 裝置。

例子:

  • 當溫度 > 30°C → 開風扇
  • 當光線 < 200 lux → 開燈
  • 當濕度 < 45% → 啟動加濕器

🧱 技術架構

因為 BLE 裝置本身不會說 HomeKit 的語言,所以我們需要一個翻譯官:

BLE Sensor → Homebridge (或 iOS App)
        → 觸發虛擬 Switch(Dummy)
        → HomeKit 自動化條件達成
        → 控制目標裝置(風扇、插座、燈光)

🔧 做法步驟

1️⃣ 安裝 Homebridge Dummy Switch Plugin

這個虛擬開關可以作為 HomeKit 自動化觸發條件!

npm install -g homebridge-dummy

你可以在 config 裡新增:

"accessories": [
  {
    "accessory": "DummySwitch",
    "name": "Temperature Trigger"
  }
]

2️⃣ 用你的 BLE 資料觸發這個 Switch

無論你是用 Node.js script、Python、iOS App,只要 BLE 資料符合條件,就透過 Homebridge API 開啟這個 Dummy Switch:

// 例:當溫度超過 30 度
if (temperature > 30) {
  // call Homebridge REST API 切換 Dummy Switch
}

3️⃣ 在 Apple 家庭 App 設定自動化規則

  • 當「Temperature Trigger」打開 → 開啟風扇插座
  • 當「Light Trigger」打開 → 開燈

這時候你就可以假裝自己沒做什麼,但房間自己涼了起來 😎


😎 額外玩法:自動重置 Dummy Switch

Trigger 只能短暫啟用,所以建議設定幾秒後自動關閉:

setTimeout(() => {
  // 關掉 Dummy Switch,等待下次觸發
}, 10000);

或者使用 homebridge-delay-switch 插件,自動倒數關閉!


🤓 實作小提醒

  • BLE 裝置的資料不要太快更新,建議設個 debounce(避免一直觸發)
  • Dummy Switch 最好取有意義的名字,方便在 Home App 裡設定邏輯
  • iOS App 端如果要做自動觸發,要記得使用 HMAccessoryHMTrigger 做觸發邏輯,但比較複雜,建議先從 Homebridge 開始

🧠 總結

用 BLE 當感測器 → Homebridge 當橋接器 → Dummy Switch 當觸發器 → HomeKit 控制器,全自動、無痛感。你只要站在旁邊看著它自己動作,就會覺得自己像漫威電影裡的東尼史塔克。

iOS App 客製化 上架。
iOS 軟體開發、修改、維護既有App
IT/程式 > iPhone/iPad/Mac應用程式開發
$ 10000
iOS App 客製化 上架。
$ 10000
iOS App 客製化 上架。
0 / 1000
回到文章列表