CATALOG

芯步的开放接口通过HTTP请求就能控制智能灯具,核心就是向指定设备发送一条包含色温/亮度参数的JSON命令。下面说下具体怎么对接。

一、 先搞清楚硬件原理:灯是怎么“变”色的?

在写代码之前,先理解一下智能灯的物理原理,这样对接的时候不容易懵。

我们说的“冷暖调节”或者“色温调节”,其实灯里有两路独立的灯珠:一路是冷白光(比如6500K,看起来偏白偏蓝),另一路是暖黄光(比如2700K,看起来偏黄偏红)。LED驱动模块的作用就是分别控制这两路的电流大小。

  • 想要冷光:把冷白这路开大,暖黄那路关小。

  • 想要暖光:把暖黄这路开大,冷白那路关小。

  • 想要亮一点:两路同时开大。

  • 想要暗一点:两路同时关小。

芯步的云端指令,就是用来告诉这个驱动模块:“冷光开80%,暖光开20%”。

二、 对接前的准备工作

在芯步后台把“钥匙”拿到手,不然调不通。

  1. 注册并登录控制台:先去芯步官网注册一个账号,进到“物联网控制台”。

  2. 找到设备ID:在控制台里找到你要控制的那个“情景灯”设备。设备详情页里有一串数字,就是 设备ID 。如果手头没实物,可以用平台提供的“演示设备”先练手。

  3. 获取密钥:点击左侧菜单的“开发设置”。这里有两个最重要的字符串:

    • AppID:相当于你的账号ID。

    • AppSecret:相当于你的密码。这串字符别泄露给别人

  4. 关于调试模式:刚开始开发的时候,在“开发设置”里打开“调试模式”。这样就不用急着算复杂的签名了,直接发命令就能测,非常方便。等调通了再关掉也不迟。

三、 核心操作:写代码发指令

核心逻辑就是往这个地址发POST请求:https://api.thingboot.com/{你的AppID}/device/control/

1. 搞懂签名规则

如果你关了调试模式,或者上生产环境,必须带上签名 sign 。规则稍微有点绕,但按照下面步骤来就行:

  1. 先把你的 AppSecret 做一次MD5加密。

  2. 把上一步得到的字符串,再拼接上当前的10位时间戳(ts)。

  3. 把拼接好的字符串再整体做一次MD5。得到的就是 sign

举个栗子假设你的 Secret 是 abc123,当前时间是 1699999999第一步:MD5(abc123) = e99a18c428cb38d5f22e03...第二步:拼接成 e99a18c428cb38d5f22e03... + 1699999999第三步:sign = MD5(拼接后的字符串)

2. 组装“色温调节”命令

这是最核心的order参数。你需要参考该产品的《产品手册》(在控制台设备详情页右边可以下载)。

通常,情景灯的调节命令长这样(JSON格式):

例子:调节色温和亮度假设手册里定义冷光是 cold,暖光是 warm,取值范围0-100。

这条指令的意思是:冷光开80%,暖光开20%。合在一起就是偏冷的亮光

例子:切换情景模式很多灯还内置了模式,比如“阅读模式”、“夜灯模式”。

注意:具体的参数名(是用 cold/warm 还是 ct 还是 mode)一定要去看产品手册,不同批次可能不一样。

3. 完整的请求示例

假设我们用 Pythonrequests 库来操作,比较直观好懂。

如果返回的code是200或者0(具体看手册里的成功定义),那灯就会立刻做出反应。

四、 实现连续调节(过渡效果)

如果只是一下子切换色温,可能会比较生硬。如果你想做个像手机APP那样滑动渐变的“无极调光”,需要在你的代码里加个循环逻辑:

  1. 设定目标值:用户滑动滑块到色温5000K。

  2. 获取当前值:查询一下灯现在的状态(通过查询接口)。

  3. 计算步长:比如从当前的{cold:0, warm:100}(纯暖黄)变到目标{cold:70, warm:30}(中性白)。

  4. 循环发送:写一个for循环,分10次,每次增加一点比例,中间加个time.sleep(0.1)(间隔100毫秒)。

    • 注意:芯步限制单个设备1秒最多请求1次,调太快可能会被限流,每步间隔200ms左右。

五、 几点避坑小

  1. 先看日志:如果你发了命令灯没反应,先去芯步控制台的设备详情页,点“日志”或者“控制”卡片。那里能看到平台到底有没有收到指令,下发成功了没。

  2. 区分大小写coldCold 是不一样的,参数名严格按手册来。

  3. 关于配网:这个方案默认灯已经连上了你家Wi-Fi。如果灯没联网,需要先用官方手册或者APP给它配网。

只要把上面那个Python脚本里的order_data改一改,你就可以实现从“火焰模式”到“冰雪模式”的所有控制。具体字段以产品手册里的命令表为准。