|
@@ -0,0 +1,143 @@
|
|
|
+# 数字管家护花使者设备profile定义说明
|
|
|
+
|
|
|
+##### 下发命令定义
|
|
|
+
|
|
|
+###### 开关浇水(SetMotor)
|
|
|
+
|
|
|
+```
|
|
|
+{
|
|
|
+ "service_id": "SmartWatering", // 产品服务ID,固定为SmartWatering
|
|
|
+ "command_name": "SetMotor", // 命令名称,固定为SetMotor
|
|
|
+ "paras":
|
|
|
+ {
|
|
|
+ "MotorStatus": "ON" // 命令值(类型String):ON/OFF
|
|
|
+ "Capacity": 200 // 浇水的容量(类型int) : 1 - 500, 一次浇水不能超过500ml
|
|
|
+ }
|
|
|
+}
|
|
|
+```
|
|
|
+
|
|
|
+###### 开关补光灯(SetLampStatus)
|
|
|
+
|
|
|
+```
|
|
|
+{
|
|
|
+ "service_id": "SmartWatering", // 产品服务ID,固定为SmartWatering
|
|
|
+ "command_name": "SetLampStatus", // 命令名称,固定为SetLampStatus
|
|
|
+ "paras":
|
|
|
+ {
|
|
|
+ "LampStatus": "ON" // 命令值(类型String):ON/OFF
|
|
|
+ "DutyCycle": 200 // 灯亮度(类型int) : 0-100
|
|
|
+ }
|
|
|
+}
|
|
|
+```
|
|
|
+
|
|
|
+###### 开关风扇(SetSpeedLevel)
|
|
|
+
|
|
|
+```
|
|
|
+{
|
|
|
+ "service_id": "SmartWatering", // 产品服务ID,固定为SmartWatering
|
|
|
+ "command_name": "SetSpeedLevel", // 命令名称,固定为SetSpeedLevel
|
|
|
+ "paras":
|
|
|
+ {
|
|
|
+ "LampStatus": "FanStatus" // 命令值(类型String):ON/OFF
|
|
|
+ "SpeedLevel": 0 // 风扇电机转速(类型int) : 0-4
|
|
|
+ }
|
|
|
+}
|
|
|
+```
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+###### 日程设置(SetSchedule)
|
|
|
+
|
|
|
+```
|
|
|
+{
|
|
|
+ "service_id": "SmartWatering", // 产品服务ID,固定为SmartWatering
|
|
|
+ "command_name": "SetSchedule", // 命令名称,固定为SetSchedule
|
|
|
+ "paras":
|
|
|
+ {
|
|
|
+ "ScheduleID":0 // 日程ID号(类型int): 0 - 65535
|
|
|
+ "option":"A" // 日程操作(类型string):长度为1,暂指定3个操作:A(新增日程),U(更新日程),D(删除日程)
|
|
|
+ "Day": "1,3,5", // 开始浇水的日期,以星期为单位
|
|
|
+ // 取值(类型string): "1,2,3,4,5,6,7", 1-7代表周一到周日,每天之间用逗号(,)隔开,可以只设1天,也可以设置多天
|
|
|
+ "StartHour": 18, // 开始浇水的小时时间(类型int) : 0 - 23
|
|
|
+ "StartMinute": 12, // 开始浇水的分钟时间(类型int) : 0-59
|
|
|
+ "Command":"{"MotorStatus":"ON", "Capacity": 200}" // 日程到点后需要执行的命令。 MotorStatus:打开/关闭浇水功能,Capacity:浇水容量
|
|
|
+ }
|
|
|
+}
|
|
|
+```
|
|
|
+
|
|
|
+##### 属性获取定义
|
|
|
+
|
|
|
+属性是指设备当前的一些状态,由设备端主动上报到云端
|
|
|
+
|
|
|
+```
|
|
|
+{
|
|
|
+ serviceId: SmartWatering, // 产品服务ID,固定为SmartWatering
|
|
|
+ data:
|
|
|
+ {
|
|
|
+ "MotorStatus":"ON", // 当前浇水状态,是否在浇水(类型String):ON/OFF
|
|
|
+ "FanStatus":"ON", // 当前风扇电机状态(类型String):ON/OFF
|
|
|
+ "LampStatus":"ON", // 当前灯状态状态(类型String):ON/OFF
|
|
|
+ "Temperature":38, // 当前空气的温度(类型int) 0 - 65535
|
|
|
+ "Humidity":58, // 当前空气的湿度(类型int):0 - 65535
|
|
|
+ "Moisture":6 // 当前土壤的水分(类型int):0 - 65535
|
|
|
+ "Lux":6 // 当前光照的强度(类型int):0 - 65535
|
|
|
+ "SpeedLevel":0 // 当前风扇电机转速(类型int):0 - 4
|
|
|
+ "DutyCycle":0 // 当前灯亮度(类型int):0 - 100
|
|
|
+ "Capacity":0 // 当前水容量(类型int):0 - 500
|
|
|
+ }
|
|
|
+}
|
|
|
+```
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+##### 备注
|
|
|
+
|
|
|
+护花使者设备相关信息
|
|
|
+
|
|
|
+| 标签 | 名字 | 描述 | 样例 |
|
|
|
+| :--: | ------------------- | ------------------------------------------------------------ | ------------------------ |
|
|
|
+| 1 | IoTDA平台设备产品ID | 由IoTDA平台中获取,使用自身,标识设备产品品类。典型值24字节,小于32字节 | 61f26336de9933029be4e155 |
|
|
|
+| 2 | NodeID | 设备节点ID,辨识同品类中,不同的设备。典型值8字节,小于64字节 | Watering01 |
|
|
|
+| 3 | DevicePwd | 设备认证秘钥,用于设备连接IoTDA认证。典型值8字节,小于32字节 | 12345678 |
|
|
|
+| 4 | 配网标识 | 标识当前设备配网类型,1字节<br />0:不需要配网设备(如手表平板等自带蜂窝网络的设备);<br />1:NAN配网 + softAP组合模式配网(能自动使用当前网络配网,不需要输入密码);<br />2:softAP配网,连入设备热点,输入wifi密码进行配网;<br />3:ble蓝牙配网;<br />4:NAN配网 近距离贴近设备配网(能自动使用当前网络配网,不需要输入密码); | 1 |
|
|
|
+| 5 | ApSSID | 设备自身热点名,典型值12字节,小于32字节,NAN配网和softAp配网必须提供;构成一般为前缀teamX + nodeID | teamX-Watering01 |
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+FA中Commandutil.java文件里修改补光灯、风扇的serviceId
|
|
|
+
|
|
|
+例如getLampStatusCommand中补光灯设置。
|
|
|
+
|
|
|
+原补光灯serviceId
|
|
|
+
|
|
|
+```
|
|
|
+ public static Command getLampStatusCommand(boolean isOn, int dutyCycle) {
|
|
|
+ JSONObject params = new JSONObject();
|
|
|
+ if (isOn) {
|
|
|
+ params.put("LampStatus", "ON");
|
|
|
+ params.put("DutyCycle", dutyCycle);
|
|
|
+ } else {
|
|
|
+ params.put("LampStatus", "OFF");
|
|
|
+ params.put("DutyCycle", 1);
|
|
|
+ }
|
|
|
+ return new Command("SetLampStatus","SmartLamp", JSONObject.toJSONString(params));
|
|
|
+ }
|
|
|
+```
|
|
|
+
|
|
|
+修改后,补光灯serviceId
|
|
|
+
|
|
|
+```
|
|
|
+ public static Command getLampStatusCommand(boolean isOn, int dutyCycle) {
|
|
|
+ JSONObject params = new JSONObject();
|
|
|
+ if (isOn) {
|
|
|
+ params.put("LampStatus", "ON");
|
|
|
+ params.put("DutyCycle", dutyCycle);
|
|
|
+ } else {
|
|
|
+ params.put("LampStatus", "OFF");
|
|
|
+ params.put("DutyCycle", 0);
|
|
|
+ }
|
|
|
+ return new Command("SetLampStatus", "SmartWatering", JSONObject.toJSONString(params));
|
|
|
+ }
|
|
|
+```
|
|
|
+
|
|
|
+同理可设置风扇的serviceId
|