DA
DealiAxy
2026年05月25日

给热水器装上“电量显示”:用 Shelly Gen4 脚本实现零改装水量预测

把热水器功率当电量玩?还行,至少比拆机漏水强。Gen4本地脚本算个虚拟水量,误差5%以内——这活儿初中物理就能干,但你们就是想不到。代码解决生活焦虑?呵,我早用上了。

未分类
3291
11 分钟阅读
更新于 05-25

前言

相信很多家里还在用储水式热水器的朋友都有热水焦虑:洗澡前要提前开,洗到一半怕没水。市面上大多数传统热水器就是一个黑盒,除了一个模糊的温度表,你根本不知道剩下的热水够洗 5 分钟还是 15 分钟。

最近我拿到了德国外企 Shelly 的新款 Shelly 2PM Gen4,尝试用一种极客的方式彻底解决这个问题。

思路

把”电量”翻译成”水量”

传统的解决办法是拆机加传感器,但这不仅破坏保修,还有漏水风险。

Shelly 方案的巧妙之处在于:利用 Gen4 芯片的本地脚本能力,构建一个虚拟传感器。

注意:Shelly 2PM Gen4 不仅能预测热水量,还支持远程开关控制实时能耗计量。Gen4 设备更支持 Matter 协议和 Zigbee,可与 HomeKit、Google Home、Alexa 等主流智能家居平台无缝联动。

原理很简单:

  1. 升温模型: 脚本监测实时功率。只要功率达到阈值,就说明热水器在加热,根据物理公式计算注入的热量,实时增加水量百分比。
  2. 损耗模拟: 即使不使用,热水器也会散热。脚本会根据时间自动扣除热散失导致的百分比下降。
  3. 本地 UI: 所有的计算都在 Shelly 内部完成,并直接在手机 App 上生成一个像手机电量一样的百分比进度条。

实现原理

硬件安装

图片准备加载中...

安装过程非常简单:

  1. 断电操作:首先关闭家庭配电箱中热水器对应的断路器
  2. 串联安装:将 Shelly 2PM Gen4 串联在热水器的火线上
  3. 接线规范
    • 火线进线(L)连接到 Shelly 的 1 脚
    • 火线出线连接到 Shelly 的 2 脚(输出至热水器)
    • 零线(N)直接连接到热水器
  4. 恢复供电:确认接线无误后,合上断路器

安全提示:如果对电气操作不熟悉,建议请专业电工协助安装。

功率限制提醒:Shelly 2PM Gen4 的额定负载为 2400W(单路)/ 3840W(总路)。安装前务必核对热水器铭牌功率——部分大容量或即热式热水器功率可能高达 3000W~6000W,严禁超限使用,否则存在过热甚至火灾风险。如热水器功率超出限制,请选择更高规格的 Shelly 设备或仅用于控制回路。

智能算法

我们开发了一段运行在继电器里的脚本,核心原理如下:

1. 功率监测

// 获取实时功率
let status = Shelly.getComponentStatus("switch:0");
let power = status.apower; // 单位:瓦特

2. 状态判断

  • 加热状态:当实时功率 > 额定功率 × 70% 时,判定为加热中
  • 保温状态:当功率低于阈值时,判定为保温或关机状态

3. 热水量计算

// 加热时:按时间比例累加
let add_percent = (delta_s / expected_time_s) * 100;
water_percent = water_percent + add_percent;

// 保温时:模拟热散失
let drop_percent = cool_per_sec * delta_s;
water_percent = water_percent - drop_percent;

4. 状态持久化

使用 Shelly 的虚拟组件(Virtual Component)存储热水量百分比,即使设备重启也不会丢失数据。

实际效果

创建脚本

在 Shelly App 中,进入"脚本"功能模块,点击"+"创建新脚本。将我们的智能预测脚本粘贴进去,保存并运行。

图片准备加载中...

运行监控

脚本运行后,会自动创建一个名为"预测热水量"的虚拟组件。可以实时看到热水量百分比的变化。

图片准备加载中...

实时数据

图片准备加载中...

运行一段时间后,App 界面会展示完整的监控信息:

  • 设备主页:显示设备在线状态和快速控制按钮,支持远程开关热水器
  • 功率图表:实时功率曲线,清晰展示加热和保温周期
  • 能耗统计:累计用电量和运行时长,帮助你掌握热水器的真实能耗

图片准备加载中...

图片准备加载中...

验证准确性

通过对比热水器自带的温度表读数和我们的预测结果,验证算法的准确性。实测数据显示,预测误差控制在 ±5% 以内,完全满足日常使用需求。

图片准备加载中...

为什么这个方案更有意义?

在智能家居领域,我们经常讨论智能化,但很多方案只是简单的远程开关。Shelly 这个项目的意义在于软件定义硬件

  • 非侵入式: 不需要动水路,不破坏原机。
  • 低延迟 & 隐私: 数据不上传云端,本地脚本直接算出结果,响应速度是秒级的。
  • 远程控制: 出门忘记关热水器?手机一点即可远程关闭,还能定时开关。
  • 能耗计量: 精确记录每次加热的用电量,帮你优化使用习惯、节省电费。
  • 场景联动: 可以设置——“当热水量达到 80% 时,给手机推送消息,并自动关闭洗手间排气扇”。
  • 生态兼容(Gen4): 支持 Matter 和 Zigbee 协议,可接入 Apple HomeKit、Google Home、Amazon Alexa 等主流平台,与其他智能设备无缝联动。

小结

对于用户来说,Shelly 2PM Gen4 不仅仅是一个开关,它更像是一个运行在家里的微型服务器。通过开放的脚本接口,我们可以把任何传统家电进行智能化改造。

除了本文介绍的热水量预测,还能获得远程开关能耗统计等实用功能。Gen4 设备更支持 Matter 和 Zigbee 协议,轻松融入全屋智能生态。

如果你也受够了盲猜热水温度,这种用代码解决生活痛点的方式,或许是另一种优雅的解决方案。

最后提醒:选购和安装前,请务必确认热水器功率在 Shelly 2PM Gen4 的承载范围内(单路 ≤ 2400W,总路 ≤ 3840W)。部分大功率热水器(如 3000W 以上的储水式或即热式)需要选择更高规格的设备,切勿超限使用。