Home Assistant

Home Assistant: liên kết Google Assistant

Google Home

Liên kết các thiết bị trong Hass và Google Assistant để điều khiển qua app hoặc loa Google Home

Photo: Google Home
21 phút để đọc hết nội dung

Bạn sẽ cần liên kết Home Assistant (Hass) với Google Assistant (GA) nếu:

  • Điều khiển các thiết bị trên Hass bằng Google Assistant trên Google Home app (ứng dụng trên iOS/Android), trên điện thoại hay trên loa thông minh Google Home (Mini).
    * có những cách khác như IFTTT để thực hiện nhu cầu trên

Bạn không cần liên kết Hass với Google Assistant để:

  • Thông báo bằng lời nói qua loa Google Home (Mini)
  • Sử dụng bộ chuyển chữ thành tiếng nói – TTS (text-to-speach), kể cả dùng platform Google Translate hay Google Cloud
! Yêu cầu tối thiểu/khuyến nghị

Để liên kết được Hass và GA, máy chủ Hass sẽ cần phải truy cập được từ internet qua một domain công khai bằng giao thức mã hoá HTTPs (phổ biến dạng https://your_domain.duckdns.org) với chứng chỉ HTTP SSL hợp lệ (chứng chỉ tự ký sẽ không được chấp nhận). Cổng – port HTTPS mặc định hoặc tuỳ chọn đều hợp lệ.
Nếu chưa làm bước này, bạn có thể theo hướng dẫn trong bài viết sau: Truy cập Hass qua Domain và cài đặt chứng chỉ HTTPs

SSL Enabled Site
Truy cập đến website qua giao thức mã hoá https với chứng chỉ hợp lệ
! Lưu ý về Riêng tư

Sử dụng cùng Google Assistant đi ngược lại tiêu chí ưu tiên quyền riêng tư được nhóm phát triển Hass theo đuổi từ đầu đến bây giờ. Đây là giải pháp đánh đổi – trade-off giữa sự tiện dụng, khả năng tương thích và bảo đảm thông tin cá nhân.
Chúng tôi khuyến khích hạn chế sử dụng các loa Google Home (Mini), ít nhất là tại các khu vực nhạy cảm, riêng tư và khu vực trẻ em; chúng tôi cũng khuyến khích chia sẻ/cấp quyền cho Google Assistant càng ít dữ liệu càng tốt.

Hass in Goolge Home

Toàn bộ các thiết bị này được liên kết vào Google Assistant qua Hass. Tuỳ vào loại thiết bị mà cách thể hiện trên app là khác nhau.
Bạn có thể điều khiển các thiết bị này qua app Google Home hoặc qua Google Assistant bằng cách gõ câu lệnh hoặc dùng lời nói.

Để liên kết Hass và Google Assistant ta cần các bước:

Tạo Project trên Google Actions > Cấu hình Account Linking để xác thực được Hass > Tạo ứng dụng nháp trong Project > Lấy Service Account để đồng bộ thiết bị > Cấu hình trên Hass > Thêm Hass vào Google Home.

Tạo và Thiết lập Google Actions

Trước tiên, bạn hãy truy cập vào địa chỉ: https://console.actions.google.com rồi đăng nhập vào tài khoản Google của bạn. Bạn có thể tạo mới hoặc dùng tài khoản hiện có, tuy nhiên tài khoản này nên là cùng tài khoản đăng ký sử dụng Google Assistant trên loa Google Home hay điện thoại của bạn.

Tạo Project

Sau đó, chọn New Project – Dự án mới.
Nếu bạn đã từng có một dự án dùng cho Hass rồi thì có thể sử dụng luôn mà không cần tạo mới.
Nhập tên cho Dự án này, ví dụ: My Hass, rồi ấn Create Project – Tạo dự án mới.

Nếu đây là dự án đầu tiên bạn tạo trên Google Actions, bạn sẽ được yêu cầu đọc và Đồng ý với các điều khoản sử dụng dịch vụ – Terms of service. Chọn Quốc gia là Vietnam rồi ấn Agree and Continue – Đồng ý và tiếp tục.

Google Action SmartHome

Ở màn hình Development experience tiếp theo bạn chọn SmartHome.

Google Action Add

Tiếp theo, trong mục Build your Action, chọn Add Action(s).

Hass Google Action Fullfill Url

Điền đầy đủ địa chỉ, phương thức, cổng truy cập Hass của bạn qua Internet. Theo sau là chuỗi /api/google_assistant như ảnh.

Ví dụ, https://konnected.duckdns.org:23218/api/google_assistant

Lưu ý rằng đây là địa chỉ truy cập vào Hass từ Internet và phải đang truy cập được. Bạn phải nhập đầy đủ cả định danh phương thức https://.

Để các lựa chọn khác như mặc định rồi bấm Save – Lưu để lưu lại.
Bấm menu Overview ở phía trên để quay lại trang Overview.

Account Linking

Account linking cần thiết để Hass giao tiếp được với Google Assistant qua Project vừa tạo.

Tiếp tục, ấn vào Setup account linking dưới mục Quick setup.

Hass_Google_Action_SmartHome_Account_Linking

Ấn vào mục Account linking để Mở nó, giữ nguyên lựa chọn No, I only want to... rồi ấn Next.

Trong mục tiếp theo, phần Linking Type, chọn OAuth.
Phần Grant type chọn Authorization Code.
Ấn Next để tiếp tục.

Tiếp theo, trong ô ClientID, nhập vào chuỗi https://oauth-redirect.googleusercontent.com/r/my-hass-de989

Lưu ý, ở đây my-hass-de989 là mã định danh – ProjectID của project – dự án mà bạn đang thao tác. Lấy mã này từ địa chỉ trang web đang thực hiện, như ảnh dưới.

Google Action ProjectID From Url
Hass_Google_Action_Account_Linking

Bạn nhập thông tin như trong ảnh:
– ClientID lấy như trên
– Client secret phải nhập nhưng tuỳ ý
Authorization URL là địa chỉ Hass của bạn đi kèm với cụm /auth/authorize
Token URL là địa chỉ Hass đi kèm với cụm /auth/token

Ấn Next để chuyển sang phần Configure your client – Cấu hình client.

Hass Google Action Account Linking Add Scope

Nhập email, ấn Add scope.
Nhập tiếp name, ấn Add scope lần nữa để thêm scope – phạm vi quyền hạn truy cập vào thông tin người dùng cho dự án của bạn.

Ấn Next để tiếp tục. Đừng chọn Google to transmit…

Trong mục Testing Instructions, nhập một câu bất kỳ rồi ấn Save để hoàn tất.

Bạn có thể ấn vào đây để xem ảnh toàn bộ cấu hình Account Linking.

Tạo Test App

Google Home Test App

Trong menu trên cùng, bạn ấn vào mục Test để tạo một phiên bản app – ứng dụng dạng draft – nháp cho Project đang thao tác. Đây chỉ là app để kiểm tra và sửa lỗi.
Chọn VERSION – Draft rồi chọn Done.

Bạn sẽ nhận được thông báo Test app được kích hoạt.

Bước Test App đã hoàn tất nhưng bạn đừng thoát – log out khỏi tài khoản Google vội.

Lấy Google Service Account

Bước này cần thiết nếu bạn muốn:

  • Đồng bộ các thiết bị từ Hass vào Google qua dịch vụ google_assistant.request_sync của Hass hoặc ra lệnh “Ok Google, sync my devices” trên Google Assistant
  • Tăng tốc phản hồi của Google Assistant khi tương tác với nhiều thiết bị trong Hass trong một lần ra lệnh, nhờ vào việc Hass chủ động thông báo tình trạng các thiết bị cho Google.

* Trong các phiên bản trước, tính năng này được xác thực thông qua API Credentials. Tuy nhiên lựa chọn API đã bị loại bỏ từ Hass phiên bản 0.105 và thay bằng phương thức Service Account.

Để tạo Service Account:

Bạn vào liên kết sau: https://console.cloud.google.com/apis/credentials/serviceaccountkey

Hass Google Service Account Create

Trong cửa sổ mới, chọn đúng tên Project bạn đã tạo ở bước trên (My Hass).

Chọn New service account, nhập tên Service account nameService account ID tuỳ ý.

Mục Role, kéo xuống và chọn Service Accounts, Service Account Token Creator.

Chọn định dạng là JSON rồi ấn Create để tạo và tải về file có phần mở rộng là .json. Chính là file chứa thông tin service account của bạn.

! Lưu ý

Bạn lưu ý bảo mật file này, không chia sẻ hay upload lên các trang lưu trữ công khai.

Bạn hãy chép file .json vừa tải về vào thư mục /config của Hass, cùng cấp với file configuration.yaml.
Bạn có thể dùng addon Samba của Hass để chia sẻ thư mục /config trong mạng nội bộ rồi chép hoặc có thể dùng addon File Editor, tạo một file mới với tên bất kỳ có phần mở rộng là .json trong thư mục /config sau đó copy/paste nội dung của file .json vừa tải về vào file mới tạo.

Sau khi hoàn tất, bạn nên lưu trữ file .json vừa tải về vào nơi an toàn hoặc xoá bỏ.

Cuối cùng, truy cập vào liên kết: https://console.cloud.google.com/apis/api/homegraph.googleapis.com/overview rồi ấn Enable để kích hoạt HomeGraph API. Lúc này file service account đã lấy mới có thể sử dụng được.

Cấu hình Google Assistant trong Hass

Sau đây là cấu hình mẫu của tích hợp Google Assistant trong Hass, bạn thay các thông tin tương ứng từ bước trên vào cấu hình này. Cấu hình này thường được chứa trong file /config/configuration.yaml, tuy nhiên bạn cũng có thể chuyển nó sang file khác tuỳ ý.

google_assistant:
  project_id: my-hass-989
  service_account: !include My Hass-ac7cff8cfcc8.json
  report_state: true
  exposed_domains:
    - switch
    - light
  entity_config:
    switch.kitchen:
      name: Lights
      expose: true
      aliases:
        - Kitchen Lights
        - Lights in Kitchen
      room: Kitchen
    light.living_room:
      expose: true
      room: Living Room

Trong đó:

  1. project_id: là ProjectID bạn đã lấy trong bước Account linking.
  2. service_account: !include: nhập tên và phần mở rộng của file .json service account đã tải về ở bước trên. Lưu ý nhập đầy đủ tên và phần mở rộng, có phân biệt chữ hoa và thường.
  3. report_state: nếu bạn có sử dụng service_account, chọn true.
  4. exposed_domains:các domain trong Hass mà bạn muốn liên kết sang Google Assistant (GA). Xem ở dưới để biết danh sách các domain được hỗ trợ.
  5. entity_config: cho phép đổi tên khác với tên trong Hass, tiện sử dụng với tính năng ra lệnh giọng nói của GA. Đây là tuỳ chọn, không bắt buộc.
    Lưu ý rằng từ khi loa Google Home (Mini) ngừng chương trình thử nghiệm ra lệnh giọng nói tiếng Việt, thiết bị có tên bằng tiếng Việt (có dấu) gần như không thể điều khiển được bằng giọng nói từ loa Google Home (Mini).
    expose: có đưa entity này vào GA hay không. Một số entity dạng trung gian, quản lý trong Hass không nên và không cần đưa vào GA.
    room: gán phòng cho thiết bị này từ Hass thay vì phải làm trong GA. Trong GA làm khá khó và nếu đổi tài khoản hay Project thì phải làm lại từ đầu.
    aliases: các tên gọi khác của thiết bị này. Có thể gọi được các tên này từ GA.

Sau khi cấu hình xong, khởi động lại Hass để áp dụng và khởi tạo integration Google Assistant.

Những domain trong Hass được hỗ trợ bởi Google Assistant:

  • alarm_control_panel (arm/disarm)
  • camera (streaming, cần camera tương thích)
  • group (on/off)
  • input_boolean (on/off)
  • scene (on)
  • script (on)
  • switch (on/off)
  • fan (on/off/speed)
  • light (on/off/brightness/rgb color/color temp)
  • lock
  • cover (on/off/set position)
  • media_player (on/off/chỉnh âm lượng (qua set volume)/nguồn phát (qua set input source)
  • climate (cài đặt nhiệt độ, hvac_mode)
  • vacuum (dock/start/stop/pause)
  • sensor (nhiệt độ và độ ẩm – lưu ý về tuỳ chọn device_class của sensor)

Liên kết Hass vào Google Home

Google Home App

Trước khi điều khiển được các thiết bị trong Hass qua Google Assistant, bạn cần thêm các thiết bị trong Hass vào Google Home (bạn đừng nhầm với ứng dụng Google Assistant hoặc Google Search) thông qua Project vừa tạo bên trên. Cần ứng dụng Google Home trên điện thoại iOS hoặc Android.
Google Home trên iOS AppStore
Google Home trên Android Google Play

Sau khi cài đặt, mở ứng dụng Google Home, đăng nhập hoặc sử dụng tài khoản có sẵn. Tài khoản này phải cùng tài khoản đã sử dụng tạo Project Google Actions ở các bước trước.

Google Home App

Nếu chưa từng tạo “Home” nào, bạn chọn Get Started.

Google Home App

Chọn Have something already set up? để bắt đầu thêm Hass vào Home.

Google Home App (test app)

Trong mục Add devices, chọn Project bạn đã tạo ở các bước trên. Thường nó sẽ nằm ở vị trí đầu tiên, bắt đầu bằng [test] hoặc [test app], theo sau là tên của Project. Tiếp thep bạn đăng nhập vào Hass qua giao diện mới mở ra để hoàn tất xác thực.

Hass in Google Home

Các thiết bị trong Hass xuất hiện bên trong app Google Home với phòng và tên cũng như loại thiết bị được gán chính xác.
Các thiết bị không được cấu hình trong mục entity_config: nhưng thuộc exposed_domains: sẽ xuất hiện với tên giống trong Hass và không thuộc về phòng nào. Bạn cần gán phòng thủ công trong Google Home hoặc thêm vào cấu hình của Hass rồi khởi động lại Hass và gọi dịch vụ google_assistant.request_sync.

Khi một thiết bị không được cấu hình phòng – room trong GA trực tiếp từ Hass nhưng đã được gán vào một vùng – Area, Hass sẽ gửi kèm một yêu cầu gán room tới GA. GA sẽ đưa ra gợi ý cài đặt room cho thiết bị này theo Area trên Hass.

Từ lúc này bạn có thể ra lệnh điều khiển các thiết bị này qua Google Assistant (text/voice).

Một số lệnh điều khiển thông dụng trong Google Assistant

Để gọi các lệnh này, trước tiên Google Assistant phải đang ở trong chế độ chờ nhận lệnh. Ví dụ, với loa Google Home, trước tiên cần gọi “Ok, Google” hoặc “Hey, Google” trước mỗi lần ra lệnh. Hoặc bạn cũng có thể chuyển loa Google Home sang chế độ lắng nghe lệnh liên tiếp.
Xem bài viết về: kết nối và sử dụng loa Google Home.

Tắt/bật thiết bị

Tắt/bật thiết bị trong một phòng

Tắt/bật toàn bộ thiết bị
(trong cùng room với loa Google Home)

Tăng/giảm độ sáng đèn

Đồng bộ thay đổi thiết bị từ Hass vào GA

turn on/off [tên thiết bị]
ví dụ: turn on air conditioner
turn on/off [tên thiết bị] in [tên phòng]
ví dụ: turn on ceiling lamp in living room
turn on/off [loại thiết bị] in [tên phòng]
ví dụ: turn on switches in living room

brighten/dim the [tên đèn]
ví dụ: brighten the bedroom light
sync (all) my devices

Một số lỗi thường gặp

Lỗi khi gọi dịch vụ google_assistant.request_sync hoặc “Ok Google, sync all my devices” để đồng bộ các thay đổi thiết bị từ Hass sang GA:

  • https://homegraph.googleapis.com/v1/devices:requestSync failed: 403, kiểm tra lại HomeGraph API đã Enable chưa và Test App draft version đã được mở chưa.
    Test App tạo ở bước đầu tiên sẽ bị tạm dừng sau 30 ngày. Các thao tác điều khiển không bị ảnh hưởng, chỉ thao tác thêm/sửa thiết bị là gặp lỗi. Truy cập vào Actions on Google, chọn Project bạn đã tạo trước đây rồi bấm vào menu Test ở trên cùng để mở lại.
  • https://homegraph.googleapis.com/v1/devices:requestSync failed: 404, cần liên kết Google Home và Test App (tạo ở các bước trên) trước rồi mới gọi được dịch vụ google_assistant.request_sync.

Chia sẻ Google Home cho người dùng Google khác

Google Home Add Member

Để chia sẻ Home trong Goolgle Home cho người dùng khác (tài khoản Google khác), trong ứng dụng – app Google Home, chọn dấu + ở trên bên trái, chọn Add home member rồi nhập địa chỉ email của người dùng bạn cần chia sẻ.

Người dùng được chia sẻ sẽ nhận được email và thông báo có lời mời trong ứng dụng Google Home.

Về Bài viết

Bài viết chưa đầy đủ hoặc bạn còn có ý kiến khác? Bạn có thắc mắc và cần thêm thông tin. Vui lòng đăng ý kiến vào mục bình luận để tác giả và Team có thêm thông tin cải thiện chất lượng bài viết. Chúng tôi sẽ giải đáp các thắc mắc ngay trong mục bình luận để giúp được nhiều đọc giả với cùng vấn đề hơn hoặc chúng tôi sẽ trả lời trong một bài viết riêng. Trân trọng cảm ơn bạn!

Cảm ơn bạn đã xem bài viết này!

konnectED Team.

Lên Đầu
  • Đăng ký
Bạn quên mất mật khẩu? Vui lòng nhập tên đăng nhập và địa chỉ email đã đăng ký. Bạn sẽ nhận được liên kết tạo mật khẩu mới qua email (bạn nhớ kiểm tra hộp spam trong trường hợp email đi lạc).