webman USR 有人物联服务应用插件
详细介绍
基于 webman + GatewayWorker 开发的一个用于对接有人物联产品的插件应用,支持对接有人 串口服务器、IO控制器等产品。
功能特性
- 接入 IO控制器:USR-IO424T、USR-IO808
- 接入 串口服务器:USR-TCP232-302、USR-TCP232-304、USR-TCP232-306、USR-W600、USR-W610、USR-W630
- 接入 4G DTU:USR-G776、USR-G771
- 设备交互数据记录
- 设备上下线记录
- WebHooks
- WebSocket
备注:
IO控制器 使用 USR-IO424T 进行开发,支持解析出DI、DO,控制修改DO。
串口服务器 使用 USR-TCP232-306、USR-W600 进行开发。
4G DTU 使用 USR-G776 进行开发。
上述未标注的设备型号由于没有设备未进行数据交互验证,根据产品设计说明书分析 数据交互方面与已有同类型的设备没有区别
安装使用
下载
下载源码放入plugin目录下,restart重启webman。
访问
访问 http://127.0.0.1:8787/app/usr 会自动进入安装页面,按照提示安装组件,设置数据库、Redis配置信息。
安装配置完成后 关闭重启webman,即可使用。
接口
use plugin\usr\api\Device;
// IO控制器设置DO
Device::DO(string $code, int $DO, bool $checked);
// 向设备推送数据
Device::send(string $code, string $data);
WebSocket
可以使用WebSocket客户端实时接收设备发送数据,数据格式和
WebHooks完全一致WebSocket 与 WebHooks的区别:
1、WebSocket 接收的是所有设备的信息,WebHooks 可设置一个地址只接收一个设备的信息
2、WebHooks 会出现延迟,WebSocket 为实时转发
连接示例
ws = new WebSocket("ws://127.0.0.1:8902/app/<?=config('plugin.usr.usr.websocket_auth')?>");
ws.onopen = function () {
setInterval(() => {
ws.send('ping');
}, 30000);
};
ws.onmessage = function(e) {
console.log(e.data);
};
WebHooks
请求方式
- POST
请求数据
{
"event": "DI",
"usr": {
"id": 1,
"name": "USR-IO424T",
"code": "USR63FD6D92D8619",
"model": "USR-IO424T",
"address": 1
},
"data": {
"DI-1": 1,
"DI-2": 1,
"DI-3": 1,
"DI-4": 1,
"DI-5": 0,
"DI-6": 0,
"DI-7": 0,
"DI-8": 0
}
}
数据说明
整个数据包为
JSON数据
|参数名|类型|说明|
|:---- |:----- |----- |
|event |string | 事件 |
|usr |array | 设备信息 |
|data |array / string | 数据 |
设备配置示例
USR-IO424T
USR-TCP232-306
USR-W600
USR-G776
优化 IO主从机地址转化
优化 限制IO主从机地址值的大小
优化 服务安装流程
优化 数据编码转换
修改 数据库字符集
新增 服务启动缓存设备信息
新增 WebSocket连接认证
调整 WebSocket推送数据的格式
调整 WebHooks发送数据的格式