CATALOG

芯步的包间控制器提供了完整的HTTP接口,可用于控制和状态查询。实现运行时长统计的核心思路是:监听设备的状态变化事件,累计每次设备开启到关闭的时间间隔。以下方案涵盖云API调用、本地私有化部署两种对接方式,以及时长统计的完整实现逻辑。

解决方案:基于芯步HTTP接口的包间设备运行时长统计系统

1. 项目概述

在共享棋牌室、茶室、自习室等场景中,需要对包间内的空调、麻将机、照明等设备的真实运行时长进行统计。这不仅用于电费核算,还用于计费依据(如分时租赁)和设备维护预测

本方案基于芯步智能包间控制器(型号:UNI-KZQ-BJ)的开放HTTP接口,设计一套高精度的设备运行时长统计系统。该系统通过监听设备状态变化并结合本地或云端时序数据库,实现对每一路电器的独立时长统计。

2. 核心技术原理

芯步的包间控制器提供7路独立输出(包含30A空调接口、10A照明/插座接口及门禁接口),所有线路均支持通过HTTP协议进行远程控制与状态查询

统计逻辑如下:

  • 事件触发机制:系统不采用轮询(Polling)方式加重网络负担,而是通过捕获设备状态变化事件来记录时间点。

  • 计算公式本次运行时长 = 设备关闭时间戳 —— 设备开启时间戳

  • 数据存储:开启时写入“开始记录”,关闭时计算差值并写入“历史流水表”。

3. 接口对接方案设计

芯步支持两种对接模式,为实现稳定的时长统计,结合使用:

  • 方案 A:云端API对接(SaaS模式):适用于需要跨区域集中管理多个门店。通过调用芯步开放平台API下发指令及接收回调事件。

  • 方案 B:本地私有化对接(局域网模式)本方案的核心推荐。由于时长统计需要比较高的实时性和网络稳定性,利用控制器的本地HTTP API接口进行控制,可避免因外网抖动导致的统计误差。

本地HTTP调用示例:控制器在网络内被分配IP(如 192.168.1.100),可直接发送POST请求。

注:若开启了密码验证,需携带 sign=md5(密码) 参数

4. 时长统计的具体实现步骤

为了落地“包间设备运行时长统计”,开发人员需按以下步骤进行系统集成:

第一步:设备的发现与注册

系统需维护一个设备映射表。管理员在后台添加包间时,录入以下信息:

  • device_id:芯步平台设备ID或MAC地址。

  • device_ip局域网IP(对于私有化部署至关重要)。

  • relay_line:映射关系(例如:线路1对应空调,线路2对应麻将机)。

第二步:状态变更的捕获(关键环节)

时长统计的精度取决于状态捕获的及时性。芯步接口返回具有即时性,实现以下两种捕获机制:

机制1:指令下发即记录当业务系统(小程序/收银台)下发开机指令并收到设备返回的 code: 200 时,立即在Redis中存储一条记录:Key: device_{id}_line_{1}_start_time -> Value: 当前时间戳

机制2:设备状态轮询补偿为防止因网络丢包导致状态不同步,系统可设置一个定时任务(如每5分钟),调用查询设备状态接口获取继电器当前状态。如果发现Redis中有未配对的开启记录但设备实际已关闭,立即触发关闭计时逻辑。

第三步:核心算法逻辑

以用户扫码开启包间(启动麻将机和空调)为例,系统处理流程如下:

  1. 用户下单/通电

    • 系统请求:{"power2":"1", "power3":"1"} (开启线路2和线路3)。

    • 系统动作:在数据库 device_running_log 表创建记录,写入 start_time = NOW()status = 'running'

  2. 实时监控

    • 利用控制器自带的【先断后通】或定时任务功能,或由中控系统心跳检测

    • 若检测到电流/功率异常(如设备故障),系统可自动断电并记录异常结束时间。

  3. 用户结账/断电

    • 系统请求:{"power2":"0", "power3":"0"}

    • 系统动作:查找该设备未结束的记录,更新 end_time = NOW()

    • 计算差值:duration_minutes = (end_time - start_time) / 60

第四步:数据聚合与报表

时长统计的最终价值在于报表。系统应将原始的时间点数据聚合为可视化数据。

  • 维度设计:按 包间设备类型(麻将机/空调)、日期 进行Group By。

  • 计费对接:将统计出的时长(精确到分钟)对接到计费模块。

    • 高阶应用:空调和大功率设备可设定阶梯计费,根据运行时长计算电费附加费。

5. 关键难题解决方案

难题1:设备离线导致的时长黑洞

  • 现象:包间WiFi断开,控制器离线,但仍可通过物理开关或遥控器开启设备,导致系统漏记。

  • 解决方案:利用芯步控制器的本地联动逻辑。配置规则:当门磁检测到门锁开启且PIR(人体红外)感应有人时,自动触发指定线路通电。这些动作虽无云端回调,但可通过本地服务器内网穿透设备主动上报状态机制,定时同步状态补偿时长记录。

难题2:多路电器混合统计

  • 需求:包间内空调、照明、麻将机需分开统计时长(如照明常开,空调后开)。

  • 解决:利用控制器的7路独立线路。在统计系统中,为每一路建立独立的时间线。使用 Map 数据结构进行内存缓存。

难题3:语音播报与时长提醒

  • 需求:时长即将结束前提醒用户。

  • 解决:在预结束时间点(如提前5分钟),调用控制器的TTS语音播报接口

  • 命令示例

注意:芯步设备对中文支持需转码

6. 系统架构总结

一个完整的“统计-控制-计费”闭环架构如下:

  1. 感知层:芯步智能包间控制器(采集通断状态,执行控制指令)。

  2. 传输层:WiFi 2.4G 局域网直连(无网关,降低延迟)

  3. 业务逻辑层

    • 控制模块:调用 /control 接口。

    • 计时模块:维护Redis缓存,计算时间差。

    • 补偿模块:定时拉取设备全量状态,进行数据校准。

  4. 应用层:面向管理者的“包间能耗看板”和面向客户的“使用时长明细”。

7. 结语

通过对接芯步的HTTP接口包间控制器,开发者无需改造强电线路,仅通过接口调用+本地时间戳缓存逻辑即可实现高精度的设备运行时长统计。这一方案不仅适用于简单的时长汇总,更是实现共享棋牌室自动化计费、能耗监测和精细化运营的基础。