CATALOG

共享棋牌室的照明管理看似简单,但涉及用户权限、计时计费、多路独立控制等复杂逻辑。芯步的4路控制器通过开放HTTP接口,可以相对低成本地实现“通电即用、断电即结”的自动化流程。以下是具体的对接方案:

解决方案:基于芯步4路控制器的共享棋牌室照明管理系统对接

1. 核心逻辑与设计

在共享棋牌室场景中,照明管理不仅仅是开关灯,往往与订单状态强绑定。通常的逻辑是:用户下单 -> 对应包间的某一路或多路照明通电 -> 用户结账/倒计时结束 -> 自动断电

系统架构分为三层:

  1. 设备层:芯步智能照明控制器(型号:UNI-KZQ-ZM-4),负责执行具体的电路通断。

  2. 云平台层:芯步开放平台(API网关),负责转发指令,处理签名认证。

  3. 业务层:你的棋牌室SaaS/小程序后端,负责处理订单逻辑、计时计费,并调用API。

2. 前期准备:硬件参数与对接模式

根据产品手册,该控制器具有以下关键特性,是方案设计的基础:

  • 控制能力:4路独立控制,单路最大负载10A/16A,足以覆盖棋牌室的照明、排风扇、麻将桌插座等

  • 通信方式:支持WiFi 2.4GHz,无需额外网关,直连路由器

  • 控制协议:标准HTTP/HTTPS协议。

  • 对接方式

    • SaaS模式:设备直连云平台,业务系统调用云API。

    • 私有化模式:若棋牌室网络环境复杂或需本地极速响应,控制器支持配置本地服务器地址(局域网控制)

3. 详细对接步骤

步骤一:设备配网与绑定

在软件后台管理中,你需要实现设备的“绑定”流程。通常步骤如下:

  1. 设备通电,设备会进入配网模式(通常为指示灯闪烁)。

  2. 使用你的APP/小程序,通过接口获取当前WiFi列表,输入密码。

  3. 调用芯步配网接口,将WiFi凭证发送给设备。

  4. 设备上线后,会获得唯一的 Device ID

  5. 映射关系:在你的数据库中建立表,将 Device ID 与具体的棋牌室房间号(例如“VIP 1号房”)以及该房间内的线路编号(Channel 1-4)进行绑定。例如:房间A的顶灯对应Channel 1,新风系统对应Channel 2。

步骤二:API签名与调试(开发者必须注意)

芯步的接口采用动态签名验证,这是对接中比较容易出错的地方,签名算法规则如下:

  • 公式sign = md5( md5(developerPassword) + "." + timestamp )

  • 流程

    1. 在芯步控制台获取 AppIDDeveloper Password

    2. 在后端代码中,切记不要将签名逻辑放在前端(小程序/APP),因为这样会暴露密码。所有前端请求都经过你自己的业务后端,由后端计算签名并转发请求。

示例代码逻辑(Node.js后端):

参考自开放平台接口示例

步骤三:软件业务逻辑集成(订单联动)

这是“共享”场景的核心。你需要将开关操作与订单状态机绑定,具体场景实现如下:

场景 1:用户下单成功

  1. 用户在微信小程序支付“2小时包间费”。

  2. 支付回调触发订单状态变更为“已开始”。

  3. 后端查询该房间绑定的设备ID线路

  4. 后端组装 order: {"power1":"1", "power2":"1"}(假设1、2路是照明和插座)。

  5. 后端调用API下发指令。

  6. 容错处理:若API返回超时或失败,实现重试机制(例如间隔2秒重试3次),确保用户付费后能立刻通电。

场景 2:倒计时结束/用户点击退单

  1. 订单结束事件触发。

  2. 后端组装 order: {"power1":"0", "power2":"0"}

  3. 调用API下电。

  4. 防赖账机制:除了主动调用,设置“定时任务”。每小时扫描一次超时订单,强制调用断电接口,防止因网络延迟漏单造成浪费。

场景 3:远程协助(客服场景)

  • 用户投诉说“灯坏了没关”,客服可在后台管理系统手动点击“断电”按钮,调用相同的接口。

步骤四:状态同步与消息推送

照明控制器不仅仅是“接收指令”,它还需要“上报状态”(例如用户手动按了设备上的物理按键,或者停电后重启了)。

  1. 配置消息接收服务器:在芯步控制台配置你的消息推送URL(Webhook)。

  2. 处理回调:当设备状态发生变化时,芯步会向你的服务器发送POST请求。

  3. 同步逻辑:你的服务器收到状态变化通知后,需更新数据库中的设备状态字段。这保证了APP上显示的开关状态与房间实际状态一致

4. 高级功能扩展

利用该接口特性,可以进一步优化共享棋牌室的体验:

  • “一键启用”场景

    • 利用 batch 批量控制命令,实现一键开启“欢迎模式”(同时开灯、开排气扇、开麻将机插座)。

    • 命令示例:{"batch":{"relay":[1,2,3],"power":"1"}}

  • 无人自动断电(节能)

    • 结合芯步的“人体存在传感器”。当传感器探测到房间无人超过15分钟,可通过你的后端逻辑自动调用4路控制器的断电接口,强制结束订单或关闭设备,防止浪费

  • 先断后通(Reset)

    • 如果遇到路由器死锁或设备逻辑异常,可使用 reset 命令让指定线路在短时间内断开重连:{"reset":{"relay":[1],"interval":2000}}

5. 常见问题与排障

问题现象可能原因解决方案
API返回签名错误时间戳ts与服务器时间误差过大;MD5格式不正确检查服务器系统时间是否同步(ntp);确保签名字符串格式为 md5_pwd.ts,用点号连接
指令下发成功但灯没灭WiFi信号弱;设备负载过高(继电器粘连)检查设备信号强度(rssi);确认照明功率未超过10A额定电流
重启路由器后设备离线DHCP租约变动,设备IP发生变化在路由器后台为设备MAC地址绑定静态IP;或采用设备广播机制重新发现
用户手动按了物理开关,APP状态不同步未配置消息推送URL确保已配置Webhook,当设备主动上报状态时,业务端代码需更新Redis/DB中的状态字段

综上,通过芯步标准的HTTP接口,共享棋牌室软件项目可以较轻松地实现设备管控。关键在于后端合理维护签名安全以及将开关指令与订单生命周期紧密耦合