สร้างระบบอัตโนมัติที่มีสคริปต์

1. บทนำ

สิ่งที่คุณจะได้เรียนรู้

  • วิธีวางแผนและเขียนการทำงานอัตโนมัติที่ใช้สคริปต์
  • วิธีทดสอบการทำงานอัตโนมัติที่ใช้สคริปต์

สิ่งที่คุณต้องมี

  • โทรศัพท์ Android หรือ iOS ที่เรียกใช้แอป Google Home
  • หลอดไฟอัจฉริยะหรืออุปกรณ์อื่นๆ ที่ได้รับการรับรองว่าใช้ได้กับ Google Home และเปิดหรือปิดได้

2. ตั้งค่าอุปกรณ์

หากยังไม่ได้ตั้งค่าอุปกรณ์ ให้ตั้งค่าอุปกรณ์ในบ้าน

ตรวจสอบว่าอุปกรณ์ปรากฏในแอป Google Home และคุณเปิด/ปิดอุปกรณ์ได้โดยใช้แอป Home

3. วางแผนการทำงานอัตโนมัติที่ใช้สคริปต์

เราจะเริ่มจากการคิดว่าต้องการให้การทำงานอัตโนมัติที่ใช้สคริปต์ทำอะไร ซึ่งรวมถึงการพิจารณาสิ่งต่างๆ เช่น

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

สำหรับ Codelab นี้ เราวางแผนที่จะให้การทำงานอัตโนมัติที่ใช้สคริปต์ทำ 2 สิ่งต่อไปนี้

  1. เปิดไฟ (หรืออุปกรณ์อัจฉริยะอื่นๆ) ในเวลาที่เจาะจง
  2. ปิดอุปกรณ์ในเวลาที่เฉพาะเจาะจง

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

4. เขียนการทำงานอัตโนมัติที่ใช้สคริปต์

การทำงานอัตโนมัติที่ใช้สคริปต์เขียนในลักษณะการประกาศโดยใช้ภาษาการซีเรียลไลซ์ข้อมูล YAML

การทำงานอัตโนมัติที่ใช้สคริปต์ประกอบด้วย 2 ส่วนหลัก ได้แก่

  1. ข้อมูลเมตา - ชื่อของการทำงานอัตโนมัติที่ใช้สคริปต์และคำอธิบายสิ่งที่การทำงานอัตโนมัติทำ
  2. กฎการทำงานอัตโนมัติ - กำหนดตรรกะการเริ่มต้นและลักษณะการทำงานของการทำงานอัตโนมัติ

ข้อมูลเมตา

ข้อมูลเมตาของระบบอัตโนมัติจะบอกผู้ใช้ว่าระบบอัตโนมัติมีชื่อว่าอะไรและทำอะไรได้บ้าง ข้อมูลเมตาจะระบุอยู่ในบล็อก metadata ซึ่งมีลักษณะดังนี้

metadata:
  name: Scheduled light
  description: Turn the light on and off at specific times

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

กฎการทำงานอัตโนมัติคือที่ที่การทำงานจริงเกิดขึ้น โดยประกอบด้วย 3 ส่วน ได้แก่ เงื่อนไขเริ่มต้น เงื่อนไข และการดำเนินการ ซึ่งจะได้รับการประเมินตามลำดับ

1 Starters

2 เงื่อนไข

3 การดำเนินการ

เงื่อนไขเริ่มต้นคือสิ่งที่เริ่มการทำงานอัตโนมัติ เงื่อนไขเริ่มต้นอย่างน้อย 1 รายการต้องประเมินเป็น true เพื่อให้ประเมินเงื่อนไขที่ตามมาได้

ข้อจำกัดเหล่านี้ไม่บังคับ และประกอบด้วยข้อจำกัดเพิ่มเติมอย่างน้อย 1 รายการซึ่งจะได้รับการประเมินหลังจากที่ผู้เริ่มต้นเปิดใช้งานแล้ว หากเงื่อนไขเป็น true ระบบจะเรียกใช้การดำเนินการ หากมีการเปลี่ยนเส้นทางไปยัง false ระบบจะไม่เรียกใช้การดำเนินการ

เมื่อรวมข้อจำกัดหลายรายการ ให้คั่นด้วยคีย์เวิร์ด and และ or เพื่อสร้างนิพจน์เชิงตรรกะเดียว นิพจน์นี้ต้องมีค่าเป็น true เพื่อให้การดำเนินการของการทำงานอัตโนมัติดำเนินต่อไป

เงื่อนไขไม่เหมือนกับการแจ้งเตือนการเปลี่ยนแปลงสถานะ

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

การดำเนินการคือการทำงานที่จะเกิดขึ้นเมื่อเงื่อนไขเริ่มต้นและเงื่อนไขข้อจำกัดเป็นไปตามที่กำหนด

บล็อก automations ของการทำงานอัตโนมัติมีกฎ 2 ข้อดังนี้

automations:
  - starters:
      - type: time.schedule
        at: 1:00 PM
    actions:
      - type: device.command.OnOff
        devices: Desk light - Office
        on: true
  - starters:
      - type: time.schedule
        at: 1:05 PM
    actions:
      - type: device.command.OnOff
        devices: Desk light - Office
        on: false

ข้อควรทราบ

  1. มีautomationsกฎ คำสั่งแรกจะเปิดไฟ ส่วนคำสั่งที่ 2 จะปิดไฟ
  2. กฎแต่ละข้อมีการดำเนินการเดียว
  3. on: true หมายถึงเปิดไฟ ในทำนองเดียวกัน on: false หมายถึงปิดไฟ
  4. กฎแต่ละรายการมีtime.scheduleเงื่อนไขเริ่มต้นเดียวที่บอกการทำงานอัตโนมัติว่าควรเริ่มการทำงานอัตโนมัติเมื่อใด
  5. ไม่มีเงื่อนไขในการทำงานอัตโนมัตินี้

5. การทำงานอัตโนมัติที่ใช้สคริปต์ทั้งหมด

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

metadata:
  name: Scheduled light
  description: Turn the light on and off at specific times
automations:
  - starters:
      - type: time.schedule
        at: 1:00 PM
    actions:
      - type: device.command.OnOff
        devices: Desk light - Office
        on: true
  - starters:
      - type: time.schedule
        at: 1:05 PM
    actions:
      - type: device.command.OnOff
        devices: Desk light - Office
        on: false
  1. คัดลอกการทำงานอัตโนมัติ (ด้านบน)
  2. ไปที่ Google Home สำหรับเว็บ
  3. เลือกแท็บการทำงานอัตโนมัติซึ่งแสดงด้วยไอคอนที่มีดาว 3 ดวง
    แท็บการทำงานอัตโนมัติ
  4. คลิก + เพิ่มใหม่
  5. ลบเทมเพลตการทำงานอัตโนมัติในเครื่องมือแก้ไขสคริปต์
  6. วางการทำงานอัตโนมัติ
  7. แทนที่ Desk light - Office ด้วยชื่อและตำแหน่งของอุปกรณ์
  8. คลิกตรวจสอบ เครื่องมือแก้ไขสคริปต์จะขีดเส้นใต้ส่วนของการทำงานอัตโนมัติที่ใช้สคริปต์ซึ่งมีข้อผิดพลาด แก้ไขข้อผิดพลาดที่เกิดขึ้น และตรวจสอบและแก้ไขต่อไปจนกว่าจะไม่มีข้อผิดพลาด เช่น ชื่ออุปกรณ์อาจแตกต่างกัน ในกรณีนี้ คุณสามารถใช้ฟีเจอร์การเติมข้อความอัตโนมัติเพื่อเลือกชื่ออุปกรณ์ที่ถูกต้องได้
  9. คลิกบันทึก
  10. ตรวจสอบว่าสวิตช์เปิดใช้งานใต้ข้อความของสคริปต์อยู่ในตำแหน่งเปิด เครื่องมือแก้ไขสคริปต์ที่มีการทำงานอัตโนมัติที่ใช้สคริปต์ซึ่งได้รับการตรวจสอบและเปิดใช้งานอย่างสมบูรณ์

6. ทดสอบการทำงานอัตโนมัติ

  1. ตรวจสอบว่าเสียบปลั๊กอุปกรณ์และอุปกรณ์แสดงอยู่ในแอป Google Home
  2. หากอุปกรณ์เปิดอยู่ ให้ปิด
  3. ในหน้าการทำงานอัตโนมัติใน Google Home สำหรับเว็บ ให้คลิกปุ่ม "เรียกใช้" ข้างการทำงานอัตโนมัติ
    ปุ่มเรียกใช้สคริปต์
  4. อุปกรณ์ควรเปิด

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

  1. ปิดอุปกรณ์
  2. แก้ไขการทำงานอัตโนมัติและเปลี่ยนเวลา "เปิดอุปกรณ์" ในบรรทัดที่ 7 เป็นเวลาในอนาคตอีก 5 นาที
  3. เปลี่ยนเวลา "ปิดอุปกรณ์" ในบรรทัดที่ 14 เป็นเวลาหลังจาก "เวลาเปิด" ไม่นาน
  4. คลิกตรวจสอบ แก้ไขข้อผิดพลาดที่อาจเกิดขึ้น
  5. คลิกบันทึก
  6. ตรวจสอบว่าสวิตช์เปิดใช้งานอยู่ในตำแหน่งเปิด
  7. รอให้เวลาเริ่มต้น 2 ครั้งผ่านไป อุปกรณ์ควรเปิดและปิดตามเวลาที่คุณระบุ

7. ยินดีด้วย

คุณสร้างการทำงานอัตโนมัติที่ใช้สคริปต์เรียบร้อยแล้ว ยอดเยี่ยมมาก

ในโค้ดแล็บนี้ คุณได้เรียนรู้วิธีการต่อไปนี้

  • วิธีออกแบบและเขียนการทำงานอัตโนมัติ
  • วิธีทดสอบการทำงานอัตโนมัติ

ขั้นตอนถัดไป

ในโค้ดแล็บนี้ เราได้สร้างการทำงานอัตโนมัติที่ง่ายมากๆ การทำงานอัตโนมัติทำได้มากกว่าการตั้งเวลาเปิด/ปิดสวิตช์ไฟ เมื่อเข้าใจพื้นฐานของการสร้างการทำงานอัตโนมัติแล้ว คุณก็สามารถสำรวจเงื่อนไขเริ่มต้น เงื่อนไข และการดำเนินการประเภทต่างๆ ที่มีอยู่ในระบบนิเวศของ Google Home ได้

ลองทำแบบฝึกหัดต่อไปนี้

  • เพิ่มtime.scheduleเงื่อนไขเริ่มต้นลงในการทำงานอัตโนมัติ
  • แก้ไขการทำงานอัตโนมัติเพื่อเปิดและปิดอุปกรณ์อื่นตามกำหนดการเดียวกัน
  • โดยไม่ต้องนำเงื่อนไขเริ่มต้น time.schedule ออก ให้แก้ไขการทำงานอัตโนมัติให้เปิดอุปกรณ์เฉพาะเมื่อเปิดอุปกรณ์อื่น โปรดดูสคริปต์ตัวอย่างที่ใช้คําสั่ง condition
  • แก้ไขการทำงานอัตโนมัติให้เปิดอุปกรณ์เฉพาะเมื่อมีคนอยู่บ้าน

อ่านเพิ่มเติม

ดูข้อมูลเพิ่มเติมเกี่ยวกับการทำงานอัตโนมัติของ Google Home ได้ที่เอกสารอ้างอิงการทำงานอัตโนมัติ