包间预约联动通电的核心在于将预定系统的“时间段”指令转换为硬件可执行的动作。芯步的8路智能包间控制器提供HTTP接口,支持独立控制照明、空调、门禁等8路设备,以下方案围绕接口对接、联动逻辑设计和异常处理展开。
解决方案:基于芯步开放接口实现包间预约联动通电
1. 概述
本方案的目标是利用芯步智能包间电源控制器(8路) 的开放HTTP接口,将现有的包间预约系统(如小程序、Web管理后台)与包间内的物理电源设备(灯光、麻将机、空调、门锁等)进行打通。
核心目标: 实现“用户下单 → 系统自动通电 → 用户上电使用 → 按时自动断电”的全自动化流程,减少人工干预,提升翻台效率。
适用场景: 共享棋牌室、自助茶室、剧本杀包间、影音房、舞蹈教室等无人值守或自助服务型门店。
2. 硬件选型与线路规划
在开发对接之前,需先定义8路电路的具体职责。采用智能包间控制器(Max型号) ,其具备高低功率区分,适合包间全场景覆盖。
| 线路编号 | 推荐负载类型 | 接口类型 | 联动逻辑说明 |
|---|---|---|---|
| 线路 1 | 主照明 | 10A | 预约开始前5分钟亮起,结束立刻熄灭 |
| 线路 2 | 氛围灯带/LED | 10A | 跟随主照明联动,或独立控制 |
| 线路 3 | 换气扇/新风 | 10A | 预约开始时开启,结束后延迟关闭10分钟 |
| 线路 4 | 麻将机/按摩椅 | 16A | 预约开始通电,用户扫码上电;也可常断电 |
| 线路 5 | 饮水机/小冰箱 | 16A | 预约开始通电,结束后断电(节能) |
| 线路 6 | 投影仪/电视 | 16A | 需配合“先断后通”逻辑保护灯泡寿命 |
| 线路 7 | 门禁电磁锁 | 10A | 核心线路:用户下单成功后开锁,结束或超时关锁 |
| 线路 8 | 空调(2匹内) | 30A | 预约开始前10分钟预冷/预热,结束后自动关闭 |
注:如果使用该型号,第7路可直接接电磁锁;如果是普通8路控制器,则需额外串联门禁电源。
3. 对接开发核心逻辑
芯步的接口基于HTTP协议,采用POST请求方式,数据格式为JSON,只要业务系统能发起网络请求即可完成对接。
3.1 API接口规范
请求地址
https://api.thingboot.com/{AppId}/device/control/鉴权参数:在URL中携带
sign(签名)和ts(时间戳)。Sign生成规则参考:通常为
md5(md5(AppSecret) + ts),具体可参考其开放平台文档。
请求体(Body)示例
![控制命令]
3.2 设备配网与注册
首次配置:将控制器通电,通过“芯步”小程序或物联网控制台进行Wi-Fi配网。
获取Device ID:配网成功后,在后台控制台获取该设备的唯一ID,该ID将作为后续接口调用的目标参数。
3.3 业务系统联动(时序图逻辑)
以下是业务系统必须实现的核心循环逻辑:
第一步:用户下单与预授权
触发:用户在微信小程序/APP下单,选择时段(如 14:00-16:00)。
动作:业务系统记录订单,生成有效时间段。
第二步:临近时段自动通电
触发:定时任务(Cron Job)或延迟队列检测到当前时间 = 预约开始时间 – 5分钟。
动作:调用芯步API,发送预开启命令。
代码示例逻辑:
order:{"batch": {"relay":[1,2,3,8],"power":1}}(批量开启1,2,3,8路)device:"xxxxxxxx"
第三步:用户入场(核销/门禁联动)
场景A(普通包间):用户到达后,在小程序点击“开门/开始”。系统调用API开启第7路(门禁锁),用户推门进入,2秒后系统自动调用关闭门锁电路(复位)以防烧毁。
场景B(无人值守):系统判断当前时间在预约时段内,且用户点击了“开始”,直接开启所有电器(此时门锁默认开启或常开)。
阶段四:使用中与超时管理
续费:用户点击续费,业务系统更新数据库中的“断电时间戳”。如果不续费:
即将结束提醒:剩余5分钟时,如果是TTS版本控制器,可通过语音播报接口提醒用户。
强制断电:预约结束时间到达 + 宽限时间(如3分钟)后,系统调用API发送全关命令。
order:{"batch": {"power":0}}
4. 业务逻辑与代码实现片段
以下是实现该联动方案的核心伪代码逻辑(以Node.js/Python思维为例):
1. 封装通用控制函数
2. 定时任务与事件监听
数据库设计:需在订单表中增加
device_id和relay_map字段,用于存储该包间对应的设备ID和线路配置。定时任务:使用Redis过期回调或Linux Crontab(每分钟扫描一次),扫描条件是:
订单状态 = 已支付开始时间 <= 当前时间实际通电状态 = 0执行
start_booking_session。
5. 关键注意事项
空调与特殊电器的保护
空调(第8路)不要直接断电,使用红外转发器配合控制器逻辑更佳;如无红外,请使用
point(先通后断)指令模拟复位。麻将机(第4路)在断电前,短信提醒用户保存进度。
门禁安全逻辑
常开 vs 常闭:电磁锁通常为断电开/通电开,请根据锁体类型接线。配置为“持续供电”(线路7一直通)直到用户点击“结束”。
应急方案:必须保留物理钥匙或后台超级管理员手动开锁功能,以防网络故障导致用户被困。
网络稳定性
控制器依赖2.4G Wi-Fi。若包间内信号较差,采用有线网络或每个包间独立AP。
API接口支持局域网调用,如果业务服务器部署在同一局域网(如门店本地服务器),响应速度可低至80ms,极其稳定。
状态同步
除了控制,调用“状态查询”接口轮询设备真实状态,或在控制台配置“消息推送”,让设备主动上报开关状态,确保App显示的“通电/断电”状态与物理实际一致。
6. 实施步骤总结
硬件安装:让电工将包间电路分路接入8路控制器,强电箱内安装。
网络配置:通过小程序将设备添加到物联网控制台,抄录Device ID。
接口联调:在Postman或代码中测试开关API,确保能控制通断。
业务集成:编写上述的定时任务脚本,对接现有预约数据库。
测试:模拟用户下单->等待到点->进门通电->超时断电全流程。