From c6bdb370a16b4d6b03c49877e361794b077f673f Mon Sep 17 00:00:00 2001 From: eigger Date: Mon, 27 Jul 2026 20:22:29 +0900 Subject: [PATCH 1/3] fix(sip_client): use network::get_ip_addresses() for the local-IP fallback network::get_use_address()/get_use_address_to() was renamed between two ESPHome releases both currently in active use (2026.6.5 still has the old no-arg get_use_address(); 2026.7.2 only has the new buffer-based get_use_address_to()), so either choice broke one of the two. The get_ip_addresses()/IPAddress::str_to()/IP_ADDRESS_BUFFER_SIZE surface is unchanged across both, and returns an actual IP instead of a hostname, which is what this fallback needs anyway. Verified compiling clean against real esphome==2026.6.5 and esphome==2026.7.2. Co-Authored-By: Claude Sonnet 5 --- components/sip_client/sip_client.cpp | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/components/sip_client/sip_client.cpp b/components/sip_client/sip_client.cpp index 5f9b4ffb..71e1624e 100644 --- a/components/sip_client/sip_client.cpp +++ b/components/sip_client/sip_client.cpp @@ -101,8 +101,13 @@ bool SipClient::open_socket_() { this->socket_->getsockname(reinterpret_cast(&local), &ll); this->local_ip_ = sockaddr_ip(local, &this->local_port_); if (this->local_ip_.empty() || this->local_ip_ == "0.0.0.0") { - char use_address_buf[network::USE_ADDRESS_BUFFER_SIZE]; - this->local_ip_ = network::get_use_address_to(use_address_buf); + for (auto &addr : network::get_ip_addresses()) { + if (addr.is_set() && addr.is_ip4()) { + char ip_buf[network::IP_ADDRESS_BUFFER_SIZE]; + this->local_ip_ = addr.str_to(ip_buf); + break; + } + } } ESP_LOGI(TAG, "SIP socket bound, local %s:%u", this->local_ip_.c_str(), this->local_port_); return true; From 156a16ef90544cb2cfdb0952cca5cefbb0d8e489 Mon Sep 17 00:00:00 2001 From: eigger Date: Mon, 27 Jul 2026 20:27:18 +0900 Subject: [PATCH 2/3] ci: bump ESPHome CI to Python 3.13 ESPHome 2026.7.0+ requires Python >=3.12, but this workflow pinned Python 3.11, so `pip install esphome` (unpinned) silently fell back to the last 3.11-compatible release (2026.6.5) instead of actually latest. That's why CI compiled against the old, pre-rename network API even though it does an unpinned "pip install esphome" every run. Co-Authored-By: Claude Sonnet 5 --- .github/workflows/esphome.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/esphome.yml b/.github/workflows/esphome.yml index 4902be0b..43b10490 100644 --- a/.github/workflows/esphome.yml +++ b/.github/workflows/esphome.yml @@ -103,7 +103,7 @@ jobs: - name: Set up Python uses: actions/setup-python@v6 with: - python-version: '3.11' + python-version: '3.13' - name: Install ESPHome run: | @@ -128,7 +128,7 @@ jobs: - name: Set up Python uses: actions/setup-python@v6 with: - python-version: '3.11' + python-version: '3.13' - name: Install ESPHome run: | From 439eec97f2a31d827adcf378c84b895501d70a31 Mon Sep 17 00:00:00 2001 From: eigger Date: Mon, 27 Jul 2026 20:30:51 +0900 Subject: [PATCH 3/3] ci: use Python 3.14 (actual latest) instead of 3.13 Co-Authored-By: Claude Sonnet 5 --- .github/workflows/esphome.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/esphome.yml b/.github/workflows/esphome.yml index 43b10490..850e98a9 100644 --- a/.github/workflows/esphome.yml +++ b/.github/workflows/esphome.yml @@ -103,7 +103,7 @@ jobs: - name: Set up Python uses: actions/setup-python@v6 with: - python-version: '3.13' + python-version: '3.14' - name: Install ESPHome run: | @@ -128,7 +128,7 @@ jobs: - name: Set up Python uses: actions/setup-python@v6 with: - python-version: '3.13' + python-version: '3.14' - name: Install ESPHome run: |