Skip to content

Repository files navigation

PureLink — Home Assistant Integration

A Home Assistant custom integration for PureLink AV matrix switchers (UX series). Control video routing from your Home Assistant dashboard.

Features

  • Route any input to any output via a drop-down selector or media player card
  • media_player entity per output (source picker + on/off = connect/disconnect)
  • button entity per stored preset for one-tap recall
  • Fires a purelink_route_changed event when routing changes (including switches made at the front panel), usable as an automation trigger
  • Optional entity naming from the switcher's own port names (Web UI credentials)
  • Automatic state polling every 30 seconds
  • Instant state update after routing changes
  • Connection error handling with automatic reconnect
  • Supports all UX-series matrix switchers (UX-4400, UX-8800, etc.)

Presets & events

Recall a preset saved on the switcher with its Preset button (native Telnet, no credentials needed). Presets you have named appear with that name and are enabled by default; unnamed slots are created disabled.

Create, update, and delete presets from Home Assistant with the purelink.save_preset and purelink.delete_preset services. These write over the Web UI websocket, so the integration must be configured with the Web UI username and password; without them the services return an error. save_preset snapshots the current routing by default (or takes an explicit routing map and optional name); delete_preset resets a slot to unconfigured. After a change the integration reloads so the preset buttons update.

service: purelink.save_preset
data:
  device_id: <your switcher device>
  slot: 5
  name: Movie
  routing: { 1: 2, 2: 2, 3: 1 }   # optional; omit to snapshot current routing

Every routing change detected on a poll fires a purelink_route_changed event with entry_id, output, input, and previous_input — handy for reacting to front-panel switches Home Assistant would otherwise only see silently:

trigger:
  - platform: event
    event_type: purelink_route_changed
    event_data:
      output: 3

Supported Devices

Any PureLink / Dtrovision matrix switcher with a LAN port that accepts the ASCII TCP command protocol, including:

  • UX-4400 (4×4)
  • UX-8800 (8×8)
  • Other UX series models

Installation

Manual

  1. Download this repository
  2. Copy the custom_components/purelink folder into your HA configuration directory:
    <ha_config>/custom_components/purelink/
    
  3. Restart Home Assistant

HACS (Manual Repository)

  1. In HACS → Integrations → ⋮ → Custom repositories
  2. Add this repository URL with category Integration
  3. Install PureLink
  4. Restart Home Assistant

Configuration

  1. Go to Settings → Devices & Services → Add Integration
  2. Search for PureLink
  3. Fill in the form:
Field Description Default
IP Address / Hostname Device LAN IP or hostname —
TCP Port Device port (telnet; check Network Settings in device web UI if non-standard) 23
Switcher ID Device switcher ID (see device settings) 255
Web UI Username / Password Optional. When provided, entities are named after the input/output names configured on the switcher (e.g. TV1, CABLE) instead of Output 1 / Input 1. empty
  1. Confirm the matrix size. The number of outputs is detected automatically from the switcher's status reply (UX matrices are square, so inputs default to the same count); adjust only if your model differs.

Device-side names are read once per (re)start of the integration — after renaming ports in the switcher's web UI, reload the integration to pick the new names up. Without credentials, entities use generic names that you can rename in Home Assistant.

Entities

Two entities are created per output port — use whichever fits your dashboard:

Entity Behaviour
media_player.purelink_..._output_n Source picker routes an input; off disconnects the output, on restores the last input.
select.purelink_..._output_n Options: Disconnected, Input 1 … Input N. Selecting an input routes the signal; Disconnected severs the connection.

Troubleshooting

"Cannot connect" during setup

  • Verify the device IP and port with nc <ip> <port> (or telnet)
  • Check the device is powered on and LAN connected
  • Confirm the Switcher ID matches the device setting (default 255)
  • Setup probes the device with the *<id>?C! status query (some models, e.g. the UX-8800, reject the H000 heartbeat while answering ?C normally)

Entities show as unavailable

  • HA lost the TCP connection; it will reconnect automatically on the next poll
  • Check network connectivity between HA and the switcher

State doesn't update after manual routing change

  • State polls every 30 seconds; wait up to 30s for HA to reflect external changes

About

Home Assistant custom integration for PureLink AV matrix switchers (UX series)

Topics

Resources

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages