Skip to content

steelcuts/ir2mqtt_bridge

Repository files navigation

IR2MQTT Bridge for ESPHome

Custom ESPHome component that bridges IR hardware to MQTT and/or Serial via a clean JSON API. Supports 15+ protocols, multiple RX/TX channels, optional status LED, and works with or without network.

→ Full documentation: MANUAL.md


Installation

Option 1 — directly from GitHub (no local clone needed):

external_components:
  - source:
      type: git
      url: https://github.com/steelcuts/ir2mqtt_bridge
      ref: main
    components: [ir2mqtt_bridge]

Option 2 — local clone (if you have the repo checked out next to your config):

external_components:
  - source:
      type: local
      path: components
    components: [ir2mqtt_bridge]

Examples

File Description
ir2mqtt_bridge_lan.yaml Ethernet (LAN8720) + MQTT + status LED. For boards like Olimex ESP32-POE.
ir2mqtt_bridge_wifi.yaml WiFi + MQTT + status LED. Minimal network setup.
ir2mqtt_bridge_serial.yaml USB/Serial only, no network. JSON over UART0.
ir2mqtt_bridge_multi_serial.yaml USB/Serial with 2× RX and 3× TX channels. Uses rmt_symbols: 64 to stay within ESP32 RMT limits.

All examples use substitutions: at the top for easy pin customization.


Minimal Config

ir2mqtt_bridge:
  receivers: [rx1]       # remote_receiver IDs
  transmitters: [tx1]    # remote_transmitter IDs

Serial mode — add a uart: component and reference it:

uart:
  id: bridge_uart
  tx_pin: GPIO1
  rx_pin: GPIO3
  baud_rate: 115200

ir2mqtt_bridge:
  uart_id: bridge_uart
  receivers: [rx1]
  transmitters: [tx1]

When using serial, set logger: baud_rate: 0 to free UART0 from ESPHome's logger.


Quick JSON Reference

Receive (bridge → host): published to ir2mqtt/bridge/<device_id>/received

{ "type": "received", "protocol": "nec", "receiver_id": "rx1", "address": "0xFF00", "command": "0x1A" }

Send (host → bridge): publish to ir2mqtt/bridge/<device_id>/command

{ "command": "send", "code": { "protocol": "nec", "address": "0xFF00", "command": "0x1A" } }

See MANUAL.md for the full JSON protocol, all config options, and hardware limits.

About

No description, website, or topics provided.

Resources

License

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors