ออกแบบการทำงานอัตโนมัติใน Android

ก่อนที่จะเริ่มใช้ Automation API คุณควรออกแบบการทำงานอัตโนมัติ

กำหนดพารามิเตอร์ต่อไปนี้สำหรับการทำงานอัตโนมัติแต่ละรายการ

  • สถานการณ์ที่ควรแนะนำการทำงานอัตโนมัติแก่ผู้ใช้ เช่น หากผู้ใช้เพิ่งเพิ่มหลอดไฟใหม่ 3 ดวงในบ้าน ผู้ใช้อาจสนใจระบบอัตโนมัติที่เฉพาะเจาะจงซึ่งปรับแต่งมาเพื่อควบคุมหลอดไฟ
  • ต้องใช้อุปกรณ์ประเภทใดสำหรับการทำงานอัตโนมัติ เช่น หากผู้ใช้เพิ่งเพิ่มหลอดไฟใหม่ 3 ดวงในบ้าน ผู้ใช้อาจสนใจระบบอัตโนมัติที่เฉพาะเจาะจงซึ่งปรับแต่งมาเพื่อควบคุมหลอดไฟ ตัวอย่างประเภทอุปกรณ์ไฟ ได้แก่ OnOffLightDevice, ColorTemperatureLightDevice, DimmableLightDevice หรือ ExtendedColorLightDevice
  • แอตทริบิวต์และคำสั่งของลักษณะใดที่จำเป็นสำหรับการทำงานอัตโนมัติ และ API การทำงานอัตโนมัติใน Android รองรับแอตทริบิวต์และคำสั่งเหล่านั้นหรือไม่
  • ลักษณะที่ควรเปิดใช้งานการทำงานอัตโนมัติเป็นเงื่อนไขเริ่มต้น เงื่อนไขเริ่มต้น จะอธิบายไว้ในคอมโพเนนต์การทำงานอัตโนมัติใน Android
  • เงื่อนไขเพิ่มเติมที่กำหนดว่าควรเรียกใช้การทำงานอัตโนมัติจริงหรือไม่ และควรดำเนินการใด
  • โฟลว์การดำเนินการสำหรับการทำงานอัตโนมัติ ควรดำเนินการตามลำดับหรือแบบ ขนาน คุณต้องการเส้นทางตรรกะหลายเส้นทางไหม

เมื่อออกแบบ คุณอาจต้องวาดแผนภาพโฟลว์ของการทำงานอัตโนมัติแบบโนดต่อโนด โดยมีตรรกะที่จำเป็นในแต่ละขั้นตอน

เมื่อออกแบบการทำงานอัตโนมัติแล้ว ให้ใช้ DSL การทำงานอัตโนมัติเพื่อสร้าง การทำงานอัตโนมัติที่คุณสร้างขึ้นนั้นเป็น "เทมเพลต" โดยพื้นฐานแล้ว โครงสร้างและอุปกรณ์ใดๆ ในการทำงานอัตโนมัตินั้นเป็นตัวยึดตำแหน่งและจะได้รับการป้อนข้อมูลด้วยโครงสร้างและอุปกรณ์ที่เฉพาะเจาะจงของผู้ใช้แต่ละรายเมื่อผู้ใช้ "นำ" การทำงานอัตโนมัติไปใช้เอง

ต่อไปนี้คือการทำงานอัตโนมัติประเภทต่างๆ ที่แอปสร้างได้โดยใช้ Home API ดูตัวอย่างโค้ดที่เกี่ยวข้องกับตัวอย่างเหล่านี้ได้ที่หน้าสร้างระบบอัตโนมัติ

การทำงานอัตโนมัติอย่างง่าย

สมมติว่าคุณต้องเขียนแอปที่สร้างการทำงานอัตโนมัติซึ่งจะเปิดม่าน ตอน 08:00 น. แอปต้องมีรายการม่าน (อุปกรณ์ที่มีWindowCoveringDeviceประเภทอุปกรณ์) ที่อยู่ในโครงสร้าง ซึ่งรองรับการทำงานอัตโนมัติ ซึ่งสามารถรับได้จาก Discovery API

สำหรับการทำงานอัตโนมัติที่ต้องเรียกใช้ในเวลาที่กำหนด คุณต้องตรวจสอบด้วยว่า ผู้ใช้ได้กำหนดที่อยู่แบบถนนสำหรับโครงสร้างที่เลือกไว้ใน Google Home app (GHA)แล้ว มิเช่นนั้นการทำงานอัตโนมัติจะไม่ทราบเขตเวลา ที่จะเรียกใช้ Discovery API ช่วยให้คุณทราบได้ว่ามีการกำหนดที่อยู่ให้กับโครงสร้างหรือไม่

ดังนั้นโฟลว์การดำเนินการจึงมีลักษณะดังนี้

  1. รวบรวมรายการWindowCoveringDeviceอุปกรณ์โดยใช้ Discovery API
  2. หากไม่มีการป้อนที่อยู่ ให้แจ้งผู้ใช้ว่าต้องระบุที่อยู่และหยุดการดำเนินการ
  3. หรือกำหนดการทำงานอัตโนมัติโดยทำดังนี้
    1. เริ่มการทำงานอัตโนมัติเวลา 08:00 น.
    2. สำหรับมู่ลี่แต่ละบาน ให้เรียกใช้คำสั่ง upOrOpen ของลักษณะ WindowCovering

การทำงานอัตโนมัติที่ซับซ้อน

ลองนึกถึงแอปที่สร้างการทำงานอัตโนมัติซึ่งทริกเกอร์ไฟกะพริบเมื่อ ตรวจพบการเคลื่อนไหว

งานแรกๆ อย่างหนึ่งในการติดตั้งใช้งานแอปนี้คือการค้นหาว่ามีหลอดไฟใดบ้างในบ้านของผู้ใช้โดยใช้ Discovery API ข้อมูลนี้จะช่วยให้แอปแสดงไฟที่พร้อมใช้งานและอาจอนุญาตให้ผู้ใช้เลือกไฟที่ต้องการกะพริบได้

ขั้นตอนการดำเนินการ

  1. ใช้ Discovery API เพื่อรวบรวมรายการอุปกรณ์แสงสว่างที่มีอยู่ใน โครงสร้าง ซึ่งจะเป็นอุปกรณ์ที่มีประเภทอุปกรณ์เป็น OnOffLightDevice, ColorTemperatureLightDevice, DimmableLightDevice หรือ ExtendedColorLightDevice
  2. จัดหาวิธีเลือกไฟที่กะพริบ อาจผ่านแผงการตั้งค่าที่กำหนดเอง
  3. กำหนดการทำงานอัตโนมัติ ดังนี้
    1. เริ่มการทำงานอัตโนมัติเมื่อมีคนออกจากหรือมาถึงสถานที่ โดยการตรวจสอบ AreaPresenceState
    2. หาก presenceState แสดงว่าโครงสร้างมีคนอยู่ ให้กะพริบไฟที่เลือก

การทำงานอัตโนมัติทั่วไป

ตัวอย่างการทำงานอัตโนมัติที่ซับซ้อนมากขึ้นคือการทำงานอัตโนมัติที่แนะนำ ผู้ใช้ในการสร้างการทำงานอัตโนมัติแบบเปิด โดยอิงตามอุปกรณ์ใดก็ได้หรือทั้งหมด ที่ผู้ใช้มีในบ้าน

ระบบอัตโนมัติอาจแจ้งให้ผู้ใช้เลือกโครงสร้างก่อน

จากนั้นการทำงานอัตโนมัติจะแสดงห้องทั้งหมดในโครงสร้างในมุมมองแบบเค้าร่างที่ขยายได้ โดยการขยายห้องจะแสดงอุปกรณ์ในห้องนั้น ขยายรายการอุปกรณ์เพิ่มเติม เพื่อแสดงอุปกรณ์เริ่มต้นและคำสั่งที่อุปกรณ์นั้นรองรับ

ผู้ใช้สามารถเลือกอุปกรณ์ สตาร์ทเตอร์ และคำสั่งที่ต้องการใช้ได้ จากนั้นระบบอัตโนมัติจะแนะนำขั้นตอนการประกอบระบบอัตโนมัติให้ผู้ใช้

เมื่อผู้ใช้เลือกและตัดสินใจทั้งหมดเสร็จสิ้นแล้ว ระบบอัตโนมัติจะ สร้างการทำงานอัตโนมัติและบันทึกลงในโครงสร้างที่ผู้ใช้เลือก

การทำงานอัตโนมัติดังกล่าวในระดับสูงจะต้องรวบรวมชุดข้อมูลหลายชุด เกี่ยวกับบ้านของผู้ใช้โดยใช้ Structure API สำหรับ Android, Device API สำหรับ Android และ Discovery API

ตารางที่ 1: Home API และข้อมูลที่ API เหล่านี้ให้ได้
APIข้อมูล
Structure API
  • โครงสร้างที่พร้อมใช้งาน
  • ห้องพักในที่พัก
Device API
  • อุปกรณ์ที่อยู่ในโครงสร้างที่เลือก
  • อุปกรณ์เหล่านั้นอยู่ที่ไหน (ห้องใด)
Discovery API
  • อุปกรณ์รองรับลักษณะใดบ้าง
  • เงื่อนไขเริ่มต้นและคำสั่งที่ใช้ได้ในลักษณะดังกล่าว
  • พารามิเตอร์สำหรับคำสั่งเหล่านี้มีข้อจำกัดอะไรบ้าง