Release Notes 3.3.0
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