CATALOG

壁挂人体存在探测器是空间 occupancy 监测的关键设备,但默认仅在状态变化时上报(有人⇄无人),无法满足定时巡检或无人超时判定的需求。本文将利用芯步的开放接口,通过“状态变化实时上报 + HTTP接口定时轮询”两步方案来解决这一问题。

1. 概述与业务挑战

在智能办公、节能控制、养老看护等场景中,仅靠设备默认的“状态变化才上报”机制,往往无法满足系统对数据实时性的全面要求。例如,管理者可能需要每5分钟确认一次区域内是否有人,或者需要定时记录设备状态以生成报表,甚至在设备因网络波动漏报时进行数据补录。

针对芯步 “智能人体存在雷达传感器2[壁挂]” 及同系列产品,本方案的目标是指导开发者如何通过其开放的 HTTP接口,在不改变设备固件的前提下,利用云端 API 轮询机制,实现高频、可靠的定时状态上报。

2. 核心技术原理

芯步的智能传感器产品开放了全链路的 HTTP 接口。实现定时上报的核心逻辑是 “变上报”+“定轮询” 的双重保障:

  1. 实时推送机制:当传感器探测到有人/无人状态发生变化,或心跳上报时,设备会主动将消息推送到开发者指定的服务器。这是获取数据的基线。

  2. 主动查询机制:针对定时上报需求,业务服务器通过调用芯步的设备状态查询接口(或接收设备上行消息的缓存机制),主动获取设备当前的最新状态并记录。

本方案侧重于第 2 点——利用服务器定时任务,主动建立状态快照。

3. 准备工作与环境配置

在开始编码前,请确保完成以下基础配置:

  1. 硬件就绪:确保“壁挂人体存在探测器”已通电并联网(支持 2.4G Wi-Fi)。

  2. 平台注册:登录[芯步开放平台](),获取专属的AppIDAppKey(或 AccessToken)。

  3. 获取设备 ID:在控制台设备列表中,记录目标设备的 Device ID(如 820720)。

  4. 消息推送配置

    • 虽然本方案主要靠“拉取”,但在控制台配置 HTTP 消息推送 URL,以便接收实时变化数据作为对比。

    • 设置路径:控制台 -> 应用开发 -> 消息推送 -> 填写您的服务器接收地址。

4. 接口调用详解:如何获取状态

要实现定时上报,核心是解决“如何随时问设备现在的状态”。

芯步设备支持标准的 HTTP 接口控制与查询。由于传感器类设备通常“只上报不存储下发指令”,我们需要通过平台云端接口获取设备的最新影子数据。

4.1 签名机制

所有 OpenAPI 请求需携带签名。

  • 请求地址http(s)://api.thingboot.com/{AppId}/device/control/?sign={sign}&ts={ts}

  • 参数说明

    • AppId:路径参数。

    • ts:Unix 时间戳,毫秒级。

    • sign:签名,通常为 MD5(AppKey + ts) 或其他协商算法(具体以官方最新文档为准)

4.2 获取设备当前状态(定时任务核心)

虽然传感器主要是上行设备,但在芯步体系中,你可以通过查询接口(或利用平台缓存的最新数据点)来获取状态。实际操作中,使用芯步提供的 /device/status/ 类接口(若存在),或者利用设备上报到平台的最新数据缓存机制。

请求示例(模拟获取状态):由于“壁挂人体存在雷达传感器”支持 radar_enable 等命令,虽然没有直接的“查询”动词,但在 HTTP 模式下,通过向设备下发一个空操作或读取影子数据可以获取当前值。

更稳健的做法是:利用平台消息推送的“最近数据缓存”定时任务不需要每次去物理唤醒设备,而是调用平台接口查询该设备最后一次上报的状态。

假设接口为获取设备最新状态:

4.3 定时任务逻辑设计

在你的业务服务器(Server)上设置一个定时器(Cron Job / Timer),每隔 N 秒(如 300秒/5分钟)执行一次以下逻辑:

  1. 调用接口:请求芯步 API 获取指定设备的当前状态。

  2. 数据解析:提取 presence 字段(有人/无人)及相关时间戳。

  3. 业务处理

    • 将数据存入数据库,形成时间序列报表。

    • 判断是否超时(如连续 N 次定时查询结果均为“无人”,则触发关闭空调指令)。

  4. 状态存储:记录本次查询结果,用于下一次逻辑判断。

5. 数据结构定义

在开发过程中,请参考以下物模型属性定义来解析设备返回的数据:

功能模块字段标识符数据类型值含义说明
雷达开关radar_enableBool / Int1:开启;0:关闭控制传感器是否工作
人体存在状态radar_targetpresenceInt1: 有人0: 无人定时上报的核心字段
探测距离/参数radar_sensitivityInt0-100灵敏度配置
心跳/在线onlineBooltrue/false设备网络连接状态

接收示例 (JSON):当定时任务调用成功时,返回的数据结构大致如下(参考同类型红外传感器结构):

注:如果设备状态未变化,主动查询可能返回上一次的缓存值,这对定时记录来说通常是可接受的

6. 应用场景示例:办公区节能定时巡检

假设某公司需要每 10 分钟检测一次会议室是否闲置,如果闲置超过 30 分钟则通过 API 关灯/关空调。

实施方案步骤如下:

  1. 安装设备:在会议室天花板/墙壁安装壁挂探测器(型号 UNI-CGQ-RT-BG-HL)

  2. 设定定时任务

    • Cron: */10 * * * * (每10分钟执行一次)。

    • 任务内容:调用芯步 API,获取设备最新状态。

  3. 逻辑判断

    • T0 时刻 (08:00):查询状态 = “有人”,数据库记录 Occupied=1,跳过节能操作。

    • T1 时刻 (08:10):查询状态 = “无人”,数据库记录 Occupied=0,计数器+1。

    • T2 时刻 (08:20):查询状态 = “无人”,计数器+1。

    • T3 时刻 (08:30):查询状态 = “无人”,计数器=3(达到30分钟阈值)。

    • 触发动作:业务服务器向照明/插座接口发送关闭指令。

  4. 异常处理

    • 若 API 调用超时或设备离线,定时任务应记录日志并跳过本次轮询,等待下次重试,避免因网络抖动误判为“无人”。

7. 注意事项与最佳实践

  1. 接口限流

    • 芯步开放接口通常有调用频率限制(QPS)。请勿设置过高的定时频率(最小间隔 10秒以上)。普通场景下 1-5分钟 一次是比较健康的选择。

  2. 雷达 vs 红外

    • 壁挂人体存在探测器包含雷达(毫米波)元件,可以探测微动(如呼吸、心跳),比传统红外更灵敏。但在定时上报逻辑中,两者处理方式一致,参考 radar_target 字段即可。

  3. 局域网与私有化

    • 芯步支持私有化部署。如果你的服务器和设备在同一局域网内,且平台支持本地部署,使用内网 IP 调用 API,显著降低延迟

  4. 数据去重

    • 由于你同时开启了“实时推送”和“定时轮询”,数据库设计时需注意去重。给每条数据建立唯一 Key(设备ID+时间戳+状态值),防止重复数据写入。

  5. 硬件版本确认

    • 请确保购买的硬件产品名称为“智能人体存在雷达传感器2[壁挂]”,该产品明确支持 HTTP接口数据上报 和控制

8. 总结

通过芯步提供的标准化 HTTP 接口,开发者可以轻松绕过设备上报频率的限制,利用服务端定时轮询实现“定时状态上报”功能。这种方案不仅增强了对设备状态的稽核能力,也为实现复杂的联动逻辑(如无人超时判定)提供了可靠的数据支撑。

具体实施时,请参考控制台最新的 《API 参考文档》 获取准确的签名算法和接口地址。