Difference between revisions of "HSYCO Remote"

From HSYCO
Jump to navigation Jump to search
 
(6 intermediate revisions by the same user not shown)
Line 17: Line 17:
  
 
=== Communication ===
 
=== Communication ===
*'''IP Address''': public IP address of the remote HSYCO server
+
*'''IP Address''': public IP address or server name of the remote HSYCO server
 
*'''IP Port''': HTTPS port of the remote HSYCO server, leave blank for default port 443.
 
*'''IP Port''': HTTPS port of the remote HSYCO server, leave blank for default port 443.
  
Line 133: Line 133:
 
== System clock synchronisation  ==
 
== System clock synchronisation  ==
  
 +
If the remote HSYCO server has a SYSTEM I/O Server defined, a read-only ".time.delta" data point becomes available, reporting the difference in seconds between the remote and local clocks. A positive value indicates that the remote clock is ahead of the local one.
  
 +
The remote ".time" data point can be written from the local HSYCO server, if remote control is enabled on the remote server, to update the remote clock.
 +
 +
The remote HSYCO server's system clock can be automatically synchronised to the local clock whenever the time difference between the two clocks reaches the preset drift limit. The accuracy of the synchronisation depends on the network performance and other factors, and it may be impossible to achieve a time accuracy better than a few seconds.
 +
 +
The following conditions must all be met to enable the automatic synchronisation:
 +
*the remote HSYCO server must have a SYSTEM I/O Server defined
 +
*the "RemoteServerControl" configuration option on the remore HSYCO server must be set to true
 +
*the "clocksync" option must be set to true.
  
 
== Release Notes ==
 
== Release Notes ==
 +
 +
 +
=== 3.8.0 ===
 +
*fixed a bug that could prevent the systemtopo.txt file from being updated
 +
 +
=== 3.7.0 ===
 +
*data points with the '*' character in the value string couldn't be written to the remote server
 +
*the I/O Server could time out during initialization on a very large local database
  
 
=== 3.6.0 ===
 
=== 3.6.0 ===

Latest revision as of 16:45, 28 February 2023

The HSYCO Remote I/O Server is a powerful and secure server-to-server communication system that allows an HSYCO server read and write access to all the I/O data points and GUI variables of other remote HSYCO servers. It also supports near real-time replication of data loggers data from remote servers.

Using the HSYCO Remote I/O Server you can build a multi-level architecture with one or more HSYCO servers acting as concentrators for data points managed by other HSYCO servers.

The HSYCO Remote I/O Server uses a secure HTTPS API based on the REST (Representational state transfer) model and the JSON data format. A subset of this API can be used by third-party HTTP client applications. Read the HSYCO Remote API specification for additional details.

Communication

The I/O Server communicates with the remote HSYCO server by establishing encrypted HTTPS connections to the HTTPS port of that server. The network infrastructure should be configured to allow these connections. The bandwidth and latency requirements depend on the specific application and the amount of data points on the remote HSYCO server.

Local HSYCO Configuration

Add an HSYCO I/O Server in the I/O Servers section of the Settings and set its parameters:

Communication

  • IP Address: public IP address or server name of the remote HSYCO server
  • IP Port: HTTPS port of the remote HSYCO server, leave blank for default port 443.

Authentication

  • Password: must correspond to the RemoteServerPassword parameter set in the remote HSYCO's settings (see below).

High Availability

  • Shutdown when inactive: defaults to false.

Options

ID Default Values Description
discovery true true automatically creates the list of remote devices and individual data points in the systemtopo.txt file
false discovery is disabled
startupevents false true generate IO events also during the driver’s start-up phase
false start generating events only after HSYCO is aligned with the current status of the system
io true true I/O data points of the remote HSYCO server are replicated on this server
false I/O data points of the remote HSYCO server are not used
ui false true Web GUI elements of the remote HSYCO server are replicated on this server
false Web GUI elements of the remote HSYCO server are not used
clocksync false true automatically synchronises the remote system's clock to the local clock when the clock delta reaches the drift limit
false remote system's clock is not synchronised automatically
drift 4 0...9999 used in combination with a remote SYSTEM I/O Server, sets the maximum clock drift between the local and the remote clocks, in seconds
dataloggers semicolon (;)
separated list
of data logger IDs
semicolon separated list of remote data logger IDs that should be replicated on this HSYCO server
dataloggersnameprefix true true the ID of each local data logger is <this I/O server name>.<remote data logger ID>
false the ID of each local data logger is exactly the same as the corresponding remote data logger
dataloggerspollinterval 60 positive integer the remote data logger data minimum refresh interval, in seconds

Remote HSYCO Configuration

In the system settings of the remote HSYCO server the following parameters must be set:

  • RemoteServerPassword: must correspond to the password set on the HSYCO I/O server's parameters on the local server
  • RemoteServerAddress = IP address of the local HSYCO server
  • RemoteServerControl = set to "true" to allow the local server to modify the datapoints values of this HSYCO server, "false" otherwise.

Datapoints

On the local HSYCO server, all datapoints of the remote server will be mapped with the original datapoint names, prefixed with the I/O server name and a separation point. For example, if the I/O server name is “remote”, a remote datapoint “dummy.light.1” will be mapped as “remote.dummy.light.1” on the local server.

User Interface

On the local HSYCO server, all GUI elements of the remote server will be mapped with the original names, prefixed with the I/O server name and a separation point. For example, if the I/O server name is “remote”, a remote GUI element “status.text” will be mapped as “remote.status.text” on the local server.

Data Loggers

The HSYCO Remote I/O Server can also be used to create local copies of data loggers from the remote HSYCO Server.

The data replication occurs at a rate defined with the dataloggerspollinterval option, which defaults to 60 seconds. The consolidation and data expiration times of the locally mirrored data loggers are independent from the remote data loggers. You can have a relatively short retention period on the remote server, and a very long period on the replicating server. You should set the retention and consolidation times on the remote server long enough to ensure no data is deleted before replication has occurred.

The local, replicated data loggers must also be defined locally, as you would define any normal data logger. You can choose to have the same IDs on both the local and remote server, or have the remote names replicated locally with the prefix of the HSYCO Remote I/O server.

System clock synchronisation

If the remote HSYCO server has a SYSTEM I/O Server defined, a read-only ".time.delta" data point becomes available, reporting the difference in seconds between the remote and local clocks. A positive value indicates that the remote clock is ahead of the local one.

The remote ".time" data point can be written from the local HSYCO server, if remote control is enabled on the remote server, to update the remote clock.

The remote HSYCO server's system clock can be automatically synchronised to the local clock whenever the time difference between the two clocks reaches the preset drift limit. The accuracy of the synchronisation depends on the network performance and other factors, and it may be impossible to achieve a time accuracy better than a few seconds.

The following conditions must all be met to enable the automatic synchronisation:

  • the remote HSYCO server must have a SYSTEM I/O Server defined
  • the "RemoteServerControl" configuration option on the remore HSYCO server must be set to true
  • the "clocksync" option must be set to true.

Release Notes

3.8.0

  • fixed a bug that could prevent the systemtopo.txt file from being updated

3.7.0

  • data points with the '*' character in the value string couldn't be written to the remote server
  • the I/O Server could time out during initialization on a very large local database

3.6.0

  • added support for data loggers replication
  • new "clocksync" option to automatically sync the clock of the remote server with the local one

3.2.0

  • added support of the SYSTEM I/O Server on remote systems for clock drift check
  • the RemoteServerAddress option can now be set to * to allow any remote IP address
  • new RemoteServerIOFilter and RemoteServerUIFilter options to filter the status data returned to the remote server

3.1.0

  • initial release