恐别倾城 发表于 2023-12-28 13:52:09

智能门锁-优智云家连接ha

本帖最后由 恐别倾城 于 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接口

我已经把完整的flow写好了,有兴趣的可以试用一下
导入之后只需要修改触发登录节点里面的用户名、密码、clientId即可,如何获取clientId可以参考这位大佬(https://bbs.hassbian.com/thread-18879-1-1.html)的文章
# 2024.2.4
1、更新1.0.4版本
支持通过ws连接发送信息(可用于 解锁)
接受参数参考 处理解锁数据 节点

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



恐别倾城 发表于 2023-12-29 09:38:55

本帖最后由 恐别倾城 于 2024-1-6 21:56 编辑

flashbj 发表于 2023-12-29 08:51
我导入了你的流程,指纹开锁,获取不到指纹ID,时间也显示出不出来,did显示undefined,是什么情况呢
...
抱歉,应该是这个节点数据处理有点问题
双击修改为以下代码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,
    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
    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;
如果还是不行,尝试直接从实时情况中获取数据




flashbj 发表于 2023-12-28 14:15:02

建议吧json文件放上,上面的代码复制后,导入报错

恐别倾城 发表于 2023-12-28 14:18:02

flashbj 发表于 2023-12-28 14:15
建议吧json文件放上,上面的代码复制后,导入报错

已经上传了

yx262514 发表于 2023-12-28 14:18:11

这个怎么判断开锁人是谁呢?可以具体分享一下吗?

恐别倾城 发表于 2023-12-28 14:20:21

yx262514 发表于 2023-12-28 14:18
这个怎么判断开锁人是谁呢?可以具体分享一下吗?

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

yx262514 发表于 2023-12-28 14:21:23

可以加您个联系方式具体了解一下吗?

恐别倾城 发表于 2023-12-28 14:23:27

yx262514 发表于 2023-12-28 14:21
可以加您个联系方式具体了解一下吗?

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

sauron 发表于 2023-12-28 14:26:52

太好了,不用再每次升级nr后改文件了:)

yx262514 发表于 2023-12-28 14:30:01

可以留个联系方式吗2363291419

flashbj 发表于 2023-12-28 14:31:49

确实方便,我修改一下我原来的流程
页: [1] 2 3 4 5 6 7 8 9 10
查看完整版本: 智能门锁-优智云家连接ha