Table of Contents
No Hassle AV 4x4 HDMI Matrix Switches
This plugin supports 4 different No Hassle AV 4x4 HDMI switches. It does not support the serial connection, only the network connection so the device must have been given a static IP address and be on the network to work. The connection is one way so there is no way to keep the Units in XTension showing the current state if you change it via some other means.
These devices all connect via a TCP connection which the plugin will attempt to open several times before giving up. It will keep the connection open for 2 seconds so that changing more than one output at a time is faster without the overhead of re-opening a connection each time while still closing the connection rapidly so that other remotes or devices can connect if necessary.
This plugin should be considered in beta. I do not actually own any of these devices and so have not personally tested them at all. I have implemented the documented protocols sight unseen. Please get in touch if it does not work for your device, or if you have another device of theirs that is not on the list of supported devices that you’d like to use. Their 8×8 matrix switchers are supported in a separate plugin.
XTension setup requires the IP address of the device, and the port that the device is listening on. The different devices all use different ports so check your documentation or configuration app to find out what the proper port is for your device.
There are 2 different protocols used by the 4 different devices so you must tell the plugin which type of device you have. The Original 4k 4×4 Matrix, the HDBaseT and the HDR version all use the same protocol. If you’re using the ‘mini’ version please select that from the popup.
XTension will create 4 units, one for each output, upon first startup of a plugin instance. They will be set to have a popup menu as their default control from which you can select any of the 4 inputs. You can also use the standard Unit control verbs to set the value from 1 through 4. Setting a value out of this range will result in an error and no outputs changed.
Once the Units are created you can edit them to give them more descriptive names than just Output 1, Output 2, etc.
If you wish you can also edit the input labels that are displayed instead of just Input 1, Input 2, etc. On the Display tab of the Edit Unit dialog for each output you’ll find the Enumerated Values field. NOTE that the initial comma in the field is required since there is no value of 0. You will have to edit this field in each of the Output units if you wish them all to display the correct labels. You can edit this list to have the real names of your inputs for example:
,Sat Receiver,DVD Player,PS8,XTension Server
That would result in those values being displayed as the value in all displays and being the entries in the popup menu. You can also use them as the names when setting the value. For example instead of always having to script the control as if it was a regular dimmable unit like:
set value of “output 3” to 2
you can also use the enumerated value for the value like:
set value of “output 3” to “DVD Player”
To get the value back out of it, if you use the value of verb it will return the numerical value and you can use the enumerated value of verb to get the string above. For example:
if enumerated value of “output 3” is equal to “DVD Player” then write log “we are already set to the DVD player" end if
Additional Scripting Commands:
The power on and off commands are supported by all except the “mini” version of the supported devices.
tell xInterface “name you gave to the interface” to powerOn() tell xInterface “name you gave to the interface” to powerOff()
The mini version of the device does not support the reboot command, the others do.
There are 2 ways to issue a reboot command, via the Initialize Controller verb or via the reboot script command:
Initialize Controller “name you gave to the interface” tell xInterface “name you gave to the interface” to reboot()
Set All Outputs
Only the mini device supports the set all outputs command. You must pass an input number from 1 through 4. You cannot use the enumerated names of the inputs in this case.
tell xInterface “name you have to the interface” to setAllOutputs( 3)
The No Hassle AV 4×4 matrix Switch plugin was added in XTension version 9.5.1 in January of 2023