Thiết kế quy trình tự động hoá trên Android

Trước khi bắt đầu sử dụng Automation API, bạn nên thiết kế quy trình tự động hoá.

Xác định các thông số sau cho từng quy trình tự động hoá:

  • Các trường hợp mà hệ thống nên đề xuất tính năng tự động hoá cho người dùng. Ví dụ: nếu người dùng vừa thêm 3 đèn mới vào nhà, họ có thể quan tâm đến một chế độ tự động hoá cụ thể được điều chỉnh để điều khiển đèn.
  • Những loại thiết bị nào bắt buộc phải có để tự động hoá. Ví dụ: nếu người dùng vừa thêm 3 chiếc đèn mới vào nhà, họ có thể quan tâm đến một chế độ tự động hoá cụ thể được thiết kế riêng để điều khiển đèn. Các loại thiết bị chiếu sáng ví dụ bao gồm OnOffLightDevice, ColorTemperatureLightDevice, DimmableLightDevice hoặc ExtendedColorLightDevice.
  • Những thuộc tính và lệnh đặc điểm nào là bắt buộc đối với tính năng tự động hoá và liệu chúng có được Automation API trên Android hỗ trợ hay không.
  • Những đặc điểm sẽ kích hoạt quy trình tự động hoá dưới dạng điều kiện khởi động. Các thành phần khởi động được đề cập trong phần Thành phần tự động hoá trên Android.
  • Các điều kiện bổ sung để xác định xem có nên chạy quy trình tự động hoá hay không và những hành động nào sẽ được thực hiện.
  • Luồng thực thi cho quy trình tự động hoá. Có nên thực thi tuần tự hay song song? Bạn có cần nhiều đường dẫn logic không?

Khi thiết kế, bạn nên lập sơ đồ quy trình tự động hoá, từng nút một, với logic cần thiết ở mỗi bước.

Sau khi thiết kế một quy trình tự động hoá, hãy dùng Automation DSL để tạo quy trình đó. Về cơ bản, quy trình tự động hoá mà bạn tạo là một "mẫu" – mọi cấu trúc và thiết bị trong đó đều là phần giữ chỗ và được điền sẵn cấu trúc và thiết bị cụ thể của từng người dùng khi họ "áp dụng" quy trình tự động hoá để sử dụng cho riêng mình.

Sau đây là các loại hoạt động tự động hoá mà ứng dụng có thể tạo bằng Home API. Hãy xem trang Tạo một quy trình tự động hoá để biết các đoạn mã liên quan đến những ví dụ này.

Quy trình tự động hoá đơn giản

Giả sử bạn cần viết một ứng dụng tạo quy trình tự động hoá để kéo rèm lên lúc 8:00 sáng. Để thực hiện việc này, ứng dụng cần có danh sách các rèm (thiết bị có loại thiết bị WindowCoveringDevice) có trong cấu trúc hỗ trợ các hoạt động tự động hoá. Danh sách này có thể được cung cấp bởi Discovery API.

Đối với những quy trình tự động hoá cần chạy vào một thời điểm nhất định, bạn cũng cần đảm bảo rằng người dùng đã chỉ định địa chỉ đường phố cho cấu trúc mà họ chọn trong Google Home app (GHA). Nếu không, quy trình tự động hoá sẽ không biết múi giờ mà quy trình đó sẽ chạy. Discovery API có thể giúp bạn xác định xem một địa chỉ có được chỉ định cho cấu trúc hay không.

Vì vậy, luồng thực thi sẽ có dạng như sau:

  1. Sử dụng Discovery API để thu thập danh sách các thiết bị WindowCoveringDevice.
  2. Nếu địa chỉ đường phố chưa được điền sẵn, hãy thông báo cho người dùng rằng họ cần cung cấp địa chỉ đường phố và tạm dừng thực thi.
  3. Nếu không, hãy xác định quy trình tự động hoá:
    1. Bắt đầu quy trình tự động hoá lúc 8:00.
    2. Đối với mỗi rèm cửa, hãy gọi lệnh upOrOpen của đặc điểm WindowCovering.

Tự động hoá phức tạp

Hãy tưởng tượng một ứng dụng tạo một quy trình tự động hoá để kích hoạt đèn nhấp nháy khi phát hiện chuyển động.

Một trong những việc đầu tiên cần làm khi triển khai ứng dụng này là tìm hiểu xem có những đèn nào trong nhà của người dùng bằng cách sử dụng Discovery API. Với thông tin này, ứng dụng của bạn hiện có thể hiển thị các đèn có sẵn và có thể cho phép người dùng chọn đèn mà họ muốn nhấp nháy.

Luồng thực thi:

  1. Sử dụng Discovery API để thu thập danh sách các thiết bị chiếu sáng có trong cấu trúc. Đó là mọi thiết bị có loại thiết bị là OnOffLightDevice, ColorTemperatureLightDevice, DimmableLightDevice hoặc ExtendedColorLightDevice.
  2. Cung cấp cách chọn những đèn nhấp nháy, có thể thông qua bảng điều khiển Cài đặt tuỳ chỉnh.
  3. Xác định quy trình tự động hoá:
    1. Bắt đầu quy trình tự động hoá bất cứ khi nào có người rời khỏi hoặc đến nơi ở, bằng cách theo dõi AreaPresenceState.
    2. Nếu presenceState cho biết cấu trúc đang được sử dụng, hãy nhấp nháy các đèn đã chọn.

Tự động hoá chung

Để xem ví dụ về một quy trình tự động hoá phức tạp hơn, hãy cân nhắc một quy trình hướng dẫn người dùng tạo quy trình tự động hoá linh hoạt, dựa trên bất kỳ hoặc tất cả các thiết bị mà họ có trong nhà.

Quy trình tự động hoá có thể nhắc người dùng chọn một cấu trúc trước.

Sau đó, tính năng tự động hoá có thể hiển thị tất cả các phòng trong cấu trúc ở chế độ xem dàn ý có thể mở rộng, trong đó việc mở rộng một phòng sẽ cho thấy các thiết bị trong phòng đó. Việc mở rộng thêm một thiết bị sẽ liệt kê các lệnh khởi động và các lệnh mà thiết bị đó hỗ trợ.

Người dùng có thể chọn thiết bị, bộ khởi động và lệnh mà họ muốn sử dụng, đồng thời tính năng tự động hoá sẽ hướng dẫn người dùng cách lắp ráp một quy trình tự động hoá.

Khi tất cả lựa chọn và quyết định của người dùng đã hoàn tất, quy trình tự động hoá sẽ tạo quy trình tự động hoá và lưu vào cấu trúc mà người dùng đã chọn.

Ở cấp độ cao, quy trình tự động hoá như vậy sẽ cần thu thập một số bộ dữ liệu về nhà của người dùng bằng cách sử dụng Structure API cho Android, Device API cho Android và Discovery API.

Bảng 1: Home API và thông tin mà các API này có thể cung cấp
APIThông tin
Structure API
  • Có những cấu trúc nào
  • Những phòng nào có trong nhà
Device API
  • Những thiết bị nào có trong cấu trúc đã chọn
  • Vị trí của các thiết bị đó (phòng nào)
Discovery API
  • Những đặc điểm nào được các thiết bị hỗ trợ
  • Những điều kiện khởi động và lệnh nào có sẵn cho các đặc điểm đó
  • Các tham số cho những lệnh này có những ràng buộc nào