『瀚思彼岸』» 智能家居技术论坛

 找回密码
 立即注册
楼主: csl0524

[教程系列] 优智云家远程开锁实现

[复制链接]

25

主题

224

帖子

1034

积分

金牌会员

007潜水了

Rank: 6Rank: 6

积分
1034
金钱
810
HASS币
0
发表于 2023-7-5 00:11:17 | 显示全部楼层
csl0524 发表于 2023-6-11 10:16
从错误信息看可能是33-42的代码有问题,先确定36、37两行是不是已经改好了?另外就是35行那个开锁的URL可 ...

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

使用道具 举报

17

主题

191

帖子

1847

积分

金牌会员

Rank: 6Rank: 6

积分
1847
金钱
1656
HASS币
0
 楼主| 发表于 2023-7-5 10:27:32 | 显示全部楼层
demacia 发表于 2023-7-5 00:11
贴主可以试试nr上自带websocket out组件发生ctrl消息,我不太想开贴发教程了。大体还是仿照你的教程做的 ...

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

使用道具 举报

25

主题

224

帖子

1034

积分

金牌会员

007潜水了

Rank: 6Rank: 6

积分
1034
金钱
810
HASS币
0
发表于 2023-7-5 12:53:58 | 显示全部楼层
csl0524 发表于 2023-7-5 10:27
呃,这个不会,发送ctrl消息要先发起请求得到一个开锁的token,这些步骤不知道如何实现,另外发送ping消 ...

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

使用道具 举报

17

主题

191

帖子

1847

积分

金牌会员

Rank: 6Rank: 6

积分
1847
金钱
1656
HASS币
0
 楼主| 发表于 2023-7-5 13:59:57 | 显示全部楼层
demacia 发表于 2023-7-5 12:53
点击发送 断开原因我查过,你估计和我踩了一样的坑。我把替换的websokcet的文件打了发送的消息的日志,we ...

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

使用道具 举报

25

主题

224

帖子

1034

积分

金牌会员

007潜水了

Rank: 6Rank: 6

积分
1034
金钱
810
HASS币
0
发表于 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目录下面执行安装下这个组件就行.
回复

使用道具 举报

25

主题

224

帖子

1034

积分

金牌会员

007潜水了

Rank: 6Rank: 6

积分
1034
金钱
810
HASS币
0
发表于 2023-7-5 22:06:55 | 显示全部楼层
正常来说其实那两个替换的websocket文件,最好也是作者以新组件的形式,通过这种npm install方式导入到NR里面去可能作者嫌麻烦,再加上主逻辑大体还是老组件的,核心是websocket组件支持入参设置token参数
回复

使用道具 举报

17

主题

191

帖子

1847

积分

金牌会员

Rank: 6Rank: 6

积分
1847
金钱
1656
HASS币
0
 楼主| 发表于 2023-7-6 09:23:39 | 显示全部楼层
demacia 发表于 2023-7-5 21:59
这个是Ping的逻辑, 依赖了一个UUID组件,
UUID需要node-red安装下,就是在node-red 官网 https://flows.nod ...

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

使用道具 举报

25

主题

224

帖子

1034

积分

金牌会员

007潜水了

Rank: 6Rank: 6

积分
1034
金钱
810
HASS币
0
发表于 2023-7-8 00:08:04 | 显示全部楼层
csl0524 发表于 2023-7-6 09:23
按以上代码导入后点击注入还是会断开再连接的,好像也没有收到pong的消息,应该是没有发送成功吧 ...

屏幕截图 2023-07-08 000345.png

回复

使用道具 举报

17

主题

191

帖子

1847

积分

金牌会员

Rank: 6Rank: 6

积分
1847
金钱
1656
HASS币
0
 楼主| 发表于 2023-7-8 04:22:24 | 显示全部楼层
demacia 发表于 2023-7-5 12:53
点击发送 断开原因我查过,你估计和我踩了一样的坑。我把替换的websokcet的文件打了发送的消息的日志,we ...

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

使用道具 举报

17

主题

191

帖子

1847

积分

金牌会员

Rank: 6Rank: 6

积分
1847
金钱
1656
HASS币
0
 楼主| 发表于 2023-7-8 22:46:35 | 显示全部楼层

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

Screenshot_20230708_224245.jpg

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|Hassbian

GMT+8, 2024-12-23 03:42 , Processed in 0.328034 second(s), 32 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表