ESPHome 2025.11.0 fails for GDO Blaq device

When attempting to upgrade to ESPHome 2025.11.0 I get an Error and the firmware will not update. I also have the konnected Alarm Panel Pro and it updated fine to 2025.11.0

Here is the output from ESPHome, the warnings are included with the final error.

In file included from src/esphome/components/secplus_gdo/secplus_gdo.h:23,
                 from src/esphome/components/secplus_gdo/secplus_gdo.cpp:18:
src/esphome/components/secplus_gdo/select/gdo_select.h: In member function 'void esphome::secplus_gdo::GDOSelect::update_state(gdo_protocol_type_t)':
src/esphome/components/secplus_gdo/select/gdo_select.h:42:57: warning: 'esphome::select::Select::state' is deprecated: Use current_option() instead of .state. Will be removed in 2026.5.0 [-Wdeprecated-declarations]
   42 |                 if (this->has_state() && value != this->state) {
      |                                                         ^~~~~
In file included from src/esphome/components/secplus_gdo/select/gdo_select.h:10:
src/esphome/components/select/select.h:39:15: note: declared here
   39 |   std::string state{};
      |               ^~~~~
src/esphome/components/secplus_gdo/select/gdo_select.h:42:57: warning: 'esphome::select::Select::state' is deprecated: Use current_option() instead of .state. Will be removed in 2026.5.0 [-Wdeprecated-declarations]
   42 |                 if (this->has_state() && value != this->state) {
      |                                                         ^~~~~
src/esphome/components/select/select.h:39:15: note: declared here
   39 |   std::string state{};
      |               ^~~~~
src/esphome/components/secplus_gdo/select/gdo_select.h:42:57: warning: 'esphome::select::Select::state' is deprecated: Use current_option() instead of .state. Will be removed in 2026.5.0 [-Wdeprecated-declarations]
   42 |                 if (this->has_state() && value != this->state) {
      |                                                         ^~~~~
src/esphome/components/select/select.h:39:15: note: declared here
   39 |   std::string state{};
      |               ^~~~~
src/esphome/components/secplus_gdo/secplus_gdo.cpp: In function 'void __wrap_esp_panic_handler(void*)':
src/esphome/components/secplus_gdo/secplus_gdo.cpp:185:5: error: 'gpio_hal_iomux_func_sel' was not declared in this scope; did you mean 'gpio_hal_func_sel'?
  185 |     gpio_hal_iomux_func_sel(GPIO_PIN_MUX_REG[(gpio_num_t)GDO_UART_TX_PIN], PIN_FUNC_GPIO);
      |     ^~~~~~~~~~~~~~~~~~~~~~~
      |     gpio_hal_func_sel

I’ve reported this on GitHub and included a patch that fixes it for me, although apparently the patch uses a new API that will be deprecated in ESP-IDF v6. There’s a suggestion on the pull request to use a different API, but I’m not enough of an ESP-IDF programmer to make that change.

Very cool. I will just wait for the permanent fix, but thanks for confirming and finding a fix.

We’re working on this. Thank you @drothenberger for always being on the bleeding edge.

2 Likes

This is fixed now:

1 Like

Success!! Thanks Nate!