Name Version Release Date Size MD5
Tasker v6.0 Mar 18 2021 1 MB dc9fd5f96047b8e946e67cfcab9d79cb

Warning: The Triggers tab functionality was reworked!  Any Triggers that are currently defined will need to be reconfigured.

6.0, 18 mar 2021           

  • [*] reworking triggers
  • [*] adding single switch control panel trigger
  • [*] adding multi-switch control panel trigger
  • [*] adding delayed reset
  • [+] added WebServerPort registry key Default -1 or meaning disabled
  • [+] adding ExecuteTask web request handler /executetask name=TASK_NAME
  • [+] adding GetLoadedTasks web request handler /getloadedtasks
  • [+] automatic upgrading of old trigger configuration

5.0, 31 jan 2021

  • [+] adding action to kill, cancel or abort a task
  • [+] adding HTTP request action
  • [+] adding MQTT publish action

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 4.0 December 18, 2020

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

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.

3.9, 18 nov 2020

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

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.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.6

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

3.5

  • [+] Added a user.alert message.

3.4

  • [+] 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.

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

Name Version Release Date Size MD5
JANOS - UPD v2.0 Mar 08 2021 916 KB 0ac9a73fec33b08f0b0512a38afe5bc6
Series 4 All-In-One Update Project v2.0 Mar 08 2021 3 MB ecad5513459a8ad78b3b36ffc95da0b6
Core JANOS Update Project v2.0 Mar 08 2021 1 MB 32f939fc0d0c5d13d9481aa46c0ba2c8
JANOS Release Notes v2.0 Mar 04 2021 324 KB 81f7edf74db3d83c8792ba551cf6db88
  • Improved serial diagnostics during boot
  • Added DST rules for New Zealand timezones
  • Added File Sharing. Disabled by default
  • Logs prior Registry key values along with changes
  • Enabled NetBIOS name resolution and disabled LLMNR
  • Allow product “Birthname” such as jr817120068 to be always valid in name resolution
  • Corrected Websockets login issue
  • Fixed issue with HTML Email content
  • Added SHA384 and SHA512
  • Added text form of IP address to certificate to appease Microsoft IE
  • Enhanced Registry key settings to inform as to reboot requirements
  • Improved Email error reporting
  • Added Galois/Counter Mode (GCM) to TLS security suites
  • Removed legacy Registry editor
  • JANOS renews its own self-signed certificates
  • Added JSON support to PHP
  • Added Command Line text editor
  • Added Elliptic Curve TLS suites
  • Added BAT file enhancements and scripting support
  • Added the ability to retrieve files from remote servers to JRUPDATE
  • IP address filtering overridden by SAFE MODE
  • Add capture filter information to pcapng capture file
  • PHP scandir() changed to return absolute file path
  • Issue with /etc folder content in scandir() corrected
  • Corrected issue with nested PHP foreach loops
  • Added PHP date and time formatting function date()
  • Console command line history search and selection enhancements
  • Added PING Flood Mode and addressing validation option
  • Corrected issue with ZIP/JAR decompression failing with some large binary files
  • Added support for the standard loopback address range
  • Default WebServer/Path is now /flash/www/config allowing relocation of the default configuration pages
  • Corrected Registry issue with of Type 10 temperature sensors
  • Batch parameter %0 now returns the command from the command line
  • Corrected runtime issue with PHP replacing existing array content
  • Addressed differences in Linux based terminal sessions
  • Extended the ECHO command for use in scripting
  • Added JMP Protocol port for use in defining capture filters
  • Added JMP port and BuildTag to Beacon protocol
  • Corrected PHP @strrpos()@ and syntax shortcomings
  • Enhanced ARC/ZIP/JAR command
  • Improved compatibility with Linux terminal emulators

JANOS 1.9 (Released February 3 2020) February 3, 2020

Release Notes

We have released JANOS v1.9 which has several changes and bug fixes. Most notably with TCP packet generation. While it is not wrong to send data in multiple TCP packets, many devices incorrectly implement TCP clients and fail when this case arises. This version adjusted the release of socket data to reduce the chances that a message might be split across separate TCP packets. This had been a recent issue with some MODBUS client devices.

  • Added support for Reverse LLMNR allowing network scanners to label IP addresses with hostnames
  • Adjusted the release of socket data to reduce the chances that a message might be split across separate TCP packets
  • Corrected Sockets race condition that caused occasional reception delays and blocking
  • Fixed the incorrect signed display of large input counter values in JRMON and JMP Protocol
  • Adds a BEACON announcement in the event of an IP conflict
  • Improved NONCE management eliminating possible issues in the presence of port scanners
  • Eliminated chance of buffer overrun occurring in FTP transfer
  • Beacon REBOOT now works in all cases
  • Eliminated potential difficulty in obtaining network capture file

JANOS 1.8 (Released June 17 2019) June 17, 2019

Release Notes

We have released JANOS v1.8 which adds the JMP Protocol. The JANOS Management Protocol (JMP) is essentially the JSON message interface utilized by JANOS Websockets. The JMP Protocol has been exposed on its own TCP/IP port. This encloses the JSON messaging in a JSON array along with the JSON Object length making reception of the messages easy. The JMP Protocol will be used by the QSC Q-SYS JNIOR component.

  • Implements the JANOS Management Protocol JMP
  • Adds "Block" command to JSON interfaces
  • Web Server limits the effects of extremely slow connections.

JANOS 1.7.1 (Released 3 December 2018) December 3, 2018

Release Notes

  • Watchdog no longer causes reboot from foreground execution
  • REGEX Alternation '|' has been corrected to properly work in Group
  • Corrected NULL Pointer write issue when a Group which employs alternation appears at the start of a REGEX expression
  • Resolved message pump memory issue relating to process termination
  • Expand the channel range for setOutputRelay() from 0-11 to 0-15
  • Corrected network capture filtering when an IP address is to be excluded
  • Supports networks using Jumbo Frames
  • Eliminated assertion associated with improper use of '%n' in System.out.printf.

JANOS 1.7 (Released 26 July 2018) July 26, 2018

Release Notes

  • Added ability to load single CA Certificate to be supplied on TLS connection
  • Support TLS Client Certificate Verification on outgoing connections
  • Added legacy PKCS1 support for externally generated certificates
  • Corrected array issue with processing of deferred email transmissions
  • Corrected memory issue with TAB use on the Command Line

One of the actions you can perform in Tasker is the HTTP request action. This action allows you to post information to a specific URL. This post will show you an example of this.

To start you’ll want to make sure that you have the Tasker application installed on your JNIOR. Here is a post explaining how to install Tasker.

Once you have Tasker installed, you’ll want to open the Tasker web page. You can do this by opening a web browser and navigating to http://JNIOR_IP/tasker. Once you are on the web page you’ll want to create new workspace, and then add a task to it. 

Once you’ve created and named a task for the workspace, you’ll want to add the HTTP request action to the Task. You’ll do this by clicking the add action button, and then selecting the HTTP request action in the Add Action Dialog box.


After you have added the HTTP request action to your Task, you’ll now want to enter the URL you wish to request from which will include the data that we are requesting. For this example, we are going to request a macro from the Cinema application. Here is a link to a post for installing the Cinema application if you don’t have it. This example assumes you’ve created a macro in the support tool called ‘pulse_output_1’, but the URL can include the name of any macro you have. Also the URL we are about to enter will use the IP address of 10.0.0.131, but this value should be of YOUR JNIOR’s IP address when doing a URL request to Cinema or the IP of whatever device you would be doing a HTTP request to. Lastly, the URL will include 8090 because that is the port Cinema listens on for macros. With this in mind, we’ll set the URL field to http://10.0.0.131:8090/macro?name=pulse_output_1.

You can then execute this task and Cinema will activate the macro included in the URL, which based off its name would have pulsed output 1 showing you have successfully sent a HTTP request!

When using Tasker, to execute a task you can click the play button next to the task you wish to execute. But what if you wanted to execute a task remotely? This post explains how.

For this example, you first need to make sure that your JNIOR has the Tasker application. If it doesn’t you can follow this post to install Tasker to a JNIOR. You will also need to have the JNIOR Support Tool, which you can find here.

Once Tasker is successfully installed on your JNIOR, to start you’ll want to open web browser and navigate to the Tasker web page by going to http://JNIOR_IP/tasker. Once on the Web page you’ll simply create a workspace, and then create a task inside the workspace. Give it an action so when we execute it remotely we can see it perform the action. Then save the workspace.

In this example, we created a task that simply pulses Output 1 for 5 seconds.

The next step to remotely communicating with Tasker in this example is by opening a command line session. You can do this through the JNIOR Support Tool by going to Tools/Command Line.

You can use any command line tool. Since the support tool provides a command line tool, that is what we use in this example.

Once you’ve opened a command line session, you can then connect to Tasker using a TCP connection and connecting to your JNIOR’s IP (ours is 10.0.0.120 for this example) and port 9210. You’ll activate all the setting in the option drop-down also.

Once this is done, all you need to do now is type the command to execute a task. To do this you type “task.execute TASKNAME\r\n”. So if you had a Task in Tasker called CloseOutput1, to execute it here remotely you would type “task.execute CloseOutput1\r\n”.

With this, you should now be able to remotely execute Tasks in Tasker!

In Tasker, the JNIOR can interact with the MQTT application to publish data to a specific topic. This post explains how with an example.

To start you’ll need to first make sure you have both the Tasker application and the MQTT application installed on your JNIOR. If you don’t have one or both of these you’ll want to follow this link for installing Tasker, and follow the same steps for the MQTT application.

Once you have both the Tasker and MQTT application, we’ll start with opening the MQTT application web page, which you can access by opening a web browser and going to the URL http://JNIOR_IP/mqtt. The MQTT page is where we configure the MQTT broker, which manages all topics and handles the subscriptions. To use MQTT you need to find a broker to interact with. The one we are using in this example is broker.hivemq.com which is free. We don’t recommend this broker for anything serious or commercial, as it is not secured or dedicated.

http://www.mqtt-dashboard.com/

For this example we will enter HiveMQ’s broker information on the right side of the page. Not all the boxes are required. The only information we need for the HiveMq broker is the MQTT Broker Host address. HiveMQ uses the default 1883 port number. After that if the connection hasn’t already been set, click the connect button and you should be connected with the HiveMQ Broker.

NOTE: The bottom of the MQTT web page also shows what topics you can interact with for MQTT. This will be useful as a reference when creating the MQTT publish action in Tasker.

More topics are available on the MQTT web page

Once you have established a connection with a broker on the MQTT web page, the next step is to open the Tasker web page. Similarly to how you access the MQTT web page, you open a web browser and go to http://JNIOR_IP/tasker.

Once on the Tasker web page, the first thing you’ll want to do is create a new workspace, we’ve named our example MQTT_Example. 

Once the workspace is created you’ll want to create a new Task in the Task Tab, and then add the MQTT publish action from the Add Action button to the Task.

After adding the MQTT publish action, you can now set the topic in the top field of the action, and the data you wish to publish to the topic in the bottom field. In this example, we publish to the state of output 1 on a JNIOR to switch it from false to true, turning the output ON.

The value after ‘jnior’ in the picture above is the serial number of the JNIOR we use in this example

After executing this task, you will have published an MQTT topic to your JNIOR and set Output 1 to ON!

3.1     10 Feb 2021    
    [*] rebuild for update to the logging framework
    [!] fixed issues with finalizers locking up when killing the application

3.0     15 Jan 2020
    [*] reboot no longer needed on device name change
    [*] removed the use of the contains() string method.  it was causing topic subscriptions to be slow
    [+] added the ability to unsubscribe from old device group names when they change
    [*] unsubscribe from old hostname when it changes
    [*] gray out the web page when the app isnt running
    [+] implement the username and password
    [+] implement 10v modules
    [+] implement temperature probes
    [+] implement environmental modules

2.0     10 Apr 2019
    [!] resolved memory leak when adding published topic names to array list.  using hashtable now instead.

1.4     09 Apr 2019
    [*] debugging memory issue

1.3     17 Jan 2019
    [*] enhancing library options

1.2     03 jan 2019
    [+] added a button to control from the web page to connect and disconnect
    [*] hostname will report on change
    [+] last will implemented
    [*] all io information uses publish retention to ensure new mqtt clients get the last known information
    [*] all io information is reported on application start-up

1.1     19 dec 2018
    [+] Added web page for configuration and status

1.0     19 Nov 2018
    [ ] Initial Release
Name Version Release Date Size MD5
MQTT v3.1 Feb 10 2021 493 KB 80afadef666970cf7cd06ba6380366ec

MQTT Release Notes February 12, 2021

3.1     10 Feb 2021    
    [*] rebuild for update to the logging framework
    [!] fixed issues with finalizers locking up when killing the application

3.0     15 Jan 2020
    [*] reboot no longer needed on device name change
    [*] removed the use of the contains() string method.  it was causing topic subscriptions to be slow
    [+] added the ability to unsubscribe from old device group names when they change
    [*] unsubscribe from old hostname when it changes
    [*] gray out the web page when the app isnt running
    [+] implement the username and password
    [+] implement 10v modules
    [+] implement temperature probes
    [+] implement environmental modules

2.0     10 Apr 2019
    [!] resolved memory leak when adding published topic names to array list.  using hashtable now instead.

1.4     09 Apr 2019
    [*] debugging memory issue

1.3     17 Jan 2019
    [*] enhancing library options

1.2     03 jan 2019
    [+] added a button to control from the web page to connect and disconnect
    [*] hostname will report on change
    [+] last will implemented
    [*] all io information uses publish retention to ensure new mqtt clients get the last known information
    [*] all io information is reported on application start-up

1.1     19 dec 2018
    [+] Added web page for configuration and status

1.0     19 Nov 2018
    [ ] Initial Release
Name Version Release Date Size MD5
Tasker v5.0 Jan 31 2021 1 MB fbaeda6484aa5ff0a2b818cb96c6a7d2

5.0

  • [+] adding action to kill, cancel or abort a task
  • [+] adding HTTP request action
  • [+] adding MQTT publish action

4.1

  • [+] Added SNMP Set action
  • [+] added tempc and tempf properties to the environ sensor object to make the code work with older configurations

Tasker 4.0 December 18, 2020

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

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.

3.9, 18 nov 2020

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

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.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.6

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

3.5

  • [+] Added a user.alert message.

3.4

  • [+] 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.

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

When you create macros for Cinema, there are many ways they can be triggered. One of these ways is by setting the macro names in the trigger registry for Cinema. To do this, the 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 any of the registry keys named either ‘Input#Macro’ or ‘Output#Macro’ 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 that I/O value on the JNIOR you picked goes ON, the macro will activate. 

When an operating system like JANOS is created it first reaches out to the world through the simplest communications channel, a serial port. When the developer then wants to interact with the new OS, commands are entered through that Command Line Interface. Soon a reasonable vocabulary of commands are made available for use and this becomes the developer’s Console.

As the operating system finds new ways to communicate with its surroundings it discovers the network and begins to support useful protocols. Logically the first would be some serial channel simulation (Telnet) over which it can offer access to its Command Line Interface for use by others. Eventually, graphical user interfaces emerge and a more modern and user-friendly environment comes into existence.

While the Command Line may seem Old School and it may generate some apprehension on the part of a new user, it is the Go-To utility for the developer. It is here that the system’s vitals can be monitored and the OS can be encouraged to perform for us. It is no surprise that the Command Line has been a key element of the JNIOR from the beginning. We will cover aspects of this user interface that have been enhanced with JANOS v2.0.

Persistent Command History

Every JNIOR, even back to the Series 3, memorized a few commands as you entered them during the Console session. It has always been possible to scroll back to a prior command using the cursor UPARROW and DNARROW keys. This allowed you to scroll to a command and re-execute it by hitting ENTER. You could even edit the command to create a new similar command and execute that. The Series 4 more than doubled the number of individual commands that it would remember during the session.

With JANOS v2.0 this command line history is now persistent. Meaning that you can exit the Console session, return at a later time and scroll back to commands that were entered in prior sessions. This persistent history is saved by User and so each user has his/her own. The same user can even access the Console simultaneously through different channels and retrieve past command history, not have confusion over commands entered in the other session, and see the logical combination of activities later. The number of commands remembered has been expanded to 99. This history, however, remains available ONLY as long as the JNIOR stays powered.

HISTORY Command

The HISTORY command has always been available and it displays those memorized commands. With Series 3 it was just a few and with Series 4 a longer list. But in those instances it otherwise had little utility.

With JANOS v2.0 the HISTORY command has been expanded to provide better access to the (now larger) record of commands. 

bruce_dev /> help history
HISTORY [index|regex]

Options:
index Integer selects command for editing
regex Used for case-insensitive search

Accesses the command line history.
Aliases: HIST, HISTORY

bruce_dev />

For example, if you had entered a command earlier to reboot the JNIOR with some options that you now want to repeat, you can locate that command by typing hist boot. The HIST command being just a shortened alias for HISTORY. The “boot” text is used as a Regular Expression to search the history and any line matching the inquiry is listed. If there is only one matching line it will be selected and brought to the command line to be edited or executed. This command is now very useful.

When multiple lines are listed they are enumerated. You can select any command by entering its index. For example, hist 5 will retrieve the command line displayed with index 5 for editing and execution.

TAB Key

The <TAB> key has become useful in later versions of JANOS. It provides a means of auto-completion. For example, when entering a parameter to a command you can type the first couple of characters of a file or folder name and use the <TAB> key.  JANOS will finish the entry with matching file of folder names. Repeated use of the <TAB> key scrolls through all possible matches and returns to your original line if none meets your need. If the name you seek is displayed you can merely continue to enter your command having been saved from explicitly typing the entire file or folder specification. Warning: You will become addicted to this aid. As much as you want it to, the Series 3 will not do it.

The <TAB> key in fact is context sensitive. If you are entering a REGISTRY command (REG for short) the auto-completion will use known or existing Registry keys instead of file or folder names. In addition, if you have entered the REG command, a Registry key and then the equals ‘=’ sign, if you immediately hit <TAB> (before any space) the current key’s value will be supplied. This is very useful, first if you cannot precisely remember a Registry key and then if you only want to modify the existing value slightly.

At the beginning of a line you can enter the first character or two of a command and use <TAB>. This will auto-complete with valid commands and even offer matching commands from your command history.  But, of course, some people do like to type.

Finally, imagine that you have just loaded an unruly named UPD file into the /temp folder and need to execute a manual update using the JRUPDATE command. The following generally builds the command for you without much thought:

jru<TAB> -fup t<TAB>/<TAB>

This is best experienced through experimentation. Give it a try.

New Commands

JANOS v2.0 introduces some new commands:

  • EDIT a simple text editor.
  • NBTSTAT for new NetBIOS support.
  • … and some additional command aliases.

 

The JNIOR automation controller is a single board computing device supporting a variety of I/O. Once installed the product generally works tirelessly to perform its intended purpose. There is no need for routine user interfaces such as display, mouse and keyboard. When configuration, programming and maintenance tasks are required the user can access the device in a number of ways. One of those is the most general and capable. That is the WebServer User Interface or WebUI accessed through the network using a general purpose browser.

This WebUI is often referred to as our Dynamic Configuration Pages or DCP. The DCP acronym conflicts with other uses especially in the Cinema industry where it refers to the Digital Cinema Package that is used to deliver content (movies). So we now simply call it “The WebUI”.

This one ‘website’ allows you to completely manage your JNIOR. You can both control I/O and configure most of the system on various tabs here. This also provides a convenient means of moving files on and off of the unit. Even the Command Line Interface or Console is available, as one of the tabs provides a terminal simulation. The JNIOR must be wired to the network and assigned proper Internet Protocol (IP) addressing. You simply point the browser to it.

JANOS v2

The WebUI supplied with JANOS v2.0 appears much the same as it has throughout the Series 4. One big change is that you can now resize the display by dragging the lower right corner. That might be particularly useful if you are working in the Console tab or exploring Folders containing numerous files. It also has obvious value in viewing the Syslog or About tab content.

A somewhat less obvious enhancement is the VT-100 capability that the Console tab now has to support the new built-in simple text editor command EDIT. This feature offers a means to edit small files and scripts directly on the JNIOR avoiding the need to extract the file to your computer, editing it there and then replacing it on the unit. That’s a tedious process especially if you are trying different things and making repeated changes to files. The editor can also provide a means by which you can page through a lengthy file or log.

Relocation

A feature of the JNIOR WebServer is its ability to serve an entire website directly out of a single ZIP library file. This avoids a very common problem wherein the multiple files required by websites can easily get out of sync and cause page problems. On the JNIOR all of the files are in one package and stay there. All that is required to update the website including our WebUI is to replace one single file.

On Series 4 JNIORs running JANOS v1 the WebUI lives in the /flash/www.zip file. It is the default website offered by the unit. This works because the default WebServer root folder is /flash/www and the WebServer looks there first for requested files. If they are not found it then looks in any ZIP library file of the same name as the folder. So by default it would then look in www.zip.

You might think that if the JNIOR has a fully capable WebServer could you create a custom website for your specific application? Yes, you absolutely can. You likely wouldn’t want to lose the ability to access the configuration WebUI. Well that is easily accomplished by first moving the /flash/www.zip file to /flash/www/config.zip. Note the name change. Once this is done to access the Dynamic Configuration Pages you append the /config folder to the unit’s URL. The Webserver would look for the initial page in /flash/www/config and not finding it there then look in the config.zip file. This works even for sub-folders in the ZIP library file. Once you have done this you can now place your custom website in the root and it will become the default.

JANOS v2 now is supplied with the WebUI already relocated as described. By default the WebServer search path now includes the /flash/www/config folder. So if there is no custom default website defined the WebUI will automatically open.

The importance of this relocation relates to future updates. We need the ability to update the config.zip file. If you implement a custom website and want to take advantage of the single distribution file you would necessarily have to name it www.zip. You would likely not appreciate it if you overwrote your website in an update. So now we are proactively avoiding the issue. 

By the way, there are even more ingenious ways of setting up sets of custom websites on the JNIOR. If you are interested you can find out more through INTEG Support.

Ten years ago the challenge facing INTEG was to insure the future of JNIOR automation and to continue our commitment to our customers and the industries that they serve. We had been successfully supplying JNIOR Series 3 into growing markets when we received word from suppliers that the heart of the product, its processor and operating system, were approaching End of Life. Moving to a new processor would introduce third-party software potentially completely changing the product as we had built it. That would not be acceptable. Our solution was to insure that new software developed completely in-house built upon, and not altered, the product and its design. It was at that point that the JANOS operating system was born.

As our ability to produce Series 3 JNIOR drew to a close we prepared the release of JNIOR Series 4 running JANOS v1.0. It was a new, faster and more reliable automation controller meeting our demand that it serve as a drop-in replacement for Series 3 and continue seamless and uninterrupted support for all those who had selected JNIOR. It has been a great product and JNIOR Series 4 is current and successful today.  It remains the choice if flexibility, reliability, long-term availability, and unprecedented personalized customer support are of concern to you.

With a decade of JANOS v1 behind us the time has come to introduce JANOS v2 as the most reliable and most capable release to date. Unlike other version 2.0 products, JANOS v2 is not a complete rewrite, it does not change the way you see or do anything, and does not introduce risk or a new learning curve. It continues in our tradition of maintaining backwards compatibility while expanding the value the operating system offers developers. The JNIOR will remain solid and reliable for years to come. We look forward to a Series 5.

In addition to normal corrections and performance improvements here is some of what is new in v2.0:

  • Improved diagnostics and logging
  • Experimental access via File Sharing
  • Expanded TLS Security
  • Built-in JSON support
  • Enhanced Batch and Scripting capabilities
  • much more…

Look for JANOS v2 Tips & Tricks here on jnior.com and feel free to contact INTEG Support through our website at www.integpg.com . And by all means you can apply the v2 update to all of your JNIOR Series 4 with confidence. We highly recommend it.

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

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.

3.9, 18 nov 2020

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

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.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.6

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

3.5

  • [+] Added a user.alert message.

3.4

  • [+] 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.

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 Control Panel Switches as a Trigger

To enable the Control Panel Switches to be a Trigger that will be used to activate a Task is a very simple process. You only need to go to the trigger tab and add a trigger type set to the control panel switches.

Here are the triggers to implement the two scenarios.  Since the switch to turn the water pump on has no reset, it can be pressed as many times as the user wants.  The same goes for turning the pump off, except to turn it off requires switch 2 and 3 to be pressed at the same time.  However, the sounding of an alarm is different. The alarm sounds when output 1 goes high. It does have a reset, which we cleverly used as a trigger for the silence alarm trigger as well. So in order for you to stop the alarm, you have reset the trigger for the alarm as well.

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 0.0.0.0 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 0.0.0.0. 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. To change the IP address from the command line, you can do so using the ipconfig command, entering “ipconfig -a” followed by the new IP address you want to assign to the JNIOR. You can also do so from the Support Tool by right clicking a JNIOR in the beacon tab and selecting Configure/IP Configuration, which opens a dialog box that can be used to set the IP of the JNIOR as well.

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. 

Configuration

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

Result

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