CATALOG

芯步智能墙壁开关2路提供了完整的HTTP API接口,通过二次开发可以轻松实现远程控制两路照明。以下是完整的解决方案,涵盖接口协议、签名算法、多语言代码示例及应用场景。

解决方案:基于芯步开放接口二次开发实现远程照明控制

一、 准备与环境搭建

在开始代码开发之前,需要完成硬件安装及平台基础配置,这是实现控制的前提。

  1. 硬件准备与安装

    • 采用标准86型底盒安装,直接替换原有墙壁开关。接线时需区分火线进线、第一路照明灯线和第二路照明灯线

    • 设备通电后,通过官方App或平台控制台进行配网操作,确保开关连接至2.4G WiFi网络。

  2. 平台凭证获取

    • 登录芯步官网,注册账号并进入工作台

    • 在“物联网控制台”的开发设置中,获取核心凭证:

      • AppID:应用的唯一标识。

      • AppSecret:用于签名加密的密钥。

  3. 设备ID获取

    • 在控制台的设备列表页面,查看已配网的“智能墙壁开关2路”的Device ID(设备唯一ID,通常为一串数字或字符串),此ID即为后续API操作的目标对象

二、 接口协议与签名机制

芯步采用标准的HTTP POST请求进行交互,为保证安全性,所有请求均需携带动态生成的签名。

  • 请求地址https://api.thingboot.com/{AppID}/device/control/

  • 请求方法:POST

  • 请求参数:需在URL的Query String中携带签名和签名,在Body中携带设备ID和指令。

核心难点:签名算法签名(Sign)用于校验请求合法性,其生成逻辑如下

  1. 将AppSecret进行一次MD5加密,得到 Secret_MD5

  2. Secret_MD5 与当前Unix时间戳(秒,即ts)拼接成字符串 Secret_MD5 + ts

  3. 将拼接后的字符串再次进行MD5加密,得到最终的签名。

公式表示: Sign = md5( md5(AppSecret) + ts )

例如,若当前时间戳为 1715324800,AppSecret为 abc123,则需先对abc123做MD5,结果拼接时间戳后再做一次MD5。

三、 二次开发核心指令

针对“智能墙壁开关2路”产品,其核心控制指令封装在order参数中,是一个JSON字符串。

具体的控制指令如下表所示:

控制目标命令参数 (Order JSON)功能描述
第一路照明{"power1": 1}开启第一路(线路1)
{"power1": 0}关闭第一路(线路1)
第二路照明{"power2": 1}开启第二路(线路2)
{"power2": 0}关闭第二路(线路2)
高级场景控制{"point1": "2000"}第一路先通电,2秒后自动断电(点动模式)
{"reset1": "2000"}第一路先断电,2秒后恢复通电(复位模式)
{"power1": {"keep":"1","revert":"3"}}锁定第一路开启状态,用户手动关闭3秒后自动恢复开启

四、 代码实现示例 (多语言)

开发人员可根据项目后端环境,选择以下任一语言脚本进行集成。

1. Shell (适用于Linux运维脚本)这是最简单的测试方式,利用curl命令

2. Node.js (适用于服务端或Web应用)

3. Python (适用于数据分析或后端集成)

五、 应用场景与拓展

通过API集成,你可以实现以下高级功能:

  1. 集成到HomeAssistant等智能家居系统:通过自定义组件,将设备接入非官方但有开放API的平台,实现全屋智能联动。

  2. 自动化任务脚本:结合Linux的Crontab或Windows的计划任务,实现定时开关灯。例如:每天晚上6点自动开启庭院灯

  3. 安全监控联动:在办公室场景中,当部署的人体传感器在非工作时间检测到有人移动时,调用API远程开启第二路灯光作为警示。

六、 注意事项

  • 网络环境:该设备依赖Wi-Fi,且官方推荐优先使用2.4G频段。

  • 私有化部署:如果对数据安全要求比较高,芯步支持局域网私有化部署,此时API地址可能需要替换为私有服务器地址。

  • 错误处理:开发时请请一定要处理http请求报错(如超时、设备离线)的情况,加入重试机制。

通过以上步骤,即可在短时间内完成对两路照明的远程控制二次开发,实现个性化的智能控制逻辑。