edit

数据存储统计

Hekr Cloud 提供简单的 REST API 来进行简单的数据统计,您可以利用这些API进行简单数据分析。

提醒

不同维度的数据有不同的保留时长。 每5分钟统计数据保留 7天 每小时统计数据保留 15天 每天的统计数据保留 90 天 每月的统计一直保留

产品参数

所谓产品参数,即为与某个特定设备相关的有值意义的属性,例如空气净化器当前获取到的空气中PM2.5的数值、智能空调获取当前的室温、智能洗衣机当前的水位线等等。它们都能记录和表征某个设备在某段时间内的工作状态等,所以当您定义设备的协议模板时候并正式发布后,您的设备在工作连接Hekr Cloud的时候,变会自动依据 Hekr 连接管理协议 将这些参数上报到Hekr Cloud上,这样您就可以利用这些积累的数据进行统计计算和挖据,从而更好地为您的应用服务。

在氦氪云控制台->产品管理->参数信息->产品参数信息页面里能看到当前已添加的产品参数。

设备聚合统计

根据ctrlKey和时间戳查询

curl -v -X GET \
    -H "Authorization: Bearer {JWT_TOKEN}" \
    -H "Accept: application/json" \
    -H "Content-Type: application/json" \
    "https://user-openapi.hekr.me/device/statistics?ctrlKey=1234&startTime=xxxx&endTime=xxx&dataTag=pm25,aqi,timeUnit=DAY"

timeUnit取值范围为:

  • MINUTE_5 每5分钟的数据
  • HOUR 每小时的数据
  • DAY 每天的数据
  • MONTH 每月的数据
返回结果
< 200
< [
    {
        "cnt": 20.0,                                    // count
        "avg": 567.35,                                  // average
        "cid": "5102af881daf",
        "max": 989.0,
        "sum": 11347.0,
        "min": 57.0,
        "pid": "01662606768",
        "mid": "0178fba35c8a",
        "devTid": "local-2016-06-02T13-45-47",
        "tag": "pm",
        "startTime": 1464848700000,
        "endTime": 1464849000000
    },
    {
        "cnt": 30.0,
        "avg": 471.03333333333336,
        "cid": "5102af881daf",
        "max": 996.0,
        "sum": 14131.0,
        "min": 1.0,
        "pid": "01662606768",
        "mid": "0178fba35c8a",
        "devTid": "local-2016-06-02T13-45-47",
        "tag": "pm",
        "startTime": 1464849000000,
        "endTime": 1464849300000
    }
]

该接口只能查询登录用户所绑定的设备的数据,如果设备不存在,返回http status 404 。如果需要要不限制登录人,只要能拿到设备信息就可以查看其数据,则请使用下面的接口。

根据devTid、ppk和时间查询

curl -v -X GET \
    -H "Authorization: Bearer {JWT_TOKEN}" \
    -H "X-Hekr-ProdPubKey: {PPK}" \
    -H "Accept: application/json" \
    -H "Content-Type: application/json" \
    "https://user-openapi.hekr.me/user/deviceStatistics?devTid=1234&startTime=2016-07-31T01:30:00.000+08:00&endTime=2016-08-31T01:30:00.000+08:00&dataTag=pm25,aqi,timeUnit=DAY"

注意这里需要指定 startTime参数。 startTimeendTime 是 ISO 格式: yyyy-MM-dd'T'HH:mm:ss.SSSZ, 如 "2000-10-31T01:30:00.000+08:00".

X-Hekr-ProdPubKeyPPK

另外该接口提供了3个简易的包装接口,您也可以直接调用以下接口:

近一天时间内产品参数简单聚合统计

该接口返回以当前时间节点开始近一天内的产品参数简单聚合统计数据,注意该接口并不需要指定startTime参数

curl -v -X GET \
    -H "Authorization: Bearer {JWT_TOKEN}" \
    -H "X-Hekr-ProdPubKey: {PPK}" \
    -H "Accept: application/json" \
    -H "Content-Type: application/json" \
    "https://user-openapi.hekr.me/user/deviceStatistics/daily?devTid=1234&dataTag=pm25,aqi"

近一周时间内产品参数简单聚合统计

该接口返回以当前时间节点开始近一周内的产品参数简单聚合统计数据,注意该接口并不需要指定startTime参数

curl -v -X GET \
    -H "Authorization: Bearer {JWT_TOKEN}" \
    -H "X-Hekr-ProdPubKey: {PPK}" \
    -H "Accept: application/json" \
    -H "Content-Type: application/json" \
    "https://user-openapi.hekr.me/user/deviceStatistics/weekly?devTid=1234&dataTag=pm25,aqi"

近一月时间内产品参数简单聚合统计

该接口返回以当前时间节点开始近一月内(注意这里默认是30天)的产品参数简单聚合统计数据,注意该接口并不需要指定startTime参数

curl -v -X GET \
    -H "Authorization: Bearer {JWT_TOKEN}" \
    -H "X-Hekr-ProdPubKey: {PPK}" \
    -H "Accept: application/json" \
    -H "Content-Type: application/json" \
    "https://user-openapi.hekr.me/user/deviceStatistics/monthly?devTid=1234&dataTag=pm25,aqi"

若调用成功,则 Hekr Cloud 会返回如下结果,该结果即为指定范围内指定的产品参数的点集合,各个点直接的时间差值是 固定 的,因而您可以 根据点集配合您的三方控件进行画图展示:

< 200
< [
    {
        "cnt": 20.0,                                    // count
        "avg": 567.35,                                  // average
        "cid": "5102af881daf",
        "max": 989.0,
        "sum": 11347.0,
        "min": 57.0,
        "pid": "01662606768",
        "mid": "0178fba35c8a",
        "devTid": "local-2016-06-02T13-45-47",
        "tag": "pm",
        "startTime": 1464848700000,
        "endTime": 1464849000000
    },
    {
        "cnt": 30.0,
        "avg": 471.03333333333336,
        "cid": "5102af881daf",
        "max": 996.0,
        "sum": 14131.0,
        "min": 1.0,
        "pid": "01662606768",
        "mid": "0178fba35c8a",
        "devTid": "local-2016-06-02T13-45-47",
        "tag": "pm",
        "startTime": 1464849000000,
        "endTime": 1464849300000
    }
]

以下图即为一个渲染的例子:

statistics