CATALOG

芯步的2路智能开关提供了完整的HTTP API接口,支持独立控制每一路继电器,同时可通过回调机制获取实时状态。以下是基于其开放接口的二次开发解决方案。

1. 概述与准备

1.1 适用产品

本方案适用于芯步以下2路智能硬件产品:

  • 智能触摸墙壁开关2路:标准86型墙壁开关,适用于家居照明改造

  • 智能控制器2路:直流电压版,适用于自动化设备控制

1.2 核心功能特性

  • 双路独立控制:支持对线路1、线路2分别进行开/关操作

  • 实时状态反馈:设备状态变化可主动推送至开发者服务器

  • 多种控制模式:支持点动(先通后断)、互锁(先断后通)等工业控制模式

  • 开放接口:提供HTTP API和MQTT两种对接方式

1.3 二次开发准备工作

项目说明获取方式
AppID应用唯一标识登录控制台 → 开发设置
AppSecret开发者密钥(用于签名)登录控制台 → 开发设置
设备ID目标设备的唯一标识控制台设备列表 / API拉取
消息接收URL接收设备状态推送的服务器地址开发者自建,在控制台配置

签名算法

Sign = MD5(MD5(AppSecret) + ts)

其中 ts 为当前Unix时间戳(秒),+ 表示字符串拼接

2. 接口调用详解

2.1 核心API地址

POST https://api.thingboot.com/{AppID}/device/control/?sign={sign}&ts={ts}
Content-Type: application/json

2.2 支持的设备命令

命令类型命令格式功能说明适用场景
线路1开关{"power1":1}{"power1":0}控制第1路通断基础开关控制
线路2开关{"power2":1}{"power2":0}控制第2路通断基础开关控制
批量控制{"power1":1,"power2":0}同时控制两路场景联动
状态保持{"power1":{"keep":"1","revert":"3"}}用户手动操作后自动恢复酒店门牌、公共照明
先通后断{"point1":"2000"}先接通,延时后断开(单位毫秒)门禁控制、脉冲触发
先断后通{"reset1":"2000"}先断开,延时后接通(单位毫秒)设备重启、复位控制

2.3 签名计算与请求示例(Python)

2.4 MQTT方式(推荐实时性要求高的场景)

2.5 分组控制(批量控制多设备)

当需要同时控制多个2路开关时,可使用分组控制接口

POST https://api.thingboot.com/{AppID}/group/control/?sign={sign}&ts={ts}

3. 线路状态反馈实现

3.1 实时状态反馈机制

芯步平台支持将设备状态变化主动推送到开发者指定的URL,实现实时反馈

配置方式

  1. 登录芯步控制台

  2. 进入"开发设置" → "消息推送"

  3. 设置接收状态推送的URL(如 https://your-domain.com/api/device/callback

推送的数据格式

3.2 HTTP回调接收服务实现

3.3 主动查询设备状态(可选方案)

若不配置消息推送,也可通过主动查询方式获取状态:

4. 完整二次开发架构

4.1 系统架构图

┌─────────────────────────────────────────────────────────────┐
│                      业务应用层                              │
│  ┌─────────┐ ┌─────────┐ ┌─────────┐ ┌─────────────┐       │
│  │ Web应用 │ │ 移动APP │ │ 小程序  │ │ 桌面客户端  │       │
│  └────┬────┘ └────┬────┘ └────┬────┘ └──────┬──────┘       │
│       └───────────┴───────────┴─────────────┘               │
│                         │ HTTP/HTTPS                        │
│  ┌──────────────────────▼──────────────────────┐           │
│  │           开发者业务服务器                    │           │
│  │  ┌─────────────┐  ┌─────────────────────┐  │           │
│  │  │ 设备状态管理 │  │ 业务逻辑处理        │  │           │
│  │  │ 数据库      │  │ 用户权限控制        │  │           │
│  │  └─────────────┘  └─────────────────────┘  │           │
│  └──────┬───────────────────────────┬─────────┘           │
│         │ HTTP API调用               │ 状态推送接收        │
└─────────┼───────────────────────────┼─────────────────────┘
          │                           │
          ▼                           ▲
┌─────────────────────────────────────────────────────────────┐
│                   芯步云平台                             │
│  ┌─────────────────────────────────────────────────────┐   │
│  │  API网关  │  设备管理  │  消息中心  │  数据存储     │   │
│  └─────────────────────────────────────────────────────┘   │
│                           │ MQTT/HTTP                       │
└───────────────────────────┼─────────────────────────────────┘
                            │
                            ▼
          ┌─────────────────────────────────┐
          │        2路智能开关设备           │
          │  ┌──────────┐  ┌──────────┐    │
          │  │ 线路1    │  │ 线路2    │    │
          │  │ 继电器   │  │ 继电器   │    │
          │  └────┬─────┘  └────┬─────┘    │
          └───────┼─────────────┼──────────┘
                  │             │
                  ▼             ▼
            电器设备A       电器设备B

4.2 完整业务流程

5. 典型应用场景

5.1 智能家居:双路照明控制

5.2 工业自动化:电机正反转控制

5.3 共享设备:扫码控制

5.4 状态监控告警

6. 注意事项与应用

6.1 签名时效性

  • 签名中的时间戳 ts 有效期为5分钟

  • 每次请求重新生成,避免时间偏差导致认证失败

6.2 状态同步最佳实践

  • 优先使用消息推送机制:避免轮询造成的API压力和延迟

  • 维护本地状态缓存:结合推送更新和主动查询双重保障

  • 配置重试机制:网络波动时自动重试,保证指令送达

6.3 安全

  • IP白名单:在控制台配置API调用的白名单IP

  • HTTPS协议:生产环境使用HTTPS保证通信加密

  • 签名密钥:AppSecret存储在服务端,严禁暴露在客户端代码中

6.4 典型问题与解决

问题可能原因解决方案
401签名错误时间戳偏差、密钥错误检查服务器时间同步,重新核对AppSecret
设备无响应设备离线或ID错误检查设备网络状态,确认设备ID正确
状态推送未收到回调URL不可达检查URL外网可访问性,查看控制台推送日志
命令执行延迟网络延迟或MQTT拥塞切换至MQTT方式,或增加超时时间

6.5 扩展能力

  • 定时任务:通过平台接口设置开关定时策略

  • 场景联动:结合传感器设备(如人体感应、门磁)自动触发开关动作

  • 数据分析:获取设备操作日志,分析使用模式和能耗情况

通过上述方案,开发者可以基于芯步2路智能开关的开放接口,快速实现双线路的独立控制与状态反馈,满足从智能家居到工业自动化的多样化应用需求。