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

 找回密码
 立即注册
查看: 414|回复: 5

[流程系列] 【方案分享】通过开放平台实现萤石智能门锁的自动化触发

[复制链接]

1

主题

3

帖子

32

积分

新手上路

Rank: 1

积分
32
金钱
29
HASS币
0
发表于 2024-10-25 08:58:13 | 显示全部楼层 |阅读模式
本帖最后由 robaggio 于 2024-10-25 14:54 编辑

最近购买了萤石的智能门锁,就想实现「开锁后自动打开室内灯的自动化场景」这个简单的需求。安装后才发现好像没办法通过米家或者猫精接入萤石门锁,而萤石云视频里有操作不了我家的灯 - 只能上HA来解决了。逛了论坛发现 https://bbs.hassbian.com/thread-26222-1-1.html 已经有朋友做了萤石开放平台的研究,只不过他做的是门铃提醒,所以再把开锁自动触发的细节再记录一下,提供给需要的朋友。

第一步:基本的Node-RED安装,这里不赘述,就是要和开放平台集成肯定是需要内网穿透的。我家的网络做不了NAT,这里提供一个CloudFlare Tunnel 免费内网穿透的简明教程(大概率需要购买一个域名) https://sspai.com/post/79278 ,这是我能找到的最安全和方便的方法了,用这个方法HA也可以安全的在外网访问了。

第二步:配置流程,直接看图比较直观。

Flow

Flow
  • 「ezviz platform」是http in 节点,对应的url第三步会配置用到,配置好后最好先带着外网地址本地测试联通性,减少集成测试时的问题。
  • 「json」节点,因为平台过来的数据都是文本
  • 「template」节点,用来构造平台消息返回体,如果构造的不对,平台会判定成推送失败了,会导致服务降级。
    {"messageId": "{{payload.header.messageId}}"}

  • 「http」是http response节点,同上,code 200即可。不管是否满足自动化触发的步骤,每一次平台调用都要走这些节点,才能保证推送服务的正常链接。
  • 「msgType」「alarmType」是 switch节点,用来判断是否是我们需要的开门消息(后面发现目前没有这两个节点也可以,但是保险起见可以加上),export json太乱,我还是截图吧,注意勾选stopping after first match
    msg.payload.header.type == ys.iot
    msg.payload.body.identifier == DoorOpeningRecord

    msgType

    msgType

    alarmType

    alarmType
  • 「nauticalDawn - sunset」是time range节点,填上自己家的经纬度,就能判断合理的开灯时间,白天开门就不开灯了是吧。

    time range

    time range
  • 「homeassistant.turn on」节点是homeassistant下的Action节点,负责具体操作满足条件的自动化步骤,我这里是打开客厅门口的灯

    turn_on

    turn_on


部署成功后进入下一步

第三步:开通消息推送。萤石开放平台是免费注册的,能直接绑上自己家的锁。消息推送服务的资料 https://open.ys7.com/help/566,个人门锁不用付费就够用,只需要开通云信令即可。

推送配置

推送配置
  • 然后是和前面的朋友研究的略微有区别的地方,开通消息推送时,「消息类型」经过我的测试只需要勾选「国标告警信息」即可,「告警信息」分类下会一次下发好多不相关数据(包括室内开门),还需要Note-RED额外处理过滤,「国标告警信息」就纯粹的多,就是门外解锁开门一次发一个消息,同时发送失败的概率也会减少,防止服务被降级。另外订阅国标告警消息也不会影响手机端接收告警消息。
  • webhook回调地址就填写第二步Node-RED配置的http in节点endpoint。

第四部:测试。配置好后,确保所有设备都联网,就可以测试了,可以在开放平台里看到推送记录。个人实测稍微有一点延迟,毕竟从家里到萤石开放平台,再穿透回家里还是需要一点点时间的。

开放平台推送记录

开放平台推送记录

评分

参与人数 1金钱 +8 收起 理由
cjnt007 + 8 感谢楼主分享!

查看全部评分

回复

使用道具 举报

20

主题

483

帖子

3150

积分

论坛元老

Rank: 8Rank: 8

积分
3150
金钱
2667
HASS币
8
发表于 2024-10-25 16:53:33 | 显示全部楼层
谢谢楼主的分享,你的方案为我们更好使用萤石开放平台功能提供了更多思路
回复

使用道具 举报

20

主题

483

帖子

3150

积分

论坛元老

Rank: 8Rank: 8

积分
3150
金钱
2667
HASS币
8
发表于 2024-10-31 14:57:52 | 显示全部楼层
可能门锁的型号不一样,我的就没有【国标告警消息】,平时推送来的只有【告警消息】【呼叫消息】【设备状态消息】三类。
回复

使用道具 举报

1

主题

3

帖子

32

积分

新手上路

Rank: 1

积分
32
金钱
29
HASS币
0
 楼主| 发表于 2024-11-5 18:52:14 | 显示全部楼层
cjnt007 发表于 2024-10-31 14:57
可能门锁的型号不一样,我的就没有【国标告警消息】,平时推送来的只有【告警消息】【呼叫消息】【设备状态 ...

https://open.ys7.com/console/messagePush.html 这里看看编辑推送设置信息,能否选择更多的类型?我总感觉这个云信令应该是云端的消息类型,应该和设备没关系才对啊。
回复

使用道具 举报

20

主题

483

帖子

3150

积分

论坛元老

Rank: 8Rank: 8

积分
3150
金钱
2667
HASS币
8
发表于 2024-11-6 10:44:18 | 显示全部楼层
robaggio 发表于 2024-11-5 18:52
https://open.ys7.com/console/messagePush.html 这里看看编辑推送设置信息,能否选择更多的类型?我总感 ...

我在“编辑开通消息类型”里面,把所有消息类型都勾选了,也包含【国标告警消息】一项,但收到的门锁各类信息里,就没有【国标告警消息】类型的消息。是否是只要勾选【国标告警消息】一项,而其他都取消呢?
回复

使用道具 举报

0

主题

2

帖子

24

积分

新手上路

Rank: 1

积分
24
金钱
22
HASS币
0
发表于 3 天前 | 显示全部楼层
感谢楼主提供的方案
回复

使用道具 举报

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

本版积分规则

Archiver|手机版|小黑屋|Hassbian

GMT+8, 2024-11-21 16:43 , Processed in 0.772598 second(s), 31 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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