跳到主要内容

为什么无法获取指定参数的时间序列数值?

如果正在发布时间序列数据,但查询没有返回结果,请检查以下事项:

  1. 创建参数时使用了 PROP_FLAG_SIMPLE_TIME_SERIES — 确认创建参数时已使用 PROP_FLAG_SIMPLE_TIME_SERIES 初始化。没有该标志时,参数不会被当作时间序列参数,数据也不会被存储以供历史查询。

  2. 查询时的参数名称格式 — 通过 API 获取时间序列数据时,请使用完整参数名称,格式为 <DeviceName>.<ParamName>。例如使用 Sensor.Temperature,而不是仅使用 Temperature。设备和参数名称必须与节点配置完全一致。

  3. 已启用时间服务 — 确认固件中已启用时间服务。只有设备已通过 SNTP 获取网络时间后,才会上报时间序列数值。没有有效时间戳时,数据可能无法正确存储或返回。

  4. API 中的时间窗口 — 确保查询中传入了正确的时间窗口(起止时间戳)。数据仅在指定范围内返回;如果窗口错误或位于未来,结果将为空。

  5. SNTP 同步 — 时间序列数据依赖网络时间。如果设备尚未与 SNTP 同步(例如刚启动后或没有互联网),上报的值可能缺少有效时间戳。请等待时间同步完成后再期望查询中出现数据。