From a6aa11308620feca135c71a1990fe6f870926fd2 Mon Sep 17 00:00:00 2001 From: "J. Nick Koston" Date: Thu, 26 Feb 2026 21:10:29 -1000 Subject: [PATCH] fixes --- esphome/components/esp32_ble/__init__.py | 18 ++++++++++++++++++ esphome/components/esp32_ble/ble.cpp | 2 +- esphome/components/esp32_ble/ble.h | 2 ++ esphome/core/defines.h | 1 + ...ended-auth-req-params-single.esp32-idf.yaml | 6 ------ ...est-extended-auth-req-params.esp32-idf.yaml | 5 ----- 6 files changed, 22 insertions(+), 12 deletions(-) delete mode 100644 tests/components/esp32_ble_client/test-extended-auth-req-params-single.esp32-idf.yaml delete mode 100644 tests/components/esp32_ble_client/test-extended-auth-req-params.esp32-idf.yaml diff --git a/esphome/components/esp32_ble/__init__.py b/esphome/components/esp32_ble/__init__.py index 516881a43b..8b368afc2e 100644 --- a/esphome/components/esp32_ble/__init__.py +++ b/esphome/components/esp32_ble/__init__.py @@ -21,6 +21,7 @@ from esphome.const import ( ) from esphome.core import CORE, CoroPriority, TimePeriod, coroutine_with_priority import esphome.final_validate as fv +from esphome.types import ConfigType DEPENDENCIES = ["esp32"] CODEOWNERS = ["@jesserockz", "@Rapsssito", "@bdraco"] @@ -298,6 +299,23 @@ CONFIG_SCHEMA = cv.Schema( ).extend(cv.COMPONENT_SCHEMA) +def _validate_key_sizes(config: ConfigType) -> ConfigType: + if ( + CONF_MIN_KEY_SIZE in config + and CONF_MAX_KEY_SIZE in config + and config[CONF_MIN_KEY_SIZE] > config[CONF_MAX_KEY_SIZE] + ): + raise cv.Invalid( + f"min_key_size ({config[CONF_MIN_KEY_SIZE]}) must be " + f"less than or equal to " + f"max_key_size ({config[CONF_MAX_KEY_SIZE]})" + ) + return config + + +CONFIG_SCHEMA = cv.All(CONFIG_SCHEMA, _validate_key_sizes) + + bt_uuid16_format = "XXXX" bt_uuid32_format = "XXXXXXXX" bt_uuid128_format = "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX" diff --git a/esphome/components/esp32_ble/ble.cpp b/esphome/components/esp32_ble/ble.cpp index aa7f4c443a..9d26018800 100644 --- a/esphome/components/esp32_ble/ble.cpp +++ b/esphome/components/esp32_ble/ble.cpp @@ -717,7 +717,7 @@ void ESP32BLE::dump_config() { ESP_LOGCONFIG(TAG, " Key Size: %u - %u", this->min_key_size_, this->max_key_size_); } else if (this->max_key_size_) { ESP_LOGCONFIG(TAG, " Key Size: - %u", this->max_key_size_); - } else if (this->max_key_size_) { + } else if (this->min_key_size_) { ESP_LOGCONFIG(TAG, " Key Size: %u - ", this->min_key_size_); } #endif // ESPHOME_ESP32_BLE_EXTENDED_AUTH_PARAMS diff --git a/esphome/components/esp32_ble/ble.h b/esphome/components/esp32_ble/ble.h index a6fc74ebdf..2ce17e97be 100644 --- a/esphome/components/esp32_ble/ble.h +++ b/esphome/components/esp32_ble/ble.h @@ -52,6 +52,7 @@ enum IoCapability { IO_CAP_KBDISP = ESP_IO_CAP_KBDISP, }; +#ifdef ESPHOME_ESP32_BLE_EXTENDED_AUTH_PARAMS enum AuthReqMode { AUTH_REQ_NO_BOND = ESP_LE_AUTH_NO_BOND, AUTH_REQ_BOND = ESP_LE_AUTH_BOND, @@ -62,6 +63,7 @@ enum AuthReqMode { AUTH_REQ_SC_MITM = ESP_LE_AUTH_REQ_SC_MITM, AUTH_REQ_SC_MITM_BOND = ESP_LE_AUTH_REQ_SC_MITM_BOND, }; +#endif enum BLEComponentState : uint8_t { /** Nothing has been initialized yet. */ diff --git a/esphome/core/defines.h b/esphome/core/defines.h index 673aa246fe..9b55ae93b1 100644 --- a/esphome/core/defines.h +++ b/esphome/core/defines.h @@ -209,6 +209,7 @@ #define ESPHOME_ESP32_BLE_GATTC_EVENT_HANDLER_COUNT 1 #define ESPHOME_ESP32_BLE_GATTS_EVENT_HANDLER_COUNT 1 #define ESPHOME_ESP32_BLE_BLE_STATUS_EVENT_HANDLER_COUNT 2 +#define ESPHOME_ESP32_BLE_EXTENDED_AUTH_PARAMS #define ESPHOME_LOOP_TASK_STACK_SIZE 8192 #define USE_ESP32_CAMERA_JPEG_ENCODER #define USE_HTTP_REQUEST_RESPONSE diff --git a/tests/components/esp32_ble_client/test-extended-auth-req-params-single.esp32-idf.yaml b/tests/components/esp32_ble_client/test-extended-auth-req-params-single.esp32-idf.yaml deleted file mode 100644 index 6e191c132f..0000000000 --- a/tests/components/esp32_ble_client/test-extended-auth-req-params-single.esp32-idf.yaml +++ /dev/null @@ -1,6 +0,0 @@ -esp32_ble: - io_capability: keyboard_display - # Explicitly not setting some parameters to test ifdef selection - # max_key_size: 16 - # min_key_size: 7 - auth_req_mode: sc_mitm_bond diff --git a/tests/components/esp32_ble_client/test-extended-auth-req-params.esp32-idf.yaml b/tests/components/esp32_ble_client/test-extended-auth-req-params.esp32-idf.yaml deleted file mode 100644 index f05b9bac96..0000000000 --- a/tests/components/esp32_ble_client/test-extended-auth-req-params.esp32-idf.yaml +++ /dev/null @@ -1,5 +0,0 @@ -esp32_ble: - io_capability: keyboard_display - max_key_size: 16 - min_key_size: 7 - auth_req_mode: sc_mitm_bond