免费获取学习方案
ARTICLE DETAIL

资讯详情

深耕编程基础知识与建站技术分享的一线实战洞察。

智能家居用电监控实战:空气开关接入Home Assistant的完整方案

智能家居用电监控实战:空气开关接入Home Assistant的完整方案 家里配电箱里那排灰色的空气开关大概是整个智能家居生态里最后一块没通电的“哑巴设备”了。灯能远程关、空调能远程开、摄像头能随时看唯独跳闸这件事永远要等你回到家打开配电箱才后知后觉。我前阵子把全屋的空开都接入了HomeAssistant现在手机上和电脑上能实时看到每一路电路的负载状态、实时功率和温度跳闸了立刻推送报警出门在外也能一眼看出是哪一路出了毛病。这篇文章就把我这套从硬件选型到HA配置的完整折腾过程记录下来给想动手的朋友一个可以直接参照的方案。我默认看这篇文章的你已经有一个基本能跑的HomeAssistant环境不管是装在树莓派、NAS还是X86小主机上都无所谓ARM架构和x86架构在下面的配置里差别不大。如果你的HA还是全新的先把集成装好、设备能接入再回来看这篇会轻松很多。1. 先把话说清楚空气开关接入HA到底接的是什么很多人第一次听到“空气开关也能接入HomeAssistant”这个说法脑子里第一反应是“空开又不是智能设备怎么接”——这个反应完全正常因为这里接的不是空气开关本身的机械结构而是它所在回路的电气状态。我们要做的是让HA能感知到“这一路空开有没有跳闸”“这一路现在跑着多少电流”“配电箱内部温度是不是异常”然后基于这些数据做报警和联动。从电气原理上看空气开关学名叫低压断路器是一个纯粹的机械保护装置靠双金属片热效应和电磁脱扣器实现过载保护和短路保护本身没有任何通信接口。想让它“开口说话”行业里有三条主流路线换装智能空开直接买带通信模块的智能断路器比如正泰、德力西、施耐德近几年出的智能系列内部集成了电流互感器和计量芯片通过RS485、WiFi或Zigbee上报数据。这种方案最省事但单价高而且老配电箱里的空开都是标准模数宽度换装前必须先确认尺寸和分断能力是否匹配。加装智能模块在现有空开的下口加装一个带电流互感器的智能监测模块不替换原空开只负责采集数据。比如一些第三方品牌做的单路功率监测模块卡在导轨上就能用。这种方案保留了原空开的保护特性成本居中但需要配电箱里有多余的导轨空间。完全DIY用ESP32或者ESP8266自己搭采集电路配合电流互感器CT和电压采样电路把数据通过ESPHome或Tasmota接入HA。成本最低一套下来几十块钱但涉及强电采样对动手能力和安全意识要求最高。我自己最终采用的是“成品智能断路器 模块化监测单元混合部署”的方式。总闸和几个大功率回路厨房、空调、卫生间用了带计量功能的智能空开照明和普通插座回路则保留原空开在配电箱里加装了两路DIY监测模块做对比验证。这样既能拿到关键回路的高精度数据又不用把全屋空开都换一遍成本可控风险也可控。这套系统在HA里能做什么我列一下我实际在用的场景实时查看每一路回路的电流、电压、有功功率、功率因数、累计电量相当于给配电箱装了一个可视化的电表某路电流超过我设定的阈值比如空调回路超过20AHA立刻推送消息到手机提前预警而不是等空开跳了才发现哪个空开跳闸了HA里的实体状态会从“合闸”变“跳闸”配合自动化规则半夜跳闸也能第一时间收到推送不用摸黑开配电箱配电箱温度超过50度就报警这个对老房子尤其重要线路老化加上大功率负载温升是最直观的危险信号。所以这篇文章讲的“接入”本质上是给传统配电设备补上感知能力和通信能力。搞明白了这一点后面选硬件、看参数、配自动化的时候你才知道每一步在干什么而不是跟着教程盲操作。2. 硬件选型的底层逻辑不是所有“能接入HA的空开”都值得买市场上打着“智能空开”旗号的产品不少从几十块的DIY模块到大几百的工业级品牌货都有但真正适合接入HomeAssistant的选型逻辑和买普通空开完全不同。普通空开看分断能力、极数、额定电流就够了智能空开还得额外看通信协议、数据开放程度和第三方平台兼容性。2.1 通信协议直接决定你后面的折腾成本这是第一个要定下来的事。目前市面上智能空开和监测模块的通信方式大致有四种我直接说我的经验结论通信方式代表产品接入HA难度稳定性我的评价WiFi直连一些互联网家电品牌的智能断路器依赖厂商云或本地MQTT取决于路由器环境便宜但容易受网络波动影响部分品牌必须走云不推荐买必须上云的产品ZigbeeAqara等生态内的设备通过ZHA/Z2M接入非常顺滑很稳如果家里已有Zigbee网关这是最无痛的方案RS485正泰、德力西等传统电气品牌的智能系列需要RS485转USB或TCP网关再通过Modbus集成接入工业级稳定适合配电箱里大量集中部署数据是裸的HA侧想怎么玩都行蓝牙Mesh部分新国标智能断路器HA支持有限经常要折腾第三方组件一般目前生态不成熟不建议选我在总闸位置用的是一路支持RS485 Modbus协议的智能断路器原因是断路器一旦装进配电箱少说用五年八年RS485这种工业总线协议足够可靠不依赖家庭WiFi环境断电恢复后通信也能自愈。Modbus协议是明文寄存器读写HA里的modbus集成能直接读寄存器值稍微做点配置就能把电压、电流、功率、电量全部映射成实体。2.2 量程和精度是最容易被忽略的坑很多第一次买智能空开的人只盯着“能接入HomeAssistant”这个卖点完全忽略量程匹配的问题。空开额定电流是63A监测模块的电流量程也是0到100A听起来没问题但如果你只在照明回路装监测实际电流常年只有2到3A这时候一个量程100A的模块在2A电流下的分辨率可能只有0.1A甚至更差算出来的功率误差会大到让你怀疑人生。我自己踩过这个坑最初在厨房回路装了一个量程100A的监测模块实际负载也就6到8AHA里显示的功率和家里智能电表的数据差了将近25%。后来换了量程20A的模块误差立刻降到3%以内。选监测模块时量程尽量贴近实际负载的1.5到2倍而不是越大越好。2.3 品牌选择传统电气品牌优先于互联网品牌这里有个容易被忽视的点空气开关属于强制性认证产品涉及用电安全买互联网品牌做的那几种“智能空开”之前一定先确认有没有3C认证标志。我更倾向正泰、德力西、施耐德这些传统电气大厂出的智能系列原因有两个。第一是安全底线有保证分断能力、灭弧性能这些是用电安全的核心指标传统大厂在这方面的品控不是新品牌短期能追上的第二是通信协议相对开放正泰和德力西的智能空开很多都支持Modbus RTU标准协议这意味着你完全不受厂商App绑架数据想怎么用就怎么用。当然传统大厂的智能空开价格也“传统”一只带计量功能的单P空开可能要两百多块。如果不是全屋都换只在总闸和大功率回路用预算还是能接受的。照明这类小功率回路用普通空开加DIY监测模块补盲区整体成本能压下来不少。3. 从硬件到HA三种实际可用的接入路线与配网细节硬件买回来以后真正的折腾才刚刚开始。不同通信方式的设备接入HA的路径完全不同我实际配置过三种方案下面逐个说每种我都会讲清楚原理和坑在哪。3.1 方案一RS485智能空开通过Modbus集成接入这个方案适合有大厂智能空开或者工业级监测模块的情况。RS485是半双工串行总线所有设备并联在两根总线上靠地址区分彼此。HA这边需要一个RS485转USB的转换器插在主机上或者用一个网络型串口服务器RS485转TCP让HA通过网络访问。硬件连接注意一点RS485的A、B线不能接反而且智能空开通常需要24V或12V外部供电才能让通信模块工作不是接上总线就有反应。我最初调试的时候一度以为设备坏了后来查手册才发现是自己忘记给模块供12V电源。HA侧的配置用Modbus集成。一个最基础的配置长这样modbus: - name: air_switch_485 type: tcp host: 192.168.1.200 port: 502 sensors: - name: 总闸电压 address: 0x0000 unit_of_measurement: V data_type: uint16 scale: 0.1 - name: 总闸电流 address: 0x0001 unit_of_measurement: A data_type: uint16 scale: 0.01 - name: 总闸功率 address: 0x0002 unit_of_measurement: W data_type: uint16 scale: 1这里的address和scale必须对照设备的Modbus寄存器表来填不同品牌寄存器地址定义不一样没有统一标准。我第一次配的时候拿着一个网上找的通用寄存器表去填读出来的电压值是个负数后来翻了说明书里的通信协议文档才找到正确的寄存器映射。这个坑基本每个人都会踩拿到设备第一步是找官方Modbus协议手册不是找HA配置模板。Modbus模式下HA轮询频率默认比较保守如果要实时性更好可以加一个scan_interval参数比如5秒一次但别设得太频繁RS485总线上设备多的时候会互相抢占总线。3.2 方案二ESP32 非侵入式电流互感器DIY监测模块这个方案是我个人最喜欢也最推荐新手先试水的。不需要动任何原有空开和线路只需要在配电箱里加装一个自己搭的ESP32采集板用开口式电流互感器夹在火线上就能感知电流。非侵入式的含义是互感器是开口的可以直接卡在现有电线上不需要断线、不需要剥皮、不影响原有线路本质上是把电线当成互感器的一次侧二次侧感应出与电流成比例的小电流再经过采样电阻变成电压信号送给ESP32的ADC引脚。电路连接不算复杂一只开口式电流互感器我用的100A/50mA规格实际量程够用夹在某一路火线上互感器输出端并联一个采样电阻常用10到20欧姆把电流信号转成电压信号电压信号经过一个由两个二极管反向并联构成的钳位保护电路防止异常浪涌打坏ESP32的ADCESP32的ADC引脚读取电压ESPHome固件里配置成ADC传感器再做RMS换算得到电流有效值电压和功率怎么算电压可以固定测一次市电电压后硬编码进配置这个方法精度够用但没法定量分析更准确的方案是用一个220V转5V的小型变压器模块再加一个电压采样电路配合零点检测电路才能算出实时功率。代码层面ESPHome里最核心的配置大致是sensor: - platform: adc pin: GPIO34 name: 厨房回路电流 id: kitchen_current_raw update_interval: 1s filters: - calibrate_linear: - 0.0 - 0.0 - 0.5 - 10.0 unit_of_measurement: A那个calibrate_linear是校准线性度的意思是可以定义两组输入输出电压和实际电流的对应关系ESPHome会按线性插值换算。但这里有个隐患ADC采到的是瞬时电压要算有效值必须做均方根计算ESPHome的普通adc传感器做不到需要用esp32平台的adc加自定义Lambda或者在固件里用rms滤波器。我最终是用了一个第三方ESPHome组件ct_clamp它专门做电流互感器RMS计算实测精度在3%以内能用。这个方案最大的好处是安全和高性价比。不动强电线路、不加装任何串接设备心理负担小很多。缺点是需要自己动手焊电路而且一个ESP32最多能接几个互感器取决于ADC引脚数量一般做三到四路比较合理做多了ADC通道之间会互相干扰数据反而失真。3.3 方案三成品智能断路器走Zigbee接入如果你家里已经有Zigbee网关比如ZHA或者Z2M这个方案最省心。Aqara和少数几个品牌出了几款Zigbee协议的智能断路器配网方式和智能插座基本一样HA里通过ZHA或Z2M集成自动发现设备几秒钟就能出实体。Zigbee空开的实体通常包括开关状态合/分、实时电流、实时功率、累计电量、设备温度有些还带过压欠压报警。这些都是标准ZCL cluster映射出来的HA不用额外写配置。不过Zigbee方案有两个实际限制。第一是Zigbee网络里空开通常作为终端设备存在它和网关之间隔了好几堵墙的话信号不一定稳定而配电箱本身又是一个金属外壳对2.4G信号屏蔽比较严重可能出现设备离线的情况。我建议配电箱附近放一个Zigbee路由器设备比如智能插座、Zigbee灯泡可以显著改善信号。第二是Zigbee空开可选型号少额定电流规格不像传统空开那么全大电流回路比如40A的即热式热水器不一定找得到对应规格所以更适合用在照明和普通插座回路。4. 设备接好了HA里的实体清洗与仪表盘分组硬件接入HA之后会生成一堆实体直接拿来用会很乱。比如一个RS485空开一次会看到电压、电流、功率、电量、频率、功率因数、温度、开关状态等十个左右的实体名字还是默认的air_switch_485_voltage这种在仪表盘和自动化里用起来非常痛苦。我的习惯是拿到实体后第一件事就是统一重命名和分组。HA的实体可以设置friendly_name或者直接在设备页面把实体归属到合适的“区域”和“类别”。我会给每路空开实体加前缀比如总闸_功率、厨房_电流、空调_状态配合HA的设备分组功能在仪表盘上一眼能对应到物理位置。仪表盘我做得比较克制没有堆一堆花花绿绿的图表。核心就三个视图配电总览一张卡片显示总闸的三相电压、三相电流、总功率和今日电量如果有异常直接红色高亮回路明细用entities卡片把每一路空开的功率、电流和温度列成一张表按配电箱里的排列顺序从上到下排这样在配电箱前排查时不用记哪个名字对应哪一路历史趋势用HA自带的历史图表卡片展示关键回路的功率曲线一段时间能看到哪些设备待机耗电高、哪些时段用电集中对优化用电习惯很有参考价值。建议把新接入的空开实体归到一个单独的“配电箱”区域这样手机端和语音助手控制的时候定位更清晰。还有一个小技巧HA支持对实体设置“设备类别”把功率、电流这些传感器标成power、current系统会自动用合适的图标呈现更直观。5. 自动化联动从“能看”到“有用”的最后一公里接入HA不难难的是让数据真正发挥作用。空开数据接进来以后如果只是偶尔打开仪表盘看一眼那和看配电箱上的机械状态没有本质区别。我的目标是让它变成一套自动化的感知系统主动说话而不是被动等着查。5.1 跳闸报警与状态追踪这是我最先做的自动化逻辑很简单某路空开的状态从“合闸”变成“跳闸”时触发通知。trigger: - platform: state entity_id: switch.kitchen_air_switch to: off condition: - condition: template value_template: {{ trigger.from_state.state on }} action: - service: notify.mobile_app_iphone data: title: 厨房空开跳闸了 message: 厨房回路在 {{ now().strftime(%H:%M:%S) }} 跳闸当前功率 {{ states(sensor.kitchen_power) }}W注意那个condition很关键。因为空开在合闸状态下有可能被人手动关闭比如你出门前主动拉了照明闸这种“主动断开”不应该报警。加一个trigger.from_state.state on的判断就能过滤掉手动关断的情况只在“原本正常合闸、突然跳闸”的时候报警。这个细节如果不处理跳闸报警会被频繁误触。另外我建议把跳闸记录存进logbook方便事后回看。HA的logbook默认会记录实体状态变化不用额外配置但实体数量多了以后会刷屏可以在recorder集成里配置exclude排除掉一些不关心的实体。5.2 负载预警别等跳闸才反应空开跳闸是保护动作说明已经过载了。但更聪明的做法是在过载之前就预警。空开的额定电流是16A那我把预警阈值设在13A持续运行超过3分钟就通知一次。这样既不会因为瞬态电流误报又能在真正过载前留出缓冲。这里用HA的template传感器比较方便template: - trigger: - platform: numeric_state entity_id: sensor.kitchen_current above: 13 for: minutes: 3 sensor: - name: 厨房回路过载预警 state: 预警中 icon: mdi:alert配合自动化规则预警触发时推送消息到手机并附上当前该回路正在运行的大功率设备列表这个需要配合智能插座的状态来推断比如电热水壶的插座在工作那大概率是它在拉高电流。这个联动好用是好用但前提是家里主要设备都接入了HA否则推断不准确聊胜于无。5.3 停电与来电恢复通知配电箱空开还有一个之前没想到的价值它能感知市电是否中断。当总闸回路的电压传感器归零时大概率是整栋楼停电而不是空开跳闸因为空开跳闸通常不影响其他回路但总闸电压消失意味着进线侧没电了。我加了一个自动化总闸电压低于180V持续30秒就推送“疑似停电”恢复超过230V持续1分钟推送“来电了恢复时间XX点XX分”。这个在家里有NAS、鱼缸等需要持续供电的设备时特别实用。停电通知配合UPS的剩余电量能大致推算还能撑多久合理安排是否赶回家。需要注意的是停电瞬间家里的WiFi路由器和HA主机如果是靠UPS供电的话通知能发出去如果没有UPS那HA主机本身也断电了通知当然发不出来。这个逻辑别搞反了。5.4 温升监控与安全联动智能空开和DIY监测模块一般都有温度传感器贴在断路器外壳或者接线端子上。温度数据是很好的安全预警依据。配电箱正常运行时外壳温度一般在30到45度之间。如果某一路长期超过60度大概率是接线端子松动导致接触电阻变大、发热量增加这是家装火灾的常见诱因之一。我针对每个带温度传感器的回路都做了一条预警规则温度超过60度立即推送并建议“检查该回路接线端子是否松动”。这里还有一个进阶玩法如果家里的烟雾报警器接入了HA可以和空开联动。当烟感报警且某路空开温度异常时自动切断非必要回路照明留一路、安防留一路、冰箱保留只保留安全回路供电。这个自动化我还没完全启用涉及整屋断电的策略风险比较大但架构上是完全可行的空开作为执行器HA作为决策中枢。6. 数据校准与长期可靠性别被不准确的数据误导接入HA之后的日常使用中最大的坑其实是数据不准确。设备刚接入时读数没经过校准偏差可能大到让你做出错误判断。我用了一段时间后专门做了一次系统校准方法非常简单但很有效拿一只家用钳形电流表分别夹在干路和支路上同时对比HA显示的电流值记录下偏差然后在HA的传感器配置里加上calibrate_linear滤波器或者直接使用HA的“校准线性”功能修正。电流互感器在高电流和低电流下的线性度不太一样所以校准点建议选至少两个一个接近日常最小负载比如2A左右一个接近日常最大负载比如15A左右。有了这两个点校准后的准确度能满足日常监测需求。功率数据比对也很有必要。用米家智能插座或者涂鸦智能插座它们内置计量芯片精度普遍还行和空开的功率数据做对比偏差在10%以内算正常超过就要检查互感器安装是否牢固、采样电阻是否虚焊。长期运行还有一个容易被忽略的问题配电箱里空间狭小、环境温度偏高ESP32这类基于WiFi的设备如果直接放在配电箱内部夏天温度可能达到50到60度WiFi模块在高温和金属屏蔽盒内很容易掉线。我的解决方案是把ESP32的采集板放在配电箱外部用屏蔽线和互感器连接既保证了通信稳定又避免了强电区域对WiFi信号的干扰。最后提一下固件更新和设备寿命。智能空开和DIY模块都是通电长期运行的设备建议每半年检查一次固件版本厂商如果有安全修复类更新要及时升级DIY的ESP32模块也要定期确认无线连接状态如果经常断连检查供电是否足够ESP32在WiFi传输瞬间电流峰值可以达到500mA用一个靠谱的5V电源别用劣质充电头。7. 安全边界哪些事能做哪些事坚决不能碰写这篇文章的时候我就知道一定会有人照着操作去搞配电箱。我必须把安全边界问题放在靠后的位置来说因为它的重要性值得压轴。第一电是老虎改任何强电线路前必须拉总闸并验电。开关、互感器、模块的安装都应在断电状态下进行。用验电笔确认断电后再动手这是底线没有例外。第二电流互感器是可以在不断电的情况下开合安装的看起来很方便但我不建议非专业人士在配电箱带电的情况下做任何操作。配电箱内空间狭小手一抖就可能碰到相邻的铜排或接线端子一次不小心的触碰可能就是事故。所以即使是“非侵入”的安装我也会把所在回路对应的上级空开断开再做。第三不要试图用智能空开替代漏电保护器的保护功能。智能空开的核心功能是过载和短路保护不是漏电保护。家庭配电箱中的漏电保护器通常在总闸或插座回路负责故障漏电时切断电源这是人身安全的最后一道防线不能和智能化改造混为一谈。配电箱改造时漏电保护回路必须原样保留且不能旁路。第四DIY方案中所有涉及市电采样的电路必须保证强弱电隔离。电流互感器本身是隔离的但电压采样电路如果不做隔离直接接市电风险极大。我的电压采样用的是成品隔离型微型电压互感器模块不用自制的阻容分压电路。这条经验说出来可能有人觉得我怂但在220V环境里怂一点是美德。第五故障排查时先怀疑自己。设备接入后如果读数异常优先检查互感器方向是否接反、采样电阻是否虚焊、接线端子是否松动这些是非侵入故障的主要来源。整个排查过程保持断电操作即使开关本身不带强电接线端也可能因感应电而带电。这些安全边界不是套话是我在折腾过程中逐步建立起来的底线。配电箱不是智能插座错了可以拔掉重插配电箱里的每一个操作都要想清楚再做。接入HA给生活带来的便利是实实在在的但前提是整个改造过程规规矩矩地来。8. 写在最后的一点经验把我这套方案跑通之后再看空气开关接入HomeAssistant的真正价值不在于“多了一个能远程控制的开关”而在于把整个家庭的用电状态变成可视、可查、可告警的数据体系。过去跳闸只能等回家打开配电箱才知道发生了什么现在跳闸的瞬间就有推送、有原因方向、有历史记录。如果你刚看完这篇文章准备动手我建议不要一上来就想着全屋几十路空开都接入。先选一路你最关心的大功率回路厨房、空调、或者总闸试一次跑通了再扩展。ESP32加电流互感器的DIY方案成本最低、风险最可控最适合作为第一步。等这个链路完全稳定了再去考虑换装智能空开覆盖更多回路。配电箱这个地方注定不会像智能音箱那样频繁交互但正是这些每天默默运行、只在关键时刻才发声的设备才是一个家从“智能”走向“可靠”的真正分水岭。
返回列表