google-home / sample-apps-for-matter-android

The Google Home Sample App for Matter (GHSA for Matter) uses the Home Mobile SDK to create an Android app that's similar to Google Home.
Apache License 2.0
104 stars 37 forks source link

Commissioning was failed at the step “Connecting device to GHSAFM-3p-ecosystem...” #180

Open GaiusJuliusCaesar opened 7 months ago

GaiusJuliusCaesar commented 7 months ago

I tried to commission a Nanoleaf light strip, it was successful on a Pixel mobile, but it was failed on other mobiles, the fail was at the step “Connecting device to GHSAFM-3p-ecosystem...”.

Here is the info:

GHSAFM-3p-ecosystem version: 1.4.2

device used to test: Name: Nanoleaf Strip FB9-BE09 Model Number: NL68 Firmware Version: 3.5.41 Hardware Version: 4.1.8

Google Play Services version: com.google.android.gms.optional_home [234414042] [23.44.14 (100400-0)] [Download:0000025d/dl-Home.optional_234414100400.apk] [download:/Home.optional/234414100400:Home.optional:234414100400]

Phone logs: attachment

Device logs: not available

logs.txt

pierredelisle commented 7 months ago

From the log, we see that the first step of commissioning (to the local Android fabric) was successful:

12-01 15:47:56.293 11795 11795 I SetupDeviceViewModel: Commissioning completed successfully. [CONTEXT service_id=336 ]

GHSAFM then takes over to commission on its own fabric. The logs show this:

12-01 15:47:59.756 12491 18886 D GHSAFM-3p-ecosystem-AppCommissioningService: *** onCommissioningRequested ***:
12-01 15:47:59.756 12491 18886 D GHSAFM-3p-ecosystem-AppCommissioningService:   deviceDescriptor: deviceType [0] vendorId [4442] productId [68]
12-01 15:47:59.756 12491 18886 D GHSAFM-3p-ecosystem-AppCommissioningService:   networkLocation: IP address toString() [/fd12:89d:1b85:1:f247:f37c:4584:3791] IP address hostAddress [fd12:89d:1b85:1:f247:f37c:4584:3791] port [5540]
12-01 15:47:59.756 12491 18886 D GHSAFM-3p-ecosystem-AppCommissioningService:   passCode [68294250]
12-01 15:47:59.760 12491 12491 D GHSAFM-3p-ecosystem-AppCommissioningService$onCommissioningRequested: Commissioning: App fabric -> ChipClient.establishPaseConnection(): deviceId [9014200921779735237]
...
12-01 15:50:01.684 12491 18402 D GHSAFM-3p-ecosystem-BaseCompletionListener: BaseCompletionListener onStatusUpdate(): status [1]
...
12-01 15:50:01.685 12491 18402 D GHSAFM-3p-ecosystem-BaseCompletionListener: BaseCompletionListener onPairingComplete(): code [50]
...
12-01 15:50:01.688 12491 12491 E GHSAFM-3p-ecosystem-AppCommissioningService$onCommissioningRequested: onCommissioningRequested() failed
12-01 15:50:01.688 12491 12491 E GHSAFM-3p-ecosystem-AppCommissioningService$onCommissioningRequested: java.lang.IllegalStateException: Pairing failed with error code [50]

So the pairing failed with error code [50].

From https://github.com/project-chip/connectedhomeip/blob/master/docs/ERROR_CODES.md, we see that this is a timeout issue.

| 50 | 0x32 |CHIP_ERROR_TIMEOUT|

Not clear why it's not getting a reply back from the device without the device logs.

GaiusJuliusCaesar commented 7 months ago

Hi Pierre,

Thanks for your reply, since nanoleaf's device cannot capture logs currently, I redo it with other device, here are the info and logs:

GHSAFM-3p-ecosystem version: 1.4.2

device used to test: Chip: Telink TLSR9218 Firmware Version: Zephyr OS build zephyr-v3.3.0-3847-ge8491283bb05 Matter v1.1

Google Play Services version: com.google.android.gms.optional_home [234523042] [23.45.23 (100400-0)] [Download:0000026b/dl-Home.optional_234523100400.apk] [download:/Home.optional/234523100400:Home.optional:234523100400]

Phone logs: attachment phone_log.txt

Device logs: attachment telink commission failed.txt