iT邦幫忙

2024 iThome 鐵人賽

DAY 8
0
自我挑戰組

Home Assistant的介紹及應用系列 第 8

將Home Assistant串接到Google Home

  • 分享至 

  • xImage
  •  

前言

昨天我們介紹如何選購適合HA的裝置
今天我們來介紹如何將 HA連接到 Google Home 來進行智能家居控制。
這篇文章會介紹兩種方式:

方法

  1. 付費使用 Home Assistant Cloud
    這是最簡單的方法,透過 Home Assistant 的官方雲端服務來實現 Google Home 的整合,不需要進行太多的設定,月費方案也相對方便。

  2. 自行到 Google Cloud Platform (GCP) 建立專案並連結到 HA
    這種方式雖然需要一些手動設定,但它是免費的,並且需要一個帶有 HTTPS 的外部網址來操作。

這裡我們主要著重在方法二,
方法一的可以跳到第8步,在第4節然後搜尋Nabu選擇加入

如何自行到 GCP 建立專案並連結 HA?

第一步: GCP 建立專案

Actions on Google,選擇 New Project,並為專案取個名字。

第二步:選擇 Smart Home

選擇 Smart Home 卡片,然後點選 Start Building

第三步:設定 Smart Home Action 的名稱

在 Quick Setup 中,選擇 Name your Smart Home action,並為你的 Action 命名。這個名稱會在 Google Home 應用程式中以 [test] <Action Name> 的形式顯示。

第四步:配置 Action

  1. 返回頂部頁面的 Overview 標籤頁。
  2. 點選 Build your Action,接著點選 Add Action(s)
  3. Fulfillment URL 文本框中,輸入你的 Home Assistant 連結,格式如下:https://[YOUR HOME ASSISTANT URL:PORT]/api/google_assistant,將 [YOUR HOME ASSISTANT URL:PORT] 替換為你的 HA 域名或 IP 地址與埠號。
  4. 選擇 Save
  5. 點選右上角的三個小點(更多)圖示,然後選擇 Project settings,在 General 標籤頁下記錄你的 Project ID

第五步:設定帳號連結

  1. 返回 Overview 頁面。

  2. 在 Quick Setup 區域中,點選 Setup account linking

  3. 如果出現提示,保留預設選項 No, I only want to allow account creation on my website,然後點選 Next

  4. 接下來,選擇 OAuth and Authorization Code 作為帳號連結的類型,並點選 Next

  5. 輸入以下資料:

    • Client ID: https://oauth-redirect.googleusercontent.com/r/[YOUR_PROJECT_ID](將 [YOUR_PROJECT_ID] 替換為你記錄的 Project ID)
    • Client Secret: 任意輸入,Home Assistant 不需要此欄位。
    • Authorization URL: https://[YOUR HOME ASSISTANT URL:PORT]/auth/authorize(將 [YOUR HOME ASSISTANT URL:PORT] 替換為你的 HA 網址和埠號)
    • Token URL: https://[YOUR HOME ASSISTANT URL:PORT]/auth/token(同樣替換網址)
  6. 點選 Next,然後再次點選 Next

  7. Configure your client Scopes 文本框中,輸入 email 並點選 Add scope,接著再輸入 name 並再次選擇 Add scope

  8. 不要勾選 Google to transmit clientID and secret via HTTP basic auth header

  9. 點選 Next,再選擇 Save

  10. 點選頁面頂部的 Develop 標籤,然後在右上角選擇 Test 按鈕來生成草稿版本的 Test App。如果沒有看到這個選項,請前往 Test 標籤頁,點選右上角的 Settings,並確保 On device testing 已啟用。

第六步:啟用設備同步功能

  1. 進入 Google Cloud Platform 並選擇你的新專案。
  2. 打開左側菜單,選擇 APIs and Services,接著點選 Credentials
  3. Credentials 頁面中,點選 Create credentials 並選擇 Service account
  4. 為你的服務帳戶取個名字,然後點選 Create and Continue
  5. Select a role 下,選擇 Service Accounts > Service Account Token Creator
  6. 點選 Continue,然後點選 Done
  7. Service Accounts 中,你應該可以看到一個名稱為 [name from 4.1]@[projectname].iam.gserviceaccount.com 的帳戶,點選該帳戶的鉛筆圖示。
  8. 前往 Keys 頁籤並選擇 Add key,然後選擇以 JSON 格式創建一個私密金鑰,這會下載一個 JSON 檔案。
  9. 將這個檔案重命名為 SERVICE_ACCOUNT.JSON
    並將它放到 Home Assistant 的 config 資料夾內
    (用前面安裝的File editor,側邊欄打開,選擇上面的Upload File),和 configuration.yaml 同一個資料夾。
  10. 返回 Google Cloud Platform 並點選 Close,然後選擇 Save
  11. 回到 Google Cloud Platform 主頁,在 Search products and resources 中搜尋 HomeGraph API,並將其啟用。

第七步:修改 Home Assistant 設定

  1. 在你的 /homeassistant/configuration.yaml 中加入 google_assistant 整合的相關配置。
google_assistant:
  project_id: [你的project_id]	
  service_account: !include SERVICE_ACCOUNT.JSON
  report_state: true
  1. 重啟 Home Assistant。

第八步:在 Google Home App 中添加服務

  1. 打開 Google Home 應用程式。
  2. 點選裝置,然後選擇 +新增
  3. 選擇裝置 頁面中,選擇 支援Google Home
  4. 你應該會看到 [test] <Action Name> 列表,點選它會將你導向 Home Assistant 的登入頁面,登錄後會重定向回 Google Home,讓你進行設備的房間和暱稱設置。

這樣就完成了!你現在應該可以透過 Google Home 控制 Home Assistant 內的設備了。

下期預告

明天我們要來介紹如何串接HomeKit,方法會比串接Google Home簡單很多,敬請期待


上一篇
裝置接入HA方式介紹和推薦
系列文
Home Assistant的介紹及應用8
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言