CATALOG

DC-10A 是一款通过WiFi直连、支持HTTP接口控制的智能通断器,非常适合集成到现有的软件系统中实现远程控制。下面我会从准备工作、接口签名算法、具体的控制指令(单路/定时动作),以及代码示例几个方面来说明。

如何对接DC-10A 电源开关以实现HTTP接口远程通断控制

1. 准备工作:你得先知道这仨关键玩意儿

在开始写代码之前,你需要在芯步的控制台里找齐三样东西,就像吃饭得先有筷子一样:

  1. AppID:你的应用ID,相当于你在芯步云平台开的“房间号”。

  2. AppSecret:你的应用密钥,这个得藏好,别泄露了,相当于你房间的“钥匙”。别看它长得像乱码,后面加密全靠它

  3. Device ID:就是你这台DC-10A设备的ID。贴在设备外壳上或者控制台里都能找到

对于DC-10A,我们主要是控制 power 这个参数。因为它虽然叫DC-10A,但根据芯步的通用接口规范,单路控制的命令通常就是 {"power":1}{"power":0}。如果是多路版本的(比如4路控制器),才会用到 power1power2

2. 核心步骤:照葫芦画瓢搞定签名(Sign)

芯步的接口挺友好的,但为了安全,所有请求都得带上一个动态的签名。看着文档里的MD5算法可能会觉得头大,其实拆开来看就三步,比做数学题简单:

  1. AppSecret 做一次MD5加密,得到一串32位的字符串。

  2. 把这串字符串后面直接拼上当前的Unix时间戳(秒数,比如 1733904000)。

  3. 把上面拼接好的这一长串再做一次MD5加密,结果就是 sign

用代码逻辑表示就是这样:md5(md5(你的AppSecret) + 当前时间戳)

只要照着这个逻辑写,一般都不会出错。很多初学者对接不成功,十有八九是卡在这一步,不是时间戳单位搞错了(注意是秒,不是毫秒),就是拼接顺序不对。

3. 动手实战:发个命令把灯“打开”

咱们以最常用的 curl 命令(Linux下最常用的网络请求工具)为例,其实不管你是用Python、Java还是PHP,思路都是一样的。

场景: 把接在DC-10A上的设备通电(合闸)。

第一步:准备数据假设我们的参数是这样的:

  • AppID: ABC123

  • AppSecret: xyz789 (假设md5后是 aaaa....

  • 设备ID: 10086

  • 当前时间戳: 1733904000

  • 计算出的Sign: xxxxxxxxxxxx

第二步:拼接请求请求的地址格式是:http(s)://api.thingboot.com/{你的AppID}/device/control/?sign={你的Sign}&ts={时间戳}

我们要发送一个POST请求,Body里带上JSON数据:

注意看,这个命令 {"power":1} 就是控制DC-10A的关键。这里的 1 代表接通,0 代表断开

第三步:执行使用 curl(命令行的网络工具)发起的完整请求长这样:

如果操作正确,接口会返回 {"code":200},这时候你的设备就应该“啪”一下通电了。这个响应码 200 只代表平台收到了指令,不代表设备执行成功哦

4. 进阶玩法:不只是开关这么简单

如果你以为DC-10A只是个简单的开关,那就有点小看它了。它支持一些非常实用的“动作”命令,在工业控制或者智能场景里特别有用。

1. “按一下”效果(先通后断)有时候我们需要给设备一个脉冲信号,比如按门铃或者触发一个点动开关。命令格式:{"point":{"interval": 500}}这行代码的意思是:接通电路,等待500毫秒(半秒),然后自动断开。这比你在代码里写“开”->“等”->“关”要精准得多

2. “延时”效果(先断后通)如果你想重启路由器,或者控制一个设备在关闭后延时开启。命令格式:{"reset":{"interval": 10000}}这行代码的意思是:断开电路,等待10秒钟(10000毫秒),然后自动重新接通。非常适合用于设备重启场景

5. 一点补充

  • 关于响应码:上面说了,接口返回200不代表设备真的动作了。如果你的设备没反应,一般就是设备离线了,或者WiFi信号不好。你可以在芯步的控制台里看设备是不是在线状态。

  • 关于状态获取:DC-10A在状态变化时(比如你按了设备上的物理按键,或者远程控制了),会主动往你的服务器推消息。你得在控制台设置一个接收消息的URL(我们通常称为Webhook),这样就能实时同步开关的真实状态了。

总的来说,DC-10A的对接过程相当流畅,搞定签名之后,剩下的就是发HTTP请求的事了。