Skip to content

企业 API

企业接口服务地址为 http(s)://console-openapi.hekr.me

错误返回方式说明

调用接口成功返回20X,如有返回内容会在body中给出,没有返回内容body将为空,仅有HTTP头。 调用接口失败返回40X或500,错误信息会在body中给出,如果返回的HTTP Code是401,请检查Authorization是否正确。 如果接口需要使用参数PPK,并且PPK不合法,将返回错误码:6400015。 如果请求参数不合法或者错误,将返回错误码:8400002。

厂家获取所有(包括授权)产品信息

这个接口是企业调用,获取其自身(包括授权)产品的信息,注意跟 根据用户信息获取所有包括授权产品信息接口的区别。

Request

curl --request GET \
  --url https://console-openapi.hekr.me/api/v1/enterprise/product \
  -H "Authorization: key={serverKey}" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json"

Response

[
    {
        "category": { // 所在品类信息(小类)
            "id": "KUr1cijapr2cv844",
            "name": {
                "en_US": "ef",
                "zh_CN": "触摸开关"
            },
            "logo": "https://stage-allinone-ufile.hekr.me/category/d6c96fc8-1b7a-4d96-ae11-84cd9540bf6e/KUr1cijapr2cv844.png",;// 品类图标
            "parent": { // 品类父级,也就是大类信息
                "id": "56efcab1a8ee",
                "name": {
                    "zh_CN": "生活电器",
                    "en_US": "Life electric application"
                }
            }
        },
        "products": [ // 小品类下的所有产品信息
            {
                "mid": "45a3KOPKLImt",
                "name": "测试产品",// 产品名称
                "productType": "INDEPENDENT", // 产品类型 INDEPENDENT:独立(wifi)设备,GATEWAY:网关设备,SUB:网关子设备
                "displayName": {// 产品名称
                    "zh_CN": "测试",
                    "en_US": "Test"
                },
                "model": "产品型号",
                "logo": "https://stage-allinone-ufile.hekr.me/category/1bfbcb91-6223-42c5-a2d8-466f2fcf69b3/1455783857385iconfont-hekriconshebeitaideng18.png",
                "bindType": "WIFI", //设备绑定方式,这个具体参照安卓或者IOS SDK配网说明
                "accessWay": [ // 设备通信方式, WIFI,GPRS,ThirdGeneration3G),ZIG_BEE,BLUETOOTH,ETHERNET(网线),MHZ_433,MHZ_315,Z_WAVE
                    "WIFI"
                ],
                "configDesc": "这里是测试配网指导文字",
                "configDescImg": [
                    "https://stage-allinone-ufile.hekr.me/product-config/8790ecc4-6230-47d6-9bef-892b2b5d4124.png"
                ]
            }
        ]
    }
]

根据用户信息获取所有(包括授权)产品信息

这个接口是普通用户调用,获取用户所属企业(包括授权)产品的信息,注意跟 厂家获取所有包括授权产品信息的区别。

Request

curl --request GET \
  --url https://console-openapi.hekr.me/external/enterprise/product \
  -H "Authorization: Bearer {JWT_TOKEN}" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json"

Response

返回信息和 厂家获取所有(包括授权)产品信息一样

厂家获获取所有(包括授权)协议模板信息

Request

GET /enterprise/protocolTemplate HTTP/1.1
Content-Type: application/json
Authorization: key={serverKey}

Response

[
    {
        "mid": "xxx",
        "pid": "xxx",
        "createTime": 1509526739706,
        "protocol": {
            "2": {
                "cmdId": 2,
                "cmdTag": "SetPower",
                "desc": "设置开关",
                "frameType": 2,
                "tags": null,
                "fields": [
                    {
                        "dataType": "NUMBER",
                        "name": "Light",
                        "desc": "亮度",
                        "dataLength": 1,
                        "usedForIFTTT": false,
                        "maxValue": 100,
                        "minValue": 0,
                        "maxValueMean": "最亮",
                        "minValueMean": "最暗",
                        "enumeration": []
                    }
                ]
            },
            "workModeType": "JSON_TRANSPARENT"
        }
    }
]
参数名字 说明
mid 产品标记
pid 企业标识
createTime 创建时间戳 毫秒
protocol 协议内容
workModeType 工作模式,JSON_TRANSPARENT:json透传;TRANSPARENT48:48透传;JSON_CTRL json主控;JSON_TRANSPARENT_NOT_CHECK_RAW json透传,不校验48串

protocol 参数说明

参数名字 说明
2 对应于cmdId参数的值
cmdId 命令
cmdTag 命令名字
desc 命令描述
frameType 1 上报帧,2 下发帧
tags 数组,可能为null,ifttt:可用于联动,infrared 红外设备标记,ifttt-no-repeat-trigger:联动是否可以重复触发,带有该标记则不允许重复触发。
fields 数组,包含了参数,详情见下面说明

fields 值说明

参数名字 说明
dataType NUMBER:整数,STRING 字符串类型
name 参数名字
desc 参数描述
dataLength 参数值长度
usedForIFTTT 是否用于联动,true:可以是联动触发条件。在配置联动触发条件的时候可以作为一个过滤条件,不过滤的话,所有上报帧都可以作为触发条件 联动参见这里
maxValue 最大值,NUMBER才会有(存在则有范围校验规则)
minValue 最小值,同上
maxValueMean 最大值描述,同上
minValueMean 最小值描述,同上
enumeration 整数数组,枚举值,NUMBER才会有(存在则有枚举校验,比范围校验优先级高)

判断设备模块固件是否需要升级

curl -v -X POST \
    -H "Authorization: Bearer {JWT_TOKEN}" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    "https://console-openapi.hekr.me/external/device/fw/ota/check" \
    -d '[
        {
            "devTid" : "esp_2m_bb8",                    // 设备id
            // 产品公开码 简称PPK
            "productPublicKey" : "56dce943d4149",
            "binType" : "A",                            // 固件类型
            "binVer" : "2.0.3.0"                        // 固件版本
        },
        {
            "devTid" : "esp_2m_bb9",
            "productPublicKey" : "56dcf1b5d14e", //简称PPK
            "binType" : "B",
            "binVer" : "1.2.0.0"
        }
    ]'

返回

如果productPublicKey不合法,将不返回相应任何设备信息。

< 200
< [
    {
        "devTid" : "esp_2m_bb8",
        "update" : false                                // 是否需要升级:true,是;false,否
    },
    {
        "devTid" : "esp_2m_bb9",
        "update" : true,
        "devFirmwareOTARawRuleVO" : {                   // 如果需要升级,该值非空
            // 新固件地址
            "binUrl" : "http://fs.hekr.me/dev/fw/ota/xxx.bin",
            "md5" : "5d41402abc4b2a76b9719d911017c592", // 固件md5
            "latestBinType" : "B",                      // 新固件类型
            "latestBinVer" : "1.2.3.4",                 // 新固件版本
            "size" : 77                                 // 固件大小,单位Byte
        }
    }
]

根据pid获取企业资讯

curl -v -X GET \
    -H "Authorization: Bearer {JWT_TOKEN}" \
    -H "Accept: application/json" \
    "https://user-openapi.hekr.me/external/vc/getByPid?pid=12121212121&page=5&size=1"

参数

参数名 是否可选 参数类型 取值范围 说明
pid 必选 String 企业id
page 可选 int [0, ?],默认为是0 页码
size 可选 int [1, 100],默认是20 每页大小

返回

< 200
< {
    "page" : 5,
    "size" : 1,
    "totalResults" : 117,
    "totalPages" : 117,
    "first" : false,
    "last" : false,
    "result" : [
        {
        "id" : "56de99337d845ab213487607",               // 资讯id
        "authorName" : "健康小助手",
        "updateTime" : 1457611920,
        "title" : "每日饮水小贴士",
        "infoTags" : [                                  // 资讯标签
            "健康",
            "饮水"
        ],
        // 资讯url
        "infoContent" : "http://media.hekr.me/pid/vc/xxxx.html"
        }
    ]
}

根据PPK获取企业资讯

该接口支持根据PPK列表批量获取企业资讯(企业资讯按最后更新时间倒序排序)。

curl -v -X GET \
    -H "Authorization: Bearer {JWT_TOKEN}" \
    -H "Accept: application/json" \
    -H "X-Hekr-ProdPubKey: {PPK}" \
    "https://console-openapi.hekr.me/external/vc/getByPPK?page=5&size=1"

参数

参数名 是否可选 参数类型 取值范围 说明
page 可选 int [0, ?],默认是0 获取第几页的企业资讯
size 可选 int [1, 100],默认是20 每页企业资讯的数量

返回

< 200
< 同 5.2 格式

售后管理

针对设备反馈问题

curl -v -X POST \
    -H "Authorization: Bearer {JWT_TOKEN}" \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    "https://console-openapi.hekr.me/external/feedback"
    -d '{
        "username" : "example@hekr.me",
        "title" : "温度统计不灵",
        "contact" : "联系人",
        "content" : "温度统计功能,时灵时不灵...",    // 具体的反馈内容
        // 反馈内容如有图片,则存放图片链接,多张图片以","分隔。如果没有图片,可以不填
        "images" : "http://media.hekr.me/xx1.png,http://media.hekr.me/xx2.png",
        "feedbackType":"LOG",// 反馈问题类型,可为空,可填"LOG","APP"
        "logUrl":"https://xxxxx" // 日志上传之后生成的地址
        "appInfo":"xxxxx"
    }'

参数

参数名 是否可选 参数类型 取值范围 说明
username 可选 string 用户账号
title 必选 string 反馈标题
content 必选 string 反馈内容
contact 可选 string 反馈联系人
logUrl 可选 string 日志链接
appInfo 可选 string 日志内容,将相关内容对象以ASE方式加密,秘钥为uid的MD5值
images 必选 string 反馈内容如有图片,则存放图片链接,多张图片以","分隔。如果没有图片,可以不填 反馈图片
feedbackType 可选 string APP APP反馈,LOG 配网日志反馈,WEB_LOG 页面日志反馈 反馈类型

返回

如果username不存在,将不返回任何信息。

< 200
< {
    "id" : "56de96dd46ea0f809999b8cc"    // 反馈问题的id
}

批量获取用户的反馈问题和问题处理结果

curl -v -X GET \
    -H "Authorization: Bearer {JWT_TOKEN}" \
    -H "Accept: application/json" \
    "https://console-openapi.hekr.me/external/user/feedback?page=10&size=2"

参数

参数名 是否可选 参数类型 取值范围 说明
page 可选 int [0, ?],默认是0 获取第几页的反馈问题
size 可选 int [1, 100],默认是20 每页问题的数量

返回

< 200
< {
  "page": 5,
  "size": 2,
  "totalResults": 20,
  "totalPages": 10,
  "first": false,
  "last": false,
  "result": [
    {
      "id": "56de959d84ef43a521757054",
      "title": "设备无法控制",
      "type": "产品质量",
      "content": "我的设备无法控制",
      "handleStatus": 1,
      "createTime": 1457947833
    },
    {
      "id": "56de626884efc280586a5fd6",
      "title": "设备无法获取PM2.5的值",
      "type": "产品功能不可用",
      "content": "我的设备无法获取PM2.5的值",
      "images": "http://media.hekr.me/xx1.png",
      "handleTime": 1456874520,
      "handleContent": "请将设备的保护薄膜撕掉",
      "handleStatus": 2,
      "createTime": 1456824900
    }
  ]
}

获取产品协议模板

curl -v -X GET \
  -H "Accept: application/json" \
  -H "X-Hekr-ProdPubKey: {PPK}" \
  "https://console-openapi.hekr.me/external/device/protocolTemplate"

返回

< 200
< {
    "mid": "1ccb5e2ed8",
    "pid": "062801590",
    "cid": "02af881daf",
    "accessProtocol": 0,                                // 设备工作方式: 0是JSON透传、1是JSON主控
    "fixedLength": false,                               // 是否是定长
    "statistics": false,                                // 是否需要统计
    "createTime": "2016-02-22 16:15:47",
    "protocol": {                                       // 协议命令集合
        "3": {                                          // 命令的key,与具体命令中的cmdId保持一致
            "cmdTag": "SetLight",                       // 命令名称
            "cmdId": 3,                                 // 命令的Id
            "desc": "设置亮度",                          // 命令描述
            "frameType": 2,                             // 命令帧类型:1是上报帧、2是下发帧
            "usedForIFTTT": true,                       // 是否在IFTTT规则中展示
            "fields": [                                 // 命令使用到的产品参数
                {
                    "name": "Light",                    // 参数名称
                    "desc": "亮度",                     // 参数描述
                    "units": "百分比",                  // 参数单位,可选
                    "unitsDesc": "%",                   // 参数单位的符号表示,可选
                    "dataType": "INT",                  // 参数的数据类型,JSON主控包括“INT”、“FLOAT”、“STRING”,JOSN透传包括“NUMBER”、“STRING”
                    "dataLength": 1,                    // 数据长度,单位“Byte”,JSON透传下有该属性,JSON主控下无该属性
                    "save": true,                       // 云端是否保存该参数的值
                    "reportedFrequency": 5,             // 该参数上报云端的频率,单位是“分钟/次”,即多少分钟上报一次该参数
                    "available": true,                  // 该参数在此命令中是否是有效数据
                    "usedForIFTTT": true,               // 是否在IFTTT规则中展示
                    "maxValue": "100",                  // 参数的最大取值
                    "minValue": "0",                    // 参数的最小取值
                    "maxValueMean": "亮度100%",          // 参数最大值的含义,可选
                    "minValueMean": "亮度0%",            // 参数最小值的含义,可选
                    "enumeration": [                    // 参数的枚举值,可选
                        {
                            "value": 150,               // 参数的枚举取值
                            "desc": "超亮状态"           // 枚举取值说明
                        }
                    ]
                }
            ]
        }
    }
}

详细说明

获取演示设备列表

GET https://console-openapi.hekr.me/external/device/default/static HTTP/1.1
Authorization: Bearer {JWT_TOKEN}
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8

[
    {
        "id": "5971c35ddddae41048e00faf",
        "pid": "00000000000",
        "name": "智能空气净化器",
        "logo": "https://allinone-ufile.hekr.me/deviceStaticPage/58ea54ec-71e1-4115-8073-c8e1544e4b86/airPurifier.png",
        "desc": "1",
        "packageFile": "https://allinone-ufile.hekr.me/deviceStaticPage/7c96558b-967d-4714-8d8c-71dc36f52581/znkqjhq.zip",
        "indexUrl": "https://allinone-ufile.hekr.me/deviceStaticPage/7c96558b-967d-4714-8d8c-71dc36f52581/index.html",
        "deviceName": "智能空气净化器",
        "androidH5Page": "https://allinone-ufile.hekr.me/deviceStaticPage/7c96558b-967d-4714-8d8c-71dc36f52581/index.html",
        "androidH5Zip": "https://allinone-ufile.hekr.me/deviceStaticPage/7c96558b-967d-4714-8d8c-71dc36f52581/znkqjhq.zip",
        "iosH5Zip": "https://allinone-ufile.hekr.me/deviceStaticPage/7c96558b-967d-4714-8d8c-71dc36f52581/znkqjhq.zip",
        "iosH5Page": "https://allinone-ufile.hekr.me/deviceStaticPage/7c96558b-967d-4714-8d8c-71dc36f52581/index.html"
    }
]

返回体

字段 含义
name 演示设备名称
logo 演示设备LOGO
deviceName 演示设备名称 已废弃请使用name
androidH5Page android控制页面地址
androidH5Zip android压缩包地址
iosH5Zip ios压缩包地址
iosH5Page ios控制页面地址

文件存储

查询文件列表(用户)

接口调用方应为企业用户

GET /api/v1/enterprise-file HTTP/1.1
Authorization: Bearer {JWT_TOKEN}
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8

{
    "content": [
        {
            "id": "59548130b64a61a42ab4f8a7",
            "filename": "光照度传感器.png",
            "url": "https://allinone-ufile.hekr.me/product-logo/5cd4999f-97e4-46cd-8567-e8fbe7be32c0/%E5%85%89%E7%85%A7%E5%BA%A6%E4%BC%A0%E6%84%9F%E5%99%A8.png",
            "tags": [
                "ad"
            ]
        }
    ],
    "last": true,
    "totalPages": 1,
    "totalElements": 1,
    "sort": null,
    "first": true,
    "numberOfElements": 1,
    "size": 20,
    "number": 0,
    "page": 1
}

请求参数

参数 是否必须 默认 含义
page false 0 第几页(从0开始)
size false 20 每页多少条记录
filename false 筛选文件名,使用正则表达式
tag false 筛选标签,例如tag=tag1,tag2将筛选同时具有tag1,tag2的文件
sort false 排序方法,例如sort=createTime 按时间升序,sort=createTime,DESC 按时间倒序

查询文件列表(企业)

GET /api/v1/enterprise-file?admin=true HTTP/1.1
Authorization: Bearer {JWT_TOKEN}

请求参数

参数 是否必须 默认 含义
page false 0 第几页(从0开始)
size false 20 每页多少条记录
filename false 筛选文件名,使用正则表达式
tag false 筛选标签,例如tag=tag1,tag2将筛选同时具有tag1,tag2的文件
sort false 排序方法,例如sort=createTime 按时间升序,sort=createTime,DESC 按时间倒序

上传文件(企业)

Note

上传文件不能超过2MB大小

POST /api/v1/file?prefix=efile HTTP/1.1
Content-Type:multipart/form-data; boundary=----WebKitFormBoundaryqcu5Qdx1ivNGl0o6
Authorization: Bearer {JWT_TOKEN}

------WebKitFormBoundaryqcu5Qdx1ivNGl0o6
Content-Disposition: form-data; name="file"; filename="png.png"
Content-Type: image/png


------WebKitFormBoundaryqcu5Qdx1ivNGl0o6--
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8

{
  "key": "efile/dca71f4b-ca3a-4c66-b62c-8441983fc1a6/png.png",
  "url": "https://stage-allinone-ufile.hekr.me/efile/dca71f4b-ca3a-4c66-b62c-8441983fc1a6/png.png",
  "md5": "079f7d85b3d8951946a8ca2612cecc06",
  "filename": "png.png"
}

请求体

参数 是否必须 说明
file 要上传的文件
prefix 文件前缀

返回体

参数 含义
key 上传文件唯一标识,该值仅用于氦氪内部服务
url 上传后文件地址
md5 文件md5值
filename 文件名

添加企业文件记录(企业)

必须先调用上传文件(企业),将接口返回的filename、url填入该接口同名body字段

POST /api/v1/enterprise-file HTTP/1.1
Authorization: Bearer {JWT_TOKEN}

{
    "url": "https://stage-allinone-ufile.hekr.me/efile/dca71f4b-ca3a-4c66-b62c-8441983fc1a6/png.png",
    "filename": "png.png",
    "tags": ["ad"]
}
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8

删除企业文件记录(企业)

DELETE /api/v1/enterprise-file/{id} HTTP/1.1
Authorization: Bearer {JWT_TOKEN}
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
参数 是否必须 说明
id true 要删除的记录ID

产品FAQ

产品FAQ为产品常见问题。

查询FAQ列表(企业)

GET https://console-openapi.hekr.me/api/v1/commonProblem?admin=true HTTP/1.1
Authorization: Bearer {JWT_TOKEN}
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8

{
    "content": [
        {
            "id": "5976ecccf50a3c077de6fc11",
            "pid": "01240737641",
            "mid": "IyFauxgNdjFs",
            "title": "asfd",
            "content": "asdfsdf",
            "updateTime": 1500966092898
        }
    ],
    "last": true,
    "totalPages": 1,
    "totalElements": 1,
    "sort": [
        {
            "direction": "DESC",
            "property": "updateTime",
            "ignoreCase": false,
            "nullHandling": "NATIVE",
            "ascending": false
        }
    ],
    "first": true,
    "numberOfElements": 1,
    "size": 10,
    "number": 0,
    "page": 1
}

请求参数

参数 是否必须 默认 含义
page false 0 第几页(从0开始)
size false 20 每页多少条记录
mid false 过滤参数:产品mid

添加FAQ (企业)

POST https://https://console-openapi.hekr.me/api/v1/commonProblem HTTP/1.1
Authorization: Bearer {JWT_TOKEN}

{
    "mid": "IyFauxgNdjFs",
    "title": "如何重置设备?",
    "content": "长按底座下发黑色凸起按钮3秒钟后即可重置设备"
}
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8

请求体

参数 类型 是否必须 默认 含义
mid String true 产品mid
titile String true 问题
content String true 答案

修改FAQ(企业)

PUT https://console-openapi.hekr.me/api/v1/commonProblem HTTP/1.1
Authorization: Bearer {JWT_TOKEN}

{
    "id": "5976f0faf50a3c0add5cf8a3",
    "mid": "IyFauxgNdjFs",
    "title": "如何重置设备?",
    "content": "长按底座下发黑色凸起按钮3秒钟后即可重置设备。",
}
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8

请求体

参数 类型 是否必须 默认 含义
id String true faq id
mid String true 产品mid
titile String true 问题
content String true 答案

删除FAQ(企业)

DEELTE https://console-openapi.hekr.me/api/v1/commonProblem/{id} HTTP/1.1
Authorization: Bearer {JWT_TOKEN}
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8

请求参数

参数 类型 是否必须 默认 含义
id String true faq id

查询FAQ列表(用户)

GET https://console-openapi.hekr.me/api/v1/commonProblem HTTP/1.1
X-Hekr-ProdPubKey: {PPK}
Authorization: Bearer {JWT_TOKEN}
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8

{
    "content": [
        {
            "id": "5976ecccf50a3c077de6fc11",
            "pid": "01240737641",
            "mid": "IyFauxgNdjFs",
            "title": "asfd",
            "content": "asdfsdf",
            "updateTime": 1500966092898
        }
    ],
    "last": true,
    "totalPages": 1,
    "totalElements": 1,
    "sort": [
        {
            "direction": "DESC",
            "property": "updateTime",
            "ignoreCase": false,
            "nullHandling": "NATIVE",
            "ascending": false
        }
    ],
    "first": true,
    "numberOfElements": 1,
    "size": 10,
    "number": 0,
    "page": 1
}

请求头

参数 类型 是否必须 默认 含义
PPK String true 产品公共秘钥
titile String true 问题
content String true 答案

查询广告设置

GET https://console-openapi.hekr.me/api/v1/app/advertising?pid=12345678910 HTTP/1.1
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8

[
    {
        "id": "5abcced46aa4a026dabb7870",      
        "title": "test",            // 广告标题
        "content": "https://xxx",   // 广告内容为一个连接
        "displayOrder": 2,          // 显示排序
        "createTime": 1522323156277,
        "updateTime": 1522323156277
    }
]

请求头

参数 类型 是否必须 默认 含义
pid String true 企业ID

根据serverKey获取设备长短码

该接口是方便厂家产测使用,厂家每调用一次该接口,就会得到一个设备相关信息。具体参数信息参见下面说明。

Request

curl -X POST \
  --url https://console-openapi.hekr.me/api/v1/product/device/generateByProdKey \
  -H "Authorization: key={serverKey}" \
  -H "Content-Type: application/json" \
  -d '{
    "prodKey": "46ae158c0b478ed16128b65d7894eb87"
 }'

请求头

参数 类型 是否必须 默认 含义
serverKey String true 企业serverKey(个人中心,serverkey中生成)
prodKey String true 产品PK

Response

{
    "prodKey": "46ae158c0b478ed16128b65d7894eb87",
    "devTid": "3a0a208423f146fca1aaaf1147fdffa6",
    "devPriKey": "478c5f5adb123b6f90ab4c4560d219dc",
    "bindKey": "f458b8c9ecc54ecc475c51aeb89cd84b",
    "createTime": 1529930181963,
    "shortCode": "gzab748h",
    "shortCodePassword": "B46D15",
    "qrCode": "http://www.hekr.me?action=bind&devTid=3a0a208423f146fca1aaaf1147fdffa6&bindKey=f458b8c9ecc54ecc475c51aeb89cd84b",
    "qrCodeShort": "bind;gzab748h;B46D15"
}

返回体

参数名字 说明
prodKey 产品PK
devTid 设备devTid
devPriKey 设备私钥
bindKey 设备绑定key
createTime 创建时间(毫秒时间戳)
shortCode 设备短码
shortCodePassword 设备短码密码
qrCode 长码二维码的内容(直接将内容转换成二维码即可)
qrCodeShort 短码二维码内容(直接将内容转换成二维码即可)

长码和短码的区别

长码二维码的内容是基于devTid和bindKey生成的,该二维码内容比较多,二维码尺寸太小可能会造成识别率不高的问题,此时您应该使用短码二维码,该二维码内容是基于短码和短码密码生成的。格式是bind;短码;密码,一共是4+8+6=18个数字和英文大小写构成字符,也就是18个字节。另外由于短码比较短,当不需要二维码或者二维码不能识别的时候可以手动输入进行绑定,较长码来说输入更方便。

绑定方式

长码绑定和短码绑定方式不一样,长码绑定方式见这里短码绑定方式参见这里。同时,短码方式支持更改初始密码。密码是为了加强设备安全性,比如之前有人扫描了你的二维码内容,那么他可以调用api进行设备绑定(如果允许设备被强行绑定的话),那么你可以修改这个密码,那么已经泄漏的二维码就已经不可用了,不需要担心被其他人绑定。

根据devTid获取长短码信息

Request

curl -X GET \
  'https://console-openapi.hekr.me/api/v1/product/device/devTid?devTid=3a0a205316f746fca1aaaf4885fdffa6' \
  -H "Authorization: key={serverKey}" \
  -H 'Content-Type: application/json'

请求头

参数 类型 是否必须 默认 含义
serverKey String true 企业serverKey(个人中心,serverkey中生成)
devTid String true 设备devTid

Response

{
    "prodKey": "46ae303c0b400ed16128b65d4223eb87",
    "devTid": "3a0a205316f746fca1aaaf4885fdffa6",
    "devPriKey": "404c5f5adb484b6f90ab4c5470d219dc",
    "bindKey": "f208b8c9ecc54ecc884c51aeb23cd57b",
    "createTime": 1529930181963,
    "shortCode": "gzab473h",
    "shortCodePassword": "B81D67",
    "qrCode": "http://www.hekr.me?action=bind&devTid=3a0a205316f746fca1aaaf4885fdffa6&bindKey=f208b8c9ecc54ecc884c51aeb23cd57b",
    "qrCodeShort": "bind;gzab473h;B81D67"
}

返回体

参数名字 说明
prodKey 产品PK
devTid 设备devTid
devPriKey 设备私钥
bindKey 设备绑定key
createTime 创建时间(毫秒时间戳)
shortCode 设备短码
shortCodePassword 设备短码密码
qrCode 长码二维码的内容(直接将内容转换成二维码即可)
qrCodeShort 短码二维码内容(直接将内容转换成二维码即可)

根据短码获取长短码信息

Request

curl -X GET \
  'https://console-openapi.hekr.me/api/v1/product/device/shortCode?shortCode=gzab473h&shortCodePassword=B81D67' \
  -H "Authorization: key={serverKey}" \
  -H 'Content-Type: application/json'

请求头

参数 类型 是否必须 默认 含义
serverKey String true 企业serverKey(个人中心,serverkey中生成)
shortCode String true 设备短码
shortCodePassword String true 设备短码密码

Response

{
    "prodKey": "46ae303c0b400ed16128b65d4223eb87",
    "devTid": "3a0a205316f746fca1aaaf4885fdffa6",
    "devPriKey": "404c5f5adb484b6f90ab4c5470d219dc",
    "bindKey": "f208b8c9ecc54ecc884c51aeb23cd57b",
    "createTime": 1529930181963,
    "shortCode": "gzab473h",
    "shortCodePassword": "B81D67",
    "qrCode": "http://www.hekr.me?action=bind&devTid=3a0a205316f746fca1aaaf4885fdffa6&bindKey=f208b8c9ecc54ecc884c51aeb23cd57b",
    "qrCodeShort": "bind;gzab473h;B81D67"
}

返回体

参数名字 说明
prodKey 产品PK
devTid 设备devTid
devPriKey 设备私钥
bindKey 设备绑定key
createTime 创建时间(毫秒时间戳)
shortCode 设备短码
shortCodePassword 设备短码密码
qrCode 长码二维码的内容(直接将内容转换成二维码即可)
qrCodeShort 短码二维码内容(直接将内容转换成二维码即可)

根据ctrlKey获取设备快照

Request

curl -X POST \
  'https://console-openapi.hekr.me/api/v1/device/deviceStatusQuery' \
  -H "Authorization: key={serverKey}" \
  -d '["xx","xx"]'

请求头

参数 类型 是否必须 默认 含义
serverKey String true 企业serverKey(个人中心,serverkey中生成)
ctrlKey array true 设备ctrlKey数组

Response

[
    {
        "devTid": "01_5c793268aee2fd283917bb289a907",
        "status": {
            "airSpeed_Set": {
                "currentValue": 0,
                "reportTimestamp": 1529379579660
            },
            "AutoMidClose": {
                "currentValue": 0,
                "reportTimestamp": 1529067716660
            },
            "ManualHighOpen": {
                "currentValue": 0,
                "reportTimestamp": 1529067716660
            }
        }
    }
]

返回体

参数名字 说明
devTid 设备devTid
status 设备快照信息

根据prodKey注册设备并获取二维码信息

Request

curl -X POST \
  'https://console-openapi.hekr.me/api/v1/device/qrcode' \
  -H "Authorization: key={serverKey}" \
  -H 'Content-Type: application/json'

请求头

参数 类型 是否必须 默认 含义
prodKey String true 产品密钥
devTid String true 设备devTid

Response

{
    "prodKey": "af9817a453ec087f21a8cbc0ee46b8a9",
    "devTid": "devTidTestbyjiatao01",
    "bindKey": "9e21223d22924c89bf9349985442776c",
    "shortCode": "gzab4NtG",
    "shortCodePassword": "KM62XW",
    "qrCode": "http://www.hekr.me?action=bind&devTid=devTidTestbyjiatao01&bindKey=9e21223d22924c89bf9349985442776c",
    "qrCodeShort": "bind;gzab4NtG;KM62XW"
}

返回体

参数名字 说明
prodKey 产品PK
devTid 设备devTid
bindKey 设备绑定key
shortCode 设备短码
shortCodePassword 设备短码密码
qrCode 长码二维码的内容(直接将内容转换成二维码即可)
qrCodeShort 短码二维码内容(直接将内容转换成二维码即可)

错误码表

错误码 提示信息 中文释义
8200000 Success 调用成功
8400000 Product does not exist 产品不存在
8400001 Protocol template does not exist 协议模板不存在
8400002 Illegal argument 非法参数
8400003 The param of platform is not illegal. The client should be Android or IOS 平台参数错误;应为Android或IOS
8400004 The pid does not exist 指定pid不存在
8400005 The h5 template does not exist h5模板不存在
8400028 产品类型错误,目前只支持48产品
8400030 未找到设备长短码信息
8400029 权限错误,无权查看该设备信息
8400031 缺少配额