miot-plugin-sdk icon indicating copy to clipboard operation
miot-plugin-sdk copied to clipboard

在没有网关的情况下,新门锁项目采用统一接口开门,蓝牙没有开门事件上报,老项目正常。求解。

Open gaopingfly opened this issue 5 years ago • 13 comments

  • 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 avatar Aug 21 '19 02:08 gaopingfly

@gaopingfly 感谢您提出宝贵的 issue,我会通知开发尽快处理!

MIoTBot avatar Aug 21 '19 02:08 MIoTBot

这里需要有几个问题需要明确: 1.iOS上有这个问题吗? 2.新项目和老项目是你们自己的项目吗? 3.如果新、老项目是你们自己的项目,而我们的SDK在没有改变的情况下,建议检查新老项目的区别。

cfJand avatar Aug 21 '19 09:08 cfJand

1、ios上也有这个问题 2、新、老项目都是我们做的,从代码的角度来说没有问题 3、感觉是企业账号上需要配置,但是目前两个项目的配置基本都是相同的。

有没有明确一点的说法,比如: 1、插件调用device.securityLock().toggle 2、门锁实现什么方法 3、服务器配置什么属性

gaopingfly avatar Aug 23 '19 06:08 gaopingfly

@@请问这个问题还有人跟吗? @MIoTBot

gaopingfly avatar Sep 04 '19 07:09 gaopingfly

@gaopingfly
1、老框架下,Android和ios分别使用的是哪个api进行开门事件上传的?

lvjie0519 avatar Sep 05 '19 03:09 lvjie0519

@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 avatar Sep 06 '19 03:09 gaopingfly

@gaopingfly
1、Android 旧框架是原生代码写的插件,新框架都是RN插件,你如何让新框架下的代码在旧项目上使用? 2、你的意思是,旧框架下插件调用开门的api,事件会自动上报?无需主动调用callSmartHomeApi 的接口是吗?旧框架下开门的接口具体是哪个api? 同时 你也跟设备端确定下,事件上报是否是设备端进行上报的? 2、新框架下有提供 Service.smarthome.setDeviceData(params) 来进行添加事件记录。

lvjie0519 avatar Sep 06 '19 03:09 lvjie0519

@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 avatar Sep 06 '19 06:09 gaopingfly

@gaopingfly
问题很明显了, 有网关的时候,门锁是给网关发信息告知上报开门事件, 然后网关进行上报到服务端;现在没有网关了,是门锁直接与APP进行通信告知APP需要上报开门事件(可能是APP没有进行上报,导致获取不到开门事件)。 @cfJand 看下吧

lvjie0519 avatar Sep 06 '19 06:09 lvjie0519

@gaopingfly 问题的关键在于你没有这个蓝牙网关。 没有网关的情况下,物理锁的开关门事件是无法直接通知到APP的; 如果通过APP执行开关门操作,是可以执行开关门的上报事件的。

cfJand avatar Sep 16 '19 08:09 cfJand

@cfJand 问题又回到原点了。那我用已经上线的项目,在没有蓝牙网关的情况下,插件没有主动上报事件,app开门是有上报的。用新项目却没有。

gaopingfly avatar Sep 19 '19 10:09 gaopingfly

@gaopingfly 你意思是新项目在没有网关的情况下,用APP开门,没有事件上报?

cfJand avatar Sep 20 '19 08:09 cfJand

是的

gaopingfly avatar Sep 23 '19 03:09 gaopingfly