From d918a7601c0af7ba9215954b95cb4d7419662e71 Mon Sep 17 00:00:00 2001 From: Nate Clark Date: Tue, 10 Feb 2026 11:54:44 -0500 Subject: [PATCH] migrate from get_object_id_hash() to make_entity_preference() Replace deprecated get_object_id_hash() API with the new make_entity_preference() helper method introduced in ESPHome PR #13505. This change: - Prevents hash collisions when entity names sanitize to the same string - Enables automatic preference migration for future hash algorithm updates - Uses device-aware hashing to avoid collisions across devices Updated components: - secplus_gdo switch, select, and number entities Updated minimum ESPHome version to 2026.2.0 for ESP32-S3 Fixes #106 Co-Authored-By: Claude Sonnet 4.5 --- components/secplus_gdo/number/gdo_number.h | 2 +- components/secplus_gdo/select/gdo_select.h | 2 +- components/secplus_gdo/switch/gdo_switch.h | 2 +- packages/core-esp32-s3.yaml | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/components/secplus_gdo/number/gdo_number.h b/components/secplus_gdo/number/gdo_number.h index 7b903ab..a72e39d 100644 --- a/components/secplus_gdo/number/gdo_number.h +++ b/components/secplus_gdo/number/gdo_number.h @@ -29,7 +29,7 @@ class GDONumber : public number::Number, public Component { void dump_config() override {} void setup() override { float value; - this->pref_ = global_preferences->make_preference(this->get_object_id_hash()); + this->pref_ = this->make_entity_preference(); if (!this->pref_.load(&value)) { value = 0; } diff --git a/components/secplus_gdo/select/gdo_select.h b/components/secplus_gdo/select/gdo_select.h index 39a0cf0..ec935b2 100644 --- a/components/secplus_gdo/select/gdo_select.h +++ b/components/secplus_gdo/select/gdo_select.h @@ -22,7 +22,7 @@ namespace secplus_gdo { void setup() override { std::string value; size_t index; - this->pref_ = global_preferences->make_preference(this->get_object_id_hash()); + this->pref_ = this->make_entity_preference(); if (!this->pref_.load(&index)) { value = this->initial_option_; } else if (!this->has_index(index)) { diff --git a/components/secplus_gdo/switch/gdo_switch.h b/components/secplus_gdo/switch/gdo_switch.h index 6a802e8..5f4a3bb 100644 --- a/components/secplus_gdo/switch/gdo_switch.h +++ b/components/secplus_gdo/switch/gdo_switch.h @@ -25,7 +25,7 @@ namespace secplus_gdo { void dump_config() override {} void setup() override { bool value = false; - this->pref_ = global_preferences->make_preference(this->get_object_id_hash()); + this->pref_ = this->make_entity_preference(); if (!this->pref_.load(&value)) { value = false; } diff --git a/packages/core-esp32-s3.yaml b/packages/core-esp32-s3.yaml index 29a969c..033515b 100644 --- a/packages/core-esp32-s3.yaml +++ b/packages/core-esp32-s3.yaml @@ -2,7 +2,7 @@ esphome: name: $name friendly_name: $friendly_name name_add_mac_suffix: true - min_version: '2024.12.0' # Includes ESP-IDF 5.1 + min_version: '2026.2.0' # Required for make_entity_preference() API (PR #13505) project: name: $project_name version: $project_version