智能门锁-优智云家连接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
增加 设置全局变量 、处理解锁数据 节点,用于解锁
本帖最后由 恐别倾城 于 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;
如果还是不行,尝试直接从实时情况中获取数据
建议吧json文件放上,上面的代码复制后,导入报错 flashbj 发表于 2023-12-28 14:15
建议吧json文件放上,上面的代码复制后,导入报错
已经上传了 这个怎么判断开锁人是谁呢?可以具体分享一下吗? yx262514 发表于 2023-12-28 14:18
这个怎么判断开锁人是谁呢?可以具体分享一下吗?
节点会输出username、id字段,username是你在门锁上设置的用户名称,id是用户id 可以加您个联系方式具体了解一下吗? yx262514 发表于 2023-12-28 14:21
可以加您个联系方式具体了解一下吗?
有什么问题你可以直接跟帖问,这样也可以帮助到有同样问题的人 太好了,不用再每次升级nr后改文件了:) 可以留个联系方式吗2363291419
确实方便,我修改一下我原来的流程