Skip to content

Open Source IR Blaster designed specifically for ESPHome (Home Assistant)

License

Notifications You must be signed in to change notification settings

jaycollett/OpenIRBlaster

OpenIRBlaster

An open-source universal IR receiver and transmitter designed specifically for Home Assistant and ESPHome.

GitHub Release License hacs

Current release: v1.0.1

What is OpenIRBlaster?

OpenIRBlaster is a purpose-built hardware and software solution for IR control in your smart home:

  • Custom PCB - A dedicated circuit board designed around the ESP8266, featuring transistor-driven IR LEDs for excellent range and a quality IR receiver for learning codes
  • ESPHome Firmware - Clean, maintainable configuration that integrates seamlessly with Home Assistant
  • HACS-Installable Integration - A custom Home Assistant integration that dramatically simplifies IR code management. Point a remote at the device, press a button, give it a name, and the integration automatically creates a named entity you can use in automations. No YAML editing or raw hex codes required

Key Features

Simple Code Learning: Point any remote at the device, press a button, and the code is captured. Give it a friendly name like "Living Room TV - Power" and the integration automatically creates a corresponding Home Assistant entity.

Organized Code Management: All your learned codes become proper Home Assistant entities, organized and ready for use in automations, scripts, dashboards, or voice assistants.

Reliable Transmission: The transistor-driven IR LED circuit provides strong output for reliable device control, even across larger rooms. Multiple IR LEDs provide 360-degree coverage.

Both Transmit and Receive: Learn codes from existing remotes AND send commands to your devices, all from one compact unit.

Requirements

  • Home Assistant 2024.1+ (Python 3.12+)
  • ESPHome device with:
    • IR receiver (TSOP38238 or similar)
    • IR transmitter (LED + transistor)
    • OpenIRBlaster firmware installed

For hardware build instructions and the complete bill of materials (~$22-25 total), see the Hardware Overview in the wiki.

Installation

HACS (Recommended)

  1. Open HACS in your Home Assistant instance
  2. Click on Integrations
  3. Click the + Explore & Download Repositories button
  4. Search for "OpenIRBlaster"
  5. Click Download
  6. Restart Home Assistant
  7. Go to SettingsDevices & ServicesAdd Integration → search "OpenIRBlaster"

Manual Installation

  1. Download the latest release
  2. Extract and copy the custom_components/openirblaster folder to your Home Assistant custom_components directory
  3. Restart Home Assistant
  4. Go to SettingsDevices & ServicesAdd Integration
  5. Search for "OpenIRBlaster" and follow the setup wizard

Quick Start Guide

1. Add the Integration

  1. Navigate to SettingsDevices & Services
  2. Click + Add Integration
  3. Search for "OpenIRBlaster"
  4. Select your ESPHome OpenIRBlaster device from the dropdown (devices must already be connected via ESPHome)
  5. Click Submit

2. Learn Your First IR Code

  1. In your device's entity list, find the Code Name text field
  2. Enter a name for the code you want to learn (e.g., "TV Power")
  3. Click the Learn IR Code button
  4. Within 30 seconds, point your remote at the IR receiver and press the button
  5. A new button entity will automatically appear with your code name

That's it! You can now press the new button to transmit the IR code.

3. Use in Automations

automation:
  - alias: "Turn off TV at bedtime"
    trigger:
      - platform: time
        at: "23:00:00"
    action:
      - service: button.press
        target:
          entity_id: button.openirblaster_tv_power

For detailed documentation on entities, services, and advanced usage, see the Home Assistant Integration wiki page.

Compatibility

OpenIRBlaster is designed as a complete end-to-end solution, but it's built with flexibility in mind. The HACS integration communicates with the device via ESPHome's native API, so technically any ESPHome-based IR device with the right services could work.

Note: The integration identifies compatible devices by checking the ESPHome project name. It looks for devices where the firmware declares project.name: "jaycollett.openirblaster". If you're building your own hardware but want to use this integration, you'll need to include that project identifier in your ESPHome YAML or fork the integration to support your own project name.

Documentation

Development

Want to contribute? Check out:

ESPHome Firmware

The ESPHome firmware configuration is located at hardware/firmware/factory_flash.yaml. To contribute firmware changes:

  1. Modify the YAML configuration as needed
  2. Test with your own ESPHome device before submitting a PR
  3. Ensure compatibility with the Home Assistant integration (event names, service calls, entity IDs)

See the Firmware & ESPHome wiki page for configuration details.

Home Assistant Integration

# Setup development environment
git clone https://github.com/jaycollett/OpenIRBlaster.git
cd OpenIRBlaster
python3 -m venv venv
source venv/bin/activate
pip install -r requirements_dev.txt

# Run tests
pytest

Support

License

This project is licensed under the MIT License - see the LICENSE file for details.

Acknowledgments

Built for the Home Assistant community. Special thanks to:

  • The ESPHome project for the amazing firmware platform
  • The Home Assistant community for inspiration and support

Transparency Note: AI-Assisted Development

The Home Assistant integration for this project was developed with assistance from Claude Code, Anthropic's AI coding assistant. AI-assisted development is a powerful tool when used responsibly by engineers who understand the code being generated, validate its correctness, and take ownership of the final result. I reviewed, tested, and take full responsibility for all code in this repository. AI assistance accelerated development but doesn't replace engineering judgment, thorough testing, or understanding of the underlying systems.


About

Open Source IR Blaster designed specifically for ESPHome (Home Assistant)

Topics

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Packages

No packages published

Contributors 799

Languages