Open adamaze opened 1 year ago
Would you be willing to opt in to the beta and try the latest version? It includes some changes to onboarding which add more feedback and logs errors on your phone, which should make it easier to find out why it's failing.
Would you be willing to opt in to the beta and try the latest version? It includes some changes to onboarding which add more feedback and logs errors on your phone, which should make it easier to find out why it's failing.
Yeah, how would I go about doing that?
On the Play Store page for Home Assistant there should be a button to join the beta, or you can use this link. It should appear as an update shortly after joining the beta, version beta-xxxx
. Make sure to update the app on both your watch and phone.
Ok, updated to beta on both, and now I actually get an error message: "could not register watch "
Shall I do the same "show and share logs" from the app?
Yes please share the logs with the updated version, that should provide more technical details 🙏
ok, here are some updated logs
--------- beginning of main
05-14 16:38:00.007 30218 30218 D SensorReceiver: Received intent: android.intent.action.TIME_TICK
05-14 16:38:00.016 30218 30305 D ServerConnectionInfo: localUrl is: false, usesInternalSsid is: false, usesWifi is: true
05-14 16:38:00.165 30218 30305 D PressureSensor: Pressure sensor listener registered
05-14 16:38:00.174 30218 30305 D ServerConnectionInfo: localUrl is: false, usesInternalSsid is: false, usesWifi is: true
05-14 16:38:00.175 30218 30305 D ServerConnectionInfo: localUrl is: false, usesInternalSsid is: false, usesWifi is: true
05-14 16:38:00.239 30218 30218 D PressureSensor: Pressure sensor listener unregistered
05-14 16:38:00.450 30218 30305 D ServerConnectionInfo: localUrl is: false, usesInternalSsid is: false, usesWifi is: true
05-14 16:38:01.073 30218 30305 I SensorReceiver: Sensor updates and sync completed
05-14 16:38:02.178 30218 30218 D TrafficStats: tagSocket(137) with statsTag=0xffffffff, statsUid=-1
05-14 16:38:24.072 30218 30396 D ServerConnectionInfo: localUrl is: false, usesInternalSsid is: false, usesWifi is: true
05-14 16:38:24.077 30218 30396 D ServerConnectionInfo: localUrl is: false, usesInternalSsid is: false, usesWifi is: true
05-14 16:38:24.081 30218 30396 D ServerConnectionInfo: localUrl is: false, usesInternalSsid is: false, usesWifi is: true
05-14 16:38:24.083 30218 30396 D ServerConnectionInfo: localUrl is: false, usesInternalSsid is: false, usesWifi is: true
05-14 16:38:24.087 30218 30398 D WebSocketRepository: Sending message 13: {type=ping, id=13}
05-14 16:38:24.088 30218 30398 D WebSocketRepository: Message number 13 sent
05-14 16:38:24.129 30218 30380 D WebSocketRepository: Websocket: onMessage (text)
05-14 16:38:24.130 30218 30380 D WebSocketRepository: Message number 13 received
05-14 16:38:51.471 30218 30380 D WebSocketRepository: Websocket: onMessage (text)
05-14 16:38:51.473 30218 30380 D WebSocketRepository: Message number 2 received
05-14 16:38:51.477 30218 30305 D WebSocketRepository: Sending message 14: {type=mobile_app/push_notification_confirm, webhook_id=db86d21e88199727a01958feaa6ff35c6ec83c0bc74e5c2530215a8d9133c5ef, confirm_id=1ad6b4e644551c4248b7391c2bb40f2d, id=14}
05-14 16:38:51.478 30218 30305 D WebSocketRepository: Message number 14 sent
05-14 16:38:51.489 30218 30380 D WebSocketRepository: Websocket: onMessage (text)
05-14 16:38:51.490 30218 30380 D WebSocketRepository: Message number 14 received
05-14 16:38:51.500 30218 30218 D MessagingService: Creating notification with following data: {ttl=0, priority=high, tag=1684100218.583581-6fgvzf, group=frigate-notification-doorcam, url=https://frigate.REDACTED.com/api/frigate/notifications/1684100218.583581-6fgvzf/doorcam/clip.mp4, clickAction=https://frigate.REDACTED.com/api/frigate/notifications/1684100218.583581-6fgvzf/doorcam/clip.mp4, image=/api/frigate/notifications/1684100218.583581-6fgvzf/thumbnail.jpg?format=android, sound=none, attachment={url=/api/frigate/notifications/1684100218.583581-6fgvzf/thumbnail.jpg}, action_1_key=URI, action_1_title=View Clip, action_1_uri=https://frigate.REDACTED.com/api/frigate/notifications/1684100218.583581-6fgvzf/doorcam/clip.mp4, action_2_key=URI, action_2_title=View Snapshot, action_2_uri=https://frigate.REDACTED.com/api/frigate/notifications/1684100218.583581-6fgvzf/snapshot.jpg, action_3_key=silence-doorcam, action_3_title=Silence Notifications, action_3_uri=null, message=A Person was detected on the Doorcam camera., webhook_id=db86d21e88199727a01958feaa6ff35c6ec83c0bc74e5c2530215a8d9133c5ef, server_id=1}
05-14 16:38:51.511 30218 30218 D ServerConnectionInfo: localUrl is: false, usesInternalSsid is: false, usesWifi is: true
05-14 16:38:51.511 30218 30218 D ServerConnectionInfo: Using external URL
05-14 16:38:51.516 30218 30305 D ServerConnectionInfo: localUrl is: false, usesInternalSsid is: false, usesWifi is: true
05-14 16:38:51.516 30218 30305 D ServerConnectionInfo: Using external URL
05-14 16:38:51.546 30218 30305 D TrafficStats: tagSocket(5) with statsTag=0xffffffff, statsUid=-1
05-14 16:38:51.653 30218 30218 D MessagingService: Show notification with tag "1684100218.583581-6fgvzf" and id "411889205"
05-14 16:38:51.661 30218 30218 D MessagingService: Show group notification with tag "group_frigate-notification-doorcam" and id "-595036796"
05-14 16:38:54.107 30218 30305 D ServerConnectionInfo: localUrl is: false, usesInternalSsid is: false, usesWifi is: true
05-14 16:38:54.110 30218 30305 D ServerConnectionInfo: localUrl is: false, usesInternalSsid is: false, usesWifi is: true
05-14 16:38:54.112 30218 30305 D ServerConnectionInfo: localUrl is: false, usesInternalSsid is: false, usesWifi is: true
05-14 16:38:54.113 30218 30305 D ServerConnectionInfo: localUrl is: false, usesInternalSsid is: false, usesWifi is: true
05-14 16:38:54.116 30218 30397 D WebSocketRepository: Sending message 15: {type=ping, id=15}
05-14 16:38:54.117 30218 30397 D WebSocketRepository: Message number 15 sent
05-14 16:38:54.137 30218 30380 D WebSocketRepository: Websocket: onMessage (text)
05-14 16:38:54.138 30218 30380 D WebSocketRepository: Message number 15 received
05-14 16:38:54.770 30218 30218 D LocBroadcastReceiver: Received location update.
05-14 16:38:54.771 30218 30218 D ForegrndServiceLauncher: Check if service HighAccuracyLocationService is running. Service running = false
05-14 16:38:54.772 30218 30305 D LocBroadcastReceiver: Last Location:
05-14 16:38:54.772 30218 30305 D LocBroadcastReceiver: Coords:(REDACTED)
05-14 16:38:54.772 30218 30305 D LocBroadcastReceiver: Accuracy: 21.433
05-14 16:38:54.772 30218 30305 D LocBroadcastReceiver: Bearing: 0.0
05-14 16:38:54.773 30218 30305 D LocBroadcastReceiver: Begin evaluating if location update should be skipped
05-14 16:38:54.773 30218 30305 D LocBroadcastReceiver: Received location that is 18 milliseconds old, 1684100334755 compared to 1684100334773 with source fused
05-14 16:38:54.773 30218 30305 D LocBroadcastReceiver: Duplicate location received, not sending to HA
05-14 16:38:54.842 30218 30305 D ServerConnectionInfo: localUrl is: false, usesInternalSsid is: false, usesWifi is: true
05-14 16:38:54.975 30218 30305 D NotifManagerCompat: Cancel notification with tag "1684100218.583581-6fgvzf" and id "411889205"
05-14 16:38:54.978 30218 30305 D NotifManagerCompat: Check if the notification is in a group...
05-14 16:38:54.978 30218 30305 D NotifManagerCompat: Notification is in a group (0|io.homeassistant.companion.android|g:group_frigate-notification-doorcam). Get all notifications for this group...
05-14 16:38:54.978 30218 30305 D NotifManagerCompat: Notification is NOT the group summary.
05-14 16:38:54.979 30218 30305 D NotifManagerCompat: Notification is inside of group "group_frigate-notification-doorcam", but is the last one in the group. Try to cancel the group notification....
05-14 16:38:54.979 30218 30305 D NotifManagerCompat: Cancel group notification with tag "group_frigate-notification-doorcam" and id "-595036796"
05-14 16:39:00.012 30218 30218 D SensorReceiver: Received intent: android.intent.action.TIME_TICK
05-14 16:39:00.019 30218 30305 D ServerConnectionInfo: localUrl is: false, usesInternalSsid is: false, usesWifi is: true
05-14 16:39:00.187 30218 30305 D PressureSensor: Pressure sensor listener registered
05-14 16:39:00.195 30218 30305 D ServerConnectionInfo: localUrl is: false, usesInternalSsid is: false, usesWifi is: true
05-14 16:39:00.196 30218 30305 D ServerConnectionInfo: localUrl is: false, usesInternalSsid is: false, usesWifi is: true
05-14 16:39:00.217 30218 30218 D PressureSensor: Pressure sensor listener unregistered
05-14 16:39:00.471 30218 30305 D ServerConnectionInfo: localUrl is: false, usesInternalSsid is: false, usesWifi is: true
05-14 16:39:00.709 30218 30397 I SensorReceiver: Sensor updates and sync completed
05-14 16:39:24.135 30218 30399 D ServerConnectionInfo: localUrl is: false, usesInternalSsid is: false, usesWifi is: true
05-14 16:39:24.137 30218 30399 D ServerConnectionInfo: localUrl is: false, usesInternalSsid is: false, usesWifi is: true
05-14 16:39:24.141 30218 30399 D ServerConnectionInfo: localUrl is: false, usesInternalSsid is: false, usesWifi is: true
05-14 16:39:24.145 30218 30399 D ServerConnectionInfo: localUrl is: false, usesInternalSsid is: false, usesWifi is: true
05-14 16:39:24.150 30218 30399 D WebSocketRepository: Sending message 16: {type=ping, id=16}
05-14 16:39:24.152 30218 30399 D WebSocketRepository: Message number 16 sent
05-14 16:39:24.171 30218 30380 D WebSocketRepository: Websocket: onMessage (text)
05-14 16:39:24.172 30218 30380 D WebSocketRepository: Message number 16 received
05-14 16:39:29.843 30218 31121 D WearOnboardingListener: onMessageReceived: MessageEventParcelable[24290,/request_home_assistant_instance, size=0]
05-14 16:39:29.844 30218 31121 D WearOnboardingListener: sendHomeAssistantInstance: 737964b7
05-14 16:39:29.844 30218 31121 D ServerConnectionInfo: Using external URL
05-14 16:39:29.854 30218 30218 D WearOnboardingListener: sendHomeAssistantInstance: success
05-14 16:39:42.356 30218 30218 D SettingsWearAct: Waiting on Results for both connected nodes and nodes with app
05-14 16:39:42.365 30218 30218 D SettingsWearAct: Waiting on Results for both connected nodes and nodes with app
05-14 16:39:42.365 30218 30218 D SettingsWearAct: Capable Nodes: [Node{Galaxy Watch4 (7LWN), id=737964b7, hops=1, isNearby=true}]
05-14 16:39:42.365 30218 30218 D SettingsWearAct: Installed on all devices
05-14 16:39:42.393 30218 30218 D SettingsWearViewModel: Requesting config from node 737964b7
05-14 16:39:42.394 30218 30218 D SettingsWearViewModel: Request for config sent successfully
05-14 16:39:42.886 30218 30218 D SettingsWearViewModel: onDataChanged 1
05-14 16:39:43.119 30218 30654 D HomeAssistantSearcher: Service discovery started
05-14 16:39:43.297 30218 30654 I HomeAssistantSearcher: Service discovery found HA: name: Home, type: _home-assistant._tcp., host: null, port: 0, network: 107, txtRecord:
05-14 16:39:43.309 30218 30654 I HomeAssistantSearcher: Service resolved: name: Home, type: ._home-assistant._tcp, host: /10.0.0.235, port: 8123, network: 107, txtRecord: location_name=Home>base_url=https://REDACTED.ui.nabu.casaBexternal_url=https://REDACTED.ui.nabu.casa1internal_url=https://REDACTED:8123%uuid=REDACTEDversion=2023.5.3requires_api_password=True
05-14 16:39:44.460 30218 30654 I HomeAssistantSearcher: Discovery stopped: _home-assistant._tcp
05-14 16:39:45.278 30218 31137 D WearOnboardingListener: onMessageReceived: MessageEventParcelable[24292,/request_home_assistant_instance, size=0]
05-14 16:39:45.278 30218 31137 D WearOnboardingListener: sendHomeAssistantInstance: 737964b7
05-14 16:39:45.279 30218 31137 D ServerConnectionInfo: Using external URL
05-14 16:39:45.289 30218 30218 D WearOnboardingListener: sendHomeAssistantInstance: success
05-14 16:39:45.299 30218 30218 D Compose Focus: Owner FocusChanged(true)
05-14 16:39:45.317 30218 30218 D InsetsController: show(ime(), fromIme=false)
05-14 16:39:45.318 30218 30218 D InputMethodManager: showSoftInput() view=androidx.compose.ui.platform.AndroidComposeView{807d6f6 VFED..... .F....ID 0,0-1080,2209 aid=1073741824} flags=0 reason=SHOW_SOFT_INPUT_BY_INSETS_API
05-14 16:39:45.384 30218 30218 D InsetsController: show(ime(), fromIme=true)
05-14 16:39:47.920 30218 30218 D TrafficStats: tagSocket(122) with statsTag=0xffffffff, statsUid=-1
05-14 16:39:54.150 30218 30399 D ServerConnectionInfo: localUrl is: false, usesInternalSsid is: false, usesWifi is: true
05-14 16:39:54.152 30218 30399 D ServerConnectionInfo: localUrl is: false, usesInternalSsid is: false, usesWifi is: true
05-14 16:39:54.154 30218 30399 D ServerConnectionInfo: localUrl is: false, usesInternalSsid is: false, usesWifi is: true
05-14 16:39:54.156 30218 30399 D ServerConnectionInfo: localUrl is: false, usesInternalSsid is: false, usesWifi is: true
05-14 16:39:54.157 30218 30399 D WebSocketRepository: Sending message 17: {type=ping, id=17}
05-14 16:39:54.158 30218 30399 D WebSocketRepository: Message number 17 sent
05-14 16:39:54.168 30218 30380 D WebSocketRepository: Websocket: onMessage (text)
05-14 16:39:54.169 30218 30380 D WebSocketRepository: Message number 17 received
05-14 16:39:54.770 30218 30218 D LocBroadcastReceiver: Received location update.
05-14 16:39:54.771 30218 30218 D ForegrndServiceLauncher: Check if service HighAccuracyLocationService is running. Service running = false
05-14 16:39:54.772 30218 30397 D LocBroadcastReceiver: Last Location:
05-14 16:39:54.772 30218 30397 D LocBroadcastReceiver: Coords:(REDACTED)
05-14 16:39:54.772 30218 30397 D LocBroadcastReceiver: Accuracy: 21.433
05-14 16:39:54.772 30218 30397 D LocBroadcastReceiver: Bearing: 0.0
05-14 16:39:54.772 30218 30397 D LocBroadcastReceiver: Begin evaluating if location update should be skipped
05-14 16:39:54.772 30218 30397 D LocBroadcastReceiver: Received location that is 12 milliseconds old, 1684100394760 compared to 1684100394772 with source fused
05-14 16:39:54.772 30218 30397 D LocBroadcastReceiver: Duplicate location received, not sending to HA
05-14 16:40:00.002 30218 30218 D SensorReceiver: Received intent: android.intent.action.TIME_TICK
05-14 16:40:00.002 30218 30218 D SensorReceiver: Received intent: android.intent.action.TIME_TICK
05-14 16:40:00.003 30218 30395 D ServerConnectionInfo: localUrl is: false, usesInternalSsid is: false, usesWifi is: true
05-14 16:40:00.003 30218 30397 D ServerConnectionInfo: localUrl is: false, usesInternalSsid is: false, usesWifi is: true
05-14 16:40:00.180 30218 30397 D PressureSensor: Pressure sensor listener registered
05-14 16:40:00.180 30218 30395 D PressureSensor: Pressure sensor listener registered
05-14 16:40:00.196 30218 30397 D ServerConnectionInfo: localUrl is: false, usesInternalSsid is: false, usesWifi is: true
05-14 16:40:00.196 30218 30395 D ServerConnectionInfo: localUrl is: false, usesInternalSsid is: false, usesWifi is: true
05-14 16:40:00.197 30218 30397 D ServerConnectionInfo: localUrl is: false, usesInternalSsid is: false, usesWifi is: true
05-14 16:40:00.197 30218 30395 D ServerConnectionInfo: localUrl is: false, usesInternalSsid is: false, usesWifi is: true
05-14 16:40:00.254 30218 30218 D PressureSensor: Pressure sensor listener unregistered
05-14 16:40:00.448 30218 30395 D ServerConnectionInfo: localUrl is: false, usesInternalSsid is: false, usesWifi is: true
05-14 16:40:00.500 30218 30395 D ServerConnectionInfo: localUrl is: false, usesInternalSsid is: false, usesWifi is: true
05-14 16:40:00.613 30218 30395 I SensorReceiver: Sensor updates and sync completed
05-14 16:40:00.815 30218 30305 I SensorReceiver: Sensor updates and sync completed
05-14 16:40:03.214 30218 30218 D Compose Focus: Owner FocusChanged(false)
05-14 16:40:03.243 30218 30218 E ImeBackDispatcher: Ime callback not found. Ignoring unregisterReceivedCallback. callbackId: 127798286
05-14 16:40:04.261 30218 30218 D InputMethodManager: showSoftInput() view=android.webkit.WebView{e3a3a55 VFEDHVC.. .F....ID 0,0-1080,2209 aid=1073741825} flags=0 reason=SHOW_SOFT_INPUT
05-14 16:40:04.316 30218 30218 D InsetsController: show(ime(), fromIme=true)
05-14 16:40:05.977 30218 30218 D InsetsController: show(ime(), fromIme=true)
05-14 16:40:08.192 30218 30218 D Compose Focus: Owner FocusChanged(true)
05-14 16:40:08.213 30218 30218 D InsetsController: show(ime(), fromIme=false)
05-14 16:40:08.213 30218 30218 D InputMethodManager: showSoftInput() view=androidx.compose.ui.platform.AndroidComposeView{6df6aeb VFED..... .F....ID 0,0-1080,2209 aid=1073741826} flags=0 reason=SHOW_SOFT_INPUT_BY_INSETS_API
05-14 16:40:08.304 30218 30218 D InsetsController: show(ime(), fromIme=true)
05-14 16:40:18.899 30218 30218 D TrafficStats: tagSocket(70) with statsTag=0xffffffff, statsUid=-1
05-14 16:40:21.093 30218 30218 D SettingsWearViewModel: Successfully sent auth to wear
05-14 16:40:21.093 30218 30218 D SettingsWearViewModel: onDataChanged 1
05-14 16:40:21.580 30218 30454 D OpenGLRenderer: endAllActiveAnimators on 0xb400006f6dd7c780 (UnprojectedRipple) with handle 0xb400006e7dc6ba90
05-14 16:40:21.593 30218 30218 D Compose Focus: Owner FocusChanged(false)
05-14 16:40:21.679 30218 30218 D SettingsWearViewModel: onDataChanged 1
05-14 16:40:21.680 30218 30218 E SettingsWearViewModel: Watch was unable to register: javax.net.ssl.SSLHandshakeException: connection closed
05-14 16:40:21.680 30218 30218 E SettingsWearViewModel: at com.android.org.conscrypt.SSLUtils.toSSLHandshakeException(SSLUtils.java:362)
05-14 16:40:21.680 30218 30218 E SettingsWearViewModel: at com.android.org.conscrypt.ConscryptEngineSocket.doHandshake(ConscryptEngineSocket.java:240)
05-14 16:40:21.680 30218 30218 E SettingsWearViewModel: at com.android.org.conscrypt.ConscryptEngineSocket.startHandshake(ConscryptEngineSocket.java:217)
05-14 16:40:21.680 30218 30218 E SettingsWearViewModel: at okhttp3.internal.connection.RealConnection.connectTls(RealConnection.kt:379)
05-14 16:40:21.680 30218 30218 E SettingsWearViewModel: at okhttp3.internal.connection.RealConnection.establishProtocol(RealConnection.kt:337)
05-14 16:40:21.680 30218 30218 E SettingsWearViewModel: at okhttp3.internal.connection.RealConnection.connect(RealConnection.kt:209)
05-14 16:40:21.680 30218 30218 E SettingsWearViewModel: at okhttp3.internal.connection.ExchangeFinder.findConnection(ExchangeFinder.kt:226)
05-14 16:40:21.680 30218 30218 E SettingsWearViewModel: at okhttp3.internal.connection.ExchangeFinder.findHealthyConnection(ExchangeFinder.kt:106)
05-14 16:40:21.680 30218 30218 E SettingsWearViewModel: at okhttp3.internal.connection.ExchangeFinder.find(ExchangeFinder.kt:74)
05-14 16:40:21.680 30218 30218 E SettingsWearViewModel: at okhttp3.internal.connection.RealCall.initExchange$okhttp(RealCall.kt:255)
05-14 16:40:21.680 30218 30218 E SettingsWearViewModel: at okhttp3.internal.connection.ConnectInterceptor.intercept(ConnectInterceptor.kt:32)
05-14 16:40:21.680 30218 30218 E SettingsWearViewModel: at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109)
05-14 16:40:21.680 30218 30218 E SettingsWearViewModel: at okhttp3.internal.cache.CacheInterceptor.intercept(CacheInterceptor.kt:95)
05-14 16:40:21.680 30218 30218 E SettingsWearViewModel: at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109)
05-14 16:40:21.680 30218 30218 E SettingsWearViewModel: at okhttp3.internal.http.BridgeInterceptor.intercept(BridgeInterceptor.kt:83)
05-14 16:40:21.680 30218 30218 E SettingsWearViewModel: at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109)
05-14 16:40:21.680 30218 30218 E SettingsWearViewModel: at okhttp3.internal.http.RetryAndFollowUpInterceptor.intercept(RetryAndFollowUpInterceptor.kt:76)
05-14 16:40:21.680 30218 30218 E SettingsWearViewModel: at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109)
05-14 16:40:21.680 30218 30218 E SettingsWearViewModel: at okhttp3.internal.connection.RealCall.getResponseWithInterceptorChain$okhttp(RealCall.kt:201)
05-14 16:40:21.680 30218 30218 E SettingsWearViewModel: at okhttp3.internal.connection.RealCall$AsyncCall.run(RealCall.kt:517)
05-14 16:40:21.680 30218 30218 E SettingsWearViewModel: at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
05-14 16:40:21.680 30218 30218 E SettingsWearViewModel: at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
05-14 16:40:21.680 30218 30218 E SettingsWearViewModel: at java.lang.Thread.run(Thread.java:923)
05-14 16:40:21.680 30218 30218 E SettingsWearViewModel: Caused by: java.io.EOFException: connection closed
05-14 16:40:21.680 30218 30218 E SettingsWearViewModel: ... 22 more
05-14 16:40:21.697 30218 30218 D SettingsWearViewModel: onDataChanged 1
05-14 16:40:21.985 30218 30218 D TrafficStats: tagSocket(89) with statsTag=0xffffffff, statsUid=-1
05-14 16:40:24.016 30218 30218 W Choreographer: Frame time is 0.22747 ms in the future! Check that graphics HAL is generating vsync timestamps using the correct timebase.
05-14 16:40:24.159 30218 30397 D ServerConnectionInfo: localUrl is: false, usesInternalSsid is: false, usesWifi is: true
05-14 16:40:24.160 30218 30397 D ServerConnectionInfo: localUrl is: false, usesInternalSsid is: false, usesWifi is: true
05-14 16:40:24.162 30218 30397 D ServerConnectionInfo: localUrl is: false, usesInternalSsid is: false, usesWifi is: true
05-14 16:40:24.163 30218 30397 D ServerConnectionInfo: localUrl is: false, usesInternalSsid is: false, usesWifi is: true
05-14 16:40:24.163 30218 30397 D WebSocketRepository: Sending message 18: {type=ping, id=18}
05-14 16:40:24.164 30218 30397 D WebSocketRepository: Message number 18 sent
05-14 16:40:24.212 30218 30380 D WebSocketRepository: Websocket: onMessage (text)
05-14 16:40:24.213 30218 30380 D WebSocketRepository: Message number 18 received
05-14 16:40:25.078 30218 30218 D TrafficStats: tagSocket(89) with statsTag=0xffffffff, statsUid=-1
05-14 16:40:28.141 30218 30218 D TrafficStats: tagSocket(292) with statsTag=0xffffffff, statsUid=-1
05-14 16:40:28.528 30218 30454 D OpenGLRenderer: endAllActiveAnimators on 0xb400006f6de07ae0 (UnprojectedRipple) with handle 0xb400006e7dd05870
05-14 16:40:30.479 30218 30218 D IntegrationRepository: isAppLocked(): false. (LockEnabled: false, appActive: false, expireMillis: 1684100211767, currentMillis: 1684100430479)
05-14 16:40:30.549 30218 30218 D IntegrationRepository: isAppLocked(): false. (LockEnabled: false, appActive: false, expireMillis: 1684100211767, currentMillis: 1684100430549)
05-14 16:40:30.549 30218 30218 D IntegrationRepository: setAppActive(): true
05-14 16:40:30.982 30218 30454 D OpenGLRenderer: endAllActiveAnimators on 0xb400006f6de05ab0 (UnprojectedRipple) with handle 0xb400006e7dcd8e40
05-14 16:40:35.061 30218 30395 D LogcatReader: Read logcat for pid 30218
The logs suggest that the connection to your instance is closed unexpectedly.
When logging in, do you tap the instance that is found / enter an URL that is available outside your home network?
If you haven't already tried, could you try opening the app on your watch and tapping there instance that it finds, to see if that works?
I can click on my instance on the watch, and then it says "continue on your phone", then I log in, accept the name of the watch, and get the same new error message
Got it. Do the logs on your server (Settings >System > Logs) show any relevant errors?
Can you try manually entering your Home Assistant Cloud (.ui.nabu.casa) URL, so we can be 100% sure it is used?
Ok, It looks like my issue in the end is that I was trying to connect to my local home assistant instance over wifi, and that is not supported with wear OS. i ended up enabling remote access with nabu casa, and then it was able to connect.
Connecting over WiFi is supported, but not if there's complicated networking involved as Android automatically transfers between proxied/via your phone/watch connects directly. Unfortunately this error doesn't really provide anything the app can use to detect this, so I think we'll have to close the issue?
I have encountered the same problem. However, I can register successfully when accessing through non-HTTPS. Does this issue have anything to do with SSL certificates?
I have encountered the same problem. However, I can register successfully when accessing through non-HTTPS. Does this issue have anything to do with SSL certificates?
Hard to say without details. Does it show an error in the logs on your phone for logging in?
I got these logs:
06-17 15:39:25.513 26656 26656 I ViewRootImpl@8ed6f56[SettingsWearMainView]: Setup new sync id=1
06-17 15:39:25.513 26656 26656 I ViewRootImpl@8ed6f56[SettingsWearMainView]: Setting syncFrameCallback
06-17 15:39:25.513 26656 26656 I ViewRootImpl@8ed6f56[SettingsWearMainView]: registerCallbacksForSync syncBuffer=false
06-17 15:39:25.515 26656 26724 I ViewRootImpl@8ed6f56[SettingsWearMainView]: Received frameDrawingCallback syncResult=0 frameNum=1.
06-17 15:39:25.515 26656 26724 I ViewRootImpl@8ed6f56[SettingsWearMainView]: Setting up sync and frameCommitCallback
06-17 15:39:25.517 26656 26710 I BLASTBufferQueue: [ViewRootImpl@8ed6f56[SettingsWearMainView]#22](f:0,a:0) onFrameAvailable the first frame is available
06-17 15:39:25.517 26656 26710 I ViewRootImpl@8ed6f56[SettingsWearMainView]: Received frameCommittedCallback lastAttemptedDrawFrameNum=1 didProduceBuffer=true
06-17 15:39:25.517 26656 26656 I ViewRootImpl@8ed6f56[SettingsWearMainView]: onSyncComplete
06-17 15:39:25.518 26656 26656 I ViewRootImpl@8ed6f56[SettingsWearMainView]: setupSync seqId=0 mSyncId=1 fn=1 caller=android.view.ViewRootImpl$$ExternalSyntheticLambda11.accept:6 android.window.SurfaceSyncer.lambda$setupSync$1$android-window-SurfaceSyncer:128 android.window.SurfaceSyncer$$ExternalSyntheticLambda1.accept:8 android.window.SurfaceSyncer$SyncSet.checkIfSyncIsComplete:382 android.window.SurfaceSyncer$SyncSet.markSyncReady:359 android.window.SurfaceSyncer.markSyncReady:151 android.view.ViewRootImpl.performTraversals:4503
06-17 15:39:25.519 26656 26656 I ViewRootImpl@8ed6f56[SettingsWearMainView]: reportDrawFinished seqId=0 mSyncId=-1 fn=1 mSurfaceChangedTransaction=0xb4000076f7fe5090
06-17 15:39:25.531 26656 26656 D SettingsWearViewModel: Successfully sent auth to wear
06-17 15:39:25.531 26656 26656 D SettingsWearViewModel: onDataChanged 1
06-17 15:39:25.597 26656 26656 I ViewRootImpl@8ed6f56[SettingsWearMainView]: MSG_WINDOW_FOCUS_CHANGED 1 0
06-17 15:39:25.597 26656 26656 I ViewRootImpl@8ed6f56[SettingsWearMainView]: mThreadedRenderer.initializeIfNeeded()#2 mSurface={isValid=true 0xb4000077c8027200}
06-17 15:39:25.597 26656 26656 D InputMethodManager: startInputInner - Id : 0
06-17 15:39:25.597 26656 26656 I InputMethodManager: startInputInner - mService.startInputOrWindowGainedFocus
06-17 15:39:25.878 26656 26656 I ViewRootImpl@e2953f6[OnboardingActivity]: handleAppVisibility mAppVisible = true visible = false
06-17 15:39:25.886 26656 26710 D OpenGLRenderer: setSurface called with nullptr
06-17 15:39:25.886 26656 26710 D OpenGLRenderer: setSurface() destroyed EGLSurface
06-17 15:39:25.886 26656 26710 D OpenGLRenderer: destroyEglSurface
06-17 15:39:25.887 26656 26656 I ViewRootImpl@e2953f6[OnboardingActivity]: performTraversals mFirst=false windowShouldResize=false viewVisibilityChanged=true mForceNextWindowRelayout=false params=null
06-17 15:39:25.892 26656 26656 I ViewRootImpl@e2953f6[OnboardingActivity]: Relayout returned: old=(0,0,1440,3088) new=(0,0,1440,3088) req=(1440,3088)8 dur=4 res=0x2 s={false 0x0} ch=true seqId=0
06-17 15:39:25.895 26656 26656 I ViewRootImpl@e2953f6[OnboardingActivity]: stopped(true) old = false
06-17 15:39:25.895 26656 26656 I ViewRootImpl@e2953f6[OnboardingActivity]: WindowStopped on io.homeassistant.companion.android/io.homeassistant.companion.android.onboarding.OnboardingActivity set to true
06-17 15:39:25.898 26656 26656 I MSHandlerLifeCycle: removeMultiSplitHandler: no exist. decor=DecorView@48e993b[OnboardingActivity]
06-17 15:39:25.905 26656 26656 I MSHandlerLifeCycle: removeMultiSplitHandler: no exist. decor=DecorView@48e993b[OnboardingActivity]
06-17 15:39:25.905 26656 26710 D OpenGLRenderer: setSurface called with nullptr
06-17 15:39:25.905 26656 26656 I ViewRootImpl@e2953f6[OnboardingActivity]: dispatchDetachedFromWindow
06-17 15:39:25.908 26656 26656 D InputTransport: Input channel destroyed: 'c05881a', fd=129
06-17 15:39:26.415 26656 26656 D SettingsWearViewModel: onDataChanged 1
06-17 15:39:26.416 26656 26656 E SettingsWearViewModel: Watch was unable to register: javax.net.ssl.SSLHandshakeException: java.security.cert.CertPathValidatorException: Trust anchor for certification path not found.
06-17 15:39:26.416 26656 26656 E SettingsWearViewModel: at com.android.org.conscrypt.SSLUtils.toSSLHandshakeException(SSLUtils.java:362)
06-17 15:39:26.416 26656 26656 E SettingsWearViewModel: at com.android.org.conscrypt.ConscryptEngine.convertException(ConscryptEngine.java:1134)
06-17 15:39:26.416 26656 26656 E SettingsWearViewModel: at com.android.org.conscrypt.ConscryptEngine.readPlaintextData(ConscryptEngine.java:1089)
06-17 15:39:26.416 26656 26656 E SettingsWearViewModel: at com.android.org.conscrypt.ConscryptEngine.unwrap(ConscryptEngine.java:876)
06-17 15:39:26.416 26656 26656 E SettingsWearViewModel: at com.android.org.conscrypt.ConscryptEngine.unwrap(ConscryptEngine.java:747)
06-17 15:39:26.416 26656 26656 E SettingsWearViewModel: at com.android.org.conscrypt.ConscryptEngine.unwrap(ConscryptEngine.java:712)
06-17 15:39:26.416 26656 26656 E SettingsWearViewModel: at com.android.org.conscrypt.ConscryptEngineSocket$SSLInputStream.processDataFromSocket(ConscryptEngineSocket.java:849)
06-17 15:39:26.416 26656 26656 E SettingsWearViewModel: at com.android.org.conscrypt.ConscryptEngineSocket$SSLInputStream.access$100(ConscryptEngineSocket.java:722)
06-17 15:39:26.416 26656 26656 E SettingsWearViewModel: at com.android.org.conscrypt.ConscryptEngineSocket.doHandshake(ConscryptEngineSocket.java:238)
06-17 15:39:26.416 26656 26656 E SettingsWearViewModel: at com.android.org.conscrypt.ConscryptEngineSocket.startHandshake(ConscryptEngineSocket.java:217)
06-17 15:39:26.416 26656 26656 E SettingsWearViewModel: at okhttp3.internal.connection.RealConnection.connectTls(RealConnection.kt:379)
06-17 15:39:26.416 26656 26656 E SettingsWearViewModel: at okhttp3.internal.connection.RealConnection.establishProtocol(RealConnection.kt:337)
06-17 15:39:26.416 26656 26656 E SettingsWearViewModel: at okhttp3.internal.connection.RealConnection.connect(RealConnection.kt:209)
06-17 15:39:26.416 26656 26656 E SettingsWearViewModel: at okhttp3.internal.connection.ExchangeFinder.findConnection(ExchangeFinder.kt:226)
06-17 15:39:26.416 26656 26656 E SettingsWearViewModel: at okhttp3.internal.connection.ExchangeFinder.findHealthyConnection(ExchangeFinder.kt:106)
06-17 15:39:26.416 26656 26656 E SettingsWearViewModel: at okhttp3.internal.connection.ExchangeFinder.find(ExchangeFinder.kt:74)
06-17 15:39:26.416 26656 26656 E SettingsWearViewModel: at okhttp3.internal.connection.RealCall.initExchange$okhttp(RealCall.kt:255)
06-17 15:39:26.416 26656 26656 E SettingsWearViewModel: at okhttp3.internal.connection.ConnectInterceptor.intercept(ConnectInterceptor.kt:32)
06-17 15:39:26.416 26656 26656 E SettingsWearViewModel: at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109)
06-17 15:39:26.416 26656 26656 E SettingsWearViewModel: at okhttp3.internal.cache.CacheInterceptor.intercept(CacheInterceptor.kt:95)
06-17 15:39:26.416 26656 26656 E SettingsWearViewModel: at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109)
06-17 15:39:26.416 26656 26656 E SettingsWearViewModel: at okhttp3.internal.http.BridgeInterceptor.intercept(BridgeInterceptor.kt:83)
06-17 15:39:26.416 26656 26656 E SettingsWearViewModel: at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109)
06-17 15:39:26.416 26656 26656 E SettingsWearViewModel: at okhttp3.internal.http.RetryAndFollowUpInterceptor.intercept(RetryAndFollowUpInterceptor.kt:76)
06-17 15:39:26.416 26656 26656 E SettingsWearViewModel: at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109)
06-17 15:39:26.416 26656 26656 E SettingsWearViewModel: at okhttp3.internal.connection.RealCall.getResponseWithInterceptorChain$okhttp(RealCall.kt:201)
06-17 15:39:26.416 26656 26656 E SettingsWearViewModel: at okhttp3.internal.connection.RealCall$AsyncCall.run(RealCall.kt:517)
06-17 15:39:26.416 26656 26656 E SettingsWearViewModel: at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
06-17 15:39:26.416 26656 26656 E SettingsWearViewModel: at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
06-17 15:39:26.416 26656 26656 E SettingsWearViewModel: at java.lang.Thread.run(Thread.java:923)
06-17 15:39:26.416 26656 26656 E SettingsWearViewModel: Caused by: java.security.cert.CertificateException: java.security.cert.CertPathValidatorException: Trust anchor for certification path not found.
06-17 15:39:26.416 26656 26656 E SettingsWearViewModel: at com.android.org.conscrypt.TrustManagerImpl.checkTrustedRecursive(TrustManagerImpl.java:661)
06-17 15:39:26.416 26656 26656 E SettingsWearViewModel: at com.android.org.conscrypt.TrustManagerImpl.checkTrusted(TrustManagerImpl.java:510)
06-17 15:39:26.416 26656 26656 E SettingsWearViewModel: at com.android.org.conscrypt.TrustManagerImpl.checkTrusted(TrustManagerImpl.java:428)
06-17 15:39:26.416 26656 26656 E SettingsWearViewModel: at com.android.org.conscrypt.TrustManagerImpl.getTrustedChainForServer(TrustManagerImpl.java:356)
06-17 15:39:26.416 26656 26656 E SettingsWearViewModel: at android.security.net.config.NetworkSecurityTrustManager.checkServerTrusted(NetworkSecurityTrustManager.java:94)
06-17 15:39:26.416 26656 26656 E SettingsWearViewModel: at android.security.net.config.RootTrustManager.checkServerTrusted(RootTrustManager.java:90)
06-17 15:39:26.416 26656 26656 E SettingsWearViewModel: at com.android.org.conscrypt.ConscryptEngineSocket$2.checkServerTrusted(ConscryptEngineSocket.java:161)
06-17 15:39:26.416 26656 26656 E SettingsWearViewModel: at com.android.org.conscrypt.Platform.checkServerTrusted(Platform.java:250)
06-17 15:39:26.416 26656 26656 E SettingsWearViewModel: at com.android.org.conscrypt.ConscryptEngine.verifyCertificateChain(ConscryptEngine.java:1644)
06-17 15:39:26.416 26656 26656 E SettingsWearViewModel: at com.android.org.conscrypt.NativeCrypto.ENGINE_SSL_read_direct(Native Method)
06-17 15:39:26.416 26656 26656 E SettingsWearViewModel: at com.android.org.conscrypt.NativeSsl.readDirectByteBuffer(NativeSsl.java:568)
06-17 15:39:26.416 26656 26656 E SettingsWearViewModel: at com.android.org.conscrypt.ConscryptEngine.readPlaintextDataDirect(ConscryptEngine.java:1095)
06-17 15:39:26.416 26656 26656 E SettingsWearViewModel: at com.android.org.conscrypt.ConscryptEngine.readPlaintextData(ConscryptEngine.java:1079)
06-17 15:39:26.416 26656 26656 E SettingsWearViewModel: ... 27 more
06-17 15:39:26.416 26656 26656 E SettingsWearViewModel: Caused by: java.security.cert.CertPathValidatorException: Trust anchor for certification path not found.
06-17 15:39:26.416 26656 26656 E SettingsWearViewModel: ... 40 more
06-17 15:39:26.431 26656 26656 D SettingsWearViewModel: onDataChanged 1
06-17 15:39:30.578 26656 26656 I ViewRootImpl@8ed6f56[SettingsWearMainView]: handleAppVisibility mAppVisible = true visible = false
06-17 15:39:30.578 26656 26656 I ViewRootImpl@8ed6f56[SettingsWearMainView]: MSG_WINDOW_FOCUS_CHANGED 0 0
06-17 15:39:30.584 26656 26710 D OpenGLRenderer: setSurface called with nullptr
06-17 15:39:30.584 26656 26710 D OpenGLRenderer: setSurface() destroyed EGLSurface
06-17 15:39:30.584 26656 26710 D OpenGLRenderer: destroyEglSurface
Watch was unable to register: javax.net.ssl.SSLHandshakeException: java.security.cert.CertPathValidatorException: Trust anchor for certification path not found.
It does appear to be an SSL issue for you. Anything special about the setup or watch? This is mostly outside the app's control, it is using the default certificate store on the watch.
"I have no problem accessing HA directly using the built-in browser on my smartwatch. The model of my smartwatch is Samsung Watch5Pro. According to your suggestion, can I import my SSL certificate into the watch's storage to solve this issue?
and i used certificate from DigiCert Inc
I'm not sure if there is an option to import certificates on the watch. The issue is with the trust anchor though, so somewhere down the chain, which you might be able to fix yourself using tools such as this one.
Definitely out of scope for the app so if you need more help try searching online for the error message above and information a test tool provides.
Okay, I'll try it, thanks for your answer
I'm not sure if there is an option to import certificates on the watch. The issue is with the trust anchor though, so somewhere down the chain, which you might be able to fix yourself using tools such as this one.
Definitely out of scope for the app so if you need more help try searching online for the error message above and information a test tool provides.
I have the same problem as everyone else. It seems clear to me that it is indeed an SSL issue but I don't believe it is possible to update the trusted certs in the watch without being root.
The other option I would like to explore is modifying the app itself to accept the Lets Encrypt certs. Can someone point me to the source code for the wear os app where ssl happens?
Let's Encrypt certificates should work without issues - I use one myself with the default certbot configuration.
Validation happens by the networking library the app uses (Okio), which in turn uses the system's certificate store. The is no place in the app where 'ssl happens' we can point to.
Thanks for the quick reply @jpelgrom
Hmmm, you say it works for you with a lets encrypt certificate? Weird that it works for you but not for so many others. Did you do anything special on your watch or your phone?
I guess the problem lies with the Okio library then. Going to investigate that library to see if there's anything we can do.
So this is only for the android app right? Nothing to do with wear os? https://github.com/home-assistant/android/blob/master/common/src/main/java/io/homeassistant/companion/android/common/data/TLSHelper.kt
(I think you mentioned the wrong person.)
The linked file is used to support TLS Client Certificate authentication, otherwise it uses the platform default as you can see. It is in common
so used for all network callls in both the main and wear app (-> if it was misconfigured a lot more people would have issues as it'd also break Let's Encrypt on your phone).
Nothing special about the certificate or device configuration, using defaults pretty much everywhere.
Thanks. I corrected my mention :)
This mystery is killing me. The android app works fine with my LE cert so I don't understand why the watch does not.
I was having the same issue. I was able to login successfully once I turned off the Wi-Fi of my phone. Unfortunately, the watch app only works if the phone is not connected via the home wifi.
Home Assistant Android app version(s): 2023.3.0-full
Android version(s): 13
Device model(s): Samsung Galaxy Watch4 (SM-R870)
Home Assistant version: 2023.5.2
Last working Home Assistant release (if known): unknown
Description of problem, include YAML if issue is related to notifications: re-installed wear OS app, and i cant get it to log in, i get all the way through the flow putting in my creds, and then it puts me back to the beginning. here is an album showing what happens: https://imgur.com/a/oMEtnNl
Companion App Logs: