news 2026/9/17 4:30:10

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

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
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 Assistant(Z-Wave JS 集成要求 2021.2 以上,MQTT 门锁则对版本无特殊要求)
  • MQTT 路线:一台可用的 MQTT broker(消息中转服务,比如 Mosquitto)
  • Z-Wave 路线:一个 Z-Wave 控制器(如 Home Assistant 官方 Connect ZWA-2)
  • 门锁与控制器信号可达、都在家庭网络内
  • 一个能编辑configuration.yaml的管理员账号(仅 MQTT 路线需要)

把门锁接入 Home Assistant

方式A:MQTT(自定义最强)

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让消息至少送达一次,少丢命令。

方式B:Z-Wave(即插即用)

Z-Wave 门锁不用写 YAML,全程界面操作:

  1. 把控制器插入 Home Assistant 主机,等系统自动发现
  2. 在设置里找到 Z-Wave 集成,按向导选推荐安装项完成加载
  3. 首次建网时留空安全密钥字段即可,系统会生成一套;如果这个控制器以前配过设备,必须填入旧的 S0 密钥(旧网络的通信密钥),否则老设备掉线
  4. 点"添加设备",把门锁切到配对模式(通常长按门锁上的按键)
  5. 门锁支持 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: visitor@example.com message: "今日入户密码 7391,22 点后作废"
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件事

门锁相关自动化失灵时,别乱改,按这个顺序过一遍:

  1. 在线状态:MQTT 锁先看 broker 是否存活,用开发者工具里的事件面板向state_topic发条测试消息;Z-Wave 锁看设备页节点是否在线、信号格数够不够
  2. 触发器:自动化详情里"上次触发"时间不动?核对触发器里的实体和from/to值是否与真实状态一字不差(locked写成lock是最常见的坑)
  3. 实体 ID:重配对或改名后实体 ID 会变,node_identity_id都要去实体详情页现抄
  4. 安全密钥与固件: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),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/17 4:30:03

Playnite 完整指南:一个界面管完所有 PC 与模拟器游戏

Playnite 完整指南:一个界面管完所有 PC 与模拟器游戏 【免费下载链接】Playnite Video game library manager with support for wide range of 3rd party libraries and game emulation support, providing one unified interface for your games. 项目地址: htt…

作者头像 李华
网站建设 2026/9/17 4:29:53

中国企业登顶全球二极管第一:规模优势背后的技术攻坚与选型实战

直接从行业里的一件真事说起。前阵子有个朋友转给我一条消息,标题就是“全球5大二极管巨头,这家中国企业竟排第一”,配图是一张出货量榜单。说实话,这种题目天生带着流量基因,但点进去看内容,里面提到的企业…

作者头像 李华
网站建设 2026/9/17 4:29:41

KEYSIGHT UXR0404B示波器实测:高速信号测量与探头匹配全解析

前段时间实验室进了台 KEYSIGHT UXR0404B,我第一时间就把它接到高速数字板上跑了几个实测。这台机器说白了就是是德科技 Infiniium UXR 平台的 4 GHz 款,四通道,选它做全解,主要原因是这个型号不像顶级 110 GHz 那样“只可远观”&…

作者头像 李华
网站建设 2026/9/17 4:28:37

openpilot 驾驶辅助完整指南

openpilot 驾驶辅助完整指南 【免费下载链接】openpilot openpilot is an operating system for robotics. Currently, it upgrades the driver assistance system on 300 supported cars. 项目地址: https://gitcode.com/GitHub_Trending/op/openpilot openpilot 是一套…

作者头像 李华
网站建设 2026/9/17 4:27:41

Word插入图片颜色发灰?解开ICC配置文件的色彩管理秘密

Windows 看图器看图片颜色正常,插进 Word 里却变得发灰、发暗、饱和度丢失——这个问题我在给客户处理电脑故障时遇到过不下十次。有人以为是显示器坏了,有人以为是文件损坏,甚至有人重装了 Office 也无济于事。如果你也正被这个现象折腾&…

作者头像 李华
网站建设 2026/9/17 4:26:43

Linux下用Wine跑同花顺远航版:完整安装与避坑指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华