สคีมารูปแบบการควบคุมเครือข่ายสมาร์ทโฮม

action.devices.traits.NetworkControl - ลักษณะนี้เป็นของอุปกรณ์ที่รองรับการรายงานข้อมูลเครือข่ายและดำเนินการเฉพาะเครือข่าย

ATTRIBUTES ของอุปกรณ์

อุปกรณ์ที่มีลักษณะเช่นนี้อาจรายงานแอตทริบิวต์ต่อไปนี้ซึ่งเป็นส่วนหนึ่งของการดำเนินการ SYNC ดูข้อมูลเพิ่มเติมเกี่ยวกับการจัดการ Intent SYNC ได้ที่Fulfillment Intent

Attributes ประเภท คำอธิบาย
supportsEnablingGuestNetwork บูลีน

(ค่าเริ่มต้น: false)

ตั้งค่าเป็น "จริง" หากเปิดใช้เครือข่ายสำหรับผู้มาเยือนได้

supportsDisablingGuestNetwork บูลีน

(ค่าเริ่มต้น: false)

ตั้งค่าเป็น "จริง" หากปิดใช้เครือข่ายสำหรับผู้มาเยือนได้

supportsGettingGuestNetworkPassword บูลีน

(ค่าเริ่มต้น: false)

ตั้งค่าเป็น "จริง" หากรับรหัสผ่านของเครือข่ายสำหรับผู้มาเยือนได้ผ่านคำสั่ง GetGuestNetworkPassword

networkProfiles อาร์เรย์

ระบุชื่อโปรไฟล์เครือข่ายที่รองรับ

[item, ...] String

ชื่อโปรไฟล์เครือข่ายที่แสดงถึงกลุ่มอุปกรณ์ที่เกี่ยวข้อง

supportsEnablingNetworkProfile บูลีน

(ค่าเริ่มต้น: "false")

ตั้งค่าเป็น "จริง" หากเปิดใช้โปรไฟล์เครือข่ายได้

supportsDisablingNetworkProfile บูลีน

(ค่าเริ่มต้น: "false")

ตั้งค่าเป็น "จริง" หากปิดใช้โปรไฟล์เครือข่ายได้

supportsNetworkDownloadSpeedTest บูลีน

(ค่าเริ่มต้น: false)

ตั้งค่าเป็น "จริง" หากทดสอบความเร็วในการดาวน์โหลดได้

supportsNetworkUploadSpeedTest บูลีน

(ค่าเริ่มต้น: false)

ตั้งค่าเป็น "จริง" หากเรียกใช้การทดสอบความเร็วในการอัปโหลดได้

ตัวอย่าง

อุปกรณ์เครือข่ายที่รองรับเครือข่ายสำหรับผู้มาเยือน โปรไฟล์ และการทดสอบความเร็ว

{
  "supportsEnablingGuestNetwork": true,
  "supportsDisablingGuestNetwork": true,
  "supportsEnablingNetworkProfile": true,
  "supportsDisablingNetworkProfile": true,
  "supportsNetworkDownloadSpeedTest": true,
  "supportsNetworkUploadSpeedTest": true,
  "supportsGettingGuestNetworkPassword": true,
  "networkProfiles": [
    "Kids"
  ]
}

สถานะอุปกรณ์

เอนทิตีที่มีลักษณะนี้อาจรายงานสถานะต่อไปนี้ซึ่งเป็นส่วนหนึ่งของการดำเนินการ QUERY ดูข้อมูลเพิ่มเติมเกี่ยวกับการจัดการ Intent QUERY ได้ที่Fulfillment Intent

รัฐ ประเภท คำอธิบาย
networkEnabled บูลีน

เปิดใช้เครือข่ายหลักอยู่หรือไม่

networkSettings ออบเจ็กต์

มี SSID ของเครือข่ายหลัก

ssid String

ต้องระบุ

SSID ของเครือข่าย

guestNetworkEnabled บูลีน

เปิดใช้งานเครือข่ายสำหรับผู้มาเยือนอยู่หรือไม่

guestNetworkSettings ออบเจ็กต์

มี SSID ของเครือข่ายสำหรับผู้มาเยือน

ssid String

ต้องระบุ

SSID ของเครือข่าย

numConnectedDevices จำนวนเต็ม

จำนวนอุปกรณ์ที่เชื่อมต่อกับเครือข่าย

networkUsageMB Number

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

networkUsageLimitMB Number

ขีดจำกัดการใช้งานเครือข่ายในหน่วย MB (เมกะไบต์) ขีดจำกัดการใช้งานเครือข่ายอยู่ภายในระยะเวลาที่เรียกเก็บเงินปัจจุบัน

networkUsageUnlimited บูลีน

ใช้งานเครือข่ายได้ไม่จำกัดหรือไม่ ระบบจะไม่สนใจสถานะอุปกรณ์ networkUsageLimitMB หากตั้งค่าเป็น "จริง"

lastNetworkDownloadSpeedTest ออบเจ็กต์

มีผลการทดสอบความเร็วในการดาวน์โหลดของเครือข่ายล่าสุด

downloadSpeedMbps Number

ความเร็วในการดาวน์โหลดเป็น Mbps (เมกะบิตต่อวินาที) ของการทดสอบความเร็วเครือข่ายครั้งล่าสุด

unixTimestampSec จำนวนเต็ม

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

status String

บ่งบอกว่าการทดสอบความเร็วในการดาวน์โหลดของเครือข่ายครั้งล่าสุดสำเร็จหรือล้มเหลว

ค่าที่รองรับ

SUCCESS
FAILURE
lastNetworkUploadSpeedTest ออบเจ็กต์

มีผลการทดสอบความเร็วในการอัปโหลดของเครือข่ายล่าสุด

uploadSpeedMbps Number

ความเร็วในการอัปโหลดเป็น Mbps (เมกะบิตต่อวินาที) ของการทดสอบความเร็วเครือข่ายครั้งล่าสุด

unixTimestampSec จำนวนเต็ม

การประทับเวลา Unix (จำนวนวินาทีนับตั้งแต่ Unix Epoch) ของเวลาที่ทดสอบความเร็วในการอัปโหลดเครือข่ายครั้งล่าสุด

status String

บ่งบอกว่าการทดสอบความเร็วในการอัปโหลดของเครือข่ายครั้งล่าสุดสำเร็จหรือล้มเหลว

ค่าที่รองรับ

SUCCESS
FAILURE
networkSpeedTestInProgress บูลีน

(ค่าเริ่มต้น: false)

มีการทดสอบความเร็วอยู่หรือไม่

networkProfilesState ออบเจ็กต์

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

<string> ออบเจ็กต์

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

enabled บูลีน

สถานะปัจจุบันที่เปิดใช้/ปิดใช้ของโปรไฟล์เครือข่าย

ตัวอย่าง

อุปกรณ์ที่มีเครือข่ายที่ใช้งานอยู่

{
  "networkEnabled": true,
  "networkSettings": {
    "ssid": "home-network-123"
  },
  "guestNetworkSettings": {
    "ssid": "home-network-123-guest"
  },
  "numConnectedDevices": 4,
  "networkUsageMB": 100.8
}

อุปกรณ์ที่มีเครือข่ายที่ใช้งานอยู่และผลการทดสอบความเร็ว

{
  "networkEnabled": true,
  "networkSettings": {
    "ssid": "home-network-123"
  },
  "guestNetworkSettings": {
    "ssid": "home-network-123-guest"
  },
  "numConnectedDevices": 4,
  "networkUsageMB": 100.8,
  "lastNetworkDownloadSpeedTest": {
    "downloadSpeedMbps": 159.8,
    "unixTimestampSec": 1563215576,
    "status": "SUCCESS"
  },
  "lastNetworkUploadSpeedTest": {
    "uploadSpeedMbps": 64.1,
    "unixTimestampSec": 1563215576,
    "status": "SUCCESS"
  }
}

อุปกรณ์ที่มีเครือข่ายซึ่งทำงานอยู่และกำลังทดสอบความเร็ว

{
  "networkEnabled": true,
  "networkSettings": {
    "ssid": "home-network-123"
  },
  "guestNetworkSettings": {
    "ssid": "home-network-123-guest"
  },
  "numConnectedDevices": 4,
  "networkUsageMB": 100.8,
  "networkSpeedTestInProgress": true
}

อุปกรณ์ที่ปิดใช้โปรไฟล์เครือข่าย "เด็ก" อยู่

{
  "networkEnabled": true,
  "networkSettings": {
    "ssid": "home-network-123"
  },
  "networkProfilesState": {
    "parents": {
      "enabled": true
    },
    "kids": {
      "enabled": false
    }
  }
}

COMMANDS ของอุปกรณ์

อุปกรณ์ที่มีลักษณะเช่นนี้อาจตอบสนองต่อคำสั่งต่อไปนี้โดยเป็นส่วนหนึ่งของการดำเนินการ EXECUTE ดูข้อมูลเพิ่มเติมเกี่ยวกับการจัดการ Intent EXECUTE ได้ที่Fulfillment Intent

action.devices.commands.EnableDisableGuestNetwork

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

คำสั่งนี้ต้องใช้แอตทริบิวต์ต่อไปนี้
{
  "supportsEnablingGuestNetwork": true,
  "supportsDisablingGuestNetwork": true
}

พารามิเตอร์

พารามิเตอร์ ประเภท คำอธิบาย
enable บูลีน

ต้องระบุ

"จริง" เพื่อเปิดใช้เครือข่ายสำหรับผู้มาเยือน ตั้งค่า "เท็จ" เพื่อปิดใช้เครือข่ายสำหรับผู้มาเยือน

ตัวอย่าง

เปิดเครือข่ายสำหรับผู้มาเยือน

{
  "command": "action.devices.commands.EnableDisableGuestNetwork",
  "params": {
    "enable": true
  }
}

action.devices.commands.EnableDisableNetworkProfile

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

คำสั่งนี้ต้องใช้แอตทริบิวต์ต่อไปนี้
{
  "supportsEnablingNetworkProfile": true,
  "supportsDisablingNetworkProfile": true
}

พารามิเตอร์

พารามิเตอร์ ประเภท คำอธิบาย
profile String

ต้องระบุ

ชื่อโปรไฟล์จากแอตทริบิวต์ networkProfiles

enable บูลีน

ต้องระบุ

"จริง" หากต้องการเปิดใช้โปรไฟล์ "เท็จ" หากต้องการปิดใช้โปรไฟล์

ตัวอย่าง

ปิดอินเทอร์เน็ตให้บุตรหลาน

{
  "command": "action.devices.commands.EnableDisableNetworkProfile",
  "params": {
    "profile": "Kids",
    "enable": false
  }
}

เกิดข้อผิดพลาดขณะพยายามควบคุมโปรไฟล์เครือข่ายที่ระบุ

ค่าที่รองรับ

networkProfileNotRecognized

action.devices.commands.GetGuestNetworkPassword

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

คำสั่งนี้ต้องใช้แอตทริบิวต์ต่อไปนี้
{
  "supportsGettingGuestNetworkPassword": true
}

พารามิเตอร์

พารามิเตอร์ ประเภท คำอธิบาย

ไม่มีพร็อพเพอร์ตี้

ตัวอย่าง

แสดงรหัสผ่าน Wi-Fi สำหรับผู้มาเยือนของฉัน

{
  "command": "action.devices.commands.GetGuestNetworkPassword",
  "params": {}
}

ผลลัพธ์

ผลลัพธ์ ประเภท คำอธิบาย
guestNetworkPassword String

ต้องระบุ

รหัสผ่านสำหรับเครือข่ายสำหรับผู้มาเยือน

ตัวอย่าง

แสดงรหัสผ่าน Wi-Fi สำหรับผู้มาเยือนของฉัน

{
  "guestNetworkPassword": "123456"
}

action.devices.commands.TestNetworkSpeed

ทดสอบความเร็วในการดาวน์โหลดและอัปโหลดของเครือข่าย

คำสั่งนี้ต้องใช้แอตทริบิวต์ต่อไปนี้
{
  "supportsNetworkDownloadSpeedTest": true,
  "supportsNetworkUploadSpeedTest": true
}

พารามิเตอร์

พารามิเตอร์ ประเภท คำอธิบาย
testDownloadSpeed บูลีน

ต้องระบุ

ระบุว่าควรทดสอบความเร็วในการดาวน์โหลดหรือไม่

testUploadSpeed บูลีน

ต้องระบุ

ระบุว่าควรทดสอบความเร็วในการอัปโหลดหรือไม่

followUpToken String

ต้องระบุ

โทเค็นที่ Google มีให้สำหรับการตอบสนองเพื่อติดตามผล

ตัวอย่าง

ความเร็ว Wi-Fi คือเท่าไร

{
  "command": "action.devices.commands.TestNetworkSpeed",
  "params": {
    "testDownloadSpeed": true,
    "testUploadSpeed": true,
    "followUpToken": "123"
  }
}

เกิดข้อผิดพลาดขณะพยายามขอทดสอบความเร็ว

ค่าที่รองรับ

networkSpeedTestInProgress

การตอบกลับเพื่อติดตามผล

อุปกรณ์ที่มีลักษณะเช่นนี้อาจส่งคืนเพย์โหลดการตอบสนองติดตามผลต่อไปนี้เป็นส่วนหนึ่งของการดำเนินการ EXECUTE ดูข้อมูลเพิ่มเติมเกี่ยวกับการใช้คําตอบติดตามผลได้ที่การแจ้งเตือนสําหรับการดําเนินการในสมาร์ทโฮม

เพย์โหลดมีข้อมูลอย่างใดอย่างหนึ่งต่อไปนี้

สำเร็จ: networkDownloadSpeedMbps

ช่อง ประเภท คำอธิบาย
followUpToken String

ต้องระบุ

โทเค็นที่ให้ไว้ในคำขอ EXECUTE เดิม

status String

ต้องระบุ

ผลลัพธ์ของคำขอ

ค่าที่รองรับ

SUCCESS
networkDownloadSpeedMbps Number

ต้องระบุ

ความเร็วในการดาวน์โหลดของเครือข่ายวัดเป็นเมกะบิตต่อวินาที

สำเร็จ: networkUploadSpeedMbps

ช่อง ประเภท คำอธิบาย
followUpToken String

ต้องระบุ

โทเค็นที่ให้ไว้ในคำขอ EXECUTE เดิม

status String

ต้องระบุ

ผลลัพธ์ของคำขอ

ค่าที่รองรับ

SUCCESS
networkUploadSpeedMbps Number

ต้องระบุ

ความเร็วในการอัปโหลดของเครือข่ายวัดเป็นเมกะบิตต่อวินาที

สำเร็จ: networkDownloadSpeedMbps และ networkUploadSpeedMbps

ช่อง ประเภท คำอธิบาย
followUpToken String

ต้องระบุ

โทเค็นที่ให้ไว้ในคำขอ EXECUTE เดิม

status String

ต้องระบุ

ผลลัพธ์ของคำขอ

ค่าที่รองรับ

SUCCESS
networkDownloadSpeedMbps Number

ต้องระบุ

ความเร็วในการดาวน์โหลดของเครือข่ายวัดเป็นเมกะบิตต่อวินาที

networkUploadSpeedMbps Number

ต้องระบุ

ความเร็วในการอัปโหลดของเครือข่ายวัดเป็นเมกะบิตต่อวินาที

ล้มเหลว

ช่อง ประเภท คำอธิบาย
followUpToken String

ต้องระบุ

โทเค็นที่ให้ไว้ในคำขอ EXECUTE เดิม

status String

ต้องระบุ

ผลลัพธ์ของคำขอ

ค่าที่รองรับ

FAILURE
errorCode String

ต้องระบุ

ค่าอาจเป็นรหัสข้อผิดพลาดสำหรับลักษณะนี้ เช่น transientError

ตัวอย่าง

ความเร็ว Wi-Fi คือเท่าไหร่ (การตอบกลับเพื่อติดตามผล)

{
  "NetworkControl": {
    "priority": 0,
    "followUpResponse": {
      "status": "SUCCESS",
      "networkDownloadSpeedMbps": 23.3,
      "networkUploadSpeedMbps": 10.2,
      "followUpToken": "1234"
    }
  }
}

ความเร็ว Wi-Fi คือเท่าไหร่ (การตอบกลับติดตามผลพร้อมความล้มเหลว)

{
  "NetworkControl": {
    "priority": 0,
    "followUpResponse": {
      "status": "FAILURE",
      "errorCode": "transientError",
      "followUpToken": "1234"
    }
  }
}

ข้อผิดพลาดเกี่ยวกับอุปกรณ์

ดูรายการข้อผิดพลาดและข้อยกเว้นทั้งหมด

เกิดข้อผิดพลาดขณะพยายามควบคุมโปรไฟล์เครือข่ายที่ระบุ

ค่าที่รองรับ

networkProfileNotRecognized

เกิดข้อผิดพลาดขณะพยายามขอทดสอบความเร็ว

ค่าที่รองรับ

networkSpeedTestInProgress