智能灯光APP控制协议(Smart Home)

另味怪友
936次浏览
2020年01月02日 01:57
最佳经验
本文由作者推荐
智能灯泡app开发

APP通信协议
设备广播名称 :Smart Home
命令格式:
帧:    [长度码] [类型码1] [类型码2]  [数据码]  [校验码]
格式: [HEX]    [HEX]      [HEX]  [String]    [HEX]

长度码: 表示数据码长度 (只包括数据码长度)
类型码1:类型码1有两种 :0x01:表示APP向控制板发数据    0x02:表示控制板向APP发送数据 
类型码2: 类型码2有两种 :0x03:查询命令                0x04:控制命令
数据码:详细见表格
1、手机向控制板发送查询命令
功能含义
长度码
类型码1   
类型码2
数据码
校验码
发送查询/刷新命令(主卧)
0X07
0X01
0x03
CXLOAD1
发送查询/刷新命令(房间2)
0X07
0X01
0x03
CXLOAD2
发送查询/刷新命令(客厅)
0X07
0X01
0x03
CXLOAD3
发送查询/刷新命令(厨房)
0X07
0X01
0x03
CXLOAD4
发送查询/刷新命令(电动窗帘)
0X07
0X01
0x03
CXLOAD5
发送查询/刷新命令(卫生间2)
0X07
0X01
0x03
CXLOAD6
发送查询/刷新命令(房间3)
0X07
0X01
0x03
CXLOAD7
发送查询/刷新命令(餐厅)
0X07
0X01
0x03
CXLOAD8
发送查询/刷新命令(门口)
0X07
0X01
0x03
CXLOAD9
发送查询/刷新命令(其他)
0X07
0X01
0x03
CXLOAD10
发送查询/刷新命令(主卧卫生间)
0X07
0X01
0x03
CXLOAD11
校验码:包括长度码,类型码,数据码的前面所有字节的异或和校验。
注:上述数据码为字符串
2、控制板向APP反馈信息 (当手机APP向控制板发送查询/刷新命令后,控制板都会反馈场景状态)
功能含义
长度码
类型码1   
类型码2
数据码
校验码
反馈场景命令(主卧)
0X01
0X02
0x03
0xXX
反馈场景命令(房间2)
0X01
0X02
0x03
0xXX
反馈场景命令(客厅)
0X01
0X02
0x03
0xXX
反馈场景命令(厨房)
0X01
0X02
0x03
0xXX
反馈场景命令(电动窗帘)
0X01
0X02
0x03
0xXX
反馈场景命令(卫生间2)
0X01
0X02
0x03
0xXX
反馈场景命令(房间3)
0X01
0X02
0x03
0xXX
反馈场景命令(餐厅)
0X01
0X02
0x03
0xXX
反馈场景命令(门口)
0X01
0X02
0x03
0xXX
反馈场景命令(其他)
0X01
0X02
0x03
0xXX
注:0xXX 在每个界面示意图里有定义 ,采用的是(位图模式) 每一位代表一个负载的开关状态
注:上述数据码为字符串
3、手机APP向控制板发送控制命令
3.1 主卧
功能含义
长度码
类型码1   
类型码2
数据码
校验码
发送控制命令(主卧)
0X04
0X01
0x04
S001
发送控制命令(主卧)
0X04
0X01
0x04
S002
发送控制命令(主卧)
0X04
0X01
0x04
S003
发送控制命令(主卧)
0X04
0X01
0x04
S004
发送控制命令(主卧)
0X04
0X01
0x04
Z001
发送控制命令(主卧)
0X04
0X01
0x04
Z002
发送控制命令(主卧)
0X04
0X01
0x04
C001
发送控制命令(主卧)
0X04
0X01
0x04
S071
注:上述数据码为字符串
3.2 客厅
功能含义
长度码
类型码1   
类型码2
数据码
校验码
发送控制命令(客厅)
0X04
0X01
0x04
Z004
发送控制命令(客厅)
0X04
0X01
0x04
C002
发送控制命令(客厅)
0X04
0X01
0x04
S001
注:上述数据码为字符串
3.3 厨房
功能含义
长度码
类型码1   
类型码2
数据码
校验码
发送控制命令(厨房)
0X04
0X01
0x04
S021
发送控制命令(厨房)
0X04
0X01
0x04
S041
注:上述数据码为字符串
3.4 主卧卫生间
功能含义
长度码
类型码1   
类型码2
数据码
校验码
发送控制命令(主卧卫生间)
0X04
0X01
0x04
C003
发送控制命令(主卧卫生间)
0X04
0X01
0x04
C004
发送控制命令(主卧卫生间)
0X04
0X01
0x04
S024
注:上述数据码为字符串
3.5 房间2
功能含义
长度码
类型码1   
类型码2
数据码
校验码
发送控制命令(房间2)
0X04
0X01
0x04
Z006
发送控制命令(房间2)
0X04
0X01
0x04
S032
发送控制命令(房间2)
0X04
0X01
0x04
Z005
发送控制命令(房间2)
0X04
0X01
0x04
S033
发送控制命令(房间2)
0X04
0X01
0x04
C005
发送控制命令(房间2)
0X04
0X01
0x04
S072
发送控制命令(房间2)
0X04
0X01
0x04
S031
发送控制命令(房间2)
0X04
0X01
0x04
S034
注:上述数据码为字符串
3.6 餐厅
功能含义
长度码
类型码1   
类型码2
数据码
校验码
发送控制命令(餐厅)
0X04
0X01
0x04
S041
发送控制命令(餐厅)
0X04
0X01
0x04
S042
发送控制命令(餐厅)
0X04
0X01
0x04
S053
注:上述数据码为字符串
3.7 房间3
功能含义
长度码
类型码1   
类型码2
数据码
校验码
发送控制命令(房间3)
0X04
0X01
0x04
S043
发送控制命令(房间3)
0X04
0X01
0x04
S044
发送控制命令(房间3)
0X04
0X01
0x04
S045
注:上述数据码为字符串
3.8 卫生间2
功能含义
长度码
类型码1   
类型码2
数据码
校验码
发送控制命令(房间3)
0X04
0X01
0x04
S051
发送控制命令(房间3)
0X04
0X01
0x04
S052
发送控制命令(房间3)
0X04
0X01
0x04
S064
注:上述数据码为字符串
3.9 门口
功能含义
长度码
类型码1   
类型码2
数据码
校验码
发送控制命令(门口)
0X04
0X01
0x04
C006
发送控制命令(门口)
0X04
0X01
0x04
C007
发送控制命令(门口)
0X04
0X01
0x04
S053
注:上述数据码为字符串
3.10 其他
功能含义
长度码
类型码1   
类型码2
数据码
校验码
发送控制命令(其他)
0X04
0X01
0x04
S054
发送控制命令(其他)
0X04
0X01
0x04
S061
发送控制命令(其他)
0X04
0X01
0x04
S062
注:上述数据码为字符串
3.11 窗帘
功能含义
长度码
类型码1   
类型码2
数据码
校验码
发送控制命令(窗帘)
0X04
0X01
0x04
L081
发送控制命令(窗帘)
0X04
0X01
0x04
L082
发送控制命令(窗帘)
0X04
0X01
0x04
L083
发送控制命令(窗帘)
0X04
0X01
0x04
L084
注:上述数据码为字符串
3.12 主卧卫生间
功能含义
长度码
类型码1   
类型码2
数据码
校验码
发送控制命令(主卧卫生间)
0X04
0X01
0x04
C003
发送控制命令(主卧卫生间)
0X04
0X01
0x04
C004
发送控制命令(主卧卫生间)
0X04
0X01
0x04
S024
4、控制板向APP反馈控制信息 (每当app向控制发送控制命令 ,控制器都向APP反馈控制信息)
功能含义
长度码
类型码1   
类型码2
数据码
校验码
反馈控制命令
0X05
0X02
0x04
SETOK
注:效验码参考下面C语言程序
/************************************************************************************
*函数名称:check_sum
*功能描述:计算异或和校验
*入口参数:@data,校验数据的起始地址  @len,校验数据的长度
*返回值:异或和校验值
*************************************************************************************/
uint8 check_sum(uint8 *data,uint16 lenth)
{
uint8 checksum = 0;
uint16 i = 0;
for(i = 0;i < lenth;i ++)
{
checksum ^= data[i];
}
return checksum;
}