demacia 发表于 2023-7-5 00:11:17

csl0524 发表于 2023-6-11 10:16
从错误信息看可能是33-42的代码有问题,先确定36、37两行是不是已经改好了?另外就是35行那个开锁的URL可 ...

贴主可以试试nr上自带websocket out组件发生ctrl消息,我不太想开贴发教程了。大体还是仿照你的教程做的

csl0524 发表于 2023-7-5 10:27:32

demacia 发表于 2023-7-5 00:11
贴主可以试试nr上自带websocket out组件发生ctrl消息,我不太想开贴发教程了。大体还是仿照你的教程做的 ...

呃,这个不会,发送ctrl消息要先发起请求得到一个开锁的token,这些步骤不知道如何实现,另外发送ping消息也不会,点击发送就会先断开连接再连接,实际测试也没有收到pong消息,不知道怎么搞。或是你发个流给参考一下吧

demacia 发表于 2023-7-5 12:53:58

csl0524 发表于 2023-7-5 10:27
呃,这个不会,发送ctrl消息要先发起请求得到一个开锁的token,这些步骤不知道如何实现,另外发送ping消 ...

点击发送 断开原因我查过,你估计和我踩了一样的坑。我把替换的websokcet的文件打了发送的消息的日志,websocket-out组件应该调整到载荷模式就行。
之所以断开的原因是锁的服务器那边检测到你发的格式不对,就断开了;websocket-组建会自动重连。

csl0524 发表于 2023-7-5 13:59:57

demacia 发表于 2023-7-5 12:53
点击发送 断开原因我查过,你估计和我踩了一样的坑。我把替换的websokcet的文件打了发送的消息的日志,we ...

我不是计算机专业的,你说的这些都不懂,开锁这个目前可以用暂时不管了,关于定时发送ping消息这个该如何解决?讲具体一些,底子差听不懂:dizzy:

demacia 发表于 2023-7-5 21:59:56

csl0524 发表于 2023-7-5 13:59
我不是计算机专业的,你说的这些都不懂,开锁这个目前可以用暂时不管了,关于定时发送ping消息这个该如何 ...

[
    {
      "id": "b7765ab3393b31ac",
      "type": "websocket out",
      "z": "de0de8a7f80fa31e",
      "name": "Lock",
      "server": "",
      "client": "75686c82f9066504",
      "x": 835,
      "y": 340,
      "wires": [],
      "l": false
    },
    {
      "id": "24101c5d7889f977",
      "type": "inject",
      "z": "de0de8a7f80fa31e",
      "name": "Ping",
      "props": [],
      "repeat": "50",
      "crontab": "",
      "once": false,
      "onceDelay": 0.1,
      "topic": "",
      "x": 230,
      "y": 340,
      "wires": [
            [
                "18ae6859891c15c0"
            ]
      ]
    },
    {
      "id": "3985280296e9b9ef",
      "type": "uuid",
      "z": "de0de8a7f80fa31e",
      "uuidVersion": "v1",
      "namespaceType": "",
      "namespace": "",
      "namespaceCustom": "",
      "name": "UUID组件生成Ping消息的MessageId",
      "field": "payload.header.messageId",
      "fieldType": "msg",
      "x": 650,
      "y": 340,
      "wires": [
            [
                "b7765ab3393b31ac"
            ]
      ]
    },
    {
      "id": "18ae6859891c15c0",
      "type": "function",
      "z": "de0de8a7f80fa31e",
      "name": "构造Ping数据",
      "func": "msg.payload = { \n    \"header\": { \n      \"namespace\": \"Iot.Application\", \n      \"name\": \"Ping\", \n      \"messageId\": \"\", \n      \"payloadVersion\": 1 \n      } \n    }\nreturn msg;",
      "outputs": 1,
      "noerr": 0,
      "initialize": "",
      "finalize": "",
      "libs": [],
      "x": 380,
      "y": 340,
      "wires": [
            [
                "3985280296e9b9ef"
            ]
      ]
    },
    {
      "id": "75686c82f9066504",
      "type": "websocket-client",
      "path": "wss://wsapi.kiwiot.com/?access_token=",
      "tls": "df5f6c97c8337f73",
      "wholemsg": "false",
      "hb": "0",
      "subprotocol": ""
    },
    {
      "id": "df5f6c97c8337f73",
      "type": "tls-config",
      "name": "UnSafeTLS",
      "cert": "",
      "key": "",
      "ca": "",
      "certname": "",
      "keyname": "",
      "caname": "",
      "servername": "",
      "verifyservercert": false,
      "alpnprotocol": ""
    }
]这个是Ping的逻辑, 依赖了一个UUID组件,
UUID需要node-red安装下,就是在node-red 官网 https://flows.nodered.org/node/node-red-contrib-uuid,在node-red目录下面执行安装下这个组件就行.

demacia 发表于 2023-7-5 22:06:55

正常来说其实那两个替换的websocket文件,最好也是作者以新组件的形式,通过这种npm install方式导入到NR里面去可能作者嫌麻烦,再加上主逻辑大体还是老组件的,核心是websocket组件支持入参设置token参数

csl0524 发表于 2023-7-6 09:23:39

demacia 发表于 2023-7-5 21:59
这个是Ping的逻辑, 依赖了一个UUID组件,
UUID需要node-red安装下,就是在node-red 官网 https://flows.nod ...

按以上代码导入后点击注入还是会断开再连接的,好像也没有收到pong的消息,应该是没有发送成功吧

demacia 发表于 2023-7-8 00:08:04

csl0524 发表于 2023-7-6 09:23
按以上代码导入后点击注入还是会断开再连接的,好像也没有收到pong的消息,应该是没有发送成功吧 ...



csl0524 发表于 2023-7-8 04:22:24

demacia 发表于 2023-7-5 12:53
点击发送 断开原因我查过,你估计和我踩了一样的坑。我把替换的websokcet的文件打了发送的消息的日志,we ...

那我的问题出在哪?这一步中的调到载荷模式怎么搞?还有替换文件打了发送消息的日志什么意思?

csl0524 发表于 2023-7-8 22:46:35

demacia 发表于 2023-7-8 00:08

搞定了,感谢指导,更改以下这处就好



页: 1 2 3 4 [5] 6
查看完整版本: 优智云家远程开锁实现