Skip to main content

4.0.0

Server Updates

New I/O Servers

BACNET Server I/O Server

  • New I/O Server for BACnet protocol

DIRIGERA I/O Server

  • New I/O Server for IKEA DIRIGERA HUB

SHELLY I/O Server

  • New I/O Server for Shelly gen 2, 3 and 4 devices

System I/O Server

  • New ha.slave.connection datapoint, only available when HSYCO is configured as High Availability master

HSYCO License

If HSYCO starts with an incorrect or missing license, callbacks (including plugins) and other essential services will keep working for up to 24 hours. I/O Servers and cameras will not start.

Data Loggers

Improved performance with very large data sets.

HTTPS Server

  • Support for ZeroSSL certificate authority API for automatic certificate creation and renewal
  • New configuration options:
    • HTTPSSLCertificationAuthority
    • HTTPSSLOrganization
    • HTTPSSLCountry
    • HTTPSSLAPIKey
    • HTTPSSLValidationMethod
    • HTTPSSLValidationEmail
    • HTTPSSLValidityDays
    • HTTPSSLAdvanceRenewDays

System Configuration

  • New httpLog configuration parameter in hsyco.ini
  • The system password maximum length is now 32 characters (previously 16)
  • Supported special characters: !@#$%^&*()-_=+[{]}|;:,<.>/?\\

High Availability

  • At startup, HSYCO master becomes active much sooner
  • When haDisableFilesSync is false and haClientSessionsFailover is true, HSYCO slave will copy the SSL certificate (hsyco.keys) from the master
  • HSYCO slave will not request new certificates from the certification authority if it is not active

HSQLDB Engine

Upgraded to version 2.7.4 (JDK 1.8 compatible)

Events

New NLP Functionality

  • New NLP area = text command

Java API

New Database Commands

  • databaseGetConnection()
  • databaseExecuteStatement(Connection connection, String sql)

New DataSource Commands

  • dataSourceSQL(String datasourceid, String tablename, String key, Connection database)
  • dataSourceSQL(String session, String datasourceid, String tablename, String key, Connection database)
  • dataSourceOption(String datasourceid, String name, Object value)
  • dataSourceOption(String session, String datasourceid, String name, Object value)
  • dataSourceRefresh(String datasourceid)
  • dataSourceRefresh(String session, String datasourceid)

New DataSource Callbacks

  • dataSourceDelete(String session, String userid, String datasourceid, JSONObject data, boolean before) with support for direct callbacks through @dataSourceDelete annotations
  • dataSourceInsert(String session, String userid, String datasourceid, String[] columns, JSONObject data, boolean before) with support for direct callbacks through @dataSourceInsert annotations
  • dataSourceQuery(String session, String userid, String datasourceid, String[] columns) with support for direct callbacks through @dataSourceQuery annotations
  • dataSourceUpdate(String session, String userid, String datasourceid, String[] columns, JSONObject data, boolean before) with support for direct callbacks through @dataSourceUpdate annotations

Other Commands and Improvements

  • New void nlp(String area, String text) command
  • ioSet(): returns true if the I/O Server command is successfully queued or executed (for synchronous commands), false if the queue is full or command failed for any other reason
  • urlGet() and urlPost() now use the server's returned charset, instead of the default ISO-8859-1, when decoding the response content into the returned String

JavaScript API

Configuration

  • The eventsJavaScriptGlobalScope configuration option now defaults to false

New Database Commands

  • databaseGetConnection()
  • databaseExecuteStatement(connection, sql)

New DataSource Commands

  • dataSourceSQL(datasourceid, tablename, key, database)
  • dataSourceSQL(session, datasourceid, tablename, key, database)
  • dataSourceOption(datasourceid, name, value)
  • dataSourceOption(session, datasourceid, name, value)
  • dataSourceRefresh(datasourceid)
  • dataSourceRefresh(session, datasourceid)

New DataSource Callbacks

  • dataSourceDelete(session, userid, dataSourceId, data, before)
  • dataSourceInsert(session, userid, dataSourceId, columns, data, before)
  • dataSourceQuery(session, userid, dataSourceId, columns)
  • dataSourceUpdate(session, userid, dataSourceId, columns, data, before)

Other Commands and Improvements

  • New nlp(area, text) command
  • ioSet(): returns true if the I/O Server command is successfully queued or executed (for synchronous commands), false if the queue is full or command failed for any other reason
  • userCommand() and userSubmit() callbacks can now return a JSON object, which is automatically converted to a String
  • urlGet() and urlPost() now use the server's returned charset, instead of the default ISO-8859-1, when decoding the response content into the returned String

GUI Updates

User Interface

  • Redesigned user interface
  • New login/password based user authentication, alternative to original PIN/PUK authentication
  • New configuration option: AuthenticationMode (default: pukpref)

Manager

New Utilities

  • New BACnet Server Utility
  • New SHELLY Utility

Redesigned Applications

  • Redesigned Manager Core applications
  • Redesigned Manager Settings
  • Redesigned BACnet Utility
  • Redesigned Modbus Utility
  • Redesigned KNX Utility

Configuration Wizard

  • New initial configuration Wizard, enabled by setting wizard = true in hsyco.ini

Bug Fixes

JavaScript API

  • Fixed: dataLoggerSave() not working when eventsJavaScriptGlobalScope = false
  • Fixed: sendMail() not working when eventsJavaScriptGlobalScope = false