1. 约定
1.1 客户端应用:即接入电堂智慧硬件管理平台的第三方应用。

2. 请求流程
2.1 首先需要在管理平台申请注册账号,平台审核通过后就可以登录系统。
2.2 商户需要自行管理在电堂购买的硬件则需要申请访问的秘钥,在访问时作为生成签名信息的加密串使用。
2.2 可以通过平台提供的API包调用硬件接口,也可以自行编码实现接口访问,目前接口通讯采用HTTP协议,以JSON格式作为输入的参数,同样采用json格式返回结果。

3. 接口说明
3.1 硬件查询接口
3.2 硬件授权用户查询接口
3.3 硬件用户授权接口
3.4 硬件用户取消授权接口
3.5 硬件关闭接口
3.6 硬件开放接口
3.7 硬件时段开接口
3.8 硬件时段关接口
3.9 硬件开门接口
3.10 水电表剩余金额查询接口
3.11 水电表读数查询接口
3.12 水电表充值接口
3.13 水电表充值查询接口
3.14 水电表日冻结数据查询接口
3.15 硬件上传记录查询接口
3.16 设备状态、电量等查询接口
3.17 水电表操作记录查询接口
1. 说明
为了防止API调用过程中被黑客恶意篡改,调用任何一个API都需要携带签名,硬件平台服务端会根据请求参数,对签名进行验证,签名不合法的请求将会被拒绝。 平台目前支持的签名算法:HmacSHA1(sign_method=hmac),签名大体过程如下:

2. 签名过程
对API请求的公共参数,根据参数名称的ASCII码表的顺序排序。如:foo=1, bar=2, foo_bar=3, foobar=4排序后的顺序是bar=2, foo=1, foo_bar=3, foobar=4。 将排序好的参数名和参数值拼装在一起,根据上面的示例得到的结果为:bar:2:foo:1:foo_bar:3:foobar:4: 把拼装好的字符串使用URLEncoder提供的转换字符的方法进行转换,编码格式:sutf-8编码,使用签名算法对编码后的字节流进行摘要。使用HMACSHA1算法, 需要用app的secret初始化摘要算法后,再进行摘要,如:HmacSHA1(bar:2:foo:1:foo_bar:3:foobar:4:)。 将摘要得到的字节流结果使用十六进制表示,如:hex(“helloworld”.getBytes(“utf-8”)) = “68656C6C6F776F726C64”

3. 注意
说明:HmacSHA1是128位长度的摘要算法,用16进制表示,一个十六进制的字符能表示4个位,所以签名后的字符串长度固定为32个十六进制字符。
接口描述:提供分页查询归属的设备清单,支持指定设备号、设备类型、设备名称或用户授权码等多种条件进行筛选
入参列表
参数名称 参数类型 必填与否 样例取值 参数说明
reqTime Long 必须 1497143410000(2017-06-11 09:10:10:000) 接口调用的时间戳,在进行调用前获取系统时间,以毫秒为单位;每次接口调用都会进行时间校验,如果时间跨度大于5秒则返回失败
busiPhone String 必须 13500000000 操作账号
busiName String 必须 杭州电堂科技有限公司 账号名称
action String 必须 readDevice 接口类型:硬件查询
busiId String 必须 1497143410001 操作流水,要求每次都是唯一编号
signInfo String 必须 68656C6C6F776F726C64 签名信息
data String 可选 {} 查询参数
data.macAddr String 可选 D8B04C468B3E:1 主设备MAC地址+设备序号或水电表的表号
data.deviceName String 可选 XXX楼1201房间门锁 设备名称
data.deviceClass Short 可选 4 设备类型:4-智能门锁、5-智能开关、6-门禁、7-梯控、 8-道闸出口、9-道闸入口、11-电表、12-水表、14-取水开关
data.isInit String 可选 true 是否初始化
data.userType Short 可选 2 用户类型:1-管理员、2-密码用户、3-卡用户、4-开关时段用户、 5-二维码用户
data.userIdentity String 可选 123456 用户授权码
data.userOutSerial String 可选 33011111111111 用户外部识别号(授权时提供,可以使用身份证号码)
data.pageIndex Integer 可选 1 第几页
data.pageSize Integer 可选 20 每页多少条:系统默认单次最大返回100条
data.pageCount Integer 可选 1 页数
出参列表
出参名称 出参类型 样例取值 参数说明
code String 0 状态码-返回0代表请求成功,其他错误码详见错误码列表
msg String 请求成功 状态码的描述
data String {} 返回授权用户列表和分页信息
data.pageNo Integer 1 分页信息:当前第几页
data.pageSize Integer 20 分页信息:每页多少条
data.totalPage Integer 2 分页信息:总共多少页
data.total Integer 33 分页信息:总共多少条
data.content String [] 设备列表
data.content.deviceName String 13幢2单元201门锁 设备名称
data.content.deviceClass Short 4 设备类别
data.content.macAddr Short D8B04C468B3E:1 主设备MAC地址+设备序号或水电表的表号(作为设备唯一编号与房源绑定)
data.content.isInit Boolean true 是否初始化
data.content.isRegist Boolean true 是否注册
data.content.isOnline Boolean true 是否在线
接口描述:提供分页查询归属某个设备的已授权用户清单,支持指定设备号、用户授权码、用户外部识别号等多种条件进行筛选
入参列表
参数名称 参数类型 必填与否 样例取值 参数说明
reqTime Long 必须 1497143410000(2017-06-11 09:10:10:000) 接口调用的时间戳,在进行调用前获取系统时间,以毫秒为单位;每次接口调用都会进行时间校验,如果时间跨度大于5秒则返回失败
busiPhone String 必须 13500000000 操作账号
busiName String 必须 杭州电堂科技有限公司 账号名称
action String 必须 readUser 接口类型:授权用户查询
busiId String 必须 1497143410001 操作流水,要求每次都是唯一编号
signInfo String 必须 68656C6C6F776F726C64 签名信息
data String 必须 {} 查询参数
data.macAddr String 必须 D8B04C468B3E:1 主设备MAC地址+设备序号或水电表的表号
data.userType Short 可选 2 用户类型:1-管理员、2-密码用户、3-卡用户、4-开关时段用户、 5-二维码用户
data.userIdentity String 可选 123456 用户授权码
data.userOutSerial String 可选 33011111111111 用户外部识别号(授权时提供,可以使用身份证号码)
data.pageIndex Integer 可选 1 第几页
data.pageSize Integer 可选 20 每页多少条:系统默认单次最大返回100条
data.pageCount Integer 可选 1 页数
出参列表
出参名称 出参类型 样例取值 参数说明
code String 0 状态码-返回0代表请求成功,其他错误码详见错误码列表
msg String 请求成功 状态码的描述
data String {} 返回授权用户列表和分页信息
data.pageNo Integer 1 分页信息:当前第几页
data.pageSize Integer 20 分页信息:每页多少条
data.totalPage Integer 2 分页信息:总共多少页
data.total Integer 33 分页信息:总共多少条
data.content String [] 授权用户列表
data.content.userIdentity String 123456 用户号码
data.content.userOutSerial String 33011111111111 用户外部识别号(授权时提供,可以使用身份证号码)
data.content.userType Short 1 用户类型
data.content.floorList List [1,2] 授权楼层
data.content.beginTime Long 1523882724000 生效时间
data.content.endTime Long 1523882724000 失效时间
data.content.addDate Long 1523882724000 授权时间
接口描述:提供门锁、门禁、水控、梯控设备的用户授权,门锁支持卡(含身份证)和密码的授权,梯控、门禁支持卡(含身份证、NFC)、二维码、密码授权,水控支持卡授权, 两种设备都支持时段授权方式;另外梯控授权时需要传入楼层信息(可以多层),门锁可以设置管理员密码
入参列表
参数名称 参数类型 必填与否 样例取值 参数说明
reqTime Long 必须 1497143410000(2017-06-11 09:10:10:000) 接口调用的时间戳,在进行调用前获取系统时间,以毫秒为单位;每次接口调用都会进行时间校验,如果时间跨度大于5秒则返回失败
busiPhone String 必须 13500000000 操作账号
busiName String 必须 杭州电堂科技有限公司 账号名称
action String 必须 addUser 接口类型:用户授权
busiId String 必须 1497143410001 操作流水,要求每次都是唯一编号
signInfo String 必须 68656C6C6F776F726C64 签名信息
data String 必须 {} 授权参数
data.macAddr String 必须 D8B04C468B3E:1 主设备MAC地址+设备序号或水电表的表号
data.userType Short 必须 2 用户类型:1-管理员、2-密码用户、3-卡用户、 5-二维码用户
data.userIdentity String 必须 123456 用户授权码:如果是二维码用户可以不传,其他
data.userOutSerial String 可选 330111111111 用户外部识别号(可以使用身份证号码等)
data.beginTime Long 可选 1497143410000 用户生效时间以毫秒为单位
data.endTime Long 可选 1497143410000 用户失效时间以毫秒为单位,系统默认永久有效
data.floorList String 可选 [1,2] 电梯楼层:梯控时必须传入
出参列表
出参名称 出参类型 样例取值 参数说明
code String 0 状态码-返回0代表请求成功,其他错误码详见错误码列表
msg String 请求成功 状态码的描述
data String FFBC614E 返回用户授权码
接口描述:提供门锁、门禁、水控、梯控设备的用户授权取消
入参列表
参数名称 参数类型 必填与否 样例取值 参数说明
reqTime Long 必须 1497143410000(2017-06-11 09:10:10:000) 接口调用的时间戳,在进行调用前获取系统时间,以毫秒为单位;每次接口调用都会进行时间校验,如果时间跨度大于5秒则返回失败
busiPhone String 必须 13500000000 操作账号
busiName String 必须 杭州电堂科技有限公司 账号名称
action String 必须 delUser 接口类型:取消用户授权
busiId String 必须 1497143410001 操作流水,要求每次都是唯一编号
signInfo String 必须 68656C6C6F776F726C64 签名信息
data String 必须 {} 取消授权参数
data.macAddr String 必须 D8B04C468B3E:1 主设备MAC地址+设备序号或水电表的表号
data.userType Short 必须 2 用户类型:1-管理员、2-密码用户、3-卡用户、 5-二维码用户
data.userIdentity String 必须 123456 用户授权码
出参列表
出参名称 出参类型 样例取值 参数说明
code String 0 状态码-返回0代表请求成功,其他错误码详见错误码列表
msg String 请求成功 状态码的描述
接口描述:提供水表、电表的拉闸、门锁的限制开门和开关的复位(将开放从强开状态改成时段开模式)
入参列表
参数名称 参数类型 必填与否 样例取值 参数说明
reqTime Long 必须 1497143410000(2017-06-11 09:10:10:000) 接口调用的时间戳,在进行调用前获取系统时间,以毫秒为单位;每次接口调用都会进行时间校验,如果时间跨度大于5秒则返回失败
busiPhone String 必须 13500000000 操作账号
busiName String 必须 杭州电堂科技有限公司 账号名称
action String 必须 setOff 接口类型:开关复位或锁关闭使用
busiId String 必须 1497143410001 操作流水,要求每次都是唯一编号
signInfo String 必须 68656C6C6F776F726C64 签名信息
data String 必须 {} 参数
data.macAddr String 必须 D8B04C468B3E:1 主设备MAC地址+设备序号或水电表的表号
出参列表
出参名称 出参类型 样例取值 参数说明
code String 0 状态码-返回0代表请求成功,其他错误码详见错误码列表
msg String 请求成功 状态码的描述
接口描述:提供水表、电表的开闸、门锁的不限制开门和开关的强开
入参列表
参数名称 参数类型 必填与否 样例取值 参数说明
reqTime Long 必须 1497143410000(2017-06-11 09:10:10:000) 接口调用的时间戳,在进行调用前获取系统时间,以毫秒为单位;每次接口调用都会进行时间校验,如果时间跨度大于5秒则返回失败
busiPhone String 必须 13500000000 操作账号
busiName String 必须 杭州电堂科技有限公司 账号名称
action String 必须 setOn 接口类型:开关强开或锁开放使用
busiId String 必须 1497143410001 操作流水,要求每次都是唯一编号
signInfo String 必须 68656C6C6F776F726C64 签名信息
data String 必须 {} 参数
data.macAddr String 必须 D8B04C468B3E:1 主设备MAC地址+设备序号或水电表的表号
出参列表
出参名称 出参类型 样例取值 参数说明
code String 0 状态码-返回0代表请求成功,其他错误码详见错误码列表
msg String 请求成功 状态码的描述
接口描述:提供开关的按时间段开,时间段支持未来生效和立即生效,相同设备提供的开始时间与之前的相同则对应的这条开的记录失效时间将被覆盖
入参列表
参数名称 参数类型 必填与否 样例取值 参数说明
reqTime Long 必须 1497143410000(2017-06-11 09:10:10:000) 接口调用的时间戳,在进行调用前获取系统时间,以毫秒为单位;每次接口调用都会进行时间校验,如果时间跨度大于5秒则返回失败
busiPhone String 必须 13500000000 操作账号
busiName String 必须 杭州电堂科技有限公司 账号名称
action String 必须 setOnTime 接口类型:开关时段开
busiId String 必须 1497143410001 操作流水,要求每次都是唯一编号
signInfo String 必须 68656C6C6F776F726C64 签名信息
data String 必须 {} 参数
data.macAddr String 必须 D8B04C468B3E:1 主设备MAC地址+设备序号
data.userIdentity String 必须 123456 用户号码
data.beginTime Long 必须 1497143410000 用户生效时间以毫秒为单位
data.endTime Long 必须 1497143410000 用户失效时间以毫秒为单位,系统默认永久有效
出参列表
出参名称 出参类型 样例取值 参数说明
code String 0 状态码-返回0代表请求成功,其他错误码详见错误码列表
msg String 请求成功 状态码的描述
接口描述:提供开关的按时间段关闭,时间段必须与之前提供开的时段完全一致
入参列表
参数名称 参数类型 必填与否 样例取值 参数说明
reqTime Long 必须 1497143410000(2017-06-11 09:10:10:000) 接口调用的时间戳,在进行调用前获取系统时间,以毫秒为单位;每次接口调用都会进行时间校验,如果时间跨度大于5秒则返回失败
busiPhone String 必须 13500000000 操作账号
busiName String 必须 杭州电堂科技有限公司 账号名称
action String 必须 setOffTime 接口类型:开关时段关
busiId String 必须 1497143410001 操作流水,要求每次都是唯一编号
signInfo String 必须 68656C6C6F776F726C64 签名信息
data String 必须 {} 参数
data.macAddr String 必须 D8B04C468B3E:1 主设备MAC地址+设备序号
data.userIdentity String 必须 123456 用户授权码
data.beginTime Long 必须 1497143410000 用户生效时间以毫秒为单位
data.endTime Long 必须 1497143410000 用户失效时间以毫秒为单位,系统默认永久有效
出参列表
出参名称 出参类型 样例取值 参数说明
code String 0 状态码-返回0代表请求成功,其他错误码详见错误码列表
msg String 请求成功 状态码的描述
接口描述:提供门锁、门禁、道匝远程开门及水控远程开关的功能,梯控需要指定开放的楼层
入参列表
参数名称 参数类型 必填与否 样例取值 参数说明
reqTime Long 必须 1497143410000(2017-06-11 09:10:10:000) 接口调用的时间戳,在进行调用前获取系统时间,以毫秒为单位;每次接口调用都会进行时间校验,如果时间跨度大于5秒则返回失败
busiPhone String 必须 13500000000 操作账号
busiName String 必须 杭州电堂科技有限公司 账号名称
action String 必须 open 接口类型:开门
busiId String 必须 1497143410001 操作流水,要求每次都是唯一编号
signInfo String 必须 68656C6C6F776F726C64 签名信息
data String 必须 {} 参数
data.macAddr String 必须 D8B04C468B3E:1 主设备MAC地址+设备序号
data.floorList String 可选 [1,2] 电梯楼层:梯控时必须传入
出参列表
出参名称 出参类型 样例取值 参数说明
code String 0 状态码-返回0代表请求成功,其他错误码详见错误码列表
msg String 请求成功 状态码的描述
接口描述:提供水表和电表的剩余余额查询功能
入参列表
参数名称 参数类型 必填与否 样例取值 参数说明
reqTime Long 必须 1497143410000(2017-06-11 09:10:10:000) 接口调用的时间戳,在进行调用前获取系统时间,以毫秒为单位;每次接口调用都会进行时间校验,如果时间跨度大于5秒则返回失败
busiPhone String 必须 13500000000 操作账号
busiName String 必须 杭州电堂科技有限公司 账号名称
action String 必须 readMeterBalance 接口类型:余额查询
busiId String 必须 1497143410001 操作流水,要求每次都是唯一编号
signInfo String 必须 68656C6C6F776F726C64 签名信息
data String 必须 {} 参数
data.macAddr String 必须 D8B04C468B3E:1 水表或电表的表号
出参列表
出参名称 出参类型 样例取值 参数说明
code String 0 状态码-返回0代表请求成功,其他错误码详见错误码列表
msg String 请求成功 状态码的描述
data Long 10000 返回的余额以分为单位
接口描述:提供水表和电表的当前读数查询功能
入参列表
参数名称 参数类型 必填与否 样例取值 参数说明
reqTime Long 必须 1497143410000(2017-06-11 09:10:10:000) 接口调用的时间戳,在进行调用前获取系统时间,以毫秒为单位;每次接口调用都会进行时间校验,如果时间跨度大于5秒则返回失败
busiPhone String 必须 13500000000 操作账号
busiName String 必须 杭州电堂科技有限公司 账号名称
action String 必须 readMeterValue 接口类型:查询读数
busiId String 必须 1497143410001 操作流水,要求每次都是唯一编号
signInfo String 必须 68656C6C6F776F726C64 签名信息
data String 必须 {} 参数
data.macAddr String 必须 D8B04C468B3E:1 水表或电表的表号
出参列表
出参名称 出参类型 样例取值 参数说明
code String 0 状态码-返回0代表请求成功,其他错误码详见错误码列表
msg String 请求成功 状态码的描述
data Double 1009.10 返回的表的读数
接口描述:提供水表和电表的充值功能
入参列表
参数名称 参数类型 必填与否 样例取值 参数说明
reqTime Long 必须 1497143410000(2017-06-11 09:10:10:000) 接口调用的时间戳,在进行调用前获取系统时间,以毫秒为单位;每次接口调用都会进行时间校验,如果时间跨度大于5秒则返回失败
busiPhone String 必须 13500000000 操作账号
busiName String 必须 杭州电堂科技有限公司 账号名称
action String 必须 handleMeterRecharge 接口类型:充值
busiId String 必须 1497143410001 操作流水,要求每次都是唯一编号
signInfo String 必须 68656C6C6F776F726C64 签名信息
data String 必须 {} 参数
data.macAddr String 必须 D8B04C468B3E:1 水表或电表的表号
data.amount Long 必须 10000 充值金额以分为单位
data.handler String 必须 李四 操作员信息
出参列表
出参名称 出参类型 样例取值 参数说明
code String 0 状态码-返回0代表请求成功,其他错误码详见错误码列表
msg String 请求成功 状态码的描述
data String 10001 购电单号
接口描述:提供水表和电表一个月的充值记录查询功能
入参列表
参数名称 参数类型 必填与否 样例取值 参数说明
reqTime Long 必须 1497143410000(2017-06-11 09:10:10:000) 接口调用的时间戳,在进行调用前获取系统时间,以毫秒为单位;每次接口调用都会进行时间校验,如果时间跨度大于5秒则返回失败
busiPhone String 必须 13500000000 操作账号
busiName String 必须 杭州电堂科技有限公司 账号名称
action String 必须 readRechargeList 接口类型:查询读数
busiId String 必须 1497143410001 操作流水,要求每次都是唯一编号
signInfo String 必须 68656C6C6F776F726C64 签名信息
data String 必须 {} 参数
data.macAddr String 必须 89992001 水表或电表的表号
data.endTime Long 必须 1497143410000(2017-06-11 09:10:10:000) 查询截止的时间戳,以毫秒为单位
出参列表
出参名称 出参类型 样例取值 参数说明
code String 0 状态码-返回0代表请求成功,其他错误码详见错误码列表
msg String 请求成功 状态码的描述
data String [] 返回授权用户列表和分页信息
data.chargeWo String 1 充值流水号
data.chargeDate Long 1523882724000 充值日期
data.macAddr String 89999001 设备唯一识别码
data.chargeMoney Long 10000 充值金额以分为单位
接口描述:提供水表和电表近5天的日冻结数据查询功能
入参列表
参数名称 参数类型 必填与否 样例取值 参数说明
reqTime Long 必须 1497143410000(2017-06-11 09:10:10:000) 接口调用的时间戳,在进行调用前获取系统时间,以毫秒为单位;每次接口调用都会进行时间校验,如果时间跨度大于5秒则返回失败
busiPhone String 必须 13500000000 操作账号
busiName String 必须 杭州电堂科技有限公司 账号名称
action String 必须 readDailyCalList 接口类型:查询读数
busiId String 必须 1497143410001 操作流水,要求每次都是唯一编号
signInfo String 必须 68656C6C6F776F726C64 签名信息
data String 必须 {} 参数
data.macAddr String 必须 89999001 水表或电表的表号
data.endTime Long 必须 1497143410000(2017-06-11 09:10:10:000) 查询截止的时间戳,以毫秒为单位
出参列表
出参名称 出参类型 样例取值 参数说明
code String 0 状态码-返回0代表请求成功,其他错误码详见错误码列表
msg String 请求成功 状态码的描述
data String [] 返回授权用户列表和分页信息
data.totalValue Double 1009.10 总示数
data.calcDate Long 1523882724000 冻结日期
data.macAddr String 89999001 设备唯一识别码
data.calcPq Double 10.00 计算用量
data.calcAmt String 3000 计算费用以分为单位
data.actAmt Long 7000 结算余额以分为单位
接口描述:提供分页查询门锁、门禁、水控、梯控、道匝开门与关门等硬件上传的记录
入参列表
参数名称 参数类型 必填与否 样例取值 参数说明
reqTime Long 必须 1497143410000(2017-06-11 09:10:10:000) 接口调用的时间戳,在进行调用前获取系统时间,以毫秒为单位;每次接口调用都会进行时间校验,如果时间跨度大于5秒则返回失败
busiPhone String 必须 13500000000 操作账号
busiName String 必须 杭州电堂科技有限公司 账号名称
action String 必须 readMeterValue 接口类型:查询读数
busiId String 必须 1497143410001 操作流水,要求每次都是唯一编号
signInfo String 必须 68656C6C6F776F726C64 签名信息
data String 必须 {} 参数
data.macAddr String 可选 D8B04C468B3E:1 硬件唯一标识号
data.content.beginTime Long 必须 1523882724000 开始时间
data.content.endTime Long 必须 1523882724000 截止时间
data.userType Short 可选 2 用户类型:1-管理员、2-密码用户、3-卡用户、4-开关时段用户、 5-二维码用户
data.userIdentity String 可选 123456 用户授权码
data.userOutSerial String 可选 33011111111111 用户外部识别号(授权时提供,可以使用身份证号码)
data.pageIndex Integer 可选 1 第几页
data.pageSize Integer 可选 20 每页多少条:系统默认单次最大返回100条
data.pageCount Integer 可选 1 页数
出参列表
出参名称 出参类型 样例取值 参数说明
code String 0 状态码-返回0代表请求成功,其他错误码详见错误码列表
msg String 请求成功 状态码的描述
data String {} 返回授权用户列表和分页信息
data.pageNo Integer 1 分页信息:当前第几页
data.pageSize Integer 20 分页信息:每页多少条
data.totalPage Integer 2 分页信息:总共多少页
data.total Integer 33 分页信息:总共多少条
data.content String [] 操作轨迹
data.content.deviceName String 13幢2单元201门锁 设备名称
data.content.deviceClass Short 4 设备类别
data.content.deviceClassName Short 门锁 设备类别名称
data.content.macAddr String D8B04C468B3E:1 设备唯一识别号
data.content.doneTime Long 1497143410000 操作时间
data.content.userIdentity String 123456 用户授权码
data.content.userOutSerial String 33011111111111 用户外部识别号(授权时提供,可以使用身份证号码)
data.content.operType Short 1 操作类型
data.content.operTypeName String 开门 操作类型说明
data.content.isLegal Boolean true 是否合法用户
data.content.floorList List [1] 电梯楼层
接口描述:提供门锁的电池电量、门锁和开关的信号强弱以及水电表的状态(合闸或开闸);此接口提供的数据为设备监控的缓存数据,最长的时间跨度为1小时
入参列表
参数名称 参数类型 必填与否 样例取值 参数说明
reqTime Long 必须 1497143410000(2017-06-11 09:10:10:000) 接口调用的时间戳,在进行调用前获取系统时间,以毫秒为单位;每次接口调用都会进行时间校验,如果时间跨度大于5秒则返回失败
busiPhone String 必须 13500000000 操作账号
busiName String 必须 杭州电堂科技有限公司 账号名称
action String 必须 readMeterValue 接口类型:查询读数
busiId String 必须 1497143410001 操作流水,要求每次都是唯一编号
signInfo String 必须 68656C6C6F776F726C64 签名信息
data String 必须 {} 参数
data.macAddr String 必须 D8B04C468B3E:1 硬件唯一标识号
出参列表
出参名称 出参类型 样例取值 参数说明
code String 0 状态码-返回0代表请求成功,其他错误码详见错误码列表
msg String 请求成功 状态码的描述
data String {} 返回设备相关的状态、参数等信息
data.battery String 58 电池电量(5.8V)
data.lockSts Short 21 设备状态(21合闸、22开闸)
data.signal Short 17 信号强弱(值越小信号越强)
data.durationTime Long 5000 时间片(设备开后的延迟时间:单位毫秒)
data.status Short 1 设备在线离线状态(0:离线 1:在线)
data.deviceTime Long 1523882724000 监控点的设备时间
data.addDt Long 1523882724000 监控时间点
接口描述:提供水电表开合闸操作记录的查询
入参列表
参数名称 参数类型 必填与否 样例取值 参数说明
reqTime Long 必须 1497143410000(2017-06-11 09:10:10:000) 接口调用的时间戳,在进行调用前获取系统时间,以毫秒为单位;每次接口调用都会进行时间校验,如果时间跨度大于5秒则返回失败
busiPhone String 必须 13500000000 操作账号
busiName String 必须 杭州电堂科技有限公司 账号名称
action String 必须 readMeterValue 接口类型:查询读数
busiId String 必须 1497143410001 操作流水,要求每次都是唯一编号
signInfo String 必须 68656C6C6F776F726C64 签名信息
data String 必须 {} 参数
data.macAddr String 必须 89992001 硬件唯一标识号
data.commandName String 可选 开阀 操作动作(水表:开阀、关阀 电表:跳闸、合闸)
data.endTime Long 必须 1497143410000(2017-06-11 09:10:10:000) 查询截止的时间戳,以毫秒为单位
出参列表
出参名称 出参类型 样例取值 参数说明
code String 0 状态码-返回0代表请求成功,其他错误码详见错误码列表
msg String 请求成功 状态码的描述
data String [] 操作轨迹
data.commandName String 开阀 命令名称
data.commandType Integer 4 命令类型
data.operator String 张三 操作人
data.operateType Integer 1 操作类型(0:自动 1:人工)
data.operateTime Long 1497143410000 操作时间
data.status Integer 1 操作状态(0:成功 1:失败)
1. 设备查询接口
                            
QueryDeviceRequest request = new QueryDeviceRequest("http://localhost:3701");  
/可以设定通讯的超时时间  
/
request.setConnectTimeout(30000);  
request.setReadTimeout(30000);  
/
/每次接口调用的唯一标识号,也可以使用系统内部的操作流水  
String uuid = UUID.randomUUID().toString();  
request.setBusiId(uuid);  
/
/注册时公司名称  
request.setBusiName("杭州电堂");  
/注册时登录的手机号码  
request.setBusiPhone("18638758602");  
/申请的秘钥  
request.setSecretKey("you secret key");  
/如果硬件设备较多则进行分页查询,系统单次查最多 100条  
/
/
/
request.setPageIndex(1);  
request.setPageSize(20);  
request.setPageCount(1);  
ClientImpl client = new ClientImpl();  
try {  
QueryDeviceResponse response = client.getSmartResponse(request);  
if(response.getCode() == 0){  
/
/获取设备列表  
List<SmartDeviceDTO> list= response.getSmartDeviceDTO();  
else{  
/出错,可以查询 response.msg的错误消息  
}
}
/
}
}
catch (ClientException e) {  
e.printStackTrace();  

1.[JAVA]

(如无法下载,建议使用:IE 10 +,Edge,Chrome,Firefox浏览器版本进行下载,如果还是不能下载请确认电脑中是否安装P2P下载工具,当浏览器有下载任务的时候,不能使用P2P下载工具下载,浏览器默认的文件另存;建议关闭p2p下载工具。)

1:程序运行时需要依赖哪些包

除了依赖dtang-java-sdk-smartapi-1.0-SNAPSHOT.jar,在pom文件中还需要添加的依赖如下。

                            
  • <dependency>
  • <groupId>com.alibaba</groupId>
  • <artifactId>fastjson</artifactId>
  • <version>1.2.36</version> 注:如提示报错,先升级基础包版,无法解决可联系技术支持
  • </dependency>

2:其他接口的如何调用?

A:授权用户查询接口对应的request和response分别是QueryUserRequest和QueryUserResponse,具体调用方式参考设备查询接口的样例。

B:用户授权查询对应的request和response分别是AddUserRequest和AddUserResponse,具体调用方式参考设备查询接口的样例。

C:取消用户授权接口对应的request和response分别是RemoveUserRequest和RemoveUserResponse,具体调用方式参考设备查询接口的样例。

D:远程开门接口对应的request和response分别是OpenDoorRequest和OpenDoorResponse,具体调用方式参考设备查询接口的样例。

E:开关复位或关闭锁接口对应的request和response分别是SetOffRequest和SetOffResponse,具体调用方式参考设备查询接口的样例。

F:开关强开或开放锁接口对应的request和response分别是SetOnRequest和SetOnResponse,具体调用方式参考设备查询接口的样例。

G:开关时段开接口对应的request和response分别是SetOnTimeRequest和SetOnTimeResponse,具体调用方式参考设备查询接口的样例。

H:取消开关时段开接口对应的request和response分别是SetOffTimeRequest和SetOffTimeResponse,具体调用方式参考设备查询接口的样例。

3:除了java提供的SDK,是否还支持其他的调用方式?

如果不通过SDK的方式需要调用硬件接口则可以直接采用http通信协议进行通信,传输的消息格式为json的消息;具体的参数内容请参考开发帮助文档

4:对于智能设备的操作需要注意的几点

A:除了查询设备接口,其他与硬件通信的接口都需要传入设备的唯一编码(macAddr),各应用需要自行保存此编码,在通信时需要提供此编码。

B:根据不同的设备类型,传入的参数在相同的接口也会有所不同,比如梯控在授权时则需要传入特殊的楼层信息

C:接口参数中输入的账号信息与所使用的设备会进行绑定,如果您拥有多个账号请使用对应设备归属的账号进行匹配操作,否则会出现找不到设备而出错

D:如果接口返回的code不为0则请参考对应的错误码表进行分析定位。

错误码 错误描述
0处理正常
61000服务启动失败
61001通信异常
61002通信超时
61003连接服务失败
61004通信异常
61005通信配置异常
61006通信包异常
61007通信包异常
61008设备不存在
61009平台链接已断开
61010通信指令异常
61011mac地址异常
61012通信包异常
62001内部错误
62002内部错误
62003内部错误
63000指令解析失败
63001指令解析失败
63002指令解析失败
63003指令解析失败
63004参数不正确
63005不支持此操作
63006指令解析失败
63007指令解析失败
63020参数不正确
63021指令解析失败
63022指令解析失败
63023指令解析失败
63024不支持此操作
63040参数不正确
63041指令解析失败
63060参数不正确
63061指令解析失败
63062参数不正确
63063指令解析失败
63100用户已满
63101用户已存在
63102通信异常
63103非法用户
63104非法用户
63105指令解析失败
63106通信异常
63107非法用户
63108用户不存在
63109管理员不存在
63110指令解析失败
63111身份认证失败
63112卡号不正确
63113密码不正确
63114设备通信异常
63115设备通信异常
63116设备通信异常
63117设备通信异常
63118梯控参数不正确
63119设备通信异常
63120设备通信正常
64000号码已经使用
64001参数不正确
64002操作员已删除或不存在
64003操作员已删除或不存在
64004操作员信息异常
64005账号已锁定
64006数据异常
64007操作员未分配权限
64008没有权限信息
64009参数不正确
64010账号已经存在
64011商户已经使用,不允许删除
64012商户已经使用,不允许删除
64013账号已经存在
64014账号不存在
64015账号不存在
64016数据处理异常
64017数据处理异常
64018数据处理异常
64019数据处理异常
64020数据处理异常
64021数据处理异常
64022数据处理异常
64023数据处理异常
64024数据处理异常
64025数据处理异常
64026数据处理异常
64027数据处理异常
64101会话过期,请重新登陆
64102密码错误,请核对密码
64103获取登陆信息列表失败
64104获取登陆信息列表失败
64105获取子设备信息失败
64106有操作员已分配此角色,不能删除
64107指定商户的角色,不允许删除
64108系统未设定账号使用的角色
64109不允许变更此操作员信息
64110系统未设定账号使用的角色
65000主机已经配置,不能重复配置
65001端口已经使用,请确认配置是否错误
65002主机已经使用,不能删除
65003端口已经使用,请确认配置是否错误
65004服务已使用,不能删除
65005服务未找到,请确认配置是否正常
65006服务已使用,不能删除
65007主机未找到,请确认配置是否正常
65008数据操作异常
65009数据操作异常
65010服务停止失败
65011服务属性配置缺失
66000设备未找到
66001设备已离线
66002设备已经配置
66003设备未找到
66004不支持此操作
66005用户已存在
66006子设备数据异常
66007硬件未就绪
66008硬件未就绪
66009操作数据异常
66010操作数据异常
66011设备已经配置
66012设备已分配,不能删除
66013设备已分配,不能删除
66014设备已使用,不能删除
66015设备已使用,不能删除
66016操作数据异常
66017操作数据异常
67000参数不正确
67001参数不正确
67002新增用户异常
67003用户已满,无法添加用户
67004删除用户异常
67005参数不正确
67006操作数据异常
67007生成二维码异常
67008该用户类型不支持
67009生成秘钥失败
67010签名校验失败
67011该操作已经过期
69000操作指令转换失败
69001主机通信异常
69002主机通信异常