智慧住宅網路控制特徵結構定義

action.devices.traits.NetworkControl - 這項特徵屬於支援回報網路資料及執行網路特定作業的裝置。

裝置屬性

具有這項特徵的裝置可能會回報下列屬性,做為 SYNC 作業的一部分。如要進一步瞭解如何處理 SYNC 意圖,請參閱「意圖完成」。

屬性 類型 說明
supportsEnablingGuestNetwork 布林值

(預設值:false)

如果可以啟用訪客網路,請設為 true。

supportsDisablingGuestNetwork 布林值

(預設值:false)

如果可以停用訪客網路,請設為 true。

supportsGettingGuestNetworkPassword 布林值

(預設值:false)

如果可透過 GetGuestNetworkPassword 指令取得訪客網路密碼,請設為 true。

networkProfiles 陣列

指出支援的網路設定檔名稱。

[item, ...] String

代表相關裝置群組的網路設定檔名稱。

supportsEnablingNetworkProfile 布林值

(預設值:"false")

如果可以啟用網路設定檔,請設為 true。

supportsDisablingNetworkProfile 布林值

(預設值:"false")

如果可以停用網路設定檔,請設為 true。

supportsNetworkDownloadSpeedTest 布林值

(預設值:false)

如果可以執行下載速度測試,請設為 true。

supportsNetworkUploadSpeedTest 布林值

(預設值:false)

如果可以執行上傳速度測試,請設為 true。

範例

支援訪客網路、設定檔和速度測試的網路裝置。

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

裝置狀態

具有這項特徵的實體可能會回報下列狀態,做為 QUERY 作業的一部分。如要進一步瞭解如何處理 QUERY 意圖,請參閱「意圖完成」。

州 類型 說明
networkEnabled 布林值

主要網路是否已啟用。

networkSettings 物件

包含主要網路的 SSID。

ssid String

必要。

網路 SSID。

guestNetworkEnabled 布林值

訪客網路是否已啟用。

guestNetworkSettings 物件

包含訪客網路的 SSID。

ssid String

必要。

網路 SSID。

numConnectedDevices 整數

連線到網路的裝置數量。

networkUsageMB Number

以 MB (百萬位元組) 為單位的網路用量。網路用量是目前帳單週期的用量,有助於監控帳單週期的網路用量上限。

networkUsageLimitMB Number

網路用量限制 (以 MB 為單位)。網路用量上限是目前的帳單週期。

networkUsageUnlimited 布林值

網路用量是否無上限。如果設為 True,系統會忽略裝置狀態 networkUsageLimitMB。

lastNetworkDownloadSpeedTest 物件

包含最近一次網路下載速度測試的結果。

downloadSpeedMbps Number

上次網路速度測試的下載速度,單位為 Mbps (百萬位元/秒)。

unixTimestampSec 整數

上次執行網路下載速度測試的 Unix 時間戳記 (自 Unix 紀元起算的秒數)。

status String

指出上次網路下載速度測試是否成功。

支援的值:

SUCCESS
FAILURE
lastNetworkUploadSpeedTest 物件

包含最近一次網路上傳速度測試的結果。

uploadSpeedMbps Number

上次網路速度測試的上傳速度 (Mbps)。

unixTimestampSec 整數

上次執行網路上傳速度測試的 Unix 時間戳記 (自 Unix 紀元起算的秒數)。

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
    }
  }
}

裝置指令

具有這項特徵的裝置可能會在 EXECUTE 作業中回應下列指令。如要進一步瞭解如何處理 EXECUTE 意圖,請參閱「意圖完成」。

action.devices.commands.EnableDisableGuestNetwork

啟用或停用訪客網路。必須使用 PIN 碼進行雙重使用者驗證。如果透過這些指令停用其他安全裝置,使用者的居家安全可能會受到影響。

這項指令需要下列屬性:
{
  "supportsEnablingGuestNetwork": true,
  "supportsDisablingGuestNetwork": true
}

參數

參數 類型 說明
enable 布林值

必要。

設為 True 可啟用訪客網路,設為 False 則可停用訪客網路。

範例

開啟訪客網路。

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

action.devices.commands.EnableDisableNetworkProfile

啟用或停用網路設定檔。必須使用雙重使用者驗證搭配 PIN 碼。如果透過這些指令停用其他安全裝置,使用者的住家安全可能會受到影響。

這項指令需要下列屬性:
{
  "supportsEnablingNetworkProfile": true,
  "supportsDisablingNetworkProfile": true
}

參數

參數 類型 說明
profile String

必要。

networkProfiles 屬性的設定檔名稱。

enable 布林值

必要。

如要啟用設定檔,請設為 True;如要停用設定檔,請設為 False。

範例

為孩子關閉網際網路。

{
  "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