ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

30分钟把智能门锁接入Home Assistant:远程控制与访问管理实战

30分钟把智能门锁接入Home Assistant:远程控制与访问管理实战 30分钟把智能门锁接入Home Assistant远程控制与访问管理实战【免费下载链接】home-assistant.io:blue_book: Home Assistant User documentation项目地址: https://gitcode.com/GitHub_Trending/ho/home-assistant.io凌晨一点手机弹出一条推送「前门仍处于解锁状态且家中无人。」你点开 Home Assistant确认是传感器误报顺手点一下远程落锁——门确认锁上了。接入智能门锁之后远程锁/解锁、给访客发临时密码、留一份访问记录就都成了日常操作。准备选对门锁与接入方式三种接入方式快速对比先花一分钟判断你的门锁走哪条路这决定了后面所有步骤接入方式特点适合人群配置难度厂商专用组件官方适配如 Nuki、Schlage填 token 或在 HomeKit/Matter 流程里添加即可单一品牌生态用户低Z-Wave通过 Z-Wave 控制器并入支持 S2 加密设备间通信的加密密钥等级即插即用想省心、重稳定性的用户低MQTT靠 topic 收发消息topic 相当于设备间的频道号负载、密码格式全部自定义设备开放协议、喜欢折腾的用户中高一句话结论组件列表里有官方集成就直接用Z-Wave 门锁配个控制器就行只剩 MQTT 接口的锁自由度最高但要自己写配置。硬件与环境清单动手前把这几项打勾较新版本的 Home AssistantZ-Wave JS 集成要求 2021.2 以上MQTT 门锁则对版本无特殊要求MQTT 路线一台可用的 MQTT broker消息中转服务比如 MosquittoZ-Wave 路线一个 Z-Wave 控制器如 Home Assistant 官方 Connect ZWA-2门锁与控制器信号可达、都在家庭网络内一个能编辑configuration.yaml的管理员账号仅 MQTT 路线需要把门锁接入 Home Assistant方式AMQTT自定义最强MQTT 门锁的必填项其实只有一个command_topic。下面这份最小可用配置写进configuration.yaml保存后重启即可mqtt: - lock: name: Backdoor # 仪表盘上显示的名字 command_topic: lock/backdoor/cmd # 向它发布命令门锁就会动作 state_topic: lock/backdoor/status # 门锁向它上报当前状态 payload_lock: 1 # 发布 1 表示上锁 payload_unlock: 0 # 发布 0 表示开锁这段配置到底在干什么command_topic是 Home Assistant 投递锁门/开门指令的信箱state_topic是门锁回报我现在是什么状态的频道。卡片上的锁没状态跟着这个频道实时变化如果门锁没有反馈频道它会进入乐观模式——发完命令直接假装执行成功想拿真实状态就必须接上state_topic。进阶一点的安全配置加上code_format可以限定下发的密码格式比如只收 6 位数字qos: 1让消息至少送达一次少丢命令。方式BZ-Wave即插即用Z-Wave 门锁不用写 YAML全程界面操作把控制器插入 Home Assistant 主机等系统自动发现在设置里找到 Z-Wave 集成按向导选推荐安装项完成加载首次建网时留空安全密钥字段即可系统会生成一套如果这个控制器以前配过设备必须填入旧的 S0 密钥旧网络的通信密钥否则老设备掉线点添加设备把门锁切到配对模式通常长按门锁上的按键门锁支持 S2 安全认证时输入锁体上印着的 PIN 码以最高安全等级入网添加完成后设备页里能看到锁实体和信号强度厂商专用组件则更省事Nuki、Schlage 等品牌在集成列表里直接搜名字填入桥接器地址和访问令牌或在 HomeKit/Matter 添加流程里认领设备全程无代码。用起来三个高频场景场景1远程锁门与状态确认仪表盘把锁实体拖成卡片点一下按钮就下发指令卡片文字是门锁实际回报的状态移动 App出差路上打开 App 找到锁实体锁门、看状态都在两秒内完成语音对着 Assist 说锁定前门语音助手会替你调用锁的动作关键习惯永远以卡片上的状态为准而不是我发过命令了。场景2给访客发临时密码并留痕给门锁单独划一个用户码槽位锁上存放密码的编号格Z-Wave 锁常见 2~6 个专门留给访客。下面两个自动化分别负责发码和留痕alias: 设置并通知访客临时密码 trigger: - trigger: button # 点仪表盘按钮时触发 entity_id: input_button.invite_visitor action: - service: zwave_js.set_lock_usercode data: node_id: 15 # 前门在 Z-Wave 网络里的编号 code_slot: 4 # 访客专用码槽 usercode: 7391 # 本次下发的密码 - service: notify.email data: target: visitorexample.com message: 今日入户密码 739122 点后作废alias: 前门访问日志 trigger: - trigger: state entity_id: lock.front_door # 锁状态一变就触发 action: - service: logbook.log data: name: 前门 entity_id: lock.front_door message: 状态变为 {{ trigger.to_state.state }}前者点一次按钮就把密码写进锁并通知访客后者把每一次状态变化写进日志。之后在「记录/日志」页面按前门一筛谁在什么时间开过门、变成什么状态一目了然——访客密码用多久、用过没有全有凭据。场景3异常开锁自动告警把门被打开和家里有没有人绑在一起判断才是安防自动化的灵魂alias: 异常开锁告警 trigger: - trigger: state entity_id: lock.front_door from: locked # 从已锁状态 to: unlocked # 变成解锁时触发 condition: - condition: state entity_id: person.all_members state: not_home # 且全家都外出才执行 action: - service: notify.mobile_app_myphone data: title: 前门异常 message: 门锁被打开且家中无人 - service: siren.turn_on entity_id: siren.front_entrance_siren # 同时启动门口警号家人回家开锁不会打扰你只有无人状态下的开锁才会推送加警号误报率很低。排障不工作时按顺序查这4件事门锁相关自动化失灵时别乱改按这个顺序过一遍在线状态MQTT 锁先看 broker 是否存活用开发者工具里的事件面板向state_topic发条测试消息Z-Wave 锁看设备页节点是否在线、信号格数够不够触发器自动化详情里上次触发时间不动核对触发器里的实体和from/to值是否与真实状态一字不差locked写成lock是最常见的坑实体 ID重配对或改名后实体 ID 会变node_id、entity_id都要去实体详情页现抄安全密钥与固件Z-Wave 加锁失败或状态不刷新先确认 S2/S0 密钥填对再用厂商 App 把门锁固件升到最新收尾还能做什么Matter 协议正在快速铺开新一代智能门锁越来越多支持 Thread/Matter未来一次添加、跨平台通用会是常态现在接入的门锁届时也能平滑迁移。MQTT 锁集成文档Z-Wave JS 集成文档Nuki 集成文档锁组件说明【免费下载链接】home-assistant.io:blue_book: Home Assistant User documentation项目地址: https://gitcode.com/GitHub_Trending/ho/home-assistant.io创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进