This page is part of archived documentation for openHAB 3.3. Go to the current stable version

# Atlona Binding

This binding integrates Atlona AT-UHD-PRO3 HdBaseT matrix switches Atlona AT-UHD-PRO3 HdBaseT matrix switches (opens new window) into your openHAB installation. The older HD model 6x6 matrix [AT-PRO3HD66M] (https://atlona.com/product/at-pro3hd66m/ (opens new window)) is also supported.

# Supported Things

This binding supports the following thing types:

Thing Thing Type Description
pro3-44m Thing The AT-UHD-PRO3-44M 4x4 HDBaseT matrix.
pro3-66m Thing The AT-UHD-PRO3-66M 6x6 HDBaseT matrix.
pro3-88m Thing The AT-UHD-PRO3-88M 8x8 HDBaseT matrix.
pro3-1616m Thing The AT-UHD-PRO3-1616M 16x16 HDBaseT matrix.
pro3-hd66m Thing The AT-PRO3HD66M 6x6 HDBaseT matrix.

# Discovery

The Atlona AT-UHD-PRO3 switch can be discovered by starting a discovery scan in the UI and then logging into your switch and pressing the "SDDP" button on the "Network" tab. The "SDDP" (simple device discovery protocol) button will initiate the discovery process. If "Telnet Login" is enabled ("Network" tab from the switch configuration UI), you will need to set the username and password in the configuration of the newly discovered thing before a connection can be made.

# Binding configuration

atlona:pro3-88m:home [ ipAddress="192.168.1.30", userName="me", password="12345", polling=600, ping=30, retryPolling=10 ]
  • ipAddress: Hostname or IP address of the matrix switch
  • userName: (optional) the username to login with (only if Telnet Login is enabled)
  • password: (optional) the password to login with (only if Telnet Login is enabled)
  • polling: (optional) the time (in seconds) to poll the state from the actual switch (default: 600)
  • ping: (optional) the time (in seconds) to ping the switch to keep our connection alive (default: 30)
  • retryPolling: (optional) the time (in seconds) to retry a connection if the connection has failed (default: 10)

# username/password

The userName/password configuration options are optional and are only required if you have your switch set with "Telnet Login" enabled (on the "Network" tab from the switch configuration UI). The user must be a valid user listed on the "Users" tab of the switch configuration UI in this case.

# polling

Polling will automatically occur when (re)connecting to the switch to get the initial state of the switch. If you have anything outside of openHAB that can modify the switch state (front panel, IR, telnet session or another automation system), you will likely want to set this setting to a much lower value.

# ping

The Atlona switch will time out any IP connection after a specific time (specified by "IP Timeout" on the "Network" tab from the switch configuration UI - 120 by default). The ping setting MUST be lower than that value. If it is higher than the "IP Timeout" value, the switch will timeout our connection and the thing will go OFFLINE (until a reconnect attempt is made).

# Channels

Thing Channel Type ID Item Type Access Description
pro3-44m primary#power Switch RW Matrix Power Switch
pro3-44m primary#panellock Switch RW Sets the front panel locked or unlocked
pro3-44m primary#irenable Switch RW Enables/Disabled the front panel IR
pro3-44m primary#presetcmd Switch W Sends a preset command ('saveX', 'recallX', 'clearX') - see notes below
pro3-44m primary#matrixcmd Switch W Sends a matrix command ('resetmatrix', 'resetports', 'allportsX') - see notes below
pro3-44m port1#portpower Switch RW Enables/Disables output port #1
pro3-44m port1#portoutput Number RW Sets output port #1 to the specified input port
pro3-44m port2#portpower Switch RW Enables/Disables output port #2
pro3-44m port2#portoutput Number RW Sets output port #2 to the specified input port
pro3-44m port3#portpower Switch RW Enables/Disables output port #3
pro3-44m port3#portoutput Number RW Sets output port #3 to the specified input port
pro3-44m port4#portpower Switch RW Enables/Disables output port #4
pro3-44m port4#portoutput Number RW Sets output port #4 to the specified input port
pro3-44m port5#portpower Switch RW Enables/Disables output port #5
pro3-44m port5#portoutput Number RW Sets output port #5 to the specified input port
pro3-44m mirror5#portmirrorenabled Number RW Sets hdmi port #5 to enable/disable port mirroring
pro3-44m mirror5#portmirror Number RW Sets hdmi port #5 to mirror the specified output port (if enabled)
pro3-44m volume1#volume Number RW Sets the volume of audio port #1 to the specified decibel level (between -79db to +15db)
pro3-44m volume1#volumemute Switch RW Mutes/Unmutes audio port #1
pro3-44m volume2#volume Number RW Sets the volume of audio port #2 to the specified decibel level (between -79db to +15db)
pro3-44m volume2#volumemute Switch RW Mutes/Unmutes audio port #2
pro3-44m volume3#volume Number RW Sets the volume of audio port #3 to the specified decibel level (between -79db to +15db)
pro3-44m volume3#volumemute Switch RW Mutes/Unmutes audio port #3
pro3-66m ALL OF THE pro3-44M channels (except different mirror settings)
pro3-66m port6#portpower Switch RW Enables/Disables output port #6
pro3-66m port6#portoutput Number RW Sets output port #6 to the specified input port
pro3-66m port7#portpower Switch RW Enables/Disables output port #7
pro3-66m port7#portoutput Number RW Sets output port #7 to the specified input port
pro3-66m port8#portpower Switch RW Enables/Disables output port #8
pro3-66m port8#portoutput Number RW Sets output port #8 to the specified input port
pro3-66m mirror6#portmirrorenabled Number RW Sets hdmi port #6 to enable/disable port mirroring
pro3-66m mirror6#portmirror Number RW Sets hdmi port #6 to mirror the specified output port (if enabled)
pro3-66m mirror8#portmirrorenabled Number RW Sets hdmi port #8 to enable/disable port mirroring
pro3-66m mirror8#portmirror Number RW Sets hdmi port #8 to mirror the specified output port (if enabled)
pro3-66m volume4#volume Number RW Sets the volume of audio port #4 to the specified decibel level (between -79db to +15db)
pro3-66m volume4#volumemute Switch RW Mutes/Unmutes audio port #4
pro3-88m ALL OF THE pro3-66M channels (except different mirror settings)
pro3-88m port9#portpower Switch RW Enables/Disables output port #9
pro3-88m port9#portoutput Number RW Sets output port #9 to the specified input port
pro3-88m port10#portpower Switch RW Enables/Disables output port #10
pro3-88m port10#portoutput Number RW Sets output port #10 to the specified input port
pro3-88m mirror8#portmirrorenabled Number RW Sets hdmi port #8 to enable/disable port mirroring
pro3-88m mirror8#portmirror Number RW Sets hdmi port #8 to mirror the specified output port (if enabled)
pro3-88m mirror10#portmirrorenabled Number RW Sets hdmi port #10 to enable/disable port mirroring
pro3-88m mirror10#portmirror Number RW Sets hdmi port #10 to mirror the specified output port (if enabled)
pro3-88m volume5#volume Number RW Sets the volume of audio port #5 to the specified decibel level (between -79db to +15db)
pro3-88m volume5#volumemute Switch RW Mutes/Unmutes audio port #5
pro3-88m volume6#volume Number RW Sets the volume of audio port #6 to the specified decibel level (between -79db to +15db)
pro3-88m volume6#volumemute Switch RW Mutes/Unmutes audio port #6
pro3-1616m ALL OF THE pro3-88M channels (except different mirror settings)
pro3-1616m port11#portpower Switch RW Enables/Disables output port #11
pro3-1616m port11#portoutput Number RW Sets output port #11 to the specified input port
pro3-1616m port12#portpower Switch RW Enables/Disables output port #12
pro3-1616m port12#portoutput Number RW Sets output port #12 to the specified input port
pro3-1616m port13#portpower Switch RW Enables/Disables output port #13
pro3-1616m port13#portoutput Number RW Sets output port #13 to the specified input port
pro3-1616m port14#portpower Switch RW Enables/Disables output port #14
pro3-1616m port14#portoutput Number RW Sets output port #14 to the specified input port
pro3-1616m port15#portpower Switch RW Enables/Disables output port #15
pro3-1616m port15#portoutput Number RW Sets output port #15 to the specified input port
pro3-1616m port16#portpower Switch RW Enables/Disables output port #16
pro3-1616m port16#portoutput Number RW Sets output port #16 to the specified input port
pro3-1616m port17#portpower Switch RW Enables/Disables output port #17
pro3-1616m port17#portoutput Number RW Sets output port #17 to the specified input port
pro3-1616m port18#portpower Switch RW Enables/Disables output port #18
pro3-1616m port18#portoutput Number RW Sets output port #18 to the specified input port
pro3-1616m port19#portpower Switch RW Enables/Disables output port #19
pro3-1616m port19#portoutput Number RW Sets output port #19 to the specified input port
pro3-1616m port20#portpower Switch RW Enables/Disables output port #20
pro3-1616m port20#portoutput Number RW Sets output port #20 to the specified input port
pro3-1616m mirror17#portmirrorenabled Number RW Sets hdmi port #17 to enable/disable port mirroring
pro3-1616m mirror17#portmirror Number RW Sets hdmi port #17 to mirror the specified output port (if enabled)
pro3-1616m mirror18#portmirrorenabled Number RW Sets hdmi port #18 to enable/disable port mirroring
pro3-1616m mirror18#portmirror Number RW Sets hdmi port #18 to mirror the specified output port (if enabled)
pro3-1616m mirror19#portmirrorenabled Number RW Sets hdmi port #19 to enable/disable port mirroring
pro3-1616m mirror19#portmirror Number RW Sets hdmi port #19 to mirror the specified output port (if enabled)
pro3-1616m mirror20#portmirrorenabled Number RW Sets hdmi port #20 to enable/disable port mirroring
pro3-1616m mirror20#portmirror Number RW Sets hdmi port #20 to mirror the specified output port (if enabled)
pro3-1616m volume7#volume Number RW Sets the volume of audio port #7 to the specified decibel level (between -79db to +15db)
pro3-1616m volume7#volumemute Switch RW Mutes/Unmutes audio port #7
pro3-1616m volume8#volume Number RW Sets the volume of audio port #8 to the specified decibel level (between -79db to +15db)
pro3-1616m volume8#volumemute Switch RW Mutes/Unmutes audio port #8
pro3-1616m volume9#volume Number RW Sets the volume of audio port #9 to the specified decibel level (between -79db to +15db)
pro3-1616m volume9#volumemute Switch RW Mutes/Unmutes audio port #9
pro3-1616m volume10#volume Number RW Sets the volume of audio port #10 to the specified decibel level (between -79db to +15db)
pro3-1616m volume10#volumemute Switch RW Mutes/Unmutes audio port #10
pro3-1616m volume11#volume Number RW Sets the volume of audio port #11 to the specified decibel level (between -79db to +15db)
pro3-1616m volume11#volumemute Switch RW Mutes/Unmutes audio port #11
pro3-1616m volume12#volume Number RW Sets the volume of audio port #12 to the specified decibel level (between -79db to +15db)
pro3-1616m volume12#volumemute Switch RW Mutes/Unmutes audio port #12
pro3-hd66m primary#power Switch RW Matrix Power Switch
pro3-hd66m primary#panellock Switch RW Sets the front panel locked or unlocked
pro3-hd66m primary#irenable Switch RW Enables/Disabled the front panel IR
pro3-hd66m primary#presetcmd Switch W Sends a preset command ('saveX', 'recallX', 'clearX') - see notes below
pro3-hd66m primary#matrixcmd Switch W Sends a matrix command ('resetmatrix', 'resetports', 'allportsX') - see notes below
pro3-hd66m port1#portoutput Number RW Sets output port #1 to the specified input port
pro3-hd66m port2#portoutput Number RW Sets output port #2 to the specified input port
pro3-hd66m port3#portoutput Number RW Sets output port #3 to the specified input port
pro3-hd66m port4#portoutput Number RW Sets output port #4 to the specified input port
pro3-hd66m port5#portoutput Number RW Sets output port #5 to the specified input port
pro3-hd66m port5#portoutput Number RW Sets output port #6 to the specified input port

# presetcmd

The presetcmd channel will take the following commands:

Command Description
saveX Saves the current input/output to preset X
recallX Sets the input/output to preset X
clearX Clears the preset X

Note: if X doesn't exist - nothing will occur. The # of presets allowed depends on the firmware you are using (5 presets up to rev 13, 10 for rev 14 and above).

# matrixcmd

The matrixcmd channel will take the following commands:

Command Description
resetmatrix Resets the matrix back to its default values (USE WITH CARE!). Note: some firmware upgrades require a resetmatrix after installing.
resetports Resets the ports back to their default values (outputX=inputX)
allportsX Sets all the output ports to the input port X

Note: if X doesn't exist - nothing will occur. The # of presets allowed depends on the firmware you are using (5 presets up to rev 13, 10 for rev 14 and above).

# Changes/Warnings

As of firmware 1.6.03 (rev 13), there are three issues on Atlona firmware (I have notified them on these issues):

  • clearX command does not work. The TCP/IP command "ClearX" as specified in Atlona's protocol will ALWAYS return a "Command Failed". Please avoid this channel until atlona releases a new firmware.

  • There is no way to query what the current status is of: panellock, and irenable. This add-on simply assumes that panellock is off and irenable is on at startup.

  • If you make a change in the switches UI that requires a reboot (mainly changing any of the settings on the "Network" tab in the switch configuration UI), this add-on's connection will be inconsistently closed at different times. The thing will go OFFLINE and then back ONLINE when the reconnect attempt is made - and then it starts all over again. Please make sure you reboot as soon as possible when the switch UI notifies you.

  • a bug in the firmware will sometimes cause memory presets to disappear after a reboot

As of firmware 1.6.8 (rev 14),

  • The "clearX" command has been fixed and works now.
  • The number of presets have increased to 10
  • If telnet mode is enabled, you must use the admin username/password to issue a matrixreset

# Example

# Things

Here is an example with minimal configuration parameters (using default values with no telnet login):

atlona:pro3-88m:home [ ipAddress="192.168.1.30" ]

Here is another example with minimal configuration parameters (using default values with telnet login):

atlona:pro3-88m:home [ ipAddress="192.168.1.30", userName="me", password="12345" ]

Here is a full configuration example:

atlona:pro3-88m:home [ ipAddress="192.168.1.30", userName="me", password="12345", polling=600, ping=30, retryPolling=10 ]

# Items

Here is an example of items for the AT-UHD-PRO33-88M:

Switch Atlona_Power "Power" { channel = "atlona:pro3-88m:home:primary#power" }
Switch Atlona_PanelLock "Panel Lock" { channel = "atlona:pro3-88m:home:primary#panellock" }
Switch Atlona_Presets "Preset Command" { channel = "atlona:pro3-88m:home:primary#presetcmd" }
Switch Atlona_IRLock "IR Lock" { channel = "atlona:pro3-88m:home:primary#irenable" }
Switch Atlona_PortPower1 "Port Power 1" { channel = "atlona:pro3-88m:home:port1#power" }
Switch Atlona_PortPower2 "Port Power 2" { channel = "atlona:pro3-88m:home:port2#power" }
Switch Atlona_PortPower3 "Port Power 3" { channel = "atlona:pro3-88m:home:port3#power" }
Switch Atlona_PortPower4 "Port Power 4" { channel = "atlona:pro3-88m:home:port4#power" }
Switch Atlona_PortPower5 "Port Power 5" { channel = "atlona:pro3-88m:home:port5#power" }
Switch Atlona_PortPower6 "Port Power 6" { channel = "atlona:pro3-88m:home:port6#power" }
Switch Atlona_PortPower7 "Port Power 7" { channel = "atlona:pro3-88m:home:port7#power" }
Switch Atlona_PortPower8 "Port Power 8" { channel = "atlona:pro3-88m:home:port8#power" }
Switch Atlona_PortPower9 "Port Power 9" { channel = "atlona:pro3-88m:home:port9#power" }
Switch Atlona_PortPower10 "Port Power 10" { channel = "atlona:pro3-88m:home:port10#power" }
Number Atlona_PortOutput1 "Living Room [MAP(atlonainputports.map):%s]" { channel = "atlona:pro3-88m:home:port1#portoutput" }
Number Atlona_PortOutput2 "Master Bed [MAP(atlonainputports.map):%s]" { channel = "atlona:pro3-88m:home:port2#portoutput" }
Number Atlona_PortOutput3 "Kitchen [MAP(atlonainputports.map):%s]" { channel = "atlona:pro3-88m:home:port3#portoutput" }
Number Atlona_PortOutput4 "Output 4 [MAP(atlonainputports.map):%s]" { channel = "atlona:pro3-88m:home:port4#portoutput" }
Number Atlona_PortOutput5 "Output 5 [MAP(atlonainputports.map):%s]" { channel = "atlona:pro3-88m:home:port5#portoutput" }
Number Atlona_PortOutput6 "Output 6 [MAP(atlonainputports.map):%s]" { channel = "atlona:pro3-88m:home:port6#portoutput" }
Number Atlona_PortOutput7 "Output 7 [MAP(atlonainputports.map):%s]" { channel = "atlona:pro3-88m:home:port7#portoutput" }
Number Atlona_PortOutput8 "Output 8 [MAP(atlonainputports.map):%s]" { channel = "atlona:pro3-88m:home:port8#portoutput" }
Number Atlona_PortOutput9 "Output 9 [MAP(atlonainputports.map):%s]" { channel = "atlona:pro3-88m:home:port9#portoutput" }
Number Atlona_PortOutput10 "Output 10 [MAP(atlonainputports.map):%s]" { channel = "atlona:pro3-88m:home:port10#portoutput" }
Number Atlona_PortMirror8 "Hdmi Mirror 8 [MAP(atlonaoutputports.map):%s]" { channel = "atlona:pro3-88m:home:mirror8#portmirror" }
Number Atlona_PortMirror10 "Hdmi Mirror 10 [MAP(atlonaoutputports.map):%s]" { channel = "atlona:pro3-88m:home:mirror10#portmirror" }
Number Atlona_Volume1 "Volume 1 [%s db]" { channel = "atlona:pro3-88m:home:volume1#volume" }
Number Atlona_Volume2 "Volume 2 [%s db]" { channel = "atlona:pro3-88m:home:volume2#volume" }
Number Atlona_Volume3 "Volume 3 [%s db]" { channel = "atlona:pro3-88m:home:volume3#volume" }
Number Atlona_Volume4 "Volume 4 [%s db]" { channel = "atlona:pro3-88m:home:volume4#volume" }
Number Atlona_Volume5 "Volume 5 [%s db]" { channel = "atlona:pro3-88m:home:volume5#volume" }
Number Atlona_Volume6 "Volume 6 [%s db]" { channel = "atlona:pro3-88m:home:volume6#volume" }
Switch Atlona_VolumeMute1 "Mute 1" { channel = "atlona:pro3-88m:home:volume1#volumemute" }
Switch Atlona_VolumeMute2 "Mute 2" { channel = "atlona:pro3-88m:home:volume1#volumemute" }
Switch Atlona_VolumeMute3 "Mute 3" { channel = "atlona:pro3-88m:home:volume1#volumemute" }
Switch Atlona_VolumeMute4 "Mute 4" { channel = "atlona:pro3-88m:home:volume1#volumemute" }
Switch Atlona_VolumeMute5 "Mute 5" { channel = "atlona:pro3-88m:home:volume1#volumemute" }
Switch Atlona_VolumeMute6 "Mute 6" { channel = "atlona:pro3-88m:home:volume1#volumemute" }

# SiteMap

sitemap demo label="Main Menu" {
    Frame label="Atlona" {
        Text label="Device" {
            Switch item=Atlona_Power
            Switch item=Atlona_PanelLock
            Switch item=Atlona_IRLock
            Text item=Atlona_Presets
        }
        Text label="Ports" {
            Switch item=Atlona_PortPower1
            Switch item=Atlona_PortPower2
            Switch item=Atlona_PortPower3
            Switch item=Atlona_PortPower4
            Switch item=Atlona_PortPower5
            Switch item=Atlona_PortPower6
            Switch item=Atlona_PortPower7
            Switch item=Atlona_PortPower8
            Switch item=Atlona_PortPower9
            Switch item=Atlona_PortPower10
            Selection item=Atlona_PortOutput1 mappings=[1="CableBox",2="BluRay Player",3="Roku",4="Apple TV",5="Input 5",6="Input 6",7="Input 7",8="Input 8"]
            Selection item=Atlona_PortOutput2 mappings=[1="CableBox",2="BluRay Player",3="Roku",4="Apple TV",5="Input 5",6="Input 6",7="Input 7",8="Input 8"]
            Selection item=Atlona_PortOutput3 mappings=[1="CableBox",2="BluRay Player",3="Roku",4="Apple TV",5="Input 5",6="Input 6",7="Input 7",8="Input 8"]
            Selection item=Atlona_PortOutput4 mappings=[1="CableBox",2="BluRay Player",3="Roku",4="Apple TV",5="Input 5",6="Input 6",7="Input 7",8="Input 8"]
            Selection item=Atlona_PortOutput5 mappings=[1="CableBox",2="BluRay Player",3="Roku",4="Apple TV",5="Input 5",6="Input 6",7="Input 7",8="Input 8"]
            Selection item=Atlona_PortOutput6 mappings=[1="CableBox",2="BluRay Player",3="Roku",4="Apple TV",5="Input 5",6="Input 6",7="Input 7",8="Input 8"]
            Selection item=Atlona_PortOutput7 mappings=[1="CableBox",2="BluRay Player",3="Roku",4="Apple TV",5="Input 5",6="Input 6",7="Input 7",8="Input 8"]
            Selection item=Atlona_PortOutput8 mappings=[1="CableBox",2="BluRay Player",3="Roku",4="Apple TV",5="Input 5",6="Input 6",7="Input 7",8="Input 8"] visibility=[Atlona_PortMirror8==0]
            Selection item=Atlona_PortOutput9 mappings=[1="CableBox",2="BluRay Player",3="Roku",4="Apple TV",5="Input 5",6="Input 6",7="Input 7",8="Input 8"]
            Selection item=Atlona_PortOutput10 mappings=[1="CableBox",2="BluRay Player",3="Roku",4="Apple TV",5="Input 5",6="Input 6",7="Input 7",8="Input 8"] visibility=[Atlona_PortMirror10==0]
            Selection item=Atlona_PortMirror8 mappings=[0="None",1="Living Room",2="Master Bed",3="Kitchen",4="Output 4",5="Output 5",6="Output 6",7="Output 7",9="Output 9"]
            Selection item=Atlona_PortMirror10 mappings=[0="None",1="Living Room",2="Master Bed",3="Kitchen",4="Output 4",5="Output 5",6="Output 6",7="Output 7",9="Output 9"]
        }
        Text label="Audio" {
            Setpoint item=Atlona_Volume1 minValue=-79 maxValue=15
            Setpoint item=Atlona_Volume2 minValue=-79 maxValue=15
            Setpoint item=Atlona_Volume3 minValue=-79 maxValue=15
            Setpoint item=Atlona_Volume4 minValue=-79 maxValue=15
            Setpoint item=Atlona_Volume5 minValue=-79 maxValue=15
            Setpoint item=Atlona_Volume6 minValue=-79 maxValue=15
            Switch item=Atlona_VolumeMute1
            Switch item=Atlona_VolumeMute2
            Switch item=Atlona_VolumeMute3
            Switch item=Atlona_VolumeMute4
            Switch item=Atlona_VolumeMute5
            Switch item=Atlona_VolumeMute6
        }
    }
}

# Transformation Maps

The following is some example transformation maps you can create. Be sure they are in sync with the mappings above.

# atlonainputports.map

1=CableBox
2=BluRay Player
3=Roku
4=Apple TV
5=Input 5
6=Input 6
7=Input 7
8=Input 8
-=-
NULL=-

# atlonaoutputports.map

1=Living Room
2=Master Bed
3=Kitchen
4=Output 4
5=Output 5
6=Output 6
7=Output 7
8=Output 8
9=Output 9
10=Output 10
-=-
NULL=-