From d2e4781938c68397b26a553611edbd1fabfbaf9a Mon Sep 17 00:00:00 2001 From: PandaX <18610165312@163.com> Date: Thu, 12 Oct 2023 20:35:43 +0800 Subject: [PATCH] =?UTF-8?q?=E3=80=90=E4=BC=98=E5=8C=96=E3=80=91=E8=A7=84?= =?UTF-8?q?=E5=88=99=E9=93=BErpc=E8=AF=B7=E6=B1=82=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- fatal/latest.log | 1339 ++++------------- pkg/rule_engine/message/message.go | 17 +- .../nodes/action_rpc_request_node.go | 23 +- .../nodes/action_rpc_respond_node.go | 49 + .../nodes/filter_message_type_switch_node.go | 1 + pkg/rule_engine/nodes/filter_switch_node.go | 1 + pkg/rule_engine/nodes/init.go | 1 + shutdown.bat | 2 +- ...1be965018e95bac136ec17f_20231012191851.jpg | Bin 0 -> 174262 bytes 9 files changed, 394 insertions(+), 1039 deletions(-) create mode 100644 pkg/rule_engine/nodes/action_rpc_respond_node.go create mode 100644 uploads/file/1df420e901be965018e95bac136ec17f_20231012191851.jpg diff --git a/fatal/latest.log b/fatal/latest.log index 62fef3f..f9434e9 100644 --- a/fatal/latest.log +++ b/fatal/latest.log @@ -1,1015 +1,324 @@ -2023-10-05 09:54:37.946 [INFO] [D:/workspace/go/pkg/mod/github.com/!panda!x!g!o/!panda!kit@v0.0.0-20230914055936-853aa978dda1/starter/gorm.go:36] : 连接mysql [root:!MyEMS1@tcp(127.0.0.1:3306)/pandax_iot?charset=utf8&loc=Local&parseTime=true] -2023-10-05 09:54:37.955 [INFO] [D:/workspace/go/project/PandaX/PandaX/main.go:45] : mysql连接成功 -2023-10-05 09:54:37.958 [INFO] [D:/workspace/go/project/PandaX/PandaX/main.go:50] : Redis连接成功 -2023-10-05 09:54:37.958 [INFO] [D:/workspace/go/project/PandaX/PandaX/main.go:57] : Tdengine连接成功 -2023-10-05 09:54:38.121 [INFO] [D:/workspace/go/project/PandaX/PandaX/main.go:75] : 路由初始化完成 -2023-10-05 09:54:38.121 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/transport/http_server.go:38] : HTTP Server listen: :7788 -2023-10-05 09:54:38.122 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/transport/http_server.go:46] : HTTP Server listen: :7788 -2023-10-05 09:54:38.123 [INFO] [D:/workspace/go/project/PandaX/PandaX/iothub/server/tcpserver/hook.go:29] : TCP IOTHUB HOOK Start SUCCESS, Server listen: -2023-10-05 09:54:38.123 [INFO] [D:/workspace/go/project/PandaX/PandaX/iothub/server/emqxserver/hook.go:33] : IOTHUB HOOK Start SUCCESS,Grpc Server listen: -2023-10-05 09:54:38.232 [INFO] [D:/workspace/go/project/PandaX/PandaX/apps/job/jobs/jobbase.go:87] : 2023-10-05 09:54:38 [INFO] JobCore start success. -2023-10-05 10:14:40.465 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [POST=/system/user/login] : 登录 ->336ms -2023-10-05 10:14:40.604 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [GET=/system/user/auth] [uid=1] [uname=panda] : 认证信息 ->131ms -2023-10-05 10:14:41.995 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [GET=/device/alarm/panel] [uid=1] [uname=panda] : 获取面板告警分组 ->66ms -2023-10-05 10:14:42.087 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uname=panda] [GET=/device/panel] [uid=1] : 获取DevicePanel ->165ms -2023-10-05 10:14:58.107 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uid=1] [uname=panda] [GET=/device/alarm/list] : 获取告警分页列表 ->35ms -2023-10-05 10:15:11.351 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uname=panda] [GET=/system/menu/list] [uid=1] : 获取菜单列表 ->5ms -2023-10-05 10:15:11.458 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uid=1] [uname=panda] [GET=/system/dict/data/type] : 获取字典数据列表通过字典类型 ->104ms -2023-10-05 10:15:11.459 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [GET=/system/dict/data/type] [uid=1] [uname=panda] : 获取字典数据列表通过字典类型 ->99ms -2023-10-05 10:15:11.460 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uid=1] [uname=panda] [GET=/system/dict/data/type] : 获取字典数据列表通过字典类型 ->90ms -2023-10-05 10:15:16.847 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [GET=/system/menu/menuTreeSelect] : 获取菜单树 ->6ms -2023-10-05 10:15:16.856 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uid=1] [uname=panda] [GET=/system/dict/data/type] : 获取字典数据列表通过字典类型 ->8ms -2023-10-05 10:15:16.866 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uid=1] [uname=panda] [GET=/system/dict/data/type] : 获取字典数据列表通过字典类型 ->8ms -2023-10-05 10:15:16.876 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uid=1] [uname=panda] [GET=/system/dict/data/type] : 获取字典数据列表通过字典类型 ->6ms -2023-10-05 10:15:16.888 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [GET=/system/dict/data/type] [uid=1] [uname=panda] : 获取字典数据列表通过字典类型 ->8ms -2023-10-05 10:15:19.056 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uid=1] [uname=panda] [PUT=/system/menu] : 修改菜单信息 ->215ms -2023-10-05 10:15:19.087 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uid=1] [uname=panda] [GET=/system/menu/list] : 获取菜单列表 ->5ms -2023-10-05 10:15:23.421 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uid=1] [uname=panda] [GET=/system/menu/list] : 获取菜单列表 ->5ms -2023-10-05 10:15:23.434 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [GET=/system/dict/data/type] [uid=1] [uname=panda] : 获取字典数据列表通过字典类型 ->6ms -2023-10-05 10:15:23.442 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [GET=/system/dict/data/type] [uid=1] [uname=panda] : 获取字典数据列表通过字典类型 ->6ms -2023-10-05 10:15:23.451 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uid=1] [uname=panda] [GET=/system/dict/data/type] : 获取字典数据列表通过字典类型 ->6ms -2023-10-05 10:15:34.567 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uname=panda] [GET=/system/dict/data/type] [uid=1] : 获取字典数据列表通过字典类型 ->4ms -2023-10-05 10:15:34.688 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uname=panda] [GET=/device/product/category/list/tree/label] [uid=1] : 获取ProductCategory树 ->135ms -2023-10-05 10:15:34.688 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uid=1] [uname=panda] [GET=/device/product/list] : 获取Product分页列表 ->145ms -2023-10-05 10:15:34.763 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [GET=/upload/get/d7432e83df771fad85aa4e74235b0591_20230819092625.png] : 获取图片 ->0ms -2023-10-05 10:15:36.556 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uname=panda] [GET=/device/template/list] [uid=1] : 获取Template分页列表 ->51ms -2023-10-05 10:15:37.801 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uid=1] [uname=panda] [GET=/device/ota/list] : 获取Ota分页列表 ->59ms -2023-10-05 10:15:45.109 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [GET=/upload/get/d7432e83df771fad85aa4e74235b0591_20230819092625.png] : 获取图片 ->0ms -2023-10-05 10:15:46.307 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [GET=/device/ota/list] [uid=1] [uname=panda] : 获取Ota分页列表 ->10ms -2023-10-05 10:15:54.351 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uid=1] [uname=panda] [GET=/device/ota/list] : 获取Ota分页列表 ->10ms -2023-10-05 10:15:58.128 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uid=1] [uname=panda] [GET=/device/template/list] : 获取Template分页列表 ->11ms -2023-10-05 10:15:59.407 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [GET=/device/ota/list] [uid=1] [uname=panda] : 获取Ota分页列表 ->34ms -2023-10-05 10:16:43.071 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uid=1] [uname=panda] [GET=/device/ota/list] : 获取Ota分页列表 ->15ms -2023-10-05 10:16:45.502 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uid=1] [uname=panda] [GET=/device/ota/list] : 获取Ota分页列表 ->9ms -2023-10-05 10:16:48.116 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [GET=/upload/get/d7432e83df771fad85aa4e74235b0591_20230819092625.png] : 获取图片 ->0ms -2023-10-05 10:16:51.017 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uname=panda] [GET=/device/template/list] [uid=1] : 获取Template分页列表 ->46ms -2023-10-05 10:16:51.799 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uname=panda] [GET=/device/template/list] [uid=1] : 获取Template分页列表 ->12ms -2023-10-05 10:16:52.816 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uid=1] [uname=panda] [GET=/device/template/list] : 获取Template分页列表 ->10ms -2023-10-05 10:16:54.014 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [GET=/device/ota/list] [uid=1] [uname=panda] : 获取Ota分页列表 ->9ms -2023-10-05 10:17:01.254 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uid=1] [uname=panda] [GET=/device/template/list] : 获取Template分页列表 ->9ms -2023-10-05 10:17:02.210 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uid=1] [uname=panda] [GET=/device/template/list] : 获取Template分页列表 ->8ms -2023-10-05 10:17:02.815 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uid=1] [uname=panda] [GET=/device/template/list] : 获取Template分页列表 ->9ms -2023-10-05 10:17:04.223 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uid=1] [uname=panda] [GET=/device/template/list] : 获取Template分页列表 ->10ms -2023-10-05 10:17:04.884 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [GET=/device/template/list] [uid=1] [uname=panda] : 获取Template分页列表 ->11ms -2023-10-05 10:17:08.923 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uid=1] [uname=panda] [GET=/device/ota/list] : 获取Ota分页列表 ->9ms -2023-10-05 10:17:14.038 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [GET=/device/template/list] [uid=1] [uname=panda] : 获取Template分页列表 ->9ms -2023-10-05 10:17:26.751 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uname=panda] [GET=/system/dict/data/type] [uid=1] : 获取字典数据列表通过字典类型 ->11ms -2023-10-05 10:17:26.756 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uid=1] [uname=panda] [GET=/device/product/list] : 获取Product分页列表 ->25ms -2023-10-05 10:17:26.759 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [GET=/device/product/category/list/tree/label] [uid=1] [uname=panda] : 获取ProductCategory树 ->4ms -2023-10-05 10:17:26.842 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [GET=/upload/get/d7432e83df771fad85aa4e74235b0591_20230819092625.png] : 获取图片 ->0ms -2023-10-05 10:17:29.191 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uid=1] [uname=panda] [GET=/device/template/list] : 获取Template分页列表 ->9ms -2023-10-05 10:17:33.102 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [GET=/device/template/list] [uid=1] [uname=panda] : 获取Template分页列表 ->10ms -2023-10-05 10:17:34.555 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [GET=/device/template/list] [uid=1] [uname=panda] : 获取Template分页列表 ->9ms -2023-10-05 10:17:36.134 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uid=1] [uname=panda] [GET=/device/ota/list] : 获取Ota分页列表 ->10ms -2023-10-05 10:17:44.857 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uname=panda] [GET=/device/template/list] [uid=1] : 获取Template分页列表 ->11ms -2023-10-05 10:17:45.727 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [GET=/device/template/list] [uid=1] [uname=panda] : 获取Template分页列表 ->25ms -2023-10-05 10:17:46.702 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [GET=/device/ota/list] [uid=1] [uname=panda] : 获取Ota分页列表 ->9ms -2023-10-05 10:17:54.770 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [GET=/device/ota/list] [uid=1] [uname=panda] : 获取Ota分页列表 ->8ms -2023-10-05 10:18:00.069 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uid=1] [uname=panda] [GET=/device/ota/list] : 获取Ota分页列表 ->9ms -2023-10-05 10:18:04.356 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [GET=/upload/get/d7432e83df771fad85aa4e74235b0591_20230819092625.png] : 获取图片 ->0ms -2023-10-05 10:18:07.585 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uname=panda] [GET=/device/template/list] [uid=1] : 获取Template分页列表 ->13ms -2023-10-05 10:18:08.094 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uid=1] [uname=panda] [GET=/device/template/list] : 获取Template分页列表 ->9ms -2023-10-05 10:18:19.202 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [GET=/upload/get/d7432e83df771fad85aa4e74235b0591_20230819092625.png] : 获取图片 ->0ms -2023-10-05 10:18:22.759 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [GET=/device/template/list] [uid=1] [uname=panda] : 获取Template分页列表 ->9ms -2023-10-05 10:18:23.241 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uid=1] [uname=panda] [GET=/device/template/list] : 获取Template分页列表 ->8ms -2023-10-05 10:18:28.411 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [GET=/device/template/list] [uid=1] [uname=panda] : 获取Template分页列表 ->10ms -2023-10-05 10:18:29.270 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uid=1] [uname=panda] [GET=/device/template/list] : 获取Template分页列表 ->10ms -2023-10-05 10:18:31.122 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uid=1] [uname=panda] [GET=/device/template/list] : 获取Template分页列表 ->15ms -2023-10-05 10:18:50.330 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uid=1] [uname=panda] [GET=/device/template/list] : 获取Template分页列表 ->9ms -2023-10-05 10:18:51.313 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uid=1] [uname=panda] [GET=/device/template/list] : 获取Template分页列表 ->10ms -2023-10-05 10:18:52.038 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uid=1] [uname=panda] [GET=/device/template/list] : 获取Template分页列表 ->10ms -2023-10-05 10:19:35.510 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [GET=/device/template/list] [uid=1] [uname=panda] : 获取Template分页列表 ->41ms -2023-10-05 10:20:10.382 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uid=1] [uname=panda] [GET=/device/product/category/list/tree/label] : 获取ProductCategory树 ->5ms -2023-10-05 10:20:10.406 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uid=1] [uname=panda] [GET=/system/dict/data/type] : 获取字典数据列表通过字典类型 ->20ms -2023-10-05 10:20:10.424 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [GET=/device/product/list] [uid=1] [uname=panda] : 获取Product分页列表 ->15ms -2023-10-05 10:20:10.523 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [GET=/upload/get/d7432e83df771fad85aa4e74235b0591_20230819092625.png] : 获取图片 ->0ms -2023-10-05 10:20:14.244 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [GET=/device/template/list] [uid=1] [uname=panda] : 获取Template分页列表 ->12ms -2023-10-05 10:20:15.428 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uid=1] [uname=panda] [GET=/device/template/list] : 获取Template分页列表 ->9ms -2023-10-05 10:20:19.829 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uid=1] [uname=panda] [GET=/device/template/list] : 获取Template分页列表 ->9ms -2023-10-05 10:20:21.377 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uname=panda] [GET=/device/template/list] [uid=1] : 获取Template分页列表 ->9ms -2023-10-05 10:20:25.109 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [GET=/device/template/list] [uid=1] [uname=panda] : 获取Template分页列表 ->10ms -2023-10-05 10:20:26.732 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uname=panda] [GET=/device/template/list] [uid=1] : 获取Template分页列表 ->10ms -2023-10-05 10:20:28.364 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uid=1] [uname=panda] [GET=/device/ota/list] : 获取Ota分页列表 ->10ms -2023-10-05 10:20:31.538 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uid=1] [uname=panda] [GET=/device/ota/list] : 获取Ota分页列表 ->8ms -2023-10-05 10:20:41.337 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uid=1] [uname=panda] [GET=/device/template/list] : 获取Template分页列表 ->11ms -2023-10-05 10:20:42.067 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uname=panda] [GET=/device/template/list] [uid=1] : 获取Template分页列表 ->10ms -2023-10-05 10:23:33.743 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [GET=/device/ota/list] [uid=1] [uname=panda] : 获取Ota分页列表 ->9ms -2023-10-05 10:26:04.651 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uid=1] [uname=panda] [GET=/device/ota/list] : 获取Ota分页列表 ->48ms -2023-10-05 10:26:13.996 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uid=1] [uname=panda] [GET=/device/product/category/list/tree/label] : 获取ProductCategory树 ->12ms -2023-10-05 10:26:14.004 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [GET=/device/product/list] [uid=1] [uname=panda] : 获取Product分页列表 ->25ms -2023-10-05 10:26:14.005 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uname=panda] [GET=/system/dict/data/type] [uid=1] : 获取字典数据列表通过字典类型 ->5ms -2023-10-05 10:26:14.081 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [GET=/upload/get/d7432e83df771fad85aa4e74235b0591_20230819092625.png] : 获取图片 ->0ms -2023-10-05 10:26:21.337 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uname=panda] [GET=/device/ota/list] [uid=1] : 获取Ota分页列表 ->9ms -2023-10-05 10:26:30.538 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [POST=/upload/up] [uid=1] [uname=panda] : 上传图片 ->0ms -2023-10-05 10:27:22.539 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uid=1] [uname=panda] [GET=/device/ota/list] : 获取Ota分页列表 ->14ms -2023-10-05 10:27:30.473 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uid=1] [uname=panda] [POST=/upload/up] : 上传图片 ->0ms -2023-10-05 10:28:04.579 [ERROR] [D:/workspace/go/project/PandaX/PandaX/apps/device/services/product_ota.go:122] : 更新失败 -2023-10-05 10:28:04.689 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uid=1] [uname=panda] [POST=/device/ota] : 添加Ota信息 ->322ms -2023-10-05 10:28:04.720 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [GET=/device/ota/list] [uid=1] [uname=panda] : 获取Ota分页列表 ->10ms -2023-10-05 10:30:18.796 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [GET=/device/template/list] [uid=1] [uname=panda] : 获取Template分页列表 ->16ms -2023-10-05 10:30:19.280 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uname=panda] [GET=/device/ota/list] [uid=1] : 获取Ota分页列表 ->13ms -2023-10-05 10:36:16.333 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uid=1] [uname=panda] [POST=/upload/up] : 上传图片 ->0ms -2023-10-05 10:37:09.116 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uname=panda] [POST=/device/ota] [uid=1] : 添加Ota信息 ->182ms -2023-10-05 10:37:09.145 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uname=panda] [GET=/device/ota/list] [uid=1] : 获取Ota分页列表 ->10ms -2023-10-05 10:37:31.943 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uid=1] [uname=panda] [GET=/device/template/list] : 获取Template分页列表 ->13ms -2023-10-05 10:37:33.763 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uname=panda] [GET=/device/template/list] [uid=1] : 获取Template分页列表 ->8ms -2023-10-05 10:38:13.247 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [GET=/system/dict/data/type] [uid=1] [uname=panda] : 获取字典数据列表通过字典类型 ->4ms -2023-10-05 10:38:13.258 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uid=1] [uname=panda] [GET=/system/dict/data/type] : 获取字典数据列表通过字典类型 ->4ms -2023-10-05 10:38:13.372 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uname=panda] [GET=/system/organization/organizationTree] [uid=1] : 获取所有组织树 ->137ms -2023-10-05 10:38:13.377 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uname=panda] [GET=/system/user/list] [uid=1] : 得到用户分页列表 ->152ms -2023-10-05 10:38:16.439 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [GET=/system/dict/data/type] [uid=1] [uname=panda] : 获取字典数据列表通过字典类型 ->7ms -2023-10-05 10:38:16.446 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uname=panda] [GET=/system/role/list] [uid=1] : 获取角色分页列表 ->6ms -2023-10-05 10:38:35.809 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uname=panda] [GET=/system/role/list] [uid=1] : 获取角色分页列表 ->14ms -2023-10-05 10:38:35.820 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [GET=/system/dict/data/type] [uid=1] [uname=panda] : 获取字典数据列表通过字典类型 ->9ms -2023-10-05 10:38:44.418 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uid=1] [uname=panda] [GET=/device/product/list/all] : 获取Product分页列表 ->13ms -2023-10-05 10:38:44.423 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [GET=/system/dict/data/type] [uid=1] [uname=panda] : 获取字典数据列表通过字典类型 ->4ms -2023-10-05 10:38:44.511 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uid=1] [uname=panda] [GET=/device/group/list/tree/label] : 获取DeviceGroup树 ->116ms -2023-10-05 10:38:44.516 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uid=1] [uname=panda] [GET=/device/list] : 获取Device分页列表 ->131ms -2023-10-05 10:38:51.644 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [GET=/device/product/category/list/tree/label] [uid=1] [uname=panda] : 获取ProductCategory树 ->7ms -2023-10-05 10:38:51.648 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [GET=/device/product/list] [uid=1] [uname=panda] : 获取Product分页列表 ->25ms -2023-10-05 10:38:51.656 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [GET=/system/dict/data/type] [uid=1] [uname=panda] : 获取字典数据列表通过字典类型 ->8ms -2023-10-05 10:38:51.739 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [GET=/upload/get/d7432e83df771fad85aa4e74235b0591_20230819092625.png] : 获取图片 ->0ms -2023-10-05 10:38:56.259 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uname=panda] [GET=/device/ota/list] [uid=1] : 获取Ota分页列表 ->12ms -2023-10-05 10:40:27.745 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uid=1] [uname=panda] [GET=/system/dict/data/type] : 获取字典数据列表通过字典类型 ->10ms -2023-10-05 10:40:27.747 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uname=panda] [GET=/device/product/list] [uid=1] : 获取Product分页列表 ->23ms -2023-10-05 10:40:27.765 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uname=panda] [GET=/device/product/category/list/tree/label] [uid=1] : 获取ProductCategory树 ->11ms -2023-10-05 10:40:27.913 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [GET=/upload/get/d7432e83df771fad85aa4e74235b0591_20230819092625.png] : 获取图片 ->0ms -2023-10-05 10:41:19.031 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [GET=/upload/get/d7432e83df771fad85aa4e74235b0591_20230819092625.png] : 获取图片 ->0ms -2023-10-05 10:41:19.054 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uname=panda] [GET=/device/product/category/list/tree/label] [uid=1] : 获取ProductCategory树 ->4ms -2023-10-05 10:41:19.073 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uid=1] [uname=panda] [GET=/system/dict/data/type] : 获取字典数据列表通过字典类型 ->6ms -2023-10-05 10:41:19.249 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uname=panda] [GET=/rule/chain/list/label] [uid=1] : 获取规则引擎Label列表 ->191ms -2023-10-05 10:41:22.036 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [PUT=/device/product] [uid=1] [uname=panda] : 修改Product信息 ->373ms -2023-10-05 10:41:22.074 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [GET=/device/product/list] [uid=1] [uname=panda] : 获取Product分页列表 ->15ms -2023-10-05 10:41:23.993 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [GET=/upload/get/d7432e83df771fad85aa4e74235b0591_20230819092625.png] : 获取图片 ->0ms -2023-10-05 10:41:24.935 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [GET=/device/template/list] [uid=1] [uname=panda] : 获取Template分页列表 ->9ms -2023-10-05 10:41:26.121 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [GET=/device/template/list] [uid=1] [uname=panda] : 获取Template分页列表 ->10ms -2023-10-05 10:41:26.768 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uid=1] [uname=panda] [GET=/device/template/list] : 获取Template分页列表 ->31ms -2023-10-05 10:41:27.487 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uid=1] [uname=panda] [GET=/device/ota/list] : 获取Ota分页列表 ->11ms -2023-10-05 10:42:58.941 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uid=1] [uname=panda] [GET=/device/product/category/list/tree/label] : 获取ProductCategory树 ->7ms -2023-10-05 10:42:58.965 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uid=1] [uname=panda] [GET=/device/product/list] : 获取Product分页列表 ->41ms -2023-10-05 10:42:58.975 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uid=1] [uname=panda] [GET=/system/dict/data/type] : 获取字典数据列表通过字典类型 ->9ms -2023-10-05 10:42:59.135 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [GET=/upload/get/9b37cd4ca37090649adcee8bf17cfdcc_20230414141350.png] : 获取图片 ->66ms -2023-10-05 10:46:10.716 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uname=panda] [GET=/device/product/category/list/tree/label] [uid=1] : 获取ProductCategory树 ->8ms -2023-10-05 10:46:10.725 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uid=1] [uname=panda] [GET=/device/product/list] : 获取Product分页列表 ->27ms -2023-10-05 10:46:10.731 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uid=1] [uname=panda] [GET=/system/dict/data/type] : 获取字典数据列表通过字典类型 ->5ms -2023-10-05 10:47:15.545 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [GET=/upload/get/9b37cd4ca37090649adcee8bf17cfdcc_20230414141350.png] : 获取图片 ->0ms -2023-10-05 10:47:37.723 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [GET=/upload/get/4bf1bc29230a528bbd8e95af4cc6269f_20231005103616.sh] : 获取图片 ->0ms -2023-10-05 10:48:43.560 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uname=panda] [GET=/device/ota/list] [uid=1] : 获取Ota分页列表 ->11ms -2023-10-05 10:49:20.826 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uid=1] [uname=panda] [GET=/device/product/category/list/tree/label] : 获取ProductCategory树 ->5ms -2023-10-05 10:49:20.847 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uname=panda] [GET=/system/dict/data/type] [uid=1] : 获取字典数据列表通过字典类型 ->6ms -2023-10-05 10:49:20.870 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uname=panda] [GET=/device/product/list] [uid=1] : 获取Product分页列表 ->38ms -2023-10-05 10:49:25.385 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uname=panda] [GET=/device/ota/list] [uid=1] : 获取Ota分页列表 ->10ms -2023-10-05 10:49:27.734 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [GET=/upload/get/4bf1bc29230a528bbd8e95af4cc6269f_20231005102730.sh] : 获取图片 ->0ms -2023-10-05 10:49:34.914 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uname=panda] [GET=/system/dict/data/type] [uid=1] : 获取字典数据列表通过字典类型 ->7ms -2023-10-05 10:49:34.928 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uname=panda] [GET=/device/product/category/list/tree/label] [uid=1] : 获取ProductCategory树 ->8ms -2023-10-05 10:49:34.951 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uid=1] [uname=panda] [GET=/device/product/list] : 获取Product分页列表 ->15ms -2023-10-05 10:50:37.231 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uname=panda] [GET=/device/ota/list] [uid=1] : 获取Ota分页列表 ->11ms -2023-10-05 10:51:48.488 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [GET=/device/product/category/list/tree/label] [uid=1] [uname=panda] : 获取ProductCategory树 ->4ms -2023-10-05 10:51:48.510 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uid=1] [uname=panda] [GET=/system/dict/data/type] : 获取字典数据列表通过字典类型 ->7ms -2023-10-05 10:51:48.514 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [GET=/device/product/list] [uid=1] [uname=panda] : 获取Product分页列表 ->21ms -2023-10-05 10:51:52.651 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uname=panda] [GET=/device/ota/list] [uid=1] : 获取Ota分页列表 ->13ms -2023-10-05 10:51:54.325 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [GET=/upload/get/4bf1bc29230a528bbd8e95af4cc6269f_20231005102730.sh] : 获取图片 ->0ms -2023-10-05 10:53:15.816 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [GET=/device/ota/list] [uid=1] [uname=panda] : 获取Ota分页列表 ->13ms -2023-10-05 10:55:54.266 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uname=panda] [GET=/device/product/category/list/tree/label] [uid=1] : 获取ProductCategory树 ->4ms -2023-10-05 10:55:54.291 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uid=1] [uname=panda] [GET=/system/dict/data/type] : 获取字典数据列表通过字典类型 ->8ms -2023-10-05 10:55:54.293 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uid=1] [uname=panda] [GET=/device/product/list] : 获取Product分页列表 ->20ms -2023-10-05 10:56:02.277 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uid=1] [uname=panda] [GET=/system/dict/data/type] : 获取字典数据列表通过字典类型 ->23ms -2023-10-05 10:56:02.283 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [GET=/device/product/list] [uid=1] [uname=panda] : 获取Product分页列表 ->46ms -2023-10-05 10:56:02.288 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uid=1] [uname=panda] [GET=/device/product/category/list/tree/label] : 获取ProductCategory树 ->6ms -2023-10-05 10:56:15.440 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uid=1] [uname=panda] [GET=/system/dict/data/type] : 获取字典数据列表通过字典类型 ->7ms -2023-10-05 10:56:15.441 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uid=1] [uname=panda] [GET=/device/product/list] : 获取Product分页列表 ->17ms -2023-10-05 10:56:15.459 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [GET=/device/product/category/list/tree/label] [uid=1] [uname=panda] : 获取ProductCategory树 ->15ms -2023-10-05 10:56:20.265 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [GET=/device/ota/list] [uid=1] [uname=panda] : 获取Ota分页列表 ->10ms -2023-10-05 10:56:59.801 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uid=1] [uname=panda] [POST=/upload/up] : 上传图片 ->87ms -2023-10-05 10:57:14.052 [ERROR] [D:/workspace/go/project/PandaX/PandaX/apps/device/services/product_ota.go:122] : 更新失败 -2023-10-05 10:57:14.224 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [POST=/device/ota] [uid=1] [uname=panda] : 添加Ota信息 ->452ms -2023-10-05 10:57:14.258 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [GET=/device/ota/list] [uid=1] [uname=panda] : 获取Ota分页列表 ->10ms -2023-10-05 10:57:17.661 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [GET=/upload/get/0ab71ae4a9b9b6f045d43be8de89344d_20231005105659.zip] : 获取图片 ->14ms -2023-10-05 10:57:36.221 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uid=1] [uname=panda] [DELETE=/device/ota/pKjVGv1YYg] : 删除Ota信息 ->134ms -2023-10-05 10:57:36.248 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uid=1] [uname=panda] [GET=/device/ota/list] : 获取Ota分页列表 ->7ms -2023-10-05 11:28:12.252 [INFO] [D:/workspace/go/project/PandaX/PandaX/iothub/server/emqxserver/hook.go:114] : 账号ZTg0ZDNkZDItOWQ1Mi0zYjM2LTg1NWQtYTI0NmE0NDcyOTM2,开始认证 -2023-10-05 11:28:12.256 [INFO] [D:/workspace/go/project/PandaX/PandaX/iothub/server/emqxserver/hook.go:84] : Client emqx@172.17.0.5 Connected -2023-10-05 11:28:13.103 [INFO] [D:/workspace/go/project/PandaX/PandaX/iothub/server/emqxserver/hook.go:138] : ZTg0ZDNkZDItOWQ1Mi0zYjM2LTg1NWQtYTI0NmE0NDcyOTM2订阅了[name:"$dz/events/device/s7-device/data/update"] -2023-10-05 11:28:13.433 [INFO] [D:/workspace/go/project/PandaX/PandaX/iothub/server/emqxserver/hook.go:138] : ZTg0ZDNkZDItOWQ1Mi0zYjM2LTg1NWQtYTI0NmE0NDcyOTM2订阅了[name:"v1/devices/me/telemetry"] -2023-10-05 11:28:13.743 [INFO] [D:/workspace/go/project/PandaX/PandaX/iothub/server/emqxserver/hook.go:138] : ZTg0ZDNkZDItOWQ1Mi0zYjM2LTg1NWQtYTI0NmE0NDcyOTM2订阅了[name:"$hw/events/device/s7-device/twin/update"] -2023-10-05 11:28:14.043 [INFO] [D:/workspace/go/project/PandaX/PandaX/iothub/server/emqxserver/hook.go:138] : ZTg0ZDNkZDItOWQ1Mi0zYjM2LTg1NWQtYTI0NmE0NDcyOTM2订阅了[name:"v1/devices/me/rpc/request/+"] -2023-10-05 11:28:19.487 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uname=panda] [GET=/device/group/list/tree/label] [uid=1] : 获取DeviceGroup树 ->11ms -2023-10-05 11:28:19.493 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [GET=/device/list] [uid=1] [uname=panda] : 获取Device分页列表 ->25ms -2023-10-05 11:28:19.498 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uid=1] [uname=panda] [GET=/device/product/list/all] : 获取Product分页列表 ->11ms -2023-10-05 11:28:19.500 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uname=panda] [GET=/system/dict/data/type] [uid=1] : 获取字典数据列表通过字典类型 ->5ms -2023-10-05 11:28:23.274 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uname=panda] [GET=/device/9GOIPOI6GQ/status] [uid=1] : 获取Device状态信息 ->15ms -2023-10-05 11:28:28.509 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uname=panda] [GET=/device/9GOIPOI6GQ/attribute/down] [uid=1] : 获取Device属性下发 ->12ms -2023-10-05 11:28:42.620 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uid=1] [uname=panda] [GET=/device/cmd/list] : 获取命令下发分页列表 ->103ms -2023-10-05 11:28:43.791 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uname=panda] [GET=/device/template/list/all] [uid=1] : 获取Template列表 ->4ms -2023-10-05 11:28:50.007 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [POST=/device/cmd] [uid=1] [uname=panda] : 命令下发 ->261ms -2023-10-05 11:28:50.035 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uname=panda] [GET=/device/cmd/list] [uid=1] : 获取命令下发分页列表 ->9ms -2023-10-05 11:29:05.824 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uid=1] [uname=panda] [GET=/device/template/list/all] : 获取Template列表 ->5ms -2023-10-05 11:29:43.896 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [GET=/device/alarm/list] [uid=1] [uname=panda] : 获取告警分页列表 ->14ms -2023-10-05 11:29:45.258 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [GET=/device/9GOIPOI6GQ/status] [uid=1] [uname=panda] : 获取Device状态信息 ->16ms -2023-10-05 11:39:33.812 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uid=1] [uname=panda] [GET=/device/cmd/list] : 获取命令下发分页列表 ->37ms -2023-10-05 11:39:40.612 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uid=1] [uname=panda] [GET=/device/product/category/list/tree/label] : 获取ProductCategory树 ->6ms -2023-10-05 11:39:40.615 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uid=1] [uname=panda] [GET=/device/product/list] : 获取Product分页列表 ->16ms -2023-10-05 11:39:40.618 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uname=panda] [GET=/system/dict/data/type] [uid=1] : 获取字典数据列表通过字典类型 ->4ms -2023-10-05 11:39:44.644 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uid=1] [uname=panda] [GET=/device/ota/list] : 获取Ota分页列表 ->12ms -2023-10-05 11:39:46.911 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [GET=/device/template/list] [uid=1] [uname=panda] : 获取Template分页列表 ->15ms -2023-10-05 11:39:47.699 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [GET=/device/template/list] [uid=1] [uname=panda] : 获取Template分页列表 ->10ms -2023-10-05 11:43:31.754 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uid=1] [uname=panda] [POST=/device/template] : 添加Template信息 ->266ms -2023-10-05 11:43:31.789 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uid=1] [uname=panda] [GET=/device/template/list] : 获取Template分页列表 ->11ms -2023-10-05 11:43:36.281 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uid=1] [uname=panda] [GET=/device/group/list/tree/label] : 获取DeviceGroup树 ->14ms -2023-10-05 11:43:36.290 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uname=panda] [GET=/device/product/list/all] [uid=1] : 获取Product分页列表 ->13ms -2023-10-05 11:43:36.297 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uid=1] [uname=panda] [GET=/device/list] : 获取Device分页列表 ->42ms -2023-10-05 11:43:36.298 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uid=1] [uname=panda] [GET=/system/dict/data/type] : 获取字典数据列表通过字典类型 ->6ms -2023-10-05 11:43:39.140 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uid=1] [uname=panda] [GET=/device/cmd/list] : 获取命令下发分页列表 ->9ms -2023-10-05 11:43:40.344 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [GET=/device/template/list/all] [uid=1] [uname=panda] : 获取Template列表 ->4ms -2023-10-05 11:43:59.320 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uid=1] [uname=panda] [GET=/device/template/list/all] : 获取Template列表 ->5ms -2023-10-05 11:44:40.913 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uid=1] [uname=panda] [GET=/system/dict/data/type] : 获取字典数据列表通过字典类型 ->6ms -2023-10-05 11:44:40.916 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [GET=/device/product/list] [uid=1] [uname=panda] : 获取Product分页列表 ->16ms -2023-10-05 11:44:40.919 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [GET=/device/product/category/list/tree/label] [uid=1] [uname=panda] : 获取ProductCategory树 ->4ms -2023-10-05 11:44:45.536 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uid=1] [uname=panda] [GET=/device/ota/list] : 获取Ota分页列表 ->11ms -2023-10-05 11:44:51.956 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uid=1] [uname=panda] [GET=/device/group/list/tree/label] : 获取DeviceGroup树 ->16ms -2023-10-05 11:44:51.974 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uid=1] [uname=panda] [GET=/device/product/list/all] : 获取Product分页列表 ->8ms -2023-10-05 11:44:51.977 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [GET=/system/dict/data/type] [uid=1] [uname=panda] : 获取字典数据列表通过字典类型 ->4ms -2023-10-05 11:44:51.981 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uid=1] [uname=panda] [GET=/device/list] : 获取Device分页列表 ->28ms -2023-10-05 11:44:56.841 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uname=panda] [GET=/device/cmd/list] [uid=1] : 获取命令下发分页列表 ->10ms -2023-10-05 11:44:57.824 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uid=1] [uname=panda] [GET=/device/template/list/all] : 获取Template列表 ->3ms -2023-10-05 11:45:19.883 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uid=1] [uname=panda] [POST=/device/cmd] : 命令下发 ->269ms -2023-10-05 11:45:19.909 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uid=1] [uname=panda] [GET=/device/cmd/list] : 获取命令下发分页列表 ->7ms -2023-10-05 12:06:31.399 [ERROR] [D:/workspace/go/project/PandaX/PandaX/pkg/transport/http_server.go:48] : error http serve: http: Server closed -2023-10-05 12:06:40.439 [INFO] [D:/workspace/go/pkg/mod/github.com/!panda!x!g!o/!panda!kit@v0.0.0-20230914055936-853aa978dda1/starter/gorm.go:36] : 连接mysql [root:!MyEMS1@tcp(127.0.0.1:3306)/pandax_iot?charset=utf8&loc=Local&parseTime=true] -2023-10-05 12:06:40.446 [INFO] [D:/workspace/go/project/PandaX/PandaX/main.go:45] : mysql连接成功 -2023-10-05 12:06:40.447 [INFO] [D:/workspace/go/project/PandaX/PandaX/main.go:50] : Redis连接成功 -2023-10-05 12:06:40.448 [INFO] [D:/workspace/go/project/PandaX/PandaX/main.go:57] : Tdengine连接成功 -2023-10-05 12:06:40.454 [INFO] [D:/workspace/go/project/PandaX/PandaX/main.go:75] : 路由初始化完成 -2023-10-05 12:06:40.454 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/transport/http_server.go:38] : HTTP Server listen: :7788 -2023-10-05 12:06:40.455 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/transport/http_server.go:46] : HTTP Server listen: :7788 -2023-10-05 12:06:40.456 [INFO] [D:/workspace/go/project/PandaX/PandaX/iothub/server/emqxserver/hook.go:33] : IOTHUB HOOK Start SUCCESS,Grpc Server listen: -2023-10-05 12:06:40.456 [INFO] [D:/workspace/go/project/PandaX/PandaX/iothub/server/tcpserver/hook.go:29] : TCP IOTHUB HOOK Start SUCCESS, Server listen: -2023-10-05 12:06:40.461 [INFO] [D:/workspace/go/project/PandaX/PandaX/apps/job/jobs/jobbase.go:87] : 2023-10-05 12:06:40 [INFO] JobCore start success. -2023-10-05 12:06:43.466 [INFO] [D:/workspace/go/project/PandaX/PandaX/iothub/server/emqxserver/hook.go:114] : 账号pandax,开始认证 -2023-10-05 12:06:43.468 [INFO] [D:/workspace/go/project/PandaX/PandaX/iothub/server/emqxserver/hook.go:84] : Client emqx@172.17.0.5 Connected -2023-10-05 12:07:47.164 [INFO] [D:/workspace/go/pkg/mod/github.com/!panda!x!g!o/!panda!kit@v0.0.0-20230914055936-853aa978dda1/starter/gorm.go:36] : 连接mysql [root:!MyEMS1@tcp(127.0.0.1:3306)/pandax_iot?charset=utf8&loc=Local&parseTime=true] -2023-10-05 12:07:47.169 [INFO] [D:/workspace/go/project/PandaX/PandaX/main.go:45] : mysql连接成功 -2023-10-05 12:07:47.171 [INFO] [D:/workspace/go/project/PandaX/PandaX/main.go:50] : Redis连接成功 -2023-10-05 12:07:47.171 [INFO] [D:/workspace/go/project/PandaX/PandaX/main.go:57] : Tdengine连接成功 -2023-10-05 12:07:47.178 [INFO] [D:/workspace/go/project/PandaX/PandaX/main.go:75] : 路由初始化完成 -2023-10-05 12:07:47.178 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/transport/http_server.go:38] : HTTP Server listen: :7788 -2023-10-05 12:07:47.178 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/transport/http_server.go:46] : HTTP Server listen: :7788 -2023-10-05 12:07:47.179 [INFO] [D:/workspace/go/project/PandaX/PandaX/iothub/server/tcpserver/hook.go:29] : TCP IOTHUB HOOK Start SUCCESS, Server listen: -2023-10-05 12:07:47.179 [INFO] [D:/workspace/go/project/PandaX/PandaX/iothub/server/emqxserver/hook.go:33] : IOTHUB HOOK Start SUCCESS,Grpc Server listen: -2023-10-05 12:07:47.185 [INFO] [D:/workspace/go/project/PandaX/PandaX/apps/job/jobs/jobbase.go:87] : 2023-10-05 12:07:47 [INFO] JobCore start success. -2023-10-05 12:07:51.326 [INFO] [D:/workspace/go/project/PandaX/PandaX/iothub/server/emqxserver/hook.go:114] : 账号pandax,开始认证 -2023-10-05 12:07:51.328 [INFO] [D:/workspace/go/project/PandaX/PandaX/iothub/server/emqxserver/hook.go:84] : Client emqx@172.17.0.5 Connected -2023-10-05 12:08:45.241 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [GET=/device/product/category/list/tree/label] [uid=1] [uname=panda] : 获取ProductCategory树 ->5ms -2023-10-05 12:08:45.244 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uid=1] [uname=panda] [GET=/device/product/list] : 获取Product分页列表 ->21ms -2023-10-05 12:08:45.249 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uname=panda] [GET=/system/dict/data/type] [uid=1] : 获取字典数据列表通过字典类型 ->4ms -2023-10-05 12:08:47.733 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uname=panda] [GET=/device/ota/list] [uid=1] : 获取Ota分页列表 ->11ms -2023-10-05 12:09:00.468 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [POST=/upload/up] [uid=1] [uname=panda] : 上传图片 ->45ms -2023-10-05 12:09:26.309 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uid=1] [uname=panda] [POST=/device/ota] : 添加Ota信息 ->208ms -2023-10-05 12:09:26.340 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uid=1] [uname=panda] [GET=/device/ota/list] : 获取Ota分页列表 ->10ms -2023-10-05 12:10:19.630 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [GET=/device/template/list] [uid=1] [uname=panda] : 获取Template分页列表 ->19ms -2023-10-05 12:10:20.010 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uname=panda] [GET=/device/ota/list] [uid=1] : 获取Ota分页列表 ->11ms -2023-10-05 12:10:29.149 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [GET=/device/ota/list] [uid=1] [uname=panda] : 获取Ota分页列表 ->52ms -2023-10-05 12:10:32.677 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uid=1] [uname=panda] [GET=/device/template/list] : 获取Template分页列表 ->11ms -2023-10-05 12:10:34.323 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uname=panda] [GET=/device/template/list] [uid=1] : 获取Template分页列表 ->10ms -2023-10-05 12:10:36.594 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uname=panda] [GET=/device/template/list] [uid=1] : 获取Template分页列表 ->10ms -2023-10-05 12:12:08.773 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uid=1] [uname=panda] [GET=/device/group/list/tree/label] : 获取DeviceGroup树 ->12ms -2023-10-05 12:12:08.782 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uid=1] [uname=panda] [GET=/device/product/list/all] : 获取Product分页列表 ->12ms -2023-10-05 12:12:08.784 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [GET=/device/list] [uid=1] [uname=panda] : 获取Device分页列表 ->30ms -2023-10-05 12:12:08.784 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [GET=/system/dict/data/type] [uid=1] [uname=panda] : 获取字典数据列表通过字典类型 ->4ms -2023-10-05 12:12:12.078 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uid=1] [uname=panda] [GET=/device/cmd/list] : 获取命令下发分页列表 ->10ms -2023-10-07 11:43:05.705 [INFO] [D:/workspace/go/pkg/mod/github.com/!panda!x!g!o/!panda!kit@v0.0.0-20230914055936-853aa978dda1/starter/gorm.go:36] : 连接mysql [root:pandax@tcp(101.35.247.125:3306)/pandax_iot?charset=utf8&loc=Local&parseTime=true] -2023-10-07 11:43:05.890 [INFO] [D:/workspace/go/project/PandaX/PandaX/main.go:45] : mysql连接成功 -2023-10-07 11:43:05.982 [INFO] [D:/workspace/go/project/PandaX/PandaX/main.go:50] : Redis连接成功 -2023-10-07 11:43:05.983 [INFO] [D:/workspace/go/project/PandaX/PandaX/main.go:57] : Tdengine连接成功 -2023-10-07 11:43:06.044 [INFO] [D:/workspace/go/project/PandaX/PandaX/main.go:75] : 路由初始化完成 -2023-10-07 11:43:06.044 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/transport/http_server.go:38] : HTTP Server listen: :7788 -2023-10-07 11:43:06.044 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/transport/http_server.go:46] : HTTP Server listen: :7788 -2023-10-07 11:43:06.045 [INFO] [D:/workspace/go/project/PandaX/PandaX/iothub/server/tcpserver/hook.go:29] : TCP IOTHUB HOOK Start SUCCESS, Server listen: -2023-10-07 11:43:06.045 [INFO] [D:/workspace/go/project/PandaX/PandaX/iothub/server/emqxserver/hook.go:33] : IOTHUB HOOK Start SUCCESS,Grpc Server listen: -2023-10-07 11:43:06.268 [INFO] [D:/workspace/go/project/PandaX/PandaX/apps/job/jobs/jobbase.go:87] : 2023-10-07 11:43:06 [INFO] JobCore start success. -2023-10-07 11:43:07.001 [INFO] [D:/workspace/go/project/PandaX/PandaX/iothub/server/emqxserver/hook.go:98] : pandax断开连接 -2023-10-07 11:43:05.705 [INFO] [D:/workspace/go/pkg/mod/github.com/!panda!x!g!o/!panda!kit@v0.0.0-20230914055936-853aa978dda1/starter/gorm.go:36] : 连接mysql [root:pandax@tcp(101.35.247.125:3306)/pandax_iot?charset=utf8&loc=Local&parseTime=true] -2023-10-07 11:43:05.890 [INFO] [D:/workspace/go/project/PandaX/PandaX/main.go:45] : mysql连接成功 -2023-10-07 11:43:05.982 [INFO] [D:/workspace/go/project/PandaX/PandaX/main.go:50] : Redis连接成功 -2023-10-07 11:43:05.983 [INFO] [D:/workspace/go/project/PandaX/PandaX/main.go:57] : Tdengine连接成功 -2023-10-07 11:43:06.044 [INFO] [D:/workspace/go/project/PandaX/PandaX/main.go:75] : 路由初始化完成 -2023-10-07 11:43:06.044 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/transport/http_server.go:38] : HTTP Server listen: :7788 -2023-10-07 11:43:06.044 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/transport/http_server.go:46] : HTTP Server listen: :7788 -2023-10-07 11:43:06.045 [INFO] [D:/workspace/go/project/PandaX/PandaX/iothub/server/tcpserver/hook.go:29] : TCP IOTHUB HOOK Start SUCCESS, Server listen: -2023-10-07 11:43:06.045 [INFO] [D:/workspace/go/project/PandaX/PandaX/iothub/server/emqxserver/hook.go:33] : IOTHUB HOOK Start SUCCESS,Grpc Server listen: -2023-10-07 11:43:06.268 [INFO] [D:/workspace/go/project/PandaX/PandaX/apps/job/jobs/jobbase.go:87] : 2023-10-07 11:43:06 [INFO] JobCore start success. -2023-10-07 11:43:07.001 [INFO] [D:/workspace/go/project/PandaX/PandaX/iothub/server/emqxserver/hook.go:98] : pandax断开连接 -2023-10-07 11:43:21.516 [INFO] [D:/workspace/go/pkg/mod/github.com/!panda!x!g!o/!panda!kit@v0.0.0-20230914055936-853aa978dda1/starter/gorm.go:36] : 连接mysql [root:pandax@tcp(101.35.247.125:3306)/pandax_iot?charset=utf8&loc=Local&parseTime=true] -2023-10-07 11:43:21.670 [INFO] [D:/workspace/go/project/PandaX/PandaX/main.go:45] : mysql连接成功 -2023-10-07 11:43:21.773 [INFO] [D:/workspace/go/project/PandaX/PandaX/main.go:50] : Redis连接成功 -2023-10-07 11:43:21.773 [INFO] [D:/workspace/go/project/PandaX/PandaX/main.go:57] : Tdengine连接成功 -2023-10-07 11:43:21.844 [INFO] [D:/workspace/go/project/PandaX/PandaX/main.go:75] : 路由初始化完成 -2023-10-07 11:43:21.844 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/transport/http_server.go:38] : HTTP Server listen: :7788 -2023-10-07 11:43:21.845 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/transport/http_server.go:46] : HTTP Server listen: :7788 -2023-10-07 11:43:21.845 [INFO] [D:/workspace/go/project/PandaX/PandaX/iothub/server/tcpserver/hook.go:29] : TCP IOTHUB HOOK Start SUCCESS, Server listen: -2023-10-07 11:43:21.846 [INFO] [D:/workspace/go/project/PandaX/PandaX/iothub/server/emqxserver/hook.go:33] : IOTHUB HOOK Start SUCCESS,Grpc Server listen: -2023-10-07 11:43:22.063 [INFO] [D:/workspace/go/project/PandaX/PandaX/apps/job/jobs/jobbase.go:87] : 2023-10-07 11:43:22 [INFO] JobCore start success. -2023-10-05 15:16:02.861 [INFO] [D:/workspace/go/pkg/mod/github.com/!panda!x!g!o/!panda!kit@v0.0.0-20230914055936-853aa978dda1/starter/gorm.go:36] : 连接mysql [root:pandax@tcp(101.35.247.125:3306)/pandax_iot?charset=utf8&loc=Local&parseTime=true] -2023-10-05 15:16:05.022 [INFO] [D:/workspace/go/project/PandaX/PandaX/main.go:45] : mysql连接成功 -2023-10-05 15:16:06.117 [INFO] [D:/workspace/go/project/PandaX/PandaX/main.go:50] : Redis连接成功 -2023-10-05 15:16:06.117 [INFO] [D:/workspace/go/project/PandaX/PandaX/main.go:57] : Tdengine连接成功 -2023-10-05 15:16:06.880 [INFO] [D:/workspace/go/project/PandaX/PandaX/main.go:75] : 路由初始化完成 -2023-10-05 15:16:06.880 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/transport/http_server.go:38] : HTTP Server listen: :7788 -2023-10-05 15:16:06.880 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/transport/http_server.go:46] : HTTP Server listen: :7788 -2023-10-05 15:16:06.882 [INFO] [D:/workspace/go/project/PandaX/PandaX/iothub/server/tcpserver/hook.go:29] : TCP IOTHUB HOOK Start SUCCESS, Server listen: -2023-10-05 15:16:06.882 [INFO] [D:/workspace/go/project/PandaX/PandaX/iothub/server/emqxserver/hook.go:33] : IOTHUB HOOK Start SUCCESS,Grpc Server listen: -2023-10-05 15:16:09.872 [INFO] [D:/workspace/go/project/PandaX/PandaX/apps/job/jobs/jobbase.go:87] : 2023-10-05 15:16:09 [INFO] JobCore start success. -2023-10-05 15:16:11.536 [ERROR] [D:/workspace/go/project/PandaX/PandaX/pkg/transport/http_server.go:48] : error http serve: http: Server closed -2023-10-07 08:20:03.151 [INFO] [D:/workspace/go/pkg/mod/github.com/!panda!x!g!o/!panda!kit@v0.0.0-20230914055936-853aa978dda1/starter/gorm.go:36] : 连接mysql [root:pandax@tcp(101.35.247.125:3306)/pandax_iot?charset=utf8&loc=Local&parseTime=true] -2023-10-07 08:20:03.375 [INFO] [D:/workspace/go/project/PandaX/PandaX/main.go:45] : mysql连接成功 -2023-10-07 08:20:03.466 [INFO] [D:/workspace/go/project/PandaX/PandaX/main.go:50] : Redis连接成功 -2023-10-07 08:20:03.466 [INFO] [D:/workspace/go/project/PandaX/PandaX/main.go:57] : Tdengine连接成功 -2023-10-07 08:20:03.555 [INFO] [D:/workspace/go/project/PandaX/PandaX/main.go:75] : 路由初始化完成 -2023-10-07 08:20:03.555 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/transport/http_server.go:38] : HTTP Server listen: :7788 -2023-10-07 08:20:03.556 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/transport/http_server.go:46] : HTTP Server listen: :7788 -2023-10-07 08:20:03.557 [INFO] [D:/workspace/go/project/PandaX/PandaX/iothub/server/tcpserver/hook.go:29] : TCP IOTHUB HOOK Start SUCCESS, Server listen: -2023-10-07 08:20:03.557 [INFO] [D:/workspace/go/project/PandaX/PandaX/iothub/server/emqxserver/hook.go:33] : IOTHUB HOOK Start SUCCESS,Grpc Server listen: -2023-10-07 08:20:03.862 [INFO] [D:/workspace/go/project/PandaX/PandaX/apps/job/jobs/jobbase.go:87] : 2023-10-07 08:20:03 [INFO] JobCore start success. -2023-10-07 08:20:22.438 [ERROR] [D:/workspace/go/project/PandaX/PandaX/pkg/transport/http_server.go:48] : error http serve: http: Server closed -2023-10-07 08:20:28.639 [INFO] [D:/workspace/go/pkg/mod/github.com/!panda!x!g!o/!panda!kit@v0.0.0-20230914055936-853aa978dda1/starter/gorm.go:36] : 连接mysql [root:pandax@tcp(101.35.247.125:3306)/pandax_iot?charset=utf8&loc=Local&parseTime=true] -2023-10-07 08:20:28.814 [INFO] [D:/workspace/go/project/PandaX/PandaX/main.go:45] : mysql连接成功 -2023-10-07 08:20:28.903 [INFO] [D:/workspace/go/project/PandaX/PandaX/main.go:50] : Redis连接成功 -2023-10-07 08:20:28.903 [INFO] [D:/workspace/go/project/PandaX/PandaX/main.go:57] : Tdengine连接成功 -2023-10-07 08:20:28.977 [INFO] [D:/workspace/go/project/PandaX/PandaX/main.go:75] : 路由初始化完成 -2023-10-07 08:20:28.978 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/transport/http_server.go:38] : HTTP Server listen: :7788 -2023-10-07 08:20:28.978 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/transport/http_server.go:46] : HTTP Server listen: :7788 -2023-10-07 08:20:28.978 [INFO] [D:/workspace/go/project/PandaX/PandaX/iothub/server/tcpserver/hook.go:29] : TCP IOTHUB HOOK Start SUCCESS, Server listen: -2023-10-07 08:20:28.979 [INFO] [D:/workspace/go/project/PandaX/PandaX/iothub/server/emqxserver/hook.go:33] : IOTHUB HOOK Start SUCCESS,Grpc Server listen: -2023-10-07 08:20:29.189 [INFO] [D:/workspace/go/project/PandaX/PandaX/apps/job/jobs/jobbase.go:87] : 2023-10-07 08:20:29 [INFO] JobCore start success. -panic: not Authorized - -goroutine 68 [running]: -pandax/iothub/client/mqttclient.GetMqttClinent({0xc0006f2040, 0x19}, {0xc000216c00, 0x6}, {0xc000216c60, 0x6}) - D:/workspace/go/project/PandaX/PandaX/iothub/client/mqttclient/mqtt.go:50 +0x31d -pandax/iothub/client/mqttclient.InitMqtt({0xc0001b21b0?, 0x186f359?}, {0xc000216c00, 0x6}, {0xc000216c60, 0x6}) - D:/workspace/go/project/PandaX/PandaX/iothub/client/mqttclient/mqtt.go:29 +0x93 -pandax/iothub/server/emqxserver.InitEmqxHook({0x0, 0x0}, 0xc00133a9c0) - D:/workspace/go/project/PandaX/PandaX/iothub/server/emqxserver/hook.go:36 +0x1f1 -created by pandax/iothub.InitIothub - D:/workspace/go/project/PandaX/PandaX/iothub/iothub.go:13 +0xed -2023-10-07 08:21:03.943 [INFO] [D:/workspace/go/pkg/mod/github.com/!panda!x!g!o/!panda!kit@v0.0.0-20230914055936-853aa978dda1/starter/gorm.go:36] : 连接mysql [root:pandax@tcp(101.35.247.125:3306)/pandax_iot?charset=utf8&loc=Local&parseTime=true] -2023-10-07 08:21:04.590 [INFO] [D:/workspace/go/project/PandaX/PandaX/main.go:45] : mysql连接成功 -2023-10-07 08:21:04.814 [INFO] [D:/workspace/go/project/PandaX/PandaX/main.go:50] : Redis连接成功 -2023-10-07 08:21:04.814 [INFO] [D:/workspace/go/project/PandaX/PandaX/main.go:57] : Tdengine连接成功 -2023-10-07 08:21:05.019 [INFO] [D:/workspace/go/project/PandaX/PandaX/main.go:75] : 路由初始化完成 -2023-10-07 08:21:05.019 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/transport/http_server.go:38] : HTTP Server listen: :7788 -2023-10-07 08:21:05.019 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/transport/http_server.go:46] : HTTP Server listen: :7788 -2023-10-07 08:21:05.019 [INFO] [D:/workspace/go/project/PandaX/PandaX/iothub/server/tcpserver/hook.go:29] : TCP IOTHUB HOOK Start SUCCESS, Server listen: -2023-10-07 08:21:05.019 [INFO] [D:/workspace/go/project/PandaX/PandaX/iothub/server/emqxserver/hook.go:33] : IOTHUB HOOK Start SUCCESS,Grpc Server listen: -2023-10-07 08:21:05.668 [INFO] [D:/workspace/go/project/PandaX/PandaX/apps/job/jobs/jobbase.go:87] : 2023-10-07 08:21:05 [INFO] JobCore start success. -panic: not Authorized - -goroutine 12 [running]: -pandax/iothub/client/mqttclient.GetMqttClinent({0xc00003c3e0, 0x19}, {0xc00051c8b0, 0x6}, {0xc00051c8d0, 0x6}) - D:/workspace/go/project/PandaX/PandaX/iothub/client/mqttclient/mqtt.go:50 +0x31d -pandax/iothub/client/mqttclient.InitMqtt({0xc00026e1b0?, 0x1d6f359?}, {0xc00051c8b0, 0x6}, {0xc00051c8d0, 0x6}) - D:/workspace/go/project/PandaX/PandaX/iothub/client/mqttclient/mqtt.go:29 +0x93 -pandax/iothub/server/emqxserver.InitEmqxHook({0x0, 0x0}, 0xc001442140) - D:/workspace/go/project/PandaX/PandaX/iothub/server/emqxserver/hook.go:36 +0x1f1 -created by pandax/iothub.InitIothub - D:/workspace/go/project/PandaX/PandaX/iothub/iothub.go:13 +0xed -panic: not Authorized - -goroutine 54 [running]: -pandax/iothub/client/mqttclient.GetMqttClinent({0xc001410180, 0x19}, {0xc0004d6680, 0x6}, {0xc0004d66a0, 0x6}) - D:/workspace/go/project/PandaX/PandaX/iothub/client/mqttclient/mqtt.go:50 +0x31d -pandax/iothub/client/mqttclient.InitMqtt({0xc0004d8408?, 0x1d9f359?}, {0xc0004d6680, 0x6}, {0xc0004d66a0, 0x6}) - D:/workspace/go/project/PandaX/PandaX/iothub/client/mqttclient/mqtt.go:29 +0x93 -pandax/iothub/server/emqxserver.InitEmqxHook({0x0, 0x0}, 0xc001380b80) - D:/workspace/go/project/PandaX/PandaX/iothub/server/emqxserver/hook.go:36 +0x1f1 -created by pandax/iothub.InitIothub - D:/workspace/go/project/PandaX/PandaX/iothub/iothub.go:13 +0xed -panic: not Authorized - -goroutine 83 [running]: -pandax/iothub/client/mqttclient.GetMqttClinent({0xc0005b8020, 0x19}, {0xc000090560, 0x6}, {0xc000090580, 0x6}) - D:/workspace/go/project/PandaX/PandaX/iothub/client/mqttclient/mqtt.go:50 +0x31d -pandax/iothub/client/mqttclient.InitMqtt({0xc00063c1b0?, 0x242f359?}, {0xc000090560, 0x6}, {0xc000090580, 0x6}) - D:/workspace/go/project/PandaX/PandaX/iothub/client/mqttclient/mqtt.go:29 +0x93 -pandax/iothub/server/emqxserver.InitEmqxHook({0x0, 0x0}, 0xc0013caa00) - D:/workspace/go/project/PandaX/PandaX/iothub/server/emqxserver/hook.go:36 +0x1f1 -created by pandax/iothub.InitIothub - D:/workspace/go/project/PandaX/PandaX/iothub/iothub.go:13 +0xed -2023-10-07 08:27:50.804 [INFO] [D:/workspace/go/pkg/mod/github.com/!panda!x!g!o/!panda!kit@v0.0.0-20230914055936-853aa978dda1/starter/gorm.go:36] : 连接mysql [root:pandax@tcp(101.35.247.125:3306)/pandax_iot?charset=utf8&loc=Local&parseTime=true] -2023-10-07 08:27:51.150 [INFO] [D:/workspace/go/project/PandaX/PandaX/main.go:45] : mysql连接成功 -2023-10-07 08:27:51.313 [INFO] [D:/workspace/go/project/PandaX/PandaX/main.go:50] : Redis连接成功 -2023-10-07 08:27:51.313 [INFO] [D:/workspace/go/project/PandaX/PandaX/main.go:57] : Tdengine连接成功 -2023-10-07 08:27:51.525 [INFO] [D:/workspace/go/project/PandaX/PandaX/main.go:75] : 路由初始化完成 -2023-10-07 08:27:51.525 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/transport/http_server.go:38] : HTTP Server listen: :7788 -2023-10-07 08:27:51.525 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/transport/http_server.go:46] : HTTP Server listen: :7788 -2023-10-07 08:27:51.525 [INFO] [D:/workspace/go/project/PandaX/PandaX/iothub/server/emqxserver/hook.go:33] : IOTHUB HOOK Start SUCCESS,Grpc Server listen: -2023-10-07 08:27:51.526 [INFO] [D:/workspace/go/project/PandaX/PandaX/iothub/server/tcpserver/hook.go:29] : TCP IOTHUB HOOK Start SUCCESS, Server listen: -2023-10-07 08:27:52.155 [INFO] [D:/workspace/go/project/PandaX/PandaX/apps/job/jobs/jobbase.go:87] : 2023-10-07 08:27:52 [INFO] JobCore start success. -panic: not Authorized - -goroutine 51 [running]: -pandax/iothub/client/mqttclient.GetMqttClinent({0xc0000ab9c0, 0x19}, {0xc0004d0ce0, 0x6}, {0xc0004d0d00, 0x6}) - D:/workspace/go/project/PandaX/PandaX/iothub/client/mqttclient/mqtt.go:50 +0x31d -pandax/iothub/client/mqttclient.InitMqtt({0xc0006101b0?, 0x1daf36e?}, {0xc0004d0ce0, 0x6}, {0xc0004d0d00, 0x6}) - D:/workspace/go/project/PandaX/PandaX/iothub/client/mqttclient/mqtt.go:29 +0x93 -pandax/iothub/server/emqxserver.InitEmqxHook({0x0, 0x0}, 0xc0013ceec0) - D:/workspace/go/project/PandaX/PandaX/iothub/server/emqxserver/hook.go:36 +0x1f1 -created by pandax/iothub.InitIothub - D:/workspace/go/project/PandaX/PandaX/iothub/iothub.go:13 +0xed -2023-10-07 08:29:09.619 [INFO] [D:/workspace/go/pkg/mod/github.com/!panda!x!g!o/!panda!kit@v0.0.0-20230914055936-853aa978dda1/starter/gorm.go:36] : 连接mysql [root:pandax@tcp(101.35.247.125:3306)/pandax_iot?charset=utf8&loc=Local&parseTime=true] -2023-10-07 08:29:09.874 [INFO] [D:/workspace/go/project/PandaX/PandaX/main.go:45] : mysql连接成功 -2023-10-07 08:29:09.966 [INFO] [D:/workspace/go/project/PandaX/PandaX/main.go:50] : Redis连接成功 -2023-10-07 08:29:09.966 [INFO] [D:/workspace/go/project/PandaX/PandaX/main.go:57] : Tdengine连接成功 -2023-10-07 08:29:10.044 [INFO] [D:/workspace/go/project/PandaX/PandaX/main.go:75] : 路由初始化完成 -2023-10-07 08:29:10.044 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/transport/http_server.go:38] : HTTP Server listen: :7788 -2023-10-07 08:29:10.044 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/transport/http_server.go:46] : HTTP Server listen: :7788 -2023-10-07 08:29:10.045 [INFO] [D:/workspace/go/project/PandaX/PandaX/iothub/server/emqxserver/hook.go:33] : IOTHUB HOOK Start SUCCESS,Grpc Server listen: -2023-10-07 08:29:10.045 [INFO] [D:/workspace/go/project/PandaX/PandaX/iothub/server/tcpserver/hook.go:29] : TCP IOTHUB HOOK Start SUCCESS, Server listen: -2023-10-07 08:29:10.615 [INFO] [D:/workspace/go/project/PandaX/PandaX/apps/job/jobs/jobbase.go:87] : 2023-10-07 08:29:10 [INFO] JobCore start success. -panic: not Authorized - -goroutine 54 [running]: -pandax/iothub/client/mqttclient.GetMqttClinent({0xc0005780c0, 0x19}, {0xc0006908b0, 0x6}, {0xc0006908d0, 0x6}) - D:/workspace/go/project/PandaX/PandaX/iothub/client/mqttclient/mqtt.go:52 +0x31d -pandax/iothub/client/mqttclient.InitMqtt({0xc000684a20, 0x13}, {0xc0006908b0, 0x6}, {0xc0006908d0, 0x6}) - D:/workspace/go/project/PandaX/PandaX/iothub/client/mqttclient/mqtt.go:31 +0x14b -pandax/iothub/server/emqxserver.InitEmqxHook({0x0, 0x0}, 0xc0012fff40) - D:/workspace/go/project/PandaX/PandaX/iothub/server/emqxserver/hook.go:36 +0x1f1 -created by pandax/iothub.InitIothub - D:/workspace/go/project/PandaX/PandaX/iothub/iothub.go:13 +0xed -2023-10-07 08:30:21.981 [INFO] [D:/workspace/go/pkg/mod/github.com/!panda!x!g!o/!panda!kit@v0.0.0-20230914055936-853aa978dda1/starter/gorm.go:36] : 连接mysql [root:pandax@tcp(101.35.247.125:3306)/pandax_iot?charset=utf8&loc=Local&parseTime=true] -2023-10-07 08:30:22.269 [INFO] [D:/workspace/go/project/PandaX/PandaX/main.go:45] : mysql连接成功 -2023-10-07 08:30:22.649 [INFO] [D:/workspace/go/project/PandaX/PandaX/main.go:50] : Redis连接成功 -2023-10-07 08:30:22.649 [INFO] [D:/workspace/go/project/PandaX/PandaX/main.go:57] : Tdengine连接成功 -2023-10-07 08:30:22.876 [INFO] [D:/workspace/go/project/PandaX/PandaX/main.go:75] : 路由初始化完成 -2023-10-07 08:30:22.876 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/transport/http_server.go:38] : HTTP Server listen: :7788 -2023-10-07 08:30:22.876 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/transport/http_server.go:46] : HTTP Server listen: :7788 -2023-10-07 08:30:22.877 [INFO] [D:/workspace/go/project/PandaX/PandaX/iothub/server/tcpserver/hook.go:29] : TCP IOTHUB HOOK Start SUCCESS, Server listen: -2023-10-07 08:30:22.877 [INFO] [D:/workspace/go/project/PandaX/PandaX/iothub/server/emqxserver/hook.go:33] : IOTHUB HOOK Start SUCCESS,Grpc Server listen: -2023-10-07 08:30:23.512 [INFO] [D:/workspace/go/project/PandaX/PandaX/apps/job/jobs/jobbase.go:87] : 2023-10-07 08:30:23 [INFO] JobCore start success. -panic: not Authorized - -goroutine 83 [running]: -pandax/iothub/client/mqttclient.GetMqttClinent({0xc0005be080, 0x1a}, {0xc000284a10, 0x6}, {0xc000284a30, 0x6}) - D:/workspace/go/project/PandaX/PandaX/iothub/client/mqttclient/mqtt.go:50 +0x31d -pandax/iothub/client/mqttclient.InitMqtt({0xc00043c1b0?, 0x1bcf35a?}, {0xc000284a10, 0x6}, {0xc000284a30, 0x6}) - D:/workspace/go/project/PandaX/PandaX/iothub/client/mqttclient/mqtt.go:29 +0x93 -pandax/iothub/server/emqxserver.InitEmqxHook({0x0, 0x0}, 0xc001476140) - D:/workspace/go/project/PandaX/PandaX/iothub/server/emqxserver/hook.go:36 +0x1f1 -created by pandax/iothub.InitIothub - D:/workspace/go/project/PandaX/PandaX/iothub/iothub.go:13 +0xed -2023-10-07 08:31:57.040 [INFO] [D:/workspace/go/pkg/mod/github.com/!panda!x!g!o/!panda!kit@v0.0.0-20230914055936-853aa978dda1/starter/gorm.go:36] : 连接mysql [root:pandax@tcp(101.35.247.125:3306)/pandax_iot?charset=utf8&loc=Local&parseTime=true] -2023-10-07 08:31:57.206 [INFO] [D:/workspace/go/project/PandaX/PandaX/main.go:45] : mysql连接成功 -2023-10-07 08:31:57.313 [INFO] [D:/workspace/go/project/PandaX/PandaX/main.go:50] : Redis连接成功 -2023-10-07 08:31:57.313 [INFO] [D:/workspace/go/project/PandaX/PandaX/main.go:57] : Tdengine连接成功 -2023-10-07 08:31:57.382 [INFO] [D:/workspace/go/project/PandaX/PandaX/main.go:75] : 路由初始化完成 -2023-10-07 08:31:57.382 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/transport/http_server.go:38] : HTTP Server listen: :7788 -2023-10-07 08:31:57.382 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/transport/http_server.go:46] : HTTP Server listen: :7788 -2023-10-07 08:31:57.382 [INFO] [D:/workspace/go/project/PandaX/PandaX/iothub/server/tcpserver/hook.go:29] : TCP IOTHUB HOOK Start SUCCESS, Server listen: -2023-10-07 08:31:57.382 [INFO] [D:/workspace/go/project/PandaX/PandaX/iothub/server/emqxserver/hook.go:33] : IOTHUB HOOK Start SUCCESS,Grpc Server listen: -2023-10-07 08:31:57.598 [INFO] [D:/workspace/go/project/PandaX/PandaX/apps/job/jobs/jobbase.go:87] : 2023-10-07 08:31:57 [INFO] JobCore start success. -2023-10-07 08:33:02.973 [ERROR] [D:/workspace/go/project/PandaX/PandaX/pkg/transport/http_server.go:48] : error http serve: http: Server closed -2023-10-07 08:33:11.939 [INFO] [D:/workspace/go/pkg/mod/github.com/!panda!x!g!o/!panda!kit@v0.0.0-20230914055936-853aa978dda1/starter/gorm.go:36] : 连接mysql [root:pandax@tcp(101.35.247.125:3306)/pandax_iot?charset=utf8&loc=Local&parseTime=true] -2023-10-07 08:33:12.218 [INFO] [D:/workspace/go/project/PandaX/PandaX/main.go:45] : mysql连接成功 -2023-10-07 08:33:12.378 [INFO] [D:/workspace/go/project/PandaX/PandaX/main.go:50] : Redis连接成功 -2023-10-07 08:33:12.378 [INFO] [D:/workspace/go/project/PandaX/PandaX/main.go:57] : Tdengine连接成功 -2023-10-07 08:33:12.506 [INFO] [D:/workspace/go/project/PandaX/PandaX/main.go:75] : 路由初始化完成 -2023-10-07 08:33:12.506 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/transport/http_server.go:38] : HTTP Server listen: :7788 -2023-10-07 08:33:12.507 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/transport/http_server.go:46] : HTTP Server listen: :7788 -2023-10-07 08:33:12.507 [INFO] [D:/workspace/go/project/PandaX/PandaX/iothub/server/tcpserver/hook.go:29] : TCP IOTHUB HOOK Start SUCCESS, Server listen: -2023-10-07 08:33:12.507 [INFO] [D:/workspace/go/project/PandaX/PandaX/iothub/server/emqxserver/hook.go:33] : IOTHUB HOOK Start SUCCESS,Grpc Server listen: -2023-10-07 08:33:12.829 [INFO] [D:/workspace/go/project/PandaX/PandaX/apps/job/jobs/jobbase.go:87] : 2023-10-07 08:33:12 [INFO] JobCore start success. -2023-10-07 09:00:55.321 [ERROR] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:31] [GET=/visual/datasource/list] : 获取DataSource分页列表 -<-e errCode: 4001, errMsg: 没有权限操作,可能是TOKEN过期了,请先登录 -2023-10-07 09:00:59.379 [ERROR] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:31] [GET=/visual/dataset/table/list] : 获取DataSetTable分页列表 -<-e errCode: 4001, errMsg: 没有权限操作,可能是TOKEN过期了,请先登录 -2023-10-07 09:01:05.444 [ERROR] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:31] [GET=/visual/datasource/list] : 获取DataSource分页列表 -<-e errCode: 4001, errMsg: 没有权限操作,可能是TOKEN过期了,请先登录 -2023-10-07 09:09:42.728 [ERROR] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:31] [PUT=/visual/screen] : 修改Screen信息 -<-e errCode: 4001, errMsg: 没有权限操作,可能是TOKEN过期了,请先登录 -2023-10-07 09:12:47.812 [ERROR] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:31] [PUT=/visual/screen] : 修改Screen信息 -<-e errCode: 4001, errMsg: 没有权限操作,可能是TOKEN过期了,请先登录 -2023-10-07 11:45:18.438 [INFO] [D:/workspace/go/pkg/mod/github.com/!panda!x!g!o/!panda!kit@v0.0.0-20230914055936-853aa978dda1/starter/gorm.go:36] : 连接mysql [root:pandax@tcp(101.35.247.125:3306)/pandax_iot?charset=utf8&loc=Local&parseTime=true] -2023-10-07 11:45:18.594 [INFO] [D:/workspace/go/project/PandaX/PandaX/main.go:45] : mysql连接成功 -2023-10-07 11:45:18.687 [INFO] [D:/workspace/go/project/PandaX/PandaX/main.go:50] : Redis连接成功 -2023-10-07 11:45:18.687 [INFO] [D:/workspace/go/project/PandaX/PandaX/main.go:57] : Tdengine连接成功 -2023-10-07 11:45:18.757 [INFO] [D:/workspace/go/project/PandaX/PandaX/main.go:75] : 路由初始化完成 -2023-10-07 11:45:18.757 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/transport/http_server.go:38] : HTTP Server listen: :7788 -2023-10-07 11:45:18.757 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/transport/http_server.go:46] : HTTP Server listen: :7788 -2023-10-07 11:45:18.758 [INFO] [D:/workspace/go/project/PandaX/PandaX/iothub/server/tcpserver/hook.go:29] : TCP IOTHUB HOOK Start SUCCESS, Server listen: -2023-10-07 11:45:18.758 [INFO] [D:/workspace/go/project/PandaX/PandaX/iothub/server/emqxserver/hook.go:33] : IOTHUB HOOK Start SUCCESS,Grpc Server listen: -2023-10-07 11:45:18.960 [INFO] [D:/workspace/go/project/PandaX/PandaX/apps/job/jobs/jobbase.go:87] : 2023-10-07 11:45:18 [INFO] JobCore start success. -2023-10-07 14:22:07.178 [INFO] [D:/workspace/go/pkg/mod/github.com/!panda!x!g!o/!panda!kit@v0.0.0-20230914055936-853aa978dda1/starter/gorm.go:36] : 连接mysql [root:!MyEMS1@tcp(127.0.0.1:3306)/pandax_iot?charset=utf8&loc=Local&parseTime=true] -2023-10-07 14:22:07.183 [INFO] [D:/workspace/go/project/PandaX/PandaX/main.go:45] : mysql连接成功 -2023-10-07 14:22:07.184 [INFO] [D:/workspace/go/project/PandaX/PandaX/main.go:50] : Redis连接成功 -2023-10-07 14:22:07.184 [INFO] [D:/workspace/go/project/PandaX/PandaX/main.go:57] : Tdengine连接成功 -2023-10-07 14:22:07.192 [INFO] [D:/workspace/go/project/PandaX/PandaX/main.go:75] : 路由初始化完成 -2023-10-07 14:22:07.192 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/transport/http_server.go:38] : HTTP Server listen: :7788 -2023-10-07 14:22:07.192 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/transport/http_server.go:46] : HTTP Server listen: :7788 -2023-10-07 14:22:07.192 [INFO] [D:/workspace/go/project/PandaX/PandaX/iothub/server/udpserver/hook.go:27] : TCP IOTHUB HOOK Start SUCCESS, Server listen: -2023-10-07 14:22:07.193 [INFO] [D:/workspace/go/project/PandaX/PandaX/iothub/server/emqxserver/hook.go:33] : IOTHUB HOOK Start SUCCESS,Grpc Server listen: -2023-10-07 14:22:07.193 [INFO] [D:/workspace/go/project/PandaX/PandaX/iothub/server/tcpserver/hook.go:29] : TCP IOTHUB HOOK Start SUCCESS, Server listen: -2023-10-07 14:22:07.198 [INFO] [D:/workspace/go/project/PandaX/PandaX/apps/job/jobs/jobbase.go:87] : 2023-10-07 14:22:07 [INFO] JobCore start success. -2023-10-07 14:22:07.199 [INFO] [D:/workspace/go/project/PandaX/PandaX/iothub/server/emqxserver/hook.go:114] : 账号pandax,开始认证 -2023-10-07 14:22:07.201 [INFO] [D:/workspace/go/project/PandaX/PandaX/iothub/server/emqxserver/hook.go:84] : Client emqx@172.17.0.5 Connected -2023-10-07 14:24:25.690 [INFO] [D:/workspace/go/pkg/mod/github.com/!panda!x!g!o/!panda!kit@v0.0.0-20230914055936-853aa978dda1/starter/gorm.go:36] : 连接mysql [root:!MyEMS1@tcp(127.0.0.1:3306)/pandax_iot?charset=utf8&loc=Local&parseTime=true] -2023-10-07 14:24:25.695 [INFO] [D:/workspace/go/project/PandaX/PandaX/main.go:45] : mysql连接成功 -2023-10-07 14:24:25.697 [INFO] [D:/workspace/go/project/PandaX/PandaX/main.go:50] : Redis连接成功 -2023-10-07 14:24:25.697 [INFO] [D:/workspace/go/project/PandaX/PandaX/main.go:57] : Tdengine连接成功 -2023-10-07 14:24:25.705 [INFO] [D:/workspace/go/project/PandaX/PandaX/main.go:75] : 路由初始化完成 -2023-10-07 14:24:25.705 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/transport/http_server.go:38] : HTTP Server listen: :7788 -2023-10-07 14:24:25.705 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/transport/http_server.go:46] : HTTP Server listen: :7788 -2023-10-07 14:24:25.705 [INFO] [D:/workspace/go/project/PandaX/PandaX/iothub/server/emqxserver/hook.go:33] : IOTHUB HOOK Start SUCCESS,Grpc Server listen: -2023-10-07 14:24:25.706 [INFO] [D:/workspace/go/project/PandaX/PandaX/iothub/server/udpserver/hook.go:27] : TCP IOTHUB HOOK Start SUCCESS, Server listen: -2023-10-07 14:24:25.706 [INFO] [D:/workspace/go/project/PandaX/PandaX/iothub/server/tcpserver/hook.go:29] : TCP IOTHUB HOOK Start SUCCESS, Server listen: -2023-10-07 14:24:25.713 [INFO] [D:/workspace/go/project/PandaX/PandaX/apps/job/jobs/jobbase.go:87] : 2023-10-07 14:24:25 [INFO] JobCore start success. -2023-10-07 14:24:29.847 [INFO] [D:/workspace/go/project/PandaX/PandaX/iothub/server/emqxserver/hook.go:98] : pandax断开连接 -2023-10-07 14:24:29.848 [INFO] [D:/workspace/go/project/PandaX/PandaX/iothub/server/emqxserver/hook.go:114] : 账号pandax,开始认证 -2023-10-07 14:24:29.850 [INFO] [D:/workspace/go/project/PandaX/PandaX/iothub/server/emqxserver/hook.go:84] : Client emqx@172.17.0.5 Connected -2023-10-07 14:24:44.320 [ERROR] [D:/workspace/go/project/PandaX/PandaX/pkg/transport/http_server.go:48] : error http serve: http: Server closed -2023-10-07 14:24:51.030 [INFO] [D:/workspace/go/pkg/mod/github.com/!panda!x!g!o/!panda!kit@v0.0.0-20230914055936-853aa978dda1/starter/gorm.go:36] : 连接mysql [root:!MyEMS1@tcp(127.0.0.1:3306)/pandax_iot?charset=utf8&loc=Local&parseTime=true] -2023-10-07 14:24:51.036 [INFO] [D:/workspace/go/project/PandaX/PandaX/main.go:45] : mysql连接成功 -2023-10-07 14:24:51.044 [INFO] [D:/workspace/go/project/PandaX/PandaX/main.go:50] : Redis连接成功 -2023-10-07 14:24:51.044 [INFO] [D:/workspace/go/project/PandaX/PandaX/main.go:57] : Tdengine连接成功 -2023-10-07 14:24:51.053 [INFO] [D:/workspace/go/project/PandaX/PandaX/main.go:75] : 路由初始化完成 -2023-10-07 14:24:51.053 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/transport/http_server.go:38] : HTTP Server listen: :7788 -2023-10-07 14:24:51.053 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/transport/http_server.go:46] : HTTP Server listen: :7788 -2023-10-07 14:24:51.054 [INFO] [D:/workspace/go/project/PandaX/PandaX/iothub/server/tcpserver/hook.go:29] : TCP IOTHUB HOOK Start SUCCESS, Server listen: -2023-10-07 14:24:51.054 [INFO] [D:/workspace/go/project/PandaX/PandaX/iothub/server/udpserver/hook.go:27] : TCP IOTHUB HOOK Start SUCCESS, Server listen: -2023-10-07 14:24:51.054 [INFO] [D:/workspace/go/project/PandaX/PandaX/iothub/server/emqxserver/hook.go:33] : IOTHUB HOOK Start SUCCESS,Grpc Server listen: -2023-10-07 14:24:51.061 [INFO] [D:/workspace/go/project/PandaX/PandaX/apps/job/jobs/jobbase.go:87] : 2023-10-07 14:24:51 [INFO] JobCore start success. -2023-10-07 14:24:51.378 [INFO] [D:/workspace/go/project/PandaX/PandaX/iothub/server/emqxserver/hook.go:98] : pandax断开连接 -2023-10-07 14:24:51.379 [INFO] [D:/workspace/go/project/PandaX/PandaX/iothub/server/emqxserver/hook.go:114] : 账号pandax,开始认证 -2023-10-07 14:24:51.381 [INFO] [D:/workspace/go/project/PandaX/PandaX/iothub/server/emqxserver/hook.go:84] : Client emqx@172.17.0.5 Connected -2023-10-07 14:25:53.615 [ERROR] [D:/workspace/go/project/PandaX/PandaX/pkg/transport/http_server.go:48] : error http serve: http: Server closed -2023-10-07 14:26:01.106 [INFO] [D:/workspace/go/pkg/mod/github.com/!panda!x!g!o/!panda!kit@v0.0.0-20230914055936-853aa978dda1/starter/gorm.go:36] : 连接mysql [root:!MyEMS1@tcp(127.0.0.1:3306)/pandax_iot?charset=utf8&loc=Local&parseTime=true] -2023-10-07 14:26:01.111 [INFO] [D:/workspace/go/project/PandaX/PandaX/main.go:45] : mysql连接成功 -2023-10-07 14:26:01.113 [INFO] [D:/workspace/go/project/PandaX/PandaX/main.go:50] : Redis连接成功 -2023-10-07 14:26:01.113 [INFO] [D:/workspace/go/project/PandaX/PandaX/main.go:57] : Tdengine连接成功 -2023-10-07 14:26:01.121 [INFO] [D:/workspace/go/project/PandaX/PandaX/main.go:75] : 路由初始化完成 -2023-10-07 14:26:01.121 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/transport/http_server.go:38] : HTTP Server listen: :7788 -2023-10-07 14:26:01.121 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/transport/http_server.go:46] : HTTP Server listen: :7788 -2023-10-07 14:26:01.122 [INFO] [D:/workspace/go/project/PandaX/PandaX/iothub/server/emqxserver/hook.go:33] : IOTHUB HOOK Start SUCCESS,Grpc Server listen: -2023-10-07 14:26:01.122 [INFO] [D:/workspace/go/project/PandaX/PandaX/iothub/server/tcpserver/hook.go:29] : TCP IOTHUB HOOK Start SUCCESS, Server listen: -2023-10-07 14:26:01.122 [INFO] [D:/workspace/go/project/PandaX/PandaX/iothub/server/udpserver/hook.go:27] : TCP IOTHUB HOOK Start SUCCESS, Server listen: -2023-10-07 14:26:01.127 [INFO] [D:/workspace/go/project/PandaX/PandaX/apps/job/jobs/jobbase.go:87] : 2023-10-07 14:26:01 [INFO] JobCore start success. -2023-10-07 14:26:05.676 [INFO] [D:/workspace/go/project/PandaX/PandaX/iothub/server/emqxserver/hook.go:98] : pandax断开连接 -2023-10-07 14:26:05.677 [INFO] [D:/workspace/go/project/PandaX/PandaX/iothub/server/emqxserver/hook.go:114] : 账号pandax,开始认证 -2023-10-07 14:26:05.679 [INFO] [D:/workspace/go/project/PandaX/PandaX/iothub/server/emqxserver/hook.go:84] : Client emqx@172.17.0.5 Connected -2023-10-07 14:28:04.331 [INFO] [D:/workspace/go/pkg/mod/github.com/!panda!x!g!o/!panda!kit@v0.0.0-20230914055936-853aa978dda1/starter/gorm.go:36] : 连接mysql [root:!MyEMS1@tcp(127.0.0.1:3306)/pandax_iot?charset=utf8&loc=Local&parseTime=true] -2023-10-07 14:28:04.337 [INFO] [D:/workspace/go/project/PandaX/PandaX/main.go:45] : mysql连接成功 -2023-10-07 14:28:04.339 [INFO] [D:/workspace/go/project/PandaX/PandaX/main.go:50] : Redis连接成功 -2023-10-07 14:28:04.339 [INFO] [D:/workspace/go/project/PandaX/PandaX/main.go:57] : Tdengine连接成功 -2023-10-07 14:28:04.346 [INFO] [D:/workspace/go/project/PandaX/PandaX/main.go:75] : 路由初始化完成 -2023-10-07 14:28:04.346 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/transport/http_server.go:38] : HTTP Server listen: :7788 -2023-10-07 14:28:04.346 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/transport/http_server.go:46] : HTTP Server listen: :7788 -2023-10-07 14:28:04.347 [INFO] [D:/workspace/go/project/PandaX/PandaX/iothub/server/tcpserver/hook.go:29] : TCP IOTHUB HOOK Start SUCCESS, Server listen: -2023-10-07 14:28:04.347 [INFO] [D:/workspace/go/project/PandaX/PandaX/iothub/server/emqxserver/hook.go:33] : IOTHUB HOOK Start SUCCESS,Grpc Server listen: -2023-10-07 14:28:04.347 [INFO] [D:/workspace/go/project/PandaX/PandaX/iothub/server/udpserver/hook.go:27] : TCP IOTHUB HOOK Start SUCCESS, Server listen: -2023-10-07 14:28:04.356 [INFO] [D:/workspace/go/project/PandaX/PandaX/apps/job/jobs/jobbase.go:87] : 2023-10-07 14:28:04 [INFO] JobCore start success. -2023-10-07 14:28:08.454 [INFO] [D:/workspace/go/project/PandaX/PandaX/iothub/server/emqxserver/hook.go:98] : pandax断开连接 -2023-10-07 14:28:08.456 [INFO] [D:/workspace/go/project/PandaX/PandaX/iothub/server/emqxserver/hook.go:114] : 账号pandax,开始认证 -2023-10-07 14:28:08.458 [INFO] [D:/workspace/go/project/PandaX/PandaX/iothub/server/emqxserver/hook.go:84] : Client emqx@172.17.0.5 Connected -2023-10-07 14:29:54.080 [INFO] [D:/workspace/go/project/PandaX/PandaX/iothub/netbase/hook_base.go:28] : 设备token sddf 不存在 -2023-10-07 14:30:29.769 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uid=1] [uname=panda] [GET=/device/group/list/tree/label] : 获取DeviceGroup树 ->10ms -2023-10-07 14:30:29.779 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uid=1] [uname=panda] [GET=/device/product/list/all] : 获取Product分页列表 ->11ms -2023-10-07 14:30:29.779 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uname=panda] [GET=/device/list] [uid=1] : 获取Device分页列表 ->26ms -2023-10-07 14:30:29.783 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uname=panda] [GET=/system/dict/data/type] [uid=1] : 获取字典数据列表通过字典类型 ->6ms -2023-10-07 14:30:46.891 [INFO] [D:/workspace/go/project/PandaX/PandaX/iothub/server/tcpserver/hook.go:73] : TCP协议 设备lCtIzLLdIQ,认证成功 -2023-10-07 14:31:01.002 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uname=panda] [GET=/device/group/list/tree/label] [uid=1] : 获取DeviceGroup树 ->10ms -2023-10-07 14:31:01.014 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uid=1] [uname=panda] [GET=/system/dict/data/type] : 获取字典数据列表通过字典类型 ->4ms -2023-10-07 14:31:01.015 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uid=1] [uname=panda] [GET=/device/list] : 获取Device分页列表 ->31ms -2023-10-07 14:31:01.016 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uid=1] [uname=panda] [GET=/device/product/list/all] : 获取Product分页列表 ->16ms -2023-10-07 14:31:06.710 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uname=panda] [GET=/device/group/list/tree/label] [uid=1] : 获取DeviceGroup树 ->16ms -2023-10-07 14:31:06.730 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [GET=/device/product/list/all] [uid=1] [uname=panda] : 获取Product分页列表 ->22ms -2023-10-07 14:31:06.734 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uid=1] [uname=panda] [GET=/system/dict/data/type] : 获取字典数据列表通过字典类型 ->9ms -2023-10-07 14:31:06.734 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uid=1] [uname=panda] [GET=/device/list] : 获取Device分页列表 ->49ms -2023-10-07 14:32:21.786 [ERROR] [D:/workspace/go/project/PandaX/PandaX/pkg/transport/http_server.go:48] : error http serve: http: Server closed -2023-10-07 14:32:29.815 [INFO] [D:/workspace/go/pkg/mod/github.com/!panda!x!g!o/!panda!kit@v0.0.0-20230914055936-853aa978dda1/starter/gorm.go:36] : 连接mysql [root:!MyEMS1@tcp(127.0.0.1:3306)/pandax_iot?charset=utf8&loc=Local&parseTime=true] -2023-10-07 14:32:29.820 [INFO] [D:/workspace/go/project/PandaX/PandaX/main.go:45] : mysql连接成功 -2023-10-07 14:32:29.822 [INFO] [D:/workspace/go/project/PandaX/PandaX/main.go:50] : Redis连接成功 -2023-10-07 14:32:29.822 [INFO] [D:/workspace/go/project/PandaX/PandaX/main.go:57] : Tdengine连接成功 -2023-10-07 14:32:29.829 [INFO] [D:/workspace/go/project/PandaX/PandaX/main.go:75] : 路由初始化完成 -2023-10-07 14:32:29.829 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/transport/http_server.go:38] : HTTP Server listen: :7788 -2023-10-07 14:32:29.829 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/transport/http_server.go:46] : HTTP Server listen: :7788 -2023-10-07 14:32:29.830 [INFO] [D:/workspace/go/project/PandaX/PandaX/iothub/server/tcpserver/hook.go:29] : TCP IOTHUB HOOK Start SUCCESS, Server listen: -2023-10-07 14:32:29.830 [INFO] [D:/workspace/go/project/PandaX/PandaX/iothub/server/emqxserver/hook.go:33] : IOTHUB HOOK Start SUCCESS,Grpc Server listen: -2023-10-07 14:32:29.830 [INFO] [D:/workspace/go/project/PandaX/PandaX/iothub/server/udpserver/hook.go:27] : TCP IOTHUB HOOK Start SUCCESS, Server listen: -2023-10-07 14:32:29.836 [INFO] [D:/workspace/go/project/PandaX/PandaX/apps/job/jobs/jobbase.go:87] : 2023-10-07 14:32:29 [INFO] JobCore start success. -2023-10-07 14:32:33.856 [INFO] [D:/workspace/go/project/PandaX/PandaX/iothub/server/emqxserver/hook.go:114] : 账号pandax,开始认证 -2023-10-07 14:32:33.859 [INFO] [D:/workspace/go/project/PandaX/PandaX/iothub/server/emqxserver/hook.go:84] : Client emqx@172.17.0.5 Connected -2023-10-07 14:34:33.829 [INFO] [D:/workspace/go/pkg/mod/github.com/!panda!x!g!o/!panda!kit@v0.0.0-20230914055936-853aa978dda1/starter/gorm.go:36] : 连接mysql [root:!MyEMS1@tcp(127.0.0.1:3306)/pandax_iot?charset=utf8&loc=Local&parseTime=true] -2023-10-07 14:34:33.835 [INFO] [D:/workspace/go/project/PandaX/PandaX/main.go:45] : mysql连接成功 -2023-10-07 14:34:33.838 [INFO] [D:/workspace/go/project/PandaX/PandaX/main.go:50] : Redis连接成功 -2023-10-07 14:34:33.838 [INFO] [D:/workspace/go/project/PandaX/PandaX/main.go:57] : Tdengine连接成功 -2023-10-07 14:34:33.845 [INFO] [D:/workspace/go/project/PandaX/PandaX/main.go:75] : 路由初始化完成 -2023-10-07 14:34:33.845 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/transport/http_server.go:38] : HTTP Server listen: :7788 -2023-10-07 14:34:33.845 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/transport/http_server.go:46] : HTTP Server listen: :7788 -2023-10-07 14:34:33.845 [INFO] [D:/workspace/go/project/PandaX/PandaX/iothub/server/tcpserver/hook.go:29] : TCP IOTHUB HOOK Start SUCCESS, Server listen: -2023-10-07 14:34:33.845 [INFO] [D:/workspace/go/project/PandaX/PandaX/iothub/server/emqxserver/hook.go:33] : IOTHUB HOOK Start SUCCESS,Grpc Server listen: -2023-10-07 14:34:33.845 [INFO] [D:/workspace/go/project/PandaX/PandaX/iothub/server/udpserver/hook.go:27] : TCP IOTHUB HOOK Start SUCCESS, Server listen: -2023-10-07 14:34:33.851 [INFO] [D:/workspace/go/project/PandaX/PandaX/apps/job/jobs/jobbase.go:87] : 2023-10-07 14:34:33 [INFO] JobCore start success. -2023-10-07 14:34:34.038 [INFO] [D:/workspace/go/project/PandaX/PandaX/iothub/server/emqxserver/hook.go:98] : pandax断开连接 -2023-10-07 14:34:34.039 [INFO] [D:/workspace/go/project/PandaX/PandaX/iothub/server/emqxserver/hook.go:114] : 账号pandax,开始认证 -2023-10-07 14:34:34.041 [INFO] [D:/workspace/go/project/PandaX/PandaX/iothub/server/emqxserver/hook.go:84] : Client emqx@172.17.0.5 Connected -2023-10-07 14:36:20.038 [INFO] [D:/workspace/go/pkg/mod/github.com/!panda!x!g!o/!panda!kit@v0.0.0-20230914055936-853aa978dda1/starter/gorm.go:36] : 连接mysql [root:!MyEMS1@tcp(127.0.0.1:3306)/pandax_iot?charset=utf8&loc=Local&parseTime=true] -2023-10-07 14:36:20.042 [INFO] [D:/workspace/go/project/PandaX/PandaX/main.go:45] : mysql连接成功 -2023-10-07 14:36:20.044 [INFO] [D:/workspace/go/project/PandaX/PandaX/main.go:50] : Redis连接成功 -2023-10-07 14:36:20.044 [INFO] [D:/workspace/go/project/PandaX/PandaX/main.go:57] : Tdengine连接成功 -2023-10-07 14:36:20.052 [INFO] [D:/workspace/go/project/PandaX/PandaX/main.go:75] : 路由初始化完成 -2023-10-07 14:36:20.052 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/transport/http_server.go:38] : HTTP Server listen: :7788 -2023-10-07 14:36:20.052 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/transport/http_server.go:46] : HTTP Server listen: :7788 -2023-10-07 14:36:20.052 [INFO] [D:/workspace/go/project/PandaX/PandaX/iothub/server/tcpserver/hook.go:29] : TCP IOTHUB HOOK Start SUCCESS, Server listen: -2023-10-07 14:36:20.053 [INFO] [D:/workspace/go/project/PandaX/PandaX/iothub/server/emqxserver/hook.go:33] : IOTHUB HOOK Start SUCCESS,Grpc Server listen: -2023-10-07 14:36:20.053 [INFO] [D:/workspace/go/project/PandaX/PandaX/iothub/server/udpserver/hook.go:27] : TCP IOTHUB HOOK Start SUCCESS, Server listen: -2023-10-07 14:36:20.058 [INFO] [D:/workspace/go/project/PandaX/PandaX/apps/job/jobs/jobbase.go:87] : 2023-10-07 14:36:20 [INFO] JobCore start success. -2023-10-07 14:36:20.344 [INFO] [D:/workspace/go/project/PandaX/PandaX/iothub/server/emqxserver/hook.go:98] : pandax断开连接 -2023-10-07 14:36:20.346 [INFO] [D:/workspace/go/project/PandaX/PandaX/iothub/server/emqxserver/hook.go:114] : 账号pandax,开始认证 -2023-10-07 14:36:20.348 [INFO] [D:/workspace/go/project/PandaX/PandaX/iothub/server/emqxserver/hook.go:84] : Client emqx@172.17.0.5 Connected -2023-10-07 14:36:37.566 [INFO] [D:/workspace/go/pkg/mod/github.com/!panda!x!g!o/!panda!kit@v0.0.0-20230914055936-853aa978dda1/starter/gorm.go:36] : 连接mysql [root:!MyEMS1@tcp(127.0.0.1:3306)/pandax_iot?charset=utf8&loc=Local&parseTime=true] -2023-10-07 14:36:37.573 [INFO] [D:/workspace/go/project/PandaX/PandaX/main.go:45] : mysql连接成功 -2023-10-07 14:36:37.576 [INFO] [D:/workspace/go/project/PandaX/PandaX/main.go:50] : Redis连接成功 -2023-10-07 14:36:37.576 [INFO] [D:/workspace/go/project/PandaX/PandaX/main.go:57] : Tdengine连接成功 -2023-10-07 14:36:37.583 [INFO] [D:/workspace/go/project/PandaX/PandaX/main.go:75] : 路由初始化完成 -2023-10-07 14:36:37.583 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/transport/http_server.go:38] : HTTP Server listen: :7788 -2023-10-07 14:36:37.583 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/transport/http_server.go:46] : HTTP Server listen: :7788 -2023-10-07 14:36:37.584 [INFO] [D:/workspace/go/project/PandaX/PandaX/iothub/server/emqxserver/hook.go:33] : IOTHUB HOOK Start SUCCESS,Grpc Server listen: -2023-10-07 14:36:37.584 [INFO] [D:/workspace/go/project/PandaX/PandaX/iothub/server/tcpserver/hook.go:29] : TCP IOTHUB HOOK Start SUCCESS, Server listen: -2023-10-07 14:36:37.584 [INFO] [D:/workspace/go/project/PandaX/PandaX/iothub/server/udpserver/hook.go:27] : TCP IOTHUB HOOK Start SUCCESS, Server listen: -2023-10-07 14:36:37.589 [INFO] [D:/workspace/go/project/PandaX/PandaX/apps/job/jobs/jobbase.go:87] : 2023-10-07 14:36:37 [INFO] JobCore start success. -2023-10-07 14:36:37.986 [INFO] [D:/workspace/go/project/PandaX/PandaX/iothub/server/emqxserver/hook.go:98] : pandax断开连接 -2023-10-07 14:36:37.987 [INFO] [D:/workspace/go/project/PandaX/PandaX/iothub/server/emqxserver/hook.go:114] : 账号pandax,开始认证 -2023-10-07 14:36:37.990 [INFO] [D:/workspace/go/project/PandaX/PandaX/iothub/server/emqxserver/hook.go:84] : Client emqx@172.17.0.5 Connected -2023-10-07 14:37:40.975 [ERROR] [D:/workspace/go/project/PandaX/PandaX/pkg/transport/http_server.go:48] : error http serve: http: Server closed -2023-10-07 14:37:48.777 [INFO] [D:/workspace/go/pkg/mod/github.com/!panda!x!g!o/!panda!kit@v0.0.0-20230914055936-853aa978dda1/starter/gorm.go:36] : 连接mysql [root:!MyEMS1@tcp(127.0.0.1:3306)/pandax_iot?charset=utf8&loc=Local&parseTime=true] -2023-10-07 14:37:48.782 [INFO] [D:/workspace/go/project/PandaX/PandaX/main.go:45] : mysql连接成功 -2023-10-07 14:37:48.784 [INFO] [D:/workspace/go/project/PandaX/PandaX/main.go:50] : Redis连接成功 -2023-10-07 14:37:48.784 [INFO] [D:/workspace/go/project/PandaX/PandaX/main.go:57] : Tdengine连接成功 -2023-10-07 14:37:48.794 [INFO] [D:/workspace/go/project/PandaX/PandaX/main.go:75] : 路由初始化完成 -2023-10-07 14:37:48.794 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/transport/http_server.go:38] : HTTP Server listen: :7788 -2023-10-07 14:37:48.794 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/transport/http_server.go:46] : HTTP Server listen: :7788 -2023-10-07 14:37:48.795 [INFO] [D:/workspace/go/project/PandaX/PandaX/iothub/server/emqxserver/hook.go:33] : IOTHUB HOOK Start SUCCESS,Grpc Server listen: -2023-10-07 14:37:48.795 [INFO] [D:/workspace/go/project/PandaX/PandaX/iothub/server/tcpserver/hook.go:29] : TCP IOTHUB HOOK Start SUCCESS, Server listen: -2023-10-07 14:37:48.795 [INFO] [D:/workspace/go/project/PandaX/PandaX/iothub/server/udpserver/hook.go:27] : UDP IOTHUB HOOK Start SUCCESS, Server listen: -2023-10-07 14:37:48.802 [INFO] [D:/workspace/go/project/PandaX/PandaX/apps/job/jobs/jobbase.go:87] : 2023-10-07 14:37:48 [INFO] JobCore start success. -2023-10-07 14:37:53.025 [INFO] [D:/workspace/go/project/PandaX/PandaX/iothub/server/emqxserver/hook.go:98] : pandax断开连接 -2023-10-07 14:37:53.027 [INFO] [D:/workspace/go/project/PandaX/PandaX/iothub/server/emqxserver/hook.go:114] : 账号pandax,开始认证 -2023-10-07 14:37:53.029 [INFO] [D:/workspace/go/project/PandaX/PandaX/iothub/server/emqxserver/hook.go:84] : Client emqx@172.17.0.5 Connected -2023-10-07 14:41:22.137 [INFO] [D:/workspace/go/pkg/mod/github.com/!panda!x!g!o/!panda!kit@v0.0.0-20230914055936-853aa978dda1/starter/gorm.go:36] : 连接mysql [root:!MyEMS1@tcp(127.0.0.1:3306)/pandax_iot?charset=utf8&loc=Local&parseTime=true] -2023-10-07 14:41:22.143 [INFO] [D:/workspace/go/project/PandaX/PandaX/main.go:45] : mysql连接成功 -2023-10-07 14:41:22.145 [INFO] [D:/workspace/go/project/PandaX/PandaX/main.go:50] : Redis连接成功 -2023-10-07 14:41:22.145 [INFO] [D:/workspace/go/project/PandaX/PandaX/main.go:57] : Tdengine连接成功 -2023-10-07 14:41:22.153 [INFO] [D:/workspace/go/project/PandaX/PandaX/main.go:75] : 路由初始化完成 -2023-10-07 14:41:22.153 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/transport/http_server.go:38] : HTTP Server listen: :7788 -2023-10-07 14:41:22.153 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/transport/http_server.go:46] : HTTP Server listen: :7788 -2023-10-07 14:41:22.154 [INFO] [D:/workspace/go/project/PandaX/PandaX/iothub/server/tcpserver/hook.go:29] : TCP IOTHUB HOOK Start SUCCESS, Server listen: -2023-10-07 14:41:22.154 [INFO] [D:/workspace/go/project/PandaX/PandaX/iothub/server/emqxserver/hook.go:33] : IOTHUB HOOK Start SUCCESS,Grpc Server listen: -2023-10-07 14:41:22.154 [INFO] [D:/workspace/go/project/PandaX/PandaX/iothub/server/udpserver/hook.go:27] : UDP IOTHUB HOOK Start SUCCESS, Server listen: -2023-10-07 14:41:22.160 [INFO] [D:/workspace/go/project/PandaX/PandaX/iothub/server/emqxserver/hook.go:98] : pandax断开连接 -2023-10-07 14:41:22.162 [INFO] [D:/workspace/go/project/PandaX/PandaX/iothub/server/emqxserver/hook.go:114] : 账号pandax,开始认证 -2023-10-07 14:41:22.163 [INFO] [D:/workspace/go/project/PandaX/PandaX/apps/job/jobs/jobbase.go:87] : 2023-10-07 14:41:22 [INFO] JobCore start success. -2023-10-07 14:41:22.165 [INFO] [D:/workspace/go/project/PandaX/PandaX/iothub/server/emqxserver/hook.go:84] : Client emqx@172.17.0.5 Connected -2023-10-07 14:41:34.827 [INFO] [D:/workspace/go/pkg/mod/github.com/!panda!x!g!o/!panda!kit@v0.0.0-20230914055936-853aa978dda1/starter/gorm.go:36] : 连接mysql [root:!MyEMS1@tcp(127.0.0.1:3306)/pandax_iot?charset=utf8&loc=Local&parseTime=true] -2023-10-07 14:41:34.833 [INFO] [D:/workspace/go/project/PandaX/PandaX/main.go:45] : mysql连接成功 -2023-10-07 14:41:34.835 [INFO] [D:/workspace/go/project/PandaX/PandaX/main.go:50] : Redis连接成功 -2023-10-07 14:41:34.835 [INFO] [D:/workspace/go/project/PandaX/PandaX/main.go:57] : Tdengine连接成功 -2023-10-07 14:41:34.843 [INFO] [D:/workspace/go/project/PandaX/PandaX/main.go:75] : 路由初始化完成 -2023-10-07 14:41:34.844 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/transport/http_server.go:38] : HTTP Server listen: :7788 -2023-10-07 14:41:34.844 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/transport/http_server.go:46] : HTTP Server listen: :7788 -2023-10-07 14:41:34.844 [INFO] [D:/workspace/go/project/PandaX/PandaX/iothub/server/tcpserver/hook.go:29] : TCP IOTHUB HOOK Start SUCCESS, Server listen: -2023-10-07 14:41:34.844 [INFO] [D:/workspace/go/project/PandaX/PandaX/iothub/server/emqxserver/hook.go:33] : IOTHUB HOOK Start SUCCESS,Grpc Server listen: -2023-10-07 14:41:34.844 [INFO] [D:/workspace/go/project/PandaX/PandaX/iothub/server/udpserver/hook.go:27] : UDP IOTHUB HOOK Start SUCCESS, Server listen: -2023-10-07 14:41:34.849 [INFO] [D:/workspace/go/project/PandaX/PandaX/apps/job/jobs/jobbase.go:87] : 2023-10-07 14:41:34 [INFO] JobCore start success. -2023-10-07 14:41:35.028 [INFO] [D:/workspace/go/project/PandaX/PandaX/iothub/server/emqxserver/hook.go:98] : pandax断开连接 -2023-10-07 14:41:35.030 [INFO] [D:/workspace/go/project/PandaX/PandaX/iothub/server/emqxserver/hook.go:114] : 账号pandax,开始认证 -2023-10-07 14:41:35.032 [INFO] [D:/workspace/go/project/PandaX/PandaX/iothub/server/emqxserver/hook.go:84] : Client emqx@172.17.0.5 Connected -2023-10-07 14:43:28.079 [INFO] [D:/workspace/go/pkg/mod/github.com/!panda!x!g!o/!panda!kit@v0.0.0-20230914055936-853aa978dda1/starter/gorm.go:36] : 连接mysql [root:!MyEMS1@tcp(127.0.0.1:3306)/pandax_iot?charset=utf8&loc=Local&parseTime=true] -2023-10-07 14:43:28.085 [INFO] [D:/workspace/go/project/PandaX/PandaX/main.go:45] : mysql连接成功 -2023-10-07 14:43:28.086 [INFO] [D:/workspace/go/project/PandaX/PandaX/main.go:50] : Redis连接成功 -2023-10-07 14:43:28.086 [INFO] [D:/workspace/go/project/PandaX/PandaX/main.go:57] : Tdengine连接成功 -2023-10-07 14:43:28.094 [INFO] [D:/workspace/go/project/PandaX/PandaX/main.go:75] : 路由初始化完成 -2023-10-07 14:43:28.094 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/transport/http_server.go:38] : HTTP Server listen: :7788 -2023-10-07 14:43:28.094 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/transport/http_server.go:46] : HTTP Server listen: :7788 -2023-10-07 14:43:28.094 [INFO] [D:/workspace/go/project/PandaX/PandaX/iothub/server/tcpserver/hook.go:29] : TCP IOTHUB HOOK Start SUCCESS, Server listen: -2023-10-07 14:43:28.094 [INFO] [D:/workspace/go/project/PandaX/PandaX/iothub/server/emqxserver/hook.go:33] : IOTHUB HOOK Start SUCCESS,Grpc Server listen: -2023-10-07 14:43:28.095 [INFO] [D:/workspace/go/project/PandaX/PandaX/iothub/server/udpserver/hook.go:27] : UDP IOTHUB HOOK Start SUCCESS, Server listen: -2023-10-07 14:43:28.100 [INFO] [D:/workspace/go/project/PandaX/PandaX/apps/job/jobs/jobbase.go:87] : 2023-10-07 14:43:28 [INFO] JobCore start success. -2023-10-07 14:43:28.314 [INFO] [D:/workspace/go/project/PandaX/PandaX/iothub/server/emqxserver/hook.go:98] : pandax断开连接 -2023-10-07 14:43:28.317 [INFO] [D:/workspace/go/project/PandaX/PandaX/iothub/server/emqxserver/hook.go:114] : 账号pandax,开始认证 -2023-10-07 14:43:28.318 [INFO] [D:/workspace/go/project/PandaX/PandaX/iothub/server/emqxserver/hook.go:84] : Client emqx@172.17.0.5 Connected -2023-10-07 14:47:43.058 [INFO] [D:/workspace/go/pkg/mod/github.com/!panda!x!g!o/!panda!kit@v0.0.0-20230914055936-853aa978dda1/starter/gorm.go:36] : 连接mysql [root:!MyEMS1@tcp(127.0.0.1:3306)/pandax_iot?charset=utf8&loc=Local&parseTime=true] -2023-10-07 14:47:43.064 [INFO] [D:/workspace/go/project/PandaX/PandaX/main.go:45] : mysql连接成功 -2023-10-07 14:47:43.066 [INFO] [D:/workspace/go/project/PandaX/PandaX/main.go:50] : Redis连接成功 -2023-10-07 14:47:43.066 [INFO] [D:/workspace/go/project/PandaX/PandaX/main.go:57] : Tdengine连接成功 -2023-10-07 14:47:43.073 [INFO] [D:/workspace/go/project/PandaX/PandaX/main.go:75] : 路由初始化完成 -2023-10-07 14:47:43.073 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/transport/http_server.go:38] : HTTP Server listen: :7788 -2023-10-07 14:47:43.073 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/transport/http_server.go:46] : HTTP Server listen: :7788 -2023-10-07 14:47:43.074 [INFO] [D:/workspace/go/project/PandaX/PandaX/iothub/server/tcpserver/hook.go:29] : TCP IOTHUB HOOK Start SUCCESS, Server listen: -2023-10-07 14:47:43.074 [INFO] [D:/workspace/go/project/PandaX/PandaX/iothub/server/emqxserver/hook.go:33] : IOTHUB HOOK Start SUCCESS,Grpc Server listen: -2023-10-07 14:47:43.074 [INFO] [D:/workspace/go/project/PandaX/PandaX/iothub/server/udpserver/hook.go:27] : UDP IOTHUB HOOK Start SUCCESS, Server listen: -2023-10-07 14:47:43.079 [INFO] [D:/workspace/go/project/PandaX/PandaX/apps/job/jobs/jobbase.go:87] : 2023-10-07 14:47:43 [INFO] JobCore start success. -2023-10-07 14:47:45.900 [INFO] [D:/workspace/go/project/PandaX/PandaX/iothub/server/emqxserver/hook.go:98] : pandax断开连接 -2023-10-07 14:47:45.902 [INFO] [D:/workspace/go/project/PandaX/PandaX/iothub/server/emqxserver/hook.go:114] : 账号pandax,开始认证 -2023-10-07 14:47:45.904 [INFO] [D:/workspace/go/project/PandaX/PandaX/iothub/server/emqxserver/hook.go:84] : Client emqx@172.17.0.5 Connected -2023-10-07 14:48:22.530 [INFO] [D:/workspace/go/project/PandaX/PandaX/iothub/server/tcpserver/hook.go:73] : TCP协议 设备lCtIzLLdIQ,认证成功 -2023-10-07 14:48:28.010 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [GET=/device/product/list/all] [uid=1] [uname=panda] : 获取Product分页列表 ->11ms -2023-10-07 14:48:28.020 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uid=1] [uname=panda] [GET=/device/group/list/tree/label] : 获取DeviceGroup树 ->13ms -2023-10-07 14:48:28.030 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [GET=/system/dict/data/type] [uid=1] [uname=panda] : 获取字典数据列表通过字典类型 ->5ms -2023-10-07 14:48:28.041 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uname=panda] [GET=/device/list] [uid=1] : 获取Device分页列表 ->25ms -2023-10-07 14:49:09.291 [ERROR] [D:/workspace/go/project/PandaX/PandaX/pkg/transport/http_server.go:48] : error http serve: http: Server closed -2023-10-07 14:49:17.324 [INFO] [D:/workspace/go/pkg/mod/github.com/!panda!x!g!o/!panda!kit@v0.0.0-20230914055936-853aa978dda1/starter/gorm.go:36] : 连接mysql [root:!MyEMS1@tcp(127.0.0.1:3306)/pandax_iot?charset=utf8&loc=Local&parseTime=true] -2023-10-07 14:49:17.329 [INFO] [D:/workspace/go/project/PandaX/PandaX/main.go:45] : mysql连接成功 -2023-10-07 14:49:17.332 [INFO] [D:/workspace/go/project/PandaX/PandaX/main.go:50] : Redis连接成功 -2023-10-07 14:49:17.332 [INFO] [D:/workspace/go/project/PandaX/PandaX/main.go:57] : Tdengine连接成功 -2023-10-07 14:49:17.339 [INFO] [D:/workspace/go/project/PandaX/PandaX/main.go:75] : 路由初始化完成 -2023-10-07 14:49:17.339 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/transport/http_server.go:38] : HTTP Server listen: :7788 -2023-10-07 14:49:17.339 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/transport/http_server.go:46] : HTTP Server listen: :7788 -2023-10-07 14:49:17.340 [INFO] [D:/workspace/go/project/PandaX/PandaX/iothub/server/tcpserver/hook.go:29] : TCP IOTHUB HOOK Start SUCCESS, Server listen: -2023-10-07 14:49:17.340 [INFO] [D:/workspace/go/project/PandaX/PandaX/iothub/server/emqxserver/hook.go:33] : IOTHUB HOOK Start SUCCESS,Grpc Server listen: -2023-10-07 14:49:17.340 [INFO] [D:/workspace/go/project/PandaX/PandaX/iothub/server/udpserver/hook.go:27] : UDP IOTHUB HOOK Start SUCCESS, Server listen: -2023-10-07 14:49:17.347 [INFO] [D:/workspace/go/project/PandaX/PandaX/apps/job/jobs/jobbase.go:87] : 2023-10-07 14:49:17 [INFO] JobCore start success. -2023-10-07 14:49:21.351 [INFO] [D:/workspace/go/project/PandaX/PandaX/iothub/server/emqxserver/hook.go:98] : pandax断开连接 -2023-10-07 14:49:21.352 [INFO] [D:/workspace/go/project/PandaX/PandaX/iothub/server/emqxserver/hook.go:114] : 账号pandax,开始认证 -2023-10-07 14:49:21.355 [INFO] [D:/workspace/go/project/PandaX/PandaX/iothub/server/emqxserver/hook.go:84] : Client emqx@172.17.0.5 Connected -2023-10-07 14:58:09.198 [INFO] [D:/workspace/go/pkg/mod/github.com/!panda!x!g!o/!panda!kit@v0.0.0-20230914055936-853aa978dda1/starter/gorm.go:36] : 连接mysql [root:!MyEMS1@tcp(127.0.0.1:3306)/pandax_iot?charset=utf8&loc=Local&parseTime=true] -2023-10-07 14:58:09.204 [INFO] [D:/workspace/go/project/PandaX/PandaX/main.go:45] : mysql连接成功 -2023-10-07 14:58:09.206 [INFO] [D:/workspace/go/project/PandaX/PandaX/main.go:50] : Redis连接成功 -2023-10-07 14:58:09.206 [INFO] [D:/workspace/go/project/PandaX/PandaX/main.go:57] : Tdengine连接成功 -2023-10-07 14:58:09.213 [INFO] [D:/workspace/go/project/PandaX/PandaX/main.go:75] : 路由初始化完成 -2023-10-07 14:58:09.214 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/transport/http_server.go:38] : HTTP Server listen: :7788 -2023-10-07 14:58:09.214 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/transport/http_server.go:46] : HTTP Server listen: :7788 -2023-10-07 14:58:09.214 [INFO] [D:/workspace/go/project/PandaX/PandaX/iothub/server/tcpserver/hook.go:29] : TCP IOTHUB HOOK Start SUCCESS, Server listen: -2023-10-07 14:58:09.215 [INFO] [D:/workspace/go/project/PandaX/PandaX/iothub/server/emqxserver/hook.go:33] : IOTHUB HOOK Start SUCCESS,Grpc Server listen: -2023-10-07 14:58:09.215 [INFO] [D:/workspace/go/project/PandaX/PandaX/iothub/server/udpserver/hook.go:27] : UDP IOTHUB HOOK Start SUCCESS, Server listen: -2023-10-07 14:58:09.215 [ERROR] [D:/workspace/go/project/PandaX/PandaX/iothub/server/httpserver/http_server.go:49] : error http serve: listen tcp :9003: bind: Only one usage of each socket address (protocol/network address/port) is normally permitted. -2023-10-07 14:58:09.215 [INFO] [D:/workspace/go/project/PandaX/PandaX/iothub/server/httpserver/hook.go:53] : HTTP IOTHUB HOOK Start SUCCESS,Server listen: -2023-10-07 14:58:09.220 [INFO] [D:/workspace/go/project/PandaX/PandaX/apps/job/jobs/jobbase.go:87] : 2023-10-07 14:58:09 [INFO] JobCore start success. -2023-10-07 14:58:14.080 [INFO] [D:/workspace/go/project/PandaX/PandaX/iothub/server/emqxserver/hook.go:98] : pandax断开连接 -2023-10-07 14:58:14.082 [INFO] [D:/workspace/go/project/PandaX/PandaX/iothub/server/emqxserver/hook.go:114] : 账号pandax,开始认证 -2023-10-07 14:58:14.084 [INFO] [D:/workspace/go/project/PandaX/PandaX/iothub/server/emqxserver/hook.go:84] : Client emqx@172.17.0.5 Connected -2023-10-07 14:59:09.212 [INFO] [D:/workspace/go/project/PandaX/PandaX/iothub/netbase/hook_base.go:28] : 设备token POST /api/v1/MDVlY2MyNzYtMzczMS0zN2Y2LTk1MWMtMDMwM2ZjNmQyNjlm/telemetry HTTP/1.1 -User-Agent: apifox/1.0.0 (https://www.apifox.c 不存在 -2023-10-07 14:59:09.218 [INFO] [D:/workspace/go/project/PandaX/PandaX/iothub/netbase/hook_base.go:28] : 设备token n) -Content-Type: application/json -Accept: */* -Host: 127.0.0.1:9003 -Accept-Encoding: gzip, deflate, br -Connection: keep-aliv 不存在 -2023-10-07 15:01:31.967 [INFO] [D:/workspace/go/project/PandaX/PandaX/iothub/netbase/hook_base.go:28] : 设备token POST /api/v1/MDVlY2MyNzYtMzczMS0zN2Y2LTk1MWMtMDMwM2ZjNmQyNjlm/telemetry HTTP/1.1 -User-Agent: apifox/1.0.0 (https://www.apifox.c 不存在 -2023-10-07 15:01:31.973 [INFO] [D:/workspace/go/project/PandaX/PandaX/iothub/netbase/hook_base.go:28] : 设备token n) -Content-Type: application/json -Accept: */* -Host: 127.0.0.1:9003 -Accept-Encoding: gzip, deflate, br -Connection: keep-aliv 不存在 -2023-10-07 15:02:03.520 [INFO] [D:/workspace/go/pkg/mod/github.com/!panda!x!g!o/!panda!kit@v0.0.0-20230914055936-853aa978dda1/starter/gorm.go:36] : 连接mysql [root:!MyEMS1@tcp(127.0.0.1:3306)/pandax_iot?charset=utf8&loc=Local&parseTime=true] -2023-10-07 15:02:03.525 [INFO] [D:/workspace/go/project/PandaX/PandaX/main.go:45] : mysql连接成功 -2023-10-07 15:02:03.528 [INFO] [D:/workspace/go/project/PandaX/PandaX/main.go:50] : Redis连接成功 -2023-10-07 15:02:03.528 [INFO] [D:/workspace/go/project/PandaX/PandaX/main.go:57] : Tdengine连接成功 -2023-10-07 15:02:03.536 [INFO] [D:/workspace/go/project/PandaX/PandaX/main.go:75] : 路由初始化完成 -2023-10-07 15:02:03.536 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/transport/http_server.go:38] : HTTP Server listen: :7788 -2023-10-07 15:02:03.536 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/transport/http_server.go:46] : HTTP Server listen: :7788 -2023-10-07 15:02:03.537 [INFO] [D:/workspace/go/project/PandaX/PandaX/iothub/server/tcpserver/hook.go:29] : TCP IOTHUB HOOK Start SUCCESS, Server listen: -2023-10-07 15:02:03.537 [INFO] [D:/workspace/go/project/PandaX/PandaX/iothub/server/udpserver/hook.go:27] : UDP IOTHUB HOOK Start SUCCESS, Server listen: -2023-10-07 15:02:03.537 [INFO] [D:/workspace/go/project/PandaX/PandaX/iothub/server/emqxserver/hook.go:33] : IOTHUB HOOK Start SUCCESS,Grpc Server listen: -2023-10-07 15:02:03.543 [INFO] [D:/workspace/go/project/PandaX/PandaX/apps/job/jobs/jobbase.go:87] : 2023-10-07 15:02:03 [INFO] JobCore start success. -2023-10-07 15:02:08.503 [INFO] [D:/workspace/go/project/PandaX/PandaX/iothub/server/emqxserver/hook.go:98] : pandax断开连接 -2023-10-07 15:02:08.505 [INFO] [D:/workspace/go/project/PandaX/PandaX/iothub/server/emqxserver/hook.go:114] : 账号pandax,开始认证 -2023-10-07 15:02:08.507 [INFO] [D:/workspace/go/project/PandaX/PandaX/iothub/server/emqxserver/hook.go:84] : Client emqx@172.17.0.5 Connected -2023-10-07 15:02:18.718 [ERROR] [D:/workspace/go/project/PandaX/PandaX/iothub/hook_message_work/hook_message_work.go:155] : -2023-10-07 16:34:31.720 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uid=1] [uname=panda] [GET=/device/cmd/list] : 获取命令下发分页列表 ->8ms -2023-10-07 16:34:36.230 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uid=1] [uname=panda] [GET=/device/cmd/list] : 获取命令下发分页列表 ->12ms -2023-10-08 11:18:45.194 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [POST=/system/user/login] : 登录 ->74ms -2023-10-08 11:18:45.219 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uname=panda] [GET=/system/user/auth] [uid=1] : 认证信息 ->18ms -2023-10-08 11:18:45.612 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uname=panda] [GET=/device/alarm/panel] [uid=1] : 获取面板告警分组 ->8ms -2023-10-08 11:18:45.631 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uid=1] [uname=panda] [GET=/device/panel] : 获取DevicePanel ->47ms -2023-10-08 11:18:52.130 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uid=1] [uname=panda] [GET=/device/group/list/tree/label] : 获取DeviceGroup树 ->13ms -2023-10-08 11:18:52.137 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uid=1] [uname=panda] [GET=/device/product/list/all] : 获取Product分页列表 ->10ms -2023-10-08 11:18:52.138 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uid=1] [uname=panda] [GET=/device/list] : 获取Device分页列表 ->44ms -2023-10-08 11:18:52.141 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [GET=/system/dict/data/type] [uid=1] [uname=panda] : 获取字典数据列表通过字典类型 ->5ms -2023-10-08 11:18:59.190 [INFO] [D:/workspace/go/project/PandaX/PandaX/iothub/server/tcpserver/hook.go:73] : TCP协议 设备lCtIzLLdIQ,认证成功 -2023-10-08 11:19:02.936 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [GET=/device/group/list/tree/label] [uid=1] [uname=panda] : 获取DeviceGroup树 ->13ms -2023-10-08 11:19:02.947 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uname=panda] [GET=/device/product/list/all] [uid=1] : 获取Product分页列表 ->14ms -2023-10-08 11:19:02.949 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uid=1] [uname=panda] [GET=/system/dict/data/type] : 获取字典数据列表通过字典类型 ->4ms -2023-10-08 11:19:02.951 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uid=1] [uname=panda] [GET=/device/list] : 获取Device分页列表 ->34ms -2023-10-08 11:19:06.885 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uname=panda] [GET=/device/lCtIzLLdIQ/status] [uid=1] : 获取Device状态信息 ->14ms -2023-10-08 11:19:07.873 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [GET=/device/lCtIzLLdIQ/status] [uid=1] [uname=panda] : 获取Device状态信息 ->17ms -2023-10-08 11:19:24.063 [INFO] [D:/workspace/go/project/PandaX/PandaX/iothub/server/tcpserver/hook.go:84] : TCP协议 设备lCtIzLLdIQ, 接受消息010304026c00883bf0 -2023-10-08 11:19:24.084 [ERROR] [D:/workspace/go/project/PandaX/PandaX/iothub/hook_message_work/hook_message_work.go:155] : -2023-10-08 11:19:29.728 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uid=1] [uname=panda] [GET=/device/lCtIzLLdIQ/status] : 获取Device状态信息 ->14ms -2023-10-08 11:19:30.462 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uid=1] [uname=panda] [GET=/device/lCtIzLLdIQ/status] : 获取Device状态信息 ->15ms -2023-10-09 09:24:25.391 [INFO] [D:/workspace/go/pkg/mod/github.com/!panda!x!g!o/!panda!kit@v0.0.0-20230914055936-853aa978dda1/starter/gorm.go:36] : 连接mysql [root:!MyEMS1@tcp(127.0.0.1:3306)/pandax_iot?charset=utf8&loc=Local&parseTime=true] -2023-10-09 09:24:25.396 [INFO] [D:/workspace/go/project/PandaX/PandaX/main.go:45] : mysql连接成功 -2023-10-09 09:24:25.398 [INFO] [D:/workspace/go/project/PandaX/PandaX/main.go:50] : Redis连接成功 -2023-10-09 09:24:25.398 [INFO] [D:/workspace/go/project/PandaX/PandaX/main.go:57] : Tdengine连接成功 -2023-10-09 09:24:25.404 [INFO] [D:/workspace/go/project/PandaX/PandaX/main.go:75] : 路由初始化完成 -2023-10-09 09:24:25.405 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/transport/http_server.go:38] : HTTP Server listen: :7788 -2023-10-09 09:24:25.405 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/transport/http_server.go:46] : HTTP Server listen: :7788 -2023-10-09 09:24:25.405 [INFO] [D:/workspace/go/project/PandaX/PandaX/iothub/server/tcpserver/hook.go:29] : TCP IOTHUB HOOK Start SUCCESS, Server listen: -2023-10-09 09:24:25.405 [INFO] [D:/workspace/go/project/PandaX/PandaX/iothub/server/emqxserver/hook.go:33] : IOTHUB HOOK Start SUCCESS,Grpc Server listen: -2023-10-09 09:24:25.405 [INFO] [D:/workspace/go/project/PandaX/PandaX/iothub/server/udpserver/hook.go:27] : UDP IOTHUB HOOK Start SUCCESS, Server listen: -2023-10-09 09:24:25.411 [INFO] [D:/workspace/go/project/PandaX/PandaX/apps/job/jobs/jobbase.go:87] : 2023-10-09 09:24:25 [INFO] JobCore start success. -2023-10-09 09:24:29.042 [INFO] [D:/workspace/go/project/PandaX/PandaX/iothub/server/emqxserver/hook.go:98] : pandax断开连接 -2023-10-09 09:24:29.045 [INFO] [D:/workspace/go/project/PandaX/PandaX/iothub/server/emqxserver/hook.go:114] : 账号pandax,开始认证 -2023-10-09 09:24:29.048 [INFO] [D:/workspace/go/project/PandaX/PandaX/iothub/server/emqxserver/hook.go:84] : Client emqx@172.17.0.5 Connected -2023-10-09 09:25:39.947 [INFO] [D:/workspace/go/pkg/mod/github.com/!panda!x!g!o/!panda!kit@v0.0.0-20230914055936-853aa978dda1/starter/gorm.go:36] : 连接mysql [root:!MyEMS1@tcp(127.0.0.1:3306)/pandax_iot?charset=utf8&loc=Local&parseTime=true] -2023-10-09 09:25:39.953 [INFO] [D:/workspace/go/project/PandaX/PandaX/main.go:45] : mysql连接成功 -2023-10-09 09:25:39.955 [INFO] [D:/workspace/go/project/PandaX/PandaX/main.go:50] : Redis连接成功 -2023-10-09 09:25:39.956 [INFO] [D:/workspace/go/project/PandaX/PandaX/main.go:57] : Tdengine连接成功 -2023-10-09 09:25:39.963 [INFO] [D:/workspace/go/project/PandaX/PandaX/main.go:75] : 路由初始化完成 -2023-10-09 09:25:39.963 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/transport/http_server.go:38] : HTTP Server listen: :7788 -2023-10-09 09:25:39.963 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/transport/http_server.go:46] : HTTP Server listen: :7788 -2023-10-09 09:25:39.964 [INFO] [D:/workspace/go/project/PandaX/PandaX/iothub/server/tcpserver/hook.go:29] : TCP IOTHUB HOOK Start SUCCESS, Server listen: -2023-10-09 09:25:39.964 [INFO] [D:/workspace/go/project/PandaX/PandaX/iothub/server/emqxserver/hook.go:33] : IOTHUB HOOK Start SUCCESS,Grpc Server listen: -2023-10-09 09:25:39.964 [INFO] [D:/workspace/go/project/PandaX/PandaX/iothub/server/udpserver/hook.go:27] : UDP IOTHUB HOOK Start SUCCESS, Server listen: -2023-10-09 09:25:39.970 [INFO] [D:/workspace/go/project/PandaX/PandaX/apps/job/jobs/jobbase.go:87] : 2023-10-09 09:25:39 [INFO] JobCore start success. -2023-10-09 09:25:39.997 [INFO] [D:/workspace/go/project/PandaX/PandaX/iothub/server/emqxserver/hook.go:98] : pandax断开连接 -2023-10-09 09:25:39.998 [INFO] [D:/workspace/go/project/PandaX/PandaX/iothub/server/emqxserver/hook.go:114] : 账号pandax,开始认证 -2023-10-09 09:25:40.000 [INFO] [D:/workspace/go/project/PandaX/PandaX/iothub/server/emqxserver/hook.go:84] : Client emqx@172.17.0.5 Connected -2023-10-09 16:23:51.762 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [POST=/system/user/login] : 登录 ->77ms -2023-10-09 16:23:51.786 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [GET=/system/user/auth] [uid=4] [uname=admin] : 认证信息 ->17ms -2023-10-09 16:23:52.214 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uname=admin] [GET=/device/alarm/panel] [uid=4] : 获取面板告警分组 ->5ms -2023-10-09 16:23:52.232 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uid=4] [uname=admin] [GET=/device/panel] : 获取DevicePanel ->29ms -2023-10-09 16:25:18.337 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uname=admin] [GET=/system/user/getRoPo] [uid=4] : 获取用户角色岗位信息(添加用户初始化) ->49ms -2023-10-09 16:25:43.710 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uname=admin] [GET=/system/user/list] [uid=4] : 得到用户分页列表 ->9ms -2023-10-09 16:25:43.729 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uid=4] [uname=admin] [GET=/system/organization/organizationTree] : 获取所有组织树 ->20ms -2023-10-09 16:25:43.742 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uid=4] [uname=admin] [GET=/system/dict/data/type] : 获取字典数据列表通过字典类型 ->8ms -2023-10-09 16:25:43.749 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [GET=/system/dict/data/type] [uid=4] [uname=admin] : 获取字典数据列表通过字典类型 ->5ms -2023-10-09 16:25:45.047 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uid=4] [uname=admin] [GET=/device/panel] : 获取DevicePanel ->0ms -2023-10-09 16:25:45.059 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uid=4] [uname=admin] [GET=/device/alarm/panel] : 获取面板告警分组 ->4ms -2023-10-09 16:25:47.026 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uid=4] [uname=admin] [GET=/system/dict/data/type] : 获取字典数据列表通过字典类型 ->21ms -2023-10-09 16:25:47.042 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [GET=/system/menu/list] [uid=4] [uname=admin] : 获取菜单列表 ->11ms -2023-10-09 16:25:47.050 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uid=4] [uname=admin] [GET=/system/dict/data/type] : 获取字典数据列表通过字典类型 ->9ms -2023-10-09 16:25:47.056 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [GET=/system/dict/data/type] [uid=4] [uname=admin] : 获取字典数据列表通过字典类型 ->4ms -2023-10-09 16:46:57.778 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uname=admin] [GET=/system/user/auth] [uid=4] : 认证信息 ->31ms -2023-10-09 16:46:58.321 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [GET=/device/panel] [uid=4] [uname=admin] : 获取DevicePanel ->0ms -2023-10-09 16:46:58.340 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uid=4] [uname=admin] [GET=/device/alarm/panel] : 获取面板告警分组 ->3ms -2023-10-09 16:47:02.529 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uid=4] [uname=admin] [GET=/system/dict/data/type] : 获取字典数据列表通过字典类型 ->3ms -2023-10-09 16:47:02.538 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uid=4] [uname=admin] [GET=/rule/chain/list] : 获取规则引擎分页列表 ->16ms -2023-10-09 16:47:06.339 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uname=admin] [GET=/system/user/auth] [uid=4] : 认证信息 ->24ms -2023-10-10 14:18:46.751 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [POST=/system/user/login] : 登录 ->70ms -2023-10-10 14:18:46.780 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [GET=/system/user/auth] [uid=1] [uname=panda] : 认证信息 ->20ms -2023-10-10 14:18:47.088 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uid=1] [uname=panda] [GET=/device/panel] : 获取DevicePanel ->0ms -2023-10-10 14:18:47.130 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uid=1] [uname=panda] [GET=/device/alarm/panel] : 获取面板告警分组 ->22ms -2023-10-10 14:18:55.436 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uid=1] [uname=panda] [GET=/device/group/list/tree/label] : 获取DeviceGroup树 ->14ms -2023-10-10 14:18:55.440 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uid=1] [uname=panda] [GET=/system/dict/data/type] : 获取字典数据列表通过字典类型 ->6ms -2023-10-10 14:18:55.448 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [GET=/device/list] [uid=1] [uname=panda] : 获取Device分页列表 ->52ms -2023-10-10 14:18:55.454 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uid=1] [uname=panda] [GET=/device/product/list/all] : 获取Product分页列表 ->11ms -2023-10-10 14:19:00.832 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uid=1] [uname=panda] [GET=/device/cmd/list] : 获取命令下发分页列表 ->36ms -2023-10-10 14:21:31.223 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uid=1] [uname=panda] [GET=/device/template/list/all] : 获取Template列表 ->6ms -2023-10-10 14:23:34.000 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [GET=/device/cmd/list] [uid=1] [uname=panda] : 获取命令下发分页列表 ->16ms -2023-10-10 14:25:37.082 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uid=1] [uname=panda] [GET=/device/cmd/list] : 获取命令下发分页列表 ->28ms -2023-10-10 14:25:55.842 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [GET=/device/template/list/all] [uid=1] [uname=panda] : 获取Template列表 ->37ms -2023-10-10 14:29:51.531 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uname=panda] [GET=/device/template/list/all] [uid=1] : 获取Template列表 ->4ms -2023-10-10 14:29:55.273 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uname=panda] [POST=/device/cmd] [uid=1] : 命令下发 ->120ms -2023-10-10 14:29:55.301 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uid=1] [uname=panda] [GET=/device/cmd/list] : 获取命令下发分页列表 ->7ms -2023-10-10 14:30:09.624 [ERROR] [D:/workspace/go/project/PandaX/PandaX/pkg/transport/http_server.go:48] : error http serve: http: Server closed -2023-10-10 14:30:27.661 [INFO] [D:/workspace/go/pkg/mod/github.com/!panda!x!g!o/!panda!kit@v0.0.0-20230914055936-853aa978dda1/starter/gorm.go:36] : 连接mysql [root:!MyEMS1@tcp(127.0.0.1:3306)/pandax_iot?charset=utf8&loc=Local&parseTime=true] -2023-10-10 14:30:27.668 [INFO] [D:/workspace/go/project/PandaX/PandaX/main.go:45] : mysql连接成功 -2023-10-10 14:30:27.670 [INFO] [D:/workspace/go/project/PandaX/PandaX/main.go:50] : Redis连接成功 -2023-10-10 14:30:27.670 [INFO] [D:/workspace/go/project/PandaX/PandaX/main.go:57] : Tdengine连接成功 -2023-10-10 14:30:27.677 [INFO] [D:/workspace/go/project/PandaX/PandaX/main.go:75] : 路由初始化完成 -2023-10-10 14:30:27.677 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/transport/http_server.go:38] : HTTP Server listen: :7788 -2023-10-10 14:30:27.677 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/transport/http_server.go:46] : HTTP Server listen: :7788 -2023-10-10 14:30:27.678 [INFO] [D:/workspace/go/project/PandaX/PandaX/iothub/server/emqxserver/hook.go:33] : IOTHUB HOOK Start SUCCESS,Grpc Server listen: -2023-10-10 14:30:27.678 [INFO] [D:/workspace/go/project/PandaX/PandaX/iothub/server/udpserver/hook.go:27] : UDP IOTHUB HOOK Start SUCCESS, Server listen: -2023-10-10 14:30:27.679 [INFO] [D:/workspace/go/project/PandaX/PandaX/iothub/server/tcpserver/hook.go:29] : TCP IOTHUB HOOK Start SUCCESS, Server listen: -2023-10-10 14:30:27.684 [INFO] [D:/workspace/go/project/PandaX/PandaX/apps/job/jobs/jobbase.go:87] : 2023-10-10 14:30:27 [INFO] JobCore start success. -panic: not Authorized - -goroutine 66 [running]: -pandax/iothub/client/mqttclient.GetMqttClinent({0xc001424018, 0x14}, {0xc000693200, 0x6}, {0xc000693220, 0x6}) - D:/workspace/go/project/PandaX/PandaX/iothub/client/mqttclient/mqtt.go:50 +0x31d -pandax/iothub/client/mqttclient.InitMqtt({0xc000693140?, 0x1fb10b3?}, {0xc000693200, 0x6}, {0xc000693220, 0x6}) - D:/workspace/go/project/PandaX/PandaX/iothub/client/mqttclient/mqtt.go:29 +0x93 -pandax/iothub/server/emqxserver.InitEmqxHook({0x0, 0x0}, 0xc0004b0000) - D:/workspace/go/project/PandaX/PandaX/iothub/server/emqxserver/hook.go:36 +0x1f1 -created by pandax/iothub.InitIothub - D:/workspace/go/project/PandaX/PandaX/iothub/iothub.go:14 +0xed -2023-10-10 14:31:32.946 [INFO] [D:/workspace/go/pkg/mod/github.com/!panda!x!g!o/!panda!kit@v0.0.0-20230914055936-853aa978dda1/starter/gorm.go:36] : 连接mysql [root:!MyEMS1@tcp(127.0.0.1:3306)/pandax_iot?charset=utf8&loc=Local&parseTime=true] -2023-10-10 14:31:32.952 [INFO] [D:/workspace/go/project/PandaX/PandaX/main.go:45] : mysql连接成功 -2023-10-10 14:31:32.956 [INFO] [D:/workspace/go/project/PandaX/PandaX/main.go:50] : Redis连接成功 -2023-10-10 14:31:32.956 [INFO] [D:/workspace/go/project/PandaX/PandaX/main.go:57] : Tdengine连接成功 -2023-10-10 14:31:32.974 [INFO] [D:/workspace/go/project/PandaX/PandaX/main.go:75] : 路由初始化完成 -2023-10-10 14:31:32.974 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/transport/http_server.go:38] : HTTP Server listen: :7788 -2023-10-10 14:31:32.974 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/transport/http_server.go:46] : HTTP Server listen: :7788 -2023-10-10 14:31:32.975 [INFO] [D:/workspace/go/project/PandaX/PandaX/iothub/server/emqxserver/hook.go:33] : IOTHUB HOOK Start SUCCESS,Grpc Server listen: -2023-10-10 14:31:32.975 [INFO] [D:/workspace/go/project/PandaX/PandaX/iothub/server/tcpserver/hook.go:29] : TCP IOTHUB HOOK Start SUCCESS, Server listen: -2023-10-10 14:31:32.976 [INFO] [D:/workspace/go/project/PandaX/PandaX/iothub/server/udpserver/hook.go:27] : UDP IOTHUB HOOK Start SUCCESS, Server listen: -2023-10-10 14:31:33.004 [INFO] [D:/workspace/go/project/PandaX/PandaX/apps/job/jobs/jobbase.go:87] : 2023-10-10 14:31:33 [INFO] JobCore start success. -panic: not Authorized - -goroutine 19 [running]: -pandax/iothub/client/mqttclient.GetMqttClinent({0xc000738018, 0x14}, {0xc0004c66a0, 0x6}, {0xc0004c66c0, 0x6}) - D:/workspace/go/project/PandaX/PandaX/iothub/client/mqttclient/mqtt.go:50 +0x31d -pandax/iothub/client/mqttclient.InitMqtt({0xc0004c6640?, 0x23810b3?}, {0xc0004c66a0, 0x6}, {0xc0004c66c0, 0x6}) - D:/workspace/go/project/PandaX/PandaX/iothub/client/mqttclient/mqtt.go:29 +0x93 -pandax/iothub/server/emqxserver.InitEmqxHook({0x0, 0x0}, 0xc0004de000) - D:/workspace/go/project/PandaX/PandaX/iothub/server/emqxserver/hook.go:36 +0x1f1 -created by pandax/iothub.InitIothub - D:/workspace/go/project/PandaX/PandaX/iothub/iothub.go:14 +0xed -2023-10-10 14:32:34.508 [INFO] [D:/workspace/go/pkg/mod/github.com/!panda!x!g!o/!panda!kit@v0.0.0-20230914055936-853aa978dda1/starter/gorm.go:36] : 连接mysql [root:!MyEMS1@tcp(127.0.0.1:3306)/pandax_iot?charset=utf8&loc=Local&parseTime=true] -2023-10-10 14:32:34.516 [INFO] [D:/workspace/go/project/PandaX/PandaX/main.go:45] : mysql连接成功 -2023-10-10 14:32:34.518 [INFO] [D:/workspace/go/project/PandaX/PandaX/main.go:50] : Redis连接成功 -2023-10-10 14:32:34.518 [INFO] [D:/workspace/go/project/PandaX/PandaX/main.go:57] : Tdengine连接成功 -2023-10-10 14:32:34.528 [INFO] [D:/workspace/go/project/PandaX/PandaX/main.go:75] : 路由初始化完成 -2023-10-10 14:32:34.528 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/transport/http_server.go:38] : HTTP Server listen: :7788 -2023-10-10 14:32:34.528 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/transport/http_server.go:46] : HTTP Server listen: :7788 -2023-10-10 14:32:34.528 [INFO] [D:/workspace/go/project/PandaX/PandaX/iothub/server/tcpserver/hook.go:29] : TCP IOTHUB HOOK Start SUCCESS, Server listen: -2023-10-10 14:32:34.529 [INFO] [D:/workspace/go/project/PandaX/PandaX/iothub/server/emqxserver/hook.go:33] : IOTHUB HOOK Start SUCCESS,Grpc Server listen: -2023-10-10 14:32:34.529 [INFO] [D:/workspace/go/project/PandaX/PandaX/iothub/server/udpserver/hook.go:27] : UDP IOTHUB HOOK Start SUCCESS, Server listen: -2023-10-10 14:32:34.535 [INFO] [D:/workspace/go/project/PandaX/PandaX/apps/job/jobs/jobbase.go:87] : 2023-10-10 14:32:34 [INFO] JobCore start success. -2023-10-10 14:33:05.753 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [GET=/device/template/list/all] [uid=1] [uname=panda] : 获取Template列表 ->3ms -2023-10-10 14:33:08.830 [ERROR] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:31] [uid=1] [uname=panda] [POST=/device/cmd] : 命令下发 -<-e errCode: 400, errMsg: 设备不在线无法下发指令 -2023-10-10 14:34:02.793 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uid=1] [uname=panda] [GET=/device/template/list/all] : 获取Template列表 ->8ms -2023-10-10 14:34:07.983 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [GET=/device/alarm/list] [uid=1] [uname=panda] : 获取告警分页列表 ->45ms -2023-10-10 14:34:08.586 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uid=1] [uname=panda] [GET=/device/cmd/list] : 获取命令下发分页列表 ->12ms -2023-10-10 14:34:09.935 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uid=1] [uname=panda] [GET=/device/template/list/all] : 获取Template列表 ->7ms -2023-10-10 14:34:14.814 [ERROR] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:31] [uid=1] [uname=panda] [POST=/device/cmd] : 命令下发 -<-e errCode: 400, errMsg: 设备不在线无法下发指令 -2023-10-10 14:35:46.385 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [GET=/device/group/list/tree/label] [uid=1] [uname=panda] : 获取DeviceGroup树 ->31ms -2023-10-10 14:35:46.399 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [GET=/device/product/list/all] [uid=1] [uname=panda] : 获取Product分页列表 ->30ms -2023-10-10 14:35:46.401 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uid=1] [uname=panda] [GET=/device/list] : 获取Device分页列表 ->56ms -2023-10-10 14:35:46.401 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uid=1] [uname=panda] [GET=/system/dict/data/type] : 获取字典数据列表通过字典类型 ->6ms -2023-10-10 14:35:50.934 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uname=panda] [GET=/device/cmd/list] [uid=1] : 获取命令下发分页列表 ->10ms -2023-10-10 14:35:52.518 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uname=panda] [GET=/device/template/list/all] [uid=1] : 获取Template列表 ->7ms -2023-10-10 14:35:56.730 [ERROR] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:31] [POST=/device/cmd] [uid=1] [uname=panda] : 命令下发 -<-e errCode: 400, errMsg: 设备不在线无法下发指令 -2023-10-10 14:38:39.105 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [GET=/device/cmd/list] [uid=1] [uname=panda] : 获取命令下发分页列表 ->46ms -2023-10-10 14:38:40.796 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [GET=/device/template/list/all] [uid=1] [uname=panda] : 获取Template列表 ->9ms -2023-10-10 14:38:49.696 [ERROR] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:31] [uname=panda] [POST=/device/cmd] [uid=1] : 命令下发 -<-e errCode: 400, errMsg: 设备不在线无法下发指令 -2023-10-10 14:39:00.349 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uname=panda] [GET=/device/cmd/list] [uid=1] : 获取命令下发分页列表 ->27ms -2023-10-10 14:39:02.474 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uid=1] [uname=panda] [GET=/device/template/list/all] : 获取Template列表 ->7ms -2023-10-10 14:39:09.096 [ERROR] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:31] [POST=/device/cmd] [uid=1] [uname=panda] : 命令下发 -<-e errCode: 400, errMsg: 设备不在线无法下发指令 -2023-10-10 14:39:26.952 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uid=1] [uname=panda] [GET=/device/cmd/list] : 获取命令下发分页列表 ->15ms -2023-10-10 14:40:18.209 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uid=1] [uname=panda] [GET=/device/cmd/list] : 获取命令下发分页列表 ->25ms -2023-10-10 14:40:19.009 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uid=1] [uname=panda] [GET=/device/template/list/all] : 获取Template列表 ->6ms -2023-10-10 14:40:24.712 [ERROR] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:31] [uid=1] [uname=panda] [POST=/device/cmd] : 命令下发 -<-e errCode: 400, errMsg: 设备不在线无法下发指令 -2023-10-10 14:41:29.610 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [GET=/device/cmd/list] [uid=1] [uname=panda] : 获取命令下发分页列表 ->43ms -2023-10-10 14:41:33.756 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uname=panda] [GET=/device/template/list/all] [uid=1] : 获取Template列表 ->16ms -2023-10-10 14:41:37.061 [ERROR] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:31] [POST=/device/cmd] [uid=1] [uname=panda] : 命令下发 -<-e errCode: 400, errMsg: 设备不在线无法下发指令 -2023-10-10 14:43:05.566 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [GET=/device/cmd/list] [uid=1] [uname=panda] : 获取命令下发分页列表 ->11ms -2023-10-10 14:44:35.684 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uname=panda] [GET=/device/alarm/list] [uid=1] : 获取告警分页列表 ->18ms -2023-10-10 14:44:36.581 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uname=panda] [GET=/device/cmd/list] [uid=1] : 获取命令下发分页列表 ->12ms -2023-10-10 14:44:48.283 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uid=1] [uname=panda] [GET=/device/template/list/all] : 获取Template列表 ->5ms -2023-10-10 14:44:52.258 [ERROR] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:31] [uid=1] [uname=panda] [POST=/device/cmd] : 命令下发 -<-e errCode: 400, errMsg: 设备不在线无法下发指令 -2023-10-10 14:45:41.880 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uid=1] [uname=panda] [GET=/device/alarm/list] : 获取告警分页列表 ->46ms -2023-10-10 14:45:44.035 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [GET=/device/cmd/list] [uid=1] [uname=panda] : 获取命令下发分页列表 ->10ms -2023-10-10 14:46:21.476 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uid=1] [uname=panda] [GET=/device/cmd/list] : 获取命令下发分页列表 ->15ms -2023-10-10 14:46:26.577 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uid=1] [uname=panda] [GET=/device/template/list/all] : 获取Template列表 ->11ms -2023-10-10 14:46:32.515 [ERROR] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:31] [uname=panda] [POST=/device/cmd] [uid=1] : 命令下发 -<-e errCode: 400, errMsg: 设备不在线无法下发指令 -2023-10-10 14:47:10.704 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uid=1] [uname=panda] [GET=/device/cmd/list] : 获取命令下发分页列表 ->29ms -2023-10-10 14:47:57.447 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [GET=/device/alarm/list] [uid=1] [uname=panda] : 获取告警分页列表 ->16ms -2023-10-10 14:48:02.723 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [GET=/device/9GOIPOI6GQ/status] [uid=1] [uname=panda] : 获取Device状态信息 ->17ms -2023-10-10 14:48:07.134 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uid=1] [uname=panda] [GET=/device/cmd/list] : 获取命令下发分页列表 ->11ms -2023-10-10 14:52:17.439 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [GET=/device/cmd/list] [uid=1] [uname=panda] : 获取命令下发分页列表 ->55ms -2023-10-10 14:52:40.486 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uid=1] [uname=panda] [GET=/device/cmd/list] : 获取命令下发分页列表 ->39ms -2023-10-10 14:52:49.563 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uname=panda] [GET=/device/template/list/all] [uid=1] : 获取Template列表 ->47ms -2023-10-10 14:52:53.682 [ERROR] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:31] [uid=1] [uname=panda] [POST=/device/cmd] : 命令下发 -<-e errCode: 400, errMsg: 设备不在线无法下发指令 -2023-10-10 14:54:57.457 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uname=panda] [GET=/device/group/list/tree/label] [uid=1] : 获取DeviceGroup树 ->23ms -2023-10-10 14:54:57.474 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uname=panda] [GET=/system/dict/data/type] [uid=1] : 获取字典数据列表通过字典类型 ->8ms -2023-10-10 14:54:57.475 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [GET=/device/product/list/all] [uid=1] [uname=panda] : 获取Product分页列表 ->25ms -2023-10-10 14:54:57.483 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uid=1] [uname=panda] [GET=/device/list] : 获取Device分页列表 ->64ms -2023-10-10 14:55:03.376 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uname=panda] [GET=/device/cmd/list] [uid=1] : 获取命令下发分页列表 ->11ms -2023-10-10 14:55:04.750 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uname=panda] [GET=/device/template/list/all] [uid=1] : 获取Template列表 ->5ms -2023-10-10 14:55:10.123 [ERROR] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:31] [uid=1] [uname=panda] [POST=/device/cmd] : 命令下发 -<-e errCode: 400, errMsg: 设备不在线无法下发指令 -2023-10-10 14:55:22.557 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [GET=/device/product/category/list/tree/label] [uid=1] [uname=panda] : 获取ProductCategory树 ->4ms -2023-10-10 14:55:22.560 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [GET=/device/product/list] [uid=1] [uname=panda] : 获取Product分页列表 ->28ms -2023-10-10 14:55:22.567 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uname=panda] [GET=/system/dict/data/type] [uid=1] : 获取字典数据列表通过字典类型 ->4ms -2023-10-10 14:55:22.739 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [GET=/upload/get/9b37cd4ca37090649adcee8bf17cfdcc_20230414141350.png] : 获取文件 ->90ms -2023-10-10 14:55:25.111 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uid=1] [uname=panda] [GET=/system/dict/data/type] : 获取字典数据列表通过字典类型 ->6ms -2023-10-10 14:55:25.118 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uid=1] [uname=panda] [GET=/device/product/category/list] : 获取ProductCategory列表 ->4ms -2023-10-10 14:55:27.790 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uid=1] [uname=panda] [GET=/device/product/category/list/tree] : 获取ProductCategory树 ->3ms -2023-10-10 14:55:27.802 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uid=1] [uname=panda] [GET=/system/dict/data/type] : 获取字典数据列表通过字典类型 ->6ms -2023-10-10 14:55:42.694 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uid=1] [uname=panda] [POST=/device/product/category] : 添加ProductCategory信息 ->460ms -2023-10-10 14:55:42.721 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uname=panda] [GET=/device/product/category/list] [uid=1] : 获取ProductCategory列表 ->5ms -2023-10-10 14:56:25.857 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uname=panda] [GET=/system/dict/data/type] [uid=1] : 获取字典数据列表通过字典类型 ->5ms -2023-10-10 14:56:25.865 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uid=1] [uname=panda] [GET=/device/product/category/list/tree] : 获取ProductCategory树 ->6ms -2023-10-10 14:56:41.780 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [POST=/device/product/category] [uid=1] [uname=panda] : 添加ProductCategory信息 ->463ms -2023-10-10 14:56:41.807 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uid=1] [uname=panda] [GET=/device/product/category/list] : 获取ProductCategory列表 ->5ms -2023-10-10 15:00:02.532 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uid=1] [uname=panda] [GET=/device/product/category/list] : 获取ProductCategory列表 ->7ms -2023-10-10 15:00:02.546 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [GET=/system/dict/data/type] [uid=1] [uname=panda] : 获取字典数据列表通过字典类型 ->6ms -2023-10-10 15:02:26.989 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uid=1] [uname=panda] [GET=/device/group/list/tree/label] : 获取DeviceGroup树 ->12ms -2023-10-10 15:02:27.002 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uname=panda] [GET=/system/dict/data/type] [uid=1] : 获取字典数据列表通过字典类型 ->7ms -2023-10-10 15:02:27.013 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uname=panda] [GET=/device/list] [uid=1] : 获取Device分页列表 ->27ms -2023-10-10 15:02:27.018 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uname=panda] [GET=/device/product/list/all] [uid=1] : 获取Product分页列表 ->10ms -2023-10-10 15:02:37.693 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uid=1] [uname=panda] [GET=/device/cmd/list] : 获取命令下发分页列表 ->10ms -2023-10-10 15:02:43.983 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [GET=/device/cmd/list] [uid=1] [uname=panda] : 获取命令下发分页列表 ->10ms -2023-10-10 15:02:44.794 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uid=1] [uname=panda] [GET=/device/template/list/all] : 获取Template列表 ->17ms -2023-10-10 15:02:50.680 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uid=1] [uname=panda] [GET=/device/cmd/list] : 获取命令下发分页列表 ->35ms -2023-10-10 15:02:52.229 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uname=panda] [GET=/device/template/list/all] [uid=1] : 获取Template列表 ->6ms -2023-10-10 15:02:55.998 [ERROR] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:31] [uid=1] [uname=panda] [POST=/device/cmd] : 命令下发 -<-e errCode: 400, errMsg: 设备不在线无法下发指令 -2023-10-10 15:04:56.072 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [GET=/device/alarm/list] [uid=1] [uname=panda] : 获取告警分页列表 ->40ms -2023-10-10 15:04:58.132 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [GET=/device/9GOIPOI6GQ/status] [uid=1] [uname=panda] : 获取Device状态信息 ->16ms -2023-10-10 15:05:54.309 [ERROR] [D:/workspace/go/project/PandaX/PandaX/pkg/transport/http_server.go:48] : error http serve: http: Server closed +2023-10-12 18:55:31.881 [INFO] [D:/workspace/go/pkg/mod/github.com/!panda!x!g!o/!panda!kit@v0.0.0-20230914055936-853aa978dda1/starter/gorm.go:36] : 连接mysql [root:!MyEMS1@tcp(127.0.0.1:3306)/pandax_iot?charset=utf8&loc=Local&parseTime=true] +2023-10-12 18:55:31.890 [INFO] [D:/workspace/go/project/PandaX/PandaX/main.go:45] : mysql连接成功 +2023-10-12 18:55:31.892 [INFO] [D:/workspace/go/project/PandaX/PandaX/main.go:50] : Redis连接成功 +2023-10-12 18:55:31.892 [INFO] [D:/workspace/go/project/PandaX/PandaX/main.go:57] : Tdengine连接成功 +2023-10-12 18:55:32.013 [INFO] [D:/workspace/go/project/PandaX/PandaX/main.go:75] : 路由初始化完成 +2023-10-12 18:55:32.014 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/transport/http_server.go:38] : HTTP Server listen: :7788 +2023-10-12 18:55:32.014 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/transport/http_server.go:46] : HTTP Server listen: :7788 +2023-10-12 18:55:32.015 [INFO] [D:/workspace/go/project/PandaX/PandaX/iothub/server/emqxserver/hook.go:33] : IOTHUB HOOK Start SUCCESS,Grpc Server listen: +2023-10-12 18:55:32.015 [INFO] [D:/workspace/go/project/PandaX/PandaX/iothub/server/tcpserver/hook.go:29] : TCP IOTHUB HOOK Start SUCCESS, Server listen: +2023-10-12 18:55:32.015 [INFO] [D:/workspace/go/project/PandaX/PandaX/iothub/server/udpserver/hook.go:27] : UDP IOTHUB HOOK Start SUCCESS, Server listen: +2023-10-12 18:55:32.065 [INFO] [D:/workspace/go/project/PandaX/PandaX/apps/job/jobs/jobbase.go:87] : 2023-10-12 18:55:32 [INFO] JobCore start success. +2023-10-12 18:56:00.065 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [POST=/system/user/login] : 登录 ->78ms +2023-10-12 18:56:00.096 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [GET=/system/user/auth] [uid=1] [uname=panda] : 认证信息 ->20ms +2023-10-12 18:56:01.586 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uid=1] [uname=panda] [GET=/device/alarm/panel] : 获取面板告警分组 ->5ms +2023-10-12 18:56:01.594 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uid=1] [uname=panda] [GET=/device/panel] : 获取DevicePanel ->22ms +2023-10-12 19:13:32.972 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [GET=/system/dict/data/type] [uid=1] [uname=panda] : 获取字典数据列表通过字典类型 ->11ms +2023-10-12 19:13:32.979 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uid=1] [uname=panda] [GET=/device/product/category/list/tree/label] : 获取ProductCategory树 ->5ms +2023-10-12 19:13:32.997 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uname=panda] [GET=/device/product/list] [uid=1] : 获取Product分页列表 ->13ms +2023-10-12 19:13:33.171 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [GET=/upload/get/9b37cd4ca37090649adcee8bf17cfdcc_20230414141350.png] : 获取文件 ->86ms +2023-10-12 19:15:56.936 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [GET=/device/template/list] [uid=1] [uname=panda] : 获取Template分页列表 ->15ms +2023-10-12 19:15:59.260 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uid=1] [uname=panda] [GET=/device/template/list] : 获取Template分页列表 ->12ms +2023-10-12 19:16:00.478 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uid=1] [uname=panda] [GET=/device/template/list] : 获取Template分页列表 ->27ms +2023-10-12 19:16:01.278 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uname=panda] [GET=/device/template/list] [uid=1] : 获取Template分页列表 ->12ms +2023-10-12 19:16:02.694 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [GET=/device/template/list] [uid=1] [uname=panda] : 获取Template分页列表 ->10ms +2023-10-12 19:16:57.146 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [GET=/device/product/category/list] [uid=1] [uname=panda] : 获取ProductCategory列表 ->5ms +2023-10-12 19:16:57.156 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uname=panda] [GET=/system/dict/data/type] [uid=1] : 获取字典数据列表通过字典类型 ->5ms +2023-10-12 19:16:58.961 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uid=1] [uname=panda] [GET=/system/dict/data/type] : 获取字典数据列表通过字典类型 ->11ms +2023-10-12 19:16:58.967 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uid=1] [uname=panda] [GET=/device/product/category/list/tree] : 获取ProductCategory树 ->4ms +2023-10-12 19:17:09.357 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uname=panda] [POST=/device/product/category] [uid=1] : 添加ProductCategory信息 ->316ms +2023-10-12 19:17:09.384 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uname=panda] [GET=/device/product/category/list] [uid=1] : 获取ProductCategory列表 ->6ms +2023-10-12 19:17:13.127 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uid=1] [uname=panda] [GET=/device/product/category/list/tree] : 获取ProductCategory树 ->4ms +2023-10-12 19:17:13.128 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [GET=/system/dict/data/type] [uid=1] [uname=panda] : 获取字典数据列表通过字典类型 ->6ms +2023-10-12 19:17:30.344 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uid=1] [uname=panda] [POST=/device/product/category] : 添加ProductCategory信息 ->668ms +2023-10-12 19:17:30.372 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uid=1] [uname=panda] [GET=/device/product/category/list] : 获取ProductCategory列表 ->6ms +2023-10-12 19:17:32.515 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uid=1] [uname=panda] [GET=/device/product/category/list/tree/label] : 获取ProductCategory树 ->4ms +2023-10-12 19:17:32.528 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uid=1] [uname=panda] [GET=/system/dict/data/type] : 获取字典数据列表通过字典类型 ->9ms +2023-10-12 19:17:32.548 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uname=panda] [GET=/device/product/list] [uid=1] : 获取Product分页列表 ->17ms +2023-10-12 19:17:33.984 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uid=1] [uname=panda] [GET=/device/product/category/list/tree/label] : 获取ProductCategory树 ->6ms +2023-10-12 19:17:33.994 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uid=1] [uname=panda] [GET=/system/dict/data/type] : 获取字典数据列表通过字典类型 ->7ms +2023-10-12 19:17:34.012 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uid=1] [uname=panda] [GET=/rule/chain/list/label] : 获取规则引擎Label列表 ->13ms +2023-10-12 19:18:51.431 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uid=1] [uname=panda] [POST=/upload/up] : 上传图片 ->1ms +2023-10-12 19:18:51.437 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [GET=/upload/get/1df420e901be965018e95bac136ec17f_20231012191851.jpg] : 获取文件 ->0ms +2023-10-12 19:19:17.239 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uid=1] [uname=panda] [POST=/device/product] : 添加Product信息 ->562ms +2023-10-12 19:19:17.276 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uid=1] [uname=panda] [GET=/device/product/list] : 获取Product分页列表 ->15ms +2023-10-12 19:19:21.209 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uid=1] [uname=panda] [GET=/device/product/category/list/tree/label] : 获取ProductCategory树 ->4ms +2023-10-12 19:19:21.223 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uid=1] [uname=panda] [GET=/rule/chain/list/label] : 获取规则引擎Label列表 ->9ms +2023-10-12 19:19:21.231 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [GET=/system/dict/data/type] [uid=1] [uname=panda] : 获取字典数据列表通过字典类型 ->4ms +2023-10-12 19:20:20.425 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uid=1] [uname=panda] [POST=/device/product] : 添加Product信息 ->721ms +2023-10-12 19:20:20.460 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uname=panda] [GET=/device/product/list] [uid=1] : 获取Product分页列表 ->14ms +2023-10-12 19:20:25.588 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uid=1] [uname=panda] [GET=/device/template/list] : 获取Template分页列表 ->11ms +2023-10-12 19:20:26.604 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uid=1] [uname=panda] [GET=/device/template/list] : 获取Template分页列表 ->10ms +2023-10-12 19:21:19.648 [ERROR] [D:/workspace/go/project/PandaX/PandaX/apps/device/api/product_template.go:75] : sql: converting argument $1 type: unsupported type sql.DB, a struct +2023-10-12 19:21:19.769 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uname=panda] [POST=/device/template] [uid=1] : 添加Template信息 ->373ms +2023-10-12 19:21:19.799 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uid=1] [uname=panda] [GET=/device/template/list] : 获取Template分页列表 ->11ms +2023-10-12 19:21:29.940 [ERROR] [D:/workspace/go/project/PandaX/PandaX/apps/device/api/product_template.go:75] : sql: converting argument $1 type: unsupported type sql.DB, a struct +2023-10-12 19:21:30.048 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uname=panda] [POST=/device/template] [uid=1] : 添加Template信息 ->216ms +2023-10-12 19:21:30.078 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uname=panda] [GET=/device/template/list] [uid=1] : 获取Template分页列表 ->10ms +2023-10-12 19:21:45.067 [ERROR] [D:/workspace/go/project/PandaX/PandaX/apps/device/api/product_template.go:75] : sql: converting argument $1 type: unsupported type sql.DB, a struct +2023-10-12 19:21:45.226 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uname=panda] [POST=/device/template] [uid=1] : 添加Template信息 ->306ms +2023-10-12 19:21:45.257 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [GET=/device/template/list] [uid=1] [uname=panda] : 获取Template分页列表 ->10ms +2023-10-12 19:21:50.158 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uname=panda] [GET=/device/group/list/tree/label] [uid=1] : 获取DeviceGroup树 ->20ms +2023-10-12 19:21:50.165 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [GET=/device/product/list/all] [uid=1] [uname=panda] : 获取Product分页列表 ->18ms +2023-10-12 19:21:50.165 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uid=1] [uname=panda] [GET=/system/dict/data/type] : 获取字典数据列表通过字典类型 ->7ms +2023-10-12 19:21:50.168 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uid=1] [uname=panda] [GET=/device/list] : 获取Device分页列表 ->42ms +2023-10-12 19:22:08.724 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uid=1] [uname=panda] [GET=/device/group/list/tree/label] : 获取DeviceGroup树 ->17ms +2023-10-12 19:22:08.737 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uname=panda] [GET=/system/dict/data/type] [uid=1] : 获取字典数据列表通过字典类型 ->5ms +2023-10-12 19:22:08.737 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uid=1] [uname=panda] [GET=/device/product/list/all] : 获取Product分页列表 ->16ms +2023-10-12 19:22:24.776 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [POST=/device] [uid=1] [uname=panda] : 添加Device信息 ->138ms +2023-10-12 19:22:24.818 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uid=1] [uname=panda] [GET=/device/list] : 获取Device分页列表 ->25ms +2023-10-12 19:22:28.948 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uid=1] [uname=panda] [GET=/system/dict/data/type] : 获取字典数据列表通过字典类型 ->5ms +2023-10-12 19:22:28.964 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uname=panda] [GET=/device/product/list/all] [uid=1] : 获取Product分页列表 ->12ms +2023-10-12 19:22:28.970 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uid=1] [uname=panda] [GET=/device/group/list/tree/label] : 获取DeviceGroup树 ->10ms +2023-10-12 19:23:13.207 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uname=panda] [GET=/device/list/all] [uid=1] : 获取Device列表 ->18ms +2023-10-12 19:23:29.669 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uid=1] [uname=panda] [POST=/device] : 添加Device信息 ->256ms +2023-10-12 19:23:29.717 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uid=1] [uname=panda] [GET=/device/list] : 获取Device分页列表 ->25ms +2023-10-12 19:23:32.084 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uid=1] [uname=panda] [GET=/device/group/list/tree/label] : 获取DeviceGroup树 ->13ms +2023-10-12 19:23:32.090 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uid=1] [uname=panda] [GET=/device/product/list/all] : 获取Product分页列表 ->11ms +2023-10-12 19:23:32.093 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uid=1] [uname=panda] [GET=/system/dict/data/type] : 获取字典数据列表通过字典类型 ->5ms +2023-10-12 19:23:38.980 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uname=panda] [GET=/device/YbWKD905pQ/status] [uid=1] : 获取Device状态信息 ->15ms +2023-10-12 19:23:40.732 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uname=panda] [GET=/device/YbWKD905pQ/status] [uid=1] : 获取Device状态信息 ->14ms +2023-10-12 19:23:42.316 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uid=1] [uname=panda] [GET=/device/alarm/list] : 获取告警分页列表 ->17ms +2023-10-12 19:25:52.266 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uname=panda] [GET=/device/group/list/tree/label] [uid=1] : 获取DeviceGroup树 ->19ms +2023-10-12 19:25:52.278 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uid=1] [uname=panda] [GET=/device/product/list/all] : 获取Product分页列表 ->16ms +2023-10-12 19:25:52.278 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uid=1] [uname=panda] [GET=/device/list] : 获取Device分页列表 ->38ms +2023-10-12 19:25:52.279 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [GET=/system/dict/data/type] [uid=1] [uname=panda] : 获取字典数据列表通过字典类型 ->6ms +2023-10-12 19:25:52.401 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [GET=/upload/get/1df420e901be965018e95bac136ec17f_20231012191851.jpg] : 获取文件 ->0ms +2023-10-12 19:26:52.552 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uid=1] [uname=panda] [GET=/device/group/list/tree/label] : 获取DeviceGroup树 ->12ms +2023-10-12 19:26:52.566 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [GET=/device/product/list/all] [uid=1] [uname=panda] : 获取Product分页列表 ->15ms +2023-10-12 19:26:52.567 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uid=1] [uname=panda] [GET=/device/list] : 获取Device分页列表 ->34ms +2023-10-12 19:26:52.571 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uid=1] [uname=panda] [GET=/system/dict/data/type] : 获取字典数据列表通过字典类型 ->6ms +2023-10-12 19:26:52.647 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [GET=/upload/get/1df420e901be965018e95bac136ec17f_20231012191851.jpg] : 获取文件 ->0ms +2023-10-12 19:28:08.610 [INFO] [D:/workspace/go/project/PandaX/PandaX/iothub/server/emqxserver/hook.go:98] : ZGRlMTE2NmEtYWY5MS0zZDRmLTlhYTktZWE1Njg5Yjk0MTlm断开连接 +2023-10-12 19:28:11.414 [INFO] [D:/workspace/go/project/PandaX/PandaX/iothub/server/emqxserver/hook.go:114] : 账号ZGRlMTE2NmEtYWY5MS0zZDRmLTlhYTktZWE1Njg5Yjk0MTlm,开始认证 +2023-10-12 19:28:11.418 [INFO] [D:/workspace/go/project/PandaX/PandaX/iothub/server/emqxserver/hook.go:84] : Client emqx@172.17.0.3 Connected +2023-10-12 19:28:18.292 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uid=1] [uname=panda] [GET=/device/group/list/tree/label] : 获取DeviceGroup树 ->21ms +2023-10-12 19:28:18.299 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [GET=/device/product/list/all] [uid=1] [uname=panda] : 获取Product分页列表 ->21ms +2023-10-12 19:28:18.303 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uid=1] [uname=panda] [GET=/device/list] : 获取Device分页列表 ->40ms +2023-10-12 19:28:18.303 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uname=panda] [GET=/system/dict/data/type] [uid=1] : 获取字典数据列表通过字典类型 ->6ms +2023-10-12 19:28:18.371 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [GET=/upload/get/1df420e901be965018e95bac136ec17f_20231012191851.jpg] : 获取文件 ->0ms +2023-10-12 19:28:25.102 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [GET=/device/group/list/tree/label] [uid=1] [uname=panda] : 获取DeviceGroup树 ->21ms +2023-10-12 19:28:25.111 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uid=1] [uname=panda] [GET=/device/list] : 获取Device分页列表 ->36ms +2023-10-12 19:28:25.113 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uname=panda] [GET=/device/product/list/all] [uid=1] : 获取Product分页列表 ->10ms +2023-10-12 19:28:25.118 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uname=panda] [GET=/system/dict/data/type] [uid=1] : 获取字典数据列表通过字典类型 ->6ms +2023-10-12 19:28:55.714 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uid=1] [uname=panda] [GET=/device/product/category/list/tree/label] : 获取ProductCategory树 ->3ms +2023-10-12 19:28:55.721 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uid=1] [uname=panda] [GET=/device/product/list] : 获取Product分页列表 ->16ms +2023-10-12 19:28:55.724 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uid=1] [uname=panda] [GET=/system/dict/data/type] : 获取字典数据列表通过字典类型 ->4ms +2023-10-12 19:29:00.242 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uname=panda] [GET=/device/template/list] [uid=1] : 获取Template分页列表 ->9ms +2023-10-12 19:29:01.519 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uid=1] [uname=panda] [GET=/device/template/list] : 获取Template分页列表 ->11ms +2023-10-12 19:29:02.878 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uid=1] [uname=panda] [GET=/device/template/list] : 获取Template分页列表 ->9ms +2023-10-12 19:29:03.571 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uname=panda] [GET=/device/template/list] [uid=1] : 获取Template分页列表 ->10ms +2023-10-12 19:29:08.184 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uid=1] [uname=panda] [GET=/device/template/list] : 获取Template分页列表 ->10ms +2023-10-12 19:29:09.105 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [GET=/device/template/list] [uid=1] [uname=panda] : 获取Template分页列表 ->9ms +2023-10-12 19:29:17.795 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uname=panda] [GET=/device/template/list] [uid=1] : 获取Template分页列表 ->8ms +2023-10-12 19:29:19.310 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uid=1] [uname=panda] [GET=/device/template/list] : 获取Template分页列表 ->26ms +2023-10-12 19:29:41.993 [INFO] [D:/workspace/go/project/PandaX/PandaX/iothub/netbase/hook_base.go:59] : 设备标识 devA 不存在 +2023-10-12 19:29:41.993 [INFO] [D:/workspace/go/project/PandaX/PandaX/iothub/server/emqxserver/hook.go:210] : 子设备devA 标识不存在,请先创建设备标识 +2023-10-12 19:30:05.171 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uid=1] [uname=panda] [GET=/device/product/list/all] : 获取Product分页列表 ->12ms +2023-10-12 19:30:05.179 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uid=1] [uname=panda] [GET=/device/group/list/tree/label] : 获取DeviceGroup树 ->13ms +2023-10-12 19:30:05.179 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [GET=/device/list] [uid=1] [uname=panda] : 获取Device分页列表 ->28ms +2023-10-12 19:30:05.180 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uid=1] [uname=panda] [GET=/system/dict/data/type] : 获取字典数据列表通过字典类型 ->4ms +2023-10-12 19:30:13.512 [ERROR] [D:/workspace/go/project/PandaX/PandaX/iothub/hook_message_work/hook_message_work.go:161] : +2023-10-12 19:30:48.495 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uid=1] [uname=panda] [GET=/device/YbWKD905pQ/status] : 获取Device状态信息 ->14ms +2023-10-12 19:30:49.791 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uid=1] [uname=panda] [GET=/device/YbWKD905pQ/status] : 获取Device状态信息 ->15ms +2023-10-12 19:30:52.949 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uname=panda] [GET=/device/YbWKD905pQ/property/history] [uid=1] : 获取设备属性的遥测历史 ->199ms +2023-10-12 19:30:55.900 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [GET=/device/YbWKD905pQ/property/history] [uid=1] [uname=panda] : 获取设备属性的遥测历史 ->13ms +2023-10-12 19:30:57.866 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uid=1] [uname=panda] [GET=/device/YbWKD905pQ/property/history] : 获取设备属性的遥测历史 ->12ms +2023-10-12 19:39:24.325 [ERROR] [D:/workspace/go/project/PandaX/PandaX/pkg/transport/http_server.go:48] : error http serve: http: Server closed +2023-10-12 19:39:32.612 [INFO] [D:/workspace/go/pkg/mod/github.com/!panda!x!g!o/!panda!kit@v0.0.0-20230914055936-853aa978dda1/starter/gorm.go:36] : 连接mysql [root:!MyEMS1@tcp(127.0.0.1:3306)/pandax_iot?charset=utf8&loc=Local&parseTime=true] +2023-10-12 19:39:32.618 [INFO] [D:/workspace/go/project/PandaX/PandaX/main.go:45] : mysql连接成功 +2023-10-12 19:39:32.620 [INFO] [D:/workspace/go/project/PandaX/PandaX/main.go:50] : Redis连接成功 +2023-10-12 19:39:32.620 [INFO] [D:/workspace/go/project/PandaX/PandaX/main.go:57] : Tdengine连接成功 +2023-10-12 19:39:32.628 [INFO] [D:/workspace/go/project/PandaX/PandaX/main.go:75] : 路由初始化完成 +2023-10-12 19:39:32.628 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/transport/http_server.go:38] : HTTP Server listen: :7788 +2023-10-12 19:39:32.628 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/transport/http_server.go:46] : HTTP Server listen: :7788 +2023-10-12 19:39:32.629 [INFO] [D:/workspace/go/project/PandaX/PandaX/iothub/server/tcpserver/hook.go:29] : TCP IOTHUB HOOK Start SUCCESS, Server listen: +2023-10-12 19:39:32.629 [INFO] [D:/workspace/go/project/PandaX/PandaX/iothub/server/emqxserver/hook.go:33] : IOTHUB HOOK Start SUCCESS,Grpc Server listen: +2023-10-12 19:39:32.629 [INFO] [D:/workspace/go/project/PandaX/PandaX/iothub/server/udpserver/hook.go:27] : UDP IOTHUB HOOK Start SUCCESS, Server listen: +2023-10-12 19:39:32.636 [INFO] [D:/workspace/go/project/PandaX/PandaX/iothub/server/emqxserver/hook.go:114] : 账号pandax,开始认证 +2023-10-12 19:39:32.638 [INFO] [D:/workspace/go/project/PandaX/PandaX/apps/job/jobs/jobbase.go:87] : 2023-10-12 19:39:32 [INFO] JobCore start success. +2023-10-12 19:39:32.639 [INFO] [D:/workspace/go/project/PandaX/PandaX/iothub/server/emqxserver/hook.go:84] : Client emqx@172.17.0.3 Connected +2023-10-12 19:39:37.301 [ERROR] [D:/workspace/go/project/PandaX/PandaX/iothub/hook_message_work/hook_message_work.go:161] : 设置设备影子点失败 +2023-10-12 19:39:47.701 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uid=1] [uname=panda] [GET=/device/YbWKD905pQ/status] : 获取Device状态信息 ->16ms +2023-10-12 19:39:48.421 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uname=panda] [GET=/device/YbWKD905pQ/status] [uid=1] : 获取Device状态信息 ->16ms +2023-10-12 19:39:50.743 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uid=1] [uname=panda] [GET=/device/YbWKD905pQ/status] : 获取Device状态信息 ->16ms +2023-10-12 19:39:51.468 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uid=1] [uname=panda] [GET=/device/YbWKD905pQ/status] : 获取Device状态信息 ->18ms +2023-10-12 19:39:54.914 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [GET=/device/YbWKD905pQ/property/history] [uid=1] [uname=panda] : 获取设备属性的遥测历史 ->17ms +2023-10-12 19:39:56.819 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uname=panda] [GET=/device/YbWKD905pQ/property/history] [uid=1] : 获取设备属性的遥测历史 ->14ms +2023-10-12 19:40:26.026 [ERROR] [D:/workspace/go/project/PandaX/PandaX/pkg/transport/http_server.go:48] : error http serve: http: Server closed +2023-10-12 19:40:35.745 [INFO] [D:/workspace/go/pkg/mod/github.com/!panda!x!g!o/!panda!kit@v0.0.0-20230914055936-853aa978dda1/starter/gorm.go:36] : 连接mysql [root:!MyEMS1@tcp(127.0.0.1:3306)/pandax_iot?charset=utf8&loc=Local&parseTime=true] +2023-10-12 19:40:35.751 [INFO] [D:/workspace/go/project/PandaX/PandaX/main.go:45] : mysql连接成功 +2023-10-12 19:40:35.753 [INFO] [D:/workspace/go/project/PandaX/PandaX/main.go:50] : Redis连接成功 +2023-10-12 19:40:35.753 [INFO] [D:/workspace/go/project/PandaX/PandaX/main.go:57] : Tdengine连接成功 +2023-10-12 19:40:35.760 [INFO] [D:/workspace/go/project/PandaX/PandaX/main.go:75] : 路由初始化完成 +2023-10-12 19:40:35.760 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/transport/http_server.go:38] : HTTP Server listen: :7788 +2023-10-12 19:40:35.760 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/transport/http_server.go:46] : HTTP Server listen: :7788 +2023-10-12 19:40:35.761 [INFO] [D:/workspace/go/project/PandaX/PandaX/iothub/server/emqxserver/hook.go:33] : IOTHUB HOOK Start SUCCESS,Grpc Server listen: +2023-10-12 19:40:35.761 [INFO] [D:/workspace/go/project/PandaX/PandaX/iothub/server/tcpserver/hook.go:29] : TCP IOTHUB HOOK Start SUCCESS, Server listen: +2023-10-12 19:40:35.761 [INFO] [D:/workspace/go/project/PandaX/PandaX/iothub/server/udpserver/hook.go:27] : UDP IOTHUB HOOK Start SUCCESS, Server listen: +2023-10-12 19:40:35.766 [INFO] [D:/workspace/go/project/PandaX/PandaX/apps/job/jobs/jobbase.go:87] : 2023-10-12 19:40:35 [INFO] JobCore start success. +2023-10-12 19:40:37.989 [INFO] [D:/workspace/go/project/PandaX/PandaX/iothub/server/emqxserver/hook.go:98] : pandax断开连接 +2023-10-12 19:40:37.990 [INFO] [D:/workspace/go/project/PandaX/PandaX/iothub/server/emqxserver/hook.go:114] : 账号pandax,开始认证 +2023-10-12 19:40:37.993 [INFO] [D:/workspace/go/project/PandaX/PandaX/iothub/server/emqxserver/hook.go:84] : Client emqx@172.17.0.3 Connected +2023-10-12 19:41:01.532 [ERROR] [D:/workspace/go/project/PandaX/PandaX/iothub/hook_message_work/hook_message_work.go:161] : 设置设备影子点失败 +2023-10-12 19:41:04.973 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uid=1] [uname=panda] [GET=/device/YbWKD905pQ/status] : 获取Device状态信息 ->14ms +2023-10-12 19:41:07.355 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uid=1] [uname=panda] [GET=/device/YbWKD905pQ/status] : 获取Device状态信息 ->15ms +2023-10-12 19:45:40.489 [ERROR] [D:/workspace/go/project/PandaX/PandaX/pkg/transport/http_server.go:48] : error http serve: http: Server closed +2023-10-12 19:45:46.752 [INFO] [D:/workspace/go/pkg/mod/github.com/!panda!x!g!o/!panda!kit@v0.0.0-20230914055936-853aa978dda1/starter/gorm.go:36] : 连接mysql [root:!MyEMS1@tcp(127.0.0.1:3306)/pandax_iot?charset=utf8&loc=Local&parseTime=true] +2023-10-12 19:45:46.758 [INFO] [D:/workspace/go/project/PandaX/PandaX/main.go:45] : mysql连接成功 +2023-10-12 19:45:46.760 [INFO] [D:/workspace/go/project/PandaX/PandaX/main.go:50] : Redis连接成功 +2023-10-12 19:45:46.760 [INFO] [D:/workspace/go/project/PandaX/PandaX/main.go:57] : Tdengine连接成功 +2023-10-12 19:45:46.769 [INFO] [D:/workspace/go/project/PandaX/PandaX/main.go:75] : 路由初始化完成 +2023-10-12 19:45:46.769 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/transport/http_server.go:38] : HTTP Server listen: :7788 +2023-10-12 19:45:46.770 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/transport/http_server.go:46] : HTTP Server listen: :7788 +2023-10-12 19:45:46.770 [INFO] [D:/workspace/go/project/PandaX/PandaX/iothub/server/tcpserver/hook.go:29] : TCP IOTHUB HOOK Start SUCCESS, Server listen: +2023-10-12 19:45:46.770 [INFO] [D:/workspace/go/project/PandaX/PandaX/iothub/server/emqxserver/hook.go:33] : IOTHUB HOOK Start SUCCESS,Grpc Server listen: +2023-10-12 19:45:46.771 [INFO] [D:/workspace/go/project/PandaX/PandaX/iothub/server/udpserver/hook.go:27] : UDP IOTHUB HOOK Start SUCCESS, Server listen: +2023-10-12 19:45:46.776 [INFO] [D:/workspace/go/project/PandaX/PandaX/apps/job/jobs/jobbase.go:87] : 2023-10-12 19:45:46 [INFO] JobCore start success. +2023-10-12 19:45:46.987 [INFO] [D:/workspace/go/project/PandaX/PandaX/iothub/server/emqxserver/hook.go:98] : pandax断开连接 +2023-10-12 19:45:46.989 [INFO] [D:/workspace/go/project/PandaX/PandaX/iothub/server/emqxserver/hook.go:114] : 账号pandax,开始认证 +2023-10-12 19:45:46.992 [INFO] [D:/workspace/go/project/PandaX/PandaX/iothub/server/emqxserver/hook.go:84] : Client emqx@172.17.0.3 Connected +2023-10-12 19:45:51.825 [ERROR] [D:/workspace/go/project/PandaX/PandaX/iothub/hook_message_work/hook_message_work.go:161] : 设置设备影子点失败 +2023-10-12 19:47:19.278 [INFO] [D:/workspace/go/pkg/mod/github.com/!panda!x!g!o/!panda!kit@v0.0.0-20230914055936-853aa978dda1/starter/gorm.go:36] : 连接mysql [root:!MyEMS1@tcp(127.0.0.1:3306)/pandax_iot?charset=utf8&loc=Local&parseTime=true] +2023-10-12 19:47:19.284 [INFO] [D:/workspace/go/project/PandaX/PandaX/main.go:45] : mysql连接成功 +2023-10-12 19:47:19.286 [INFO] [D:/workspace/go/project/PandaX/PandaX/main.go:50] : Redis连接成功 +2023-10-12 19:47:19.286 [INFO] [D:/workspace/go/project/PandaX/PandaX/main.go:57] : Tdengine连接成功 +2023-10-12 19:47:19.293 [INFO] [D:/workspace/go/project/PandaX/PandaX/main.go:75] : 路由初始化完成 +2023-10-12 19:47:19.293 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/transport/http_server.go:38] : HTTP Server listen: :7788 +2023-10-12 19:47:19.293 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/transport/http_server.go:46] : HTTP Server listen: :7788 +2023-10-12 19:47:19.294 [INFO] [D:/workspace/go/project/PandaX/PandaX/iothub/server/tcpserver/hook.go:29] : TCP IOTHUB HOOK Start SUCCESS, Server listen: +2023-10-12 19:47:19.294 [INFO] [D:/workspace/go/project/PandaX/PandaX/iothub/server/emqxserver/hook.go:33] : IOTHUB HOOK Start SUCCESS,Grpc Server listen: +2023-10-12 19:47:19.294 [INFO] [D:/workspace/go/project/PandaX/PandaX/iothub/server/udpserver/hook.go:27] : UDP IOTHUB HOOK Start SUCCESS, Server listen: +2023-10-12 19:47:19.300 [INFO] [D:/workspace/go/project/PandaX/PandaX/apps/job/jobs/jobbase.go:87] : 2023-10-12 19:47:19 [INFO] JobCore start success. +2023-10-12 19:47:21.861 [INFO] [D:/workspace/go/project/PandaX/PandaX/iothub/server/emqxserver/hook.go:98] : pandax断开连接 +2023-10-12 19:47:21.862 [INFO] [D:/workspace/go/project/PandaX/PandaX/iothub/server/emqxserver/hook.go:114] : 账号pandax,开始认证 +2023-10-12 19:47:21.865 [INFO] [D:/workspace/go/project/PandaX/PandaX/iothub/server/emqxserver/hook.go:84] : Client emqx@172.17.0.3 Connected +2023-10-12 19:47:21.888 [ERROR] [D:/workspace/go/project/PandaX/PandaX/iothub/hook_message_work/hook_message_work.go:160] : 设置设备影子点失败 +2023-10-12 19:47:49.587 [ERROR] [D:/workspace/go/project/PandaX/PandaX/pkg/transport/http_server.go:48] : error http serve: http: Server closed +2023-10-12 19:47:58.525 [INFO] [D:/workspace/go/pkg/mod/github.com/!panda!x!g!o/!panda!kit@v0.0.0-20230914055936-853aa978dda1/starter/gorm.go:36] : 连接mysql [root:!MyEMS1@tcp(127.0.0.1:3306)/pandax_iot?charset=utf8&loc=Local&parseTime=true] +2023-10-12 19:47:58.531 [INFO] [D:/workspace/go/project/PandaX/PandaX/main.go:45] : mysql连接成功 +2023-10-12 19:47:58.535 [INFO] [D:/workspace/go/project/PandaX/PandaX/main.go:50] : Redis连接成功 +2023-10-12 19:47:58.535 [INFO] [D:/workspace/go/project/PandaX/PandaX/main.go:57] : Tdengine连接成功 +2023-10-12 19:47:58.546 [INFO] [D:/workspace/go/project/PandaX/PandaX/main.go:75] : 路由初始化完成 +2023-10-12 19:47:58.546 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/transport/http_server.go:38] : HTTP Server listen: :7788 +2023-10-12 19:47:58.546 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/transport/http_server.go:46] : HTTP Server listen: :7788 +2023-10-12 19:47:58.547 [INFO] [D:/workspace/go/project/PandaX/PandaX/iothub/server/emqxserver/hook.go:33] : IOTHUB HOOK Start SUCCESS,Grpc Server listen: +2023-10-12 19:47:58.547 [INFO] [D:/workspace/go/project/PandaX/PandaX/iothub/server/tcpserver/hook.go:29] : TCP IOTHUB HOOK Start SUCCESS, Server listen: +2023-10-12 19:47:58.547 [INFO] [D:/workspace/go/project/PandaX/PandaX/iothub/server/udpserver/hook.go:27] : UDP IOTHUB HOOK Start SUCCESS, Server listen: +2023-10-12 19:47:58.557 [INFO] [D:/workspace/go/project/PandaX/PandaX/apps/job/jobs/jobbase.go:87] : 2023-10-12 19:47:58 [INFO] JobCore start success. +2023-10-12 19:48:01.559 [INFO] [D:/workspace/go/project/PandaX/PandaX/iothub/server/emqxserver/hook.go:114] : 账号pandax,开始认证 +2023-10-12 19:48:01.562 [INFO] [D:/workspace/go/project/PandaX/PandaX/iothub/server/emqxserver/hook.go:84] : Client emqx@172.17.0.3 Connected +2023-10-12 19:48:09.150 [ERROR] [D:/workspace/go/project/PandaX/PandaX/iothub/hook_message_work/hook_message_work.go:160] : 设置设备影子点失败 +2023-10-12 19:49:57.107 [INFO] [D:/workspace/go/pkg/mod/github.com/!panda!x!g!o/!panda!kit@v0.0.0-20230914055936-853aa978dda1/starter/gorm.go:36] : 连接mysql [root:!MyEMS1@tcp(127.0.0.1:3306)/pandax_iot?charset=utf8&loc=Local&parseTime=true] +2023-10-12 19:49:57.113 [INFO] [D:/workspace/go/project/PandaX/PandaX/main.go:45] : mysql连接成功 +2023-10-12 19:49:57.114 [INFO] [D:/workspace/go/project/PandaX/PandaX/main.go:50] : Redis连接成功 +2023-10-12 19:49:57.114 [INFO] [D:/workspace/go/project/PandaX/PandaX/main.go:57] : Tdengine连接成功 +2023-10-12 19:49:57.122 [INFO] [D:/workspace/go/project/PandaX/PandaX/main.go:75] : 路由初始化完成 +2023-10-12 19:49:57.122 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/transport/http_server.go:38] : HTTP Server listen: :7788 +2023-10-12 19:49:57.122 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/transport/http_server.go:46] : HTTP Server listen: :7788 +2023-10-12 19:49:57.123 [INFO] [D:/workspace/go/project/PandaX/PandaX/iothub/server/tcpserver/hook.go:29] : TCP IOTHUB HOOK Start SUCCESS, Server listen: +2023-10-12 19:49:57.123 [INFO] [D:/workspace/go/project/PandaX/PandaX/iothub/server/emqxserver/hook.go:33] : IOTHUB HOOK Start SUCCESS,Grpc Server listen: +2023-10-12 19:49:57.123 [INFO] [D:/workspace/go/project/PandaX/PandaX/iothub/server/udpserver/hook.go:27] : UDP IOTHUB HOOK Start SUCCESS, Server listen: +2023-10-12 19:49:57.132 [INFO] [D:/workspace/go/project/PandaX/PandaX/apps/job/jobs/jobbase.go:87] : 2023-10-12 19:49:57 [INFO] JobCore start success. +2023-10-12 19:50:00.965 [INFO] [D:/workspace/go/project/PandaX/PandaX/iothub/server/emqxserver/hook.go:114] : 账号pandax,开始认证 +2023-10-12 19:50:00.967 [INFO] [D:/workspace/go/project/PandaX/PandaX/iothub/server/emqxserver/hook.go:84] : Client emqx@172.17.0.3 Connected +2023-10-12 19:50:11.584 [ERROR] [D:/workspace/go/project/PandaX/PandaX/iothub/hook_message_work/hook_message_work.go:160] : 设置设备影子点失败 +2023-10-12 19:51:20.011 [INFO] [D:/workspace/go/pkg/mod/github.com/!panda!x!g!o/!panda!kit@v0.0.0-20230914055936-853aa978dda1/starter/gorm.go:36] : 连接mysql [root:!MyEMS1@tcp(127.0.0.1:3306)/pandax_iot?charset=utf8&loc=Local&parseTime=true] +2023-10-12 19:51:20.016 [INFO] [D:/workspace/go/project/PandaX/PandaX/main.go:45] : mysql连接成功 +2023-10-12 19:51:20.018 [INFO] [D:/workspace/go/project/PandaX/PandaX/main.go:50] : Redis连接成功 +2023-10-12 19:51:20.018 [INFO] [D:/workspace/go/project/PandaX/PandaX/main.go:57] : Tdengine连接成功 +2023-10-12 19:51:20.025 [INFO] [D:/workspace/go/project/PandaX/PandaX/main.go:75] : 路由初始化完成 +2023-10-12 19:51:20.025 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/transport/http_server.go:38] : HTTP Server listen: :7788 +2023-10-12 19:51:20.025 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/transport/http_server.go:46] : HTTP Server listen: :7788 +2023-10-12 19:51:20.026 [INFO] [D:/workspace/go/project/PandaX/PandaX/iothub/server/tcpserver/hook.go:29] : TCP IOTHUB HOOK Start SUCCESS, Server listen: +2023-10-12 19:51:20.026 [INFO] [D:/workspace/go/project/PandaX/PandaX/iothub/server/udpserver/hook.go:27] : UDP IOTHUB HOOK Start SUCCESS, Server listen: +2023-10-12 19:51:20.026 [INFO] [D:/workspace/go/project/PandaX/PandaX/iothub/server/emqxserver/hook.go:33] : IOTHUB HOOK Start SUCCESS,Grpc Server listen: +2023-10-12 19:51:20.031 [INFO] [D:/workspace/go/project/PandaX/PandaX/apps/job/jobs/jobbase.go:87] : 2023-10-12 19:51:20 [INFO] JobCore start success. +2023-10-12 19:51:23.794 [INFO] [D:/workspace/go/project/PandaX/PandaX/iothub/server/emqxserver/hook.go:114] : 账号pandax,开始认证 +2023-10-12 19:51:23.797 [INFO] [D:/workspace/go/project/PandaX/PandaX/iothub/server/emqxserver/hook.go:84] : Client emqx@172.17.0.3 Connected +2023-10-12 19:51:28.478 [ERROR] [D:/workspace/go/project/PandaX/PandaX/iothub/hook_message_work/hook_message_work.go:160] : 设置设备影子点失败%!(EXTRA string=unknown device) +2023-10-12 19:53:33.167 [INFO] [D:/workspace/go/pkg/mod/github.com/!panda!x!g!o/!panda!kit@v0.0.0-20230914055936-853aa978dda1/starter/gorm.go:36] : 连接mysql [root:!MyEMS1@tcp(127.0.0.1:3306)/pandax_iot?charset=utf8&loc=Local&parseTime=true] +2023-10-12 19:53:33.173 [INFO] [D:/workspace/go/project/PandaX/PandaX/main.go:45] : mysql连接成功 +2023-10-12 19:53:33.175 [INFO] [D:/workspace/go/project/PandaX/PandaX/main.go:50] : Redis连接成功 +2023-10-12 19:53:33.176 [INFO] [D:/workspace/go/project/PandaX/PandaX/main.go:57] : Tdengine连接成功 +2023-10-12 19:53:33.198 [INFO] [D:/workspace/go/project/PandaX/PandaX/main.go:75] : 路由初始化完成 +2023-10-12 19:53:33.198 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/transport/http_server.go:38] : HTTP Server listen: :7788 +2023-10-12 19:53:33.198 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/transport/http_server.go:46] : HTTP Server listen: :7788 +2023-10-12 19:53:33.199 [INFO] [D:/workspace/go/project/PandaX/PandaX/iothub/server/tcpserver/hook.go:29] : TCP IOTHUB HOOK Start SUCCESS, Server listen: +2023-10-12 19:53:33.199 [INFO] [D:/workspace/go/project/PandaX/PandaX/iothub/server/emqxserver/hook.go:33] : IOTHUB HOOK Start SUCCESS,Grpc Server listen: +2023-10-12 19:53:33.199 [INFO] [D:/workspace/go/project/PandaX/PandaX/iothub/server/udpserver/hook.go:27] : UDP IOTHUB HOOK Start SUCCESS, Server listen: +2023-10-12 19:53:33.205 [INFO] [D:/workspace/go/project/PandaX/PandaX/apps/job/jobs/jobbase.go:87] : 2023-10-12 19:53:33 [INFO] JobCore start success. +2023-10-12 19:53:36.999 [INFO] [D:/workspace/go/project/PandaX/PandaX/iothub/server/emqxserver/hook.go:98] : ZGRlMTE2NmEtYWY5MS0zZDRmLTlhYTktZWE1Njg5Yjk0MTlm断开连接 +2023-10-12 19:53:37.001 [INFO] [D:/workspace/go/project/PandaX/PandaX/iothub/server/emqxserver/hook.go:114] : 账号pandax,开始认证 +2023-10-12 19:53:37.004 [INFO] [D:/workspace/go/project/PandaX/PandaX/iothub/server/emqxserver/hook.go:84] : Client emqx@172.17.0.3 Connected +2023-10-12 19:53:37.699 [INFO] [D:/workspace/go/project/PandaX/PandaX/iothub/server/emqxserver/hook.go:114] : 账号ZGRlMTE2NmEtYWY5MS0zZDRmLTlhYTktZWE1Njg5Yjk0MTlm,开始认证 +2023-10-12 19:53:37.702 [INFO] [D:/workspace/go/project/PandaX/PandaX/iothub/server/emqxserver/hook.go:84] : Client emqx@172.17.0.3 Connected +2023-10-12 19:54:45.176 [ERROR] [D:/workspace/go/project/PandaX/PandaX/iothub/hook_message_work/hook_message_work.go:160] : +2023-10-12 19:54:51.790 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uid=1] [uname=panda] [GET=/device/YbWKD905pQ/status] : 获取Device状态信息 ->16ms +2023-10-12 19:54:52.719 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [GET=/device/YbWKD905pQ/status] [uid=1] [uname=panda] : 获取Device状态信息 ->17ms +2023-10-12 19:56:31.521 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uid=1] [uname=panda] [GET=/device/YbWKD905pQ/status] : 获取Device状态信息 ->15ms +2023-10-12 19:56:33.153 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uid=1] [uname=panda] [GET=/device/YbWKD905pQ/status] : 获取Device状态信息 ->16ms +2023-10-12 20:02:06.914 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uname=panda] [GET=/device/YbWKD905pQ/status] [uid=1] : 获取Device状态信息 ->15ms +2023-10-12 20:02:07.458 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uid=1] [uname=panda] [GET=/device/YbWKD905pQ/status] : 获取Device状态信息 ->16ms +2023-10-12 20:09:55.600 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [GET=/device/YbWKD905pQ/status] [uid=1] [uname=panda] : 获取Device状态信息 ->18ms +2023-10-12 20:09:57.578 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uname=panda] [GET=/device/YbWKD905pQ/status] [uid=1] : 获取Device状态信息 ->14ms +2023-10-12 20:09:58.501 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uid=1] [uname=panda] [GET=/device/YbWKD905pQ/status] : 获取Device状态信息 ->15ms +2023-10-12 20:10:20.840 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uid=1] [uname=panda] [GET=/device/YbWKD905pQ/property/history] : 获取设备属性的遥测历史 ->19ms +2023-10-12 20:10:23.327 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uname=panda] [GET=/device/YbWKD905pQ/property/history] [uid=1] : 获取设备属性的遥测历史 ->15ms +2023-10-12 20:10:28.459 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uid=1] [uname=panda] [GET=/device/YbWKD905pQ/property/history] : 获取设备属性的遥测历史 ->15ms +2023-10-12 20:10:29.177 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uname=panda] [GET=/device/YbWKD905pQ/property/history] [uid=1] : 获取设备属性的遥测历史 ->18ms +2023-10-12 20:11:44.511 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uid=1] [uname=panda] [GET=/device/YbWKD905pQ/property/history] : 获取设备属性的遥测历史 ->13ms +2023-10-12 20:11:45.712 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uid=1] [uname=panda] [GET=/device/YbWKD905pQ/property/history] : 获取设备属性的遥测历史 ->16ms +2023-10-12 20:13:13.109 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uid=1] [uname=panda] [GET=/device/YbWKD905pQ/property/history] : 获取设备属性的遥测历史 ->13ms +2023-10-12 20:13:15.078 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [GET=/device/YbWKD905pQ/property/history] [uid=1] [uname=panda] : 获取设备属性的遥测历史 ->14ms +2023-10-12 20:13:18.004 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uid=1] [uname=panda] [GET=/device/YbWKD905pQ/property/history] : 获取设备属性的遥测历史 ->43ms +2023-10-12 20:13:20.060 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uname=panda] [GET=/device/YbWKD905pQ/property/history] [uid=1] : 获取设备属性的遥测历史 ->15ms +2023-10-12 20:13:21.004 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [GET=/device/YbWKD905pQ/property/history] [uid=1] [uname=panda] : 获取设备属性的遥测历史 ->12ms +2023-10-12 20:13:23.912 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uid=1] [uname=panda] [GET=/device/YbWKD905pQ/property/history] : 获取设备属性的遥测历史 ->52ms +2023-10-12 20:13:25.768 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uname=panda] [GET=/device/YbWKD905pQ/property/history] [uid=1] : 获取设备属性的遥测历史 ->13ms +2023-10-12 20:13:26.340 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [GET=/device/YbWKD905pQ/property/history] [uid=1] [uname=panda] : 获取设备属性的遥测历史 ->16ms +2023-10-12 20:13:27.112 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uid=1] [uname=panda] [GET=/device/YbWKD905pQ/property/history] : 获取设备属性的遥测历史 ->14ms +2023-10-12 20:14:32.907 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [GET=/device/YbWKD905pQ/property/history] [uid=1] [uname=panda] : 获取设备属性的遥测历史 ->18ms +2023-10-12 20:14:34.429 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [GET=/device/YbWKD905pQ/property/history] [uid=1] [uname=panda] : 获取设备属性的遥测历史 ->15ms +2023-10-12 20:14:35.264 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [GET=/device/YbWKD905pQ/property/history] [uid=1] [uname=panda] : 获取设备属性的遥测历史 ->14ms +2023-10-12 20:14:37.861 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [GET=/device/YbWKD905pQ/property/history] [uid=1] [uname=panda] : 获取设备属性的遥测历史 ->14ms +2023-10-12 20:14:41.767 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uid=1] [uname=panda] [GET=/device/YbWKD905pQ/property/history] : 获取设备属性的遥测历史 ->12ms +2023-10-12 20:14:42.764 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uid=1] [uname=panda] [GET=/device/YbWKD905pQ/property/history] : 获取设备属性的遥测历史 ->15ms +2023-10-12 20:15:36.179 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uid=1] [uname=panda] [GET=/device/YbWKD905pQ/status] : 获取Device状态信息 ->20ms +2023-10-12 20:15:41.788 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uid=1] [uname=panda] [GET=/device/YbWKD905pQ/status] : 获取Device状态信息 ->15ms +2023-10-12 20:15:42.622 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [GET=/device/YbWKD905pQ/status] [uid=1] [uname=panda] : 获取Device状态信息 ->15ms +2023-10-12 20:15:44.519 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uname=panda] [GET=/device/YbWKD905pQ/property/history] [uid=1] : 获取设备属性的遥测历史 ->15ms +2023-10-12 20:15:46.556 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uid=1] [uname=panda] [GET=/device/YbWKD905pQ/property/history] : 获取设备属性的遥测历史 ->15ms +2023-10-12 20:16:32.813 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [GET=/device/YbWKD905pQ/property/history] [uid=1] [uname=panda] : 获取设备属性的遥测历史 ->13ms +2023-10-12 20:16:39.278 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uid=1] [uname=panda] [GET=/device/YbWKD905pQ/property/history] : 获取设备属性的遥测历史 ->13ms +2023-10-12 20:17:36.268 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uid=1] [uname=panda] [GET=/device/YbWKD905pQ/status] : 获取Device状态信息 ->57ms +2023-10-12 20:17:43.910 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uid=1] [uname=panda] [GET=/device/YbWKD905pQ/status] : 获取Device状态信息 ->16ms +2023-10-12 20:17:45.587 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [GET=/device/YbWKD905pQ/property/history] [uid=1] [uname=panda] : 获取设备属性的遥测历史 ->16ms +2023-10-12 20:17:56.175 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uid=1] [uname=panda] [GET=/device/YbWKD905pQ/property/history] : 获取设备属性的遥测历史 ->15ms +2023-10-12 20:20:22.320 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [GET=/device/YbWKD905pQ/property/history] [uid=1] [uname=panda] : 获取设备属性的遥测历史 ->13ms +2023-10-12 20:20:23.028 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [GET=/device/YbWKD905pQ/property/history] [uid=1] [uname=panda] : 获取设备属性的遥测历史 ->15ms +2023-10-12 20:20:29.707 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uid=1] [uname=panda] [GET=/device/YbWKD905pQ/property/history] : 获取设备属性的遥测历史 ->17ms +2023-10-12 20:20:32.565 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uname=panda] [GET=/device/YbWKD905pQ/property/history] [uid=1] : 获取设备属性的遥测历史 ->17ms +2023-10-12 20:21:20.232 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uid=1] [uname=panda] [GET=/device/YbWKD905pQ/status] : 获取Device状态信息 ->22ms +2023-10-12 20:21:21.864 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uid=1] [uname=panda] [GET=/device/YbWKD905pQ/status] : 获取Device状态信息 ->16ms +2023-10-12 20:21:23.399 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uid=1] [uname=panda] [GET=/device/YbWKD905pQ/property/history] : 获取设备属性的遥测历史 ->23ms +2023-10-12 20:21:30.088 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uname=panda] [GET=/device/YbWKD905pQ/property/history] [uid=1] : 获取设备属性的遥测历史 ->17ms +2023-10-12 20:21:34.036 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [GET=/device/YbWKD905pQ/property/history] [uid=1] [uname=panda] : 获取设备属性的遥测历史 ->15ms +2023-10-12 20:21:52.071 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uid=1] [uname=panda] [GET=/device/9GOIPOI6GQ/status] : 获取Device状态信息 ->15ms +2023-10-12 20:21:53.383 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uid=1] [uname=panda] [GET=/device/9GOIPOI6GQ/status] : 获取Device状态信息 ->17ms +2023-10-12 20:21:54.547 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uid=1] [uname=panda] [GET=/device/9GOIPOI6GQ/property/history] : 获取设备属性的遥测历史 ->17ms +2023-10-12 20:21:55.855 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uid=1] [uname=panda] [GET=/device/9GOIPOI6GQ/property/history] : 获取设备属性的遥测历史 ->14ms +2023-10-12 20:21:59.571 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uid=1] [uname=panda] [GET=/device/9GOIPOI6GQ/property/history] : 获取设备属性的遥测历史 ->20ms +2023-10-12 20:22:10.315 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [GET=/device/9GOIPOI6GQ/property/history] [uid=1] [uname=panda] : 获取设备属性的遥测历史 ->17ms +2023-10-12 20:22:12.345 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uname=panda] [GET=/device/9GOIPOI6GQ/property/history] [uid=1] : 获取设备属性的遥测历史 ->14ms +2023-10-12 20:22:12.845 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uname=panda] [GET=/device/9GOIPOI6GQ/property/history] [uid=1] : 获取设备属性的遥测历史 ->13ms +2023-10-12 20:22:21.411 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uid=1] [uname=panda] [GET=/device/9GOIPOI6GQ/property/history] : 获取设备属性的遥测历史 ->16ms +2023-10-12 20:22:31.438 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uname=panda] [GET=/device/lCtIzLLdIQ/status] [uid=1] : 获取Device状态信息 ->15ms +2023-10-12 20:22:32.195 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [GET=/device/lCtIzLLdIQ/status] [uid=1] [uname=panda] : 获取Device状态信息 ->17ms +2023-10-12 20:22:33.573 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uid=1] [uname=panda] [GET=/device/lCtIzLLdIQ/property/history] : 获取设备属性的遥测历史 ->17ms +2023-10-12 20:22:35.684 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uid=1] [uname=panda] [GET=/device/lCtIzLLdIQ/property/history] : 获取设备属性的遥测历史 ->13ms +2023-10-12 20:22:46.822 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uid=1] [uname=panda] [GET=/device/9GOIPOI6GQ/status] : 获取Device状态信息 ->16ms +2023-10-12 20:22:47.793 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uid=1] [uname=panda] [GET=/device/9GOIPOI6GQ/status] : 获取Device状态信息 ->16ms +2023-10-12 20:22:49.155 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uid=1] [uname=panda] [GET=/device/9GOIPOI6GQ/property/history] : 获取设备属性的遥测历史 ->25ms +2023-10-12 20:23:00.954 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uid=1] [uname=panda] [GET=/device/9GOIPOI6GQ/property/history] : 获取设备属性的遥测历史 ->14ms +2023-10-12 20:23:03.125 [INFO] [D:/workspace/go/project/PandaX/PandaX/pkg/middleware/log.go:34] [uid=1] [uname=panda] [GET=/device/9GOIPOI6GQ/property/history] : 获取设备属性的遥测历史 ->17ms diff --git a/pkg/rule_engine/message/message.go b/pkg/rule_engine/message/message.go index bbe0b1f..0d8c98b 100644 --- a/pkg/rule_engine/message/message.go +++ b/pkg/rule_engine/message/message.go @@ -8,14 +8,15 @@ import ( // 消息类型 const ( - ConnectMes = "Connect" - DisConnectMes = "Disconnect" - RpcRequestMes = "RpcRequest" - UpEventMes = "Event" - AlarmMes = "Alarm" - RowMes = "Row" - TelemetryMes = "Telemetry" - AttributesMes = "Attributes" + ConnectMes = "Connect" + DisConnectMes = "Disconnect" + RpcRequestMes = "RpcRequestFromDevice" + RpcRequestServerMes = "RpcRequestFromServer" + UpEventMes = "Event" + AlarmMes = "Alarm" + RowMes = "Row" + TelemetryMes = "Telemetry" + AttributesMes = "Attributes" ) // 数据类型Originator diff --git a/pkg/rule_engine/nodes/action_rpc_request_node.go b/pkg/rule_engine/nodes/action_rpc_request_node.go index a1f2875..06ce109 100644 --- a/pkg/rule_engine/nodes/action_rpc_request_node.go +++ b/pkg/rule_engine/nodes/action_rpc_request_node.go @@ -1,14 +1,14 @@ package nodes import ( - "errors" "pandax/iothub/client/mqttclient" "pandax/pkg/rule_engine/message" ) type rpcRequestNode struct { bareNode - RequestId int `json:"requestId"` + Timeout int `json:"timeout"` + Payload mqttclient.RpcPayload `json:"payload"` } type rpcRequestNodeFactory struct{} @@ -26,20 +26,10 @@ func (f rpcRequestNodeFactory) Create(id string, meta Metadata) (Node, error) { func (n *rpcRequestNode) Handle(msg *message.Message) error { successLableNode := n.GetLinkedNode("Success") failureLableNode := n.GetLinkedNode("Failure") - RequestId := n.RequestId - if RequestId == 0 { - RequestId = int(msg.Metadata.GetValue("requestId").(float64)) - } - if msg.Msg.GetValue("method") == nil || msg.Msg.GetValue("params") == nil { - return errors.New("请求响应格式不正确") - } - var datas = mqttclient.RpcPayload{ - Method: msg.Msg.GetValue("method").(string), - Params: msg.Msg.GetValue("params"), - } - var rpc = &mqttclient.RpcRequest{Client: mqttclient.MqttClient, Mode: "single"} + + var rpc = &mqttclient.RpcRequest{Client: mqttclient.MqttClient, Mode: "single", Timeout: n.Timeout} rpc.GetRequestId() - err := rpc.RespondTpc(datas) + respPayload, err := rpc.RequestCmd(n.Payload) if err != nil { if failureLableNode != nil { return failureLableNode.Handle(msg) @@ -47,6 +37,9 @@ func (n *rpcRequestNode) Handle(msg *message.Message) error { return err } } + msgM := msg.Msg + msgM["payload"] = respPayload + msg.Msg = msgM if successLableNode != nil { return successLableNode.Handle(msg) } diff --git a/pkg/rule_engine/nodes/action_rpc_respond_node.go b/pkg/rule_engine/nodes/action_rpc_respond_node.go new file mode 100644 index 0000000..3d50c88 --- /dev/null +++ b/pkg/rule_engine/nodes/action_rpc_respond_node.go @@ -0,0 +1,49 @@ +package nodes + +import ( + "pandax/iothub/client/mqttclient" + "pandax/pkg/rule_engine/message" +) + +type rpcRespondNode struct { + bareNode + RequestId int `json:"requestId"` +} + +type rpcRespondFactory struct{} + +func (f rpcRespondFactory) Name() string { return "RpcRespondNode" } +func (f rpcRespondFactory) Category() string { return NODE_CATEGORY_ACTION } +func (f rpcRespondFactory) Labels() []string { return []string{"Success", "Failure"} } +func (f rpcRespondFactory) Create(id string, meta Metadata) (Node, error) { + node := &rpcRespondNode{ + bareNode: newBareNode(f.Name(), id, meta, f.Labels()), + } + return decodePath(meta, node) +} + +func (n *rpcRespondNode) Handle(msg *message.Message) error { + successLableNode := n.GetLinkedNode("Success") + failureLableNode := n.GetLinkedNode("Failure") + RequestId := n.RequestId + if RequestId == 0 { + RequestId = int(msg.Metadata.GetValue("requestId").(float64)) + } + var datas = mqttclient.RpcPayload{ + Method: msg.Msg.GetValue("method").(string), + Params: msg.Msg.GetValue("params"), + } + rpc := &mqttclient.RpcRequest{Client: mqttclient.MqttClient, RequestId: RequestId} + err := rpc.RespondTpc(datas) + if err != nil { + if failureLableNode != nil { + return failureLableNode.Handle(msg) + } else { + return err + } + } + if successLableNode != nil { + return successLableNode.Handle(msg) + } + return nil +} diff --git a/pkg/rule_engine/nodes/filter_message_type_switch_node.go b/pkg/rule_engine/nodes/filter_message_type_switch_node.go index 032f592..2c5f822 100644 --- a/pkg/rule_engine/nodes/filter_message_type_switch_node.go +++ b/pkg/rule_engine/nodes/filter_message_type_switch_node.go @@ -18,6 +18,7 @@ func (f messageTypeSwitchNodeFactory) Labels() []string { message.AttributesMes, message.TelemetryMes, message.RpcRequestMes, + message.RpcRequestServerMes, message.AlarmMes, message.UpEventMes, message.ConnectMes, diff --git a/pkg/rule_engine/nodes/filter_switch_node.go b/pkg/rule_engine/nodes/filter_switch_node.go index b128ed1..a5b50aa 100644 --- a/pkg/rule_engine/nodes/filter_switch_node.go +++ b/pkg/rule_engine/nodes/filter_switch_node.go @@ -21,6 +21,7 @@ func (f switchFilterNodeFactory) Labels() []string { message.AttributesMes, message.TelemetryMes, message.RpcRequestMes, + message.RpcRequestServerMes, message.AlarmMes, message.UpEventMes, message.ConnectMes, diff --git a/pkg/rule_engine/nodes/init.go b/pkg/rule_engine/nodes/init.go index d1ec8d3..529c779 100644 --- a/pkg/rule_engine/nodes/init.go +++ b/pkg/rule_engine/nodes/init.go @@ -28,5 +28,6 @@ func init() { RegisterFactory(externalSendEmailNodeFactory{}) RegisterFactory(externalSendSmsNodeFactory{}) RegisterFactory(externalRuleChainNodeFactory{}) + RegisterFactory(rpcRespondFactory{}) RegisterFactory(rpcRequestNodeFactory{}) } diff --git a/shutdown.bat b/shutdown.bat index f6d4122..1df5f55 100644 --- a/shutdown.bat +++ b/shutdown.bat @@ -1 +1 @@ -taskkill /pid 32324 -t -f \ No newline at end of file +taskkill /pid 24048 -t -f \ No newline at end of file diff --git a/uploads/file/1df420e901be965018e95bac136ec17f_20231012191851.jpg b/uploads/file/1df420e901be965018e95bac136ec17f_20231012191851.jpg new file mode 100644 index 0000000000000000000000000000000000000000..966dad484b917f91f3ae236cafd36e746a5842dd GIT binary patch literal 174262 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

|rrFTuDg3*uQns@2377t*7$ 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 literal 0 HcmV?d00001