芯步的10A86型定时开关插座提供标准HTTP接口,对接的核心是“下发指令查询状态”+“订阅推送接收状态”——主动查询调用/device/control/接口,被动接收则配置消息推送。以下是完整的对接方案:
1. 核心对接原理
为了实现“远程状态查询”,通常需要解决两个问题:
主动查询:立即想知道插座现在是开还是关。
被动接收:插座被物理按键操作或定时任务触发后,系统能自动知道状态变了(而不是一直去问)。
芯步的接口设计通过以下两点解决:
控制即返回:下发命令(如打开/关闭)时,接口会同步返回当前状态。
状态主动上报:通过配置消息推送机制,当插座状态发生任何变化(手动按、定时到点、远程控制),平台会立即将状态推送给你的服务器。
2. 准备工作:获取凭证与设备ID
在开始编码前,请登录芯步开发者后台完成以下准备:
获取 AppId 和 AppSecret
登录控制台,进入“开发设置”。
记录下应用ID和开发者密码。这两个是调用接口的钥匙。
获取设备ID
进入“设备列表”,找到你已激活的10A86型定时开关插座。
记录下对应的设备ID(通常是一个数字,如
1878)。
确定服务器环境
准备一台公网可访问的服务器(用于接收状态推送)。
3. 方案一:主动查询状态(请求-响应模式)
此方案适用于你点击“刷新”按钮、或需要实时校验状态的场景。
3.1 请求地址与签名构造
URL:
http(s)://api.thingboot.com/{AppId}/device/control/Method: POST
签名算法:
sign = md5( md5(AppSecret) + ts )
这里的算法说明:
将
AppSecret进行第一次MD5加密得到S1。将
S1与时间戳ts(秒级,如1712812800)拼接成字符串S1ts。将
S1ts进行第二次MD5加密得到最终的sign。
3.2 请求Body构建
只需要发送设备ID和查询命令。
接口虽然没有专门的“查询”命令,但通过查询设备属性或发送空指令/状态指令,可以获取当前状态。通常做法是发送一次获取属性的请求,或者根据官方推荐,通过控制命令返回结果来获取状态。
实际操作示例如果你想查询状态,可以尝试下发一个不改变状态的指令,或者直接利用控制指令的返回结果。
根据芯步的通用规范,请求Body格式如下
注意:如果只是想看状态,你可以发送一条保持当前状态的指令(例如原本是开就发开),从而触发设备返回当前状态数据。
4. 方案二:被动接收状态(消息推送模式)☆推荐
为了实现真正的实时状态查询(无需轮询),开启消息推送。这样,无论是手动按键还是定时任务改变了插座状态,你的服务器都能立刻知道新状态。
4.1 配置推送地址
在芯步控制台找到“消息推送”设置。
选择 HTTP方式,并填入你的服务器接收URL(例如
https://yourdomain.com/api/callback)。保存设置。
4.2 接收推送的数据
当插座状态变化时,芯步平台会向你的服务器发送如下格式的POST数据包
4.3 服务端处理示例(Python Flask)
你需要在自己的服务器上写一个简单的接口来接收这些数据:
5. 结合“定时开关”的特殊处理
既然是定时开关插座,你可能需要读取它预设的定时任务状态,或者获取它自动执行后的结果。
无需缓存定时任务:利用上述的消息推送机制 + 你的本地数据库,当定时时间到达时,插座自动断电,消息推送接口会瞬间收到
power:0的数据。你只需监听该消息,就能知道定时任务已经执行。查询定时列表:如果需要查询插座内部存储的定时计划表,需调用特定的接口拉取设备属性和任务列表。
6. 完整对接流程图
sequenceDiagram
participant App as 你的应用/服务器
participant YY as 芯步云平台
participant Device as 10A86插座
Note over App,Device: 第一种场景:主动查询
App->>YY: POST /device/control (携带签名&设备ID)
YY-->>App: 返回当前状态 {"power":1}
Note over App,Device: 第二种场景:状态变化上报
Device->>Device: 用户手动按下开关 / 定时时间到
Device->>YY: 上报新状态 (power:0)
YY->>App: 推送消息 (HTTP POST)
App-->>YY: 回复 200 OK
App->>App: 更新数据库/记录日志7. 常见问题和需要注意的点
签名错误
检查时间戳
ts是否为秒级(10位数),不是毫秒级(13位数)。检查拼接顺序:
md5( md5(AppSecret) + ts ),注意加号是字符串拼接。
网络隔离
如果部署在局域网,芯步支持私有化部署和局域网通信,请确认API地址指向内网IP。
消息丢失
如果你的服务器在设备状态变化时宕机或网络故障,状态推送可能会失败(平台5秒内连接不上会放弃)。在业务关键节点上,定时(如每5分钟)做一次全量状态同步(使用方案一)作为兜底。
多设备管理
device字段支持传多个ID,用逗号间隔即可批量控制,但状态返回通常是分批的。
通过以上方案,你可以完全掌握10A86型定时开关插座的实时状态,并基于此开发能耗统计、报警联动等更高级的功能。