Skip to content

Shaffer-Softworks/esp32-intercom

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ESP32 Intercom - ESPHome & Home Assistant Integration

WebRTC intercom system for ESP32 devices with full Android WebRTC compatibility via ESPHome and Home Assistant integration.

Overview

This project provides:

  • ESPHome Custom Component for WebRTC intercom functionality
  • Full WebRTC Support using Espressif ESP WebRTC Solution
  • Home Assistant Integration with sensors, switches, and automations
  • Android Compatibility - Works with standard Android WebRTC devices
  • Waveshare ESP32-P4-86 Support - Optimized for ESP32-P4 panel hardware

Features

  • WebRTC Signaling - WebSocket-based signaling compatible with Android
  • Full WebRTC Peer Connection - DTLS-SRTP encryption, ICE candidate handling
  • Audio I/O - I2S audio with ES8311 DAC and ES7210 ADC support
  • Home Assistant Entities - Switches, sensors, and text sensors
  • Auto-Connect - Automatic call establishment
  • Auto-Accept - Automatic incoming call acceptance
  • Call Management - Start, end, accept, and mute controls

Quick Start

  1. Install ESPHome Component:

    cp -r esphome/components/intercom ~/.esphome/components/
  2. Add ESP WebRTC Solution:

    cd ~/.esphome/components/intercom
    git submodule add https://github.com/espressif/esp-webrtc-solution.git esp-webrtc-solution
    cd esp-webrtc-solution && git submodule update --init --recursive
  3. Use Configuration:

    • Copy esphome/intercom_waveshare.yaml to your ESPHome directory
    • Update WiFi credentials in secrets.yaml
    • Compile and upload
  4. Configure in Home Assistant:

    • Set target device ID in input_text.intercom_target_device_id
    • Use switch.start_intercom_call to initiate calls
    • Monitor status via sensors

Documentation

Hardware Support

Waveshare ESP32-P4-86 Panel

  • Microcontroller: ESP32-P4
  • Audio DAC: ES8311 (I2C 0x18)
  • Audio ADC: ES7210 (I2C 0x40)
  • I2S: Shared bus for microphone and speaker
  • Sample Rates: 16kHz (mic), 48kHz (speaker)

See WAVESHARE_HARDWARE.md for pin configurations and setup.

Project Structure

esp32-intercom/
├── esphome/
│   ├── components/intercom/      # ESPHome custom component
│   └── intercom_waveshare.yaml   # Complete configuration
├── main/                          # ESP-IDF version (alternative)
├── docs/                          # Additional documentation
└── README.md                      # This file

Requirements

  • ESPHome with ESP-IDF framework (v5.4.2+)
  • ESP WebRTC Solution (as submodule)
  • ESP32-P4 or compatible ESP32 variant
  • Home Assistant (optional, for automation)

Android Compatibility

Fully Compatible - Uses standard WebRTC with:

  • DTLS-SRTP encryption
  • ICE candidate processing
  • Proper SDP generation
  • Standard WebRTC media streaming

Works with unmodified Android WebRTC applications.

License

See LICENSE file.

About

ESP32 Intercom Client

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors