Java教程

DGIOT设备配置同步下发控制指令

本文主要是介绍DGIOT设备配置同步下发控制指令,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
2022072806370046.png **[小 迪 导读]**:在控制设备的过程中,经常会碰到下面这些问题:
老式方案  dgiot基于dlink协议配置同步方案
平台根据实际情况控制开关机  平台远程控制设备同步开关机状态

老式方案缺点:

  • 当平台控制指令没有发下去时,平台需要再次点击发出控制指令,较浪费人力

dgiot配置同步方案优点:

  • 设备上电,设备状态全权由平台管理员控制即平台控制值,例如:平台为关机,现场设备即使开机平台将会自动下发关机指令,将设备再次关机。

整体交互图

202207291206282.png

方案执行步骤

1.在平台上创建产品,如下图为例。

2022072912142858.png #### 2.在产品详情的物模型中创建设备上传的"key":"value"对应的物模型,如下图为例。 2022072913170931.png #### 3.在产品详情的可视化中添加低代码,如下图为例。 2022072912195717.png #### 4.点击设计编辑低代码,先编辑成产品的低代码用以添加平台的key与上传设备的key进行关联,如下图。 2022072912315039.png2022072912483773.png202207291233244.png ``` 产品低代码例子,以实际产品为准: { "type": "form", "api": { "url": "iotapi/classes/Device/parse_objectid", "method": "put", "headers": { "store": "localStorage", "dgiotReplace": "parse_objectid" }, "dataType": "json", "requestAdaptor": "return {\r\n \"status\":0,\r\n \"msg\":\"\",\r\n \"data\":response\r\n }" }, "body": [ { "id": "u:52fbc3355570", "mode": "inline", "name": "Ctrl", "type": "switch", "label": "开关机", "onText": "开", "option": "", "offText": "关", "trueValue": 1, "falseValue": 0, "validateApi": { "url": "iotapi/amis/Product/b5f75b59a3", "method": "put", "requestAdaptor": "return {\r\n ...api,\r\n data:{\r\n profile:{\r\n Ctrl:api.data.Ctrl \r\n }\r\n }\r\n}" }, "submitOnChange": true } ], "title": "开关机控制器", "trueValue": true, "falseValue": false, "submitText": "", "optionAtLeft": false } ``` #### 5.在产品详情的可视化中找到刚刚创建的低代码,点击预览,点击一下开关机添加平台key,如下图。 2022072912362920.png #### 6.在产品详情的物模型中找到刚刚创建的物模型,点击编辑,关联平台key与设备key,如下图。 2022072913170958.png #### 7.在产品详情的可视化中找到刚刚创建的低代码,点击设计,修改为设备的低代码,如下图。 2022072912502532.png ``` 设备低代码示例: { "type": "form", "api": { "url": "iotapi/classes/Device/parse_objectid", "method": "put", "headers": { "store": "localStorage", "dgiotReplace": "parse_objectid" }, "dataType": "json", "requestAdaptor": "return {\r\n \"status\":0,\r\n \"msg\":\"\",\r\n \"data\":response\r\n }" }, "body": [ { "id": "u:52fbc3355570", "mode": "inline", "name": "Ctrl", "type": "switch", "label": "开关机", "onText": "开", "option": "", "offText": "关", "trueValue": 1, "falseValue": 0, "validateApi": { "url": "iotapi/amis/Device/parse_objectid", "method": "put", "headers": { "store": "localStorage", "dgiotReplace": "parse_objectid" }, "requestAdaptor": "return {\r\n ...api,\r\n data:{\r\n profile:{\r\n Ctrl:api.data.Ctrl \r\n }\r\n }\r\n}" }, "submitOnChange": true } ], "title": "开关机控制器", "trueValue": true, "falseValue": false, "submitText": "", "optionAtLeft": false } ``` #### 8.设备模拟登录,方式一:MQTTX登录;方式二:ip:18083登录,用户名:admin,密码:public ##### 方式一:MQTTX登录 2022072912560662.png ##### 方式二:ip:18083登录,用户名:admin,密码:public 2022072912572455.png 用户名及密码获取方式,如下图: 2022072912595870.png #### 9.设备数据模拟上报,方式一:MQTTX上报;方式二:ip:18083上报 ``` dgiot上报数据Topic $dg/thing/{ProductId}/{DeviceAddr}/properties/report dgiot下发控制命令Topic $dg/device/{ProductId}/{DeviceAddr}/profile ``` 可以在设备详情查看其对应Topic,如下图: 2022072913043141.png2022072913043227.png ##### 方式一:MQTTX上报 2022072913084399.png ###### 上报数据 2022072913172421.png ###### 订阅到的控制指令 2022072913084399.png ##### 方式二:ip:18083上报 2022072913084381.png ###### 上报数据 202207291317255.png ###### 订阅到的控制指令 2022072913165629.png

10.设备配置同步实现,以ip:18083为例

平台设置为开机,如下图
2022072913335924.png ##### ip:18083模拟上报状态值为0(关机的状态),平台自动下发开机命令,如下图 2022072913340040.png ##### 平台设置为关机,如下图 2022072913335822.png ##### ip:18083模拟上报状态值为1(开机的状态),平台自动下发关机命令,如下图 2022072913335964.png

[小 迪 点评]

  • dgiot平台配置同步下发控制指令。
  • 在成本方面dgiot为降低用户使用成本,降低运维成本。

想了解更多 dgiot 的具体细节,欢迎大家在GitHub上查看相关源代码。

这篇关于DGIOT设备配置同步下发控制指令的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!