跳转到内容

Shelly 设备架构

Shelly 设备架构

本节详细介绍 Shelly 智能继电器的硬件架构和通信原理。学习完成后,您将能够:

  • 理解 Shelly Gen1 和 Gen2 的产品差异
  • 掌握 Shelly 1PM 的内部结构和硬件规格
  • 理解 Shelly RPC 通信协议的原理
  • 向客户解释 Shelly 在 IoT 方案中的技术优势

Shelly 提供多种智能继电器产品,适用于不同场景:

型号最大电流能耗监测尺寸典型场景
Shelly 116A小型照明开关
Shelly 1PM16A✅ 电压/电流/功率小型能耗监测
Shelly Plus 1PM16A✅ (Gen2)小型新一代能耗监测
Shelly Plus 2PM2×10A✅ 双通道小型双路监测
Shelly EM✅ 外部 CT中型50A 大电流
Shelly 3EM✅ 三相中型三相电力监测
┌──────────────────────────────────────────────────┐
│ Shelly 1PM │
├──────────────────────────────────────────────────┤
│ │
│ ┌──────────────────────┐ ┌──────────────────┐ │
│ │ Relay (16A) │ │ Power Supply │ │
│ │ 继电器开关模块 │ │ (AC→DC) │ │
│ └──────────┬───────────┘ └──────────────────┘ │
│ │ │
│ ▼ │
│ ┌────────────────────────────────────────────┐ │
│ │ ESP32 / ESP8266 (Gen1/Gen2) │ │
│ │ ├─ Wi-Fi + Bluetooth │ │
│ │ ├─ MQTT / HTTP / RPC │ │
│ │ └─ 固件: Shelly OS / Tasmota │ │
│ └────────────────────────────────────────────┘ │
│ │
│ ┌────────────────────────────────────────────┐ │
│ │ Power Monitoring IC (ADE7953) │ │
│ │ ├─ 电压测量 (V) │ │
│ │ ├─ 电流测量 (A) │ │
│ │ ├─ 有功功率 (W) │ │
│ │ └─ 累计电量 (kWh) │ │
│ └────────────────────────────────────────────┘ │
│ │
│ ┌─────────────────┐ ┌──────────────────┐ │
│ │ SW Input (开关) │ │ Status LED │ │
│ └─────────────────┘ └──────────────────┘ │
└──────────────────────────────────────────────────┘
  • 通信方式: HTTP REST API 为主
  • MQTT: 基础 MQTT 支持,自定义 Topic
  • API: 简单的 HTTP GET/POST 命令
  • 固件: 可通过 OTA 更新
# Gen1 HTTP 控制示例
curl http://shelly-ip/relay/0?turn=on
curl http://shelly-ip/relay/0?turn=off
# Gen1 HTTP 状态获取
curl http://shelly-ip/status
  • 通信方式: RPC over MQTT 为主
  • MQTT: 原生 RPC 协议支持
  • API: JSON-RPC 协议,通道化通信
  • 固件: Shellies OS,支持多通道 RPC
# Gen2 RPC 通过 MQTT 控制
# 发送到: shellyplus1pm-{deviceid}/rpc
{
"id": 1,
"src": "nodered",
"method": "Switch.Set",
"params": {
"id": 0,
"on": true
}
}
# 响应在: nodered/rpc (src 对应的 Topic)
{
"id": 1,
"src": "shellyplus1pm-{deviceid}",
"result": {
"was_on": false,
"restart_required": false
}
}
参数
供电电压110-240V AC (±10%)
最大电流16A (阻性负载)
最大功率3500W (230V)
Wi-Fi802.11 b/g/n (2.4GHz)
蓝牙BLE 4.2 (Gen2)
工作温度-40°C ~ 60°C
尺寸39×36×16mm
安装DIN 导轨 / 墙面暗装

Shelly 设备提供物理开关接口(SW 端子),支持:

  • 普通开关: 传统墙壁开关直接控制继电器
  • 瞬时开关: 门铃式按键控制
  • 边沿触发: 检测开关动作后执行自定义逻辑
// SW 输入在 Node-RED 中处理
// MQTT Topic: shellyplus1pm-{id}/status/switch:0
{
"id": 0,
"source": "switch",
"output": true, // SW 输入状态
"temperature": {
"tC": 42.5 // 内部温度
}
}

Gen2 仍然向下兼容基础 MQTT 功能,但 RPC 协议不同。如果需要统一的控制接口,建议在 Node-RED 中封装抽象层。

Q2: Shelly 的 SW 输入有什么实际用途?

Section titled “Q2: Shelly 的 SW 输入有什么实际用途?”

SW 输入允许用户使用传统的物理墙壁开关控制继电器,同时开关状态会同步到 MQTT,方便 Node-RED 进行联动控制。

Q3: 如何确认客户需要 1PM 还是 1(带功率监测)?

Section titled “Q3: 如何确认客户需要 1PM 还是 1(带功率监测)?”

如果客户需要了解用电量、监测设备运行状态、或者做能耗分析,必须选择 1PM(带功率监测芯片)。Shelly 1 只提供开关功能。

推荐做法:

  • 新项目优先选择 Gen2(Plus 系列)以获得更好的 RPC 支持
  • 需要能耗监测的场景必须使用 PM 系列
  • 使用 SW 输入保持物理开关的可用性
  • 在配电箱中安装时注意散热空间

避免做法:

  • 混用 Gen1 和 Gen2 的 API 调用方式
  • 超过 16A 额定电流使用
  • 在潮湿环境无防护安装
  • 忽略设备的散热要求
  1. Shelly Gen1 使用 HTTP REST API,适合简单场景
  2. Shelly Gen2 使用 RPC over MQTT,功能更强大
  3. Shelly 1PM 内置 ADE7953 功率监测芯片,可采集电压/电流/功率/电量
  4. SW 输入 提供物理开关能力,与智能控制并行工作
  5. 选择带 PM 功能的型号才能实现能耗监测