Compilation error: 'NOISE_HASH_SHA256' not declared when using Tailscale integration with ESP-IDF 5.x
Description
When attempting to compile an ESPHome project using the alfs/tailscale-iot external component on an ESP32-S3 board with framework: type: esp-idf, the build fails due to a symbol naming mismatch in the ESPHome API component.
The error occurs in src/esphome/components/api/api_frame_helper_noise.cpp:
error: 'NOISE_HASH_SHA256' was not declared in this scope; did you mean 'NOISE_USE_SHA256'?
It appears that newer versions of the ESP-IDF framework or updated ESPHome core headers have renamed NOISE_HASH_SHA256 to NOISE_USE_SHA256, but the tailscale-iot component (or the interaction between the two) expects the legacy symbol name.
Environment
ESPHome version: Latest (as of June 2026)
Platform: ESP32-S3 (board: esp32-s3-devkitc-1)
Framework: esp-idf
External components: github://alfs/tailscale-iot@main, github://trombik/esphome-component-ping
Steps to Reproduce
Configure an ESP32-S3 device in ESPHome using framework: type: esp-idf.
Include external_components for tailscale-iot and esphome-component-ping.
Attempt to compile the firmware.
Additional Context
The issue persists even when attempting to work around it by injecting -DNOISE_HASH_SHA256=NOISE_USE_SHA256 via build_flags in the esp32 configuration block, suggesting a deeper incompatibility between the vendored noise-c libraries used by the Tailscale component and the core ESPHome API server implementation when targeting ESP-IDF 5.x.
Compilation error: 'NOISE_HASH_SHA256' not declared when using Tailscale integration with ESP-IDF 5.x
Description
When attempting to compile an ESPHome project using the alfs/tailscale-iot external component on an ESP32-S3 board with framework: type: esp-idf, the build fails due to a symbol naming mismatch in the ESPHome API component.
The error occurs in src/esphome/components/api/api_frame_helper_noise.cpp:
error: 'NOISE_HASH_SHA256' was not declared in this scope; did you mean 'NOISE_USE_SHA256'?
It appears that newer versions of the ESP-IDF framework or updated ESPHome core headers have renamed NOISE_HASH_SHA256 to NOISE_USE_SHA256, but the tailscale-iot component (or the interaction between the two) expects the legacy symbol name.
Environment
ESPHome version: Latest (as of June 2026)
Platform: ESP32-S3 (board: esp32-s3-devkitc-1)
Framework: esp-idf
External components: github://alfs/tailscale-iot@main, github://trombik/esphome-component-ping
Steps to Reproduce
Configure an ESP32-S3 device in ESPHome using framework: type: esp-idf.
Include external_components for tailscale-iot and esphome-component-ping.
Attempt to compile the firmware.
Additional Context
The issue persists even when attempting to work around it by injecting -DNOISE_HASH_SHA256=NOISE_USE_SHA256 via build_flags in the esp32 configuration block, suggesting a deeper incompatibility between the vendored noise-c libraries used by the Tailscale component and the core ESPHome API server implementation when targeting ESP-IDF 5.x.