包间管理场景下,不同设备类型(照明、空调、麻将机、门锁)需要差异化权限控制和联动策略。以下方案基于芯步8路控制器的HTTP接口,从设备分组映射、签名鉴权、批量控制到状态同步,给出完整的技术实现路径。
1. 概述与业务场景
在共享棋牌室、茶室、影音房等场景中,运营方通常需要对多个包间内的各类电器进行精细化管理。芯步智能包间控制器(型号:UNI-KZQ-BJ-MAX)提供8路独立输出,可覆盖照明、插座、门锁、空调等全部设备。本方案的目标是解决以下核心需求:
跨包间分组管理:经营者需要在同一个管理后台,对“所有包间的照明”或“所有包间的空调”执行批量操作(如营业结束时一键全关)。
单包间独立控制:顾客预定某一包间后,系统仅需对该包间的设备进行授权控制,不受其他包间干扰。
设备类型差异化:照明可频繁开关,空调需延时保护,门锁需防误开。8路接口因负载功率不同(如第4-6路为16A,第8路支持30A空调),天然适配不同设备。
2. 接口对接基础:鉴权与指令下发
要实现对控制器的管理,首先需完成设备与开发者服务器的对接。芯步开放平台采用标准的 HTTP 请求签名鉴权机制,保障 API 调用的安全性。
2.1 核心鉴权参数
在调用 API 前,需在芯步控制台获取以下凭证:
AppID:应用的唯一标识。
AppSecret:用于加密签名的密钥。
2.2 签名生成规则(Signature)
为防止接口被恶意篡改,所有请求需携带 sign 和 ts(时间戳)参数。签名计算逻辑如下
将 AppSecret 进行一次 MD5 加密:
Secret_MD5 = md5(AppSecret)将加密结果与当前时间戳拼接:
TempStr = Secret_MD5 + ts对拼接字符串再次进行 MD5 加密:
sign = md5(TempStr)
2.3 下发控制指令
接口地址:https://api.thingboot.com/{AppID}/device/control/
通过 POST 请求发送 JSON 体即可控制设备。例如,关闭设备 ID 为 123456 的第 1 路照明:
该请求会返回 {"code":200} 表示指令下发成功。
3. “包间设备分组独立管理”核心逻辑实现
为了实现“跨包间分组”与“单包间独立”的双重管理,我们推荐在开发者自有服务端建立设备映射中间表,将硬件物理ID与业务逻辑解耦。
3.1 数据模型设计
在数据库中创建包间设备映射表,细化到每一路输出:
| 字段 | 示例值 | 说明 |
|---|---|---|
room_id | R001 | 业务包间ID(如:VIP1) |
device_sn | 1878xxxx | 8路控制器硬件ID |
relay_channel | 1 | 对应控制器的第几路(1-8) |
device_type | light | 设备类型标识(light/ac/lock/socket) |
belongs_to_group | floor_1 | 分组标识(如:一楼、二楼) |
3.2 单包间独立管理(粒度:路)
场景:顾客在小程序下单后,系统自动为其指定的包间通电。实现逻辑:后端服务根据 room_id 查询对应的控制器 ID 与继电器通道号,仅下发针对该路的指令。
单开照明:构造命令
{"power1": 1}单关麻将机:构造命令
{"power4": 0}
进阶策略 - 先断后通(Reset):针对空调等压缩机设备,直接断电会损伤设备。芯步接口支持 reset 命令,可设置延时断开。例如,先断开空调(第8路),间隔 3 秒后再断开风机盘管
3.3 跨包间分组批量管理(粒度:组)
场景:凌晨两点,管理员需要强制关闭全场所有空调和灯光以节约能耗。解决方案:利用接口支持的多设备批量控制功能。device 参数支持逗号分隔,一次性传入该分组下所有控制器的 ID。
例如,关闭楼层1(belongs_to_group = floor_1)所有包间的第8路(空调):
服务端查询分组下所有设备ID,拼接为字符串
device=123456,789012,345678。下发批量命令:
平台支持一次最多控制 100 台设备,适合中小型门店的全场控制。
3.4 跨包间同类设备联动(粒度:类型)
场景:当客人呼叫服务时,需要让“所有包间”的呼叫灯闪烁提示,或全场广播。实现逻辑
轮询查询:服务端拉取所有在线控制器列表。
批量下发:循环调用批量控制接口,仅修改代表“呼叫灯”的那一路(如第3路)。由于该控制器支持
batch批量模式,可以精细化控制指定继电器的开关
4. 实施步骤与技术要点
4.1 设备配网与初始化
所有控制器需连接至 2.4GHz WiFi 网络。可通过芯步提供的小程序配网工具或控制台网络配置功能,将设备注册至对应的工作台下。
4.2 状态同步与异步处理
HTTP 请求返回 200 仅代表指令被平台接收,并不代表设备真正执行成功(例如设备离线)。
方案:配置芯步的消息推送服务,订阅设备状态变更事件。当设备执行指令后,平台会异步推送执行结果至你的服务器,确保数据库中的设备状态(ON/OFF)与物理设备实时一致。
4.3 安全性保障
签名校验:严格在服务端计算 Sign,严禁将 AppSecret 暴露在前端代码中。
业务权限过滤:在服务端查询
room_id时,必须校验当前操作员(或顾客)是否拥有该包间的使用权,防止水平越权操作他人房间设备。
4.4 长周期任务与定时
该控制器支持云端定时任务。开发者可通过接口设置定时任务,无需服务器后台跑脚本即可实现:
早上 9:00:自动开启排风扇。
晚上 23:00:自动切断总电源(除路由器外的设备)。
5. 总结
通过对接芯步 8 路控制器的开放 HTTP 接口,开发者可以灵活构建适用于共享空间的管理系统。本方案的核心在于利用自定义业务映射表将 8 路物理通道转化为具体的“照明”、“空调”、“门锁”等逻辑对象,并结合接口提供的多设备批量控制与精细化继电器管理能力,最终实现“跨包间分组操控”与“单包间独立计费/控制”的完美统一。
注:文档提及的接口签名算法及命令字(如 power1, batch, reset)均基于芯步官方技术文档规范,开发者对接时请以实际设备固件版本为准。