1. 项目概述:从“随手关灯”到“智能节电”
家里总有那么几台“电老虎”,比如常年待机的台式机、忘了拔的充电器、或是藏在角落里的机顶盒。以前我总觉得这点待机功耗不算什么,直到有一次用功率计测了一下,才发现这些“隐形”的耗电设备,一年下来也能悄悄吃掉不少电费。手动去开关太麻烦,记性也不好,于是我就琢磨着,能不能让这事儿自动化?正好手头有几个闲置的小米智能插座,配合上家里的智能家居中枢,一个“监控设备耗电,并自动断电”的方案就成型了。
这个项目的核心,就是利用小米智能插座自带的功率计量功能,实时监测接入设备的用电情况。我们设定一个规则:当设备进入低功耗的待机状态(比如功率低于某个阈值)超过一段时间后,就自动切断插座电源;而当我们需要再次使用设备时,又能通过某种方式(比如手机App、语音或自动化)便捷地恢复供电。它解决的不仅仅是“省电”问题,更是一种“无感”的能源管理体验,特别适合给电脑、电视、游戏机、充电器等设备使用,让你既不用操心“随手关电”,又能切实减少能源浪费。
整个方案的成本极低,核心就是你已经有的或很容易买到的小米智能插座(Zigbee版或Wi-Fi版均可),以及一个智能家居控制中心(如小米多模网关、或运行Home Assistant的服务器)。接下来,我会从设计思路、设备选型、平台搭建、自动化规则配置,到更深度的本地化控制和进阶玩法,为你完整拆解这个项目的每一步。
2. 核心设备选型与平台搭建
2.1 智能插座的选择:Wi-Fi版 vs Zigbee版
市面上小米系的智能插座主要分两大类:Wi-Fi直连版和Zigbee网关版。选择哪一种,直接决定了你后续方案的稳定性、响应速度和扩展性。
Wi-Fi版插座(如米家智能插座2):优点是入手简单,插上电、连上你家Wi-Fi就能用,无需额外购买网关。在米家App里可以直接看到实时功率、电量统计,并设置一些简单的定时开关。但是,对于自动化断电项目,它有致命缺点:其功率检测数据更新有延迟,通常为10-30秒一次,且自动化触发的响应速度受家庭路由器负载和网络状况影响较大。更关键的是,当路由器重启或网络波动时,自动化可能失效。因此,仅适合对实时性要求不高的简单监控场景,不推荐作为核心方案。
Zigbee版插座(如Aqara智能插座):这是本项目的推荐选择。它需要通过Zigbee网关(如小米多模网关、Aqara网关)接入网络。其优势非常明显:
- 响应极快:Zigbee是低功耗局域网协议,本地设备间指令传输的延迟通常在毫秒级。
- 运行稳定:自动化规则可以完全在网关本地运行,即使外网断开、路由器重启,家里的自动化照常工作。
- 数据更实时:功率上报频率更高,能更精准地捕捉设备状态变化。
- 低负载:不占用主Wi-Fi网络的IP地址和带宽,适合家中智能设备多的场景。
注意:购买时务必确认插座型号支持功率计量功能。部分早期或基础款插座仅有开关功能。
我的选择与理由:我使用的是Aqara智能插座(Zigbee版),配合小米多模网关。多模网关的优势在于它同时支持Zigbee和蓝牙Mesh协议,未来扩展其他设备兼容性更好。这套组合的本地自动化能力是项目稳定运行的基石。
2.2 控制中枢的抉择:米家App vs Home Assistant
确定了硬件,接下来需要决定在哪里编写和执行“监控功率并自动断电”的自动化逻辑。
方案一:米家App自动化(适合新手、求快)米家App内置了“自动化”功能,可以创建一些基础场景。理论上,你可以创建一条这样的自动化:
- 触发条件:当插座功率
<10瓦。 - 执行动作:关闭智能插座。
- 生效时段:设置为全天。
但这个方案有巨大缺陷:
- 无法设置持续时间:米家基础自动化无法判断“功率低于10瓦的状态持续了5分钟”。它会在功率第一次低于10瓦的瞬间就触发关闭,这会导致设备在正常短暂待机(如电脑睡眠)时就被误断电。
- 逻辑过于简单:无法实现“工作时段监控,夜间不监控”等复杂条件。
- 依赖云端:部分复杂自动化逻辑需要云端计算,有延迟和断网失效风险。
因此,纯米家App方案基本不可行,它缺少核心的“状态持续判断”能力。
方案二:Home Assistant(推荐方案,功能强大)Home Assistant(简称HA)是一个开源的智能家居平台,其核心优势是强大的本地化控制能力和极其灵活的自动化编辑器。它可以将小米多模网关(通过特定集成方式)和Aqara插座接入,并在HA中生成对应的传感器(如当前功率、今日用电量)和开关实体。
在HA中,我们可以使用其**“Numeric State”触发器配合“For”持续时间条件**,完美实现我们的需求。例如:“当插座功率传感器数值低于15瓦的状态,持续超过5分钟,则关闭插座开关”。这正是我们项目所需的核心逻辑。
搭建HA的简要路径:
- 选择硬件:一台常年开机的设备,如旧笔记本、树莓派、小型工控机或NAS(我使用的是Intel NUC小主机)。
- 安装系统:推荐直接安装HA操作系统(HA OS),它包含了HA核心、管理界面和必要的依赖,最为省心。
- 接入设备:在HA中安装“Xiaomi Gateway 3”集成(或类似集成),将小米多模网关接入HA。成功后,网关下的Zigbee插座会自动出现。
- 创建自动化:使用HA的自动化可视化编辑器或YAML代码编写自动化规则。
选择HA意味着更高的学习成本和初期部署时间,但它带来的回报是:完全本地运行、不受制于任何厂商服务器、自动化逻辑无限自由、并能整合家中不同品牌的设备。这是实现本项目精细化、可靠自动化的唯一推荐路径。
3. 自动化规则设计与核心参数解析
在Home Assistant中搭建好平台并接入插座后,就到了最关键的环节:设计自动化规则。一个健壮的自动断电规则,需要考虑多个维度,避免误触发。
3.1 基础自动化规则拆解
我们以监控一台台式电脑为例,目标是:当电脑关机(进入待机功耗状态)10分钟后,自动切断插座电源。
在HA中,这条自动化的核心结构如下:
- 触发器:
numeric_state- 监听插座功率实体的状态。- 实体:
sensor.plug_power(你的插座功率传感器名称) - 低于:
15(单位:瓦, 这是关键阈值)
- 实体:
- 条件:
for- 持续时间条件。- 时长:
00:10:00(10分钟)
- 时长:
- 动作:
switch.turn_off- 关闭开关。- 实体:
switch.plug(你的插座开关实体名称)
- 实体:
这条规则的意思是:持续监测插座功率,一旦功率值低于15瓦,就开始计时;如果这种“低于15瓦”的状态连续保持了10分钟,则判定电脑已关机并进入稳定待机状态,随即执行断电动作。
3.2 关键参数:功率阈值与持续时间的设定
这是整个项目的灵魂,设置不当会导致频繁误操作或完全失效。
1. 功率阈值(如上面的15W):
- 如何测定:你需要一个“学习期”。在HA的历史记录中,观察你的目标设备在不同状态下的功率值。
- 工作状态:电脑玩游戏、渲染视频时的功率(可能200W-400W+)。
- 空闲状态:电脑仅开机,进行轻度办公(可能50W-100W)。
- 关机/待机状态:执行系统关机后,电源仍接通时的功率。这才是我们要找的关键值!对于台式机,这个值通常在3W-15W之间,取决于电源和主板设计。笔记本电源适配器空载时可能在1W以下。
- 设定原则:阈值应设置在“稳定待机功耗”和“最低工作功耗”之间,并留出足够的安全余量。
- 错误示范:电脑待机功耗5W,你设阈值4W。那么自动化永远无法触发,因为功率从未低于4W。
- 错误示范:电脑轻度办公时功耗60W,你设阈值50W。那么你一开始写文档,10分钟后电就被断了。
- 正确做法:测得待机功耗为8W,最低工作功耗(比如仅亮屏)为40W。那么阈值可以设在20W-30W。这样既能确保关机后(8W<20W)能触发,又能避免轻度使用时(40W>30W)被误判。
2. 持续时间(如上面的10分钟):
- 作用:防止短暂波动导致误触发。比如你暂时离开电脑,屏幕休眠(功耗骤降),但马上回来操作,功耗又升上去了。持续时间就是用来过滤这种短暂状态的。
- 设定原则:根据你的使用习惯。如果你经常离开座位半小时以上,可以设15-30分钟。如果只是倒杯水,设5-10分钟即可。对于夜间自动断电,持续时间可以设短一些,比如5分钟,因为夜间误操作的可能性低。
我的实测参数参考:
- 台式电脑:阈值 20W, 持续时间 15分钟。因为我的电脑关机后USB口仍供电,功耗约12W。
- 电视机+机顶盒:阈值 10W, 持续时间 30分钟。电视待机功耗约5W,但有时播放暂停功耗也很低,所以持续时间设长,避免看电影中途被断电。
- 手机充电器:阈值 2W, 持续时间 2分钟。手机充满后,充电器空载功耗约0.5W,很快就能判定。
3.3 增加条件判断,让自动化更智能
基础规则仍有误伤可能。例如,深夜我关了电脑,但希望插座继续给路由器供电。这就需要增加额外的“条件”来约束自动化生效的时段或场景。
在HA自动化中,可以在“触发器”之后,“动作”之前添加“条件”。
- 时间条件:让自动化只在特定时段生效。
condition: time- 例如,设置在after: ‘22:00:00‘到before: ‘07:00:00‘才生效,这样白天就不会自动断电。
- 状态条件:结合其他传感器。
condition: state- 例如,增加条件“人体传感器状态为‘off’(无人)超过20分钟”,确保房间里没人时才断电,更保险。- 或者,利用电脑本身的网络状态。在电脑上安装HA客户端或通过ping传感器判断电脑是否在线,作为更准确的判断条件(但这需要电脑软件配合,实现更复杂)。
一个结合了时间和工作日判断的进阶自动化逻辑伪代码:
当 插座功率 < 20W 持续10分钟: 并且 如果 当前时间在晚上22点至早7点之间: 并且 如果 今天不是周六或周日: 则 关闭插座。这样,就实现了“工作日夜间自动断电,周末和白天不受影响”的精细化策略。
4. Home Assistant 中的完整实现流程
假设你已经安装好HA并接入了小米多模网关和Aqara智能插座。我们以创建“电脑夜间自动断电”为例,展示完整步骤。
4.1 确认实体与传感器
进入HA侧边栏的「开发者工具」->「状态」,搜索你的插座名称(如“书房插座”)。你会找到类似以下的实体:
switch.书房插座:控制插座通断的开关实体。sensor.书房插座_power:实时功率传感器,单位通常是瓦(W)。sensor.书房插座_energy:累计用电量传感器,单位通常是千瓦时(kWh)。
记下功率传感器的完整实体ID(如sensor.书房插座_power),后续会用到。
4.2 使用可视化编辑器创建自动化
- 进入「配置」->「自动化与场景」->「创建自动化」。
- 点击「从空自动化开始」。
- 命名:给自动化起个名字,如“书房电脑-夜间自动断电”。
- 触发器:
- 点击「添加触发器」,选择「数值状态」。
- 「实体」选择你刚才记下的功率传感器(
sensor.书房插座_power)。 - 「低于」填入你测定的阈值,例如
20。 - (可选)为了更精确,可以在「高于」也填一个值,但这里留空即可。
- 条件:
- 点击「添加条件」,选择「数值状态」。这里我们用它来实现“持续时间”判断。
- 「实体」同样选择功率传感器。
- 「低于」填入同样的阈值
20。 - 关键一步:勾选「启用持续时间」,并设置为
00:15:00(15分钟)。这表示“功率低于20W的状态持续15分钟”才满足条件。 - (可选)点击「添加条件」增加时间条件。选择「时间」,设置开始时间
22:00:00, 结束时间07:00:00。 - (可选)点击「添加条件」增加工作日条件。选择「设备」,但HA没有直接的工作日条件。更优的做法是使用「模板」条件。这里我们用一个替代方案:在动作中通过模板判断,或者使用辅助输入(input_boolean)来手动切换“自动断电模式”。
- 动作:
- 点击「添加动作」,选择「调用服务」。
- 在服务中搜索
turn_off, 选择switch.turn_off。 - 「目标」中,选择你的插座开关实体(
switch.书房插座)。
- 保存:点击右上角保存,并确保自动化开关是打开状态。
4.3 使用YAML代码模式(更灵活)
对于复杂逻辑,直接编辑YAML代码更强大。点击自动化右上角的三个点,选择「以YAML编辑」。上述规则对应的YAML代码如下:
alias: “书房电脑-夜间自动断电” description: “” trigger: - platform: numeric_state entity_id: sensor.书房插座_power below: 20 condition: - condition: numeric_state entity_id: sensor.书房插座_power below: 20 for: hours: 0 minutes: 15 seconds: 0 - condition: time after: ‘22:00:00‘ before: ‘07:00:00‘ action: - service: switch.turn_off data: {} target: entity_id: switch.书房插座 mode: single如果你想增加周末排除,可以添加一个模板条件:
condition: - … # 原有的数值状态和时间条件 - condition: template value_template: “{{ not is_state(‘binary_sensor.workday_sensor‘, ‘on‘) }}“这里假设你有一个用于判断是否为工作日的传感器binary_sensor.workday_sensor(可通过“Workday Sensor”集成创建)。
4.4 创建“一键恢复”的便捷开关
设备被自动断电后,如何方便地重新开启?我们可以在HA仪表盘上创建一个脚本或按钮。
- 进入「配置」->「场景与自动化」->「脚本」,创建新脚本。
- 添加动作:
switch.turn_on, 目标选择你的插座。 - (可选)添加第二个动作:
notify发送一条通知到手机,告知“电脑电源已恢复”。 - 保存脚本,例如命名为
turn_on_study_pc。 - 在HA的仪表盘(Lovelace)上,添加一个“按钮卡片”,调用这个脚本。这样,在手机HA App上点一下,插座就通电了。
更进一步,你可以将这个按钮与物理无线开关(如Aqara无线开关)绑定,实现按一下实体按钮就恢复供电,体验更无缝。
5. 进阶玩法与场景扩展
基础功能实现后,可以基于此框架玩出更多花样,让智能用电融入更多生活场景。
5.1 电量统计与能耗报告
HA中的功率传感器sensor.xxx_power是瞬时功率,而sensor.xxx_energy是累计电量。你可以利用后者:
- 创建每日/月度用电统计:使用HA的「统计」传感器或「Energy」仪表盘,可以可视化查看每个插座的日耗电、月耗电曲线,精准定位“电老虎”。
- 设置用电量预警:创建自动化,当今日用电量超过某个值(如2度电)时,向手机发送通知提醒。
- 估算电费:在HA中创建一个模板传感器,将电量(kWh)乘以当地电价,实时估算设备运行花费。
5.2 与其他设备联动的场景
智能家居的魅力在于联动。插座状态可以成为其他自动化的触发器或条件。
- 回家场景:当智能门锁解锁或人体传感器触发“回家”场景时,自动开启电脑插座(如果当时是断电状态),等你走进书房,电脑已经通电可以启动了。
- 影院模式:说“小爱同学,打开影院模式”,此场景不仅打开电视、功放,也自动打开机顶盒、游戏机的插座电源。
- 安全防护:配合烟雾/水浸传感器,当发生警报时,自动切断部分非必要电器(如电暖器、充电器)的电源,降低风险。
5.3 本地化网络状态检测(高阶)
对于电脑,最准确的关机判断其实是网络状态。如果HA能检测到电脑离线,那么断电将无比精准。有几种方法:
- Binary Sensor Ping:在HA中创建一个Ping传感器,持续Ping电脑的IP地址。当Ping不通超过一定时间,则判断为离线。这需要在路由器中为电脑分配固定IP。
- PC端HA客户端:在电脑上安装HASS.Agent或类似客户端,它可以将电脑的运行状态(包括是否开机)主动报告给HA。这是最可靠的方法。
- Wake-on-LAN (WOL) 联动:断电后,如何远程开机?在HA中配置WOL服务,向电脑发送魔术包。你可以创建一个“远程开机”脚本,先打开插座,等待几秒后发送WOL包,实现完整的远程启停循环。
5.4 误操作防护与手动覆盖
自动化再智能,也需要给人留出“手动干预”的入口。
- 在HA中创建“禁用自动断电”的开关:创建一个
input_boolean辅助元素,命名为override_study_pc_auto_off。修改之前的自动化,增加一个条件:“当override_study_pc_auto_off为off时才执行”。这样,当你需要长时间下载或挂机时,只需在App里打开这个覆盖开关,自动化就会暂时禁用。 - 利用插座本身的物理按钮:Aqara插座上有一个物理按钮,长按可以恢复出厂设置,短按可以手动开关。手动开启后,自动化依然会继续监控,但这是一个紧急情况下的物理保障。
- 设置自动化执行上限:在HA自动化YAML中,可以设置
max_exceeded: silent等模式,防止自动化因故障循环触发。
6. 常见问题与排查实录
在实际部署和运行中,你可能会遇到以下问题。这里记录了我的排查过程和解决方案。
6.1 自动化不触发或触发不及时
- 现象:功率明明已经很低了,但插座迟迟不关。
- 排查步骤:
- 检查传感器数据:首先去HA「开发者工具」->「状态」里,查看你的功率传感器
sensor.xxx_power的数值是否在实时更新。如果数值陈旧(如几分钟没变),可能是Zigbee网络信号问题或网关连接问题。 - 检查Zigbee信号强度:在HA中,找到你的插座实体,查看其属性,通常会有
linkquality或rssi字段。这个值越大(或绝对值越小)信号越好。一般rssi高于 -70 算良好,低于 -85 可能不稳定。尝试调整插座或网关位置,或增加Zigbee中继设备(如另一个插电的Zigbee设备)。 - 检查自动化日志:进入该自动化的详情页,查看「跟踪」日志。它能清晰显示触发器、条件、动作的执行过程,哪里失败了会一目了然。
- 确认阈值和持续时间:再次核对。是不是阈值设得太低,设备待机功耗从未低于它?是不是持续时间设得太长?
- 检查传感器数据:首先去HA「开发者工具」->「状态」里,查看你的功率传感器
6.2 自动化误触发(不该关的时候关了)
- 现象:设备还在用,突然断电了。
- 排查步骤:
- 分析功率曲线:在HA中将功率传感器添加到仪表盘,观察一段时间内的功率变化曲线。看看设备在正常使用时的最低功率是多少,是否偶然会短暂跌落到你设定的阈值以下。如果是,你需要适当调高阈值或延长持续时间。
- 检查其他条件:如果你设置了时间条件,确认是否在生效时段内。检查是否有其他自动化或手动操作干扰。
- 检查设备本身:有些设备(如某些显示器、打印机)在特定模式下功耗会极低,容易被误判为待机。
6.3 断电后无法远程/自动恢复供电
- 现象:插座关了,但通过HA或米家App打不开。
- 排查步骤:
- 确认网络与网关:确保HA主机、Zigbee网关都在正常工作且网络连通。尝试在HA中操作其他设备,看是否正常。
- 检查插座状态:在HA中查看插座开关实体的状态。如果是
unavailable(不可用),说明HA与设备失联了,重点排查Zigbee网络。如果是off, 但执行打开动作无效,尝试重启HA核心服务或网关。 - 物理检查:去按一下插座上的物理按钮,看是否能手动开启。如果可以,说明插座硬件正常,问题在通信链路。
6.4 电量统计数据不准确或重置
- 现象:今日用电量统计突然清零或数值离谱。
- 原因与解决:
- 插座断电/重启:大部分智能插座的累计电量数据存储在设备本地,一旦完全断电(拔掉),数据可能会重置。这是硬件限制,无法避免。重要的统计应依赖HA在云端或本地的长期记录。
- HA重启或集成重载:如果HA中用于统计的传感器配置不当,重启后可能从0开始。建议使用HA内置的「统计传感器」或「Utility Meter」集成来创建长期、稳定的累计电量传感器,它们会将数据保存在HA数据库中,不受设备重启影响。
6.5 Zigbee网络不稳定
- 现象:设备频繁掉线、响应慢。
- 优化建议:
- 网关位置:将Zigbee网关放置在房屋中心、位置较高、远离大型金属物体和Wi-Fi路由器(至少间隔1-2米)的地方。
- 网络中继:Zigbee是网状网络。多增加一些常供电的Zigbee设备(如智能插座、智能开关),它们会自动成为中继,扩大和稳定网络信号。
- 信道干扰:在网关设置中,尝试更换Zigbee信道(如从11信道换到25信道),避开与Wi-Fi信道的重叠。
这个项目从一个小小的省电想法出发,最终演变成一套深度融入智能家居体系的能源管理方案。它带给我的不仅是电费单上数字的减少,更是一种对家中设备“呼吸”状态的感知和控制力。最让我满意的,是它的“无感”体验——我不再需要记住给谁断电,它就在后台安静地、可靠地工作,只在需要的时候介入。如果你也对家里的“隐形耗电”感到困扰,不妨从一个小米智能插座和Home Assistant开始,搭建属于你自己的智能用电系统。