Yaokan 酒店网关云 API 接口文档
文件编号:YAOKANHOTELAPI-20190920 |
- 概述
使用遥控大师用户系统开发者,可通过本文档接口管理设备授权、获取设备上创建的遥控器列表、云语音控制设备功能。
- 文档阅读对象
酒店系统开发者
- 接口规范
3.1. 请求头
名称 | 类型 | 是否必须 | 示例 | 说明 |
---|---|---|---|---|
appId | string | yes | appid | 平台分配的APPID |
timestamp | int | yes | timestamp | 时间戳 |
signature | string | yes | signature | 签名 |
3.2. 签名生成算法
将appId、timestamp拼接成字符串A,然后对A做MD5加密获得字符串B,然后取B的第1,3,7,15,31位置上的字符,拼接成C,C即为签名的值
PHP示例:
$appId="94d3b83bd9f00589acac31520664993e" |
3.3. 请求方式:POST
3.4. 返回格式:JSON,并且data数据做加密
3.5. 请求参数data的加密:
3.5.1.AES method:”AES-128-CBC”
3.5.2.处理步骤:
data体做json编码后,再做AES加密,最后做BASE64编码
其中,AES的key为appSecret的高16位,AES的偏移量为appSecret的低16位;
3.5.3.AES加密示例:
待加密文本:”{“token”:”oaudd5Xk70stFxWAXglGEgLrUaHI”,”macs”:”DC4F22529F13”}”;
AES key:”bf356292227b87ea”;
AES偏移量:”06470ebdd52088cc”;
加密结果:”sefyig6EkyYup1yNHcol30is2qtopnyGogMa9c/3DprN0bSJqUdNOWdIVGvSEZCZT8U3eBv+zZKDcw8lbIarTg==”
3.6. 响应参数data的解密:
服务端将对data数据做json编码,再做AES加密,最后做BASE64编码
其中,AES的key为appSecret的高16位,AES的偏移量为appSecret的低16位;
3.7. 请求地址:
测试环境:https://demo.yaokantv.com:8215/hotel/v1
正式环境:https://hotelapi.yaokantv.com/hotel/v1
- API 列表
4.1. 设备绑定用户(小程序)
请求参数:
名称 | 类型 | 是否必须 | 示例 | 说明 |
---|---|---|---|---|
reqType | int | yes | 1001 | 请求类型,固定值 |
data | string | yes | data string | 加密后的data字符串 |
请求参数data说明:
名称 | 类型 | 是否必须 | 示例 | 说明 |
---|---|---|---|---|
token | string | yes | user token | 用户授权码,酒店系统提供 |
macs | string | yes | mac1,mac2 | 用户授权码的mac,多个以英文逗号分隔 |
响应数据:
名称 | 类型 | 是否必须 | 说明 |
---|---|---|---|
errorCode | int | yes | 状态码,0-表示成功,其它值表示失败 |
message | string | yes | 错误信息,成功时为空字符串;失败时为错误原因 |
data | string | yes | 空字符串 |
响应数据示例:
{"errorCode":0,"message":"Operate Success","data":''} |
4.2. 设备解绑用户(小程序)
请求参数:
名称 | 类型 | 是否必须 | 示例 | 说明 |
---|---|---|---|---|
reqType | int | yes | 1002 | 请求类型,固定值 |
data | string | yes | data string | 加密后的data字符串 |
请求参数data说明:
名称 | 类型 | 是否必须 | 示例 | 说明 |
---|---|---|---|---|
token | string | yes | user token | 用户授权码 |
响应数据:
名称 | 类型 | 是否必须 | 说明 |
---|---|---|---|
errorCode | int | yes | 状态码,0-表示成功,其它值表示失败 |
message | string | yes | 错误信息,成功时为空字符串;失败时为错误原因 |
data | string | yes | 空字符串 |
响应数据示例:
{"errorCode":0,"message":"Operate Success","data":''} |
4.3. 获取遥控器列表(云语音控制)
请求参数:
名称 | 类型 | 是否必须 | 示例 | 说明 |
---|---|---|---|---|
reqType | int | yes | 1003 | 请求类型,固定值 |
data | string | yes | data string | 加密后的data字符串 |
请求参数data说明:
名称 | 类型 | 是否必须 | 示例 | 说明 |
---|---|---|---|---|
macs | string | yes | mac1,mac2 | 授权码的mac,多个以英文逗号分隔 |
响应数据:
名称 | 类型 | 是否必须 | 说明 | |
---|---|---|---|---|
errorCode | int | yes | 状态码,0-表示成功,其它值表示失败 | |
message | string | yes | 错误信息,成功时为空字符串;失败时为错误原因 | |
data | string | yes | AES加密后的响应数据 |
data解密后为数组,包含多个遥控器对象,遥控器对象说明如下:
名称 | 类型 | 是否必须 | 说明 |
---|---|---|---|
deviceId | string | yes | 遥控器ID |
name | string | yes | 遥控器名称 |
响应数据示例:
[{"deviceId":"deviceId1","name":"客厅空调"},{"deviceId":"deviceId2","name":"客厅风扇"}] |
4.4. 语音设备控制(云语音控制)
请求参数:
名称 | 类型 | 是否必须 | 示例 | 说明 |
---|---|---|---|---|
reqType | int | yes | 1004 | 请求类型,固定值 |
data | string | yes | data string | 加密后的data字符串 |
请求参数data说明:
名称 | 类型 | 是否必须 | 示例 | 说明 |
---|---|---|---|---|
deviceId | string | yes | deviceId | 遥控器ID,通过遥控器列表接口获得 |
cmdName | string | yes | ChannelNo | 标准控制指令名称 |
cmdValue | string | yes | 26 | 部分指令需要取值,如机顶盒26频道控制 |
响应数据:
名称 | 类型 | 是否必须 | 说明 |
---|---|---|---|
errorCode | int | yes | 状态码,0-表示成功,其它值表示失败 |
message | string | yes | 错误信息,成功时为空字符串;失败时为错误原因 |
data | string | yes | 空字符串 |
响应数据示例:
{"errorCode":0,"message":"Operate Success","data":''} |
4.5. 调状态查询(未开放)
请求参数:
名称 | 类型 | 是否必须 | 示例 | 说明 |
---|---|---|---|---|
reqType | int | yes | 1005 | 请求类型,固定值 |
data | string | yes | data string | 加密后的data字符串 |
请求参数data说明:
名称 | 类型 | 是否必须 | 示例 | 说明 |
---|---|---|---|---|
deviceId | string | yes | deviceId值 | 遥控器ID |
响应数据:
名称 | 类型 | 是否必须 | 说明 |
---|---|---|---|
errorCode | int | yes | 状态码,0-表示成功,其它值表示失败 |
message | string | yes | 错误信息,成功时为空字符串;失败时为错误原因 |
data | string | yes | AES加密后的响应数据 |
data解密后为一个状态对象,说明如下:
名称 | 类型 | 是否必须 | 说明 |
---|---|---|---|
mode | string | yes | 模式:cold-制冷;heat-制热;auto-自动;dry-除湿;wind-送风 |
speed | string | yes | 风速:s0-自动;s1-1档;s2-2档;s3-3档 |
temp | int | yes | 温度值 |
windUd | string | yes | 上下扫风状态:on-开;off-关;none-不支持 |
windLr | string | yes | 左右扫风状态:on-开;off-关;none-不支持 |
power | string | yes | 电源状态:on-开;off-关; |
响应数据示例:
[{"deviceId":"deviceId","name":"空调","rcType":7,"state":{"mode":"cold","speed":"auto","temp":"25","windLeft":"on","windUp":"off"}}] |
4.6. 设备用电量查询(部分设备支持,未开放)
请求参数:
名称 | 类型 | 是否必须 | 示例 | 说明 |
---|---|---|---|---|
reqType | int | yes | 1006 | 请求类型,固定值 |
data | string | yes | data string | 加密后的data字符串 |
请求参数data说明:
名称 | 类型 | 是否必须 | 示例 | 说明 |
---|---|---|---|---|
mac | string | yes | mac | 设备的mac |
unit | string | yes | hour | 查询的统计单位:hour,day,week,month,year |
timeBegin | int | yes | hour | 查询的开始时间戳 |
timeEnd | int | yes | hour | 查询的结束时间戳 |
响应数据:
名称 | 类型 | 是否必须 | 说明 | |
---|---|---|---|---|
errorCode | int | yes | 状态码,0-表示成功,其它值表示失败 | |
message | string | yes | 错误信息,成功时为空字符串;失败时为错误原因 | |
data | string | yes | AES加密后的响应数据 |
data说明:
名称 | 类型 | 是否必须 | 说明 | |
---|---|---|---|---|
tag | int | yes | 统计单位序号,如1天的1 | |
value | float | yes | 单位时间内的用电量,精度为0.0001 | |
createdAt | datetime | yes | 统计时间 |
响应数据示例:
{"errorCode":0,"message":"Operate Success","data":[{"tag":1,"value":12.0000},{"tag":2,"value":23.0000},{"tag":3,"value":45.0000}]} |
- 异常错误码描述
5.1. 错误码规范: 0表示成功,其它值表示失败。
错误码 | 说明 |
---|---|
0 | 操作成功 |
100001 | 参数相关错误 |
100002 | 资源不存在 |
100201 | 操作失败 |
100300 | 权限相关信息 |
100301 | 无效请求 |
100302 | 无效请求 |
100500 | 服务异常信息 |
6. 指令说明
指令名称 | 说明 | 指令值取值范围 |
---|---|---|
TurnOn | 电源开 | 无 |
TurnOff | 电源关 | 无 |
VolumeUp | 音量加 | 无 |
VolumeDown | 音量减 | 无 |
ChannelUp | 频道加 | 无 |
ChannelDown | 频道减 | 无 |
SetMute | 静音 | 无 |
CancelMute | 取消静音 | 无 |
Previous | 上一页 | 无 |
Next | 下一页 | 无 |
Charge | 充电 | 无 |
Pause | 暂停 | 无 |
OpenSwing | 摆风开 | 无 |
CloseSwing | 摆风关 | 无 |
ChannelNo | 频道号 | 具体频道号数字,如“12” |
ChannelName | 频道名称 | 具体的频道名称,如“浙江卫视” |
WindSpeedUp | 风速加 | 无 |
WindSpeedDown | 风速减 | 无 |
SetMode | 模式调节 | sterilize,sleep |
空调指令名称 | 说明 | 取值范围 |
---|---|---|
SetMode | 模式调节 | auto,cold,heat,airsupply,dehumidification |
SetWindSpeed | 风速调节 | auto,low,medium,high |
WindSpeedUp | 风速加 | 无 |
WindSpeedDown | 风速减 | 无 |
SetTemperature | 温度调节 | 16-30 |
TemperatureUp | 温度加 | 无 |
TemperatureDown | 温度减 | 无 |
OpenLeftAndRightSwing | 左右扫风开 | 无 |
CloseLeftAndRightSwing | 左右扫风关 | 无 |
OpenUpAndDownSwing | 上下扫风开 | 无 |
CloseUpAndDownSwing | 上下扫风关 | 无 |
#更新历史
版本 | 说明 | 备注 | 日期 |
---|---|---|---|
v1.0 | 新建 | Mark | 20190920 |
v1.1 | 空调支持风速加减 | Mark | 20191014 |