Python library to control AVGear HDMI Matrix switches (tested with TMX44PRO AVK, may work with others). Both synchronous and asynchronous APIs are provided. Contributions for other models are welcome!
This is used for the AVGear Matrix integration for homeassistant.
Inspired by pyblackbird.
- TCP/IP control: Communicate with the matrix over the network
- Sync & Async APIs: Use either blocking or asyncio-based methods
- Device info: Query device name, type, version, and status
- Routing control: Route HDMI inputs to outputs programmatically
- Video status parsing: Parse and display current input/output routing
- Context manager support: Use with
withorasync withfor auto-connect/disconnect - Logging: Built-in debug/info/error logging
Clone the repo and install dependencies (if any):
git clone https://github.com/marklynch/hdmimatrix.git
cd hdmimatrix
# Optionally: pip install .from hdmimatrix import HDMIMatrix
matrix = HDMIMatrix("192.168.0.178", 4001)
with matrix:
print(matrix.get_device_name())
print(matrix.get_device_status())
matrix.route_input_to_output(1, 1)import asyncio
from hdmimatrix import AsyncHDMIMatrix
async def main():
matrix = AsyncHDMIMatrix("192.168.0.178", 4001)
async with matrix:
print(await matrix.get_device_name())
print(await matrix.get_device_status())
await matrix.route_input_to_output(1, 1)
asyncio.run(main())with matrix:
routing = matrix.get_video_status_parsed()
print(routing) # {output_number: input_number}HDMIMatrix(sync) andAsyncHDMIMatrix(async) classes- Connection:
connect()disconnect()- Context manager support (
with/async with)
- Info:
get_device_name()get_device_status()get_device_type()get_device_version()get_video_status()get_video_status_parsed()get_hdbt_power_status()get_input_status()get_output_status()get_hdcp_status()get_downscaling_status()
- Control:
power_on()power_off()route_input_to_output(input, output)output_on(output)output_off(output)
Pull requests for new features, bug fixes, and support for other AVGear models are welcome!
MIT