From 1499d840ced974e4247b9e5e9b707824ffd5ba94 Mon Sep 17 00:00:00 2001 From: eddy Date: Thu, 30 Jul 2026 17:20:38 +0200 Subject: [PATCH] fix: handle missing VERSION characteristic gracefully on old ESP firmware --- .../main/java/nl/eddydevink/sylda/BleRelayManager.kt | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/android/app/src/main/java/nl/eddydevink/sylda/BleRelayManager.kt b/android/app/src/main/java/nl/eddydevink/sylda/BleRelayManager.kt index 9ec1740..a004c34 100644 --- a/android/app/src/main/java/nl/eddydevink/sylda/BleRelayManager.kt +++ b/android/app/src/main/java/nl/eddydevink/sylda/BleRelayManager.kt @@ -286,8 +286,13 @@ class BleRelayManager( val service = gatt.getService(SERVICE_UUID) val versionChar = service?.getCharacteristic(VERSION_UUID) if (versionChar != null) { - gatt.readCharacteristic(versionChar) + val ok = gatt.readCharacteristic(versionChar) + if (!ok) { + Log.w(TAG, "readCharacteristic(VERSION) returned false, skipping version check") + handler.post { callbacks.onStatusChanged(BleStatus.Connected) } + } } else { + Log.d(TAG, "VERSION characteristic not found, skipping version check") handler.post { callbacks.onStatusChanged(BleStatus.Connected) } } } else { @@ -302,6 +307,9 @@ class BleRelayManager( Log.d(TAG, "ESP firmware version: $version, app bundled: $appVersion") handler.post { callbacks.onFirmwareVersion(version, appVersion) } handler.post { callbacks.onStatusChanged(BleStatus.Connected) } + } else if (characteristic.uuid == VERSION_UUID) { + Log.w(TAG, "Version read failed (status=$status), using Connected anyway") + handler.post { callbacks.onStatusChanged(BleStatus.Connected) } } }