Đây là hướng dẫn cách tích hợp các sự kiện tạo trên ứng dụng lịch Google Calendar vào Hass. Tích hợp lịch này vào Hass giúp ta tạo các sự kiện – event hay nhắc nhở qua các ứng dụng lịch trên điện thoại hoặc máy tính sau đó:
- Hiển thị sự kiện sắp tới và tạo nhắc nhở trên Hass
- Gửi thông báo đến thiết bị/người dùng để nhắc về sự kiện sắp đến, ví dụ như thông báo ngày mùng Một và Rằm.
- Thông báo bằng giọng nói hay âm thanh về các sự kiện này, đặc biệt hữu ích khi gia đình có những thành viên chưa đủ tuổi hoặc không quen dùng điện thoại
Để tích hợp Google Calendar vào Hass, trước hết ta cần mở API – Application Programming Interface – Giao diện lập trình ứng dụng Calendar và lấy thông tin xác thực. Sau đó cấu hình để Hass mở tích hợp google calendar
và tạo các automation tuỳ theo tình huống sử dụng.
Mở API Calendar trên Google
Việc mở API Calendar và lấy thông tin truy cập tương đối đơn giản, bạn chỉ cần theo từng bước hướng dẫn dưới đây là đủ. Nếu bạn đã từng liên kết Google Assistant và Hass thì việc này dễ dàng hơn nhiều, lưu ý rằng đây là 2 tích hợp khác nhau dù đều sử dụng các dịch vụ của Google.
Mở Calendar API
Bạn truy cập vào trang của Google dành cho lập trình viên tại đây: Google Developers.
Nếu đây là lần đầu tiên bạn truy cập trang này, bạn sẽ được yêu cầu đồng ý với các điều khoản sử dụng dịch vụ.
Bạn đọc qua điều khoản rồi chọn Tôi đồng ý với…, chọn Quốc Gia rồi bấm Agree and continue để tiếp tục.
Một thông báo nhỏ sẽ hiện ra báo rằng một Project – dự án mới có tên My Project đã được tạo và API Calendar đã được mở.
Thông báo hoàn tất mở API. Bạn bấm vào Go to credentials để chuyển sang trang Quản lý API và Dịch vụ.
Bạn chọn OAuth consent screen – Màn hình xác thực giao thức OAuth để mở thiết lập OAuth, tiếp theo chọn External rồi bấm CREATE để khởi tạo.
Trong màn hình thiết lập OAth consent screen, bạn chỉ cần nhập duy nhất phần tên ứng dụng – Application name. Nhập tên tuỳ ý rồi bấm Save để lưu lại.
Lưu ý thông báo và màn hình đã Lưu thành công.
Tạo Chứng chỉ – Credential
Trong menu APIs & Services bên trái, ta chọn Credentials. Tiếp theo bấm vào + CREATE CREDENTIALS rồi chọn OAuth client ID.
Ta chọn mục Application type là Other rồi nhập tên cho chứng chỉ – credential này. Ở đây mình nhập Hass cho dễ quản lý.
Cửa sổ thông báo Client ID và Client Secret. Đây là 2 thông tin cần để cấu hình google_calendar trong Hass. Bạn có thể lưu tạm lại hoặc cứ để yên như thế này rồi quay lại copy sau.
Lưu ý là nếu bạn bấm OK để đóng cửa sổ, bạn sẽ không thể lấy lại thông tin này. Khi đó bắt buộc phải tạo lại từ bước tạo credential.
Cấu hình calendar.google trong Hass
Bạn thêm cấu hình mẫu (YAML) dưới đây vào file cấu hình chính của Hass tại /config/configuration.yaml. Thay thế CLIENT_ID và CLIENT_SECRET trong cấu hình bằng thông tin đã lấy ở bước trên.
Lưu ý
Chú ý không chia sẻ các thông tin xác thực hay đăng nhập này cho bất cứ ai.
google: client_id: CLIENT_ID client_secret: CLIENT_SECRET track_new_calendar: true
Sau khi cấu hình xong, bạn Khởi động lại Hass để khởi tạo tích hợp này.
Trong lúc chờ Hass khởi động, bạn có thể tạo một lịch mới trên Google Calendar để sử dụng riêng cho Hass, tránh sự lộn xộn giữa các sự kiện cá nhân và sự kiện sẽ dùng thông báo cho các thành viên khác. Nếu bạn chỉ dùng cho mình thì có thể dùng các lịch cá nhân hiện tại và sử dụng tuỳ chọn search
để phân tách các sự kiện cần đưa vào Hass.
Nếu muốn nhiều người cùng tham gia tạo event vào lịch này trên Google Calendar, bạn có thể Chia sẻ cho những người dùng khác. Khi đó những thành viên này (như vợ) cũng sẽ có khả năng tạo thông báo nhắc nhở qua Hass ngay trên điện thoại của mình (tất nhiên là với một chút đào tạo của bạn).
Tạo lịch mới trong Google Calendar
Bạn có thể tạo lịch mới bằng ứng dụng Lịch trên điện thoại Android. Trên máy tính, truy cập vào ứng dụng Calendar qua trình duyệt web.
Đăng nhập với cùng tài khoản đã tạo Xác thực ở Bước 1.
Trong giao diện của Google Calendar, trong Menu bên trái, mục Lịch khác, bạn chọn biểu tượng + rồi chọn Tạo lịch mới – Create new calendar để thêm lịch (không phải sự kiện).
Tiếp theo, bạn hãy đặt tên cho lịch này (ví dụ, Hass), nhập mô tả và chọn múi giờ (nên cùng múi giờ đang sử dụng) rồi bấm Tạo lịch để tạo lịch mới. Đây là thiết lập căn bản nhất của một lịch, ngoài ra bạn có thể tuỳ ý thiết lập những lựa chọn khác như cách bạn sử dụng các lịch thông thường.
Lịch mới tạo sẽ xuất hiện trong mục Lịch của tôi ở menu bên trái.
Những sự kiện trong lịch này sẽ xuất hiện trên giao diện chính với màu sắc tương ứng.
Bạn cũng nên tạo một event – sự kiện Test trên lịch mới này để sử dụng trong các bước tiếp theo.
Chọn + Tạo để tạo một sự kiện mới trên lịch này. Hoặc trong giao diện lịch, bấm vào một giờ bất kỳ để tạo sự kiện.
Nếu bạn đang sử dụng tài khoản này với điện thoại, máy tính bảng Android, iOS bạn cũng có thể tạo sự kiện mới trên các ứng dụng Calendar của điện thoại. Nhớ chọn tạo sự kiện trên đúng lịch này vì thường bạn sẽ sở hữu rất nhiều lịch (tối thiểu từ 3 đến 4 lịch).
Bạn nhập Tên sự kiện rồi chọn giờ xảy ra (ở đây để tiện thử nghiệm, ta chọn trong khoảng 1-2 giờ sắp tới so với giờ hiện tại).
Chọn đúng lịch dành cho Hass trong mục cuối.
Sau khi thêm sự kiện này, bạn quay lại Hass để tiếp tục cấu hình.
Xác thực Home Assistant với Google Calendar
Sau khi cấu hình Google Calendar và khởi động lại Hass, Hass sẽ gửi một thông báo qua giao diện Web – UI để tiếp tục cấu hình Google Calendar. Bạn bấm vào thông báo này để cấu hình.
Ấn vào liên kết trong ảnh, nhập mã gồm 9 kí tự sau dòng enter code: rồi đăng nhập vào cùng tài khoản Google sử dụng ở Bước 1 để hoàn tất cấp quyền cho Hass truy cập Google Calendar.
Có thể bạn sẽ nhận được màn hình cảnh báo như trên ảnh. Không sao cả vì ứng dụng này do chính bạn tạo, chọn Hiển thị cài đặt nâng cao rồi chọn Đi tới Hass Calendar (không an toàn) để tiếp tục. Ấn Cho Phép để cấp quyền cho Hass truy cập Lịch – Calendar của bạn.
Lúc này, nếu cấu hình thành công, bạn sẽ nhận được Thông báo trong Hass và các lịch có sẵn sẽ xuất hiện trong bảng Công cụ nhà phát triển > Trạng thái như trên ảnh dưới dạng các sensor – cảm biến thuộc domain calendar.
Cập nhật cho Home Assistant 0.115 (về sau)
Để Calendar panel (thanh bên) và Calendar card (Lovelace) hiển thị ổn định hay đầy đủ các sự kiện trong lịch đã thêm (ví dụ hiển thị đầy đủ 31 ngày Âm tương ứng của 1 tháng dương lịch), bạn cần điều chỉnh cấu hình max_results
cho từng lịch trong /config/google_calendars.yaml
. Cụ thể trong bài kế tiếp: sử dụng lịch Google Calendar trong Hass.
Cảm biến Google Calendar trong Home Assistant
Cảm biến này chỉ hiển thị một sự kiện đang xảy ra hoặc sắp xảy ra gần nhất và bao gồm các thông tin sau:
state: on/off
, cảm biến chuyển sang trạng thái ‘on’ khi ngày giờ hiện tại bằng với ngày giờ trong thuộc tínhstart_time
và ‘off’ khi qua khỏi giờend_time:
.message:
tiêu đề của sự kiện sắp hoặc sẽ xảy ra.start_time:
vàend_time:
thời gian bắt đầu và kết thúc của sự kiện.description:
mô tả chi tiết về sự kiện.friendly_name:
mô tả chi tiết của lịch.offset_reach: true/false
, thuộc tính này chuyển thành true sớm hơn hay trễ hơn thời gian xảy ra sự kiện khi kết hợp với cấu hìnhoffset
(trong bài viết sau) và tiêu đề event.
* Lưu ý: mặc định cảm biến này chỉ được làm mới 15 phút mỗi lần, do vậy khi bạn thêm sự kiện mới trong lịch thì sẽ phải mất một lúc để sự kiện này có thể xuất hiện trong Hass.
Với các thiết lập mặc định hiện tại thì bạn đã có thể theo dõi và thông báo các sự kiện này trong Hass. Để tạo automation thông báo các sự kiện lịch, bạn có thể tham khảo và làm tương tự bài viết sau: Tạo thông báo ngày mùng Một và Rằm.
Để tận dụng được lịch này như:
- Tạo các thông báo – nhắc nhở trên Hass lặp lại vào ngày giờ nhất định (như thông báo nhắc giờ đổ rác 🗑 🤣 )
- Phân phối các thông báo cho nhiều người khác nhau tuỳ theo loại sự kiện
- Tuỳ chỉnh thời gian thông báo sớm/muộn trên Hass sử dụng ứng dụng Calendar trên điện thoại, cho phép tạo thông báo linh hoạt và thuận tiện
- Tạo sự kiện mới ngay trên giao diện Hass
Mời bạn đón đọc bài viết sắp tới: Home Assistant: sử dụng hiệu quả Google Calendar.
Nguồn/Tham khảo:
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.