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

 找回密码
 立即注册
查看: 5197|回复: 125

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

  [复制链接]

1

主题

30

帖子

358

积分

论坛技术达人

积分
358
金钱
323
HASS币
20
发表于 2023-12-28 13:52:09 | 显示全部楼层 |阅读模式
本帖最后由 恐别倾城 于 2024-2-4 16:07 编辑

家里的门锁是用的优智云家的解决方案,参考了这位大佬(https://bbs.hassbian.com/thread-18879-1-1.html)的连接ha方案,发现不是很实用。该大佬的方案需要更改node-red的websockt模块,比较麻烦不适合小白,索性自己写了一个模块。
可以在node-red里搜索  node-red-contrib-smart-door  直接安装。
这个节点主要是用来连接优智云家的websockt接口
更新.png
我已经把完整的flow写好了,有兴趣的可以试用一下 优智云家-支持解锁.json (11.48 KB, 下载次数: 67)
导入之后只需要修改  触发登录  节点里面的用户名、密码、clientId即可,如何获取clientId可以参考这位大佬(https://bbs.hassbian.com/thread-18879-1-1.html)的文章
# 2024.2.4
1、更新1.0.4版本
支持通过ws连接发送信息(可用于 解锁)
接受参数参考 处理解锁数据 节点

2、更新示例flow
增加 设置全局变量处理解锁数据 节点,用于解锁



flow

flow

优智云家_demo.zip

2.16 KB, 下载次数: 91

优智云家_demo.json

9.47 KB, 下载次数: 41

已修改did不显示等问题

评分

参与人数 5金钱 +51 HASS币 +20 收起 理由
KevinYAN + 5 墙都不扶,就服楼主!
sorrypqa + 16 大神666!
li2244578 + 5 高手,这是高手!
+ 20 + 20 高手,这是高手!
isw866 + 5 高手,这是高手!

查看全部评分

回复

使用道具 举报

1

主题

30

帖子

358

积分

论坛技术达人

积分
358
金钱
323
HASS币
20
 楼主| 发表于 2023-12-29 09:38:55 | 显示全部楼层
本帖最后由 恐别倾城 于 2024-1-6 21:56 编辑
flashbj 发表于 2023-12-29 08:51
我导入了你的流程,指纹开锁,获取不到指纹ID,时间也显示出不出来,did显示undefined,是什么情况呢
...

抱歉,应该是 下载.png 这个节点数据处理有点问题
双击修改为以下代码
const { name, data, did, created_at } = msg.payload?.payload || {};
const { lock_user, image_url } = data || {};

const actionMaps = {
    REMOTE_UNLOCK:"门铃",
    UNLOCKED:"开锁",
    LOCK_FINGERPRINT_FRONZEN:"验证失败",
    LOCKED:"上锁"
}
msg.payload = {
    action: actionMaps[name] || name,
    did,
    image_url: image_url || "",
    time: formatTime(created_at)
}

if (name == 'UNLOCKED'){
    //开锁
    const { type, id, alias } = lock_user;
    const maps = {
        0:'门内',
        1:'指纹',
        2:'密码',
        5:'微信',
        6:'人脸'
    }
    msg.payload.type = maps[type]
    msg.payload.user = id
    msg.payload.username = alias
} else if (name == 'LOCKED'){
    //上锁
} else if (name == 'REMOTE_UNLOCK') {
    //请求远程开锁(门铃)
} else if (name == 'LOCK_FINGERPRINT_FRONZEN') {
    //开锁失败
}else{
    msg.payload = {}
    return msg
}


function formatTime(isoString) {
    const date = new Date(isoString);
    const year = date.getFullYear();
    const month = (date.getMonth() + 1).toString().padStart(2, '0');
    const day = date.getDate().toString().padStart(2, '0');
    const hours = date.getHours().toString().padStart(2, '0');
    const minutes = date.getMinutes().toString().padStart(2, '0');
    const seconds = date.getSeconds().toString().padStart(2, '0');

    return `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`;
}


return msg;

如果还是不行,尝试直接从  实时情况  中获取数据




判断门锁情况.json

1.83 KB, 下载次数: 27

回复

使用道具 举报

13

主题

279

帖子

1609

积分

金牌会员

Rank: 6Rank: 6

积分
1609
金钱
1320
HASS币
50
发表于 2023-12-28 14:15:02 | 显示全部楼层
建议吧json文件放上,上面的代码复制后,导入报错
回复

使用道具 举报

1

主题

30

帖子

358

积分

论坛技术达人

积分
358
金钱
323
HASS币
20
 楼主| 发表于 2023-12-28 14:18:02 | 显示全部楼层
flashbj 发表于 2023-12-28 14:15
建议吧json文件放上,上面的代码复制后,导入报错

已经上传了
回复

使用道具 举报

3

主题

57

帖子

317

积分

中级会员

Rank: 3Rank: 3

积分
317
金钱
260
HASS币
0
发表于 2023-12-28 14:18:11 | 显示全部楼层
这个怎么判断开锁人是谁呢?可以具体分享一下吗?
回复

使用道具 举报

1

主题

30

帖子

358

积分

论坛技术达人

积分
358
金钱
323
HASS币
20
 楼主| 发表于 2023-12-28 14:20:21 | 显示全部楼层
yx262514 发表于 2023-12-28 14:18
这个怎么判断开锁人是谁呢?可以具体分享一下吗?

节点会输出username、id字段,username是你在门锁上设置的用户名称,id是用户id
回复

使用道具 举报

3

主题

57

帖子

317

积分

中级会员

Rank: 3Rank: 3

积分
317
金钱
260
HASS币
0
发表于 2023-12-28 14:21:23 | 显示全部楼层
可以加您个联系方式具体了解一下吗?
回复

使用道具 举报

1

主题

30

帖子

358

积分

论坛技术达人

积分
358
金钱
323
HASS币
20
 楼主| 发表于 2023-12-28 14:23:27 | 显示全部楼层
yx262514 发表于 2023-12-28 14:21
可以加您个联系方式具体了解一下吗?

有什么问题你可以直接跟帖问,这样也可以帮助到有同样问题的人
回复

使用道具 举报

1

主题

67

帖子

537

积分

高级会员

Rank: 4

积分
537
金钱
470
HASS币
0
发表于 2023-12-28 14:26:52 | 显示全部楼层
太好了,不用再每次升级nr后改文件了
回复

使用道具 举报

3

主题

57

帖子

317

积分

中级会员

Rank: 3Rank: 3

积分
317
金钱
260
HASS币
0
发表于 2023-12-28 14:30:01 | 显示全部楼层
可以留个联系方式吗2363291419
回复

使用道具 举报

13

主题

279

帖子

1609

积分

金牌会员

Rank: 6Rank: 6

积分
1609
金钱
1320
HASS币
50
发表于 2023-12-28 14:31:49 | 显示全部楼层
确实方便,我修改一下我原来的流程
回复

使用道具 举报

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

本版积分规则

Archiver|手机版|小黑屋|Hassbian

GMT+8, 2024-4-29 08:45 , Processed in 0.061638 second(s), 39 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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