Page 1 of 2

[TuyaOS SDK 6.1.6] AP配網失敗

Posted: 2024年 Nov 11日 10:43
by rachelchen

TUYA SDK 版本: TuyaOS V:6.1.6
在裝置上執行 ./tuyaos_demo_ipc -c /tuya/
/tuya/裡面有放 tuya_device_cfg.json
填寫pid/uuid/authkey/... etc.
有詢問過tuya工程師, 他是說這樣執行就可以了,
執行後, 還是出現蠻多error 詳細如附檔。

底下是列出有印fail的log:
[01-01 00:00:00 ty E][ws_db_gw.c:84] wd_protected_read fails gw_bi -6
[01-01 00:00:00 ty D][simplekv.c:1203] __read_kv_raw fail. -3
[01-01 00:00:00 ty D][simplekv.c:1242] __read_kv_with_decode fail. -3
[01-01 00:00:00 ty E][ws_db_gw.c:84] wd_protected_read fails gw_bi -6
[01-01 00:00:00 ty D][simplekv.c:1203] __read_kv_raw fail. -3
[01-01 00:00:00 ty D][simplekv.c:1242] __read_kv_with_decode fail. -3
[01-01 00:00:00 ty D][simplekv.c:1203] __read_kv_raw fail. -3
[01-01 00:00:00 ty D][simplekv.c:1242] __read_kv_with_decode fail. -3
[01-01 00:00:00 ty D][simplekv.c:1203] __read_kv_raw fail. -3
[01-01 00:00:00 ty D][simplekv.c:1242] __read_kv_with_decode fail. -3
[01-01 00:00:01 ty D][simplekv.c:1203] __read_kv_raw fail. -3
[01-01 00:00:01 ty D][simplekv.c:1242] __read_kv_with_decode fail. -3
[01-01 00:00:01 ty E][tuya_ws_db.c:319] kvs_read fails gw_di -6
[01-01 00:00:01 ty D][simplekv.c:1203] __read_kv_raw fail. -3
[01-01 00:00:01 ty D][simplekv.c:1242] __read_kv_with_decode fail. -3
[01-01 00:00:01 ty E][tuya_ws_db.c:319] kvs_read fails gw_di -6
[01-01 00:00:01 ty D][simplekv.c:1203] __read_kv_raw fail. -3
[01-01 00:00:01 ty D][simplekv.c:1242] __read_kv_with_decode fail. -3
[01-01 00:00:01 ty D][simplekv.c:1203] __read_kv_raw fail. -3
[01-01 00:00:01 ty D][simplekv.c:1242] __read_kv_with_decode fail. -3
[01-01 00:00:01 ty E][tuya_ws_db.c:319] kvs_read fails gw_ai -6
[01-01 00:00:01 ty D][simplekv.c:1203] __read_kv_raw fail. -3
[01-01 00:00:01 ty D][simplekv.c:1242] __read_kv_with_decode fail. -3
[01-01 00:00:02 ty D][simplekv.c:1203] __read_kv_raw fail. -3
[01-01 00:00:02 ty D][simplekv.c:1242] __read_kv_with_decode fail. -3
[01-01 00:00:02 ty D][simplekv.c:1203] __read_kv_raw fail. -3
[01-01 00:00:02 ty D][simplekv.c:1242] __read_kv_with_decode fail. -3
[01-01 00:00:02 ty D][simplekv.c:1203] __read_kv_raw fail. -3
[01-01 00:00:02 ty D][simplekv.c:1242] __read_kv_with_decode fail. -3
[01-01 00:00:02 ty D][tuya_cert_manager.c:463] load tls_ca_cnt fail. no ca in local db
[01-01 00:00:02 ty D][simplekv.c:1203] __read_kv_raw fail. -3
[01-01 00:00:02 ty D][simplekv.c:1242] __read_kv_with_decode fail. -3
[01-01 00:00:02 ty D][simplekv.c:1203] __read_kv_raw fail. -3
-01 00:00:02 ty D][simplekv.c:1242] __read_kv_with_decode fail. -3
ERROR: 544, process_kill: open pid file failed
ERROR: 544, process_kill: open pid file failed
pid file failed
[ 138.532000] RTW: ERROR Free disconnecting network of scanned_queue failed due to pwlan == NULL
et_ap_start: WIFI prepare hostapd.conf failed
ERROR: 482, tkl_gen_ap_start: start ap failed
i_start_ap: WIFI start ap failed
tart ap failed:-1
ERROR: 305, tkl_gen_wifi_get_ip: WiFi : get ip failed
ERROR: 138, tkl_wifi_get_ip: get ip failed
[01-01 00:00:04 ty E][ap_netcfg.c:1156] get ip fail:-1

可以請教哪裡設定錯誤嗎?
或是需要更動SDK的內容嗎?
謝謝。


Re: [TuyaOS SDK 6.1.6] AP配網失敗

Posted: 2024年 Nov 11日 11:27
by 郭老庄

打印里有很多wifi相关的报错,wifi相关的接口需要您根据自己的平台去适配,要适配的文件:tkl_wifi.c


Re: [TuyaOS SDK 6.1.6] AP配網失敗

Posted: 2024年 Nov 11日 14:44
by rachelchen

您好,
我是download SDK: IPC-RTS3916_TuyaOS-3.9.6
對應的tkl_wifi.c
IPC-RTS3916_TuyaOS-3.9.6/software/TuyaOS/vendor/rts3903/tuyaos/tuyaos_adapter/src/tkl_wifi/src/func/tkl_wifi.c
您指的是這個檔案裡面的API function implement要改成目前設備實際上怎麼implement的嗎?
像是tkl_wifi_get_ip 就回傳目前get到的ip address

那目前配網的狀態是要將wifi設定成ap + sta mode 並存模式嗎?

謝謝協助。


Re: [TuyaOS SDK 6.1.6] AP配網失敗

Posted: 2024年 Nov 11日 14:55
by 郭老庄

您指的是这个文件里的 API 函数实现要改成目前设备实际上的实现吗?像是 tkl_wifi_get_ip 就返回目前获取到的 IP 地址。——是的
那么目前配网的状态是要将 Wi-Fi 设置成 AP + STA 模式并保存吗?——配网的时候wifi处于AP模式,待拿到ssid,sdk会调用tkl接口tkl_wifi_set_work_mode,切到sta模式


Re: [TuyaOS SDK 6.1.6] AP配網失敗

Posted: 2024年 Nov 13日 11:54
by rachelchen

您好,

我有在tkl_wifi.c裡面加一些log
實際在裝置上都沒有印出log

後來我試x86 sdk 同樣修改tkl_wifi.c印log
在ubuntu上跑tuyaos_demo_ipc會印出log

看build的log
x86 sdk會去build
CC /home/xxxxxxx/Documents/tuya/Projects/X86_64_TuyaOS-3.9.6/software/TuyaOS/vendor/x86_64/tuyaos/tuyaos_adapter/src/tkl_wifi.c
/X86_64_TuyaOS-3.9.6/software/TuyaOS/vendor/x86_64/tuyaos/tuyaos_adapter/src/tkl_wifi.c: In function ¡¥wifi_status_event_cb¡¦:
/X86_64_TuyaOS-3.9.6/software/TuyaOS/vendor/x86_64/tuyaos/tuyaos_adapter/src/tkl_wifi.c:64:1: warning: no return statement in function returning non-void [-Wreturn-type]
...
但是build ipc-rts3916不會build vendor裡面的內容

IPC-RTS3916_TuyaOS-3.9.6
需要另外設定什麼才能build到tuyaos_adapter嗎?
謝謝。


Re: [TuyaOS SDK 6.1.6] AP配網失敗

Posted: 2024年 Nov 13日 17:01
by 郭老庄

理论上可以编到vendor的tuyaos_adapter,但是在编tuyaos_adapter的时候,还会编译vendor的其他组件。如果其他组件编译失败,就不会编译tuyaos_adapter。
如果你只想用我们的sdk,而不想在我们的开发框架下编译,可以参考这个文档,把sdk和tuyaos_adapter提取出来,可以减少很多理解成本
https://developer.tuya.com/cn/docs/iot- ... 7%E4%BB%B6


Re: [TuyaOS SDK 6.1.6] AP配網失敗

Posted: 2024年 Nov 15日 11:44
by rachelchen

您好,

謝謝您的協助
可以看到log了

請問在網站:
https://developer.tuya.com/cn/docs/iot- ... 9vjsxpyp18
设备默认 AP 名称为 SmartLife_xxxx,其中 SmartLife 前缀为程序固化,xxxx 为设备 MAC 地址。
通过 tkl_wifi_start_ap -> WF_AP_CFG_IF_S 传出,用户可以在此处自定义 AP 热点名称。
涂鸦体系的 App 目前只识别 SmartLife 前缀的 AP 名称,需要联系 BD 或者项目经理。

  1. 我想要在tkl_wifi_start_ap的時候, password不是預設cfg的空字串, 可以在tkl_wifi_start_ap裡面帶別的password嗎?
    還是一定要空的?
  2. demo跑起來之後, 一直出現
    [01-01 00:00:35 ty N][tuya_svc_lan.c:713] Not actived, use linkage addr[192.168.2.1][c0a80201]
    [01-01 00:00:35 ty E][tuya_svc_lan.c:2095] create server socket err -3
    [01-01 00:00:35 ty E][tuya_svc_lan.c:1102] init tcp serv fd err
    這個log會影響配網嗎?

謝謝。


Re: [TuyaOS SDK 6.1.6] AP配網失敗

Posted: 2024年 Nov 15日 14:08
by 郭老庄
  1. 我们有接口set_user_def_ap_if设置ssid和passwd
  2. 这个报错不影响ap配网,但影响局域网配网(有线配网),出错的原因是bind 192.168.2.1:6668失败了。具体原因需要你进一步排查

Re: [TuyaOS SDK 6.1.6] AP配網失敗

Posted: 2024年 Nov 15日 16:19
by rachelchen

您好,

呼叫 set_user_def_ap_if 可以設定ap ssid和password
已經可以get_mac 可以start_ap,
但是開啟手機熱點 -> 開啟tuya app -> 添加設備 -> 搜尋不到裝置
station 和 ap mode可以用同一個interface 嗎? ex: wlan0

-------------------------------------------------------------------------------------------------------------------------------
想請問我能知道這張流程圖對應要的API和預期的結果嗎?
https://developer.tuya.com/cn/docs/iot- ... 9vjsxpyp18

启动配网
设备切换到 Station 模式
SDK 调用 tkl_wifi_get_mac => 有印出mac
SDK 调用 tkl_wifi_start_ap => 有成功start ap
严格按照 WF_AP_CFG_IF_S 设置 SSID&PASSWD&IP 信息 => 是按照設定的ssid 和 password (SmartLife-0000, 12345678)
SDK 内部和 App 交互获取配网信息 => 不知道會有什麼訊息, 查tkl_wifi* 也沒看到其他的訊息
SDK 获取配网信息
SDK 调用 tkl_wifi_stop_ap
SDK 调用 tkl_wifi_station_connect
SDK 轮询调用 tkl_wifi_station_get_status 和 tkl_wifi_get_ip 来感知网络状态
设备连接路由器正常后主动通过 WIFI_EVENT_CB 告知 SDK 状态
SDK 内部完成云端注册激活
设备通过 ipc_status_change_cb 回调感知设备上线成功
结束配网
-------------------------------------------------------------------------------------------------------------------------------
謝謝


Re: [TuyaOS SDK 6.1.6] AP配網失敗

Posted: 2024年 Nov 15日 17:44
by 郭老庄

直接用手机搜索热点,可以找到你起的AP吗?