Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
blocks:app-note:isaac [2024-01-22 07:47]
mattias created
blocks:app-note:isaac [2024-01-22 13:47] (current)
mattias
Line 1: Line 1:
 =====ISAAC integration===== =====ISAAC integration=====
  
-This application note briefly show the steps involved in setting up Blocks to communicate with Smart Monkeys ISAAC A/V monitor and management system. +This application note shows the steps involved in setting up Blocks to communicate with [[https://www.isaacplatform.com/|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=== ===Make the driver available to the server===
-Copy the driver files Isaac.js (driver) and Issac.ts (source code file) from the drivers-archive to the drivers directory in PIXILAB-Block-root/script. +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:  
 + 
 +<code> 
 +
 +  "protocol":"http", 
 +  "heartbeatInterval": 10000, 
 +  "variables": ["Realm.ISAAC.variable.isaacCounter.value"],  
 +  "events": ["ISAAC.examples.addOne","ISAAC.examples.removeOne"],  
 +  "subsystemExternalId": "Blocks" 
 +
 +</code> 
 + 
 + 
 +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
  
-===Configure the driver using driver options=== 
-Open the blocks editor and add the Issac system as a Network device.  
  
 +Please use the vendors documentation for any details on how to use ISAAC.