什麼是 HomeKit?

HomeKit,不是一個硬體,也不是一個裝置,它是蘋果在 2014 WWDC 發表的一種平台規範和開發工具框架,主要是用來連結及控制智慧家庭裝置,讓使用者可以透過 iPhone、iPad 或 Apple Watch 來 呼叫 Siri 遙控家中的不同的裝置。米家,

簡單來說 HomeKit 不是給消費者用的,是給製造商及開發者用的。

上面這段看不懂也沒關係,反正你只要知道:

  • 買 Apple 傳輸線買有 MFi(Made For iPhone)圖示,才可以有保障。

專門給 iPhone 使用的配件的圖示

  • 買智慧家電就要有 HomeKit 圖示,才可以用 Siri 控制。

Apple HomeKit 適用的智慧配件圖示

HomeKit 可以幹麻?「家庭」app 又可以幹麻?

iOS 10 推出了「家庭」app,相信大家一定都不陌生,因為在剛推出的時候,十個人有九個人想把它刪掉…因為用不到嘛!那個時候蘋果迷社團裡幾乎每週都會有人上來問這個問題,可以說是週經文之最!

iOS 的「家庭」app

但是如果你有支援 HomeKit 的智慧配件,「家庭」app 可就相當好用了!

任何的 HomeKit 配件都可以加入「家庭」app 裡,依你的想法打造屬於你的智慧家庭,例如天亮了自動開窗簾、上班去門自動上鎖、下班回家自動開冷氣、洗澡前叫 Siri 幫你播音樂、睡覺後自動關燈…等,以往科幻片才會出現的場景,現在就可能發生在你家裡,想想是不是讓人超級興奮阿?!

科技始終來自於 人性 金錢

HomeKit 因為有蘋果自家的認證,在 iOS 上連進「家庭」app 都不用,可以直接從畫面由下往上拉出控製中心裡看到和控制所有的裝置,而且每個裝置都可以直接操作,當然比其他任何第三方的 App 都更容易上手。

蘋果官網介紹「家庭」app 的圖片

我的家,由我指揮!!可是…

曾經有動念想買 HomeKit 智慧家電的人一定都知道,有支援 HomeKit 的產品實在是超貴,沒在騙的,大家可以參考一下燈具的價格…

Apple Store 所販售支援 HomeKit 的配件

是不是很可怕?

我也想指揮我的家啊!!但價位真的有點高啊!!

當然,如果不在意價格,只想要讓生活更簡單,那絕對是選擇 HomeKit 沒錯;但如果你只是剛準備踏入智慧家電這個圈圈,那其實有便宜許多的入門版可以選擇,就是「米家」。

便宜的智慧家庭裝置好選擇:米家

米家是小米推出了一段時間的智慧家庭系統,最大的優勢就是「便宜」!

mijia 也就是米家

而且除了便宜之外,品質也不差,因為已經推出一段時間了,所以在 iOS 上的「米家」app 也還算滿穩定的。

以同樣的智慧家電來說,米家的售價硬是比他牌的便宜了二分之一,甚至三分之一,看看在蘋果迷社團推薦度最高的「小行行動電源」,還有前陣子超夯的「小米掃地機器人」就知道,CP 值相當的高。

米家出品的小米機器人

如果你已經擁有幾個米家的智慧家庭裝置,可以開始照下面的步驟試著把你的裝置加入「家庭」app,讓你的生活更智慧;如果你還沒有任何智慧家庭裝置,又不想花太多錢,那就先把這篇文章存起來,等買了米家之後再回來細看吧!

開始前準備

如果你不缺錢,請直接左轉去蘋果官網買有支援 HomeKit 的智慧型裝置,那才是真正的長久之道。

但是如果你想要省錢,那就別想省麻煩。

這次的教學是使用綠米開放的 API 來手動接到 HomeKit 上,所有的內容都可以在 GitHub 上找到,但還是有幾個必備的東西你要先準備好:

1. 你要有一台 Mac

什麼款式的 Mac 都行,只要有就好

你的 Mac 就是做為米家裝置與 HomeKit 的橋接器,所以最好是準備一台放在家中不要關機的 Mac,這樣才可以 24 小時都透過 iPhone 來控制智慧家電。

當然你也可以使用樹莓派或是 Windows 來取代 Mac,但不是這篇文章的重點,就請有興趣的蘋果迷自行去 Google 了。

2. 你要有米家的智能家居產品

至少要有一件米家智能家居產品

這系列的教學專門是給米家的產品用的,所以你請至少有一件,如果沒有或只有其它品牌的產品,請直接右轉不送。

3. 你最好有一台 iPad、Apple TV 或 HomePod 放在家裡(非必要)

tv 三代或四代都可以

Apple 家庭的新成員 HomePod 也可以

如果你想要「遠端控制」、「自動化操作」這些配件,那就請準備一台 iPad 或 Apple TV(現在還多了 HomePod),並連上家中的 Wi-Fi 網路,並且保持開機的狀態。

如果你的是 Apple TV 3 代,那就只能「遠端控制」,無法設定自動化操作與使用者權限。詳情請自行參閱蘋果官網說明

請按下一頁繼續閱讀 ▼
1 2
Share.

關於作者

十多年前用了 Mac 後驚為天人,從此再也離不開蘋果,立誓要將捨棄 Windows 進入 Mac 後的美好傳遞給所有人,讓簡單純粹重回大家的生活。

69 篇迴響

  1. 对啊,我是改的这个用户名。还是一样的。有什么方法可以解决吗?我装了xcode后需要设置什么吗?

    • 照理說是不用,那你就自己把文件加進去吧!
      先下載 config 範例:https://www.dropbox.com/s/42bku5ubqc89pd4/config.json?dl=0
      然後再進入第二篇教的路衡:Finder >「前往」>「前往檔案夾」
      接著輸入:~/.homebridge/
      然後在那邊丟進 config.json 檔,詳情請看第二篇。

  2. 我应该知道哪里出问题了。。在按照步骤安装到第四步的时候,终端上面显示是安装完成了,但是我电脑里面根本没有.homeridge这个文件夹。。

  3. 感謝詳細教學!
    請問我所有步驟照做也有出現QR code跟八位碼
    但在家庭app掃描QRcode找不到配件是什麼問題呢?
    麻煩幫我解答,萬分感謝!

  4. 现在发现几个问题请您帮忙解答下吧:1.我的空气净化机网络和电脑的是同一个,但是在搜索的空调伴侣时候搜不到我的净化机。2安装网关后一切正常,我在网上看到安装空调伴侣的,安装空调伴侣后网关所有的东西全部失灵了。3空调伴侣也是个网关,这个网关的安装的命令是什么?谢谢

  5. 請問一下
    假設我有一個homepod
    那麼我可以直接將其設定為homebridge嗎?
    還是我一定得要使用樹莓派或者mac才行呢?

  6. 我用ipad做中枢已经开启了,但是我的设备一直都是不可用的。除了在ipad上打开以外需要设置什么吗?

  7. 你好,请问一下我有iPad做中枢,但是电脑关掉后ipad也没信号了,要怎么操作才能让iPad作为中枢??

  8. 还想请教下您,我吧一个网关下的设备重新添加到另外一个网关上去怎么更新,之前绑定的配件还在,已经失效,比如门窗感应、温湿度感应之类的还是显示原来的数据,新添加的又没显示出来。请问要怎么操作。

    • 最快的方法就是從「家庭」App 裡把 homebridge 那個項目移除,再重新加入。

      如果無法重新加入的話,就去 ~/.homebridge/ 裡把兩個資料夾都移掉再重新去終端機 run 一次 homebridge。

      • 你说第一种方法试过了。重新添加后没用,我去试一下吧文件夹删掉,看有没有用。之前只删了一个。

  9. 移除後重裝還是卡在第4步驟
    Tsaide-MacBook-Pro:~ harry$ sudo npm -g install homebridge –unsafe-perm
    /usr/local/bin/homebridge -> /usr/local/lib/node_modules/homebridge/bin/homebridge

    > curve25519-n@1.4.0 install /usr/local/lib/node_modules/homebridge/node_modules/curve25519-n
    > node-gyp rebuild

    CXX(target) Release/obj.target/curve/node_curve.o
    SOLINK_MODULE(target) Release/curve.node
    clang: warning: libstdc++ is deprecated; move to libc++ with a minimum deployment target of OS X 10.9 [-Wdeprecated]

    > ed25519-hap@0.0.5 install /usr/local/lib/node_modules/homebridge/node_modules/ed25519-hap
    > node-gyp rebuild

    CC(target) Release/obj.target/ed25519/src/ed25519/keypair.o
    CC(target) Release/obj.target/ed25519/src/ed25519/sign.o
    CC(target) Release/obj.target/ed25519/src/ed25519/open.o
    CC(target) Release/obj.target/ed25519/src/ed25519/crypto_verify_32.o
    CC(target) Release/obj.target/ed25519/src/ed25519/ge_double_scalarmult.o
    CC(target) Release/obj.target/ed25519/src/ed25519/ge_frombytes.o
    CC(target) Release/obj.target/ed25519/src/ed25519/ge_scalarmult_base.o
    CC(target) Release/obj.target/ed25519/src/ed25519/ge_precomp_0.o
    CC(target) Release/obj.target/ed25519/src/ed25519/ge_p2_0.o
    CC(target) Release/obj.target/ed25519/src/ed25519/ge_p2_dbl.o
    CC(target) Release/obj.target/ed25519/src/ed25519/ge_p3_0.o
    CC(target) Release/obj.target/ed25519/src/ed25519/ge_p3_dbl.o
    CC(target) Release/obj.target/ed25519/src/ed25519/ge_p3_to_p2.o
    CC(target) Release/obj.target/ed25519/src/ed25519/ge_p3_to_cached.o
    CC(target) Release/obj.target/ed25519/src/ed25519/ge_p3_tobytes.o
    CC(target) Release/obj.target/ed25519/src/ed25519/ge_madd.o
    CC(target) Release/obj.target/ed25519/src/ed25519/ge_add.o
    CC(target) Release/obj.target/ed25519/src/ed25519/ge_msub.o
    CC(target) Release/obj.target/ed25519/src/ed25519/ge_sub.o
    CC(target) Release/obj.target/ed25519/src/ed25519/ge_p1p1_to_p3.o
    CC(target) Release/obj.target/ed25519/src/ed25519/ge_p1p1_to_p2.o
    CC(target) Release/obj.target/ed25519/src/ed25519/ge_tobytes.o
    CC(target) Release/obj.target/ed25519/src/ed25519/fe_0.o
    CC(target) Release/obj.target/ed25519/src/ed25519/fe_1.o
    CC(target) Release/obj.target/ed25519/src/ed25519/fe_cmov.o
    CC(target) Release/obj.target/ed25519/src/ed25519/fe_copy.o
    CC(target) Release/obj.target/ed25519/src/ed25519/fe_neg.o
    CC(target) Release/obj.target/ed25519/src/ed25519/fe_add.o
    CC(target) Release/obj.target/ed25519/src/ed25519/fe_sub.o
    CC(target) Release/obj.target/ed25519/src/ed25519/fe_mul.o
    CC(target) Release/obj.target/ed25519/src/ed25519/fe_sq.o
    CC(target) Release/obj.target/ed25519/src/ed25519/fe_sq2.o
    CC(target) Release/obj.target/ed25519/src/ed25519/fe_invert.o
    CC(target) Release/obj.target/ed25519/src/ed25519/fe_tobytes.o
    CC(target) Release/obj.target/ed25519/src/ed25519/fe_isnegative.o
    CC(target) Release/obj.target/ed25519/src/ed25519/fe_isnonzero.o
    CC(target) Release/obj.target/ed25519/src/ed25519/fe_frombytes.o
    CC(target) Release/obj.target/ed25519/src/ed25519/fe_pow22523.o
    CC(target) Release/obj.target/ed25519/src/ed25519/sc_reduce.o
    CC(target) Release/obj.target/ed25519/src/ed25519/sc_muladd.o
    CXX(target) Release/obj.target/ed25519/src/ed25519.o
    SOLINK_MODULE(target) Release/ed25519.node
    clang: warning: libstdc++ is deprecated; move to libc++ with a minimum deployment target of OS X 10.9 [-Wdeprecated]
    /usr/local/lib
    └─┬ homebridge@0.4.44
    ├─┬ chalk@1.1.3
    │ ├── ansi-styles@2.2.1
    │ ├── escape-string-regexp@1.0.5
    │ ├─┬ has-ansi@2.0.0
    │ │ └── ansi-regex@2.1.1
    │ ├── strip-ansi@3.0.1
    │ └── supports-color@2.0.0
    ├─┬ commander@2.8.1
    │ └── graceful-readlink@1.0.1
    ├─┬ hap-nodejs@0.4.47
    │ ├─┬ bonjour-hap@3.5.1
    │ │ ├── array-flatten@2.1.1
    │ │ ├── deep-equal@1.0.1
    │ │ ├── dns-equal@1.0.0
    │ │ ├─┬ dns-txt@2.0.2
    │ │ │ └── buffer-indexof@1.1.1
    │ │ ├─┬ multicast-dns@6.2.3
    │ │ │ ├─┬ dns-packet@1.3.1
    │ │ │ │ └── safe-buffer@5.1.2
    │ │ │ └── thunky@1.0.2
    │ │ └── multicast-dns-service-types@1.1.0
    │ ├── buffer-shims@1.0.0
    │ ├─┬ curve25519-n@1.4.0
    │ │ ├── bindings@1.3.0
    │ │ └── nan@2.10.0
    │ ├─┬ debug@2.6.9
    │ │ └── ms@2.0.0
    │ ├── decimal.js@7.5.1
    │ ├── ed25519-hap@0.0.5
    │ ├── fast-srp-hap@1.0.1
    │ ├── ip@1.1.5
    │ └─┬ node-persist@0.0.11
    │ └─┬ mkdirp@0.5.1
    │ └── minimist@0.0.8
    ├─┬ node-persist@0.0.8
    │ ├── mkdirp@0.3.5
    │ └── q@1.1.2
    ├── qrcode-terminal@0.11.0
    └── semver@5.0.3

    Tsaide-MacBook-Pro:~ harry$ cd /Users/harry/.homebridge/
    -bash: cd: /Users/harry/.homebridge/: No such file or directory
    Tsaide-MacBook-Pro:~ harry$

      • 他會自己分兩行
        我一貼上他就會變成以下情況
        Tsaide-MacBook-Pro:~ harry$ cd /Users/harry/.homebridge/
        -bash: cd: /Users/harry/.homebridge/: No such file or directory
        Tsaide-MacBook-Pro:~ harry$ vi config.json

          • 你試試這樣:

            安裝homebridge後
            先直接在terminal run一下Homebridge
            你應該看到 No plugins found. See the README for information on installing plugins.
            然後直接去finder 前往 ~/.homebridge
            應該可以去到那個folder 的
            我的Mac 也是10.13.5

            我現在算是安裝了homebridge 加了去 家居,但 加入 小米空氣清新機 一直說沒有找到plugin, 查看一下,根本沒有產生那個node_modules 的folder…

            還在嘗試

          • 我的 Mac 也是 10.13.5,安裝沒問題,上個星期幫網友遠端安裝也沒問題。
            你直接做一個 config.json 檔丟到到 ~/.homebridge/ 資料夾裡應該會快一點。

  10. 感謝分享!! 照你的方法,把homebridge、多功能網關(其中Zigbee聯: 壁插、溫濕度感知器*2)、基礎版智能開關都設定進去了!!
    請問,是不是只要無線網路斷線,那麼homebridge就會自動斷離?!因為我的無線基地台是設定每晚半夜關閉!!但是我的MAC是接有線的,我MAC也都沒有關機!!上文說到apple TV是非必要,可是我看到我的Homebridge中顯示Apple TV已中斷連線,表示早上無線網路又打通後,Apple TV不會自動連線,而且我的homebridge所有元件也都顯示無法使用!!

    • 所有的米家裝置都是連 WiFi 的,WiFi 一斷,當然不可能可以運作啊~米家的 App 也無法在沒 WiFi 的情況下使用,何況是 HomeBridge。
      你的 Mac 沒關只是確保 HomeBridge 的連線沒斷,但只要米家裝置一斷線,有 HomeBridge 也沒用。

      Apple TV、iPad、HomePod 是控制中樞是讓你出門之後還是可以透過 4G 連回家控制智能家電,如果你只想在家的時候控制,那就不必要準備。

      早上 WiFi 開了 Apple TV 不會自動連線,那你就要手動去連一下摟~

  11. 我wifi是設定凌晨1:00~5:00關閉,而我早上7:00起床手機看所有Homebridge元件都可動作,是因為我人還在家,連在家裡的wifi!!也就是說不透過Apple TV!! 但是當我離家後,手機是使用4G網路,連回Apple 家庭,卻沒有apple TV橋接進Homebridge,所以所有元件呈現無法使用!! 這樣理解對嗎?
    可是米家的程式,因為所有東西都是在家裡連上家裡的wifi,所以當我離家時,不管是4G網路或者是公司不同網的wifi,都可以連線控制家裡的智能元件!!

    • 是的。
      米家的程式跟「家庭」不同,如果你想透過「家庭」app 來控制,那就要有一台中樞,可以是 Apple TV 4代、iPad 或是 HomePod 任一種。

      你的 Apple TV 是幾代的?

  12. 哈哈!!我設定好homebridge後,不知道其實apple TV就被loop進去了!!我的是第三代apple TV!!因為我看教導中是要apple TV 4,但又備註非必要,所以想說試試看囉!!沒想到設定好之後發現homebridge中已經有我的apple TV 3了!!

    另外,想請教你,我有買小米藍芽溫濕度感知器!!但是都得要手機在家裡藍芽連現該元件才能讀溫濕度。可是米家app又說有藍芽無線網關這種東西,如果藍芽無線網關連線,那麼在戶外也可以藉由wifi連線藍芽無線網關,再讀取藍芽溫濕度感知器,不知道是否可以藉由homebrige做到藍芽無線網關的功能?

發表評論