智慧型住宅 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