# 3. Android-SDK 使用指南
# 3.1 说明
MSmartSDK支持美的家电配网的精简版SDK,仅提供配网功能。设备绑定,控制等需要通过open cloud接入。
# 3.2 接入流程
操作步骤 (1)复制SDK的aar包到工程目录libs下。
(2)在build.gradle中增加下列配置
repositories {
flatDir {
dirs 'libs'
}
}
dependencies {
implementation(name: 'xxx.aar', ext: 'aar')
}
备注:xxx 需要替换为对应的名称
(3)添加依赖库,build.gradle 中dependencies 段增加
implementation "com.google.code.gson:gson:2.8.0"
implementation 'androidx.annotation:annotation:1.0.0'
implementation 'com.madgag.spongycastle:core:1.54.0.0'
implementation 'com.madgag.spongycastle:prov:1.54.0.0'
implementation 'com.madgag.spongycastle:pkix:1.54.0.0'
implementation 'com.madgag.spongycastle:pg:1.54.0.0'
(4)权限申请,AndroidManifest.xml中增加权限
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
<uses-permission android:name="android.permission.BROADCAST_STICKY"/>
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE"/>
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.BLUETOOTH" />
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
(5)初始化相关:调用MSmartSDK的初始化方法初始化
MSInterface.getInstance().initSDK(Context context, WorkMode mode, MSConfig config)
示例:
MSConfig config = new MSConfig();
config.serverHost ="https://api-prod.smartmidea.net";
config.enableLog = true; //MSmartSDK日志开关
config.clientId="xxxxxx";
config.clientSecret="xxxxxx";
MSInterface.getInstance().initSDK(context, MSInterface.WorkMode.INLAND_OPEN, config);
示例参数说明:
workMode:开放平台采用INLAND_OPEN, MSInterface.WorkMode.INLAND_OPEN
config.serverHost: 服务器地址
config.enableLog: 是否开启log,调式时为true,发布时需要设置为false
config.clientId: 客户端id,由云端分发
config.clientSecret:客户端秘钥,有云端分发
(6)设置AccessToken
MSInterface.getInstance().setAccessToken("accessToken");
示例参数说明:
a.第三方一般需要先通过第三方APP调用第三方服务器,第三方服务器再调用美的服务器获取令牌。
b.第三方APP获取到accessToken后再调用美的SDK的接口将accessToken设置到美的SDK。
(7) 设置AccessToken刷新代理
MSInterface.getInstance().setTokenRefreshDelegate(new MSTokenRefresh() {
@Override
public boolean refreshToken() {
//接入MSmartSDK的宿主App实现AccessToken的刷新
... ...
//刷新后更新AccessToken
MSInterface.getInstance().setAccessToken(accessToken);
//刷新成功后返回true,否则返回false
return true;
}
});
# 3.3 AP配网
示例:
MSDeviceApConfigParams params = new MSDeviceApConfigParams(Context context);
params.setDeviceSSID(deviceSSID); //"midea_fd_0002"
params.setRouterBSSID(routerBSSID); //"00:9a:cd:8d:fe:0c"
params.setRouterSSID(routerSSID); //"APP_TEST2"
params.setRouterPassword(routerPassword); //"1234567890"
params.setRouterSecurityParams(routerSecurity); //"[WPA2-PSK-CCMP][RSN-PSK-CCMP][ESS][WPS]"
params.setFrequency(frequency);
params.setDeviceSecurityParams("WPA/PSK");
params.setDevicePassword("12345678");
params.setNeedCheckPassword(true);
params.setAdsId(adsid);
params.setRegionId(regionId);
params.setCountryChannelList(channels);
params.setTimeZone(timeZone);
params.setCountryCode(countryCode);
params.setFunctionType(functionType);
params.setModuleServerDomain(moduleDomain);
params.setModuleServerPort(modulePort);
MSDeviceConfigManager.getInstance().startConfigureDevice(params, MSDeviceConfigType.MSDeviceConfigAP, new MSProgressCallback<MSDevice, MSDeviceConfigStep>() {
@Override
public void onProgressUpdate(MSDeviceConfigStep deviceConfigStep) {
LogUtils.i("配网进度:" +String.valueOf(deviceConfigStep));
}
@Override
public void onComplete(MSDevice data) {
LogUtils.i("配网成功:"+data);
bindDevice(data.getDeviceID(),data.getVerificationCode(),data.getDeviceType(),data.getProtocolVersion());//配网成功,调用云端绑定接口
}
@Override
public void onError(MSErrorMessage errMsg) {
LogUtils.d("配网失败:"+errMsg.getErrorMessage());
}
});
示例参数说明:
deviceSSID:设备启动热点时的AP热点SSID,扫描周边符合格式的wifi获取
routerBSSID:家庭路由的BSSID,系统属性获取
routerSSID:家庭路由的SSID,系统属性获取
routerPassword:家庭网络密码,用户手动填入
routerSecurity:家庭网络加密方式,系统属性获取
frequency:家庭网络频率,系统属性获取
adsid:网络接入网关id,(云云对接,从云端获取)
regionId:系统时区ID,获取当前时区代码从云端换区时区ID(1)
channels:信道列表,以用户当前国家向云端询问获取(信道列表代码)
timeZone:当前时区(MSTimeZone.EAST_8)
countryCode:国家代码(CN)
functionType:功能集 MSFunctionType.INTERNEL 或 MSFunctionType. OVERSEAS(国内:MSFunctionType.INTERNEL)
moduleDomain:模块端服务器地址(iotlab.midea.com.cn)
modulePort:模块端服务器端口(28443)
信道列表代码:
public static MSCountryChannel[] getChannels(){
MSCountryChannel[] channels = new MSCountryChannel[4];
channels[0] = new MSCountryChannel((byte)1,(byte)13,(byte)27,false);
channels[1] = new MSCountryChannel((byte)36,(byte)4,(byte)23,false);
channels[2] = new MSCountryChannel((byte)52,(byte)4,(byte)23,true);
channels[3] = new MSCountryChannel((byte)149,(byte)5,(byte)27,false);
return channels;
}
配网成功后调用:
SDK配网成功后回调返回:MideaDevice。其中MideaDevice:protocolVersion:设备协议版本号 ,deviceType:设备品类 。此参数用于云端安全校验绑定,在绑定接口中为非必填参数。
需要先调通服务器的绑定接口,编写bindDevice(String deviceId,String verificationCode )方法或安全绑定接口bindDevice(String deviceId,String verficationCode,String deviceType,String protocolVersion)方法,详情可查询云端绑定接口。
备注:AP配网特殊错误处理方式:
第2步,第3步,第10步失败后,可以引导用户手动操作。用户手动操作完成后回到配网界面调用一次下面的方法,继续配网。
MSDeviceConfigManager.getInstance().resumeConfigureDevice()
# 3.4 BLE配网
扫描蓝牙设备
MSBLEDeviceManager.getInstance().startScan(type, timeOut, new MSBleScanCallback() {
@Override
public void onComplete(MSBleScanInfo data) {
if(!isContain(data)){
Map<String,MSBleScanInfo> map = new HashMap<>();
map.put(data.getMac(),data);
datas.add(map);
}
myAdapter.notifyDataSetChanged();
}
@Override
public void onError(MSErrorMessage errMsg) {
}
}
扫描参数说明:
type:扫描类型
MSBLEModuleType.ALL 所有蓝牙设备
MSBLEModuleType.MS MSmart协议蓝牙设备
MSBLEModuleType. MS_SingleModule MSmart协议单蓝牙设备
MSBLEModuleType. MS_SingleModule MSmart协议蓝牙+wifi设备
timeOut:扫描超时时间,单位:秒
返回说明: MSBleScanInfo:设备信息类 isConfigable():设备是否处于可配网状态,为true才能进入配网 isAuth():是否已经确权,已确权的设备不需要后确权(带WiFi的模式建议使用云云对接查询,纯蓝牙模组,可以根据这个判断设备是否需要进入后确权页面)
发起蓝牙配网
MSDeviceBleConfigParams params = new MSDeviceBleConfigParams();
params.setContext(context);
params.setMsBleScanInfo(msBleScanInfo);
params.setRouterSSID(routerSSID);
params.setRouterPassword(routerPassword);
params.setRouterSecurityParams(routerSecurity);
arams.setFrequency(frequency);
params.setDeviceSecurityParams("WPA/PSK");
params.setDevicePassword("12345678");
params.setNeedCheckPassword(true);
params.setAdsId(adsid);
params.setRegionId(regionId);
params.setCountryChannelList(channels);
params.setTimeZone(timeZone);
params.setCountryCode(countryCode);
params.setFunctionType(functionType);
params.setModuleServerDomain(moduleDomain);
params.setModuleServerPort(modulePort);
MSDeviceConfigManager.getInstance().startConfigureDevice(params, MSDeviceConfigType.MSDeviceBluetooth, new MSProgressCallback<MSDevice, MSDeviceConfigStep>() {
@Override
public void onProgressUpdate(MSDeviceConfigStep msDeviceConfigStep) {
LogUtils.d("BleConfigActivity", msDeviceConfigStep.getStepName().name());
}
@Override
public void onComplete(MSDevice data) {
LogUtils.d("BleConfigActivity 配网成功", data.toString());
bindDevice(data.getDeviceID(),data.getVerificationCode(),data.getDeviceType(),data.getProtocolVersion());//配网成功,调用云端绑定接口
}
@Override
public void onError(MSErrorMessage errMsg) {
LogUtils.d("BleConfigActivity 配网失败", errMsg.getErrorCode() + "//" + errMsg.getErrorMessage());
Toast.makeText(BleConfigActivity.this,"配网失败"+errMsg.getErrorCode(),Toast.LENGTH_LONG).show();
}
});
配网参数说明:
msBleScanInfo:配网对象,为上一步扫描结果中的一个
routerBSSID:家庭路由的BSSID,系统属性获取
routerSSID:家庭路由的SSID,系统属性获取
routerPassword:家庭网络密码,用户手动填入
routerSecurity:家庭网络加密方式,系统属性获取
frequency:家庭网络频率,系统属性获取
adsid:网络接入网关id,(云云对接,从云端获取)
regionId:系统时区ID,获取当前时区代码从云端换区时区ID(1)
channels:信道列表,以用户当前国家向云端询问获取(信道列表代码)
timeZone:当前时区(MSTimeZone.EAST_8)
countryCode:国家代码(CN)
functionType:功能集 MSFunctionType.INTERNEL 或 MSFunctionType. OVERSEAS(国内:MSFunctionType.INTERNEL)
moduleDomain:模块端服务器地址(iotlab.midea.com.cn)
modulePort:模块端服务器端口(28443)
配网成功后调用:
SDK配网成功后回调返回:MideaDevice。其中MideaDevice:protocolVersion:设备协议版本号 ,deviceType:设备品类 。此参数用于云端安全校验绑定,在绑定接口中为非必填参数。
需要先调通服务器的绑定接口,编写bindDevice(String deviceId,String verificationCode )方法或安全绑定接口bindDevice(String deviceId,String verficationCode,String deviceType,String protocolVersion)方法,详情可查询云端绑定接口。
# 3.5 APP混淆配置
混淆配置文件中加入不混淆SDK的配置项
-keep class com.midea.iot.** {*;}
# 3.6 错误码
错误码 | 描述 | 可能原因(列举的原因只是一个子集,并非全部原因) |
---|---|---|
0 | 执行成功 | |
4003 | 由于密码错误,回连家庭路由失败 | 检查配网过程中的家庭路由密码 |
4004 | 回连家庭路由超时 | 应弹出手动连接家庭路由引导页面 |
4005 | 其它错误导致回连家庭路由失败 | |
4008 | 由于密码错误,连接设备AP失败 | 解决方案为在手机的wifi设置界面上对需要配网的设备AP"mdiea_xx_xxxx"进行“忘记密码”或“不保存”操作 |
4009 | 连接设备AP超时 | 此时APP应弹出界面提示用户手动连接对应的AP |
4010 | 其它导致连接设备AP失败 | |
4011 | AP配网在AP模式下超时时间内未发现设备 | 1.AP热点不稳定--手机离设备进一点;自动切wifi;【iOS】本地网络权限-系统-设置-美居权限管理 2.在手机设置页面连接AP热点时,手机状态栏wifi图标还未出现就切换到app界面,这种大概率发生在ap热点是open模式(ap热点无密码),手机系统对这种热点有些限制,导致手机和热点连接需要较长时间 |
4013 | 配网在STA模式下超时时间内未发现设备 | 1.路由器密码输错 2.路由器负载过多 3.模块故障,可与模组同事分析模组相关log排查 |
4014 | 设置临时id应答超时 | 1.AP热点不稳定 2.手机和设备直接建立的tcp异常断开 |
4015 | 设置临时id返回值错误 | 1、模块端有问题 2、多云模块设置成了非美居配网模式 |
4016 | 网络参数错误 | 网络不稳定 |
4017 | 写ID网络异常 | 多为模块端主动关闭socket |
4018 | 其它原因到时写ID失败 | 未知,需要联调 |
4023 | 新模块设置ssid密码环节超时无应答 | AP配网,0x70指令模块超时无应答 1.手机和设备直接建立的tcp异常断开 2.在手机设置页面连接AP热点时,手机状态栏wifi图标还未出现就切换到app界面,这种大概率发生在ap热点是open模式(ap热点无密码),手机系统对这种热点有些限制,导致手机和热点连接需要较长时间 3.AP热点不稳定 4.模块在收到指令后立刻由AP模式切换至STA模式导致tcp连接断开,从而导致手机端未收到模块的应答 |
4024 | 旧模块设置ssid密码环节返回应答错误 | AP配网,0x68指令模块应答非0 |
4025 | 旧模块设置ssid密码环节超时无应答 | AP配网,0x68指令模块超时无应答 1.AP热点不稳定 2.手机和设备直接建立的tcp异常断开 |
4026 | AP配网,写网络配置,返回数据解析不成功 | AP配网,0x68、0x70共用,多为网络不稳定数据发送不全导致 |
4027 | AP配网,写网络配置,发生读写错误 | AP配网,0x68、0x70共用,多为模块主动关闭socket --模组的问题,1、wifi被自动切走限制;2、(模组把socket断开)手机靠近设备;重试配网;3、多次失败联系客服; |
4028 | AP配网,写网络配置,其它原因失败 | AP配网,0x68、0x70共用,未知原因,需联调 与4027一样 |
4029 | AP配网,设备切STA模式失败 | 1.AP热点不稳定 2.手机和设备直接建立的tcp异常断开 3.模块在收到指令后立刻由AP模式切换至STA模式导致tcp连接断开,从而导致手机端未收到模块的应答 |
4031 | 快连配网在超时时间内未发现设备(局域网或者云端发现) | 1.输入的家庭路由的密码错误 2.路由器上负载设备过多 3.模块出了故障 4.家庭路由器的模式是否是11bgn mixed或者11n ,如果是这两者任何一种,请切换成其他的模式 5.模块是旧模块,当前的配网是一型一码快连,模块不支持 --与1307一致 |
4032 | 当前不支持该模块版本的配网,需升级SDK | 1.使用的模块版本较高,而使用的SDK版本较低,两者不匹配,需要升级SDK |
4033 | AP配网,打开手机wifi失败 | |
4034 | AP配网,家庭路由加密方式不支持 | |
4035 | AP配网,连接家庭路由密码错误 | |
4036 | AP配网,连接家庭路由超时 | |
4037 | AP配网,其它原因导致连接家庭路由失败 | |
4038 | AP配网,连接设备发生IO错误 | 多为模块关闭了socket连接导致 --与4027一致 |
4039 | AP配网,其它原因导致连接设备失败 | 1、模块未监听对应端口 2、模块广播里的端口不对应 |
4040 | AP配网,A0获取设备信息失败 | 多为网络不稳定 |
4041 | AP配网,A0命令发生异常 | 多为模块主动关闭socket ---4027一致 |
4042 | AP配网,A0命令应答超时 | 模块未应答A0指令,或未在规定时间内应答 |
4043 | AP配网,A0命令返回格式异常 | 模块应答格式不正确 |
4044 | AP配网,A0命令其它错误 | 未知,需要联调 |
4045 | 快连配网,家庭路由加密方式不支持 | |
4046 | 快连配网,连接家庭路由密码错误 | |
4047 | 快连配网,连接家庭路由超时 | |
4048 | 快连配网,其它原因导致连接家庭路由失败 | |
4049 | 快连配网,发送组播包失败 | |
4050 | 蓝牙配网,蓝牙连接断开 | 1、建议开关蓝牙后重试;2、手机靠近设备; |
4051 | 蓝牙配网,获取公钥失败 | |
4052 | 蓝牙配网,秘钥校验失败 | |
4053 | 蓝牙配网,发送网络信息,模块回复解析失败 | 蓝牙配网,0x69指令,未知回复 |
4054 | 蓝牙配网,广域网发现设备失败 | |
4055 | 蓝牙配网和控制,token校验失败 | |
4056 | 蓝牙配网,找不到SSID | 0x63指令,模块端的回复 |
4057 | 蓝牙配网,连接路由失败(一代蓝牙) | 0x63指令,模块端的回复2(一代蓝牙) 1、密码错误;2、距离太远;3、5G;4、MAC地址白名单;5、DHCP功能没打开--路由器设置 |
4058 | 蓝牙配网,DNS解析失败--模组解析服务器域名 | 0x63指令,模块端的回复 wifi间歇性断开、路由器限制访问美居链接、路由器本身设置了DNS |
4059 | 蓝牙配网,与服务器建立tcp失败 | 0x63指令,模块端的回复 |
4060 | 蓝牙配网,心跳包超时 | 0x63指令,模块端的回复 |
4061 | 蓝牙配网,登陆过程SST错误 | 0x63指令,模块端的回复 |
4062 | 蓝牙配网,模组主动重启 | 0x63指令,模块端的回复 |
4063 | 蓝牙配网,模组被动重启 | 0x63指令,模块端的回复 |
4064 | 蓝牙配网,SDK认证失败 | 0x63指令,模块端的回复 |
4065 | 蓝牙配网,登陆过程被服务器主动关闭 | 0x63指令,模块端的回复 |
4066 | 蓝牙配网,登陆过程发送数据失败 | 0x63指令,模块端的回复 |
4079 | 蓝牙配网,蓝牙未开启 | 1.手机蓝牙未打开 |
4082 | 蓝牙其它错误 | |
4083 | 蓝牙配网,恢复配网出错 | |
4084 | 蓝牙配网和控制,蓝牙交互过程超时 | |
4090 | AP配网,模块返回密码错误 | 预研,尚未投入使用 AP 配网,0x70指令 模块应答 4 |
4091 | 蓝牙二代配网,获取license失败 | 二代蓝牙协议,秘钥协商,云端接口获取失败,或者返回license返回空(云端没有配置对应mac的license),如是接口异常,则,返回接口异常的错误码 |
4092 | 蓝牙二代配网,通过license进行秘钥协商失败 | |
4093 | 蓝牙二代配网,69指令,连接出错(包括模范返回错误) | |
4094 | 二代蓝牙配网,模组返回路由密码错误 | 改密码 |
4095 | 写网络参数时,模块返回不支持此信道 | |
4096 | 蓝牙配网,模块返回两次连接参数不一致 | |
4097 | 蓝牙配网,模块回复wifi信息,参数错误 | |
4098 | 蓝牙配网,模组回复路由信号弱 | |
4099 | 蓝牙配网,模组0D上报指令上报DHCP失败 | 修改路由器设置,打开DHCP |
4100 | 蓝牙配网,模组0D上报指令上报路由器认证错误 | |
4101 | 蓝牙配网,模组0D上报指令上报路由器关联错误 | |
4115 | 蓝牙二代配网,0D上报/0x63查询返回 0x10 | 服务器登陆超时。 |
4116 | 蓝牙二代配网,0D上报/0x63查询返回 0x11 | APP发送的信道在1~13之间,且SSID包含有“5G/-5G/_5G”等有5G标识的相关字符集,WiFi模块扫描路由器AP失败。 |
4117 | 蓝牙二代配网,0D上报/0x63查询返回 0x12 | APP发送的信道在1-13之间,且SSID没有包含“5G/-5G/_5G”相关字符集,wifi模块扫描路由器AP失败。 |
4118 | 蓝牙二代配网,0D上报/0x63查询返回 0x13 | APP发送的信道是0,且SSID中没有包含“5G/-5G/_5G”相关字符集wifi模块扫描路由器AP失败。 5Gwifi处理 |
4119 | 蓝牙二代配网,0D上报/0x63查询返回 0x14 | APP发送的信道是>13,且SSID中没有包含“5G/-5G/_5G”相关字符集wifi模块扫描路由器AP失败5Gwifi处理 |
4120 | 蓝牙二代配网,0D上报/0x63查询返回 0x15 | APP发送的信道>13,且SSID包含有“5G/-5G/_5G”等有5G标识的相关字符集,wifi模块扫描路由器AP失败。5Gwifi处理 |
4121 | 蓝牙二代配网,0D上报/0x63查询返回 0x16 | APP发送的信道是0,且SSID包含有“5G/-5G/_5G”等有5G标识的相关字符集,wifi模块扫描路由器AP失败。5Gwifi处理 |
4123 | 蓝牙配网国家码错误 | 蓝牙配网0x67指令,模块应答国家码错误 |
4124 | 蓝牙配网时区错误 | 蓝牙配网0x67指令,模块应答时区错误 |
4125 | 蓝牙配网信道表错误 | 蓝牙配网0x67指令,模块应答信道表错误 |
4127 | AP配网国家码错误 | 1.AP配网,APP未传国家码给SDK 2.AP配网0x70指令,模块0x8070指令应答24 ,即国家码错误(非大写字母 A-Z) |
4128 | AP配网时区错误 | 1.AP配网,APP未传时区给SDK 2.AP配网0x70指令,模块0x8070指令应答25 ,即时区错误 (time_zone > 24) |
4129 | AP配网信道表错误 | 1.AP配网,APP未传信道表给SDK 2.AP配网0x70指令,模块0x8070指令应答26 ,即信道表错误 (信道表数量 < 1 或者 > 10) |
4130 | 蓝牙配网国家码或信道发送失败 | 多为国家码信道参数缺失或格式有误 |
4131 | 蓝牙mesh设备,云端获取deviceId接口失败 | 接口请求错误了 |
4132 | 蓝牙mesh设备,发送netkey信息到模组失败 | 蓝牙断开,频偏等原因都有可能 |
4133 | 蓝牙mesh设备,发送netkey信息时机不对 | 设备已经入网了,还发netkey过去 |
4134 | 发送mesh设备回复的mesh信息失败 | 接口请求失败了 |
4135 | AP配网,模组重新进入AP | 1、密码错误 2、模组不支持路由格式 仅安卓有,1307(疑似密码错误) |
4136 | AP配网,模块服务器域名错误 | 1.AP配网,二合一模块广播附加功能高字节bit0为1时,APP未传模块的服务器域名给SDK 2.AP配网0x70指令,模块0x8070指令应答27 ,即域名长度错误(域名长度>50) |
4137 | AP配网,模块服务器端口号错误 | 模块配网要求必须传模块服务器端口号,APP传入参数中缺失服务器端口号 (二合一模块广播附加功能高字节bit0为1) |
4138 | AP配网,区域ID错误 | 模块配网要求必须传城市ID,APP传入参数中缺失城市ID (二合一模块附加功能城市ID为1) |
4139 | AP配网,功能集类型错误 | 模块配网要求必须传功能集类型,APP传入参数中缺失功能集类型 (二合一模块广播附加功能高字节bit0为1) |
4140 | 蓝牙配网,模块服务器域名错误 | 模块配网要求必须传模块服务器域名,APP传入参数中缺失服务器端口号 (二合一模组,设备蓝牙广播中标志为二合一固件) |
4141 | 蓝牙配网,模块服务器端口号错误 | 模块配网要求必须传模块服务器端口号,APP传入参数中缺失服务器端口号 (二合一模组,设备蓝牙广播中标志为二合一固件) |
4142 | 蓝牙配网,区域ID错误 | 模块配网要求必须传城市ID,APP传入参数中缺失城市ID (二合一模组,设备蓝牙广播中标志为需要区域ID) |
4143 | 蓝牙配网,功能集类型错误 | 模块配网要求必须传功能集类型,APP传入参数中缺失功能集类型 (二合一模组,设备蓝牙广播中标志为二合一固件) |
4144 | 蓝牙配网,模块回复不支持5g WiFi | 模块回复不支持5G WiFi |
4145 | 蓝牙配网,模块回复设备已被绑定 | 模块回复设备已被绑定(按道理被绑定,不应该能进入配网模式,碰到这个,需要先看下设备广播是否正确) |
4146 | 蓝牙配网,模块回复数据接收失败 | 一代蓝牙配网,0x67指令模块回复0xff |
4147 | 当前模组不支持蓝牙绑定 | 一般是模组固件不对,需上层业务校验 |
4148 | 蓝牙后确权查询失败 | |
4149 | 蓝牙后确权设置失败 | |
4150 | 蓝牙设备状态上报确权失败 | |
4151 | 当前配网方式不支持此类附加动作 | 执行配网过程附加动作失败 |
4153 | 配网参数错误 | |
4154 | 蓝牙配网发送网络信息失败 | 蓝牙配网,发送wifi配置信息,消息组装失败 |
4160 | ADS集群ID错误 | |
4161 | ADS DNS解析错误 | |
4162 | ADS Tcp连接失败 | |
4163 | 请求接入层域名错误 | |
4164 | 蓝牙ADS集群ID错误 | |
4165 | 蓝牙DNS解析错误 | |
4166 | 蓝牙Tcp连接失败 | |
4167 | 蓝牙请求接入层域名错误 | |
4168 | 蓝牙配网,局域网在线,云端查找sn和随机数都没找到 | |
4169 | AP配网,局域网在线,云端查找sn和随机数都没找到 | 路由器是否能联网,或是有什么联网限制(云端提供一个页面,可用于测试是否能连接上美的云)【测试一下功能】 |
4177 | 网桥设备切换挂靠模式,模组不支持 | |
4178 | 网桥设备切换挂靠模式,模组未验证 | |
1321 | 广域网查询,云端发现sn在线,但是随机数对不上 | |
1307(有可能是其他错误码) | 广域网查询,云端发现随机数和sn都不在线,并且设备局域网不在线(没连上路由器) | |
4170 | 网桥子设备配网,业务层没有传家庭id | |
4171 | 网桥子设备配网,云端获取deviceId失败 | |
4172 | 网桥子设备配网,发送deviceId,familyId给模组失败 | |
4173 | 模组ADS ID错误 | |
4174 | 模组请求接入层域名错误 | |
4175 | 模组反馈路由信号太弱 |