When creating a macro using the JNIOR Support Tool, you may want data being sent in a command to contain macros. This can be done, but its important to know how. When adding quotes, you can’t type them directly in because it will disrupt the csv format that macro files are saved as. To get around this, you type the hex value for quotes in the data field to implement them, which is \x22. So as an example if you had a macro named Play and you wanted to surround in quotes when adding it in the data field of a macro action, you would type \x22Play\x22 instead of “Play” in the data field of a macro action.

Macro tab of the JNIOR Support Tool
Name Version Release Date Size MD5
Cinema.jar - Update Project v4.5 Dec 17 2019 369 KB 27a05d7074cb29abb7049a1c8c9d9950

4.0, 4 oct 2019

  • [+] added code to detect barco series 4 device and launch the barco pulse rpc application.

4.1, 03 dec 2019

  • [!] trim unwanted spaces.

4.2, 04 mar 2020

  • [!] fixed cp+8=1000 signed issue.

4.3, 29 apr 2020

  • [!] changing the logging to use .bak files.  the addition of the logarchiver application will compress the .bak files into zip archives.
  • [!] forcing cinema_ prefix on all log files”),

 4.4, 17 nov 2020

  • [!] Modified the macro web handler to get the list of loaded macros”),

4.5, 10 dec 2020

  • [!] Fixed issue working with outputs > 20.
  • [+] rolled the barco pulse api into cinema.jar.

Go to the Cinema.jar Application page for more information. The Cinema Knowledge-base has helpful information on how to use the features in Cinema.jar.

Cinema.jar 3.6 August 14, 2019

Name Version Release Date Size MD5
Cinema.jar - Update Project v3.6 Aug 14 2019 335 KB d96d4ae9b9adc4f0b8cdaf9bd87518f3

+ Adding web handlers for getDevice without a device for internal io getAll.

Cinema.jar 3.5 June 2, 2019

Name Version Release Date Size MD5
Cinema.jar - Update Project v3.5 Jun 02 2019 327 KB 57a834f2c5ac177b7b19b6dec52350ce

+ Added HTTP POST method to Macro Actions.

+ Added the ability the use HTTPS for GETs and POSTs

Cinema.jar 3.4.1 May 29, 2019

  Cinema.jar - Update Project v3.4.1 [ May 28 2019, 320 KB, MD5: 74f51ea7ccb40962eb2118bf16457c50 ]

  • Released May 28 2019

! Fixed a bug where the watchdog was no longer working. In the Cinema application crashed it would not be restarted.

Cinema.jar 3.4.0 May 16, 2019

  Cinema.jar - Update Project v3.4 [ May 16 2019, 320 KB, MD5: 63b627ede9c8a79710ddb3d7fd3ca852 ]

  • Released May 16 2019

+ Allow you to query the temperature sensor via a HTTP Request.  A JSON representation of the device will be returned.

As of now the only available devices are Type28 and Type7E...

Type28 is the temperature probe and Type7E is the environmental sensor.

To enable this you will need to set the AppData/Cinema/WebServer/Port registry key. The JNIOR will need to be rebooted after this key has been changed. In this example I chose 8081. Port 80 or 443 is normally the default web server port. This web server port is an additional web server that cinema is hosting to handle these types of requests.

Name Version Release Date Size MD5
Tasker v4.0 Dec 18 2020 1 MB e0b99c9f4ffdb2294dab5596c9d9613f


  • [+] removed the requirement for the schedule start day.
  • [+] fixed the schedule reloading so that the new schedule takes effect and does not require a reboot.


  • [+] Added a user.alert message.


  • [+] Added a tasks.get handler.
  • [+] Added a tasks.list message.

3.7, 02 oct 2020

  • [+] Added tracking the parent workspace name so that all of the tasks can be removed from the collection that belong to a workspace that is updated or removed.

3.8, 07 oct 2020

  • [!] fix error for only handling 8 output triggers.
  • [!] fix error where a temp probe couldnt be assigned to a variable.
  • [+] added http post functionality.

3.9, 18 nov 2020

  • [!] fix error where parameters used to have to be named starting with $.

4.0, 10 dec 2020

  • [+] variables that start with $$ are global variables.  These are global WITHIN the workspace.
  • [+] added Control Panel Switch implementation
  • [+] added a tasks.get WebSocket handler
  • [+] added a task.list WebSocket handler
  • [+] added http post functionality
  • [!] scheduling changes take effect immediately when a workspace is reloaded
  • [+] validation on task names, device names, logger names, signal names, trigger names, and schedule names to prevent spaces and bad characters.  Names can only be alphanumeric and can include underscores.

Go to the Tasker Application page for more information. The Cinema Knowledge-base has helpful information on how to use the features in Cinema.jar.

Tasker 3.3 July 29, 2020

Name Version Release Date Size MD5
Tasker v3.3 Jul 30 2020 1 MB 5783b3bda071222b48775e5ffb9e4b3d
  • [+] adding duplicate instance check
  • [+] variables that start with :: shall be global
  • [+] add TCP Recv
  • [+] add TCP Close
  • [+] new execute script action
  • [+] uses new scripting engine
  • [!] fixed issue where dst timezone was not being logged
  • [+] adding action to prepend to file
  • [+] adding retry logic to external identifier objects. included creating external identifier parent class
  • [+] adding action to copy file
  • [+] adding action to move file
  • [+] add ascii tcp and serial servers for tasker control
  • [~] now preventing spaces in workspace names. current workspace files with spaces will be renamed with an UNDERSCORE

Go to the Tasker Application page for more information. The Tasker Knowledge-base has helpful information on how to use the features in Tasker.

Tasker 3.2 June 18, 2020

Name Version Release Date Size MD5
Tasker v3.2 Jun 18 2020 958 KB 953712536000b330ad267047b7ee274d
  • + added 4-20ma modules
  • + added 10v modules
  • + added email send attachment option

Go to the Tasker Application page for more information. The Tasker Knowledge-base has helpful information on how to use the features in Tasker.

Tasker 3.1 May 1, 2020

Name Version Release Date Size MD5
Tasker v3.1 May 05 2020 942 KB 47e03374e8a8791ec0a922f38e62f174
  • Added If / Else Block Task Action
  • Added While Loop Task Action
  • Added SNMP Trap Task Action - Tutorial
  • Help pages are in progress
  • Upload and download workspaces
  • Delete a workspace (Workspace is backed up)

Go to the Tasker Application page for more information. The Tasker Knowledge-base has helpful information on how to use the features in Tasker.

Tasker 3.0 RELEASED! April 20, 2020

It has been a while since Tasker was released. Tasker was a quick attempt at making a replacement for the Task Manager application that has been around for more than a decade, starting on the Series 3.

Ample time has now been taken to create a fully capable application that will be every bit as functional as Task Manager but offer the benefits of a rewrite, using configuration files and the latest web technology.

Some of the changes and new features are as follows:

  • Faster– The tasks are executed much faster and the triggers and schedule are monitored in real-time instead of once every 5 – 10 seconds.
  • Workspaces - Separate configuration logic into multiple workspaces. Then multiple workspaces can be loaded on the JNIOR at the same time.
  • Tasks are now separate from triggers. In Task Manager a Task was created and a Trigger was configured to get the Task to execute. In Tasker 3.0 Tasks are a separate entity that can be executed several different way including manual execution from the configuration page and being requested via an ASCII TCP connection.
  • Tasks can now send data via an Ethernet connection. To do this, a Device must be created so that the action can specify which device to send the data to. Multiple devices can be configured.
  • New Actions – We implemented actions that were previously available in Task Manager but are introducing many new actions like external module control, TCP communication and control structures.
  • Drag n Drop – Drag and Drop functionality makes it easier to design your Task logic.
  • Signals are now created to assign a specific property of a I/O point or sensor a name. The name can then be used in Tasks, Triggers or Loggers.
  • Loggers can be created to define the file name and schema or what data should be logged to that file. Each line in a Logger will be prepended with a timestamp followed by a comma. Loggers also allow you to define the number of files that should be kept with the given naming pattern. Name patterns can include date patterns. This will help you create a file per day for example.
  • Schedule – The schedule has additional options.
  • JSON Configuration files are used now instead of registry keys. Registry keys were limiting in size. The Series 3 could only store 255 characters in a registry key. It is much easier to upload configuration files to other JNIORs to replicate setups.
  • User Interface – The User Interface is now a native HTML application that uses the latest web technology. The latest web technology uses native HTML controls and Web-sockets to communicate with the JNIOR from your browser. This will allow accessibility over remote connections as long as port 80 is available. This is now consistent with the communication method used by the DCP. Task Manager had always used Java Applets. The Java Applets have not been able to launch in browsers for several years as they became frowned upon as security vulnerabilities.

This was just a short list of changes and new features. The documentation for Tasker should explain these topics as well as many others. If there is anything you don't understand please reach out to us for help. Additionally, if you have any suggestions or need the JNIOR to do something specific for you, please let us know.

For more information go to the Tasker Page

The Control Panel is a very useful add-on to the JNIOR.  It gives you manual switches, visual indicators and an audio alarm.  Each of these features can be configured and used in Tasker.  Let’s check out how!

Before addressing how Tasker works with the Control Panel, you’ll want to make sure its connected properly. You can do so by using the extern command. When you are sure the Control Panel is correctly connected you’ll be able to integrate it with Tasker.

Here are the actions associated with the Control Panel.  Each one will be talked about in depth further down this post.

Control Panel actions for Tasks in Tasker

Using the Manual Switches as a Trigger

To enable the Manual Switches to be a Trigger in task that will be used to activate a Task is a two step process.  First, you must create a Signal and then you will use the Signal Name when setting up the Trigger.

The creation if the Signals looks like the following.  In this example we two different scenarios.  Our first scenario is a water pump.  We have one switch that will be used to turn the pump on and another to turn it off.  The other scenario is playing an audible alarm.  The alarm will sound for a period of time.  It should not be able to be played again until the alarm reset has been activated.

Signals in Tasker

Here are the triggers to implement the two scenarios.  Since the switch to turn the water pump on can be pressed as many times as a user wants without issue if the water pump is already on then we can set the Trigger to be reset on the same switch that triggered it.  The same goes for turning the pump of.  However, the sounding of an alarm could be different.  If an alarm sounds for 15 seconds, it could be annoying if someone were to keep activating the alarm.  What we want is to be able to reset the trigger before it can be activated again.  Any signal can be used to reset the Trigger.  Here we show using another switch but it could very well be an input that is used.

Triggers in Tasker

Using the Visual Indicators in a Task

The Visual Indicators on the Control Panel are the the 12 LEDs labeled L1 through L12.  The LEDs can be controlled by setting them to be OFF, ON, or to flash at different rates.  The LED will be on or flashing until it is turned off.

Set Control Panel LED Tasker example

Using the Audio Alarm in a Task

The Control Panel has a PC speaker on the back on the unit that can produce an audible alarm.  This is great for alerting people without the person needing to be looking at the Control Panel already.  Here is the setup when configuring the Alarm to be played.

The alarm plays with an oscillating sound.  You can select between slow, medium, fast, or custom.  Then a duration is needed in seconds followed by the volume on a scale of 0 – 100%.

Control Panel alarm Tasker example

If the custom option is selected then then additional options of the audio frequency to use and the duration of each beep are presented.

Control Panel alarm custom example

You can also elect to Silence and Alarm.  Maybe you have an alarm that plays for 60 seconds but can be silenced when someone responds to a given situation.  To do that we will use the Silence Alarm action.


When you are using the JNIOR, you may want to change the IP address to fit a pre-existing schema for JNIOR’s on the network. When changing the IP of the JNIOR if it automatically changes its IP to after being given a different IP, this is because a device on the network is already using that IP address. The JNIOR doesn’t want to interrupt pre-existing IP communication with a device on the network, so rather then take the IP and create a conflict between itself and the other device, it simply defaults it’s IP to To confirm another device is on your network using the same IP, you can try pinging the IP Address that has the additional device on it. If the ping replies successfully, you’ll know you have another device somewhere that is on the network using that IP. In order to ping on windows, you simply open the command line and type “ping (IP address)”. NOTE: Not all devices on a network have ping capabilities.

Ping command in windows command line

To resolve the issue, you have to change the JNIOR or other device on the network to another IP that prevents the two devices from conflicting with each other.

If you are having issues communicating with a JNIOR from a Christie IMB, it might be the Keep-Alive message being sent. When adding the JNIOR as a device to a Christie IMB, You’ll see a screen like this when entering the JNIOR’s information.

Christie IMB Device Menu

One of the values you’ll notice is the Keep-Alive message. When a device makes a connection with a JNIOR, the JNIOR will disconnect with the device when nothing is sent between them over a certain amount of time. Over that time frame, the JNIOR will send the Keep-Alive message intermittently to see if the connection should persist between both devices.

For the Keep-Alive message field, the Christie IMB sets it automatically to /0x06 like in the picture above. This is not the correct value for the Keep-Alive message. The value for this field should be \x06. Changing this value should help the Christie connect with the JNIOR.

Note: This functionality will require Tasker 3.9

There are times when we want to log a temperature.  To do this we need to select a time interval between samples.  This interval can either be too short or too long.  Very rarely can we get the perfect interval.  A short interval leads to redundant data where the temperature doesn’t change often and several samples log the same temperature in a row.  A long interval can hide valid temperature changes.

So we ask ourselves, what do we really want?  The answer is usually that we want to know when the temperature changes.  Using Tasker, and the setup below, we can achieve the desired functionality. 


The following image shows how we can set up a Task with Variables and Logic to only Log when the temperature changes.  The global variables make sure the current temperature values that are used in the logic are used when making the log entry.

Tasker Logging workspace

This screenshot shows how to configure the Logger to use the global variables.

Loggers in Tasker

This screenshot shows configuring the schedule to call the Task with a short interval.  The logic within the Task is responsible for making sure the log entries only occur when there is a valid temperature change.

Scheduled Log Tasks in Tasker


Here is the result of a the functioning configuration over the past 15 minutes.  You’ll notice that the temperature changes, but it tends to bounce back and forth between two or three values.  We can handle that in another article!

Logged Temperature values

A lot of JNIOR applications log information about what they are doing. This information can be about different things. Sometimes the application is purposely creating log files to keep track of data such as water levels or I/O changes. Logs can also be used to keep track of information about the application itself and if its run into any errors. Here is a quick post on how to look at Logs on a JNIOR.

To access information on a Series 4 JNIOR, you’ll first need to open the JNIOR WebUI. Once the on the JNIOR WebUI, you’ll then access the folder tab. Here you can see a list of all the files located on the JNIOR. Navigating through the folder shows the different files you can view, including log files.

Folders tab of JNIOR Web Page

Another way to access files on either a Series 3 or 4 JNIOR, you can open the File Transfer Protocol from the Support Tool. To start you’ll open the Support Tool, then in the beacon tab you’ll right click on the JNIOR and select Tools/Open FTP. You’ll then see a dialog open asking for the JNIOR’s username and password. Once you enter that, you should see all the available files on the JNIOR, including log files.

File Transfer Protocol on JNIOR

When using Cinema, Serial PLUS, or Serial-To-Ethernet applications people will be generally using the serial port to talk to other devices or send commands. Knowing what registry keys need to be set to when communicating on them is important. This tutorial is for setting the registry keys up for the Serial Control Plus application.

To start, when using Serial Control, the connection that will be set up is accessed through the command line once all the registry keys have been set. So first thing is to go to the support tool and go to applications. Once there make sure that the Serial Control application is checked, otherwise check it and reboot.

Configuration tab for JNIOR Web Page

Once the JNIOR reboots, go to the console tab and type “ps” to see if the application is running.

ps command for JNIOR command line

If it is then next go to the registry tab and in the section App-Data find the Serial Control program.

Registry tab for JNIOR Web Page

Here is where all the information for creating the serial connection is contained. If you are connecting through COM3 at the command line, make sure that the SerialPort value is set to AUX if the port being used is the Auxiliary port and not the RS-232 port. If you want to connect through TCP, make sure you set a TcpServerPortNumber value set, a good example one is 9202. Now all the values should be set to connect serially to the JNIOR. Go to the JNIOR support tool and select tools –> command line. This will bring up the command line to give serial commands to the JNIOR. 

JNIOR telnet session

When using Cinema, Serial PLUS, or Serial-To-Ethernet applications people will be generally using the serial port to talk to other devices or send commands. Knowing what registry keys need to be set to when communicating on them is important. This tutorial is for setting the registry keys up for the Serial-to-Ethernet application.

To start, when using Serial-to-Ethernet, the connection that will be set up is accessed through the command line once all the registry keys have been set. So first thing is to go to the support tool and go to applications. Once there make sure that the Serial-to-Ethernet application is checked, otherwise check it and reboot.

Configuration tab for JNIOR Web Page

Once the JNIOR reboots, go to the console tab and type “ps” to see if the application is running.

ps command for JNIOR command line

If it is then next go to the registry tab and in the section App-Data find the Serial-to-Ethernet program.

Registry tab for JNIOR Web Page

Here is where all the information for creating the serial connection is contained. Make sure that the SerialPort value is set to AUX if the port being used is the Auxiliary port and not the RS-232 port. Now all the values should be set to connect serially to the JNIOR. Go to the JNIOR support tool and select tools –> command line. This will bring up the command line to give serial commands to the JNIOR. 

JNIOR telnet session

The DMX application does not ship preinstalled. You MUST obtain the application from our website. There is a download on the website that will be opened in the JNIOR Support Tool and published to the JNIOR. This is called an Update Project.

Here are links to latest versions of the JNIOR Support Tool and the Cinema application. NOTE: The DMX link below is for new installations only. If you already have the DMX application on your JNIOR and only need to update to a newer version, visit our DMX page to download our other update project for DMX that isn’t for new installs.

Name Version Release Date Size MD5
JNIOR Support Tool v7.10 Jul 15 2020 13 MB 4fd5a1b0617a59a7f6802663ec3f789e
DMX New Install v2.3 Sep 11 2019 617 KB d224f18c755add16e0f55f13fd88737c

After installing both the JNIOR Support Tool and the DMX Update Project, you’ll want to open the Support Tool and click on the Update Tab. Once there, the first thing you’ll want to do is select the Open Project button, and select the DMX Update Project you just downloaded. When you open the DMX Update Project in the Support Tool you will see the following.

DMX Update Project

In the DMX application you can create fixtures, scripts and triggers to control the 512 DMX channels for your external lighting device.

In the DMX application, you create scripts to change the 512 DMX channels. Once you have a script, you’ll then want to be able to activate it. One way to set up a script to activate is by giving it a trigger. This post will explain how to create a trigger for a script. NOTE: You need to have installed the DMX application on your JNIOR to start configuration.

Open the DMX application, and go to the Triggers tab. Once there, you’ll see the I/O layout for your JNIOR, showing how many inputs and outputs are on it. To setup a script to trigger on one of the I/Os, you’ll simply enter “script (SCRIPT_NAME)” into one of the I/O spots. You can additionally enter -f or -r after the script name to add additional effects to the script running. You can also enter “abort” into one of the I/O spots to make any script stop running when that I/O value occurs.

Triggers for DMX application

Once you’ve entered and saved a script name value in an I/O slot, you should now have a script set to run when the selected I/O value activates.

When you have a fixture that you want to control through the DMX application, you use a script. This post will explain how to create one. NOTE: You need to have installed the DMX application on your JNIOR to start configuration.

To start, you’ll open the DMX application and go to the scripts tab and click the add script button which the application will then prompt you what you want to name the new script. After entering the new script’s name, you’ll go to it in the script tab and select the green pencil icon under the script column. The Edit Actions dialog box will open, where you can then enter actions for the script to perform. The 3 main actions are the delay, set, and fade. How you enter those actions in the script, and the different parameters an action can use, are shown on the right side of the dialog box.

Scripts for DMX application

After you’ve entered your actions in the script, you’ll click set at the bottom right of the dialog. Now when the script runs it’ll edit the channels referenced in the script actions.

In the DMX application, you create fixtures that pick how many channels of the 512 DMX channels will get set along with where the starting channel for that fixture is. NOTE: You need to have installed the DMX application on your JNIOR to start configuration.

To start, you’ll need to create a DMX fixture type. In the Fixture Types tab, you’ll click the add fixture type button. You’ll then get the New Fixture Type Dialog, where you can set the amount of channels the fixture will use of the 512 DMX channels, and what they are named.

Fixture type for DMX application

Once you have the fixture type created, you’ll the go to the Physical Fixtures tab and create a fixture of that type. Click on the add fixture button, which will open the New Fixture Dialog, where you can set the Fixture Type (you use the one you just created), name of the fixture, and the starting channel for the fixture.

Fixtures for DMX application

Once you’ve created the fixture, you should now have a fixture that uses the amount of channels set in the fixture type settings, and starts on the channel set in the physical fixture settings.

When using the Cinema application, you’ll want the JNIOR to be able to send/receive commands to control or be controlled by external devices. In the registry of the JNIOR, Cinema’s registry contains the CinemaServerClient and PreshowClient registries. These are what can be configured to establish those connections to external devices.

While accessing the JNIOR WebUI when Cinema is installed, you can access the AppData/Cinema/CinemaServerClient or AppData/Cinema/Client registry folders to configure the connections made using Cinema. The PreshowClient and CinemaServerClient are connections made to either a Preshow System or Cinema Server through TCP or Serially that allow control of outputs, I/O feedback, and the ability to interact with various devices using macros.

Inside both registry folders are multiple registry keys. The TcpPort registry key is where you can set the port number for an Ethernet connection to other devices. (We recommend using the port number 9600). For serial connections, you need to set the Method key to serial and the SerialCommandsEnabled key to true. You’ll then need to go to the AppData/Cinema/X/Serial (X is for CinemaServerClient or Client) and set the serial connection to whatever serial setting you want the JNIOR and your external Device to connect on. NOTE: You cannot have both a Preshow Client and Cinema Server connection at the same time.

Registry settings for TCP Cinema Server Client
Registry settings for serial Cinema Server Client

When using the control panel, you might want to have the switches trigger macros you created in the support tool. This post will explain how to do just that. To start you’ll need to have created a macro in the support tool. If you haven’t done that already and don’t know how, here is a post on how to do it. You’ll also need to have installed cinema on your JNIOR as well.

Next, you’ll want to makes sure that your control panel is properly connected. You can check what external devices have been connected to the sensor port by opening the JNIOR’s WebUI, going to the Console tab, and after logging in entering “extern” into the console. If you have left-over information from previous external devices that you’d wish to get rid of, then you can remove devices no longer present by typing the extern -r command.

extern command for JNIOR command line

Once you have your macros created and published to a JNIOR along with  your control panel being connected, you can now hook up the macros to the control panel using the JNIOR’s registry. Open your JNIOR’s WebUI and go to the registry tab. Once there, you’ll then go to AppData/Cinema/Panel.

Control Panel registry for JNIOR Web Page

Once here, you’ll simply enter the macro name on whichever switch trigger you want to activate the command. Now the macros you created will send a command when you hit a switch on the control panel.

This application will monitor the digital inputs.  The corresponding output is set when an input pulsed.  That output remains active until a different input is pulsed.  This application effectively latches the output to represent the last input that transitioned from low to high.

package com.integ.latchrelays;

import com.integpg.system.IoEvent;
import com.integpg.system.Iolog;
import com.integpg.system.JANOS;
import java.io.IOException;
import java.util.Date;

 * This application will monitor the digital inputs. The corresponding output is set
 * when an input pulsed. That output remains active until a different input is pulsed.
 * This application effectively latches the output to represent the last input that
 * transitioned from low to high.
public class LatchRelaysMain {

    public static void main(String[] args) throws InterruptedException, IOException {

        // create an Iolog instance and a timestamp representing the last time an 
        // event occurred.  we will start with a value of zero indicating only new events
        Iolog iolog = new Iolog();
        long timestamp = 0;

        // loop forever
        while (true) {

            // refresh the oilog with the timestamp of the last input event
            IoEvent[] inputEvents = iolog.getInputEvents();

            // only process if there are events
            if (0 != inputEvents.length) {
                System.out.println("inputEvents.length = " + inputEvents.length);

                // loop through the input events
                for (int i = 0; i < inputEvents.length; i++) {
                    IoEvent inputEvent = inputEvents[i];
                    timestamp = inputEvent.timestamp;
                    System.out.println("timestamp = " + new Date(timestamp));
                    int highTransitions = inputEvent.mask & inputEvent.states;
                    boolean isTransitionHigh = (0 != highTransitions);
                    System.out.println("isTransitionHigh = " + isTransitionHigh);

                    // if the event was a transition high then set the outputs to 
                    // represent the state of the inputs that transitioned from 
                    // low to high.  we will use all outputs here
                    if (isTransitionHigh) {
                        JANOS.setOutputStates(highTransitions, 0xff);

                        // we are only looking to process the most recent inpput 
                        // transition from low to high.  so once we find one we 
                        // can abort the loop.

            // sleep for a little bit of time to not monopolize the CPU



As long as the device you are sending to can create TCP or serial connections, the JNIOR should be able to send commands to it.

If you are starting from scratch with a JNIOR, you’ll want to download the JNIOR Support Tool. This application allows you to update JNIOR’s with INTEG software that you’ll need to let you send the text command.

Once you’ve downloaded the JNIOR Support Tool, you’ll need to download two update projects from our site and update them to your JNIOR. The first update project is the Series 4 All-In-One update project. Its recommended for any new Series 4 JNIOR, as the update project gives JNIORs the most recent OS, along with some basic applications. The second update project is the Cinema update project. This is the application you’ll use to execute a macro, which will send a command from the JNIOR to a device.

To update your JNIOR with an update project, here is a link to a post on our site that shows how to install Cinema. NOTE: Though the post shows how to install Cinema, its recommended you install the Series 4 All-In-One first, using the steps in that post.

Once the update projects have been published to your JNIOR, we’ll now need to create a device in the support tool to send to. In the support tool, you’ll go to the device tab and select add. You can select the device and rename it. After that you’ll now configure the settings of the device so we can send macros to it. To start you’ll select your device type, and if you see the device you want to send to there you’ll select it. If not you’ll select Raw Ethernet for a TCP connection or Raw Serial for a serial connection. You’ll then set the rest of the device configuration according to the device’s TCP or serial settings.

Once you finish setting the device information, you’ll then want to save the device file by clicking the Save As button. After that you’ll then publish the file to the JNIOR you are using by clicking the Publish to JNIOR button.

After you’ve done that, we’ll now create the macro that will be sent to the device that will contain the text command. Going back to the support tool, you’ll go to the macro tab.

The first thing we’ll want to do here is click the “Link Devices” button at the top. Here we’ll select the device file we just created, so we can reference it in our action for the macro we are going to create.

After completing that, at the bottom left corner of the macro view and you’ll select add/macro. A new macro should populate the macro view, and you can then click on it and rename it. I’m going to name it ExampleMacro.

Once you’ve done that you’ll now go to the action view and select the add button there. A new action should appear in the action view. You can rename this if you’d like, and then we’ll want to select the device we previously created in the Support Tool to send to. Lastly, in the data field you’ll want to enter the text command you wish to send to the device. If you are using a Raw Serial/Raw Ethernet device, make sure you include the termination string at the end of your text command for the device you are sending to.

Once that is finished, make sure you add the action we created to the macro we created. You do this by selecting the macro, then the action, followed by the arrow between the macro and action view.

Lastly, like we did with the device file, we’ll save this using the Save As button, followed by publishing it to the correct JNIOR using the Publish to JNIOR button.

Macro tab for JNIOR Support Tool

Now that the JNIOR has a macro we created that will send the text command to your specified device, now all we need to do is configure the JNIOR so that it will send this macro when DIN1 goes ON. First thing we’ll want to do is go to the JNIOR Web UI by selecting the JNIOR in the beacon tab of the support tool. There you’ll right click it, and go to tools/open web page. Once on the JNIOR web page, you’ll go to the registry tab. On the registry tab, you’ll select AppData/Cinema/Triggers. Once there, you’ll go to Input1Macro and enter the name of the macro we created in the support tool. We named it ExampleMacro, but if you named it something different you’ll enter that name here. This should set the JNIOR so that when DIN1 on the JNIOR goes ON, the macro will activate.

Cinema trigger registry keys
Name Version Release Date Size MD5
JNIOR Supporter v0.1 Sep 30 2020 436 KB a37e8a2bafc86b3a434c46aea9dd7513

For a while now, we wanted to provide a cross-platform version of the JNIOR support tool to allow all users to access their JNIOR’s easily. There are also several aspects of the Support Tool that we wanted to improve upon. With that said, we are happy to release the JNIOR Supporter!


Cross-Platform – The JNIOR Supporter provides cross-platform functionality. All users will enjoy the same experience regardless of the platform that they are using. The only requirement is that you have a valid Java Runtime Environment. .

New Interface – While looking familiar to the JNIOR support tool, the JNIOR Supporter has a new interface making it easier to view and interact with your JNIORs on the network. Information is displayed more openly to see issues or notices from JNIORs, and menus have been simplified to enhance ease of use.

Updated Features – The JNIOR Supporter introduces improved features such as sorted snapshots making them easier to find and more displayed information to for JNIOR’s on the network.

View Logs – Users can now view logs from the support tool in a pop-up dialog by right clicking on a JNIOR in the Beacon tab instead of needing to reach the JNIOR’s web page

Sorted Snapshots – Snapshots are shown in a tree view and are shown in each of three categories allowing the user to easily find snapshots that we taken for a certain JNIOR based on serial number or hostname or based on when snapshots were taken by day.

Simultaneous Snapshots – Multiple Snapshots can now be taken simultaneously to speed up the process of backing up your site’s JNIOR ecosystem.

Multiple Update Projects – Multiple Update Projects can be opened at the same time so no longer have to close one Update Project to open another.  Care must be taken to not push conflicting updates to the same JNIOR.


We want to know what you think of this new support tool. We know that change is not always easily accepted. Please let us know what you think of it and how we can add/improve to this application. If you have questions or assistance with the application, feel free to contact us. You can do so by joining our support chat on our website, emailing us at support@integpg.com or calling the office at 724-933-9350.

JANOS has implemented a set of time zones that are available but in no means is this a complete list.  There are many territories in the world that either do not observe the time zone that they geographically belong to or they have different rules.  Some locations differ the time zone rules by 30 or even just 15 minutes.  Sometimes governments alter their policies and change the rules that have been in place for years or decades.

This article will describe how to create a new time zone with a DST rule as described in the JANOS Registry Documentation under section 9.2.

The clock subsystem is generally configured using the DATE command. JANOS defines a set of time zones for use in displaying local time. These time zones may or may not utilize Daylight Savings Time (DST).

As there are 24 hours on our clock one might expect that there needs to be only 24 time zones. This however is not the case as some areas offset their clocks by just 30 minutes. In addition, some areas utilize DST while others do not. The following is the default set of time zones. This can be displayed at any time using the DATE -T command.

date command for JNIOR command line

This default list of time zones is likely incorrect for some areas across the globe. INTEG encourages users to let us know when a correction to the timezone tables might be appropriate. JANOS does provide a means by which you may define new time zones with or without DST rules. You may even correct an existing timezone. This is accomplished using one or more Time zones/<name> Registry entries.

Use of a website like timeanddate.com is very helpful for the validation and creation of time zones.

Here I will show you how to create a new Time Zone for Aukland New Zealand.  Timeanddate.com gives us all the information we need in this screenshot.

Information for timezone creation

We see that they are currently observing Daylight Savings Time and will be throughout the beginning of next year since New Zealand is in the Southern Hemisphere.  So now we can follow the following format to build a registry key for the new time zone we will create.

reg Timezones/<name> = <offset>, <desc>, <AbbStd> [, <AbbDst>,
       <stMon>, <stDay>, <stDoW>, <stTime>,
       <endMon>, <endDay>, <endDoW>, <endTime>, <dstOfs>]

We will need to use the full format in order to get the daylight savings time rules implemented. To do this we can enter the following at the command line.

reg timezones/NewZealand = "+1200, New Zealand/Aukland, NZST, NZDT, 
       SEP, 27, SUN, 200, 
       APR, 5, SUN, 200, 60"

The registry tab could also have been used to create the key. That would look like this…

In either case we get the same result. We can now issue the date -t command to see our newly created time zone.

date -t command for JNIOR command line

A reboot is needed to complete the registration of our newly created time zone.  After the reboot there is only one more thing to do.  Tell the JNIOR to use it.  For example, date NZST.

There you go!  The new time zone has been created and the JNIOR is now using it.  As mentioned above, it is recommended to tell INTEG of missing or incorrect time zones so that we can put it in the JNIOR but creating a custom time zone will get your JNIOR to start using the new rules immediately. 

As always, thanks for using the JNIOR!