00:08
Let’s take a look now at Q-SYS Ethernet control.
00:11
As we discussed earlier, we define incoming control as control coming from a device to control Q-SYS
00:19
and then the outgoing control is when the Q-SYS system is controlling an external device.
00:26
With outgoing control, if we only need a unidirectional send only control,
00:31
we can use the Command Buttons component as a simple method to send TCP, UDP,
00:37
or serial commands to a device to provide the control that we want.
00:42
Q-SYS also has monitoring components which provide a means of supervising a device simply by sending it a ping
00:49
at a particular time interval, or an SNMP query.
00:54
Q-SYS also supports bi-directional control with plugins, and if parsing response strings is required for your
01:01
control system, then block controller, scriptable controls or text controller components are available.
01:08
Please note that for firmware Q-SYS Designer Software version 7 or greater,
01:12
you will need a feature license for scripting components and the block controller.
01:16
Let’s take a look at an example of using the Ping component in a design to monitor
01:21
the network connection status of a device.
01:24
You’’ll find the Ping Component in the right side pane under Monitoring Components folder.
01:30
If we enter Emulation mode and then enter the Host Name or IP Address of the device we want to monitor,
01:37
Q-SYS will continuously send a sequence of pings to this address on the network.
01:42
As long as we receive a reply on this address, we know that this device is on the network;
01:48
now, no guarantee that the device is fully functional, but at least we know that it’s alive.
01:54
Next let’s look at the SNMP Query component.
01:57
Go ahead and exit Emulation Mode and then add the SNMP Query component to the schematic.
02:04
Then go back to Emulation Mode where we can fill out the hostname or IP address of the device.
02:12
Next, let’s add the Community parameter of the SNMP property we want to monitor
02:18
which typically is going to be a public or private one.
02:22
We will also need to fill in the OID or Object Identifier of the SNMP property.
02:29
Beside the OID parameter field, the component displays the last value received from the SNMP query.
02:37
To the right of that we have a Comparison Operator drop down list to set how we compare
02:43
the received SNMP value to the value we enter here.
02:47
So if we set the Comparison Operator to Present, any response value received will set our Status to Okay.
02:56
We can also choose “is equal to”, greater than, or less than and so on to better compare
03:03
the values received to set our Status properly as okay or as an error.
03:08
Now let’s move on to incoming control.
03:11
Here we have a bi-directional TCP communication which has two major methodologies…
03:17
which include Q-SYS external control protocol or ECP and the Q-SYS remote control protocol or QRC.
03:25
Both methods allow for incoming control of Q-SYS, but these two methods are very different.
03:32
ECP provides control access via Named Controls that you have setup in Q-SYS Designer software.
03:38
While QRC will be very familiar if you have experience with JSON.
03:43
With ECP, we establish a TCP connection to the core on port 1702 with a keep-alive function
03:50
that is necessary every minute to maintain that connection.
03:54
This communication will need a line feed or 0A hex as the end of line character.
04:00
In addition to the feedback received from the control commands sent to the core,
04:04
to setup any unsolicited feedback,
04:06
we will need to set up what we call a "change group" to make that work.
04:11
Moving over to QRC, this control method has the benefit of providing control access
04:17
to named controls as well as named components.
04:21
QRC control is enabled in the Network Services in Core Manger and utilizes port 1710 for TCP communication.
04:30
A keep-alive is required here as well, with all the commands ending in a Null or 00 Hex value
04:36
as the end of line character.
04:38
QRC can also support Change Groups to receive non-solicited component status updates.
04:44
Now, let’s look at some integration basics on a 3rd party control system that utilizes our ECP protocol.
04:51
Let’s say that you want a Crestron system to have control over a Q-SYS gain control.
04:57
Start by adding a gain control in the design schematic, give it a name like “MyGain”,
05:03
and then drag the mute and the gain controls into the Named Control pane.
05:08
This allows control to be referenced by a third party control system like Crestron.
05:13
On the Crestron side, first we will need to establish the TCP connection.
05:17
You’ll need to have ready any login Information and the IP address of the Core handy.
05:22
For proper feedback operation, we do recommend waiting at least 10 seconds after establishing
05:28
a connection to the Core before sending initialization commands such as polling for current status
05:35
and setting up Change Groups.
05:37
Once we have properly established a control connection,
05:40
we can begin controlling our Gain component by including
05:43
the Named Component parameters that we previously setup in Q-SYS Designer.
05:46
Our control communications will need to adhere to some timing rules for communication.
05:51
Remember… you should wait ten seconds after establishing a connection
05:55
before initializing communication for polling status and change groups.
05:59
You can also use redundant core controls if you need to.
06:03
Typically, 3rd party control systems will need specific programming to establish a control connection to the
06:09
Core that will also distribute that connection to individual modules
06:13
for controlling the different aspect of the design.
06:15
Also, for all controls that need auto-polling for continuous feedback,
06:20
programming will need to be included to add all of these controls to a Change Group.
06:25
On the Q-SYS side, make sure to enable Auto-Poll to allow this functionality.
06:30
Alright, we're gonna pause right there.
06:32
When we come back we're gonna take a look at third-party control plugins. See ya next time.