智能家居旋转特征架构

action.devices.traits.Rotation - 此特征属于支持旋转的设备。

旋转可以百分比或度数来指定,如果设备支持按度数旋转,则默认旋转方向为顺时针。

设备属性

具有此特征的设备可能会在 SYNC 操作中报告以下属性。如需详细了解如何处理 SYNC intent,请参阅 Intent 实现

属性 类型 说明
supportsDegrees 布尔值

必填。

如果设备允许按度数旋转,则设置为 true。

supportsPercent 布尔值

必填。

如果设备允许按百分比旋转,则设置为 true

rotationDegreesRange 对象

表示设备可以旋转的角度范围(以度为单位)。

rotationDegreesMin 编号

必填。

最小旋转角度(以度为单位)。

值必须介于 0360 之间。

rotationDegreesMax 编号

必填。

最大旋转角度(以度为单位)。

值必须介于 0360 之间。

supportsContinuousRotation 布尔值

(默认值:false

如果设备允许连续旋转,则设置为 true。如果给定相对查询,RotateAbsolute 命令将环绕支持的旋转范围。

commandOnlyRotation 布尔值

(默认值:false

指示设备是否支持单向 (true) 或双向 (false) 通信。如果设备无法响应此特征的 QUERY intent 或报告状态,请将此属性设置为 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 intent,请参阅intent 执行

类型 说明
rotationDegrees 编号

rotationDegreesRange 中的当前级别,用于指示设备的旋转角度。此值应始终相对于顺时针旋转。

rotationPercent 编号

表示设备当前旋转百分比的当前级别。0.0 表示关闭,100.0 表示打开。

值必须介于 0100 之间。

targetRotationPercent 编号

表示设备因旋转持续变化而将要或正在达到的旋转百分比的级别。

值必须介于 0100 之间。

示例

设备旋转了多少?(百分比和度数)。

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

设备旋转了多少度?(仅限度数)。

{
  "rotationDegrees": 45
}

设备旋转了多少度?(连续)。

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

设备当前旋转到新位置的百分比。

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

设备命令

具有此特征的设备可能会响应以下命令,作为 EXECUTE 操作的一部分。如需详细了解如何处理 EXECUTE intent,请参阅 Intent 实现

action.devices.commands.RotateAbsolute

设置设备的绝对旋转。

参数

相应载荷包含以下内容之一:

设置绝对旋转角度(以度为单位)。

参数 类型 说明
rotationDegrees 编号

必填。

一个绝对值(以度为单位),用于指定设备的最终顺时针旋转角度。该值必须在 rotationDegreesRange 属性的范围内。

以百分比形式设置绝对旋转。

参数 类型 说明
rotationPercent 编号

必填。

一个绝对值(以百分比表示),用于指定设备的最终旋转角度。

值必须介于 0100 之间。

示例

将设备倾斜至 50%。

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

将设备逆时针旋转 15 度 (rotationDegrees: 45)。

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

将设备顺时针旋转 100 度(supportsContinuousRotation: truerotationDegrees: 270)。

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

设置设备旋转时出错。

支持的值:

deviceJammingDetected

设备错误

查看错误和异常的完整列表。