Turn Any IR Device Into a Smart One: An Open, Scalable IR Blaster for Homes, Hotels, and Large Buildings

By Clevr House on September 30, 2025

If your building is full of devices controlled by old-school remotes—air conditioners, TVs, sound systems, projectors—you already own a treasure trove of automation potential. You just need a way to learn those IR codes once and reuse them everywhere.

This article introduces a tiny, low-cost custom IR Blaster PCB (ESP32-C3 based) and a Home Assistant integration that turns legacy IR devices into centrally managed, automatable endpoints. It’s simple enough for a single living room, and robust enough for multi-floor hotels and campuses.


The Hardware: A Purpose-Built IR Blaster

Core design

  • MCU: ESP32-C3 Super Mini Pro (Wi-Fi, BLE, plenty of GPIO, secure OTA via ESPHome).

  • IR TX: Three high-efficiency 5 mm 940 nm LEDs driven by a 2N2222 transistor for strong coverage.

  • IR RX: VS1838B receiver for reliable code learning (38 kHz).

  • Power: 5 V input; LEDs current-limited with low-value resistors for strong output; onboard TX indicator LED.

  • Form factor: Small footprint, pads for easy wiring and wall or ceiling integration.

Why this PCB over USB dongles or “black box” hubs?

  • Open hardware + open firmware — no cloud lock-in.

  • Better range & repeatability — transistor-driven multi-LED design throws IR further and wider.

  • Field-serviceable — standard parts; no proprietary housings.

  • Flexible — the same board can run different firmware (ESPHome today; MQTT or custom API tomorrow).


The Software: A Shared IR Library That Scales

We designed a shell-only integration for Home Assistant that keeps CPU use low and avoids extra add-ons. It stores learned codes as plain files:

 
/config/irlib/<device>/<button>.raw

A lightweight index (/config/irlib_index.json) keeps your UI dropdowns snappy. You get:

  • Learn once, use anywhere. Capture a code from any blaster (with a receiver), then send it from any blaster across your building.

  • Per-room control + broadcast. Choose a node (room) for targeted actions or broadcast the same command to multiple rooms.

  • Named devices & buttons. “yamaha_rxv → vol_up”, “daikin_arc477a50 → cool_23c”, etc. Rename/move/delete directly from the UI.

  • Backups & restore. Nightly tarball backups of your library; one-click restore if needed.

  • Low maintenance. No constant polling. No broker required (unless you want one for other projects).

Under the hood

  • Codes are learned via ESPHome (receiver → HA event).

  • A tiny HA automation drops the raw timings into files and rebuilds the index.

  • Scripts handle rename/move/delete, node lists, backups, and restores.


Why This Matters for Hospitality & Large Sites

Standardize across brands. Many hotels juggle multiple AC, TV, and AV models—each with its own remote. With a shared IR library:

  • Engineering learns each device once.

  • Front desk or automation rules can control any room without manual pairing.

  • Techs can replace a unit and simply point the new remote at the nearest learner to update codes.

Operational wins

  • Energy savings: Auto power-off TVs, tighten AC schedules, enforce eco setpoints when rooms are unoccupied.

  • Guest experience: Pre-set welcome scenes; on-demand support where staff can trigger IR commands remotely.

  • Rapid rollouts: Clone devices and button sets across floors; add rooms by dropping in more blasters.

  • Vendor independence: No licensing, no per-room subscription, no cloud.

Security & privacy

  • Stays on your LAN.

  • No guest data flows through third-party clouds.

  • Auditable: all codes are plain files; you can version or archive them.


Flexible Firmware Options (ESPHome now, MQTT later)

This same PCB can run different firmwares:

  • ESPHome (recommended) for native Home Assistant API, custom services, and ultra-low overhead.

  • MQTT firmware if your building management system or third-party orchestration prefers topics like:

     
    ir/living/yamaha/vol_up → "[600,-1600,600,-550,600,-550]"
  • Custom HTTP/UDP endpoints for integration with proprietary backends.

You can standardize on a single hardware SKU, then deploy the firmware that best suits each site or client.


Real-World Scenarios

Residential

  • One learner in the living room to capture all IR codes.

  • Small blasters in bedroom/office share the same library and send as needed.

  • Scenes and automations (e.g., “Movie Night”) fire IR commands across multiple devices with a single tap.

Hotels

  • One or two learners per floor for new devices.

  • Each room gets a blaster aimed at the TV/AC.

  • PMS or occupancy sensors can trigger IR—power down when the room is vacant, set eco mode at checkout.

Campuses & Offices

  • Centralized AV control for conference rooms: projectors, screens, amps.

  • Global broadcasts for “turn off all displays after 8 pm”.


Deployment Tips

  • Placement: Aim TX LEDs toward the IR windows; mounting on the TV/AC frame or ceiling soffit works well. Repeat counts (2–5) help with fussy devices.

  • Learning best practice: Stand close, point original remote at the VS1838B, and keep the button pressed long enough to capture repeats.

  • Naming convention: Use consistent slugs (e.g., brand_model) and button names (power_toggle, cool_24c, hdmi1).

  • Backups: Enable nightly backups; keep the last 10 by default.

  • Serviceability: Keep one spare learner on-hand for quick code captures during device swaps.


What You Need to Get Started

  1. Assemble the PCB (ESP32-C3, VS1838B receiver, 2N2222 + IR LEDs, resistors, 5 V supply).

  2. Flash ESPHome firmware (learn + send service, 38 kHz TX, TX LED).

  3. Install the Home Assistant package for the shell-based IR library, add the four small automations, and add the Lovelace cards.

  4. Set your nodes CSV in the UI (e.g., ir_blaster_living_room, ir_blaster_bedroom) and reload the library.

  5. Start learning and test sending from the card.

  6. Back up your library and roll it out to more rooms.


Why This Approach Wins

  • Open & future-proof: Everything is transparent—files, YAML, scripts. You can audit, fork, or export.

  • Scalable: Works for a single TV or hundreds of rooms.

  • Cost-effective: Commodity parts, no vendor lock-in, no recurring fees.

  • Low-CPU, low-noise: Shell-only, event-driven; no wasteful polling.

  • Flexible integrations: ESPHome today; MQTT or custom APIs tomorrow.


Ready to modernize your legacy fleet?

With one small board and a clean Home Assistant workflow, you can standardize control, cut energy waste, and improve guest comfort—without replacing your existing devices.