真正「有腦」的智慧家庭!Home Assistant 自訂 AI 語音助理 ChatGPT, Gemini 讓你的智慧家庭活起來 – Home Assistant 手把手教學 EP 9

鋼鐵人大家有看過吧,Tony 和 Jarvis 對話肯定是很多人的夢想 (至少我是啦🤣),今天帶大家使用現在最潮的 AI 們 (ChatGPT、Google Gemini) 自訂 HA 語音助理,讓原本的智障助理變成真正的「智慧」助理!

不過因為我才剛弄到 ESP32-S3-BOX-3,需要再花點時間安裝、測試,今天只能先帶大家讓 Home Assistant 長腦,還沒辦法說話~下一集再帶大家使用 ESP32-S3-BOX-3 讓你的 Home Assistant 語音助理開口說話~


我們為什麼會需要更聰明的語音助理?

鋼鐵人 with Jarvis

大家應該有用過 Siri、Google Assistant 這類「上個世代」的語音助理吧?俗稱「智障助理」🤣 因為 Siri、Google Assistant 這類上個世代的語音助理都有一個共通的問題,就是只能理解固定的指令,與其說是理解,其實更像是「可以識別」,而識別的方式就是工程師寫死在程式裡的,所以如果你沒有精準的用詞,那這些上個世代的語音助理就完全聽不懂你在說什麼。

而 Home Assistant 系統預設的語音助理也是同樣狀況,這也造成了我家的智慧家庭使用語音控制的比例只有不到 1% 這麼低,因為成功率實在太低了,要用講的還不如我直接拿手機起來控制還更快 🤬

近幾個月 Google 已經開放讓 Android 內建的語音助理可以更換成 Gemini (但 Nest 智慧家庭音箱還不行),Apple 也傳出消息準備和 ChatGPT 合作,過去這種「上個世代的智障助理」應該很快會有改善,而 Home Assistant 也在近幾個月推出可以自訂語音助理使用的 LLM (Large Language Model,大型語言模型),為了可以讓智慧家庭盡可能的本地化,讓我們開始來試試看吧!


Step 1. 建立 Home Assistant 語音助理

Step 1-1. 左側「設定」 ➜ 「語音助理」

左側「設定」 ➜ 「語音助理」

Step 1-2. 點擊「新增助理」

(如果這裡已經有助理可以直接跳過)

點擊「新增助理」

Step 1-3. 自行輸入「名稱」,其他都先使用預設選項即可

自行輸入「名稱」

Step 1-4 測試助理是否正常

回到「總覽」,點擊右上角對話泡泡按鈕,和助理對話試試,有反應就表示成功啦!

這時候還是「智障助理」,別擔心,接下來我們來串接 ChatGPT 和 Google Gemini 讓它變聰明!👍

測試助理是否正常

Step 2. 取得 OpenAI API 金鑰

Step 2-1. 註冊/登入 OpenAI Platform

這和平常用的 ChatGPT 不同,先到 OpenAI Platform 完成註冊並登入。

Step 2-2. 建立 OpenAI secret key

  1. 左側欄點選「API keys」
  2. 右上角點選「Create new secret key」
  3. 「Create secret key」建立 secret key
Create secret key

Step 2-3. 保存 secret key

「Copy」複製下來,找個地方存好,後面會用到。

保存 secret key

Step 3. 新增「OpenAI Conversation」整合

Step 3-1. Home Assistant 左側「設定」 ➜ 「裝置與服務」

Home Assistant 左側「設定」 ➜ 「裝置與服務」

Step 3-2. 安裝「OpenAI Conversation」

  1. 右下角點選「新增整合」
  2. 找到「OpenAI Conversation」並點擊
  3. API 金鑰填入在 Step 2-3. 取得的 secret key
  4. 點擊「傳送」
安裝「OpenAI Conversation」

Step 4. 取得 Google AI API key

Step 4-1. 註冊/登入 Google AI Studio

Google AI Studio 完成註冊並登入。

Step 4-2. 建立 Google AI API key

  1. 左側欄點選「Get API key」
  2. 點選「Create API key」
  3. 選擇「Google Cloud project」(如果沒有就按引導步驟新增一個)
  4. 點擊「Create AI key in existing project」
  5. 複製填出視窗中的「Copy」將 API key 保存好接下來會用到
建立 Google AI API key

Step 5. 新增「Google Generative AI」整合

Step 5-1. Home Assistant 左側「設定」 ➜ 「裝置與服務」

Home Assistant 左側「設定」 ➜ 「裝置與服務」

Step 5-2. 安裝「Google Generative AI」

  1. 右下角點選「新增整合」
  2. 找到「Google Generative AI」並點擊
  3. API 金鑰填入在 Step 4-2. 取得的 API key
  4. 點擊「傳送」
安裝「Google Generative AI」

Step 6. 設定 Home Assistant 語音助理使用的對話助理

有點饒口,但簡單來說就是將原本 Home Assistant 的智障語音助理換成 ChatGPT 或是 Google Gemini 看你喜歡 🤣

Step 6-1. 選擇 Home Assistant 語音助理

  1. Home Assistant 左側「設定」 ➜ 「語音助理」
  2. 選擇你的語音助理
選擇 Home Assistant 語音助理

Step 6-2. 設定對話助理

  1. 選單中可以選擇 Home Assistant、ChatGPT、Google Generative AI,選一個你喜歡的 (這裡用 Google 示範)

💡 選單右側有個 ⚙️ 可以進行進階設定,建議在摸清楚功能之後再嘗試調整喔~

  1. 按下「更新」
設定對話助理

大功告成!

恭喜你!你的 Home Assistant 變成真正的智慧助理啦~試著和你的 Home Assistant 對話吧~

也可以試試看透過 Step 6-2. 提到的進階設定讓你的語音助理更有個性喔!

大功告成!

下集預告

下一集將帶大家使用 ESP32-S3-BOX-3 在 Home Assistant 建立 “會講話” 的語音助理喔!

敬請期待~

19 COMMENTS

    • Hi George, 先確認一下 API 金鑰有沒有填對,還有記得要先儲值才能用喔!API 的調用和訂閱 ChatGPT 是分開的

      • API 金鑰沒有填對應該沒辦法配置到整合裡,看起來可能要儲值才行。

  1. 請教一下,當我設定完成Google Generative AI後 嘗試設定設備 On/Off 或是其他功能出現,sorry i had a problem talking to google generative ai:500 An internal error has occurred. Please retry這部分是不是還需要做其他的設定呢?
    當我嘗試取得設備狀態 以及目前開啟的燈 回覆資訊是穩定的。
    謝謝!

    • Hi Yean, 我查了一下 500 error 是指 “Your input context is too long.” (輸入的背景資訊過長),把授權的裝置數量減少再試試看

  2. 請教一下 當我設定完成後,想藉由Google Generative AI 控制設備On/Off 或是其他功能時,提示出來sorry i had a problem talking to google generative ai:500 An internal error has occurred. Please retry這部分是不是還有其他設定得做呢? 謝謝!

    • Hi Richard, Google 有免費 (Free of charge) 方案可以選,當然還是有使用限制,但嚐嚐鮮算是夠用了,用起來喜歡再考慮付錢囉

      • Hi Neil~我剛查詢了一下,我的認知GOOGLE AI、OPEN AI的API服務是不是我只要在他的流量限制內都是免費使用,超過流量就會要你付費,是這樣嗎?不好意思問題有點多~謝謝您

      • 原來是這樣,我OpenAI沒有設定billing plan,難怪會出現Error Code,那如果我用Google AI,是否就如我上述的,流量內都免費,超過流量他才會要你付費,還是我需要去選取付費機制呢?搞得有點亂~

  3. hi Neil:
    我目前按照您的教學,成功使用Google Generative AI當助理,然而使用ChatGPT當助理時,對話顯示OPEN AI Error Code:429,查詢OPEN AI錯誤碼對照表,意思是我頻繁使用已超出使用限制,是需要收費嗎?

LEAVE A REPLY

Please enter your comment!
Please enter your name here

你可能會喜歡
最近的討論
  • Jerry 2025/04/14非常感謝Neil無私的分享,您提供的這些網站對我幫助很大。我先收藏好,再來慢慢消化^^ 也期待之後Neil的產業新訊與教學文章Home Assistant Floor plan 視覺化平面圖智慧家庭控制新體驗! – Home Assistant 手把手教學 EP 6
  • Neil 2025/04/13Hi Jerry, 我通常從這些地方取得關於 HA 的資訊: 網站: – Home Assistant 官方 Release note – Automata – 家庭自動化社群 – 惟家居家智能 FB 社團: – Taiwan Home Assistant 同好交流 – Home Assistant YouTube 頻道: – Smart Home Solver – Everything Smart Home – Home Assistant 程式語言的部分: 嚴格說來 YAML 不太算是程式語言 (先聲明,以免有些人很介意🤣),不過如果把這些 “看似” 程式語言的資料格式或是樣式語言都算進來,以 HA 中使用深度排序 (越下面越深): – YAML (資料格式):HA 環境中很多地方會用到的設定檔用語言。 – CSS (樣式語言):用來調整介面樣式 (字體大小、顏色、圖片、位置…等)。 – JSON (資料格式):如果有用 Node-RED 應該會碰到。 – Jinja2 (Python 模板語法):自動化或是 Dashboard 玩深一點可能會碰到。 ※ 但其實現在的 HA 就算不會上面這些也都可以把智慧家庭弄的很完整了,不見得要給自己這麼多壓力,但如果有興趣多了解一些也不錯 關於裝置支援度 這其實很難一概而論,現在就算家電本身不支援,還是有很多不同的方式可以把傳統家電接入 HA。 另外像海爾這種 case,也確實需要深入研究,通常我會做的就是在網路上爬大量的資訊,通常都會找到其他人做過的嘗試,剛好我最近在查其他資料的時候有看到有人分享海爾熱水器接入 HA 但也確實像你講的,多碰一段時間,就會越來越了解這些細節了 🤣Home Assistant Floor plan 視覺化平面圖智慧家庭控制新體驗! – Home Assistant 手把手教學 EP 6
  • Jerry 2025/04/10hello Neil: 觀察了1、2天,似乎都正常了,可能是剛建置那段時間,碰到系統不太穩定吧!? 越玩越覺得水很深,也發現自已還有很多不足的,不知Neil是否能分享,教大家怎麼釣魚嗎? 例如推薦不錯的網站、論壇、FB社團、youtube影片,或是指導一下,除了YAML語言外,是不是會一些CSS語法也會有幫助,還需要會其它種語言嗎? 甚至開一個新教學方向,看到標榜有支援APP的非大廠產品(例如大陸的產品),教大家怎麼辨別能否接入HA,怎麼問客服?從哪裡可看到支援的文章或平台?這類的經驗談,我想對大家也很有幫助。 我目前想買海爾的熱泵電熱水器,海爾在世界來看也是大廠,也有自已的APP,從HACS也有找到海爾的套件,但似乎沒支援熱泵電熱水器,那是否就代表無法接入HA了?或是有什麼管道可以查得到呢? 對岸也有不少平板燈兼風扇功能的燈具,也是標榜支援APP連線,但皆是小廠,也不好辨別能否接入HA。這都是我目前碰到的問題,如果家電買的跟Neil分享的不一樣,就有點不知如何開始。 可能我還太嫩了,再玩個幾個月,也許我以上的問題就不是問題了,哈^^Home Assistant Floor plan 視覺化平面圖智慧家庭控制新體驗! – Home Assistant 手把手教學 EP 6
  • Neil 2025/04/09Hi Jerry, 我自己測試是沒問題,但要注意的是因為是透過雲端控制,有多一層品牌中介,所以不適合快速切換開關,我自己測試點擊後大約 1 秒左右就同步完成了,記得要在 entities 裡把實體放進去,否則狀態顯示可能會有問題Home Assistant Floor plan 視覺化平面圖智慧家庭控制新體驗! – Home Assistant 手把手教學 EP 6
  • Jerry 2025/04/07謝謝Neil的解惑。我後來測試,發現使用「按鈕面板」去控制伊萊克斯清淨機(和Neil的同款)的開關,設備會在1秒左右就反應開或關了,但開的「狀態圖示」則慢很多,大約要等個30秒,關的「狀態圖示」則是正常,其它負離子開關的「狀態圖示」和監測燈開關的「狀態圖示」也正常,害我以為同步有狀況。我再測試看看好了,也許是那個地方沒設定好導致的。Home Assistant Floor plan 視覺化平面圖智慧家庭控制新體驗! – Home Assistant 手把手教學 EP 6
  • Neil 2025/04/07Hi Jerry, 1. 這個方式就是透過雲端整合,實際上就是用 HA 去呼叫小米/伊萊克斯去控制裝置 2. 不太正常,如果有這個狀況可能要看一下你顯示在 floor plan 的實體是不是真正可以代表該裝置的狀態,如果不行可能要換同裝置的其他實體試試看Home Assistant Floor plan 視覺化平面圖智慧家庭控制新體驗! – Home Assistant 手把手教學 EP 6
  • Jerry 2025/04/07問題解決了,再次感謝Neil的幫忙^^ 另外再請教2個觀念的問題,請教Neil我是否認知有錯誤 1、我透過HACS把小米和伊來克斯的設備連進HA,這中間還是透wifi的方式來連結是吧!?在連結前還需要向官方取得API key、Access Token這方面的資訊,代表HA和設備之間的溝通仍然需要經過官方,只是可以取代官方的APP,全部整合進HA的APP一起控制? 2、經過測試,透過實體操作或原官方APP去操控設備,HA的app是沒辦法同步知道設備的狀態,相反則可以,這是正常的是吧!?例如,家裡的小米電風扇在出門前,被人用實體的方式打開,但人在外面,是無法透過HA的app知道設備忘了關,要連到小米的app才會知道!?Home Assistant Floor plan 視覺化平面圖智慧家庭控制新體驗! – Home Assistant 手把手教學 EP 6
  • Jerry 2025/04/07Xiaomi Home的國家選擇新加坡就可以用了Home Assistant 必裝外掛 HACS 安裝步驟詳解 – Home Assistant 手把手教學 EP 17
  • Ghost 2025/04/07Xiaomi Home 目前不支援台灣區,暫時還是只能用 Xiaomi Miot Auto 至於 Xiaomi Cloud Map Extractor 目前遇到 2FA 的問題,好像沒有簡單的解法,我自己還沒試成功Home Assistant 必裝外掛 HACS 安裝步驟詳解 – Home Assistant 手把手教學 EP 17
  • Neil 2025/04/07Jerry, 看起來應該是因為疊圖導致點擊動作無法穿透 在換圖的部分 style 加 pointer-events: none 試試看Home Assistant Floor plan 視覺化平面圖智慧家庭控制新體驗! – Home Assistant 手把手教學 EP 6
你可能會喜歡