Shelly 设备架构
Shelly 设备架构
本节详细介绍 Shelly 智能继电器的硬件架构和通信原理。学习完成后,您将能够:
- 理解 Shelly Gen1 和 Gen2 的产品差异
- 掌握 Shelly 1PM 的内部结构和硬件规格
- 理解 Shelly RPC 通信协议的原理
- 向客户解释 Shelly 在 IoT 方案中的技术优势
Shelly Product Line
Section titled “Shelly Product Line”Shelly 提供多种智能继电器产品,适用于不同场景:
| 型号 | 最大电流 | 能耗监测 | 尺寸 | 典型场景 |
|---|---|---|---|---|
| Shelly 1 | 16A | ❌ | 小型 | 照明开关 |
| Shelly 1PM | 16A | ✅ 电压/电流/功率 | 小型 | 能耗监测 |
| Shelly Plus 1PM | 16A | ✅ (Gen2) | 小型 | 新一代能耗监测 |
| Shelly Plus 2PM | 2×10A | ✅ 双通道 | 小型 | 双路监测 |
| Shelly EM | — | ✅ 外部 CT | 中型 | 50A 大电流 |
| Shelly 3EM | — | ✅ 三相 | 中型 | 三相电力监测 |
Shelly 1PM Hardware Architecture
Section titled “Shelly 1PM Hardware Architecture”┌──────────────────────────────────────────────────┐│ 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 │ ││ └─────────────────┘ └──────────────────┘ │└──────────────────────────────────────────────────┘Gen1 vs Gen2 Architecture
Section titled “Gen1 vs Gen2 Architecture”Gen1 (Shelly 1, Shelly 1PM)
Section titled “Gen1 (Shelly 1, Shelly 1PM)”- 通信方式: HTTP REST API 为主
- MQTT: 基础 MQTT 支持,自定义 Topic
- API: 简单的 HTTP GET/POST 命令
- 固件: 可通过 OTA 更新
# Gen1 HTTP 控制示例curl http://shelly-ip/relay/0?turn=oncurl http://shelly-ip/relay/0?turn=off
# Gen1 HTTP 状态获取curl http://shelly-ip/statusGen2 (Shelly Plus 1PM, Shelly Pro)
Section titled “Gen2 (Shelly Plus 1PM, Shelly Pro)”- 通信方式: 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 }}Shelly Plus 1PM 硬件规格
Section titled “Shelly Plus 1PM 硬件规格”| 参数 | 值 |
|---|---|
| 供电电压 | 110-240V AC (±10%) |
| 最大电流 | 16A (阻性负载) |
| 最大功率 | 3500W (230V) |
| Wi-Fi | 802.11 b/g/n (2.4GHz) |
| 蓝牙 | BLE 4.2 (Gen2) |
| 工作温度 | -40°C ~ 60°C |
| 尺寸 | 39×36×16mm |
| 安装 | DIN 导轨 / 墙面暗装 |
SW (Switch) Input
Section titled “SW (Switch) Input”Shelly 设备提供物理开关接口(SW 端子),支持:
- 普通开关: 传统墙壁开关直接控制继电器
- 瞬时开关: 门铃式按键控制
- 边沿触发: 检测开关动作后执行自定义逻辑
// SW 输入在 Node-RED 中处理// MQTT Topic: shellyplus1pm-{id}/status/switch:0
{ "id": 0, "source": "switch", "output": true, // SW 输入状态 "temperature": { "tC": 42.5 // 内部温度 }}Common Customer Questions
Section titled “Common Customer Questions”Q1: Gen1 和 Gen2 的兼容性如何?
Section titled “Q1: Gen1 和 Gen2 的兼容性如何?”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 额定电流使用
- 在潮湿环境无防护安装
- 忽略设备的散热要求
Summary
Section titled “Summary”- Shelly Gen1 使用 HTTP REST API,适合简单场景
- Shelly Gen2 使用 RPC over MQTT,功能更强大
- Shelly 1PM 内置 ADE7953 功率监测芯片,可采集电压/电流/功率/电量
- SW 输入 提供物理开关能力,与智能控制并行工作
- 选择带 PM 功能的型号才能实现能耗监测