1.1.1. 设备能力与状态
- 设备能力
actions
: 指的是智能设备具备的能力,比如智能灯泡具有开关、调颜色、调亮度的能力。 - 设备状态
state
: 指的是设备当前的状态,与定义的设备能力对应。 - 设备能力接受值与状态值详见 设备能力
Example:
actions:
{
"switch":["on","off"],
"color":["num"],
"brightness":["num"]
}
actions 数据定义参考: jsonschemalint 在线校验工具
state:
{
"switch": "on",
"color": 256,
"brightness": 10
}
state 数据定义参考: jsonschemalint 在线校验工具
设备能力 actions
- 开关 switch
- 颜色 color
- 亮度 brightness
- 模式 mode
- 风速 fanspeed
- 转向模式 swing_mode
- 音量 volume
- 频道 channel
- 湿度 humidity
- 温度 temperature
- 色温 color_temperature
- 媒体播放控制 media_control
- Ping ping
- 通用档位 level
开关 switch
- actions 接受值 [ "on", "off", "stop"]
- "on" : 开
- "off" : 关
- "stop" : 暂停,停止
Example:
{ "switch": ["on", "off"] }
- state 值
- {string}
- actions 定义设备能力对应的状态
- 可以为 null
Example:
{ "property": "switch", "name":"on" }
颜色 color
- actions 接受值 [ "random", "num" ]
- "random": 颜色随机RGB值
- "num": 指定颜色RGB值,例如蓝色RGB值为 0x00FF00
- 当设备同时支持调颜色和调亮度时,则亮度值将会整合在RGB中,因此RGB设备的调亮度能力不需要添加 brightness 的能力,只需添加 color 即可。如,RGB灯。
Example:
{ "color": ["num"] }
- state 值
- {number}
- RGB 十六进制数值
- 0x000000 - 0xFFFFFF
- 可以为 null
Example:
{ "property": "color", "name":"num", "value": 65280 }
亮度 brightness
- actions 接受值 [ "up", "down", "max", "min", "num" ]
- "up": 调亮
- "down": 调暗
- "max": 调到最亮
- "min": 调到最暗
- "num": 调到 0 到 100 之间指定数值,若设备亮度范围更大,则需要自行转换。
- 当设备支持RGB调颜色和调亮度时,不需要添加此能力。当设备不支持RGB调色,但支持调亮度时,则添加此能力。如,白光灯。
Example:
{ "brightness": ["up", "down", "num"] }
- state 值
- {number}
- 0 到 100 之间十进制数值
- 可以为 null
Example:
{ "property": "brightness", "name":"num", "value": 68 }
模式 mode
- actions 接受值 [ "auto", "manual", "cool", "heat", "dry", "fan", "silent", "energy", "sleep"]
- "auto": 自动模式
- "manual": 手动模式
- "cool": 制冷模式
- "heat": 制热模式
- "dry": 除湿模式
- "fan": 送风模式
- "silent": 静音模式
- "energy": 省电模式
- "sleep": 睡眠模式
Example:
自动模式
{ "property": "mode", "name":"auto" }
- state 值
- {string}
- actions 定义能力对应的一个状态
- 可以为 null
Example:
{ "property": "mode", "name":"auto"}
位置量 position 暂时不支持
- actions 接受值 [ "up","down","num" ]
- "up": 如:窗帘打开一点
- "down": 如:窗帘关闭一点
- "num": 如:窗帘打开/关闭到百分之几
Example:
{ "position": ["num"] }
- state 值
- {number}
- 0 到 100 之间十进制数值
- 如果不能明确获取到具体数值,可以为 null
Example:
{ "property": "position", "name":"num", "value": 10}
风速 fanspeed
- actions 接受值 [ "up", "down", "max", "min", "switch", "num" ]
- "up": 调高,调大
- "down": 调低,调小
- "max": 调到最高,调到最大
- "min": 调到最低, 调到最小
- "switch": 切换不同档位
- "num": 调到指定数值
Example:
{ "fanspeed": ["up", "down", "num"] }
- state 值
- {number}
- 0 到 100 之间十进制数值
- 如果不能明确获取到具体数值,可以为 null
Example:
{ "property": "fanspeed", "name":"num", "value": 10}
转向模式 swing_mode
- actions 接受值 [ "auto", "on", "off", "horizon", "horizon.off","vertical", "vertical.off" ]
- "auto": 自动模式
- "on": 打开转向模式
- "off": 关闭转向模式
- "horizon": 水平转向,左右转向
- "horizon.off": 关闭水平转向、关闭左右转向
- "vertical": 垂直转向、上下转向
- "vertical.off": 关闭垂直转向、上下转向
Example:
{ "swing_mode": ["auto", "horizon", "vertical"] }
- state 值
- {string}
- actions 定义的能力对应的一个状态
- 可以为 null
Example:
{ "swing_mode": "auto" }
{ "property": "position", "name":"num", "value": 10}
音量 volume
- actions 接受值 [ "up", "down", "max", "min", "num" ]
- "up": 调高,调大
- "down": 调低,调小
- "max": 调到最大
- "min": 调到最小
- "num": 调到指定数值
Example:
{ "volume": ["up", "down", "mun"] }
- state 值
- {number}
- 0 到 100 之间十进制数值
- 如果不能明确获取到具体数值,可以为 null
Example:
{ "property": "volume", "name":"num", "value": 100}
频道 channel
- actions 接受值 [ "next", "prev", "random", "num" ]
- "prev": 上一个频道
- "next": 下一个频道
- "random": 随机频道
- "num": 指定频道
- "channelName": 通过频道名调台
开发中
Example:
{ "property": "channel", "name":"num", "value": 10}
{ "property": "channel", "name":"channelName", "value": "CCTV-1"}
- state 值
- {number}
- 正整数
- 如果不能明确获取到具体数值,可以为 null
Example:
{ "property": "channel", "name":"num", "value": 34}
对应错误码:
湿度 humidity
- actions 接受值 [ "up", "down", "max", "min", "num" ]
- "up": 调高
- "down": 调低
- "max": 调到最大
- "min": 调到最小
- "num": 调到指定数值
Example:
{ "humidity": ["up", "down", "max", "min", "num"] }
- state 值
- {number}
- 0 到 100 之间十进制数值
- 如果不能明确获取到具体数值,可以为 null
Example:
{ "property": "humidity", "name":"num", "value": 100}
温度 temperature
- actions 接受值 [ "up", "down", "max", "min", "num" ]
- "up": 调高
- "down": 调低
- "max": 调到最大
- "min": 调到最小
- "num": 调到指定数值
Example:
{ "temperature": ["up", "down"] }
- state 值
- {number}
- 0 到 100 之间十进制数值
- 如果不能明确获取到具体数值,可以为 null
Example:
{ "property": "temperature", "name":"num", "value": 26}
色温 color_temperature
- actions 接受值 [ "up", "down", "max", "min", "num" ]
- "up": 调高
- "down": 调低
- "max": 调到最大
- "min": 调到最小
- "num": 调到指定数值
Example:
{ "color_temperature": ["up", "down"] }
- state 值
- {number}
- 0 到 100 之间十进制数值
- 如果不能明确获取到具体数值,可以为 null
Example:
{ "property": "color_temperature", "name":"num", "value": 26}
ping
- actions 接受值 [ "trigger" ]
- ping 是设备提示的功能。比如,智慧灯泡闪一下(打开关闭或者关闭打开,或者换颜色,改亮度),用来发现。如果设备没有该能力,又支持开关,那么默认开关一下,用以提示。
- trigger 触发
- ping 是设备提示的功能。比如,智慧灯泡闪一下(打开关闭或者关闭打开,或者换颜色,改亮度),用来发现。如果设备没有该能力,又支持开关,那么默认开关一下,用以提示。
Example:
{ "property": "ping", "name":"trigger"}
- state 值
- 为空,不需要提供state
媒体播放控制 media_control
actions接受值[ "play_media", "pause", "play", "stop", "playmode", "previous", "next", "get_meta" ]
play_media 播放媒体,接受值 [ "media_tag", "singer", "song" ]
- media_tag 媒体源,可选,接受值{ "type": "favlist"}
- singer 歌手,可选
- song 歌曲,可选
Example 1:若琪,我要听歌
{ "property": "media_control", "name": "play_media", "value": { } }
在没有提供艺术家、曲目、媒体源的情况下,设备可以随机播放媒体或者根据用户平时喜好提供具体内容
Example 2:若琪,我要听王菲的歌
{ "property": "media_control", "name": "play_media", "value": { "signer": "王菲" } }
在只提供艺术家的情况下设备可以播放某个艺术家的Top歌曲
Example 3:若琪,我要听收藏夹中周杰伦的歌
{ "property": "media_control", "name":"play_media", "value": { "media_tag": { "type" : "favlist" }, "singer": "周杰伦" } }
在提供了媒体源的情况下代表用户希望播放某一个媒体源下的曲目,设备可以从用户的媒体源中选择艺术家和曲目进行播放,媒体源暂时只支持『收藏夹』
pause 暂停播放
play 继续播放
stop 停止播放
playmode 设置播放模式,接受值[ "repeatOne", "repeat", "shuffle" ]
- repeatOne 单曲循环
- repeat 循环列表
- shuffle 随机播放
Example: 若琪,打开单曲循环
{ "property": "media_control", "name":"playmode", "value": "repeatOne"}
previous 上一首
next 下一首
get_meta 获取当前播放媒体信息
Example: 若琪,现在放的什么歌
{ "property": "media_control", "name":"get_meta", "value": { } }
在处理无误的情况下请返回以下格式的内容来进行TTS播报
{ "status": 0, "artist": { "name": "艺术家名字" }, "name": "曲目名称" }
Example:
{ "property": "media_control", "name":"play"}
- state 值
- get_meta 需要提供指定格式的内容,其他的返回状态码即可
通用档位 level 开发中
- actions 接受值
["num", "prev", "next"]
num
档位数值prev
上一个档位next
下一个档位
- state 值 {number} 非负整数,表示当前档位
Example:
{ "property": "level", "name":"num", "value": 4 }