本平台通过机智云+Zigbee来完成智能家居平台的搭建,用户可通过设备控制元件或使用已绑定设备的安卓手机来完成对设备的控制工作。
- 可通过电灯上的按键或APP来控制电灯的开启和关闭。
- 可通过电灯上的状态指示灯来观察电灯目前的状态。
- 可通过电灯上的复位按键或者使用APP来还原电灯的出厂数据。
- 可通过APP来操作电灯进入倒计时运行模式。
- 可通过APP来操作电灯进入时间段运行模式。
- 支持断电保持设定数据。
- 支持设定插座开启的状态。
- 能够智能判断用户的下一步操作。
- 可通过插座上的按键或APP来控制插座的开启和关闭。
- 可通过插座上的状态指示灯来观察插座目前的状态。
- 可通过插座上的复位按键或者使用APP来还原插座的出厂数据。
- 可通过APP来操作插座进入倒计时运行模式。
- 可通过APP来操作插座进入时间段运行模式。
- 支持断电保持设定数据。
- 支持设定插座开启的状态。
- 能够智能判断用户的下一步操作。
- 支持手动开启/关闭窗帘。
- 可通过APP控制窗帘开启/关闭的状态。
- 可通过APP来操作窗帘进入倒计时运行模式。
- 可通过APP来操作窗帘进入时间段运行模式。
- 支持设定窗帘上电时的状态。
- 支持窗帘下雨警报,可根据用户的配置实现窗帘自动关闭操作。
- 支持读取室内的亮度数据。
- 支持断电保持设定数据。
- 可通过窗帘上的复位按键或者使用APP来还原窗帘的出厂数据。
- 能够读取室内的温湿度数据。
通讯类型 | 事件序号 | 数据发送/接收方设备类型 | 数据发送/接收方MAC地址 | 命令 | 数据长度 | 数据 | 校验和 |
---|---|---|---|---|---|---|---|
1 Byte | 1 Byte | 1 Byte | 8 Byte | 1 Byte | 1 Byte | 18 Byte | 1 Byte |
通讯代号 | 意义 | 简写 |
---|---|---|
0x00 | 结束此次通讯流程 | END_COMM |
0x01 | APP请求与设备通讯 | W2D |
0x02 | 设备应答APP通讯 | W2D_ACK |
0x03 | 设备请求与APP通讯 | D2W |
0x04 | APP应答设备通讯 | D2W_ACK |
0x05 | 网关请求与设备通讯 | H2S |
0x06 | 设备应答网关请求 | H2S_ACK |
0x07 | 设备请求与网关通讯 | S2H |
0x08 | 网关应答设备请求 | S2H_ACK |
0x09 | 校验码错误 | ERROR_CODE |
等待应答的事件序号应与应答的事件序号保持一致。
设备类型 | 设备代码 |
---|---|
网关 | 0x00 |
APP | 0x00 |
灯 | 0x01 |
插座 | 0x02 |
窗帘 | 0x03 |
温湿度传感器 | 0x04 |
若数据从APP发向设备(W2D、D2W_ACK通讯类型),设备类型填写数据接收端的设备类型。
若数据从设备发向APP(W2D_ACK、D2W通讯类型),设备类型填写数据发送方的设备类型。
若数据从协调器发向终端(H2S、S2H_ACK通讯类型),设备类型填写数据接收端的设备类型。
若数据从终端发向协调器(H2S_ACK、S2H通讯类型),设备类型填写数据发送方的设备类型。
设备的MAC地址。
若数据从APP发向设备(W2D、D2W_ACK通讯类型),设备类型填写数据接收端的MAC地址。
若数据从设备发向APP(W2D_ACK、D2W通讯类型),设备类型填写数据发送方的MAC地址。
若数据从协调器发向终端(H2S、S2H_ACK通讯类型),设备类型填写数据接收端的MAC地址。
若数据从终端发向协调器(H2S_ACK、S2H通讯类型),设备类型填写数据发送方的MAC地址。
见设备数据点介绍。
数据长度表示数据的具体长度,不能超过最大数据长度。
见设备数据点介绍。
校验和的计算方式为把数据包从通讯类型为开始按字节求和得出的结果对256求余。
控制命令 | 控制命令介绍 | 权限 | 数据点 | 数据点大小 | 参数枚举 |
---|---|---|---|---|---|
0x00 | 设备心跳命令 | 只读 | - | - | - |
0x01 | 恢复设备出厂设备命令 | 只读 | - | - | - |
0x02 | 设备重启 | 只读 | - | - | - |
0x03 | 刷新设备时间 | 只读 | - | - | - |
0x04 | 读取设备时间数据 | 只读 | 时间数据 | 7 Byte | - |
- | - | - | 时间-年数据(21世纪) | 1 Byte | 0~99 |
- | - | - | 时间-月数据 | 1 Byte | 1~12 |
- | - | - | 时间-日数据 | 1 Byte | 1~31 |
- | - | - | 时间-星期数据 | 1 Byte | 1~7 |
- | - | - | 时间-小时数据 | 1 Byte | 0~23 |
- | - | - | 时间-分钟数据 | 1 Byte | 0~59 |
- | - | - | 时间-秒钟数据 | 1 Byte | 0~59 |
0x05 | 写入设备时间数据 | 只写 | 时间数据 | 7 Byte | - |
- | - | - | 时间-年数据(21世纪) | 1 Byte | 0~99 |
- | - | - | 时间-月数据 | 1 Byte | 1~12 |
- | - | - | 时间-日数据 | 1 Byte | 1~31 |
- | - | - | 时间-星期数据 | 1 Byte | 1~7 |
- | - | - | 时间-小时数据 | 1 Byte | 0~23 |
- | - | - | 时间-分钟数据 | 1 Byte | 0~59 |
- | - | - | 时间-秒钟数据 | 1 Byte | 0~59 |
控制命令 | 控制命令介绍 | 权限 | 数据点 | 数据点大小 | 参数枚举 |
---|---|---|---|---|---|
0x10 | 设备列表变化 | 只读 | 设备的数量 | 1 Byte | 0~255 |
0x11 | APP通过该命令获取目前设备的数量 | 只读 | 设备的数量 | 1 Byte | 0~255 |
0x12 | APP通过该命令获取目前设备的信息 | 只读 | 读取的设备信息 | 10 Byte | - |
- | - | - | 设备编号(第x台设备) | 1 Byte | 0 ~ 255 |
- | - | - | 设备类型 | 1 Byte | 见设备类型 |
- | - | - | 设备MAC地址 | 8 Byte | 见设备MAC地址 |
0x13 | 设备列表读取失败 | 只读 | - | - | - |
APP获取设备信息流程介绍
- APP向网关设备请求获取在线设备数量。
- 网关应答APP在线设备数量。
- APP向网关发送需要获取设备信息的设备编号。
- 网关回复APP请求的设备编号的设备信息(如果网关返回读取失败命令则APP应该重新执行获取设备信息流程)。
- APP依次读完所有设备的设备信息。
注:当设备列表有变化时,设备会向APP发送设备列表变化命令并等待APP读取设备信息。
设备命令 | 设备命令介绍 | 权限 | 数据点 | 数据点大小 | 参数枚举 |
---|---|---|---|---|---|
0x10 | 灯的亮度 | 只读 | Status | 1 Byte | 0~100(0为关闭,100为开启) |
0x11 | 灯的亮度 | 只写 | Status | 1 Byte | 0~100(0为关闭,100为开启) |
0x12 | 定时器单次运行设置 | 只读 | 详见定时器数据类型介绍 | 详见定时器数据类型介绍 | 详见定时器数据类型介绍 |
0x13 | 定时器单次运行设置 | 只写 | 详见定时器数据类型介绍 | 详见定时器数据类型介绍 | 详见定时器数据类型介绍 |
0x14 | 定时器重复运行设置 | 只读 | 详见定时器数据类型介绍 | 详见定时器数据类型介绍 | 详见定时器数据类型介绍 |
0x15 | 定时器重复运行设置 | 只写 | 详见定时器数据类型介绍 | 详见定时器数据类型介绍 | 详见定时器数据类型介绍 |
0x16 | 电灯上电运行模式 | 只读 | Mode | 1 Byte | 0(上电时电灯状态为关闭状态) |
- | - | - | - | - | 1(上电时电灯状态为上一次掉电前的状态) |
0x17 | 电灯上电运行模式 | 只写 | Mode | 1 Byte | 0(上电时电灯状态为关闭状态) |
- | - | - | - | - | 1(上电时电灯状态为上一次掉电前的状态) |
设备命令 | 设备命令介绍 | 权限 | 数据点 | 数据点大小 | 参数枚举 |
---|---|---|---|---|---|
0x10 | 插座状态 | 只读 | Status | 1 Byte | 0~1(0为插座关闭,1为插座开启) |
0x11 | 插座状态 | 只写 | Status | 1 Byte | 0~1(0为插座关闭,1为插座开启) |
0x12 | 定时器单次运行设置 | 只读 | 详见定时器数据类型介绍 | 详见定时器数据类型介绍 | 详见定时器数据类型介绍 |
0x13 | 定时器单次运行设置 | 只写 | 详见定时器数据类型介绍 | 详见定时器数据类型介绍 | 详见定时器数据类型介绍 |
0x14 | 定时器重复运行设置 | 只读 | 详见定时器数据类型介绍 | 详见定时器数据类型介绍 | 详见定时器数据类型介绍 |
0x15 | 定时器重复运行设置 | 只写 | 详见定时器数据类型介绍 | 详见定时器数据类型介绍 | 详见定时器数据类型介绍 |
0x16 | 消耗电能 | 只读 | 读取插座消耗的电能 | 1 Byte | 0~100 |
0x17 | 插座上电运行模式 | 只读 | Mode | 1 Byte | 0(上电时插座状态为关闭状态) |
- | - | - | - | - | 1(上电时插座状态为上一次掉电前的状态) |
0x18 | 插座上电运行模式 | 只写 | Mode | 1 Byte | 0(上电时插座状态为关闭状态) |
- | - | - | - | - | 1(上电时插座状态为上一次掉电前的状态) |
设备命令 | 设备命令介绍 | 权限 | 数据点 | 数据点大小 | 参数枚举 |
---|---|---|---|---|---|
0x10 | 读取窗帘当前状态 | 只读 | Status | 1 Byte | 窗帘当前状态 |
- | - | - | - | - | 窗帘初始化状态(0x00) |
- | - | - | - | - | 窗帘正在开启状态(0x01) |
- | - | - | - | - | 窗帘完成开启状态(0x02) |
- | - | - | - | - | 窗帘全部开启状态(0x03) |
- | - | - | - | - | 窗帘正在关闭状态(0x04) |
- | - | - | - | - | 窗帘完成关闭状态(0x05) |
- | - | - | - | - | 窗帘全部关闭状态(0x06) |
0x11 | 控制窗帘操作命令 | 只写 | Status | 1 Byte | 窗帘操作命令 |
- | - | - | - | - | 打开窗帘(0x01) |
- | - | - | - | - | 合上窗帘(0x02) |
0x12 | 定时器单次运行设置 | 只读 | 详见定时器数据类型介绍 | 详见定时器数据类型介绍 | 详见定时器数据类型介绍 |
0x13 | 定时器单次运行设置 | 只写 | 详见定时器数据类型介绍 | 详见定时器数据类型介绍 | 详见定时器数据类型介绍 |
0x14 | 定时器重复运行设置 | 只读 | 详见定时器数据类型介绍 | 详见定时器数据类型介绍 | 详见定时器数据类型介绍 |
0x15 | 定时器重复运行设置 | 只写 | 详见定时器数据类型介绍 | 详见定时器数据类型介绍 | 详见定时器数据类型介绍 |
0x16 | APP通过该命令读取窗帘的工作模式 | 只读 | 智能工作模式开关 | 1 Byte | 0~1 |
- | - | - | 设定自动关闭窗帘的亮度 | 1 Byte | 0~100 |
0x17 | APP通过该命令设置窗帘的工作模式 | 只写 | 智能工作模式开关 | 1 Byte | 0~1 |
- | - | - | 设定自动关闭窗帘的亮度 | 1 Byte | 0~100 |
0x18 | 下雨警报 | 只读 | 窗帘向APP发送下雨警报 | 1 Byte | 0~1 |
0x19 | 窗帘检测到的光照前的强度 | 只读 | 窗帘向APP发送下雨警报 | 1 Byte | 0~100 |
0x1A | 窗帘上电运行模式 | 只读 | 窗帘上电运行状态 | 1 Byte | - |
- | - | - | - | - | 保持现有状态(0x00) |
- | - | - | - | - | 关闭窗帘(0x01) |
- | - | - | - | - | 开启窗帘(0x02) |
0x1B | 窗帘上电运行模式 | 只写 | 窗帘上电运行状态 | 1 Byte | - |
- | - | - | - | - | 保持现有状态(0x00) |
- | - | - | - | - | 关闭窗帘(0x01) |
- | - | - | - | - | 开启窗帘(0x02) |
设备命令 | 设备命令介绍 | 权限 | 数据点 | 数据点大小 | 参数介绍 |
---|---|---|---|---|---|
0x10 | 上报当前环境温湿度数据 | 只读 | 上报的温湿度数据 | 2 Byte | - |
- | - | - | TEMP | 1 Byte | 0~100 |
- | - | - | HUMI | 1 Byte | 0~100 |
0x11 | 读取当前环境温湿度数据 | 只读 | 读取的温湿度数据 | 2 Byte | - |
- | - | - | TEMP | 1 Byte | 0~100 |
- | - | - | HUMI | 1 Byte | 0~100 |
|数据名称|成员|成员介绍|权限|占用内存|参数介绍|
|:-:|:-:|:-:|:-:|:-:|:-:|:-:|
|定时器工作模式|-|-|只读|1 Byte|-|
|-|-|-|-|-|TIMER_SLEEP_MODE(定时器休眠模式) = 0x00|
|-|-|-|-|-|TIMER_DOWNCNT_MODE(定时器倒计时运行模式) = 0x01|
|-|-|-|-|-|TIMER_PERIOD_MODE(定时器时间段运行模式) = 0x02|
|-|-|-|-|-|TIMER_CIRCUL_MODE(定时器重复运行模式) = 0x03|
|自定义工作参数|-|-|读/写|1 Byte|配置定时器自定义运行模式的工作参数|
|-|保留|保留|保留|Bit 0(占用该字节的第0位)|01|
|-|monday|周一工作状态|读/写|Bit 1(占用该字节的第1位)|01|
|-|tuesday|周二工作状态|读/写|Bit 2(占用该字节的第2位)|01|
|-|wednesday|周三工作状态|读/写|Bit 3(占用该字节的第3位)|01|
|-|thursday|周四工作状态|读/写|Bit 4(占用该字节的第4位)|01|
|-|friday|周五工作状态|读/写|Bit 5(占用该字节的第5位)|01|
|-|saturday|周六工作状态|读/写|Bit 6(占用该字节的第6位)|01|
|-|sunday|周日工作状态|读/写|Bit 7(占用该字节的第7位)|01|
|定时器工作时间|-|-|读/写|4 Byte|配置定时器的启动时间和停止时间|
|-|Start_Hour|启动时间-小时|读/写|1 Byte|023|
|-|Start_Minute|启动时间-分钟|读/写|1 Byte|059|
|-|Stop_Hour|启动时间-小时|读/写|1 Byte|023|
|-|Stop_Minute|停止时间-分钟|读/写|1 Byte|059|
|设备控制状态|-|-|读/写|2 Byte|配置定时器启动、停止时的设备状态|
|-|device_start_status|设备在定时器启动时的状态|读/写|1 Byte|根据设备而定|
|-|device_end_status|设备在定时器停止时的状态|读/写|1 Byte|根据设备而定|
例:倒计时8小时35分钟后关闭
Timer_Mode = TIMER_DOWNCNT_MODE;
Start_Hour = Now_Time_Hour;
Start_Minute = Now_Time_Minute;
Stop_Hour = 8;
Start_Minute = 35;
device_start_status = now_status;
device_end_status = off_status;
注: 1. 当设定定时器工作在倒计时模式时,定时器工作一次,不会重复运行。 2. 定时器工作在倒计时模式时不允许出现倒计时时间大于24小时的情况,请注意检查。
例:8:50~9:45开启
Timer_Mode = TIMER_SIGNAL_MODE;
Start_Hour = 8;
Start_Minute = 50;
Stop_Hour = 9;
Start_Minute = 45;
device_start_status = start_status;
device_end_status = end_status;
注: 1. 当设定定时器工作在时间段模式时,定时器工作一次,不会重复运行。 2. 定时器工作在时间段模式时不允许出现启动时间大于停止时间的情况,请注意检查。
例:每周一、周二、周三8:50~9:45开启
Timer_Mode = TIMER_CUSTOM_MODE;
monday = 1;
tuesday = 1;
wednesday = 1;
Start_Hour = 8;
Start_Minute = 50;
Stop_Hour = 9;
Start_Minute = 45;
device_start_status = start_status;
device_end_status = end_status;
注: 1. 当设定定时器工作在重复运行模式时,定时器会重复运行。 2. 定时器工作在重复运行模式时不允许出现启动时间大于停止时间的情况,请注意检查。
APP向设备发送数据流程:
APP ——> 云端 ——> WIFI模组 ——> 网关 ——> 设备
由上述流程可知APP发送的数据经过云端、WIFI模组、网关处理之后然后才到数据的,中间可能存在一些延迟,因此当APP发送写入/读取设备的数据命令数据经过网关时,网关会将数据发送给终端设备,发送成功的话会发送一个应答数据给云端表示设备正在处理此次事件,而设备解析完APP发送的命令数据之后会将设备信息通过设备上报的形式发送给云端(设备上报数据时的设备命令类型为只读命令)。
设备上报数据流程:
设备 ——> 网关 ——> WIFI模组 ——> 云端 ——> APP