Control your Orei HDMI Matrix switch directly from Home Assistant via Telnet.
Supports power control, input/output switching, live state updates, and manual refresh. Compatible with multiple Orei models such as UHD48-EX230-K, etc.
- 🧠 Automatic model detection (
r type!) - 🔌 Global power control (on/off)
- 🎛 Per-output source selection as media players
- ⚡ Comprehensive services for power, routing, and CEC control
- 🔄 Manual refresh service (
orei_matrix.refresh) - 🧩 Dynamic device grouping (all entities under one device)
- 🪄 Config Flow setup (no YAML required)
- 🔍 Auto-discovery of inputs and outputs
- 🧰 Support for 4x4, 8x8, and other Orei matrix models
When configured, you’ll see a single device in Home Assistant:
Orei UHD48-EX230-K
- 🔌
switch.orei_matrix_power- 🎚
media_player.living_room- 🎚
media_player.bedroom- 🎚
media_player.office- 🎚
media_player.patio
- Go to HACS → Integrations → Custom Repositories
- Add this repository URL https://github.com/taysuus/hass-orei-matrix as type Integration
- Search for Orei HDMI Matrix and install it.
- Restart Home Assistant.
- Copy the
custom_components/orei_matrixfolder into: /custom_components/orei_matrix/ - Restart Home Assistant.
Set up via the Home Assistant UI:
- Go to Settings → Devices & Services → Add Integration
- Search for Orei HDMI Matrix
- Enter:
- Host (IP of your Orei Matrix)
- Port (default: 23)
- Source Names (e.g.
"Apple TV","Blu-ray","PC","Game Console") - Zone Names (e.g.
"Living Room","Bedroom","Patio","Office")
That’s it — entities will be created automatically.
| Entity Type | Count | Description |
|---|---|---|
switch.orei_matrix_power |
1 | Controls main matrix power |
switch.<input_name> |
8 | CEC control for each input device |
media_player.<output> |
8 | Represents each output (allows source selection) |
Total: 17 entities for an 8x8 matrix (vs 33 with old button-based approach)
Each media player exposes:
- Current source
- Source selection list (using configured names)
- Availability (grayed out when matrix power is off)
Each input switch shows:
- Routed outputs (which outputs display this input)
- CEC control (power on/off source devices)
orei_matrix.power_on_output- Power on a TV/display and set as active sourceorei_matrix.power_off_output- Power off a TV/displayorei_matrix.set_output_active- Tell TV to switch to matrix inputorei_matrix.power_on_input- Power on a source device (Apple TV, Xbox, etc)orei_matrix.power_off_input- Power off a source deviceorei_matrix.power_on_all_outputs- Power on all displaysorei_matrix.power_off_all_outputs- Power off all displays
orei_matrix.route_input_to_output- Route specific input to specific outputorei_matrix.route_input_to_outputs- Route input to multiple outputs
orei_matrix.refresh- Manually refresh matrix state
automation:
- alias: "Movie Night"
trigger:
- platform: time
at: "20:00:00"
action:
# Power on living room TV
- service: orei_matrix.power_on_output
data:
output: 1
# Wait for TV to boot
- delay:
seconds: 5
# Switch to Apple TV
- service: media_player.select_source
target:
entity_id: media_player.av_matrix_living_room
data:
source: "Apple TV"See SERVICE_EXAMPLES.md for more automation examples.