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

 找回密码
 立即注册
楼主: 恐别倾城

[教程系列] 智能门锁-优智云家连接ha

  [复制链接]

17

主题

162

帖子

1426

积分

金牌会员

Rank: 6Rank: 6

积分
1426
金钱
1264
HASS币
0
发表于 2024-2-5 08:56:19 | 显示全部楼层
恐别倾城 发表于 2024-2-4 19:56
我家的锁没有远程开锁功能,所以我只是提供了一个可以用来开锁的途径,具体还是要你们自己测试下 ...

关于远程开锁再报告一个问题,当执行远程开锁之后由于实时情况这个节点每30秒会发送心跳包,导致开锁的动作也是每30秒执行一次,这样就太危险了,我的变通方法是执行开锁后延时2秒再执行一次登陆操作,暂时可以避免这个现象,希望下一版能改进
回复

使用道具 举报

1

主题

30

帖子

364

积分

论坛技术达人

积分
364
金钱
329
HASS币
20
 楼主| 发表于 2024-2-5 09:14:17 | 显示全部楼层
csl0524 发表于 2024-2-5 08:56
关于远程开锁再报告一个问题,当执行远程开锁之后由于实时情况这个节点每30秒会发送心跳包,导致开锁的动 ...

我测试并没有发现这个问题,心跳数据和开锁数据是分开的,能看下你的流吗
回复

使用道具 举报

17

主题

162

帖子

1426

积分

金牌会员

Rank: 6Rank: 6

积分
1426
金钱
1264
HASS币
0
发表于 2024-2-5 10:22:17 | 显示全部楼层
恐别倾城 发表于 2024-2-5 09:14
我测试并没有发现这个问题,心跳数据和开锁数据是分开的,能看下你的流吗 ...

微信截图_20240205102022.jpg

当红框中的为pingmsg时开锁才能成功,这会导致遵循心跳包的30秒间隔重复开锁,如果红框中换成你提供的范例中的payload时开锁好像不成功
回复

使用道具 举报

1

主题

45

帖子

995

积分

高级会员

Rank: 4

积分
995
金钱
950
HASS币
0
发表于 2024-2-5 12:40:09 | 显示全部楼层

感谢更新,今天回家了测试下
回复

使用道具 举报

1

主题

30

帖子

364

积分

论坛技术达人

积分
364
金钱
329
HASS币
20
 楼主| 发表于 2024-2-5 13:05:24 | 显示全部楼层
csl0524 发表于 2024-2-5 10:22
当红框中的为pingmsg时开锁才能成功,这会导致遵循心跳包的30秒间隔重复开锁,如果红框中换成你提供的 ...

更新以后支持传入自定义数据,而不是修改pingMsg,可以看下我给的流的例子
回复

使用道具 举报

1

主题

45

帖子

995

积分

高级会员

Rank: 4

积分
995
金钱
950
HASS币
0
发表于 2024-2-5 13:05:27 | 显示全部楼层

还没测试,不过看了一下大佬代码, 应该是把我的流程里面的开锁节点直接换成你的live节点,加个custom参数应该就可以完美适配了,回家搞一搞
回复

使用道具 举报

17

主题

162

帖子

1426

积分

金牌会员

Rank: 6Rank: 6

积分
1426
金钱
1264
HASS币
0
发表于 2024-2-5 14:51:37 | 显示全部楼层
恐别倾城 发表于 2024-2-5 13:05
更新以后支持传入自定义数据,而不是修改pingMsg,可以看下我给的流的例子 ...

你的例子中开锁的代码中没有msg.url 、msg.token这两个参数的?不用的吗?但是不带这两参数“实时情况”就断开了。

微信截图_20240205144825.png

改成payload也是会断开连接,只有pingmsg才是可以发送成功的。由于你的锁没有开锁功能,可能开锁的过程和你的测试环境不同的,开锁是要用开锁密码请求另外一个网址得到一个开锁token的,并不是用登陆时获取的token的,而在你的例子代码中用的是登陆的token所以可以发送,可能是这个原因吧?
回复

使用道具 举报

1

主题

30

帖子

364

积分

论坛技术达人

积分
364
金钱
329
HASS币
20
 楼主| 发表于 2024-2-5 16:23:29 | 显示全部楼层
本帖最后由 恐别倾城 于 2024-2-5 16:25 编辑
csl0524 发表于 2024-2-5 14:51
你的例子中开锁的代码中没有msg.url 、msg.token这两个参数的?不用的吗?但是不带这两参数“实时情况” ...

你的函数是错误的,这样写函数会导致ws连接重置
Snipaste_2024-01-15_11-19-44.png msg.url 、msg.token这两个参数是不需要传的,因为连接已经建立
回复

使用道具 举报

17

主题

162

帖子

1426

积分

金牌会员

Rank: 6Rank: 6

积分
1426
金钱
1264
HASS币
0
发表于 2024-2-5 16:40:58 | 显示全部楼层
恐别倾城 发表于 2024-2-5 16:23
你的函数是错误的,这样写函数会导致ws连接重置
msg.url 、msg.token这两个参数是不需要传的,因为连接已 ...

搞定了,感谢指导
回复

使用道具 举报

1

主题

45

帖子

995

积分

高级会员

Rank: 4

积分
995
金钱
950
HASS币
0
发表于 2024-2-6 01:00:04 | 显示全部楼层
已经测试过了,完美搞定
// 开锁参数多加一个custom,内容随意就可以了,实际参数放到payload里面
msg.custom = true
msg.payload = {
    "header": {
        "namespace": "Iot.Device",
        "name": "Ctrl",
        "messageId": guid(),
        "payloadVersion": 1,
        "secureToken": accessToken
    },
    "payload": {
        "did": "XXXXXXX",
        "verify": true,
        "data": "XXXXXXXXXX"
    }
}
回复

使用道具 举报

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

本版积分规则

Archiver|手机版|小黑屋|Hassbian

GMT+8, 2024-5-14 10:47 , Processed in 0.083375 second(s), 33 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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