门锁 PCBA

更新时间:2021-12-10 06:21:42下载pdf

接口请求方法请使用 TYSdk.apiRequest

查询设备的家庭成员列表

接口说明

tuya.m.device.member.detail.list

接口版本:1.0

请求参数

名称 类型 说明 是否可选
devId String 设备编号
dpIds String dpId 之间用逗号隔开,例如 "12,13"

请求示例

{
 "devId" : "25230882b4e62d61b52a",
 "dpIds" : "12,13"
}

返回示例

{
    "result":[
    {
        "userId":"2334", // 用户编号
        "lockUserId":2, // 锁具用户 id。云端需要保证该值不为 0
        "userContact":"", // 联系方式
        "nickName":"test", // 昵称
        "avatarUrl":"", // 头像地址
        "userType":10, // 成员类型 10:管理员、20:普通成员、 30:没有名字的成员
	"backHomeNotifyAttr":0, // 家人到家提醒是否设置。0-否; 1-是
        "unlockDetail":[ // 成员拥有的解锁方式列表
            {
                "dpId":1, // dpId
                "open":true, // 是否打开
		"count":1, // 当前解锁方式的数量,该值= unlockList.size()
                "unlockList":[ // 解锁方式列表
                    {
                        "unlockId":"1-2", // 开锁方式编号
                        "devId":"vdev000a", // 门锁编号
                        "unlockName":"指纹 1", // 联系方式
                        "unlockAttr":1, // 解锁方式属性。1: 特殊,0: 非特殊
                        "opModeId":2333 // 解锁方式序号
                    }
                  ]
                }
            ]
        }
    ],
    "t":1573024513335,
    "success":true,
    "status":"ok"
}

创建周期性密码(临时密码)

接口说明

tuya.m.device.lock.temppwd.create

接口版本:5.0

请求参数

名称 类型 说明 是否可选
devId String 设备编号
name String 名称
password String 密码
phone String 手机号码
password String 密码
countryCode String 国家码
sn Integer 临时密码编号,创建密码的时候,面板会先向设备创建密码,设备会返回该 sn
effectiveTime Long 生效时间。精确到毫秒(13 位)
availTime Integer 可用次数 0:永久,1:一次性
invalidTime Long 失效时间。精确到毫秒(13 位)
schedule String 定时数据 JSON 格式字符串

请求示例

{
    "devId":"vdev23322333",
    "name":"test",
    "password":"234567",
    "phone":"15158064445",
    "countryCode":"86",
    "sn":34,
    "effectiveTime":1581522427996,
    "availTime":1,
    "invalidTime":1581522429996,
    "schedule":[
        {
            "allDay":true, // 是否全天
            "effectiveTime":720, // 生效时间
            "invalidTime":1080,// 失效时间
            "workingDay":3//星期用一个字节来表示,bit0 ~ bit6 分别代表周日~周六
        }
    ]
}

返回示例

{
    "result":true,
    "t":1573024513335,
    "success":true,
    "status":"ok"
}

更新周期性密码(临时密码)

接口说明

tuya.m.device.lock.temppwd.update

接口版本:1.0

请求参数

名称 类型 说明 是否可选
id Long 临时密码 ID
devId String 设备编号
name String 名称
password String 密码
phone String 手机号码
password String 密码
countryCode String 国家码
sn Integer 临时密码编号。由设备生成
effectiveTime Long 生效时间。精确到毫秒(13 位)
availTime Integer 可用次数 0:永久,1:一次性
invalidTime Long 失效时间。精确到毫秒(13 位)
schedule String 定时数据 JSON 格式字符串

请求示例

{
    "id":2333,
    "devId":"vdev23322333",
    "name":"test",
    "password":"234567",
    "phone":"15158064445",
    "countryCode":"86",
    "sn":34,
    "effectiveTime":1581522427996,
    "availTime":1,
    "invalidTime":1581522429996,
    "schedule":[
        {
            "allDay":true, // 是否全天
            "effectiveTime":720, // 生效时间
            "invalidTime":1080,// 失效时间
            "workingDay":3//星期用一个字节来表示,bit0 ~ bit6 分别代表周日~周六
        }
    ]
}

返回示例

{
    "result":true,
    "t":1573024513335,
    "success":true,
    "status":"ok"
}

删除临时密码

接口说明

tuya.m.device.lock.temppwd.remove

接口版本:2.0

请求参数

名称 类型 说明 是否可选
devId String 设备 ID
targetStatus String 目标数据的状态.有效: “EFFECTIVE”; 无效: “INEFFECTIVE”
pwdId Long 临时密码 ID.1.当删除有效数据的时候,该值是必须的; 2.当删除无效数据的时候,该值将被忽略。此时会删除所有的无效数据

请求示例

{
    "devId":"vdev23322333",
    "targetStatus":"EFFECTIVE",
    "pwdId":2333,
}

返回示例

{
    "result":true,
    "t":1573024513335,
    "success":true,
    "status":"ok"
}

查询临时密码列表

接口说明

tuya.m.device.lock.temppwd.list

接口版本:4.0

请求参数

名称 类型 说明 是否可选
devId String 设备 ID
targetStatus String 目标数据的状态.有效: “EFFECTIVE”; 无效: “INEFFECTIVE”
offset Long 偏移量,是个 Long 型 为当前页最后一条数据的 gmtCreate。为 null 的时候认为是第一页
lastPwdId Long 页面上最后一条数据的主键 ID。为 null 的时候认为是第一页
lastPwdType Integer 页面上最后一条密码的类型。lastPwdId 为 null 的时候该字段可以为空;密码类型。0-周期性密码(临时密码), 1-一次性密码
limit Integer 每页记录数

请求示例

{
    "devId":"vdev23322333",
    "targetStatus":"EFFECTIVE",
    "limit":20,
}

返回示例

{
    "data":[
        {
            "pwdId":"12345", // 密码 id
            "pwdType":0, // 密码类型。0-周期性密码(临时密码), 1-一次性密码
            "name":"周期性密码",// 密码名称
            "gmtCreate":3333,// 密码创建时间
            "effectiveTime":5555, // 密码生效时间
            "expiredTime":5555, //  密码失效时间
            "phone":"86-15158064456",// 手机号码(带国家码)
            "scheduleDetails":[ // 只有类型为周期性密码时,该字段才会有值
                {
                    "allDay":true, // 是否全天
                    "effectiveTime":720, // 生效时间
                    "invalidTime":1080,// 失效时间
                    "workingDay":3 // 星期用一个字节来表示,bit0 ~ bit6 分别代表周日~周六
                },
                {
                    "allDay":true,
                    "effectiveTime":720,
                    "invalidTime":1080,
                    "workingDay":3
                }
            ]
        },
        {
            "pwdId":"12457",
            "pwdType":1,
            "name":"一次性密码",
            "gmtCreate":3333,
            "effectiveTime":5555,
            "expiredTime":5555,
            "phone":"86-15158064456",
            "scheduleDetails":[

            ]
        }
    ],
    "hasNext":true,
    "totalCount":0
}

重发密码

接口说明

tuya.m.device.lock.msg.resend

接口版本:2.0

请求参数

名称 类型 说明 是否可选
devId String 设备 ID
id String 密码 ID
pwdType Integer 密码类型。离线密码: 1,周期性密码:0

请求示例

{
    "devId":"vdev23322333",
    "id":"12",
    "pwdType": 1,
}

返回示例

{
    "result":true,
    "t":1573024513335,
    "success":true,
    "status":"ok"
}

新增解锁方式(指纹+永久密码)

接口说明

tuya.m.device.member.opmode.add

接口版本:4.0

请求参数

名称 类型 说明 是否可选
devId String 设备 ID
userId String 用户编号
unlockId String 解锁编号,如:1-2
unlockName String 解锁方式名称,如: 指纹 02; 不填写的时候云端会自动生成
unlockAttr Integer 解锁方式属性 (1 代表特殊密码)
notifyInfo String 通知方式,一个 JSON 格式字符串

请求示例

{
    "devId":"vdev2332211",
    "userId":"33322",
    "unlockId":"1-2",
    "unlockName":"指纹 2",
  "unlockAttr":1,
    "notifyInfo":{
        "appSend":0, // 是否 app 通知。0: 否;1:是
        "msgPhone":"86-15156789943",// 接受短信的手机号码
        "msgPhoneVerifyCode":"234567", // 接受短信的手机验证码。(如果是更新,手机号码没有变化,该值为空)
        "notifyPhone":"86-15156789943", // 接受语音电话的手机号码
        "voicePhoneVerifyCode":"982356" // 接受语音电话的手机验证码。(如果是更新,手机号码没有变化,该值为空)
    }
}

返回示例

{
    "result":true,
    "t":1573024513335,
    "success":true,
    "status":"ok"
}

更新指纹解锁(指纹+永久密码)

接口说明

tuya.m.device.member.opmode.update

接口版本:2.0

请求参数

名称 类型 说明 是否可选
devId String 设备 ID
opmodeId Long 解锁方式的主键 ID
unlockName String 解锁方式名称,如: 指纹 02; 不填写的时候云端会自动生成
unlockAttr Integer 解锁方式属性 (1 代表特殊密码)
notifyInfo String 通知方式,一个 JSON 格式字符串

请求示例

{
    "devId":"vdev2332211",
    "opmodeId":1333233,
    "unlockName":"指纹 2",
    "unlockAttr":1,
    "notifyInfo":{
        "appSend":0, // 是否 app 通知。0: 否;1:是
        "msgPhone":"86-15156789943",// 接受短信的手机号码
        "msgPhoneVerifyCode":"234567", // 接受短信的手机验证码。(如果是更新,手机号码没有变化,该值为空)
        "notifyPhone":"86-15156789943", // 接受语音电话的手机号码
        "voicePhoneVerifyCode":"982356" // 接受语音电话的手机验证码。(如果是更新,手机号码没有变化,该值为空)
    }
}

返回示例

{
    "result":true,
    "t":1573024513335,
    "success":true,
    "status":"ok"
}

删除解锁方式

接口说明

tuya.m.device.member.opmode.remove

接口版本:2.0

请求参数

名称 类型 说明 是否可选
devId String 设备 ID
opmodeId Long 解锁方式的主键 ID

请求示例

{
    "devId":"vdev2332211",
    "opmodeId":1333233,
}

返回示例

{
    "result":true,
    "t":1573024513335,
    "success":true,
    "status":"ok"
}

查询成员的解锁方式列表

接口说明

tuya.m.device.member.opmode.list

接口版本:2.0

请求参数

名称 类型 说明 是否可选
devId String 设备 ID
userId String 用户 ID
targetUnlockDpIds String 目标解锁方式的 dpId,以逗号隔开。eg: “12,13”
targetUnlockName String 目标解锁方式的名称

请求示例

{
    "devId":"vdev2332211",
    "userId":1333233,
}

返回示例

{
    "result":[
    {
        "userName":"test", // 用户名称
        "userId":"xxx", // 用户 ID
        "userType":10, // 用户类型:0-未知人员类型、10-管理员、20-普通家人 30-标记成员
        "lockUserId":0, // 锁具用户 ID
        "unlockName":"指纹 1", // 解锁方式名称
        "opmodeId":"3444", // 当前解锁方式的主键 ID
        "opmode":"12", // 当前解锁方式的 dpId
        "opmodeValue":"3", // 当前解锁方式的 dpValue
        "sourceAttribute":1,// 解锁方式的来源:1-app 录入、2-门锁录入、3-门锁管理员录入
        "phase":1, // 状态:1-已确认,正常、2- 待确认,等待更新、3-已冻结、4- 待冻结、5-待解冻、6-待重置、7-创建失败、8-已删除、9-待删除、10-待创建
        "unlockAttr":1, // 解锁方式属性 (1 代表劫持属性)
        "notifyInfo":{
            "appSend":0,
            "msgPhone":"86-15156789943",
            "notifyPhone":"86-15156789943"
        }
    }
],
    "t":1573024513335,
    "success":true,
    "status":"ok"
}

动态密码查询

接口说明

tuya.m.device.lock.offlinepwd.get

接口版本:1.0

请求参数

名称 类型 说明 是否可选
devId String 设备 ID
pwdType String 密码类型 0.多次使用的密码 1。单次使用的密码 9。清空码
gmtStart Long 开始时间(非多次密码暂时传 0)
gmtExpired Long 失效时间(非多次密码暂时传 0)
pwdName String 密码名称
countryCode String 国家码。如: 86

请求示例

{
    "devId":"vdev2332211",
    "gmtExpired":"0",
    "pwdType":"1",
    "countryCode":"",
    "pwdName":"",
    "gmtStart":"0"
}

返回示例

{
    "result":{
        "gmtExpired":"1582131600",
        "pwdId":"402195",
        "pwd":"7339435096",
        "gmtStart":"1582110000"
    },
    "t":1573024513335,
    "success":true,
    "status":"ok"
}

离线密码名称变更并发送短信

接口说明

tuya.m.device.lock.offlinepwd.update

接口版本:1.0

请求参数

名称 类型 说明 是否可选
devId String 设备 ID
pwdId String 密码编号
pwdName String 密码名称
phoneWithCountryCode String 接受信息的手机号带国家码

请求示例

{
    "devId":"vdev2332211",
    "pwdId" : "1",
    "pwdName": "密码名称 1",
    "phoneWithCountryCode":"86-15158067886"
}

返回示例

{
    "result":true,
    "t":1573024513335,
    "success":true,
    "status":"ok"
}

门锁动态数据查询

接口说明

tuya.m.scale.history.list

接口版本:2.0

请求参数

名称 类型 说明 是否可选
devId String 设备 ID
dpIds String 查询的 dpId,以逗号分割开的一个数组
offset Integer 偏移量
limit Integer 每页记录数
startTime Long 开始时间
endTime Long 结束时间

请求示例

{
    "devId":"vdev2332211",
    "dpIds":"[1,2]",
    "offset":0,
    "limit":10,
    "startTime": 1581434795,
    "endTime": 1581444795
}

返回示例

{
     "result":{
        "datas":[
            {
                "devId":"6cc81b7b8fd97fe00fguh2",
                "dps":[
                    {
                        "15":"97"
                    }
                ], // 一个数组,里面的每个元素的 key 是 dpId, value 为 DP 的值
                "avatar":"https://airtake-public-data.oss-cn-hangzhou.aliyuncs.com/smart/user_res/avatar/scale/user_icon_default.png",
                "userName":"",
                "unlockName":"",
                "gmtCreate":1579339465000,
                "uuid":"15793300059C669FD0B31E173A6D1E2F5500109465000",
                "userId":"0",
                "status":1,
                "tags":0 // 标位,0 表示其他,1 表示劫持报警
            }
        ],
        "hasNext":false,
        "totalCount":5
    },
    "t":1573024513335,
    "success":true,
    "status":"ok"
}

查询设备的报警记录

接口说明

tuya.m.device.lock.alarm.list

接口版本:2.0

请求参数

名称 类型 说明 是否可选
devId String 设备 ID
dpIds String 查询的 dpId,以逗号分割开的一个数组
offset Integer 偏移量
limit Integer 每页记录数
includeHijack Boolean 是否包含劫持报警

请求示例

{
    "devId":"vdev2332211",
    "dpIds":"[1,2]",
    "offset":0,
    "limit":10,
    "includeHijack": true,
}

返回示例

{
     "result":{
        "datas":[
            {
                "devId":"6cc81b7b8fd97fe00fguh2",
                "dps":[
                    {
                        "15":"97"
                    }
                ], // 一个数组,里面的每个元素的 key 是 dpId, value 为 DP 的值
                "avatar":"https://airtake-public-data.oss-cn-hangzhou.aliyuncs.com/smart/user_res/avatar/scale/user_icon_default.png",
                "userName":"",
                "unlockName":"",
                "gmtCreate":1579339465000,
                "uuid":"15793300059C669FD0B31E173A6D1E2F5500109465000",
                "userId":"0",
                "status":1,
                "tags":0 // 标位,0 表示其他,1 表示劫持报警
            }
        ],
        "hasNext":false,
        "totalCount":5
    },
    "t":1573024513335,
    "success":true,
    "status":"ok"
}

查询设备的激活时间

tuya.m.device.lock.active.period

接口版本:1.0

请求参数

名称 类型 说明 是否可选
devId String 设备 ID

请求示例

{
    "devId":"vdev2332211",
    "dpIds":"[1,2]",
    "offset":0,
    "limit":10,
    "includeHijack": true,
}

返回示例

{
    "result":1574169765239,
    "t":1573024513335,
    "success":true,
    "status":"ok"
}

查询当前用户套餐余量

接口说明

tuya.m.mobile.voice.times.count

接口版本:1.0

请求参数

请求示例

null

返回示例

{
    "result": {
		"remainingTimes": 0, // 剩余次数
		"expireDate": 0, // 过期时间
		"packageStatus": 0 // 套餐状态: 0,未购买任何套餐 1,有可用套餐 2,无可用套餐-过期 3,无可用套餐-次数用完
	}
    "t":1573024513335,
    "success":true,
    "status":"ok"
}

发送短信验证码

接口说明

tuya.m.msg.verifycode.send

接口版本:1.0

请求参数

名称 类型 说明 是否可选
phone String 手机号码(带区号的),格式为: xx-yyyyyyyyyyy 示例: 86-xxxxx

请求示例

{
   "phone":"86-151xxxxxxxx"
}

返回示例

{
    "result":true,
    "t":1573024513335,
    "success":true,
    "status":"ok"
}

查询用户的锁用户 ID

接口说明

tuya.m.device.user.lockid

接口版本:1.0

请求参数

名称 类型 说明 是否可选
devId String 设备 ID

请求示例

{
    "devId":"vdev2332211",
}

返回示例

{
    "result":"12",
    "t":1573024513335,
    "success":true,
    "status":"ok"
}

设置家人到家提醒

接口说明

tuya.m.scale.hijacking.add.config

接口版本:1.0

请求参数

名称 类型 说明 是否可选
devId String 设备 ID
dpId Integer dpId,也就是"家人到家提醒"的 dpId
dpValue String dpValue。这里是 userId。也就是给谁 设置"家人到家提醒",userId 就取谁
typeDpId Integer
typeDpValue String

请求示例

{
    "devId":"vdev2332211",
    "dpId":69,
    "dpValue":"7858797",
    "typeDpValue":"",
    "typeDpId":0
}

返回示例

{
    "result":null,
    "t":1573024513335,
    "success":true,
    "status":"ok"
}

移除家人到家提醒

接口说明

tuya.m.scale.hijacking.remove.config

接口版本:1.0

请求参数

名称 类型 说明 是否可选
devId String 设备 ID
dpId Integer dpId,也就是"家人到家提醒"的 dpId
dpValue String dpValue。这里是 userId。也就是给谁 设置"家人到家提醒",userId 就取谁
typeDpId Integer
typeDpValue String

请求示例

{
    "devId":"vdev2332211",
    "dpId":69,
    "dpValue":"7858797",
    "typeDpValue":"",
    "typeDpId":0
}

返回示例

{
    "result":null,
    "t":1573024513335,
    "success":true,
    "status":"ok"
}

查询成员信息

接口说明

tuya.m.device.member.panel.get

接口版本:1.0

请求参数

名称 类型 说明 是否可选
devId String 设备 ID
userId String 面板用户 ID。当该值为空时,则查询当前登录用户的面板用户信息

请求示例

{
    "devId":"vdev2332211",
    "userId":"0000000001" // 可为空
}

返回示例

{
    "result":{
        "userId":"0000000001",
        "lockUserId":2, // 锁用户 ID
        "nickName":"123",
       "avatarUrl":"smart/user_res/ay1519797357494tgSIE/scale/avatar_1524487255195.jpg",
        "userType":"10" //成员类型 10。管理员 20.普通成员。30。没有名字的成员
        "unlockList":[
                "指纹 1",
                "指纹 2",
                "密码-1"
            ]
},
    "t":1573024513335,
    "success":true,
    "status":"ok"
}

是否可以继续查询离线密码

接口说明

tuya.m.device.lock.offlinepwd.available

接口版本:1.0

请求参数

名称 类型 说明 是否可选
devId String 设备 ID
pwdType Integer 0-可以重复使用的密码; 1-一次性密码

请求示例

{
    "devId":"vdev2332211",
    "pwdType":"1"
}

返回示例

{
    "result":{
        "nextAvailableTime":"1582776000", // 下一个可以查询密码的时间(秒级别)。当 available=false,该值为"0"
        "available":false // 是否可以查询密码。fasle: 否, true: 是
    },
    "t":1573024513335,
    "success":true,
    "status":"ok"
}

保存 dpCode 的 DP 数据

接口说明

tuya.m.device.props.save

接口版本:1.0

请求参数

名称 类型 说明 是否可选
devId String 设备 ID
propKvs String JSON 字符串,dpCode 与 dpValue 的 key-value 对

请求示例

{
    "devId":"vdev2332211",
    "propKvs":"{\"unlock_key_warn\":\"true\"}"
}

返回示例

{
    "result": null,
    "t":1573024513335,
    "success":true,
    "status":"ok"
}

通过 dpCode 查询 DP 值数据

接口说明

tuya.m.device.props.fetch

接口版本:1.0

请求参数

名称 类型 说明 是否可选
devId String 设备 ID
props String 多个 dpCode 之间用逗号隔开

请求示例

{
    "devId":"vdev2332211",
    "props":"\"unlock_key_warn\",\"family_return_warn\""
}

返回示例

{
    "result": {
        "unlock_key_warn":"true",
        "family_return_warn":"false"
    },
    "t":1573024513335,
    "success":true,
    "status":"ok"
}

离线密码 t0 时间查询

接口说明

tuya.m.device.offlinepwd.ble.time

接口版本:1.0

请求参数

名称 类型 说明 是否可选
devId String 设备 ID

请求示例

{
    "devId":"vdev2332211",
}

返回示例

{
    "result": "5e6362a6",
    "t":1573024513335,
    "success":true,
    "status":"ok"
}

查询退出家庭的成员列表

蓝牙门锁适用,用于同步本地跟云端数据用。

接口说明

tuya.m.device.absent.member.list

接口版本:1.0

请求参数

名称 类型 说明 是否可选
devId String 设备 ID

请求示例

{
    "devId":"vdev2332211",
}

返回示例

{
    "result": [
        {
            "userId":12410208,
            "userType":10,
            "lockUserId":2
        },
        {
            "userId":12410209,
            "userType":20,
            "lockUserId":3
        }
    ],
    "t":1573024513335,
    "success":true,
    "status":"ok"
}

设备确认删除退出家庭的成员数据

接口说明

tuya.m.device.absent.member.del.confirm

接口版本:1.0

请求参数

名称 类型 说明 是否可选
devId String 设备 ID
lockUserId Integer 锁具用户 ID。该值会在包含在设备上报的 DP 数据中

请求示例

{
    "devId":"vdev2332211",
    "lockUserId":2
}

返回示例

{
    "result": null,
    "t":1573024513335,
    "success":true,
    "status":"ok"
}

查询家庭下的用户信息并下发给设备

用户的角色变更之后,设备需要同步云端数据。流程跟同步家庭用户删除一致。

接口说明

tuya.m.device.member.list

接口版本:2.0

请求参数

名称 类型 说明 是否可选
devId String 设备 ID

请求示例

{
    "devId":"vdev2332211",
    "lockUserId":2
}

返回示例

{
    "result": {
        "userId":"12",
		"userType": 10,
		"lockUserId":1,
        "avatarUrl":"",
        "userContact":"86-13757150532",
        "unlockList":[
            "指纹 1",
            "指纹 2",
            "密码-1"
        ]
    },
    "t":1573024513335,
    "success":true,
    "status":"ok"
}

发起数据同步

由于每次设备上线+刷新用户列表,都会进行数据同步。当用户频繁刷新用户列表页时,会频繁的发起数据同步,可能前一个同步还没有结束,下一个又开始了。这个无论对于设备本地/云端服务,都是一个浪费,所以该接口的目的是

  • 控制同步的频率,只有面板调用该接口返回的数据的 distributed=true 时,才下发同步指令给设备
  • 云端会控制频率,5s 内只能做一次同步

接口说明

tuya.m.device.opmode.sync.rise

接口版本:2.0

请求参数

名称 类型 说明 是否可选
devId String 设备 ID
dpIds String 需要同步哪些 dpId,例如需要同步密码+指纹+门卡+脸部,则: [11,12,13,15,33]

请求示例

{
    "devId":"vdev2332211",
    "dpIds":"[11,12,13,15,33]"
}

返回示例

{
    "result": {
        "ins":"01020304",
        "distributed":true, // 是否可以下发同步指令给设备。true 时可以下发,false 时不下发
        "dpId":4
    },
    "t":1573024513335,
    "success":true,
    "status":"ok"
}