CATALOG

芯步的智能墙壁开关支持标准HTTP接口调用,两台开关之间虽然没有直接通信协议,但可以通过你的云端服务器或本地服务轻松实现联动控制。下面从接口能力、设计到代码实现,给出完整的解决方案。

1. 解决概述

本方案的目标是利用芯步提供的开放API接口,将普通的墙壁开关升级为具备场景联动的智能设备。由于芯步的设备支持 HTTP API 控制且有实时状态上报机制,我们可以通过一个中间层服务器(私有化部署或云服务器)来接收一个开关的状态变化,然后向另一个开关下发指令,从而绕过物理布线的限制,实现双控或多控

适用场景:

  • 卧室双控: 床头开关和门口开关控制同一盏灯(无需复杂走线)。

  • 全屋关灯: 出门时关闭一个开关,屋内所有灯光自动关闭。

  • 安防联动: 离家模式开启时,自动切断特定插座电源。

2. 核心原理与架构

实现“场景联动”不需要改变硬件接线,完全通过软件逻辑实现。

  • 触发端: 开关A(被用户物理按下或通过APP控制)状态发生变化(例如:从“关”变为“开”)。

  • 接收端: 你的服务器收到了开关A的状态变化消息。

  • 逻辑处理: 服务器根据预设规则(触发条件 且 当前时间在18:00后,则执行...)。

  • 执行端: 服务器向开关B下发HTTP指令,执行开/关操作。

3. 准备工作:设备与接口分析

主要涉及硬件产品:芯步智能触摸墙壁开关2路智能墙壁开关2路

根据官方接口文档,2路墙壁开关的关键API能力如下

  1. 独立控制命令:

    • 控制线路1:{"power1": 1}(开) / {"power1": 0}(关)

    • 控制线路2:{"power2": 1}(开) / {"power2": 0}(关)

    • 特点: 两路完全独立,可分别控制两盏不同的灯或电器

  2. 状态实时反馈(关键联动点):

    • 当用户在墙壁上按下开关,或通过其他指令改变状态时,设备会主动向预设的服务器地址推送当前状态。

    • 推送内容示例:{"device":"xxx", "power1":"1", "power2":"0"} 表明第一路已打开。

  3. 高级功能(可选):

    • 互锁/保持模式: 虽然物理接线是独立的,但通过逻辑可以设定power1power2为一开必一关的模式(常用于窗帘电机或特殊设备控制)

4. 详细对接步骤

为了实现“开关A(主卧)控制开关B(客厅)”,我们需要执行以下步骤:

第一步:服务器环境搭建(私有化/云端)

芯步支持私有化部署。为了保证联动的实时性,你需要在公网或局域网内部署一个服务端。

  • 接收消息: 在芯步控制台设置“消息推送URL”(例如:http://你的服务器IP:8080/device/callback)。当设备状态变化时,平台会POST数据到这个地址

  • 下发指令: 服务端需要能够发起HTTP请求https://api.thingboot.com/{AppId}/device/control/

第二步:设备配网与注册

  1. 安装好2路墙壁开关(请一定要断电操作)。

  2. 接通电源,通过芯步小程序或控制台进行WiFi配网(仅支持2.4G WiFi)

  3. 记录下设备ID。假设:

    • 开关A的设备ID为:100001(门口)

    • 开关B的设备ID为:100002(床头)

第三步:安全签名计算

调用芯步任何API都需要计算签名sign。公式为md5(md5(AppSecret)+ts)。这是为了防止接口被恶意攻击。

  • AppSecret: 你在控制台获取的开发者密码。

  • ts: 当前Unix时间戳。

第四步:编写联动业务逻辑(伪代码实现)

你需要在你自己的服务器上编写逻辑。假设需求:“当开关A的第一路打开时,开关B的第二路自动关闭”。

1. 接收开关A的状态变化(WebSocket / HTTP回调)你的服务器需要保持一个接口等待芯步平台的推送。

2. 下发控制指令给开关B这是联动执行的核心步骤,调用芯步的API关闭指定线路。

5. 高级联动场景设计

利用2路独立控制的特性,你可以搭建更复杂的逻辑:

第一种场景:一键总闸(出门模式)

  • 触发: 用户在APP或墙壁上关闭 开关A的第1路

  • 逻辑: 服务器接收到 100001power1 变为 0

  • 动作: 服务器自动向全屋所有开关(如 100002100003 等)下发 {“power1”: “0”}{“power2”: “0”}

第二种场景:感应照明联动

  • 设备组合: 2路墙壁开关控制灯 + 人体传感器

  • 逻辑: 服务器收到“传感器检测到有人”的消息。

  • 动作: 服务器向2路开关发送命令:{“power1”: “1”}(打开照明),同时设置定时任务3分钟后关闭。

第三种场景:窗帘/卷帘电机控制(互锁逻辑)

  • 硬件接线: 将开关的第1路接电机正转(开窗帘),第2路接电机反转(关窗帘)。

  • 软件逻辑: 你的APP端需做逻辑判断:点击“开窗帘”时,必须发送{“power1”: “1”, “power2”: “0”};几秒后全部停止({“power1”: “0”, “power2”: “0”})。切勿在物理上同时接通两路。

6. 常见问题排查

  • 联动延迟: 检查你的服务器响应时间。如果是通过公网云服务器,延迟通常在毫秒级;如果是本地局域网(私有化部署),则可达到实时级别

  • 状态不一致: 如果手动按开关没有触发联动,检查芯步控制台是否成功接收到了设备的上行消息(检查“消息推送”日志)。

  • 2路干扰问题:power1power2在硬件上是隔离的,但如果你发现关一个另一个也关,请检查你的管理后台是否配置了自动化规则,而不是硬件问题。

通过以上方案,你无需修改家里复杂的强电线路,仅利用芯步开放的HTTP API和状态回调机制,即可快速实现两路开关的交叉控制与场景联动。