CATALOG

两路独立照明控制的本质是实现两个通道的独立开关状态管理。芯步的开放接口采用HTTP协议,核心是向指定设备发送携带power参数的JSON命令——power:1开启、power:0关闭,通过指定不同设备ID或同一设备的不同通道参数来实现两路独立控制。

1. 引言

在智能照明场景中,实现多路照明的独立控制是基础且核心的需求。芯步(ThingBoot)平台提供了标准化的开放接口,支持开发者通过HTTP协议直接控制智能硬件。本文将详细阐述如何利用芯步的开放接口,对接两路触摸控制开关,实现2路独立照明的远程及本地控制。

2. 概述

本方案的目标是通过调用芯步的开放API,实现对两路触摸开关的精确控制。

  • 控制对象:两路触摸控制开关(具备2个独立的继电器输出)。

  • 控制方式

    1. 本地控制:触摸开关面板直接触摸控制(物理层面)。

    2. 远程控制:通过HTTP API发送指令,分别控制第1路和第2路。

  • 通信协议:HTTP/HTTPS。

  • 数据格式:JSON。

3. 核心原理与接口机制

根据芯步开放平台文档,设备与云端/服务器之间的通信基于HTTP请求。

3.1 接口请求模型

芯步的设备(包括智能开关)通常支持通过HTTP API进行控制。其基本的请求模型如下:

  • URLhttp(s)://api.thingboot.com/{AppId}/device/control/

  • Method:POST

  • 参数

    • sign:签名,用于身份验证。

    • ts:时间戳。

  • Body:JSON格式,包含设备ID (device) 和控制指令 (order)。

3.2 指令下发机制

服务器通过向该接口POST特定的JSON数据,实现向设备下发命令。根据同类产品(如智能传感器)的接口逻辑,控制开关通断的核心参数通常为 power 字段

  • 开启指令{"power": 1}

  • 关闭指令{"power": 0}

4. 硬件对接:两路触摸开关的通道映射

要实现“独立”控制,必须区分硬件上的“两路”。

通常,两路开关在系统内部映射为两个不同的设备ID,或者同一个设备ID下的两个不同通道(Channel ID)。鉴于芯步接口中的 power 字段是针对单个设备线路的,本方案将每一路开关视为一个独立的设备进行对接,或者通过扩展指令区分通道。

4.1 通道逻辑映射表

在您的业务系统中建立以下映射关系,以便逻辑调用:

物理位置控制对象关联设备ID (Device ID) / 通道开启指令 (JSON)关闭指令 (JSON)
左侧触摸键 (K1)照明灯 L1设备ID: 820721 (示例){"power":1}{"power":0}
右侧触摸键 (K2)照明灯 L2设备ID: 820722 (示例){"power":1}{"power":0}

注:如果设备支持单设备多通道控制,指令可能变更为 {"channel":1, "power":1},具体需参照该型号设备的专属协议手册。

5. API 对接详细步骤

5.1 准备工作

  1. 注册/登录芯步开放平台:获取 AppIdAppSecret,用于生成签名 sign

  2. 添加设备:在物联网控制台将两路开关设备添加至账号下,获取唯一的 Device ID(如示例中的 820721)。

  3. 网络配置:确保触摸开关已连接至Wi-Fi(2.4GHz)且网络状态良好

5.2 签名生成 (Sign)

为了防止接口被恶意调用,每次请求需携带签名。签名规则一般如下(以伪代码为例):

5.3 实现“路1”独立控制

场景:关闭客厅左侧的吸顶灯(灯1),保持右侧灯带(灯2)状态不变。

  • 请求URLhttps://api.thingboot.com/YourAppId/device/control/?sign=xxxx&ts=169xxxxx

  • MethodPOST

  • Request Body

  • 逻辑解析:系统仅向代表“左侧开关”的Device ID发送关闭指令。由于不涉及右侧设备的ID(820722),右侧照明状态维持不变,从而实现独立控制

5.4 实现“路2”独立控制

场景:开启客厅右侧的灯带(灯2)。

  • Request Body

5.5 状态同步与查询

为了确保App界面与物理开关状态一致,设备状态发生变化(无论是触摸按压还是远程指令)都应上报至服务器。

  • 上行消息:设备被触摸打开/关闭时,应向服务器推送当前状态。

  • 状态获取:系统需提供状态查询接口(通常为 GET /device/status/{device_id}),或在设备上线/心跳包中解析最新状态,以保证两路状态的实时同步

6. 方案实施架构图 (文字描述)

[ 用户 App / Web 后台 ]
        |
        | (1) 点击"开灯1"按钮
        V
[ 芯步云端 API ]
        | (2) HTTP POST: {device:820721, order:{power:1}}
        | (3) 签名验证 & 指令解析
        V
[ 物联网云平台 ]
        | (4) 下行指令 (MQTT/HTTP)
        V
[ 路由器 / 网关 ] --- (5) 无线信号 (Wi-Fi/Zigbee)
        |
        V
[ 两路触摸开关 (设备ID:820721) ]
        | (6) 继电器1吸合
        V
[ 照明回路 1 ] --- 灯亮了

7. 本地控制与远程控制的融合

芯步的硬件设计通常支持“断网可控”及“状态记忆”。即使在无网络环境下,触摸开关的物理按键也应能直接控制对应回路。

  • 融合效果:用户通过物理按键按下左侧开关,灯1亮起。此时,开关芯片记录下这一状态变化,通过网络上报至云端。当用户打开手机App时,看到的“灯1”状态也是“开启”,实现了操控体验的统一。

8. 注意事项与最佳实践

  1. 设备唯一性:请请一定要确认您采购的两路开关在芯步后台是被识别为“1个设备2个通道”还是“2个独立的子设备”。向厂商确认 power 指令是否支持 channel 参数

  2. 响应延迟:公网HTTP控制存在约 80-120ms 的延迟,这在照明控制中通常无感知,但若用于特殊工业场景需注意

  3. 私有化部署:如果您的项目对数据安全要求比较高(如局域网内控制),芯步支持私有化部署方案。此时,API请求的域名需指向您的本地服务器IP,而非 api.thingboot.com

  4. 负载安全:控制两路照明时,请确认开关的额定功率(如每路最大支持LED功率),避免因灯具功率过大导致继电器粘连。

9. 总结

借助芯步开放的HTTP API接口,通过“独立设备ID映射”或“通道参数区分”的方式,可以极其便捷地实现两路触摸开关的独立照明控制。开发者仅需关注业务层逻辑(何时开/关),硬件通信层由芯步的标准协议封装,极大地降低了智能照明系统集成的门槛。