ISAAC integration

This application note shows the steps involved in setting up Blocks to communicate with Smart Monkeys ISAAC A/V monitor and management system.

The Isaac device

Please follow the vendors documentation for the device setup. This documentation aims to explain the necessary steps to be taken in Blocks.

Make the driver available to the server

Copy the driver files Isaac.js (driver) and Isaac.ts (source code file) from the drivers-archive to the drivers directory in PIXILAB-Block-root/script/.

Configure the driver

Open the blocks editor and add the Issac system as a Network device. In the driver custom options field we must add some configuration using JSON syntax. A typical example will look like this:

{
  "protocol":"http",
  "heartbeatInterval": 10000,
  "variables": ["Realm.ISAAC.variable.isaacCounter.value"],	
  "events": ["ISAAC.examples.addOne","ISAAC.examples.removeOne"],	
  "subsystemExternalId": "Blocks"
}

Where: protocol (optional, string) Can be 'http' | 'https' and specifies the protocol for the ISAAC connection, defaults to 'http'

token (optional, string) is passed in the isaac-token header, only to be used in case Isaac is configured to use a token.

heartbeatInterval (optional, number) How often to send "heartbeats" to Isaac, in mS for the health indication.

variables (optional, string array) An array of full property paths to properties we want to be logged in ISAAC.

events (optional, string array) An array of tasks specified as name.group.task exposed as Isaac events. This allow the task to be called from i.e. an ISAAC schedule.

Sending log messages from Blocks

The driver exposes a callable named log that can be used in task programming to log messages to ISAAC.

Steps in ISSAC

Register the Pixilab Blocks module under setup/modules in the ISSAC system. The events and the variables specified in the driver will be added automatically. Please note, full-stop and commas are prohibited in the ISAAC scheduler so edit the name of the variables and events once discovered in ISAAC. At this point it is possible to use the schedules in ISAAC to run any of the specified tasks by scheduling that event at a specific time. It is also possible to track any changes to specified variables.

Please use the vendors documentation for any details on how to use ISAAC.