miot-plugin-sdk
miot-plugin-sdk copied to clipboard
在没有网关的情况下,新门锁项目采用统一接口开门,蓝牙没有开门事件上报,老项目正常。求解。
- IPA/APK 是否更新到最新?是
- SDK 是否更新到最新?是
- Check 文档了吗?是
- 是否尝试搜索issue?是
- 是否尝试搜索“常见问题” 是
是否为新品(必填) 新品
关联的产品model ydhome.lock.c1p
项目ID(必填) 无项目ID
用户ID(必填) 任意账户均可复现
企业名称(必填) 优点科技
环境(必填)
- 电脑操作系统:Mac OS
- 手机系统:.Android 6.0
- SDK分支: 10023
- 相关模块: Bluetooth
现象(必填) 在没有网关的情况下,采用device.securityLock().toggle开门,新项目中没有开门事件上传。老项目用新的app有开门事件上传。事件统一用0b接口。请问是我们那里缺少了设置吗
期望(必填) 新项目在没有网关的情况下,可以正常同步门锁开门事件
@gaopingfly 感谢您提出宝贵的 issue,我会通知开发尽快处理!
这里需要有几个问题需要明确: 1.iOS上有这个问题吗? 2.新项目和老项目是你们自己的项目吗? 3.如果新、老项目是你们自己的项目,而我们的SDK在没有改变的情况下,建议检查新老项目的区别。
1、ios上也有这个问题 2、新、老项目都是我们做的,从代码的角度来说没有问题 3、感觉是企业账号上需要配置,但是目前两个项目的配置基本都是相同的。
有没有明确一点的说法,比如: 1、插件调用device.securityLock().toggle 2、门锁实现什么方法 3、服务器配置什么属性
@@请问这个问题还有人跟吗? @MIoTBot
@gaopingfly
1、老框架下,Android和ios分别使用的是哪个api进行开门事件上传的?
@lvjie0519 无论新/旧框架,用米家app的开门接口,都不需要由我们主动上传事件。 目前新框架下的代码在旧项目上使用,是有开门事件上报的。只有新项目上没有。
老框架中事件上传接口如下
android : XmPluginHostApi.instance().callSmartHomeApi(deviceStat.model, "/user/set_user_device_data", jsonObject, new Callback<JSONObject>(), Parser.DEFAULT_PARSER)
ios : MHPluginSDK.callSmartHomeAPI('/user/set_user_device_data',parms, (response) => { if (response.message == 'ok') { callBack(true) } else { callBack(false) } }) }
@gaopingfly
1、Android 旧框架是原生代码写的插件,新框架都是RN插件,你如何让新框架下的代码在旧项目上使用?
2、你的意思是,旧框架下插件调用开门的api,事件会自动上报?无需主动调用callSmartHomeApi 的接口是吗?旧框架下开门的接口具体是哪个api? 同时 你也跟设备端确定下,事件上报是否是设备端进行上报的?
2、新框架下有提供 Service.smarthome.setDeviceData(params) 来进行添加事件记录。
@lvjie0519 1、可能我说的比较绕,你没有理解,我换个说法吧。 1.1、用新框架的插件在“已经上线”的设备上通过device.securityLock().toggle接口开门,会有开门事件上报(插件本身没有主动调用Service.smarthome.setDeviceData去存储事件)。 1.2、用新框架的插件在“未上线”的设备上开门,同样的开门接口,同样没有主动调用存储事件接口,但没有开门事件。
2、旧框架下ios调用开门方法MHXiaomiBLE.toggleLockXiaoMiBLE(0,10.0,(error, message)=>{...}, outTime),无需主动调用callSmartHomeApi接口,在“已经上线”的项目上也会有开门事件。
目前问过设备端的开发,在“未上线”的项目中,他们给网关和app都上报了开门事件。在“有”网关的情况下,新框架插件“能够”正常获取开门事件。但是在“没有”网关的情况下,新框架插件“无法”获取开门事件。
@gaopingfly
问题很明显了, 有网关的时候,门锁是给网关发信息告知上报开门事件, 然后网关进行上报到服务端;现在没有网关了,是门锁直接与APP进行通信告知APP需要上报开门事件(可能是APP没有进行上报,导致获取不到开门事件)。
@cfJand 看下吧
@gaopingfly 问题的关键在于你没有这个蓝牙网关。 没有网关的情况下,物理锁的开关门事件是无法直接通知到APP的; 如果通过APP执行开关门操作,是可以执行开关门的上报事件的。
@cfJand 问题又回到原点了。那我用已经上线的项目,在没有蓝牙网关的情况下,插件没有主动上报事件,app开门是有上报的。用新项目却没有。
@gaopingfly 你意思是新项目在没有网关的情况下,用APP开门,没有事件上报?
是的