最近,我一直在改造自己家的电路。在之前装修时,没有考虑到智能家居方面。导致后期对设备的升级较为困难,想着,如何在保证原有线路改变幅度不大的情况下,尽可能的实现智能化呢?
本期,以自己家中的插线板为例,谈谈自己的改造思路。给其接入智能模块 实现对电量的实时统计和控制。

设备介绍
本期,我们用到的设备为Shelly 2PM Gen4。支持Zigbee、蓝牙、Wi-Fi等连接方式。可以控制电机使用场景(如电动窗帘、卷帘门等)和两路电路的控制。设备小巧,可以完美地放入开关和插座后面。支持脚本、HTTPS、MQTTS、等协议,可玩性更高。

线路连接说明:
01双继电器模式
- • O1、O2 互相独立,控制 2 路负载:可以是 2 盏灯、或者灯 + 插座、灯 + 排风扇等任意两路 220V 设备。• S1 控制 O1,S2 控制 O2。(两根线接入物理开关。从而控制灯)
注意:模块L、N必须拿到零火供电。
02电机模式
O1、O2合并给一台双向交流电机用。O1 = 电机上行,O2 = 电机下行。S1、S2 变成:上行按键、下行按键。注意,不能接大功率电机。

实物连接
快速上手
完成设备连接后,登录APP添加设备。完成后,我们便可以看到设备的详细信息了。


接下来,我们来探究更多好玩的玩法。
接入HA
设备接入HomeAssistant的方法很简单,添加设备IP地址后,自动加入设备。(建议在路由器中绑定设备IP)


卡片展示

接下来,我们接入HA中的能源板块。


配置MQTT
接下来,我们配置MQTT,在APP或者直接访问设备IP,配置MQTT

完成后,订阅设备主题,便可以收到数据信息了。

当前数据比较凌乱,我们可以在MQTT后端新建规则,对数据进行清洗。

清洗后的数据如下:
{"voltage":220.3,"ts":1789187880.0,"sw":0,"ret_aenergy_wh":0.0,"pf":0.8,"freq":50.02,"current":0.451,"aprtpower":74.1,"apower":74.1,"aenergy_wh":297.749}SQL代码 (查询1号时,修改0为1即可)
SELECT
payload.params.ts AS ts,
0 AS sw,
CASE WHEN is_null(payload.params.'switch:0'.voltage) THEN 'null' ELSE payload.params.'switch:0'.voltage END AS voltage,
payload.params.'switch:0'.current AS current,
payload.params.'switch:0'.apower AS apower,
CASE WHEN is_null(payload.params.'switch:0'.aprtpower) THEN 'null' ELSE payload.params.'switch:0'.aprtpower END AS aprtpower,
CASE WHEN is_null(payload.params.'switch:0'.pf) THEN 'null' ELSE payload.params.'switch:0'.pf END AS pf,
CASE WHEN is_null(payload.params.'switch:0'.freq) THEN 'null' ELSE payload.params.'switch:0'.freq END AS freq,
CASE WHEN is_null(payload.params.'switch:0'.aenergy.total) THEN 'null' ELSE payload.params.'switch:0'.aenergy.total END AS aenergy_wh,
CASE WHEN is_null(payload.params.'switch:0'.ret_aenergy.total) THEN 'null' ELSE payload.params.'switch:0'.ret_aenergy.total END AS ret_aenergy_wh
FROM "shelly2pmg4-acebe6f47ec8/events/rpc"
WHERE is_null(payload.params.'switch:0'.apower) = false将MQTT数据接入HA 效果如下:

自定义脚本
如果你没有HA等平台,但也想需要更多拓展功能,不妨试试APP中的自定义脚步功能。
这里,以总消耗的电费信息为例,创建脚本,示例代码如下
// ===================== 配置区(按需修改) =====================
let CONFIG = {
switchId: 0, // 监测哪一路: 0 或 1
tariff: 0.6, // 电价, 单位 元/kWh
intervalMs: 30000 // 刷新间隔, 毫秒
};
let VC_COST_ID = 200; // Number: 累计电费
let VC_STATUS_ID = 201; // Text: 实时状态
let VC_GROUP_ID = 202; // Group: 电费群组
// ============================================================
function r2(x) { return Math.round(x * 100) / 100; }
function r3(x) { return Math.round(x * 1000) / 1000; }
// 串行初始化: 一个 RPC 完成再发下一个,防止并发超限
function init(onDone) {
// 1) 累计电费 Number
Shelly.call("Virtual.Add", { type: "number", id: VC_COST_ID }, function () {
Shelly.call("Number.SetConfig", {
id: VC_COST_ID,
config: {
name: "累计电费",
min: 0,
meta: { ui: { view: "field", unit: "¥", step: 0.01 } }
}
}, function () {
// 2) 实时状态 Text
Shelly.call("Virtual.Add", { type: "text", id: VC_STATUS_ID }, function () {
Shelly.call("Text.SetConfig", {
id: VC_STATUS_ID,
config: { name: "实时状态", meta: { ui: { view: "label" } } }
}, function () {
// 3) 电费 Group,并把上面两个装进去
Shelly.call("Virtual.Add", { type: "group", id: VC_GROUP_ID }, function () {
Shelly.call("Group.SetConfig", {
id: VC_GROUP_ID,
config: { name: "电费" }
}, function () {
Shelly.call("Group.Set", {
id: VC_GROUP_ID,
value: ["number:" + VC_COST_ID, "text:" + VC_STATUS_ID]
}, function () {
if (onDone) onDone();
});
});
});
});
});
});
});
}
// 读数据并刷新卡片
function update() {
let st = Shelly.getComponentStatus("switch", CONFIG.switchId);
if (!st) { print("switch status not ready"); return; }
let power = st.apower || 0;
let totalWh = (st.aenergy && st.aenergy.total) ? st.aenergy.total : 0;
let kwh = totalWh / 1000;
let cost = kwh * CONFIG.tariff;
Shelly.call("Number.Set", { id: VC_COST_ID, value: r2(cost) });
let line = "实时 " + power + " W · 累计 " + r3(kwh) + " kWh";
Shelly.call("Text.Set", { id: VC_STATUS_ID, value: line });
print(line + " · 电费 ¥" + r2(cost));
}
// 启动: 串行建组件 → 刷一次 → 定时刷新
init(function () {
update();
Timer.set(CONFIG.intervalMs, true, update);
});效果如下:

接入小爱
没有什么事,是动动嘴巴干不了的。即使不能直接接入米家生态,我们可以通过巴法云插件将设备接入到米家。


总结
一个小小的继电器模块,可以玩出与众不同的花样,将物联网深深的融入到我们的生活。在生活中,你想通过物联网实现什么?不妨说出你的精彩想法!
更多精彩文章 欢迎关注我们
本文首发于微信公众号,原文链接:普通插座如何秒变智能插座?