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

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

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

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

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

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

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

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

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

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

ดังนั้นขั้นตอนการทำงานจะมีลักษณะดังนี้

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

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

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

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

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

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

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

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

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

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

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

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

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

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