首页 / 资讯中心 / 文章详情

HomeAssistant+KNX有线智能家居实战全记录:从选型到避坑

HomeAssistant+KNX有线智能家居实战全记录:从选型到避坑 ★ FEATURED ARTICLE
装修那会儿我差点上了无线智能家居的“全套方案”后来被朋友拉去看了套 KNX 的样板间回家就把方案改了。现在这套 HomeAssistant KNX 的有线系统用了快一年我只想说一句有些东西还是“有线”两个字最踏实。如果你正打算装修或者折腾旧房改造对 HomeAssistant 这个开源平台已经有耳闻又不想让一屋子设备都依赖 Wi-Fi 和 Zigbee 的信号质量那这篇文章大概率适合你。我会从为什么选 KNX、底层逻辑怎么理解、HomeAssistant 怎么跟它打通、实际配置怎么做一直到具体踩过哪些坑完整地过一遍。不是那种蜻蜓点水的“科普”而是能让你直接照着动手的那种记录。1. 为什么无线满屋我仍选了 KNX 总线1.1 装修时的真实需求排序做智能家居之前我给自己列了一个需求清单按优先级排下来是这样的稳定性、可维护性、扩展性最后才是性价比。很多人一上来先看“能不能手机控制”“有没有好看的 App”我建议你反过来想手机控制只是最表层的体验。真正决定这套系统能不能用五年十年的是它的骨干网络稳不稳坏了容不容易修。我之前租的房子装过几个 Wi-Fi 智能插座和 Zigbee 灯泡。日常用没问题但一到晚上全家设备在线高峰期或者路由器一重启总有一两个设备掉线。掉线也就算了有些设备掉线之后状态会“漂移”——手机里显示开实际灯是关的。这种不确定性在住家里会被放大成一种很烦躁的感受你明明按了开关灯却不理你。所以到自家装修时我给自己定了一条硬规矩凡是涉及灯具、窗帘、暖气这类“基础设施级”的控制必须上有线总线。娱乐影音、扫地机器人这些设备可以走无线随它飘。基础设施这一层我要的是 99.9% 的时候都在线、不解释。1.2 KNX 与传统继电器回路的本质区别传统装修里的强电控制其实是“开关串灯线”墙上开关直接切断灯具的供电回路。如果要做智能控制常见做法是在配电箱加智能继电器模块用模组通断来控制回路。问题在于这种方案本质上还是“集中式”的——所有控制逻辑和功率开关都集中在配电箱里一旦某个模块挂掉一路乃至多路灯光全废而且布线要专门设计后期改一个双控都要扯线。KNX 是完全不同的思路。它有一种双绞总线把全屋所有智能设备串在一起每个设备——面板、驱动器、传感器——都是一台带微处理器的“节点”。它们之间通过组地址通信你按下面板面板不是直接去断灯的电而是往总线上发一条“客厅射灯亮度调到 80%”的消息挂在配电箱里的调光执行器订阅了这条消息收到后自己去控制对应的灯光回路。这样拆开的好处是显而易见的控制端面板、传感器、手机和执行端执行器通过总线解耦。你按面板也好HomeAssistant 发指令也好本质都是往同一个“消息通道”里发命令。扩展一个开关面板只需要把新设备挂到总线上然后给它分配组地址不需要动原有的强电线路。这跟继电器模组的“从头穿线”完全是两个逻辑层次。1.3 KNX 和 HomeAssistant 的互补关系那既然 KNX 已经把底层控制做得很稳了HomeAssistant 还有什么用我个人的理解是KNX 负责“可靠执行”HomeAssistant 负责“聪明决策”。KNX 本身也能做场景逻辑但它的编程工具 ETS 更适合处理“事件→动作”这类固定逻辑对于需要感知全屋状态、做跨设备联动的复杂场景写起来很绕。HomeAssistant 的价值在于它像一个“中枢大脑”能同时看到 KNX 总线上哪个灯开着、哪个窗帘没关还能结合天气、时间、人在不在家这些信息把规则组合成真正好用的自动化。比如“日落前 30 分钟如果客厅没人且有人在书房则调亮书房主灯到 70%”这种逻辑KNX 总线上写会非常痛苦但用 HomeAssistant 的自动化组件写就是几行配置的事。打个比方KNX 是水电管网的干管HomeAssistant 是楼上那套自动调节温度、适度、照明的全屋智控系统。水管干不干净决定下限上层系统灵不聪明决定上限。这两者配合得好你得到的就是一套“下限极高、上限足够折腾”的系统。2. 认识 KNX 的底层逻辑总线、拓扑与设备角色2.1 总线供电一根线同时传数据和供电KNX 最反直觉的地方是它那根绿色双绞线标准 KNX 总线电缆4 芯同时干两件事送电和传数据。红黑两根线提供 29V 直流电白黄两根线组成差分信号对传数据。面板上没有额外的电源线接上总线就能工作这也是为什么 KNX 面板后面只有一组总线端子——安装时极度清爽。29V 是安全特低电压SELV所以就算总线裸露触碰也不会有电击风险。这一点在 DIY 时是很大的心理安慰。你需要有源总线电源设备给总线供电一般挂在配电箱里常见规格有 320mA 和 640mA 两种。每个总线设备大约会吃掉 10~20mA 电流你自己可以大致算一下能带多少设备。接线时要注意红黑极性不能反白黄这对双绞线也不能乱接。虽然 KNX 设备一般都有极性保护但接反了设备不上电排查起来很头痛。总线电缆最好全程用 KNX 专用的绿色电缆别图便宜用普通网线代替一是线径和材质不同影响供电距离二是绝缘护套的机械强度也不一样装修阶段穿管容易刮伤。2.2 三段式拓扑线、区域、域KNX 的设备结构可以抽象成三级线Line、区域Area、域Domain。一条线最多挂 64 个设备15 条线组成一个区域15 个区域组成一个域。家用场景绝大多数只用一条线也就是你所有面板、执行器、传感器都在同一个 Line 上通过一个总线电源供电、一个 IP 接口接入网络就够了。一条线 64 个设备这个数字对普通住宅来说相当宽裕。三室一厅的配置大约在 20~35 个总线设备之间。就算你要做全宅影音、大量调光回路也很少会突破 64。真到突破了那再加一条线用线路耦合器把两条线连起来逻辑上像一个更大的总线网络。不过说实话做住宅项目很少有谁需要走这一步。知道这个拓扑的意义在于排故障时可以按层缩小范围。比如某个面板没响应先看它在哪条线上、那根总线段的电源是否正常——而不是从一开始就怀疑整个系统挂了。2.3 设备分类与选型清单把 KNX 设备分个类你就能看懂一个 KNX 项目的物料清单了设备类型作用典型产品举例总线电源给总线供 29V 直流电是系统的心脏ABB SV/S、MDT STC-640开关执行器控制灯具/插座回路的通断一般在配电箱里MDT BE-G、施耐德 MTN649xxx调光执行器控制可调光灯具的亮度按回路功率选型MDT AD-G、Gira 调光模块窗帘/百叶执行器控制电机正反转、百叶翻转角度MDT JA-G、Theben SCN-ACT面板/按键用户直接交互的界面挂在墙上ABB Busch-Jaeger 系列、Gira 标准55传感器人体感应、照度、温湿度探测MDT MSG、Theben theLuxa温度控制器读取室温并联动阀门/风机盘管MDT TRG、Hager 温控面板IP 接口/路由器把 KNX 总线接到局域网让 HomeAssistant 可以访问ABB IPR/S、MDT IP-Router如果你关注大牌的话KNX 生态里 ABB、施耐德、Gira、Hager、MDT、Theben 都很常见。这里有个经验执行器和电源这类“看不见但决定安全”的设备我会选欧系老牌稳定性确实经得住时间考验。面板如果预算有限可以稍微次一档因为面板只是发消息本身逻辑简单坏了也容易换。3. HomeAssistant 和 KNX 的桥接方案从 KNXnet/IP 到组地址映射3.1 桥接硬件的三种可选方案KNX 总线本身是个“局域网内的局域网”HomeAssistant 要跟它通信必须有座“桥”。最主流的桥有三种KNX IP 接口/路由器直接插到路由器交换机上通过网络与 HomeAssistant 通信。这是我最推荐的方案因为它不依赖 HA 主机的位置也不占用 USB 口而且传输稳定支持多客户端同时访问。KNX USB 接口插在 HomeAssistant 宿主机上相当于把总线直接接到 HA 的硬件上。设置简单但缺点也很明显HA 主机一重启总线暂时失联而且 USB 线不能太长机柜摆放位置受限。树莓派网关方案本质上还是 IP 接口思路但用树莓派的 KNX 模块做成独立网关。适合有折腾精神的人稳定性取决于供电和系统维护我不建议作为第一选择。我自己用的是 KNX IP 路由器因为 HomeAssistant 跑在一个小主机上主机在哪无所谓IP 路由器放在弱电箱里随时可以从局域网内任何设备访问总线。这种方式对 HA 主机的位置几乎零约束后续想换 HA 硬件也不影响 KNX 侧。3.2 HomeAssistant 侧的最小配置在 HomeAssistant 里接入 KNX核心概念叫“组地址映射”。KNX 总线上每一个可读可写的状态都是一串数字组地址比如1/1/1可能是客厅射灯的亮度开关1/1/2可能是这盏灯的状态回读。你在 HomeAssistant 里新建一个实体时需要告诉它这个灯的开关命令对应哪个组地址状态从哪个组地址读。用 UI 配置的话流程是设置 → 设备与服务 → 添加集成 → KNX。首次添加时会让你选择连接方式我选了 IP 接口并填了路由器的地址。之后每添加一个实体选择“单独添加 KNX 实体”指定类型灯光、开关、窗帘等再填好开关组地址和状态组地址。为了直观理解给你看一段底层配置的 YAML 长什么样老版本或 YAML 模式原理一致# 示例HomeAssistant 里 KNX 实体配置 knx: tunneling: host: 192.168.1.50 # KNX IP 路由器地址 port: 3671 # KNX 默认端口 switch: - platform: knx name: 客厅射灯 address: 1/1/1 # 开关命令地址 state_address: 1/1/2 # 状态回读地址 light: - platform: knx name: 餐厅吊灯 address: 1/1/3 state_address: 1/1/4 brightness_address: 1/1/5 # 亮度控制地址 brightness_state_address: 1/1/6 # 亮度状态地址现在新版本都推荐用 UI 添加集成不用手动改 YAML。但理解这条映射关系很关键KNX 的组地址和 HomeAssistant 的实体本质上是一一对应的。哪天你在手机 App 上控制一个灯不动先查的是这个实体绑定的组地址对不对而不是 HA 本身的问题。3.3 组地址的命名与规划别小看组地址规划。我见过有朋友 KNX 项目做完了ET S 里组地址用得毫无规律结果 HomeAssistant 接入时对着表找地址找了一整天。组地址的规则一般是“主组/中组/子组”我自己家里是这样规划的主组含义中组子组示例1灯光系统1 客厅 / 2 餐厅 / 3 卧室1/1/1 客厅主灯、1/1/2 客厅射灯2窗帘系统1 客厅 / 2 卧室2/1/1 客厅南窗帘开、2/1/2 客厅南窗帘停3舒适系统1 温度 / 2 新风3/1/1 客厅温度设定值、3/1/2 客厅当前温度4场景系统1 全屋 / 2 客厅4/1/1 离家模式、4/1/2 回家模式好的规划能让整个项目维持好几年的可维护性。因为你以后加设备、调逻辑必然要回头查这些地址。规划得清晰半小时能定位问题规划得混乱一次排查就是一整天。4. 实操过程从 ETS 导入到 HA 面板亮灯4.1 用 ETS 建项目并分配地址ETS 是 KNX 官方的配置软件某些版本的免费许可证可以用但有设备数量限制如果设备少免费版完全够用。ETS 里操作的核心是三步建项目添加设备从设备目录里找到你购买的型号拖进项目结构。这里注意型号要和实物完全一致版本不对设备会下载失败。分配物理地址每个总线设备有一个唯一的物理地址一般格式是区域.线.设备家用就是 1.1.1、1.1.2 这样一路排下去。这个地址相当于设备的“身份证”下载程序和日后调试全靠它。创建组地址并绑定这一步是把设备的通信对象映射到组地址上。比如开关执行器第 1 通道的开关对象绑定到组地址 1/1/1面板的第 1 按键对象也绑定到 1/1/1。这样面板按下去执行器才会收到消息。绑定完成之后先点 ETS 里的“编程”按钮把设备连上总线接口USB 或 IP逐个下载应用。这一步如果设备已经装在天花板里、配电箱角落就要用 KNX 总线调试线连接或者通过总线的 IP 路由器进入编程模式。下载过程中设备会短暂离线这是正常现象。4.2 在 HA 中安装并配置 knx 集成HA 侧接入 KNX 集成推荐直接用 UI 方式添加集成 → 搜索 KNX → 选择连接模式IP 接口 / USB 接口。如果 IP 路由器是默认配置HA 通常会自动发现填个 IP 地址就行。接上之后你可以在“设备与服务 → KNX → 添加实体”里逐个配置开关、灯光含调光、窗帘窗帘实体要选 cover 类型、传感器温湿度、照度、场景场景实体可以调用 KNX 场景地址。一个容易忽略的设置是“实体类型”。同样是控制一路灯如果你是调光执行器实体类型应该选 light 而不是 switch否则 HA 只会给你通断控制亮度调节就用不了。还有窗帘KNX 的百叶执行器通常有“位置”和“翻转角度”两组地址HA 里的 cover 实体如果只填了位置没填翻转百叶的叶片角度就调不了。4.3 关联场景、自动化与仪表盘接好实体后HA 真正发力的地方就来了。你可以用它做原本 KNX 总线上写起来很痛苦的事情比如定时场景、天气联动、离家布防。举两个我在用的自动化例子# 示例日落开客厅灯但只看室内照度 alias: 客厅灯根据照度自动开 triggers: - trigger: sun event: sunset offset: -00:30:00 conditions: - condition: numeric_state entity_id: sensor.ke_ting_zhao_du below: 150 actions: - action: light.turn_on target: entity_id: light.ke_ting_zhu_deng data: brightness: 200# 示例离家时全屋灯光关闭、窗帘落下、空调进入节能 alias: 离家模式 triggers: - trigger: state entity_id: binary_sensor.li_jia_an_niu to: on actions: - action: light.turn_off target: entity_id: all - action: cover.close_cover target: entity_id: cover.ke_ting_chuang_lian - action: climate.set_hvac_mode target: entity_id: climate.ke_ting_kong_tiao data: hvac_mode: eco至于仪表盘我就一句建议别一开始就想做一个好看的全屋 3D 面板先老老实实把你的常用开关和场景放上去用熟了再慢慢加风格。HA 的仪表盘是可以反复折腾的但前提是底层实体是可靠的——这又回到了 KNX 负责“可靠”的价值上。5. 容易踩的坑总线容量、状态回读与地址不一致5.1 总线电源选型与容量计算总线电源选小了是 KNX 系统最常见的“隐性问题”之一。每个设备在总线上的耗电不是随随便便能省的比如一个四联面板大约 10mA一个执行器模块大概 15~20mAIP 路由器大约 15mA。把这些全部加起来要留足至少 20% 的余量。举我家的例子全屋大约 28 个总线设备总静态电流约 420mA我直接选了 640mA 的电源。如果你机器到 550mA 上了某种极端情况比如全部面板同时按键背光点亮、总线通信繁忙可能瞬时过载。KNX 总线的过载不会立刻烧设备但会导致总线电压跌落设备间歇性掉线——这种问题排查起来非常隐蔽。所以我的建议是电源宁可大一号不要抠。640mA 和 320mA 的价格差距不大但前者给你留出的余量是后者的两倍。5.2 双向状态同步的问题KNX 是双向的这和很多无线智能家居的“单向遥控”思维不一样。你按物理面板HA 要知道面板状态变了你在 HA 里关灯面板上的 LED 指示灯也要跟着熄灭——否则会出现“人在面板前但面板显示与 HA 面板不同步”的割裂感。状态同步的关键是在 KNX 里配置回读地址。比如开关执行器的“开关对象”和“状态对象”都要与同一组地址绑定如果只绑了开关对象而没绑状态对象HA 发送命令后虽然灯亮了但 HA 里这个实体的状态永远是上一次的值。窗帘执行器也一样位置反馈地址必须绑否则 HA 里 cover 的位置百分比就是摆设。这类问题还有个经典表现你在 HA 里关掉了一个灯然后走过去按面板的灯——灯亮了但 HA 里还是“关”。其实是因为面板按键发的是开关命令而不是像 HA 那样查询当前状态。解决方式一般是把面板的按键对象也映射到状态组地址上或者让 HA 的实体定期主动回读总线状态。5.3 地址不一致与 ETS 版本坑组建 KNX 项目时最容易犯的低级错误是 ETS 里的组地址和 HomeAssistant 里填的地址不一致。这个坑甚至踩过两次之后才能形成肌肉记忆在 ETS 里改了一个组地址但没有同步把 HA 里所有引用了旧地址的实体一起改。于是你看到的现象无比诡异——同一个灯面板能控制、HA 自动化却控制不了。另外ETS 有多个版本和许可证级别。免费版在设备数量上有限制你如果全屋设备数超过了要么买完整许可证要么分批次下载。这里有个坑免费版能建多大的项目、能下载多少设备ETS 在项目界面写的很清楚但你如果先做了个大项目超限后连下载都不行那时候回头拆分项目更麻烦。所以项目开工前就要确认许可证级别够不够用。还有一件事编程时要给设备切换到“编程模式”物理上的编程按钮通常在设备侧或通过 ETS 触发。如果设备在配电箱里不好按你可以通过 IP 路由器远程进入编程模式。下载过程中千万别断电断电后 ETS 会报错但设备可能已经写入一半应用下次上电后状态会很奇怪——我遇到过执行器写入一半断电之后灯怎么都不亮重新完全下载应用才恢复。6. 设备选型与成本控制思路6.1 核心配置清单很多人在 KNX 前停住是因为觉得它有“高不可攀”的门槛。实际上现在 KNX 的入门成本比想象的低不少——前提是选对品牌和模式。以一套 80~100 平米住宅为例大概的配置是这样的项目数量/规格作用参考价格区间元总线电源 640mA1 个总线供电1000~1500KNX IP 路由器1 个接入局域网/HA1500~25008 回路开关执行器1 个控制 8 路灯光通断800~12004 回路调光执行器1 个控制调光灯具1500~25004 回路窗帘执行器1 个控制窗帘电机800~1500按键面板4联3~4 个墙面交互每个 600~1000温控面板1~2 个地暖/空调控制每个 800~1500人体/照度传感器2~3 个自动化触发每个 500~800KNX 总线电缆按需 200 米连接所有设备1000 左右这只是个粗略估算不同品牌、渠道价格差异不小。你用 MDT 这类性价比品牌可能比 ABB/Gira 便宜三分之一到一半功能上并不缩水多少。6.2 预算分配该省的省该花的不能省如果预算紧张我给你的排序建议是执行器和电源不能省面板可以砍、传感器可以先不买。执行器是控制回路的“物理心脏”坏一个影响一路或几路灯光所以选成熟大牌。总线电源是系统的“心脏”供电不稳全盘皆输。而面板这种东西本质是发按钮事件的设备你可以先买少量面板把常用位置的开关做上其他位置暂时用普通开关标签替代等预算充裕了再换成 KNX 面板——因为 KNX 总线是物理已经铺好的面板随时可以加。传感器也是同样逻辑装修初期可以先不上先用 HA 的定时、日落时间、手机定位这些“虚拟输入”跑基础自动化。等住进去了发现哪里真的需要一个感应灯或照度补偿再买一个挂上总线配置半小时就能用。6.3 旧房改造的混合方案已经装修完、不想再全屋开槽布线的人也不是完全无缘 KNX。有三条路可以走配电箱改造路线把灯光回路线全部集中到配电箱用 KNX 开关执行器和一台 KNX 电源 IP 路由器在不改墙面面板的情况下实现手机控制、场景和自动化墙面原机械开关可以通过“干接点”方式接入按键消息发到 KNX 总线。这样保留了原来的墙面手感又获得了后台智能控制。KNX RF 无线混合KNX 也有无线KNX RF产品线面板和传感器不需要总线电缆和有线执行器共用一个系统。适合不想拉线的局部扩展但 RF 的稳定性和有线相比还是有一点差距我把它定位在“补盲区”而不是主方案。线槽/明装路线实在需要全屋覆盖又不想破坏墙面可以走明装线槽布线把总线电缆藏在 PVC 线槽里。观感上打折但胜在拆装方便租房改造也能用。我自己的偏好是新房或重装一步到位做全屋有线老房改造优先配电箱改造 少量 RF 混合。别一上来就贪“全屋所有插座都要智能化”先把灯光和窗帘这两个“每天都要摸”的系统做到爽其他都可以后置。最后再分享一个我实际使用中的体会KNX 系统做完之后你会发现自己对智能家居的焦虑感少了一半。以前用无线设备总担心掉线、断连、固件抽风现在每天最常用的反而是那些没有任何 App 存在感的物理面板——一按就亮一拉就停稳定到你已经忘记了它的存在。HomeAssistant 则更像是藏在后台的“管家”把各种自动化打理得井井有条。这种“存在感越低说明系统越稳”的体验大概就是有线智能家居最迷人的地方吧。
阅读完成 · 觉得有帮助?
咨询建站