esp-aliyun icon indicating copy to clipboard operation
esp-aliyun copied to clipboard

天猫精灵 零配不成功

Open yl673091830 opened this issue 4 years ago • 25 comments

1. 开发环境

  • 模组或开发板:
  • esp-aliyun 版本():
  • ESP8266_RTOS_SDK 版本( crosstool-ng-1.22.0-100-ge567ec7b):
  • ESP-IDF 版本(v3.2):

2. 问题描述

使用公版APP 一键配网可以成功, 但是使用天猫精灵零配不成功,侦测不到天猫精灵的配网信号,一直在扫AP,切换channel

2.1 复现步骤

  1. ...
  2. ...

2.2 复现问题的代码

3. 调试 Logs

I (43) boot: ESP-IDF v3.2-dirty 2nd stage bootloader I (43) boot: compile time 17:00:06 I (43) qio_mode: Enabling default flash chip QIO I (50) boot: SPI Speed : 40MHz I (56) boot: SPI Mode : QIO I (63) boot: SPI Flash Size : 4MB I (69) boot: Partition Table: I (74) boot: ## Label Usage Type ST Offset Length I (86) boot: 0 nvs WiFi data 01 02 00009000 00004000 I (97) boot: 1 otadata OTA data 01 00 0000d000 00002000 I (109) boot: 2 phy_init RF data 01 01 0000f000 00001000 I (120) boot: 3 ota_0 OTA app 00 10 00010000 000f0000 I (132) boot: 4 fctry WiFi data 01 02 00100000 00004000 I (143) boot: 5 ota_1 OTA app 00 11 00110000 000f0000 I (155) boot: End of partition table I (161) boot: No factory image, trying OTA 0 I (169) esp_image: segment 0: paddr=0x00010010 vaddr=0x40210010 size=0xac2b8 (705208) map I (420) esp_image: segment 1: paddr=0x000bc2d0 vaddr=0x3ffe8000 size=0x00830 ( 2096) load I (421) esp_image: segment 2: paddr=0x000bcb08 vaddr=0x3ffe8830 size=0x0019c ( 412) load I (431) esp_image: segment 3: paddr=0x000bccac vaddr=0x40100000 size=0x06794 ( 26516) load 0x40100000: _stext at ??:?

I (453) boot: Loaded app from partition at offset 0x10000 I (514) system_api: Base MAC address is not set, read default base MAC address from BLK0 of EFUSE I (514) system_api: Base MAC address is not set, read default base MAC address from BLK0 of EFUSE I (704) phy_init: phy ver: 1055_12 I (704) reset_reason: RTC reset 2 wakeup 0 store 0, reason is 2 W (704) wrapper_kv: nvs get blob q_rt failed with 1102 I (714) factory_rst: quick reboot times 1, don't need to restore I (724) gpio: GPIO[4]| InputEn: 0| OutputEn: 1| OpenDrain: 0| Pullup: 0| Pulldown: 0| Intr:0 I (734) gpio: GPIO[15]| InputEn: 0| OutputEn: 1| OpenDrain: 0| Pullup: 0| Pulldown: 0| Intr:0 I (754) pwm: --- PWM v3.2

[prt] log level set as: [ 4 ] W (804) wrapper_kv: nvs get blob stassid failed with 1102 W (804) wrapper_kv: nvs get blob scmode failed with 1102 I (814) conn_mgr: my print test configure 31 [crt] awss_config_press(180): enable awss I (824) app main: IOTX_AWSS_ENABLE I (824) conn_mgr: my print test awss_start 31 I (834) app main: IOTX_AWSS_START [inf] zconfig_init(260): zconfig_init I (854) awss: Open monitor mode [crt] aws_switch_channel(166): chan 1 [crt] aws_switch_channel(166): chan 6 [crt] aws_switch_channel(166): chan 11 ..................................... [crt] aws_switch_channel(166): chan 9 [crt] aws_switch_channel(166): chan 10 [crt] aws_switch_channel(166): chan 11 [crt] aws_switch_channel(166): chan 12 [crt] aws_switch_channel(166): chan 13 [crt] aws_switch_channel(166): chan 1 [crt] aws_switch_channel(166): chan 3 [crt] aws_switch_channel(166): chan 5 [crt] aws_switch_channel(166): chan 6 [crt] aws_switch_channel(166): chan 9 [crt] aws_switch_channel(166): chan 11 [crt] aws_switch_channel(166): chan 12 [crt] aws_switch_channel(166): chan 13 [crt] aws_switch_channel(166): chan 1 [crt] aws_switch_channel(166): chan 6 [crt] aws_switch_channel(166): chan 11 [crt] aws_switch_channel(166): chan 1 [crt] aws_switch_channel(166): chan 2 [crt] aws_switch_channel(166): chan 3 [crt] aws_switch_channel(166): chan 4 [crt] aws_switch_channel(166): chan 5 [crt] aws_switch_channel(166): chan 6 [crt] aws_switch_channel(166): chan 7 [crt] aws_switch_channel(166): chan 8 [crt] awss_save_apinfo(271): [32] ssid:CMCCxxxxxxxxxxxxxx [crt] aws_switch_channel(166): chan 9 [crt] aws_switch_channel(166): chan 10 [crt] aws_switch_channel(166): chan 11 [crt] aws_switch_channel(166): chan 12 [crt] aws_switch_channel(166): chan 13 [crt] aws_switch_channel(166): chan 1 [crt] aws_switch_channel(166): chan 3 [crt] aws_switch_channel(166): chan 5 [crt] aws_switch_channel(166): chan 6 [crt] aws_switch_channel(166): chan 8 [crt] aws_switch_channel(166): chan 9 [crt] aws_switch_channel(166): chan 11 [crt] aws_switch_channel(166): chan 12 [crt] aws_switch_channel(166): chan 13 [crt] aws_switch_channel(166): chan 1 [crt] aws_switch_channel(166): chan 6 [crt] aws_switch_channel(166): chan 11 [crt] aws_switch_channel(166): chan 1 [crt] aws_switch_channel(166): chan 2 [crt] aws_switch_channel(166): chan 3

4. 其他项

// 如果涉及到配网或其他兼容性问题,请提供具体手机型号、路由型号或其他信息。

yl673091830 avatar Jun 30 '20 14:06 yl673091830

可以试一下这个工程:https://github.com/espressif/esp-ali-smartliving

Eavo avatar Jul 01 '20 01:07 Eavo

@yl673091830 请说明一下使用的 esp-aliyun 版本和 ESP8266_RTOS_SDK 版本? 使用命令: git describe --always --tags --dirty

另外对天猫精灵说 “发现设备” 之后, 天猫精灵是否回复了“未发现设备”?

ljy770 avatar Jul 01 '20 08:07 ljy770

1、是这个版本信息吗 v3.2-dirty

git describe --always --tags --dirty

v3.2-dirty

2、天猫精灵搜索一会说“搜了一分钟都没找到智能设备,是否产品没有进入配网状态”,但是从调试log上看 ESP8266是在配网状态的

yl673091830 avatar Jul 01 '20 08:07 yl673091830

你给的是 ESP8266_RTOS_SDK 版本, esp-aliyun 版本呢? 是用的 master 最新的吗?

ljy770 avatar Jul 01 '20 08:07 ljy770

esp-aliyun 是最新版本的

yl673091830 avatar Jul 01 '20 08:07 yl673091830

设备有没有烧录三元组呢? 或者 make erase_flash 之后没有重新烧写?

ljy770 avatar Jul 01 '20 08:07 ljy770

重新烧录了三元组。反复试了多次都不行,天猫精灵配网不成功,然后用手机一键配网就可以,应该不是三元组的问题

yl673091830 avatar Jul 01 '20 08:07 yl673091830

用一键配网时,需要用手机扫描二维码才能配网成功,天猫精灵零配时没有这一步,是不是设备虽然在配网模式,但是没有发送三元组信息或者发送的信息有问题,导致天猫精灵找不到找不到设备

yl673091830 avatar Jul 01 '20 09:07 yl673091830

我们内部先确认一下给您答复。

需要看下设备是否已发出零配请求帧, 即 vender specific OUI 是 "D8-96-E0" 的 probe request. 如果发出了,为什么天猫精灵没有收到。

ljy770 avatar Jul 01 '20 09:07 ljy770

好的,谢谢,等您答复~

另外,1、一键配网时需要扫描二维码才能配网成功,是不是这个版本不支持标准配网?2、后续会推出支持标准配网的版本吗?

yl673091830 avatar Jul 01 '20 10:07 yl673091830

不好意思,您说的标准配网是哪种? 我们有支持一键配网,天猫精灵配网,设备热点配网

ljy770 avatar Jul 01 '20 10:07 ljy770

这是生活物联网平台的截图,必须选自定义配网,一键配网才能成功,默认的选官方标准配网,设备一直在切换信道,获取不到配网信息:图 1、

图 2

yl673091830 avatar Jul 01 '20 10:07 yl673091830

@Eavo 你提供的工程连接,按照步骤操作,提示如下错误,请问该如何解决?

下面是调试log: Administrator@Q8VVDYMB1BQOX2A MINGW32 /home/ESP8266_RTOS_SDK/esp-ali-smartliving/ali-smartliving-device-sdk-c

make reconfig

SELECT A CONFIGURATION:

1. config.esp32.aos     4) config.mk3060.aos    7) config.ubuntu.x86

2. config.esp8266.aos   5) config.mk3080.aos    8) config.win7.mingw32

3. config.macos.x86     6) config.rhino.make    9) config.xboard.make
   #? 2

SELECTED CONFIGURATION:

VENDOR : esp8266 MODEL : aos

CONFIGURE .............................. [examples] CONFIGURE .............................. [src/infra/log] CONFIGURE .............................. [src/infra/system] CONFIGURE .............................. [src/infra/utils] CONFIGURE .............................. [src/protocol/alcs] CONFIGURE .............................. [src/protocol/coap/cloud] CONFIGURE .............................. [src/protocol/coap/local] CONFIGURE .............................. [src/protocol/http] CONFIGURE .............................. [src/protocol/http2] CONFIGURE .............................. [src/protocol/mqtt] CONFIGURE .............................. [src/ref-impl/hal] CONFIGURE .............................. [src/ref-impl/tls] CONFIGURE .............................. [src/sdk-impl] CONFIGURE .............................. [src/services/awss] CONFIGURE .............................. [src/services/dev_bind] CONFIGURE .............................. [src/services/dev_diagnosis] CONFIGURE .............................. [src/services/http2_stream] CONFIGURE .............................. [src/services/linkkit/cm] CONFIGURE .............................. [src/services/linkkit/dev_reset] CONFIGURE .............................. [src/services/linkkit/dm] CONFIGURE .............................. [src/services/mdal/mal] CONFIGURE .............................. [src/services/mdal/sal] CONFIGURE .............................. [src/services/ota] CONFIGURE .............................. [src/services/shadow] CONFIGURE .............................. [src/services/subdev] CONFIGURE .............................. [src/tools/linkkit_tsl_convert]

BUILDING WITH EXISTING CONFIGURATION:

VENDOR : esp8266 MODEL : aos

this one Components:

. examples . src/infra/log . src/infra/system . src/infra/utils . src/protocol/alcs . src/protocol/coap/cloud . src/protocol/coap/local . src/protocol/http . src/protocol/http2 . src/protocol/mqtt . src/ref-impl/hal . src/ref-impl/tls . src/sdk-impl . src/services/awss . src/services/dev_bind . src/services/dev_diagnosis . src/services/http2_stream . src/services/linkkit/cm . src/services/linkkit/dev_reset . src/services/linkkit/dm . src/services/mdal/mal . src/services/mdal/sal . src/services/ota . src/services/shadow . src/services/subdev . src/tools/linkkit_tsl_convert

this one

Administrator@Q8VVDYMB1BQOX2A MINGW32 /home/ESP8266_RTOS_SDK/esp-ali-smartliving/ali-smartliving-device-sdk-c

make menuconfig

make: *** [/home/ESP8266_RTOS_SDK/esp-ali-smartliving/ali-smartliving-device-sdk-c/build-rules/_rules-top.mk:202:menuconfig] 错误 126

Administrator@Q8VVDYMB1BQOX2A MINGW32 /home/ESP8266_RTOS_SDK/esp-ali-smartliving/ali-smartliving-device-sdk-c

make

BUILDING WITH EXISTING CONFIGURATION:

VENDOR : esp8266 MODEL : aos

echo this one this one make[1]: *** 没有规则可制作目标“E:/▒▒·▒▒▒▒/WiFi▒▒▒▒/▒▒▒▒▒▒▒/msys32/home/ESP8266_RTOS_SDK/esp-ali-smartliving/ali-smartliving-device-sdk-c/src/infra/utils/digest/utils_sha1.c”,由“/home/ESP8266_RTOS_SDK/esp-ali-smartliving/ali-smartliving-device-sdk-c/.O/src/infra/utils/digest/utils_sha1.o” 需求。 停止。 make: *** [/home/ESP8266_RTOS_SDK/esp-ali-smartliving/ali-smartliving-device-sdk-c/build-rules/_rules-submods.mk:5:sub-mods] 错误 2

Administrator@Q8VVDYMB1BQOX2A MINGW32 /home/ESP8266_RTOS_SDK/esp-ali-smartliving/ali-smartliving-device-sdk-c

make clean

Administrator@Q8VVDYMB1BQOX2A MINGW32 /home/ESP8266_RTOS_SDK/esp-ali-smartliving/ali-smartliving-device-sdk-c

make

BUILDING WITH EXISTING CONFIGURATION:

VENDOR : esp8266 MODEL : aos

echo this one this one make[1]: *** 没有规则可制作目标“E:/▒▒·▒▒▒▒/WiFi▒▒▒▒/▒▒▒▒▒▒▒/msys32/home/ESP8266_RTOS_SDK/esp-ali-smartliving/ali-smartliving-device-sdk-c/src/infra/utils/digest/utils_sha1.c”,由“/home/ESP8266_RTOS_SDK/esp-ali-smartliving/ali-smartliving-device-sdk-c/.O/src/infra/utils/digest/utils_sha1.o” 需求。 停止。 make: *** [/home/ESP8266_RTOS_SDK/esp-ali-smartliving/ali-smartliving-device-sdk-c/build-rules/_rules-submods.mk:5:sub-mods] 错误 2

看起来是你用的msys32 shell不支持当前项目编译,该项目还是要使用Ubuntu系统编译。

yuanjianmin avatar Jul 01 '20 12:07 yuanjianmin

这是生活物联网平台的截图,必须选自定义配网,一键配网才能成功,默认的选官方标准配网,设备一直在切换信道,获取不到配网信息:图 1、 图 2

看不到图片,我在 ”人机交互“->”配网引导“ 页面没有看到官方标准配网,只有 默认配网方式:备选配网方式:零配方式(需设备支持)

ljy770 avatar Jul 01 '20 12:07 ljy770

好的,谢谢,等您答复~ 另外,1、一键配网时需要扫描二维码才能配网成功,是不是这个版本不支持标准配网?2、后续会推出支持标准配网的版本吗?

您有多的 8266 开板板吗? 建议试试其他的板子能否成功? 是不是使用的 ESP-WROOM-02D?

ljy770 avatar Jul 01 '20 12:07 ljy770

这是生活物联网平台的截图,必须选自定义配网,一键配网才能成功,默认的选官方标准配网,设备一直在切换信道,获取不到配网信息:图 1、 图 2

看不到图片,我在 ”人机交互“->”配网引导“ 页面没有看到官方标准配网,只有 默认配网方式:备选配网方式:零配方式(需设备支持)

在“https://living.aliyun.com/” 新建产品之后,第一次进入“人机交互”->”配网引导“ 页面,是默认的“ 标准配网”,这个页面看不到 “默认配网方式:备选配网方式:零配方式(需设备支持)” 的选项,在右上角点击自定义配网才能看到选项。设定之后再次进入”配网引导”页面 还是上次设定的自定义配网方式,点击右上角的提示:”自定义配网体验不好?使用品类标准配网“,可以切回 “品类标准配网”,这里的“标准配网”用一键配网也不成功~

yl673091830 avatar Jul 01 '20 13:07 yl673091830

好的,谢谢,等您答复~ 另外,1、一键配网时需要扫描二维码才能配网成功,是不是这个版本不支持标准配网?2、后续会推出支持标准配网的版本吗?

您有多的 8266 开板板吗? 建议试试其他的板子能否成功? 是不是使用的 ESP-WROOM-02D?

现在手上只有NodeMCU,用的是 ESP-12S 模块

yl673091830 avatar Jul 01 '20 13:07 yl673091830

请读取一下板子的 mac 地址? 在 esp_wifi_start 之后调用 esp_wifi_get_mac(WIFI_IF_STA, mac[6]); 或者查找 download 时候会打印 MAC 信息:

Flashing binaries to serial port /dev/ttyUSB1 (app at offset 0x10000 )...
esptool.py v2.4.0
Connecting....
Chip is ESP8266EX
Features: WiFi
MAC: 80:7d:3a:5e:d7:xx

ljy770 avatar Jul 02 '20 04:07 ljy770

请读取一下板子的 mac 地址? 在 esp_wifi_start 之后调用 esp_wifi_get_mac(WIFI_IF_STA, mac[6]); 或者查找 download 时候会打印 MAC 信息:

Flashing binaries to serial port /dev/ttyUSB1 (app at offset 0x10000 )...
esptool.py v2.4.0
Connecting....
Chip is ESP8266EX
Features: WiFi
MAC: 80:7d:3a:5e:d7:xx

Chip is ESP8266EX Features: WiFi MAC: 48:3f:da:65:ee:05

yl673091830 avatar Jul 02 '20 06:07 yl673091830

请重启天猫精灵,重试下能否发现。 我们在调试中也发现偶尔有这个问题,一直不能发现某个 mac 地址的设备,改成其他mac 地址就可以。或者重启天猫精灵后可以发现了。您看下是否也是这样的情况。

ljy770 avatar Jul 02 '20 07:07 ljy770

这是生活物联网平台的截图,必须选自定义配网,一键配网才能成功,默认的选官方标准配网,设备一直在切换信道,获取不到配网信息:图 1、 图 2

看不到图片,我在 ”人机交互“->”配网引导“ 页面没有看到官方标准配网,只有 默认配网方式:备选配网方式:零配方式(需设备支持)

在“https://living.aliyun.com/” 新建产品之后,第一次进入“人机交互”->”配网引导“ 页面,是默认的“ 标准配网”,这个页面看不到 “默认配网方式:备选配网方式:零配方式(需设备支持)” 的选项,在右上角点击自定义配网才能看到选项。设定之后再次进入”配网引导”页面 还是上次设定的自定义配网方式,点击右上角的提示:”自定义配网体验不好?使用品类标准配网“,可以切回 “品类标准配网”,这里的“标准配网”用一键配网也不成功~

这是生活物联网平台的截图,必须选自定义配网,一键配网才能成功,默认的选官方标准配网,设备一直在切换信道,获取不到配网信息:图 1、 图 2

看不到图片,我在 ”人机交互“->”配网引导“ 页面没有看到官方标准配网,只有 默认配网方式:备选配网方式:零配方式(需设备支持)

在“https://living.aliyun.com/” 新建产品之后,第一次进入“人机交互”->”配网引导“ 页面,是默认的“ 标准配网”,这个页面看不到 “默认配网方式:备选配网方式:零配方式(需设备支持)” 的选项,在右上角点击自定义配网才能看到选项。设定之后再次进入”配网引导”页面 还是上次设定的自定义配网方式,点击右上角的提示:”自定义配网体验不好?使用品类标准配网“,可以切回 “品类标准配网”,这里的“标准配网”用一键配网也不成功~

新建了一个 “空调” 产品, 还是没有看到“标准配网”, 或者你选择的产品是什么?才会出现这个配置

ljy770 avatar Jul 02 '20 07:07 ljy770

这是生活物联网平台的截图,必须选自定义配网,一键配网才能成功,默认的选官方标准配网,设备一直在切换信道,获取不到配网信息:图 1、 图 2

看不到图片,我在 ”人机交互“->”配网引导“ 页面没有看到官方标准配网,只有 默认配网方式:备选配网方式:零配方式(需设备支持)

在“https://living.aliyun.com/” 新建产品之后,第一次进入“人机交互”->”配网引导“ 页面,是默认的“ 标准配网”,这个页面看不到 “默认配网方式:备选配网方式:零配方式(需设备支持)” 的选项,在右上角点击自定义配网才能看到选项。设定之后再次进入”配网引导”页面 还是上次设定的自定义配网方式,点击右上角的提示:”自定义配网体验不好?使用品类标准配网“,可以切回 “品类标准配网”,这里的“标准配网”用一键配网也不成功~

这是生活物联网平台的截图,必须选自定义配网,一键配网才能成功,默认的选官方标准配网,设备一直在切换信道,获取不到配网信息:图 1、 图 2

看不到图片,我在 ”人机交互“->”配网引导“ 页面没有看到官方标准配网,只有 默认配网方式:备选配网方式:零配方式(需设备支持)

在“https://living.aliyun.com/” 新建产品之后,第一次进入“人机交互”->”配网引导“ 页面,是默认的“ 标准配网”,这个页面看不到 “默认配网方式:备选配网方式:零配方式(需设备支持)” 的选项,在右上角点击自定义配网才能看到选项。设定之后再次进入”配网引导”页面 还是上次设定的自定义配网方式,点击右上角的提示:”自定义配网体验不好?使用品类标准配网“,可以切回 “品类标准配网”,这里的“标准配网”用一键配网也不成功~

新建了一个 “空调” 产品, 还是没有看到“标准配网”, 或者你选择的产品是什么?才会出现这个配置

我试着新建了“空调”产品,和你的描述一致。新建“电工照明”->"灯",配网引导设置界面会有不同的选项

yl673091830 avatar Jul 02 '20 07:07 yl673091830

看到了,显示的标准配网方案:设备热点配网

热点配网这样配置, 在 conn_mgr task 之前添加:

    conn_mgr_set_sc_mode(CONN_SOFTAP_MODE);
    xTaskCreate((void (*)(void *))start_conn_mgr, "conn_mgr", 3072, NULL, 5, NULL);

但是这个新的标准配网方案,设备端可以拿到 ssid,但是流程上还有点问题,不能完全支持

ljy770 avatar Jul 02 '20 08:07 ljy770

看到了,显示的标准配网方案:设备热点配网

热点配网这样配置, 在 conn_mgr task 之前添加:

    conn_mgr_set_sc_mode(CONN_SOFTAP_MODE);
    xTaskCreate((void (*)(void *))start_conn_mgr, "conn_mgr", 3072, NULL, 5, NULL);

但是这个新的标准配网方案,设备端可以拿到 ssid,但是流程上还有点问题,不能完全支持

好的,谢谢

yl673091830 avatar Jul 05 '20 02:07 yl673091830

请重启天猫精灵,重试下能否发现。 我们在调试中也发现偶尔有这个问题,一直不能发现某个 mac 地址的设备,改成其他mac 地址就可以。或者重启天猫精灵后可以发现了。您看下是否也是这样的情况。

是这个问题,谢谢

yl673091830 avatar Jul 05 '20 02:07 yl673091830