edit

数据存储统计

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

产品参数

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

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

1.简单聚合统计

如果您想统计产品参数并画图渲染出其曲线和趋势,那么您可以调用:

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=1111&endTime=1111&dataTag=pm25,aqi"

注意这里需要指定 startTime参数,另外该接口提供了3个简易的包装接口,您也可以直接调用以下接口:

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

该接口返回以当前时间节点开始近一天内的产品参数简单聚合统计数据,注意该接口并不需要指定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"

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

该接口返回以当前时间节点开始近一周内的产品参数简单聚合统计数据,注意该接口并不需要指定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"

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

该接口返回以当前时间节点开始近一月内(注意这里默认是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
    }
]

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

用户参数

所谓用户参数,即为用户在使用设备的时候与具体用户相关的有值意义的属性,例如用户一天内使用饮水机的喝水量、用户近一个月呢更换饮水机滤芯的次数等。 它们都能记录和表征某个用户在某段时间内使用设备的状态等,所以当您定义设备的用户参数添加并配置好后,您可以通过调用REST API中上报用户参数的API上报 存储用户参数记录,随后您就可以利用这些积累的数据进行统计计算和挖据,从而更好地为您的应用服务。

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

1.上报用户参数记录

您可以通过调用 REST API中上报用户参数记录的API 上报用户参数,这里用户参数按照设备相关性可分为:

  • 与设备相关
  • 与设备不相关

其中与设备相关的用户参数为用户在具体某一类的设备上的参数,例如用户在某公司某型号的饮水机上近一周的饮水量总数;与设备不相关的用户参数即为该参数 只与用户相关,例如用户近一周的饮水量总数。

上报用户参数记录 - 参数和设备有关

您可以调用 4.5.13 上报用户参数记录 - 参数和设备有关 来上报与设备相关的用户参数:

比如用户在某投食机里添加了100克猫粮。

curl -v -X POST \
    -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/customUserDeviceData?devTid=xxxx" \
    -d '{
        "catFood" : 100,
        ...
    }'

若调用成功,则 Hekr Cloud 返回 :

< 201
< 上传的数据原样返回

上报用户参数记录 - 参数和设备无关

您可以调用 4.5.12 上报用户参数记录 - 参数和设备无关 来上报与设备无关的用户参数:

比如用户的积分是1400。

curl -v -X POST \
    -H "Authorization: Bearer {JWT_TOKEN}" \
    -H "Accept: application/json" \
    -H "Content-Type: application/json" \
    "https://user-openapi.hekr.me/user/customUserData?pid=xxxx" \
    -d '{
        "score" : 1400,
        ...
    }'

2.查询

您可以通过调用 4.5.14 查询用户参数记录 来查询上传的用户参数记录。不管参数和设备是否相关,该接口均可用来查询该参数的记录:

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/customData?devTid=123&startTime=111&endTime=111&page=1&size=1"

若调用成功, 则 Hekr Cloud 返回:

< 200
< [
    {
        "uid": "138xxxxxxxx",
        "devTid": "123",
        "time": 1460031251985,
        "pid": "01xxxxxxxxx",
        "mid": null,
        "month": 3,
        "hours": 12,
        "second": 11,
        "year": 2016,
        "data": {
            "drink": 111,
            "hobbit": "hike",
            "skin": "yellow",
            "pm25": 100
        },
        "day": 7,
        "minute": 14
    },
    {
        "uid": "138xxxxxxxx",
        "devTid": "123",
        "time": 1460385079529,
        "pid": "01xxxxxxxxx",
        "mid": null,
        "month": 3,
        "hours": 14,
        "second": 19,
        "year": 2016,
        "data": {
            "light": 99,
            "hobbit": "hike",
            "skin": "yellow",
            "pm25": 100
        },
        "day": 11,
        "minute": 31
    }
]

3.简单聚合统计

如果您想统计产品参数并画图渲染出其曲线和趋势,那么您可以调用 4.5.15 用户参数简单聚合统计

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/userStatistics?startTime=1111&endTime=1111&dataTag=drink,light"

若调用成功, 则 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
    }
]

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