CATALOG

这是一个针对芯步8路控制器(特别是Max版,适合包间场景)的二次开发解决方案。

我将尽量写得通俗一点,把技术细节讲清楚,但不会直接贴大段的完整代码附件。

一、 咱们得先聊聊痛点:为啥需要“远程重置”?

开棋牌室、茶室、剧本杀或者足浴店的朋友可能都有这种体验:客人走了,服务员得赶紧进包间,把空调关了、灯关了、麻将机复位。

但总有意外情况——客人刚走,下一位客人已经到了,服务员还在路上跑;或者半夜包间,服务员下班了,远程没法断电,设备开一整晚不仅耗电,还危险。

咱们今天要解决的问题就是:如何在不去包间的情况下,通过后台系统一键把包间里所有设备的状态恢复到初始状态(也就是全关,或者特定的待机状态)。

二、 主角登场:芯步8路控制器(Max版)

咱们这次改造的硬件是芯步的“智能包间控制器|Max”

为啥是它?因为它就是为包间设计的:

  • 8路独立控制:这8路可以接什么?

    • 第1-3路(10A):照明、换气扇、吸烟灯。

    • 第4-6路(16A):麻将机、饮水机、按摩椅。

    • 第7路(10A):门禁锁。

    • 第8路(30A):2匹空调挂机/柜机。

  • 接口开放:它提供了完整的HTTP API接口,咱们二次开发就是通过这些接口来发号施令。

三、 核心思路:我们怎么实现“远程重置”?

所谓的“重置包间设备状态”,本质上就是向控制器下发一系列“断开”指令

但我们不能只发一条“全关”指令那么简单,因为像空调这样的设备,直接粗暴断电容易损坏压缩机;而门禁锁可能需要短暂的通电开锁。

所以,我们的二次开发策略分为三步:

  1. 状态查询:先看看现在包间里哪些设备是开着的。

  2. 智能执行

    • 普通电器(灯、麻将机):直接发“断电”。

    • 空调:如果是中央空调或普通空调,最好是发“关机”红外指令(如果接了红外模块);如果没有,则直接断第8路电源,但要有保护机制。

    • 门禁:如果需要远程清场开锁,执行“点动”(通电2秒后断电)。

  3. 日志记录:记录谁在什么时间重置了哪个包间。

四、 动手干:具体的开发实战

这里我不写完整的代码文件,只讲核心逻辑和参数怎么写,你可以直接用Java、PHP、Node.js或者最基础的HTTP请求来实现。

第一步:拿到你的“钥匙”(API凭证)

在芯步开放平台的后台,你需要拿到三个东西:

  • AppID:你的应用ID。

  • AppSecret:你的应用密钥(用来加密签名,防止别人乱调你的接口)。

  • 设备ID (device):贴在控制器上的那一串数字,或者从后台设备列表里复制出来。

第二步:核心命令——如何构造“重置”指令

我们调用控制接口: https://api.thingboot.com/{AppID}/device/control/

这里最关键的就是 order 这个参数,它告诉控制器要做什么。

场景A:最简单粗暴的“全关”如果客人走了,下一位客人还没来,直接全部断电。

  • 命令{"power":"0"}

  • 解释:所有8路全部断开。

场景B:优雅的“一键重置”假设你不仅要全关,还要把门锁打开(让保洁进去),同时让空调换气扇再转5分钟(散烟味)。这就涉及到批量控制定时

  • 目标:关闭第1-6路(照明、麻将机),保持第8路(空调)不断电(如果是中央水空调),让第7路(门锁)点动一下。

  • 命令组合

  • 参数解析

    • batch:批量操作,把1-6路关掉

    • reset:即“先断后通”(复位)。对于第7路,先断电,等2000毫秒(2秒)后再通电。这很适合控制门禁(模拟按了一下开门键)

场景C:只重启某一台设备(比如麻将机死机了)有时候客人喊你,说麻将机卡牌了,需要断电重启。这时候你不需要全屋断电,只需在后台点一下“重启麻将机”。

  • 命令

  • 解释:第4路(接麻将机)断电,等待5秒(让麻将机电放完),再重新接通电源。这就实现了硬重启。

第三步:校验与反馈(这一步很关键)

你发了个命令,怎么知道真的关了?芯步有两种方式告诉你结果

  1. 同步返回:调用接口时,返回{"code":200},只代表指令平台