สร้างเทมเพลตอัตโนมัติ

1. บทนำ

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

  • วิธีออกแบบและเขียนเทมเพลตการทำงานอัตโนมัติ
  • วิธีทดสอบเทมเพลตการทำงานอัตโนมัติโดยใช้ Google Home Developer Console

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

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

ข้อกำหนดเบื้องต้น

คุณควรคุ้นเคยกับวิธีเขียนการทำงานอัตโนมัติของ Google Home หากคุณไม่เคยเขียนการทำงานอัตโนมัติมาก่อน โปรดลองทำ Codelab สร้างการทำงานอัตโนมัติที่ใช้สคริปต์ก่อนดำเนินการต่อ

2. เทมเพลตและการทำงานอัตโนมัติ

นักพัฒนาแอปสร้างเทมเพลตการทำงานอัตโนมัติโดยใช้เครื่องมือแก้ไขเทมเพลตการทำงานอัตโนมัติใน Google Home Developer Console เทมเพลตการทำงานอัตโนมัติมีแก่นของตรรกะสคริปต์ที่อ้างอิงประเภทอุปกรณ์ แต่ไม่ได้อ้างอิงอุปกรณ์ที่เฉพาะเจาะจง

การใช้เครื่องมือแก้ไขสคริปต์การทำงานอัตโนมัติของ Google Home สำหรับเว็บ ผู้ใช้ปลายทางจะใช้เทมเพลตการทำงานอัตโนมัติและสร้างอินสแตนซ์ที่ปรับเปลี่ยนในแบบของตนเองซึ่งจะทำงานในอุปกรณ์ที่เฉพาะเจาะจงในบ้านของตนเอง เมื่อบันทึกแล้ว อินสแตนซ์จะปรากฏในส่วนกิจวัตรในบ้านในแอป Google Home (GHA)

3. วางแผนเทมเพลตการทำงานอัตโนมัติ

เมื่อสร้างการทำงานอัตโนมัติ สิ่งแรกที่ต้องทำคือคิดถึงปัญหาที่ต้องการแก้ไข และการทำงานอัตโนมัติจะช่วยแก้ปัญหาได้อย่างไร ซึ่งรวมถึงข้อควรพิจารณาต่อไปนี้

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

การทำงานอัตโนมัติจะทำ 2 สิ่งต่อไปนี้เพื่อวัตถุประสงค์ของ Codelab นี้

  1. เปิดไฟในเวลาที่เจาะจง
  2. ปิดไฟดวงเดียวกันในเวลาที่เฉพาะเจาะจง

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

4. เขียนเทมเพลตการทำงานอัตโนมัติ

ระบบอัตโนมัติเขียนขึ้นในลักษณะการประกาศโดยใช้ภาษาการซีเรียลไลซ์ข้อมูล YAML

เทมเพลตการทำงานอัตโนมัติมี 3 ส่วนหลักดังนี้

  1. ข้อมูลเมตา - ชื่อของการทำงานอัตโนมัติ คำอธิบายสิ่งที่การทำงานอัตโนมัติทำ และแท็กบางรายการ (ไม่บังคับ) ที่ใช้เพื่อจัดประเภทการทำงานอัตโนมัติ คีย์เวิร์ดคือ
    • แสงไฟและปลั๊ก
    • สภาพอากาศและพลังงาน
    • การรักษาความปลอดภัยและการแจ้งเตือน
    • ความบันเทิง
    • เครื่องใช้ไฟฟ้าและอื่นๆ
  2. อินพุต - กำหนดประเภทอุปกรณ์ที่การทำงานอัตโนมัติมีไว้เพื่อควบคุม เครื่องมืออัตโนมัติใช้ข้อมูลนี้เพื่อทราบว่าการดำเนินการประเภทใดที่ใช้ได้กับอุปกรณ์ที่ต้องการ
  3. กฎการทำงานอัตโนมัติ - กำหนดตรรกะการเริ่มต้นและลักษณะการทำงานของการทำงานอัตโนมัติ

นี่คือเทมเพลตการทำงานอัตโนมัติที่คุณจะใช้

metadata:
  name:
    en: Scheduled light
  description:
    en: Turn the light on and off at specific times
  tags:
    - LIGHTING AND PLUGS
input:
  the_light:
    metadata:
      name:
        en: The light
      description:
        en: The light to be controlled
    selector:
      type: device
      multiSelect: true
      supportedTypes:
        - LIGHT
  time_on:
    metadata:
      name:
        en: Time to turn on the light.
      description:
        en: The time of day to turn on the selected light.
    selector:
      type: time
      default: sunset+30min
  time_off:
    metadata:
      name:
        en: Time to turn off the light.
      description:
        en: The time of day to turn off the selected light.
    selector:
      type: time
      default: 10:00 pm
automations:
  - name: Turn on the light
    starters:
      - type: time.schedule
        at: $time_on
    actions:
      - type: device.command.OnOff
        devices: $the_light
        on: true
  - name: Turn off the light
    starters:
      - type: time.schedule
        at: $time_off
    actions:
      - type: device.command.OnOff
        devices: $the_light
        on: false

อ่านเทมเพลตและจดบันทึกสิ่งต่อไปนี้

  • ส่วน metadata จะมีชื่อและคำอธิบายของการทำงานอัตโนมัตินี้
  • ส่วน input จะกำหนดตัวแปรชื่อ the_light ซึ่งระบุอุปกรณ์ประเภท LIGHT ซึ่งหมายความว่าเทมเพลตนี้ใช้ได้กับหลอดไฟเท่านั้น ไม่สามารถใช้กับอุปกรณ์ประเภทอื่นๆ ได้ กล่าวคือ เมื่อผู้ใช้ตั้งค่าการทำงานอัตโนมัติในบ้านและได้รับแจ้งให้เลือกอุปกรณ์สำหรับ $the_light ระบบจะจำกัดตัวเลือกอุปกรณ์ให้เป็นอุปกรณ์ประเภทที่คุณระบุ
  • นอกจากนี้ ในinput ยังมีตัวแปร 2 รายการชื่อ time_on และ time_off ซึ่งช่วยให้ผู้ใช้ระบุได้ว่าจะเริ่มการทำงานอัตโนมัติเมื่อใด time_on แสดงเวลาที่เปิดไฟ และ time_off แสดงเวลาที่ปิดไฟ หากผู้ใช้ไม่ได้ตั้งค่า time_on หรือ time_off ระบบจะใช้ค่าเริ่มต้น
  • ส่วนautomationsของการทำงานอัตโนมัติมีกฎการทำงานอัตโนมัติ 2 ข้อ กฎแต่ละข้อมีtime.scheduleเงื่อนไขเริ่มต้นเดียวที่จะบอกการทำงานอัตโนมัติว่าควรเริ่มการทำงานอัตโนมัตินั้นเมื่อใด

เครื่องมือแก้ไขเทมเพลต

เครื่องมือแก้ไขเทมเพลตการทำงานอัตโนมัติคือเครื่องมือที่คุณใช้เขียนเทมเพลตการทำงานอัตโนมัติ

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

5. ทดสอบเทมเพลต

ตอนนี้คุณทดสอบเทมเพลตในคอนโซลได้แล้ว

  1. ตรวจสอบว่าเสียบปลั๊กหลอดไฟและมองเห็นหลอดไฟในแอป Google Home
  2. หากไฟเปิดอยู่ ให้ปิด
  3. ไปที่ Google Home Developer Console
  4. เปิดโปรเจ็กต์ที่คุณสร้างเทมเพลต
  5. เลือกการทำงานอัตโนมัติ แล้วเลือกแท็บทดสอบ
  6. คลิกเปิดข้างเทมเพลตการทำงานอัตโนมัติ "ไฟที่กำหนดเวลา"
  7. เลือกโครงสร้างที่คุณต้องการทดสอบเทมเพลต แล้วคลิกถัดไป
  8. ในเอดิเตอร์ InputValue ให้ระบุชื่อหลอดไฟ ตัวอย่างเช่น หากไฟชื่อ "ไฟตั้งโต๊ะ - ออฟฟิศ" คุณจะต้องเลือก Desk light - Office จากเมนูแบบเลื่อนลงที่ปรากฏขึ้นเมื่อคลิกทางด้านขวาของ lights หรือคุณอาจพิมพ์ชื่ออุปกรณ์
  9. นอกจากนี้ ในเครื่องมือแก้ไข InputValue ให้ระบุเวลา time_on เป็นเวลา เช่น 5 นาทีในอนาคต และเปลี่ยนเวลา time_off เป็นเวลาหลังจาก time_on ไม่นาน
  10. เมื่อเสร็จแล้ว โปรแกรมแก้ไข InputValue ควรมีลักษณะดังนี้
    inputValue:
     #add value
     the_light: Desk light - Office
     #add value
     time_off: 11:45 am
     #add value
     time_on: 11:40 am
    
  11. คลิกเปิดใช้งานการทดสอบ
  12. รอให้เวลาเริ่มต้น 2 ครั้งผ่านไป ไฟควรจะเปิดและปิดตามเวลาที่ระบุ

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

6. ยินดีด้วย

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

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

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

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

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

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

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