1. ข้อมูลเบื้องต้น
Matter เป็นโปรโตคอลการเชื่อมต่อที่มอบโอกาสอันน่าตื่นเต้นสําหรับการพัฒนาอุปกรณ์อัจฉริยะ ใน Codelab นี้ คุณจะสร้างอุปกรณ์ Matter เครื่องแรกโดยใช้ SDK และทรัพยากร Dependency ที่ให้ไว้ในอิมเมจ Dock ที่กําหนดค่าไว้ล่วงหน้า
ดูข้อมูลเพิ่มเติมเกี่ยวกับ Matter ได้ที่ศูนย์นักพัฒนาแอป Google Home หรือเว็บไซต์ Connection Standards Alliance
สิ่งที่คุณจะได้เรียนรู้
- วิธีตั้งค่าสภาพแวดล้อมบิลด์ของ Matter
- วิธีสร้างอุปกรณ์ Matter เสมือนจริงที่ทํางานในคอมพิวเตอร์
- วิธีว่าจ้างและควบคุมอุปกรณ์ Matter ออนไลน์ด้วย Google Home
สิ่งที่ต้องมี
- ฮับซึ่งเป็นอุปกรณ์ Google Nest ที่รองรับ Matter เช่น Nest Hub (รุ่นที่ 2) คุณสามารถซื้อฮับที่ Google Store หรือที่ร้านค้าปลีกที่ต้องการ
- เครื่อง Linux ที่ใช้ระบบหน้าต่าง X11
- แท่นชาร์จ
- ความรู้พื้นฐานเกี่ยวกับ Linux
2. ตั้งค่าสภาพแวดล้อม
เราจะใช้คอนเทนเนอร์ CDN ที่กําหนดค่าไว้ก่อนหน้านี้บนเครื่องโฮสต์ Linux คอนเทนเนอร์นี้อาศัยทรัพยากร Dependency ที่จําเป็นทั้งหมดสําหรับการสร้างและเรียกใช้อุปกรณ์เสมือน Matter
ตรวจสอบฮาร์ดแวร์ของคุณ
ขณะนี้ระบบยังไม่รองรับการติดตั้ง Windows สําหรับคอมพิวเตอร์ Windows และ MacOS คุณจะติดตั้งและสร้างกรณีด้วยตนเองใน MacOS หรือ Windows ก็ได้
นอกจากนี้ วิธีการเหล่านี้จะถือว่าเครื่อง Linux ของคุณใช้ระบบหน้าต่าง X11 หากเครื่อง Linux เรียกใช้ Wayland โปรดตรวจสอบว่าได้ติดตั้ง X.Org แล้ว
ตั้งค่า Dock
- ติดตั้ง Dock Engine (อย่าใช้ Dock Desktop)
- ดึงอิมเมจ Dock จาก Dock Hub ในหน้าต่างเทอร์มินัล ให้เรียกใช้คําสั่งต่อไปนี้
user@host> docker pull us-docker.pkg.dev/nest-matter/docker-repo/virtual-device-image:latest
การดําเนินการนี้อาจใช้เวลาสักครู่จึงจะเสร็จสมบูรณ์ - เริ่มต้นคอนเทนเนอร์ Dock ที่ทํางานอยู่:
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
หลังจากเริ่มต้นคอนเทนเนอร์ คุณควรเห็นผลลัพธ์การวินิจฉัยบางอย่าง ตามด้วยข้อความที่ยืนยันว่าการกําหนดค่าคอนเทนเนอร์ของคุณถูกต้อง และสุดท้ายคือ ข้อความแจ้งของคอนเทนเนอร์คอนเทนเนอร์:
Environment looks good, you are ready to go!
$
เรามาเข้าใจคําสั่ง Docker และตัวเลือกที่เราส่งต่อกัน
xhost local:1000
อนุญาตให้ระบบหน้าต่าง X รับการเชื่อมต่อจากโฮสต์ในเครื่องบนพอร์ต 1000 ทําให้สามารถใช้อินเทอร์เฟซผู้ใช้แบบกราฟิกได้docker run … image
จะเรียกใช้รูปภาพที่ระบุโดยดึงข้อมูลจากรีจิสทรีของ CDN หากจําเป็น--ipc=host
อนุญาตให้ Dock แชร์เนมสเปซการสื่อสารระหว่างการประมวลผลกับเครื่องโฮสต์--net=host
อนุญาตให้ Dock ใช้สแต็กเครือข่ายของโฮสต์ภายในคอนเทนเนอร์ ซึ่งจําเป็นต่อการส่ง mDNS จากโฮสต์ไปยังคอนเทนเนอร์ และแชร์จอแสดงผลโฮสต์ X11-e DISPLAY
จะส่งออก$DISPLAY
ไปยังโฮสต์ ซึ่งให้สิทธิ์เข้าถึงอินเทอร์เฟซกราฟิกของระบบของคุณ ขั้นตอนนี้จําเป็นสําหรับการเรียกใช้เครื่องมือ ZAP เมื่อแก้ไขคลัสเตอร์ Matter-it
เรียกใช้ Dock ที่มีเครื่องชําระเงินแบบอินเทอร์แอกทีฟ (ty) แทนที่จะเป็นกระบวนการเบื้องหลัง
คุณสามารถเลือกเรียกใช้อินสแตนซ์เซสชันเทอร์มินัลที่ 2 ได้โดยทําดังนี้
user@host> docker exec -it matter-container /bin/bash $
หยุดและเริ่มคอนเทนเนอร์คอนเทนเนอร์ Matter
เมื่อใดก็ตามที่คุณเรียกใช้คําสั่ง 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 ที่ ~/connectedhomeip
คุณไม่จําเป็นต้องดําเนินการใดๆ เพิ่มเติมเพื่อตั้งค่า Matter
แชร์ไฟล์ระหว่างโฮสต์กับคอนเทนเนอร์
หากต้องการเข้าถึงไฟล์ในเครื่องโฮสต์จากภายในคอนเทนเนอร์ คุณอาจใช้ตัวยึดการเชื่อมโยง นอกจากนี้ คุณยังเขียนไฟล์ไปยังไดเรกทอรีที่ติดตั้งไว้จากภายในคอนเทนเนอร์ได้ด้วยเพื่อให้เข้าถึงได้ง่ายจากโฮสต์
เรียกใช้คอนเทนเนอร์ด้วยอาร์กิวเมนต์เพิ่มเติม --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 คือเว็บแอปพลิเคชันที่คุณจัดการการผสานรวม Matter กับ Google Home
อุปกรณ์ Matter ใดๆ ที่ผ่านการรับรอง CSA Matter จะทํางานในระบบนิเวศของ Google Home อุปกรณ์ที่อยู่ระหว่างการพัฒนาแต่ไม่ได้รับการรับรองอาจได้รับค่าคอมมิชชันในระบบนิเวศของ Google Home ภายใต้เงื่อนไขบางอย่าง ดูข้อมูลเพิ่มเติมได้ที่ข้อจํากัดการจับคู่
สร้างโปรเจ็กต์นักพัฒนาซอฟต์แวร์
เริ่มจากไปที่ Google Home Console
- ในหน้าจัดการโปรเจ็กต์ ให้คลิกสร้างโปรเจ็กต์
- ในหน้าเริ่มต้นใช้งาน ให้คลิกสร้างโปรเจ็กต์
- ป้อนชื่อโปรเจ็กต์ที่ไม่ซ้ํากัน แล้วคลิกสร้างโปรเจ็กต์ใหม่
- คลิก + เพิ่มการผสานรวม ซึ่งจะนําคุณไปยังหน้าจอ "ทรัพยากร Matter" ซึ่งคุณจะเห็นเอกสารการพัฒนา Matter และอ่านเกี่ยวกับเครื่องมือบางอย่าง
- เมื่อคุณพร้อมดําเนินการต่อ ให้คลิกถัดไป: พัฒนา ซึ่งแสดงหน้ารายการตรวจสอบกรณี
- คลิกถัดไป: การตั้งค่า
- ป้อนชื่อผลิตภัณฑ์ในหน้าตั้งค่า
- คลิกเลือกประเภทอุปกรณ์ แล้วเลือกประเภทอุปกรณ์จากเมนูแบบเลื่อนลง (ในกรณีนี้คือ
Light
) - ในรหัสผู้ให้บริการ (VID) ให้เลือกทดสอบ VID แล้วเลือก 0xFFF1 จากเมนูแบบเลื่อนลงสําหรับทดสอบ VID ในรหัสผลิตภัณฑ์ (PID) ให้ป้อน 0x8000 แล้วคลิกบันทึกและดําเนินการต่อ แล้วคลิกบันทึกในหน้าถัดไป
- ตอนนี้คุณจะเห็นอุปกรณ์ Matter 1 เครื่องในส่วนการผสานรวม Matter
- รีบูตฮับเพื่อให้แน่ใจว่าได้รับการกําหนดค่าโปรเจ็กต์การผสานรวม Matter ล่าสุด หากต้องเปลี่ยน VID หรือ PID ในภายหลัง คุณจะต้องรีบูตหลังจากที่บันทึกโปรเจ็กต์แล้ว เพื่อให้การเปลี่ยนแปลงมีผล
4. สร้างอุปกรณ์
ตัวอย่างทั้งหมดใน Matter อยู่ในโฟลเดอร์ examples
ในที่เก็บ GitHub มีตัวอย่างหลายรายการ แต่เราได้มุ่งเน้นไปที่ Codelab นี้ใน Chef
เชฟ เป็นทั้งสอง:
- แอปตัวอย่างที่มีอินเทอร์เฟซเทอร์มินัลและรวมฟีเจอร์การตัดไปในแอป
examples/shell
ด้วย - สคริปต์ที่ยึดมั่นในหลักการของการกําหนดค่าตามปกติเพื่อสรุปงานทั่วไปหลายอย่างที่จําเป็นต่อการพัฒนาอุปกรณ์ที่เปิดใช้ Matter
ไปที่โฟลเดอร์ตัวอย่างของ Chef แล้วสร้าง Matter รายการแรก
$ cd examples/chef $ ./chef.py -zbr -d rootnode_dimmablelight_bCwGYSDpoe -t linux
เชฟมีตัวเลือกบางอย่างที่มองเห็นโดยเรียกใช้ 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 ของคุณส่งผลต่อโมเดลข้อมูลที่สําคัญ ปัจจุบันตัวควบคุมอุปกรณ์เสมือนรองรับอุปกรณ์แบบหรี่ไฟได้
ติดตั้งตัวควบคุมอุปกรณ์เสมือน
ตัวควบคุมอุปกรณ์เสมือนติดตั้งไว้ล่วงหน้าบนคอนเทนเนอร์ Ubuntu LTS 20.04
เรียกใช้ตัวควบคุมอุปกรณ์เสมือน
สร้างอินสแตนซ์เซสชันเทอร์มินัลที่ 2 ดังนี้
user@host> docker exec -it matter-container /bin/bash $
เริ่มตัวควบคุมอุปกรณ์เสมือนโดยระบุเต้ารับเครือข่ายที่จะใช้สื่อสารกับอุปกรณ์เสมือน ดังนี้
$ cd ~/matter-virtual-device-gui/ $ electron main.js --s=localhost:33000 --no-sandbox
หากคุณเริ่มตัวควบคุมโดยไม่ระบุอาร์กิวเมนต์ ค่าเริ่มต้นจะเป็นตัวเลือกซ็อกเก็ตเครือข่ายโดยใช้พอร์ต localhost 33000 เมื่อตัวควบคุมเชื่อมต่อกับอุปกรณ์เสมือนได้ หน้าจอจะแสดงสถานะอุปกรณ์ดังต่อไปนี้
แอปจะส่งคําขอไปยังเซิร์ฟเวอร์ RPC ของอุปกรณ์เมื่อคุณทําการเปลี่ยนแปลงในแอปตัวควบคุมเสมือน และให้แบบสํารวจเซิร์ฟเวอร์ RPC 1 ครั้งต่อวินาทีเพื่อเรียกสถานะ
นอกจากนี้ คุณยังใช้แอปตัวควบคุมอุปกรณ์เสมือนเพื่อเรียกคิวอาร์โค้ดซึ่งเป็นส่วนหนึ่งของขั้นตอนการตั้งค่าอุปกรณ์ได้ คลิกไอคอนคิวอาร์โค้ดข้างรูปภาพอุปกรณ์เพื่อแสดงคิวอาร์โค้ดสําหรับอุปกรณ์นี้
คุณใช้คิวอาร์โค้ดนี้เพื่อตั้งค่าอุปกรณ์ได้
6. ค่าคอมมิชชันอุปกรณ์
หมายเหตุ: ขั้นตอนนี้จะสําเร็จก็ต่อเมื่อคุณตั้งค่าโปรเจ็กต์ใน Google Play Console แล้วเท่านั้น
Nest Hub
ต้องมีฮับเพื่อตั้งค่าอุปกรณ์บนผ้า Matter อุปกรณ์นี้เป็นอุปกรณ์ Google Nest เช่น Nest Hub (รุ่นที่ 2) ที่รองรับ Matter ซึ่งจะทําหน้าที่เป็นทั้ง Border Router สําหรับอุปกรณ์ที่เปิดใช้ชุดข้อความ และเป็นเส้นทางการตอบสนองในเครื่องสําหรับการกําหนดเส้นทาง Intent ของ Smart Home
ดูรายการนี้เพื่อดูว่าฮับใดรองรับ Matter ก็ได้
ก่อนเริ่มขั้นตอนการว่าจ้าง ให้ตรวจสอบดังนี้
- ฮับของคุณจับคู่กับบัญชี Google เดียวกันกับที่คุณใช้ในการลงชื่อเข้าใช้บน Google Home Console
- ฮับของคุณอยู่ในเครือข่าย Wi-Fi เดียวกันกับคอมพิวเตอร์ที่คุณใช้เรียกใช้อุปกรณ์ Virtual Matter
- ฮับอยู่ในโครงสร้างเดียวกันกับที่คุณใช้ในแอป Google Home ("บ้าน" ในกราฟ Google Home แสดงโครงสร้างของคุณ)
รับคิวอาร์โค้ด
กระบวนการว่าจ้างต้องใช้ข้อมูลการเริ่มต้นใช้งานของ Matter ผ่านคิวอาร์โค้ด คุณรับคิวอาร์โค้ดสําหรับอุปกรณ์เสมือนได้จากตัวควบคุมอุปกรณ์เสมือน
ดําเนินการค่าคอมมิชชัน
- เปิดแอป Google Home
- แตะเครื่องหมาย + ที่มุมซ้ายบน
- แตะตั้งค่าอุปกรณ์
- แตะอุปกรณ์ใหม่
- เลือกบ้านแล้วแตะถัดไป
- แอป Google Home จะสแกนหาอุปกรณ์ของคุณ หากได้รับข้อความ "พบอุปกรณ์ Matter..." ให้แตะ "ใช่" หรือแตะตั้งค่าอุปกรณ์อื่น แล้วเลือกอุปกรณ์จากรายการอุปกรณ์
- เล็งกล้องไปที่คิวอาร์โค้ดของอุปกรณ์หรือคิวอาร์โค้ดที่เว็บไซต์สร้างขึ้น
- ทําตามขั้นตอนการจับคู่ตามที่ระบุไว้ในขั้นตอนของแอป Google Home
เมื่อทําตามขั้นตอนเหล่านี้แล้ว อุปกรณ์เสมือน Matter ควรทําค่าคอมมิชชันเรียบร้อยแล้ว และควรแสดงเป็นไอคอนใหม่ในแอป Google Home
การแก้ปัญหา
ค่าคอมมิชชันไม่สําเร็จโดยมีข้อความแสดงข้อผิดพลาด "ปัญหาการเชื่อมต่อ" หรือ "ติดต่อ Google ไม่ได้"
- ตรวจสอบว่าคุณได้สร้างโปรเจ็กต์ที่มีชุดค่าผสม VID/PID ที่ถูกต้อง ในคอนโซล Google Home และไม่มีโปรเจ็กต์อื่นๆ ที่ใช้ชุดค่าผสม VID/PID เดียวกัน
ค่าคอมมิชชันไม่สําเร็จหลังจาก "สแกนอุปกรณ์" เป็นเวลานาน
- ตรวจสอบว่าไฟร์วอลล์ของคอมพิวเตอร์ปิดอยู่ และคุณกําลังใช้อุปกรณ์เสมือน
- ยกเลิกการเชื่อมต่ออินเทอร์เฟซเครือข่าย (Ethernet){/1} เพื่อให้แน่ใจว่าคอมพิวเตอร์ที่ใช้ Wi-Fi โดยเฉพาะ
7. ควบคุมอุปกรณ์
เมื่ออุปกรณ์ค่าคอมมิชชัน Matter ทํางานสําเร็จและปรากฏในแอป Google Home เป็นหลอดไฟ คุณอาจทดสอบการควบคุมอุปกรณ์ได้ด้วยวิธีต่อไปนี้
- การใช้ Google Assistant
- ใช้แอป Google Home
- การใช้ UI ของอุปกรณ์เสมือน
Google Assistant
ใช้ Google Assistant ในโทรศัพท์หรือฮับเพื่อสลับสถานะอุปกรณ์จากคําสั่งเสียง เช่น พูดว่า "Ok Google สลับไฟของฉัน"
ดูตัวอย่างคําสั่งเพิ่มเติมได้ในส่วนควบคุมอุปกรณ์ในบ้านอัจฉริยะด้วยคําสั่งเสียงในควบคุมอุปกรณ์ในบ้านอัจฉริยะที่เพิ่มลงในแอป Google Home
แอป Google Home
แตะป้ายกํากับเปิดและปิดข้างไอคอนหลอดไฟที่แสดงในแอป Google Home
โปรดดูข้อมูลเพิ่มเติมในส่วนควบคุมอุปกรณ์ด้วยแอป Google Home ของควบคุมอุปกรณ์ในบ้านอัจฉริยะที่เพิ่มลงในแอป Google Home
GUI อุปกรณ์เสมือน
คุณจะโต้ตอบกับ GUI ของอุปกรณ์เสมือนเพื่อเปลี่ยนสถานะของอุปกรณ์ได้ ไม่ว่าคุณจะควบคุมอุปกรณ์เสมือนด้วยตัวควบคุมอุปกรณ์เสมือน แอป Google Home ในโทรศัพท์ หรือกับฮับ อินเทอร์เฟซทั้งหมดเหล่านี้จะแสดงถึงสถานะปัจจุบันของอุปกรณ์เสมือน
8. ยินดีด้วย
คุณได้สร้างอุปกรณ์ Matter เครื่องแรกสําเร็จแล้ว ยอดเยี่ยม
ใน Codelab นี้ คุณได้เรียนรู้วิธีทําสิ่งต่อไปนี้
- ติดตั้งสภาพแวดล้อมการพัฒนา Matter โดยใช้อิมเมจ Dock ที่สร้างไว้ล่วงหน้า
- สร้างและเรียกใช้อุปกรณ์เสมือน Matter
- ค่าคอมมิชชันและควบคุมอุปกรณ์เสมือนจาก Google Home
หากต้องการดูข้อมูลเพิ่มเติมเกี่ยวกับ Matter ให้ดูข้อมูลอ้างอิงต่อไปนี้
- Merter Primer ใน Google Home Developer Center ซึ่งคุณจะได้เรียนรู้ข้อมูลเบื้องต้นเกี่ยวกับแนวคิดของ Matter
- ข้อมูลจําเพาะของ Matter, ไลบรารีอุปกรณ์ Matter และไลบรารีคลัสเตอร์แอปพลิเคชัน Matter เผยแพร่โดย Connectivity Standards Alliance
- ที่เก็บ GitHub ของ Matter