这篇方案将围绕芯步8路控制器的开放接口,阐述如何将多个分散的“关灯、关空调、开排风、设定门牌”等动作打包成一个“一键切换”的清洁模式。核心思路是定义标准化的场景模板,并利用HTTP接口完成设备状态的同步切换。
解决方案:基于芯步开放接口实现包间清洁模式一键切换
一、 背景与需求
在KTV、棋牌室、包间餐厅等场景中,清洁人员在打扫包间时,通常需要进行一系列繁琐的操作:关闭灯光效果、关闭空调、打开排风扇、将门口显示屏切换为“打扫中”/“已清洁”状态。
传统的操作方式需要逐个点击或遥控,效率低下且容易遗漏。芯步的“8路智能包间控制器”(UNI-KZQ-BJ)提供了通用的IO接口,通过对其开放接口的二次开发,可以将上述复杂流程整合为一个逻辑开关,实现物理按键一键切换或手机端一键打扫。
二、 技术原理与架构
本次二次开发的核心在于利用芯步开放的 HTTP API 接口,将业务逻辑(清洁模式)映射为设备指令(通断信号)。
硬件层:8路智能包间控制器。每个继电器相当于一个“虚拟手指”,负责接通或断开对应设备的电源,或者向门显发送短路信号。
接口层:芯步开放平台。提供
向设备下发指令接口,接收第三方软件的指令。业务层:自有的PMS(包间管理系统)或小程序后台。负责逻辑判断——当前点击是“营业模式”还是“清洁模式”。
工作流程
触发:保洁员点击手机APP上的“打扫完成”按钮,或按下包间内的物理清洁开关。
调用:后台服务器调用芯步API,向指定的8路控制器发送特定的
order指令。执行:控制器接收到指令,通过继电器的不同通断组合(例如:第1路断、第2路断、第3路通...),完成灯光、空调、排风、门显的切换。
三、 二次开发核心步骤
1. 硬件接线与规划(定义8路逻辑)
首先,需要对8路控制器的每一路进行物理定义,这是软件编程的逻辑基础。规划如下:
| 线路编号 | 连接设备 | 清洁模式目标状态 | 营业模式目标状态 |
|---|---|---|---|
| 第1路 | 主照明(射灯/水晶灯) | 断开(关) | 闭合(开) |
| 第2路 | 氛围灯带 | 断开(关) | 闭合(开,若是常亮) |
| 第3路 | 排气扇 | 闭合(开) | 断开(关) |
| 第4路 | 空调内机电源 | 断开(强制关) | 闭合(允许开启) |
| 第5路 | 门头显示屏电源 | 闭合(通电) | 断开 |
| 第6路 | 服务灯(清理/呼叫) | 闭合(请即清理) | 断开 |
| 第7路 | 备用/香薰机 | 闭合 | 断开 |
| 第8路 | 备用/新风机 | 闭合 | 断开 |
注:对于门头显示屏,若需要通过协议显示不同文字,需对接串口服务器;若仅需清空或点亮屏幕,直接控制电源即可。
2. 接口对接与环境配置
芯步接口支持HTTP请求,兼容任何主流后端语言(Java, Python, PHP, Node.js等)。
接口地址
https://api.thingboot.com/{AppID}/device/control/认证方式:签名机制(Sign),用于确保请求安全,防止非法控制。
需要从控制台获取
AppID和AppSecret。签名算法
Sign = md5(md5(AppSecret) + ts)(具体请参照官方最新的签名文档)。
3. 编写清洁模式切换逻辑
在实际代码中,我们不需要每次都去写“关灯、关空调、开排风”这一长串指令,而是通过调用API一次性下发order对象即可。
由于芯步支持在一次请求中直接面向单个设备下发多个参数(即多路控制),这是实现“一键切换”的关键 。我们只需要定义两个核心函数:
函数 A:进入清洁模式
目的:设备状态复位,准备打扫。
指令集
power1=0(关主灯)power2=0(关氛围灯)power4=0(关空调)power3=1(开排风)power5=1(开门显电源,显示“清洁中”或“空房”)
API 请求示例 (JSON)
函数 B:退出清洁模式 / 进入迎宾模式
目的:客人入座,恢复供电。
指令集
power1=1(开主灯)power2=1(开氛围灯)power3=0(关排风,减少噪音)power4=1(空调通电,允许遥控开启)power5=0(关屏幕电源或切换画面)
API 请求示例 (JSON)
4. 前端集成(UI界面设计)
在包间管理系统或服务员手持PDA上,增加一个显眼的滑动开关或按钮组
状态 A(红色/灰色)清洁模式 / 打扫中
说明:点击后设备进入打扫状态,灯光全灭,排风开启,门头显示“打扫”。
状态 B(绿色/高亮)营业模式 / 使用中
说明:点击后设备恢复供电,灯光全亮或待机,关闭排风,门头显示“欢迎光临”。
高级脚本示例对于需要延时操作的场景(例如点按一下控制器,让排风扇运行30分钟后自动关闭),可以不在控制器端实现(硬件不一定支持定时),而是在云端API调用逻辑中实现:调用清洁模式后,服务器记录时间,30分钟后自动调用一次API,将 power3 设为 0。
四、 典型场景流程图
客人离店
前台在系统点击“清台/打扫”。
系统自动执行:调用API → 8路控制器执行关闭空调、关闭所有灯光。
保洁员进入:此时包间只有微弱的地脚灯或排风声音(安全且节能)。
打扫完成
保洁员使用手机或包间内的物理按键(第6路外接)触发“清洁完成”。
系统自动执行:门头灯显示“已清洁,空闲”。
新客人入座
前台开台,点击“开台/迎宾”。
系统自动执行:调用API → 8路控制器执行打开空调、打开装饰灯、门头显示切换为“正在欢唱/用餐”。
五、 注意事项与最佳实践
区分“物联卡”与“直连”芯步的控制器通常走 WiFi 2.4G 直连网络。请一定要确保包间内的WiFi信号覆盖良好,否则会出现指令下发成功但设备未响应的异步错误。为每个控制器静态分配IP或在路由器中固定IP。
状态同步机制API接口返回
code: 200仅代表指令下达成功,不代表继电器实际吸合。解决方案:如果需要严格的状态反馈,在控制器旁边并联一个传感器,或者使用芯步的消息推送功能(订阅设备上下线或属性上报),以确认设备确实执行了切换。
接口调用机制在编写切换逻辑时,采用“直接赋值”的方式(如
power1=0)而不是“切换翻转”的方式(如toggle)。因为如果网络抖动导致重复请求,直接赋值0依然是0,不会错误地打开灯光。安全隔离8路控制器控制的是强电(220V),二次开发调试时,请请一定要注意用电安全,严禁在潮湿环境下带电操作。将控制器安装在弱电井或独立配电箱中,包间内仅留弱电控制面板。
通过以上方案,利用芯步标准的HTTP接口进行简单的逻辑封装,即可快速完成“包间清洁模式”的一键切换改造,显著提升翻台效率和能源管理效率。