智慧型住宅 NetworkControl 特徵結構定義
action.devices.traits.NetworkControl:這個特徵屬於支援回報網路資料和執行網路特定作業的裝置。
裝置屬性
具備此特徵的裝置可能會在 SYNC 作業中回報下列屬性。如要進一步瞭解如何處理 SYNC 意圖,請參閱「意圖執行要求」。
| 屬性 | 類型 | 說明 | 
|---|---|---|
| supportsEnablingGuestNetwork | 布林值 | (預設值: 如果可以啟用訪客網路,請設為 true。 | 
| supportsDisablingGuestNetwork | 布林值 | (預設值: 如果可以停用訪客網路,請將此值設為 true。 | 
| supportsGettingGuestNetworkPassword | 布林值 | (預設值: 如果可以透過  | 
| networkProfiles | 陣列 | 指出支援的網路設定檔名稱。 | 
| [item, ...] | String | 代表一組相關裝置的網路設定檔名稱。 | 
| supportsEnablingNetworkProfile | 布林值 | (預設值: 如果可以啟用網路設定檔,請將此值設為 true。 | 
| supportsDisablingNetworkProfile | 布林值 | (預設值: 如果可以停用網路設定檔,請設為 true。 | 
| supportsNetworkDownloadSpeedTest | 布林值 | (預設值: 如果可以執行下載速度測試,請設為 true。 | 
| supportsNetworkUploadSpeedTest | 布林值 | (預設值: 如果可以執行上傳速度測試,請設為 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 | 指出上次網路下載速度測試是否成功。 支援的值: 
 | 
| lastNetworkUploadSpeedTest | 物件 | 包含最近一次網路上傳速度測試的結果。 | 
| uploadSpeedMbps | Number | 上次網路速度測試的上傳速度 (以 Mbps 為單位)。 | 
| unixTimestampSec | 整數 | 上次執行網路上傳速度測試的 Unix 時間戳記 (自 Unix 紀元起算的秒數)。 | 
| status | String | 指出上次網路上傳速度測試是否成功。 支援的值: 
 | 
| networkSpeedTestInProgress | 布林值 | (預設值: 目前是否正在執行網路速度測試。 | 
| networkProfilesState | 物件 | 網路設定檔的狀態。這個頂層物件應包含鍵/值組合,其中鍵是  | 
| <string> | 物件 | 儲存個別網路設定檔狀態的物件。 | 
| 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
}已停用「kids」networkProfile 的裝置。
{
  "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 | 必填。 
 | 
| 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 | 必填。 原始執行要求中提供的權杖。 | 
| status | String | 必填。 要求的結果。 支援的值: 
 | 
| networkDownloadSpeedMbps | Number | 必填。 網路下載速度,以每秒百萬位元為單位。 | 
成功:networkUploadSpeedMbps
| 欄位 | 類型 | 說明 | 
|---|---|---|
| followUpToken | String | 必填。 原始執行要求中提供的權杖。 | 
| status | String | 必填。 要求的結果。 支援的值: 
 | 
| networkUploadSpeedMbps | Number | 必填。 網路上傳速度,以每秒百萬位元為單位。 | 
成功:networkDownloadSpeedMbps 和 networkUploadSpeedMbps
| 欄位 | 類型 | 說明 | 
|---|---|---|
| followUpToken | String | 必填。 原始執行要求中提供的權杖。 | 
| status | String | 必填。 要求的結果。 支援的值: 
 | 
| networkDownloadSpeedMbps | Number | 必填。 網路下載速度,以每秒百萬位元為單位。 | 
| networkUploadSpeedMbps | Number | 必填。 網路上傳速度,以每秒百萬位元為單位。 | 
失敗
| 欄位 | 類型 | 說明 | 
|---|---|---|
| followUpToken | String | 必填。 原始執行要求中提供的權杖。 | 
| status | String | 必填。 要求的結果。 支援的值: 
 | 
| errorCode | String | 必填。 這個值可以是此特徵的任何錯誤代碼,例如  | 
範例
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