如何將任何智能設備連接到 HomeKit(使用 Raspberry Pi)

已發表: 2022-01-29
帶有 Homekit 徽標的樹莓派
蘋果樹莓派基金會

許多智能設備跳過 Apple HomeKit 支持,僅與 Alexa、Google 和其他平台集成。 不過,通過這個 Raspberry Pi hack,您可以使用開源 Homebridge 軟件將 HomeKit 支持添加到任何智能設備。

適用於任何智能設備的 HomeKit

如果您全心全意使用 HomeKit,那麼一個大問題是支持它的智能設備很少。 例如,唯一阻礙一些廉價智能燈泡的是它們缺乏對 HomeKit 的支持。 亞馬遜選擇的“智能燈泡”是 TECKIN 的四件裝,在撰寫本文時,它的成本約為 40 美元,比一個 LIFX 燈泡還低。

塗鴉智能燈

當然,它們不如 LIFX 優質。 顏色沒有那麼鮮豔,它們在浴室裡發出嗡嗡聲,但只要 10 美元一瓶,它們的價值就相當無與倫比了。

不過,主要問題是它們不支持 HomeKit。 他們並不完全愚蠢——他們使用 Google Home、Alexa、IFTTT 和製造商的應用程序。 它們適合只有 TECKIN 智能燈泡的人。

但是,由於您無法從 HomeKit 訪問它們,因此您無法從 Home 應用、控制中心中的小部件或 Siri 控制它們。 您也不能將它們包含在具有其他品牌燈泡的場景中或在自動化中使用它們。 如果您已經投資了 HomeKit,那麼這很可能會破壞交易。

認識 Homebridge

幸運的是,有一個技巧可以讓這些特殊的燈泡更加有用。 HomeKit API 允許稱為網橋的設備(例如 Philips Hue 的這款設備)連接在其他協議上運行的子設備。 您只需將橋接器添加為 HomeKit 中的設備,它就會在 HomeKit 中註冊連接到它的每個燈。 每當您請求更新燈光時,您的手機都會與網橋對話,而網橋會與燈光對話。

廣告

因此,網橋只是將信息從一個 API 中繼到另一個 API。 由於您可以通過 Internet 控制 TECKIN 燈泡,因此完全可以僅通過軟件將它們連接到 HomeKit——無需專有硬件。

如果你有一個樹莓派(一個 5 美元的零樹莓派就可以了),你可以用一個叫做 Homebridge 的框架將它設置為一個橋接器。 這個輕量級的 NodeJS 應用程序模擬 HomeKit API 並將請求轉發到您的非 HomeKit 智能設備。

基本上,你在 Pi 上運行它,它會將每個“啞”設備添加到 Home 應用程序中。 當您嘗試通過 Home 應用程序或 Siri 控制燈泡時,Homebridge 會為您與設備對話。 設置好之後,就像設備一開始就支持 HomeKit 一樣。

這要求設備始終運行 Homebridge,因此您不會在筆記本電腦上安裝它。 Raspberry Pi 是理想的選擇,但如果您有一台舊設備,您可以將其重新用作始終運行的服務器或桌面,您可以將其安裝在上面。

Homebridge 是一個框架,您可以使用插件對其進行擴展。 它有一個相當大的社區支持,所以任何給定的智能設備都可能有一個 Homebridge 插件來增加對它的支持。 如果您的設備沒有插件,但您的智能設備有 API,並且您精通技術,您可以自己編寫一個。

廣告

不過,對於大多數人來說,設置只是安裝 Homebridge 和設備的品牌插件,以及一些配置。 如果您可以使用命令行並且有一點時間,那是相當容易的。

安裝和配置 Homebridge

Homebridge 是一個 NodeJS 應用程序,因此您必須安裝nodenpm才能使用它。 如果您的機器運行 Linux,您可能可以從包管理器中獲取它。

在 Ubuntu 上,您必須鍵入以下內容來手動設置 Node 存儲庫,然後安裝nodejs

 curl -sL https://deb.nodesource.com/setup_13.x | 須藤 -E bash -
sudo apt-get install -y nodejs

否則,您可以查閱 Node 的下載頁面,了解如何為您的特定操作系統安裝它。

如果你在Linux上,還需要安裝一些依賴項,如下圖:

 sudo apt-get install libavahi-compat-libdnssd-dev

之後就可以通過npm全局安裝 Homebridge,如下圖:

 sudo npm install -g --unsafe-perm homebridge
廣告

您還想安裝您需要的品牌插件,因為 Homebridge 只是一個框架。 例如,TECKIN 燈泡的插件是homebridge-tuya-web ,它也可以在全球範圍內安裝。

您將鍵入以下內容:

 npm i homebridge-tuya-web -g

一切安裝完畢後,就可以實際使用了! 鍵入以下內容以運行 Homebridge 一次並初始化所有內容:

 家橋

它會抱怨缺少您必須創建的配置。 默認目錄是~/.homebridge/ ,但如果要移動它,可以使用-U參數。

鍵入以下內容以在此文件夾中創建新的 JSON 配置文件:

 納米 ~/.homebridge/config.json

不管你使用什麼插件,都需要以下基本配置:

 {
  “橋”: {
    “名稱”:“家橋”,
    "用戶名": "CC:22:3D:E3:CE:30",
    “端口”:51826,
    “別針”:“031-45-154”
  },

  "description": "自定義 HomeBridge 服務器",

  “港口”:{
    “開始”:52100,
    “結束”:52150,
  },

  “平台”:[

  ]
}

這會為 Homebridge 配置默認端口、名稱、PIN 和可分配給其他設備的端口範圍。

廣告

在空的platforms數組中,放置每個插件的配置。 您應該能夠在每個插件的 GitHub 頁面上找到相關說明和示例。

在下面的示例中,TECKIN 燈泡的homebridge-tuya-web插件想知道我的用戶名和密碼以連接到燈泡應用程序的 API,以及其他一些事情:

 “平台”:[
     {
       "平台": "塗鴉網絡平台",
       "name": "塗鴉網絡平台",
       “選項”:
         {
           “用戶名”:“用戶名”,
           “密碼”:“密碼”,
           "國家代碼": "1",
           “平台”:“智能生活”,
           “輪詢間隔”:10
         }
     }
   ]

完成所有配置後,Homebridge 就可以開始使用了。 再次運行它,你的終端應該會顯示一個巨大的二維碼,可能會迫使你縮小。 使用 Home 應用程序掃描它以將其和所有連接的設備添加到 HomeKit。

終端二維碼

Homebridge 會加載您的插件,並且應該為它找到的每個設備在屏幕上記錄一條消息。 添加後,您應該可以在 HomeKit 中看到它們,並且它們應該功能齊全。

與我的 LIFX 燈泡相比,我確實注意到了輕微的延遲。 這可能是因為燈泡是通過 API 控制的,而不是直接控制的。 起初,燈泡也沒有正確顯示一些白色和暖白色,但經過一些調整,我能夠設置正確的場景。

您可以隨時在自己的應用程序中配置設備,等待 Home 應用程序更新,然後在 HomeKit 中使用預製配置設置場景。

廣告

如果您需要重新添加 Homebridge,您需要刪除 config 目錄中的persist/文件夾,然後在“Bridge”選項卡下的任何已連接燈泡的設置中從 HomeKit 中刪除橋接器。

將 Homebridge 添加為服務

如果您希望 Homebridge 一直運行,您可能需要將其配置為在崩潰或 Raspberry Pi 重新啟動時重新啟動。 您可以通過 Unix 服務執行此操作。 在您確認 Homebridge 正常工作後進行設置。

首先,添加一個名為homebridge的新服務用戶:

 sudo useradd -M --system homebridge

設置密碼:

 sudo passwd homebridge

接下來,您必須將homebridge配置移到您的個人主目錄之外。 /var/lib/homebridge/應該沒問題:

 sudo mv ~/.homebridge /var/lib/homebridge/

確保使用homebridge的人擁有該目錄和所有子文件夾的所有權:

 sudo chown -R homebridge /var/lib/homebridge/

完成後,您可以創建服務。 為此,請在/etc/systemd/system/中創建一個名為homebridge.service的新文件:

 須藤納米/etc/systemd/system/homebridge.service

然後粘貼以下配置:

 [單元]
描述=Homebridge 服務
After=syslog.target network-online.target

[服務]
類型=簡單
用戶=homebridge
ExecStart=/usr/bin/homebridge -U /var/lib/homebridge
重啟=失敗
重啟秒=10
KillMode=進程


[安裝]
WantedBy=多用戶.target

重新加載服務守護程序以使用您的更改對其進行更新:

 sudo systemctl daemon-reload
廣告

現在,您應該能夠啟用您的服務(將其設置為在啟動時運行):

 sudo systemctl 啟用 homebridge

並啟動它:

 sudo systemctl 啟動 homebridge

如果您需要調試由服務配置引起的錯誤,您可以通過鍵入以下命令查看服務的日誌:

 journalctl -fn 50 -u 主橋