Skip to content

v2026.6.1 - Native intercom modes, routing and phonebook cleanup

Choose a tag to compare

@n-IA-hane n-IA-hane released this 01 Jun 16:14
· 564 commits to main since this release

🧭 v2026.6.1 - Native intercom modes, stronger routing and phonebook cleanup

This is a focused follow-up to v2026.6.0.

2026.6.0 shipped the Espressif GMF / esp_audio_stack migration. 2026.6.1 tightens the intercom layer above it: Home Assistant routing, standalone ESPHome-native audio, one-way endpoint modes and safer reconnect behavior.

📞 Intercom Native / Home Assistant

🗂️ Phonebook moved to an attribute

The full roster is now stored in:

sensor.intercom_phonebook.attributes.phonebook

The entity state is now only a short summary such as 5 entries.

This removes the old 255-character state limit, which was too small for larger installs such as apartments, offices or multi-room deployments.

Maintained YAMLs already subscribe to the new attribute. Custom YAMLs must update their Home Assistant text sensor subscription accordingly.

🌐 Better HA recognition across subnets and NAT

The Home Assistant integration now handles routed networks more reliably.

Test coverage for this release included:

  • ESP and HA on the same subnet
  • ESP on a routed secondary subnet
  • TCP calls across subnets
  • UDP calls with NAT return paths
  • mixed TCP/UDP endpoints
  • HA PBX mode enabled and disabled

The goal is that HA is recognized as HA, not as a generic ESP peer, even when the ESP is on another routed network.

🔀 Stronger UDP return-path handling

UDP peers can now be matched by the observed packet source when NAT changes the apparent return address.

The phonebook still keeps the real endpoint identity; the transport layer only uses the observed source as the return path when needed.

🧩 Card config rename

The Lovelace card option was renamed:

show_protocol: true

becomes:

show_extended_info: true

The old key is intentionally not kept. The option now shows more than the protocol, so the YAML name was updated to match what the UI does.

🎙️ Intercom API

🎧 ESPHome-native audio is supported again

intercom_api can now run directly on standard ESPHome microphone and speaker components.

This is important for hardware that already performs audio processing itself, for example XMOS-style front-ends or other DSP/codec paths that provide echo-cancelled microphone audio before ESPHome sees it.

In that case you do not need esp_audio_stack just to use Intercom Native.

↔️ Full-duplex, mic-only and speaker-only endpoints

intercom_api now supports three endpoint capabilities:

  • full_duplex: microphone + speaker
  • mic_only: microphone only, useful for listening/monitoring endpoints
  • speaker_only: speaker only, useful for announcement endpoints

The capability is derived from the declared audio components. Users do not need to set a separate mode flag.

🧹 Removed legacy intercom-side AEC plumbing

The old intercom fallback AEC/audio-processor path has been removed.

Current model:

  • use native ESPHome audio when the hardware already gives you processed audio
  • use esp_audio_stack full profiles when you need software AEC/AFE

This keeps intercom_api focused on call signaling and audio transport instead of duplicating audio processing.

🧪 New YAML Profiles

New ESPHome-native YAMLs are provided as starting points for native audio hardware:

yamls/full-experience/esphome-native/
yamls/intercom-only/esphome-native/

The tested generic native example uses INMP441 microphone + MAX98357-style I2S amplifier on separate I2S buses through ESPHome native microphone and speaker components.

Important: plain native INMP441 + MAX98357 does not provide echo cancellation by itself. For AEC you need either:

  • hardware/DSP AEC, such as an XMOS-style front-end, or
  • the maintained full esp_audio_stack profiles with software AEC/AFE.

The native profiles are not a ready-made Voice PE profile yet, but they are the base for that class of hardware. Feedback from users with native processed audio hardware is welcome.

🛡️ Runtime Stability

Full audio/LVGL profiles no longer run HA disconnect cleanup actions that could destabilize devices during a Home Assistant restart.

This avoids devices getting stuck or rebooting simply because HA was restarted during normal operation.

🧰 Upgrade Notes

After updating the Home Assistant integration:

  1. Restart Home Assistant.
  2. Hard-refresh dashboards using intercom-card.
  3. Update card YAML from show_protocol to show_extended_info if you used that option.
  4. Recompile maintained ESP YAMLs.
  5. For custom YAMLs, update the phonebook subscription to read the phonebook attribute.

Minimum versions remain:

  • ESPHome: 2026.5.x or newer
  • Home Assistant Core: 2026.5.0 or newer