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

1. บทนำ

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

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

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

  • โทรศัพท์ Android หรือ iOS ที่ใช้แอป Google Home
  • หลอดไฟอัจฉริยะหรืออุปกรณ์อื่นๆ ที่ได้รับการรับรองจาก Works with 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 รายการ

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 ปิดไฟ
  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. ยินดีด้วย

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

คุณได้เรียนรู้วิธีต่อไปนี้ใน Codelab

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

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

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

ลองออกกำลังกายดังต่อไปนี้

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

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

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