智慧型住宅輪替特徵結構定義

action.devices.traits.Rotation - 支援旋轉的裝置具備這項特徵。

旋轉角度可以百分比或角度指定,如果裝置支援以角度旋轉,預設旋轉方向為順時針。

裝置屬性

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

屬性 類型 說明
supportsDegrees 布林值

必要。

如果裝置允許依角度旋轉,請設為 true。

supportsPercent 布林值

必要。

如果裝置允許依百分比旋轉,則設為 true

rotationDegreesRange 物件

代表裝置可旋轉的角度範圍 (以度為單位)。

rotationDegreesMin Number

必要。

旋轉角度下限 (以度為單位)。

值必須介於 0 至 360 之間

rotationDegreesMax Number

必要。

旋轉角度上限。

值必須介於 0 至 360 之間

supportsContinuousRotation 布林值

(預設值:false)

如果裝置允許連續旋轉,請設為 true。如果提供相對查詢,RotateAbsolute 指令會包裝支援的旋轉範圍。

commandOnlyRotation 布林值

(預設值:false)

指出裝置是否支援單向 (true) 或雙向 (false) 通訊。如果裝置無法回應這項特徵的 QUERY 意圖或回報狀態,請將這個屬性設為 true。

範例

支援以百分比和角度旋轉的裝置。

{
  "supportsDegrees": true,
  "supportsPercent": true,
  "rotationDegreesRange": {
    "rotationDegreesMin": 0,
    "rotationDegreesMax": 180
  }
}

僅支援以角度旋轉的裝置。

{
  "supportsDegrees": true,
  "supportsPercent": false,
  "rotationDegreesRange": {
    "rotationDegreesMin": 0,
    "rotationDegreesMax": 90
  }
}

僅支援連續旋轉指令的裝置。

{
  "supportsDegrees": true,
  "supportsPercent": true,
  "rotationDegreesRange": {
    "rotationDegreesMin": 0,
    "rotationDegreesMax": 360
  },
  "supportsContinuousRotation": true,
  "commandOnlyRotation": true
}

裝置狀態

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

州 類型 說明
rotationDegrees Number

rotationDegreesRange 中的目前層級,表示裝置旋轉的角度。這個值一律應與順時針旋轉角度相關。

rotationPercent Number

目前層級,表示裝置目前的旋轉百分比。0.0 對應關閉,100.0 對應開啟。

值必須介於 0 至 100 之間

targetRotationPercent Number

這個層級表示裝置將旋轉或正在旋轉的百分比,這是因為旋轉角度正在變更。

值必須介於 0 至 100 之間

範例

裝置旋轉了多少?(百分比和角度)。

{
  "rotationDegrees": 45,
  "rotationPercent": 25
}

裝置旋轉角度 (僅限角度)。

{
  "rotationDegrees": 45
}

裝置的旋轉角度 (連續)。

{
  "rotationDegrees": 270,
  "rotationPercent": 75
}

目前正在旋轉至新位置的裝置 (百分比)。

{
  "rotationPercent": 75,
  "targetRotationPercent": 100
}

裝置指令

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

action.devices.commands.RotateAbsolute

設定裝置的絕對旋轉角度。

參數

酬載包含下列其中一項:

設定絕對旋轉角度 (以度為單位)。

參數 類型 說明
rotationDegrees Number

必要。

以角度為單位的絕對值,指定裝置的最終順時針旋轉角度。值必須在 rotationDegreesRange 屬性內。

以百分比設定絕對旋轉角度。

參數 類型 說明
rotationPercent Number

必要。

絕對值 (以百分比表示),用於指定裝置的最終旋轉角度。

值必須介於 0 至 100 之間

範例

將裝置傾斜 50%。

{
  "command": "action.devices.commands.RotateAbsolute",
  "params": {
    "rotationPercent": 50
  }
}

將裝置逆時針旋轉 15 度 (rotationDegrees: 45)。

{
  "command": "action.devices.commands.RotateAbsolute",
  "params": {
    "rotationDegrees": 30
  }
}

將裝置順時針旋轉 100 度 (supportsContinuousRotation: true、rotationDegrees: 270)。

{
  "command": "action.devices.commands.RotateAbsolute",
  "params": {
    "rotationDegrees": 10
  }
}

設定裝置旋轉角度時發生錯誤。

支援的值:

deviceJammingDetected

裝置錯誤

請參閱「錯誤和例外狀況」的完整清單。