สร้างอุปกรณ์เสมือนจริงกรณี

1. ข้อมูลเบื้องต้น

Matter เป็นโปรโตคอลการเชื่อมต่อที่มอบโอกาสที่น่าตื่นเต้นในการพัฒนาอุปกรณ์อัจฉริยะ ใน Codelab นี้ คุณจะต้องสร้างอุปกรณ์ Matter เครื่องแรกโดยใช้ SDK และทรัพยากร Dependency ที่จัดเตรียมไว้ให้ในอิมเมจ Docker ที่กำหนดค่าไว้ล่วงหน้า

ดูข้อมูลเกี่ยวกับ Matter ได้ที่ศูนย์นักพัฒนาแอป Google Home หรือเว็บไซต์ Connectivity Standards Alliance

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

  • วิธีตั้งค่าสภาพแวดล้อมของบิลด์ Matter
  • วิธีสร้างอุปกรณ์ Matter เสมือนที่ทำงานในคอมพิวเตอร์
  • วิธีคอมมิชชันและควบคุมอุปกรณ์ Matter เสมือนด้วย Google Home

สิ่งที่ต้องมี

  • Hub ซึ่งก็คืออุปกรณ์ Google Nest ที่รองรับ Matter เช่น Nest Hub (รุ่นที่ 2)
  • เครื่อง Linux ที่ใช้ระบบการจัดหน้าต่าง X11
  • Docker
  • ความรู้เบื้องต้นเกี่ยวกับ Linux

2. ตั้งค่าสภาพแวดล้อมของคุณ

เราจะใช้คอนเทนเนอร์ Docker ที่กำหนดค่าไว้ก่อนหน้านี้ในเครื่องโฮสต์ Linux คอนเทนเนอร์นี้รวมทรัพยากร Dependency ทั้งหมดที่จำเป็นในการสร้างและเรียกใช้อุปกรณ์เสมือน Matter

ตรวจสอบฮาร์ดแวร์

การติดตั้ง Docker นี้ไม่รองรับคอมพิวเตอร์ Windows และ macOS คุณอาจติดตั้งและสร้าง Matter ด้วยตนเองใน macOS ได้

นอกจากนี้ คำแนะนำเหล่านี้จะถือว่าเครื่อง Linux ของคุณใช้ระบบหน้าต่าง X11 หากเครื่อง Linux ของคุณใช้ Wayland ให้ตรวจสอบว่าได้ติดตั้ง X.Org ด้วย

ตั้งค่า Docker

  1. ติดตั้ง Docker Engine (อย่าใช้ Docker Desktop)
  2. ดึงอิมเมจ Docker จาก Docker Hub ในหน้าต่างเทอร์มินัล ให้เรียกใช้
    user@host> docker pull us-docker.pkg.dev/nest-matter/docker-repo/virtual-device-image:latest
    
    การดำเนินการนี้อาจใช้เวลาสักครู่จึงจะเสร็จสมบูรณ์
  3. เริ่มการทำงานของคอนเทนเนอร์ Docker:
    user@host> xhost local:1000
    user@host> docker run -it --ipc=host --net=host -e DISPLAY --name matter-container us-docker.pkg.dev/nest-matter/docker-repo/virtual-device-image:latest
    

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

Environment looks good, you are ready to go!
$

มาทำความเข้าใจคำสั่ง Docker และตัวเลือกที่เราส่งไปยังคำสั่งนี้กัน

  • xhost local:1000 ช่วยให้ X Window System รับการเชื่อมต่อจากโฮสต์ในเครื่องในพอร์ต 1000 ได้ ซึ่งทำให้ใช้อินเทอร์เฟซผู้ใช้แบบกราฟิกได้
  • docker run … image จะเรียกใช้อิมเมจที่ระบุ โดยดึงจากรีจิสทรีของ Docker หากจำเป็น
  • --ipc=host อนุญาตให้ Docker แชร์เนมสเปซการสื่อสารระหว่างโปรเซสกับเครื่องโฮสต์ของคุณ
  • --net=host ช่วยให้ Docker สามารถใช้สแต็กเครือข่ายของโฮสต์ภายในคอนเทนเนอร์ ซึ่งจำเป็นต่อการส่งการจราจรของข้อมูล mDNS จากโฮสต์ไปยังคอนเทนเนอร์ และแชร์จอแสดงผลของโฮสต์ X11
  • -e DISPLAY จะส่งออก $DISPLAY ไปยังโฮสต์ เพื่อให้สามารถเข้าถึงอินเทอร์เฟซกราฟิกของระบบ ซึ่งจำเป็นสำหรับการเรียกใช้เครื่องมือ ZAP เมื่อแก้ไขคลัสเตอร์ Matter
  • -it เรียกใช้ Docker กับเทอร์มินัลแบบอินเทอร์แอกทีฟ (tty) แทนที่จะเป็นกระบวนการเบื้องหลัง

หรือคุณสามารถเรียกใช้อินสแตนซ์เซสชันเทอร์มินัลที่ 2 ได้:

user@host> docker exec -it matter-container /bin/bash
$

หยุดและเริ่มคอนเทนเนอร์ Matter Docker

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

ด้วยเหตุนี้ หลังจากสร้างคอนเทนเนอร์แล้ว คุณจึงจะหยุดคอนเทนเนอร์เพื่อไม่ให้งานสูญหายได้

user@host> docker stop matter-container

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

user@host> docker start matter-container
user@host> docker exec -it matter-container /bin/bash

คุณสามารถเปิดเซสชันเทอร์มินัลเพิ่มเติมในคอนเทนเนอร์ได้ด้วยวิธีต่อไปนี้

user@host> docker exec -it matter-container /bin/bash

หรือเริ่มเซสชันรากโดยใช้:

user@host> docker exec -u 0 -it matter-container /bin/bash

การตั้งค่า Matter เริ่มต้น

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

แชร์ไฟล์ระหว่างโฮสต์และคอนเทนเนอร์

หากต้องการเข้าถึงไฟล์ในเครื่องโฮสต์จากในคอนเทนเนอร์ คุณอาจใช้การต่อเชื่อมแบบ Bind นอกจากนี้ คุณยังเขียนไฟล์ไปยังไดเรกทอรีที่ต่อเชื่อมจากภายในคอนเทนเนอร์เพื่อให้เข้าถึงจากโฮสต์ได้อย่างง่ายดาย

เรียกใช้คอนเทนเนอร์ของคุณด้วยอาร์กิวเมนต์ --mount source=$(pwd),target=/workspace,type=bind เพิ่มเติม เพื่อต่อเชื่อมไดเรกทอรีการทำงานปัจจุบันในคอนเทนเนอร์ที่ /workspace

user@host> docker run -it --ipc=host --net=host -e DISPLAY --name matter-container --mount source=$(pwd),target=/workspace,type=bind us-docker.pkg.dev/nest-matter/docker-repo/virtual-device-image:latest

ต้องจัดการสิทธิ์ของผู้ใช้คอนเทนเนอร์ในไดเรกทอรีที่ต่อเชื่อมในโฮสต์

รับรหัสกลุ่มของผู้ใช้คอนเทนเนอร์จากภายในคอนเทนเนอร์

$ id
uid=1000(matter) gid=1000(matter) groups=1000(matter)

เปิดเซสชันเทอร์มินัลอื่นในโฮสต์คอนเทนเนอร์และตั้งค่าไดเรกทอรีการทำงานเป็นไดเรกทอรีที่ต่อเชื่อมโดยคอนเทนเนอร์

ตั้งค่ากลุ่มสำหรับไฟล์ในไดเรกทอรีที่ต่อเชื่อมไปยังกลุ่มของผู้ใช้คอนเทนเนอร์ซ้ำๆ

user@host> sudo chgrp -R 1000 .

ให้สิทธิ์ที่ต้องการในไดเรกทอรีแก่กลุ่ม ตัวอย่างนี้มอบสิทธิ์ในการอ่าน เขียน และเรียกใช้ให้กับกลุ่มของผู้ใช้คอนเทนเนอร์กับทุกไฟล์ในไดเรกทอรีที่ต่อเชื่อม

user@host> sudo chmod -R g+rwx .

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

คุณอาจเพิ่มผู้ใช้โฮสต์ลงในกลุ่มของผู้ใช้คอนเทนเนอร์เพื่อรับสิทธิ์ในไฟล์ที่ผู้ใช้คอนเทนเนอร์สร้างขึ้น

user@host> currentuser=$(whoami)
user@host> sudo usermod -a -G 1000 $currentuser

3. แผงควบคุมสำหรับนักพัฒนาซอฟต์แวร์ Google Home

Google Home Developer Console คือเว็บแอปพลิเคชันที่คุณจัดการการผสานรวม Matter กับ Google Home ได้

อุปกรณ์ Matter ที่ผ่านการรับรอง Connectivity Standards Alliance (Alliance) Matter ใช้งานได้ในระบบนิเวศของ Google Home อุปกรณ์ที่อยู่ระหว่างการพัฒนาที่ไม่ผ่านการรับรองสามารถมอบหมายในระบบนิเวศของ Google Home ได้ภายใต้เงื่อนไขบางประการ ดูข้อมูลเพิ่มเติมได้ที่ข้อจำกัดในการจับคู่

สร้างโปรเจ็กต์นักพัฒนาซอฟต์แวร์

เริ่มต้นด้วยการไปที่ Google Home Developer Console

  1. คลิกสร้างโปรเจ็กต์
  2. ป้อนชื่อโปรเจ็กต์ที่ไม่ซ้ำกัน แล้วคลิกสร้างโปรเจ็กต์ กล่องโต้ตอบการสร้างโปรเจ็กต์ใหม่
  3. คลิก + เพิ่มการผสานรวม ซึ่งจะนำคุณไปยังหน้าจอทรัพยากร Matter ซึ่งคุณจะดูเอกสารการพัฒนา Matter และอ่านเกี่ยวกับเครื่องมือบางอย่างได้
  4. เมื่อพร้อมดําเนินการต่อ ให้คลิกถัดไป: พัฒนา ซึ่งจะแสดงหน้ารายการตรวจสอบกรณี
  5. คลิกถัดไป: การตั้งค่า
  6. ในหน้าการตั้งค่า ให้ป้อนชื่อผลิตภัณฑ์ของคุณ
  7. คลิกเลือกประเภทอุปกรณ์ แล้วเลือกประเภทอุปกรณ์จากเมนูแบบเลื่อนลง (ในกรณีนี้คือ Light)
  8. ใน "รหัสผู้ให้บริการ" (VID) ให้เลือกทดสอบ VID แล้วเลือก 0xFFF1 จากเมนูแบบเลื่อนลง "ทดสอบ VID" ในรหัสผลิตภัณฑ์ (PID) ให้ป้อน 0x8000 แล้วคลิกบันทึกและดำเนินการต่อ จากนั้นคลิกบันทึกในหน้าถัดไป ใช้ค่า VID/PID ที่ถูกต้องเหล่านี้ และในขั้นตอนของ Codelab เวอร์ชันต่อมาจะขึ้นอยู่กับค่าดังกล่าว
    การตั้งค่าโปรเจ็กต์
  9. ตอนนี้คุณจะเห็นการผสานรวมในส่วนการผสานรวม Matter
  10. รีบูตฮับเพื่อรับการกำหนดค่าโปรเจ็กต์การผสานรวม Matter ล่าสุด หากต้องเปลี่ยน VID หรือ PID ในภายหลัง คุณจะต้องรีบูตหลังจากบันทึกโปรเจ็กต์ด้วยเพื่อให้การเปลี่ยนแปลงมีผล โปรดดูวิธีรีบูตแบบทีละขั้นตอนที่รีสตาร์ทอุปกรณ์ Google Nest หรือ Google Wifi

4. สร้างอุปกรณ์

ตัวอย่างทั้งหมดใน Matter จะอยู่ในโฟลเดอร์ examples ในที่เก็บของ GitHub ซึ่งมีตัวอย่างอยู่หลายรายการ แต่เรามุ่งเน้นที่ Codelab นี้สำหรับ Chef

เชฟคือทั้ง 2 คนในตำแหน่งดังนี้

  • แอปตัวอย่างที่มีอินเทอร์เฟซเทอร์มินัลและฟีเจอร์การรวมที่พบในแอป examples/shell
  • สคริปต์ที่นำหลักการการกำหนดค่าแบบโอเวอร์โอเวอร์มาใช้เพื่อรวมงานทั่วไปหลายอย่างที่จำเป็นต่อการพัฒนาอุปกรณ์ที่เปิดใช้ Matter

ไปที่โฟลเดอร์ตัวอย่างของ Chef แล้วสร้างบิลด์ Matter แรกโดยใช้คำสั่งต่อไปนี้

$ cd examples/chef
$ ./chef.py -zbr -d rootnode_dimmablelight_bCwGYSDpoe -t linux

เชฟมีตัวเลือก 2-3 รายการที่ดูได้โดยใช้ chef.py -h ตัวเลือกที่เราใช้มีดังต่อไปนี้

  • -d: กำหนดประเภทอุปกรณ์ที่จะใช้ ในกรณีนี้เราจะสร้างแอปแสงไฟที่มีส่วนควบคุมการเปิด/ปิดและระดับ
  • -z: เรียกใช้เครื่องมือ ZAP เพื่อสร้างไฟล์ต้นฉบับที่ใช้งานประเภทอุปกรณ์ กล่าวคือ ZAP จะสร้างโค้ดโดยอัตโนมัติเพื่อรวมอยู่ในบิลด์ที่กำหนดแสง (โมเดลข้อมูล) และวิธีที่แสงโต้ตอบกับอุปกรณ์อื่นๆ (โมเดลการโต้ตอบ) โดยขึ้นอยู่กับแสงที่คุณเลือก
  • -b: บิลด์
  • -r: [ไม่บังคับ] เปิดใช้เซิร์ฟเวอร์ RPC ในอุปกรณ์ Matter เสมือน เพื่อให้คอมโพเนนต์อื่นๆ (เช่น GUI) สื่อสารกับอุปกรณ์เพื่อตั้งค่าและเรียกข้อมูลแอตทริบิวต์โมเดลข้อมูลได้
  • -t linux: แพลตฟอร์มเป้าหมาย แพลตฟอร์มการสนับสนุนคือ linux, nrfconnect และ esp32 คุณสามารถเรียกใช้ ./chef.py -h เพื่อดูคำสั่งที่ใช้ได้ทั้งหมดและแพลตฟอร์มเป้าหมายที่รองรับ มีการใช้ linux สำหรับอุปกรณ์ Matter เสมือน

เรียกใช้อุปกรณ์

Matter ใช้พอร์ต TCP/UDP 5540 ดังนั้นหากคุณมีไฟร์วอลล์ที่ทำงานอยู่ในคอมพิวเตอร์ ให้ปิดเครื่องหรืออนุญาตให้เชื่อมต่อ TCP/UDP ขาเข้าบนพอร์ต 5540

เรียกใช้อุปกรณ์เสมือนในคอนเทนเนอร์ด้วยคำสั่งต่อไปนี้

$ ./linux/out/rootnode_dimmablelight_bCwGYSDpoe
   [1648589956496] [14264:16538181] CHIP: [DL] _Init]
...
[1648562026.946882][433632:433632] CHIP:SVR: SetupQRCode: [MT:Y3.13Y2N00KA0648G00]
[1648562026.946893][433632:433632] CHIP:SVR: Copy/paste the below URL in a browser to see the QR Code:
[1648562026.946901][433632:433632] CHIP:SVR: https://project-chip.github.io/connectedhomeip/qrcode.html?data=MT%3AY3.13Y2N00KA0648G00
[1648562026.946915][433632:433632] CHIP:SVR: Manual pairing code: [34970112332]

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

หยุดอุปกรณ์

หากคุณต้องการหยุดการทำงานของอุปกรณ์ คุณสามารถออกจากโปรแกรมด้วยการกด Ctrl+C หากแอปไม่ออก คุณอาจต้องใช้ CTRL+\ ด้วย

ข้อมูลเข้าสู่ระบบสำหรับอุปกรณ์เสมือนจะจัดเก็บอยู่ในไดเรกทอรี /tmp/ โดยอยู่ในไฟล์ที่ขึ้นต้นด้วย chip

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

$ rm /tmp/chip*

5. ตัวควบคุมอุปกรณ์เสมือน

ตัวควบคุมอุปกรณ์เสมือนเป็นแอปแบบสแตนด์อโลนที่มีอินเทอร์เฟซผู้ใช้แบบกราฟิกเพื่อควบคุมและแสดงสถานะของอุปกรณ์ Matter เสมือน โดยจะใช้ไคลเอ็นต์ RPC เพื่อสื่อสารกับอุปกรณ์ Matter ที่เชื่อมต่อกับสภาพแวดล้อมการพัฒนาซอฟต์แวร์

ตัวควบคุมอุปกรณ์เสมือน

ตัวควบคุมอุปกรณ์เสมือนจะนำเสนอภาพอุปกรณ์เสมือนของคุณ

คุณจะโต้ตอบกับอุปกรณ์เสมือนผ่านอินเทอร์เฟซผู้ใช้แบบกราฟิก (GUI) ของตัวควบคุมอุปกรณ์เสมือนได้ การเปลี่ยนแปลงใน GUI ของคุณจะมีผลต่อโมเดลข้อมูลพื้นฐาน ดูรายการประเภทอุปกรณ์เสมือน Matter ที่รองรับทั้งหมดได้ที่หัวข้ออุปกรณ์ที่รองรับ

ติดตั้งตัวควบคุมอุปกรณ์เสมือน

Virtual Device Controller จะติดตั้งมาล่วงหน้าในคอนเทนเนอร์ Ubuntu LTS 20.04 Docker

เรียกใช้ตัวควบคุมอุปกรณ์เสมือน

สร้างอินสแตนซ์เซสชันเทอร์มินัลที่สองด้วยคำสั่งต่อไปนี้

user@host> docker exec -it matter-container /bin/bash
$

เริ่มใช้งานตัวควบคุมอุปกรณ์เสมือน (Virtual Device Controller) โดยจัดเตรียมซ็อกเก็ตเครือข่ายที่จะใช้ในการสื่อสารกับอุปกรณ์เสมือน ดังนี้

  $ cd ~/matter-virtual-device-gui/
  $ electron main.js --s=localhost:33000 --no-sandbox

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

อินเทอร์เฟซผู้ใช้กราฟิกของอุปกรณ์เสมือน

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

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

6. จัดเตรียมอุปกรณ์

หมายเหตุ: ขั้นตอนนี้จะสำเร็จก็ต่อเมื่อคุณได้ตั้งค่าโครงการใน Google Home Developer Console แล้วเท่านั้น

Nest Hub

ต้องมีฮับในการคอมมิชชันอุปกรณ์กับผ้า Matter อุปกรณ์ Google Nest อย่างเช่น Nest Hub (รุ่นที่ 2) ที่รองรับ Matter ซึ่งจะทำหน้าที่เป็นทั้ง Border Router สำหรับอุปกรณ์ที่เปิดใช้เทรดและเป็นเส้นทาง Fulfillment ภายในสำหรับกำหนดเส้นทาง Intent ของสมาร์ทโฮม

ดูรายการนี้เพื่อดูว่าฮับใดรองรับ Matter

ก่อนเริ่มขั้นตอนการเริ่มใช้งาน ให้ตรวจสอบให้แน่ใจว่า

  • Hub จะจับคู่กับบัญชี Google เดียวกับที่คุณใช้ลงชื่อเข้าใช้ในคอนโซล Google Home
  • ฮับอยู่ในเครือข่าย Wi-Fi เดียวกันกับคอมพิวเตอร์ที่คุณใช้ในการเรียกใช้อุปกรณ์ Virtual Matter
  • ฮับจะอยู่ในโครงสร้างเดียวกันกับที่คุณใช้ในแอป Google Home ("บ้าน" ในกราฟ Google Home แสดงถึงโครงสร้างของคุณ)

รับคิวอาร์โค้ด

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

ดำเนินการคอมมิชชัน

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

เมื่อทําตามขั้นตอนเหล่านี้แล้ว อุปกรณ์เสมือน Matter ควรได้รับมอบหมายเรียบร้อยแล้วและควรจะปรากฏเป็นไอคอนใหม่ในแอป Google Home

หลอดไฟที่จับคู่ในแอป Google Home

การแก้ปัญหา

ดำเนินการไม่สำเร็จโดยแสดงข้อความแสดงข้อผิดพลาด "ปัญหาการเชื่อมต่อ" หรือ "ติดต่อ Google ไม่ได้"

  • ตรวจสอบว่าคุณได้สร้างโปรเจ็กต์ด้วยชุด VID/PID ที่ถูกต้อง ในคอนโซล Google Home และคุณไม่มีโปรเจ็กต์อื่นๆ ที่ใช้ชุดค่าผสม VID/PID เดียวกัน

การจัดเตรียมไม่สำเร็จหลังจาก "สแกนอุปกรณ์" เป็นเวลานาน

7. ควบคุมอุปกรณ์

เมื่ออุปกรณ์ที่เปิดใช้ Matter ได้รับการว่าจ้างสำเร็จและปรากฏเป็นหลอดไฟในแอป Google Home แล้ว คุณอาจทดสอบการควบคุมอุปกรณ์ได้หลายวิธี ดังนี้

  • ใช้ Google Assistant
  • ใช้แอป Google Home
  • การใช้ GUI ของอุปกรณ์เสมือน

Google Assistant

ใช้ Google Assistant ในโทรศัพท์หรือฮับเพื่อเปิด/ปิดสถานะของอุปกรณ์จากคำสั่งเสียง เช่น พูดว่า "Ok Google เปิด/ปิดหลอดไฟ"

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

แอป Google Home

คุณสามารถแตะป้ายกำกับเปิดและปิดข้างไอคอนหลอดไฟที่แสดงในแอป Google Home

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

GUI ของอุปกรณ์เสมือน

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

8. ยินดีด้วย

คุณสร้างอุปกรณ์ Matter เครื่องแรกเรียบร้อยแล้ว ยอดเยี่ยม

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

  • ติดตั้งสภาพแวดล้อมในการพัฒนาซอฟต์แวร์ Matter โดยใช้อิมเมจ Docker ที่จัดแพ็กเกจไว้ล่วงหน้า
  • สร้างและเรียกใช้อุปกรณ์เสมือน Matter
  • ค่าคอมมิชชันและควบคุมอุปกรณ์เสมือนจาก Google Home

ดูข้อมูลเพิ่มเติมเกี่ยวกับ Matter ได้โดยดูจากการอ้างอิงต่อไปนี้

  • Matter Primer ในศูนย์นักพัฒนาซอฟต์แวร์ Google Home ซึ่งคุณจะได้เรียนรู้ข้อมูลเบื้องต้นเกี่ยวกับแนวคิด Matter
  • ข้อมูลจำเพาะของ Matter, ไลบรารีอุปกรณ์ Matter และไลบรารีคลัสเตอร์แอปพลิเคชัน Matter ที่เผยแพร่โดย Connectivity Standards Alliance
  • ที่เก็บ Matter GitHub