Difference between revisions of "Release Notes 3.3.0"

From HSYCO
Jump to navigation Jump to search
(Created page with " *Server Updates:   *new Arduino  I/O Server   *new SSH  I/O Server   *new Honeywell NOTIFIER fire panels I/O Server   *new Honeywell Galaxy security panel I/O Server ...")
 
Line 1: Line 1:
 *Server Updates:
+
 == Server Updates ==
  *new Arduino  I/O Server
+
*new Arduino  I/O Server
  *new SSH  I/O Server
+
*new SSH  I/O Server
  *new Honeywell NOTIFIER fire panels I/O Server
+
*new Honeywell NOTIFIER fire panels I/O Server
  *new Honeywell Galaxy security panel I/O Server
+
*new Honeywell Galaxy security panel I/O Server
  *new SD3 HEPHAIS fire panels I/O Server
+
*new SD3 HEPHAIS fire panels I/O Server
  *new GKBus I/O Server
+
*new GKBus I/O Server
  *new MODBUS SERVER I/O Server with MODBUS TCP/IP support
+
*new MODBUS SERVER I/O Server with MODBUS TCP/IP support
  *new Arteco Everywhere I/O Server
+
*new Arteco Everywhere I/O Server
  *the Modbus I/O Server now supports the RTU protocol
+
*the Modbus I/O Server now supports the RTU protocol
  *MyHome I/O Server: added support for the L4686SDK gateway
+
*MyHome I/O Server: added support for the L4686SDK gateway
  *GSM I/O Server:
+
*GSM I/O Server:
  *improved AT commands compatibility
+
**improved AT commands compatibility
  *added PUK-unlock functionality
+
**added PUK-unlock functionality
  *HWG MONITOR I/O Server:
+
*HWG MONITOR I/O Server:
  *new ID.<sensorname>.units = <value> data point
+
**new ID.<sensorname>.units = <value> data point
  *new ID.model = <value> data point
+
**new ID.model = <value> data point
  *System Monitor I/O Server:
+
*System Monitor I/O Server:
  *an error event is raised when the server catches an I/O error when saving camera images in the motion directory
+
**an error event is raised when the server catches an I/O error when saving camera images in the motion directory
  *the Paradox EVO driver is now an I/O Server
+
*the Paradox EVO driver is now an I/O Server
  *new option userlogs. Used to create (userlist) clickable logs to easily control (camera) and (camerapanel) objects for playback
+
**new option userlogs. Used to create (userlist) clickable logs to easily control (camera) and (camerapanel) objects for playback
  *the Bentel KYO320 driver is now an I/O Server
+
*the Bentel KYO320 driver is now an I/O Server
  *new option userlogs. Used to create (userlist) clickable logs to easily control (camera) and (camerapanel) objects for playback
+
**new option userlogs. Used to create (userlist) clickable logs to easily control (camera) and (camerapanel) objects for playback
  *Tecnoalarm TECNO OUT:
+
*Tecnoalarm TECNO OUT:
  *added support for TP8-88
+
**added support for TP8-88
  *the Tecnoalarm TECNO OUT driver is now an I/O Server
+
**the Tecnoalarm TECNO OUT driver is now an I/O Server
  *new option persistentconnection = <true|false>. If true (default is false) the I/O Server will not periodically disconnect and reconnect (periodic disconnection is used to avoid performance degradation on some firmware versions)
+
**new option persistentconnection = <true|false>. If true (default is false) the I/O Server will not periodically disconnect and reconnect (periodic disconnection is used to avoid performance degradation on some firmware versions)
  *new option userlogs. Used to create (userlist) clickable logs to easily control (camera) and (camerapanel) objects for playback
+
**new option userlogs. Used to create (userlist) clickable logs to easily control (camera) and (camerapanel) objects for playback
  *RayControl I/O Server: 
+
*RayControl I/O Server: 
  *improved communication errors handling
+
**improved communication errors handling
  *new readinterval option (defaults to 25 msec.)
+
**new readinterval option (defaults to 25 msec.)
  *new data points: sN.setpoint.winter.max sN.setpoint.winter.min sN.setpoint.summer.max sN.setpoint.summer.min zN.lock
+
**new data points: sN.setpoint.winter.max sN.setpoint.winter.min sN.setpoint.summer.max sN.setpoint.summer.min zN.lock
  *KNX I/O Server: 
+
*KNX I/O Server: 
  *added "read" option for KNX data points to disable read requests from the driver
+
**added "read" option for KNX data points to disable read requests from the driver
  *added "framedelay" option to set the delay between each frame sent to the KNX bus
+
**added "framedelay" option to set the delay between each frame sent to the KNX bus
  *BACnet I/O Server:
+
*BACnet I/O Server:
  *added support for the Relinquish_Default property
+
**added support for the Relinquish_Default property
  *DOMINO I/O Server: 
+
*DOMINO I/O Server: 
  *(temp) object: program mode improved
+
**(temp) object: program mode improved
  *SIP I/O Server: 
+
*SIP I/O Server: 
  *improved performance of the SSH connection to remote servers
+
**improved performance of the SSH connection to remote servers
  *support of password-based authentication
+
**support of password-based authentication
  *hsyco.ini: 
+
*hsyco.ini: 
  *LogMaxAge = N parameter *delete log files older than N days
+
**LogMaxAge = N parameter *delete log files older than N days
  *names are now case-insensitive
+
**names are now case-insensitive
  *new optional parameter DatabaseBackup (defaults to false). When true, an hot backup of the core database is automatically executed on a daily basis, saving data in the data_backup directory
+
**new optional parameter DatabaseBackup (defaults to false). When true, an hot backup of the core database is automatically executed on a daily basis, saving data in the data_backup directory
  *new optional parameter StartupDelay=<sec>
+
**new optional parameter StartupDelay=<sec>
  *new optional parameter ExceptionWatchdog=<N> (defaults to 5). After N uncaught exceptions the HSYCO server is killed and restarted.
+
**new optional parameter ExceptionWatchdog=<N> (defaults to 5). After N uncaught exceptions the HSYCO server is killed and restarted. Set to 0 to disable the exception watchdog
  Set to 0 to disable the exception watchdog
+
**new optional parameter securityLogDailyFiles=<true|false> (defaults to false). When true, the security log is written in daily files named MMDD-security.log
  *new optional parameter securityLogDailyFiles=<true|false> (defaults to false). When true, the security log is written in daily files named MMDD-security.log
+
**HTTPServerThreads default changed to 256
  *HTTPServerThreads default changed to 256
+
**the # character prefix can be used to disable an id in the following lists: dmxservers, ioservers, cameras, timers, dataloggers, locationbases, commports, slimplayers, irtrans
  *the # character prefix can be used to disable an id in the following lists: dmxservers, ioservers, cameras, timers, dataloggers, locationbases, commports, slimplayers, irtrans
+
**new I/O Servers optional parameter ioServersShutdownInactive.ID=<true|false>
  *new I/O Servers optional parameter ioServersShutdownInactive.ID=<true|false>
+
**comm ports: new optional timeout parameter for local serial ports: CommPort.ID.Params = speed,bits,stop,parity,flow[,timeout] (defaults to 2 sec.)
  *comm ports: new optional timeout parameter for local serial ports: CommPort.ID.Params = speed,bits,stop,parity,flow[,timeout] (defaults to 2 sec.)
+
**new eventsLoadTimeout optional parameter
  *new eventsLoadTimeout optional parameter
+
*support for application plugins:
  *support for application plugins:
+
**multiple, dynamic loaded Java user classes can be created in the plugins directory
  *multiple, dynamic loaded Java user classes can be created in the plugins directory
+
**each plugin directory can have its own www subdirectory with multiple projects
  *each plugin directory can have its own www subdirectory with multiple projects
+
*new Wiring Editor tool
  *new Wiring Editor tool
+
*HSQLDB core SQL engine upgraded to 2.3.0
  *HSQLDB core SQL engine upgraded to 2.3.0
+
*improved UTF-8 support
  *improved UTF-8 support
 
  
 *EVENTS:
+
 == EVENTS ==
  *JavaScript actions and callback functions
+
*JavaScript actions and callback functions
  *new INIT event, triggered at start-up and every time events.txt is modified
+
*new INIT event, triggered at start-up and every time events.txt is modified
  *new DATESET action to set the server's hardware clock
+
*new DATESET action to set the server's hardware clock
  *new CAMERAVIEW event
+
*new CAMERAVIEW event
  *new HTTP event
+
*new HTTP event
  *new ID.unitid.address = bits:<0|1>... syntax to use the Write Multiple Coils function
+
*new ID.unitid.address = bits:<0|1>... syntax to use the Write Multiple Coils function
  *new $SUNAZIMUTH$ and $SUNELEVATION$ built-in variables
+
*new $SUNAZIMUTH$ and $SUNELEVATION$ built-in variables
  *new UISESSIONSET action, used in combination with USER events, allows session-based UI control in EVENTS
+
*new UISESSIONSET action, used in combination with USER events, allows session-based UI control in EVENTS
  *new PAGE project = page event, triggered on every page change or reload
+
*new PAGE project = page event, triggered on every page change or reload
  *new $HAMASTER$ built-in variable, is set to 1 when master mode or HA not configured, or 0 when slave mode
+
*new $HAMASTER$ built-in variable, is set to 1 when master mode or HA not configured, or 0 when slave mode
  *new HAACTIVE persistent event, is true when the server is active (see the high availability features)
+
*new HAACTIVE persistent event, is true when the server is active (see the high availability features)
  *new HAACTIVE = [true | false] action, set to false to force a master to become inactive (has no effect on the slave system)
+
*new HAACTIVE = [true | false] action, set to false to force a master to become inactive (has no effect on the slave system)
  *with counter data loggers, you can use DATALOGGER name = "error" or any other not numeric value to reset the internal delta baseline
+
*with counter data loggers, you can use DATALOGGER name = "error" or any other not numeric value to reset the internal delta baseline
  *when the original value of the variable and the operator's value are both numbers ending with %, the arithmetic operation will retain the % in the result
+
*when the original value of the variable and the operator's value are both numbers ending with %, the arithmetic operation will retain the % in the result
 
 
 
 
 *Java API:
+
 == Java API ==
*new callback and methods for session-based UI control:
+
*new callback and methods for session-based UI control:
*public static String userSubmit(String session, String uid, String name, HashMap<String, String> fields)
+
**public static String userSubmit(String session, String uid, String name, HashMap<String, String> fields)
*public static String userCommand(String session, String uid, String name, String param)
+
**public static String userCommand(String session, String uid, String name, String param)
*public static void uiSet(String session, String id, String attr, String value)
+
**public static void uiSet(String session, String id, String attr, String value)
*public static void uiClear(String session)
+
**public static void uiClear(String session)
*public static String uiGet(String session, String id, String attr)
+
**public static String uiGet(String session, String id, String attr)
*public static void uiClearEvent(String session) called once after the HSYCO deleted session data (due to inactivity or uiClear() called explicitly)
+
**public static void uiClearEvent(String session) called once after the HSYCO deleted session data (due to inactivity or uiClear() called explicitly) when the client restarts updating its state
 when the client restarts updating its state
+
**pageEvent(String address, String session, String userid, String project, String page) called on every page change or reload
*pageEvent(String address, String session, String userid, String project, String page) called on every page change or reload
+
*new varEvent(String name, String value) callback method
*new varEvent(String name, String value) callback method
+
*new haActiveEvent(boolean active) callback method
*new haActiveEvent(boolean active) callback method
+
*new haActive(boolean active) action method, set to false to force a master to become inactive (has no effect on the slave system)
*new haActive(boolean active) action method, set to false to force a master to become inactive (has no effect on the slave system)
+
*new callback method triggered by the MODBUS SERVER I/O Server:
*new callback method triggered by the MODBUS SERVER I/O Server:
+
**byte[] ModbusEvent(InetAddress addr, int unitid, byte[] pdu)
*byte[] ModbusEvent(InetAddress addr, int unitid, byte[] pdu)
+
*new httpCallEvent(String host, boolean secure, String query) callback method
*new httpCallEvent(String host, boolean secure, String query) callback method
+
*new String urlGet(String url, String user, String password) utility method
*new String urlGet(String url, String user, String password) utility method
+
*new urlPost(String url, String contenttype, String data, String user, String password) utility method
*new urlPost(String url, String contenttype, String data, String user, String password) utility method
+
*new method to set the server's hardware clock:
*new method to set the server's hardware clock:
+
**public static boolean dateSet(int year, int month, int day, int hour, int minute, int second)
*public static boolean dateSet(int year, int month, int day, int hour, int minute, int second)
+
*new callback method triggered on cameras' viewing from the Web interface:
  *new callback method triggered on cameras' viewing from the Web interface:
+
**public static void CameraViewEvent(String camera, boolean active)
  *public static void CameraViewEvent(String camera, boolean active)
+
*new writeMultipleCoils(String name, int unit, int address, int coils, byte[] bytes) method
  *new writeMultipleCoils(String name, int unit, int address, int coils, byte[] bytes) method
+
*dataLoggerUpdate(String name, Double value) with counter data loggers can receive a null value to reset the internal delta baseline
  *dataLoggerUpdate(String name, Double value) with counter data loggers can receive a null value to reset the internal delta baseline
 
 
 
 
 
 *GUI Updates:
+
 == GUI Updates ==
  *accessibility support, enabled with uiset project.accessibility = true
+
*accessibility support, enabled with uiset project.accessibility = true
  *support for simplified Chinese
+
*support for simplified Chinese
  *new "scale" web interface option allows client-side scaling of the GUI size
+
*new "scale" web interface option allows client-side scaling of the GUI size
  *the client now works normally even when multiple windows pointing the same HSYCO server are open in the same browser 
+
*the client now works normally even when multiple windows pointing the same HSYCO server are open in the same browser 
  *new (#uiset ...) project directive allows setting default values for UI objects
+
*new (#uiset ...) project directive allows setting default values for UI objects
  *support for project-specific custom.css style files
+
*support for project-specific custom.css style files
  *new (sliderh) and (sliderv) objects
+
*new (sliderh) and (sliderv) objects
  *it is now possible to set an attribute's value for all objects of a specific type, using UISET "(type).attribute" = "value"
+
*it is now possible to set an attribute's value for all objects of a specific type, using UISET "(type).attribute" = "value"
  *(scheduler) object:
+
*(scheduler) object:
  *can have an id and the "list" attribute is now dynamic
+
**can have an id and the "list" attribute is now dynamic
  *new dynamic "panel" attribute
+
**new dynamic "panel" attribute
  *when the width is more than 750px, the user interface changes to a master-detail view
+
**when the width is more than 750px, the user interface changes to a master-detail view
  *improved support of "Add to Home Screen" in iOS 6 and 7
+
*improved support of "Add to Home Screen" in iOS 6 and 7
  *(image), (imagelink) and (userimage) objects: new draw attribute for server-side dynamic graphics
+
*(image), (imagelink) and (userimage) objects: new draw attribute for server-side dynamic graphics
  *(chart) object: add support for line and spline types
+
*(chart) object: add support for line and spline types
  *(datalogger) object:
+
*(datalogger) object:
  *add support for line and spline types
+
**add support for line and spline types
  *data browser mode, toolbar, new UI attributes 
+
**data browser mode, toolbar, new UI attributes 
  *new (paradox) object for the Paradox I/O Server
+
*new (paradox) object for the Paradox I/O Server
  *new (bentel) object for the Bentel I/O Server
+
*new (bentel) object for the Bentel I/O Server
  *new (tecnoalarm) object for the Tecnoalarm I/O Server
+
*new (tecnoalarm) object for the Tecnoalarm I/O Server
*support for client-side custom JavaScript code, with index.js files, including User object to explicitly call the server and trigger USER events
+
*support for client-side custom JavaScript code, with index.js files, including User object to explicitly call the server and trigger USER events
 
 
 *Manager:
+
 == Manager ==
  *copy&paste in Project Editor and File Manager
+
*copy&paste in Project Editor and File Manager
  *multiple files upload, move and delete
+
*multiple files upload, move and delete
  *hsyco.ini configuration manager
+
*hsyco.ini configuration manager
  *integrated system monitor
+
*integrated system monitor
  *integrated wiring editor
+
*integrated wiring editor
  *integrated admin configuration pages (users, password, network and clock)
+
*integrated admin configuration pages (users, password, network and clock)
  *integrated Knx Utility
+
*integrated Knx Utility
  *integrated BACnet Utility
+
*integrated BACnet Utility
  *new status browser
+
*new status browser
  *project style: allows skin modifications
+
*project style: allows skin modifications
  *when using the download root backup function, the hsyco.jar file is not saved in the backup.zip file
+
*when using the download root backup function, the hsyco.jar file is not saved in the backup.zip file
 
 
 
 
 *Bug Fixes:
+
 == Bug Fixes ==
  *improved handling of HTTP and HTTPS connections when the maximum number of threads is exceeded
+
*improved handling of HTTP and HTTPS connections when the maximum number of threads is exceeded
  *the UserTimerEvent() callback method was called twice when triggered by a scheduler
+
*the UserTimerEvent() callback method was called twice when triggered by a scheduler
  *network configuration admin function didn't work on latest Upstart/Debian versions
+
*network configuration admin function didn't work on latest Upstart/Debian versions
  *improved GUI behavior when accessing a project that is not authorized for a user
+
*improved GUI behavior when accessing a project that is not authorized for a user
  *High Availability bug fixes and stability improvements
+
*High Availability bug fixes and stability improvements
  *fixed a bug that could temporarily stalled the Domino and Contatto I/O Servers when the system clock was reset to an earlier time
+
*fixed a bug that could temporarily stalled the Domino and Contatto I/O Servers when the system clock was reset to an earlier time
  *Guardall I/O Server: fixed a bug occurring when an access peripheral is used
+
*Guardall I/O Server: fixed a bug occurring when an access peripheral is used

Revision as of 09:37, 20 March 2014

 == Server Updates ==

  • new Arduino  I/O Server
  • new SSH  I/O Server
  • new Honeywell NOTIFIER fire panels I/O Server
  • new Honeywell Galaxy security panel I/O Server
  • new SD3 HEPHAIS fire panels I/O Server
  • new GKBus I/O Server
  • new MODBUS SERVER I/O Server with MODBUS TCP/IP support
  • new Arteco Everywhere I/O Server
  • the Modbus I/O Server now supports the RTU protocol
  • MyHome I/O Server: added support for the L4686SDK gateway
  • GSM I/O Server:
    • improved AT commands compatibility
    • added PUK-unlock functionality
  • HWG MONITOR I/O Server:
    • new ID.<sensorname>.units = <value> data point
    • new ID.model = <value> data point
  • System Monitor I/O Server:
    • an error event is raised when the server catches an I/O error when saving camera images in the motion directory
  • the Paradox EVO driver is now an I/O Server
    • new option userlogs. Used to create (userlist) clickable logs to easily control (camera) and (camerapanel) objects for playback
  • the Bentel KYO320 driver is now an I/O Server
    • new option userlogs. Used to create (userlist) clickable logs to easily control (camera) and (camerapanel) objects for playback
  • Tecnoalarm TECNO OUT:
    • added support for TP8-88
    • the Tecnoalarm TECNO OUT driver is now an I/O Server
    • new option persistentconnection = <true|false>. If true (default is false) the I/O Server will not periodically disconnect and reconnect (periodic disconnection is used to avoid performance degradation on some firmware versions)
    • new option userlogs. Used to create (userlist) clickable logs to easily control (camera) and (camerapanel) objects for playback
  • RayControl I/O Server: 
    • improved communication errors handling
    • new readinterval option (defaults to 25 msec.)
    • new data points: sN.setpoint.winter.max sN.setpoint.winter.min sN.setpoint.summer.max sN.setpoint.summer.min zN.lock
  • KNX I/O Server: 
    • added "read" option for KNX data points to disable read requests from the driver
    • added "framedelay" option to set the delay between each frame sent to the KNX bus
  • BACnet I/O Server:
    • added support for the Relinquish_Default property
  • DOMINO I/O Server: 
    • (temp) object: program mode improved
  • SIP I/O Server: 
    • improved performance of the SSH connection to remote servers
    • support of password-based authentication
  • hsyco.ini: 
    • LogMaxAge = N parameter *delete log files older than N days
    • names are now case-insensitive
    • new optional parameter DatabaseBackup (defaults to false). When true, an hot backup of the core database is automatically executed on a daily basis, saving data in the data_backup directory
    • new optional parameter StartupDelay=<sec>
    • new optional parameter ExceptionWatchdog=<N> (defaults to 5). After N uncaught exceptions the HSYCO server is killed and restarted. Set to 0 to disable the exception watchdog
    • new optional parameter securityLogDailyFiles=<true|false> (defaults to false). When true, the security log is written in daily files named MMDD-security.log
    • HTTPServerThreads default changed to 256
    • the # character prefix can be used to disable an id in the following lists: dmxservers, ioservers, cameras, timers, dataloggers, locationbases, commports, slimplayers, irtrans
    • new I/O Servers optional parameter ioServersShutdownInactive.ID=<true|false>
    • comm ports: new optional timeout parameter for local serial ports: CommPort.ID.Params = speed,bits,stop,parity,flow[,timeout] (defaults to 2 sec.)
    • new eventsLoadTimeout optional parameter
  • support for application plugins:
    • multiple, dynamic loaded Java user classes can be created in the plugins directory
    • each plugin directory can have its own www subdirectory with multiple projects
  • new Wiring Editor tool
  • HSQLDB core SQL engine upgraded to 2.3.0
  • improved UTF-8 support

 == EVENTS ==

  • JavaScript actions and callback functions
  • new INIT event, triggered at start-up and every time events.txt is modified
  • new DATESET action to set the server's hardware clock
  • new CAMERAVIEW event
  • new HTTP event
  • new ID.unitid.address = bits:<0|1>... syntax to use the Write Multiple Coils function
  • new $SUNAZIMUTH$ and $SUNELEVATION$ built-in variables
  • new UISESSIONSET action, used in combination with USER events, allows session-based UI control in EVENTS
  • new PAGE project = page event, triggered on every page change or reload
  • new $HAMASTER$ built-in variable, is set to 1 when master mode or HA not configured, or 0 when slave mode
  • new HAACTIVE persistent event, is true when the server is active (see the high availability features)
  • new HAACTIVE = [true | false] action, set to false to force a master to become inactive (has no effect on the slave system)
  • with counter data loggers, you can use DATALOGGER name = "error" or any other not numeric value to reset the internal delta baseline
  • when the original value of the variable and the operator's value are both numbers ending with %, the arithmetic operation will retain the % in the result

   == Java API ==

  • new callback and methods for session-based UI control:
    • public static String userSubmit(String session, String uid, String name, HashMap<String, String> fields)
    • public static String userCommand(String session, String uid, String name, String param)
    • public static void uiSet(String session, String id, String attr, String value)
    • public static void uiClear(String session)
    • public static String uiGet(String session, String id, String attr)
    • public static void uiClearEvent(String session) called once after the HSYCO deleted session data (due to inactivity or uiClear() called explicitly) when the client restarts updating its state
    • pageEvent(String address, String session, String userid, String project, String page) called on every page change or reload
  • new varEvent(String name, String value) callback method
  • new haActiveEvent(boolean active) callback method
  • new haActive(boolean active) action method, set to false to force a master to become inactive (has no effect on the slave system)
  • new callback method triggered by the MODBUS SERVER I/O Server:
    • byte[] ModbusEvent(InetAddress addr, int unitid, byte[] pdu)
  • new httpCallEvent(String host, boolean secure, String query) callback method
  • new String urlGet(String url, String user, String password) utility method
  • new urlPost(String url, String contenttype, String data, String user, String password) utility method
  • new method to set the server's hardware clock:
    • public static boolean dateSet(int year, int month, int day, int hour, int minute, int second)
  • new callback method triggered on cameras' viewing from the Web interface:
    • public static void CameraViewEvent(String camera, boolean active)
  • new writeMultipleCoils(String name, int unit, int address, int coils, byte[] bytes) method
  • dataLoggerUpdate(String name, Double value) with counter data loggers can receive a null value to reset the internal delta baseline

   == GUI Updates ==

  • accessibility support, enabled with uiset project.accessibility = true
  • support for simplified Chinese
  • new "scale" web interface option allows client-side scaling of the GUI size
  • the client now works normally even when multiple windows pointing the same HSYCO server are open in the same browser 
  • new (#uiset ...) project directive allows setting default values for UI objects
  • support for project-specific custom.css style files
  • new (sliderh) and (sliderv) objects
  • it is now possible to set an attribute's value for all objects of a specific type, using UISET "(type).attribute" = "value"
  • (scheduler) object:
    • can have an id and the "list" attribute is now dynamic
    • new dynamic "panel" attribute
    • when the width is more than 750px, the user interface changes to a master-detail view
  • improved support of "Add to Home Screen" in iOS 6 and 7
  • (image), (imagelink) and (userimage) objects: new draw attribute for server-side dynamic graphics
  • (chart) object: add support for line and spline types
  • (datalogger) object:
    • add support for line and spline types
    • data browser mode, toolbar, new UI attributes 
  • new (paradox) object for the Paradox I/O Server
  • new (bentel) object for the Bentel I/O Server
  • new (tecnoalarm) object for the Tecnoalarm I/O Server
  • support for client-side custom JavaScript code, with index.js files, including User object to explicitly call the server and trigger USER events

 == Manager ==

  • copy&paste in Project Editor and File Manager
  • multiple files upload, move and delete
  • hsyco.ini configuration manager
  • integrated system monitor
  • integrated wiring editor
  • integrated admin configuration pages (users, password, network and clock)
  • integrated Knx Utility
  • integrated BACnet Utility
  • new status browser
  • project style: allows skin modifications
  • when using the download root backup function, the hsyco.jar file is not saved in the backup.zip file

   == Bug Fixes ==

  • improved handling of HTTP and HTTPS connections when the maximum number of threads is exceeded
  • the UserTimerEvent() callback method was called twice when triggered by a scheduler
  • network configuration admin function didn't work on latest Upstart/Debian versions
  • improved GUI behavior when accessing a project that is not authorized for a user
  • High Availability bug fixes and stability improvements
  • fixed a bug that could temporarily stalled the Domino and Contatto I/O Servers when the system clock was reset to an earlier time
  • Guardall I/O Server: fixed a bug occurring when an access peripheral is used