Skip to content
HSYCO Wiki

IonoPi

Iono Pi is a versatile I/O module that combines several digital and analog input lines, power relay outputs and support for standard interfaces, typical of modern PLCs, with the powerful computing core of the Raspberry Pi.

iono Pi

This driver provides support for both a local installation of HSYCO on Iono Pi itself, or a remote Iono Pi unit connected via SSH. In both cases, the Raspberry Pi OS Kernel module for Iono Pi must be installed. The kernel module documentation is available at GitHub and the Iono Pi User Guide.

Add a IONO Pi I/O Server in the I/O Servers section of the Settings and set its parameters:

Note that the IONO Pi I/O Server doesn't count in the I/O servers license total, so you don't need an extra I/O Server license to use IONO Pi with HSYCO.
  • IP Address: the IP address assigned to Iono Pi, leave blank for a local installation;
  • Port: SSH port configured on Iono Pi (defaults to 22), leave blank for a local installation.
  • User: username to access the remote Iono Pi via SSH, leave blank for a local installation
  • Password: password to access the remote Iono Pi via SSH, leave blank for a local installation.
  • Shutdown when inactive: defaults to false.
ID Default Values Description
startupevents true 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
compatibilitymode false true use the legacy datapoint naming scheme, maintaining compatibility with older HSYCO configurations (until version 3.9). See the [#compatibility-mode Compatibility Mode] section below for more details
false use the new datapoint naming format following the Kernel Module file system
wiegandbits false true the wiegand datapoints report bits count and data value
false the wiegand datapoints report the data value only
pollinterval 200 <ms> interval, in milliseconds, between subsequent readings of all values defined in the Kernel Module
analogminvariation 100 <mV> minimum voltage variation (in millivolts) to be measured on analog inputs, after an event has been triggered, for a new one to occur. Defaults to 100
digitalinputs true true enable digital inputs monitoring
false disable digital inputs monitoring
digitaldebounce 30 <ms> time, in milliseconds, required for digital inputs to maintain a value, after a variation, before an event is triggered
wiegand1 false true enable and monitor Wiegand interface 1
false disable Wiegand interface 1
wiegand2 false true enable and monitor Wiegand interface 2
false disable Wiegand interface 2
The pollinterval, analogminvariation, digitalinputs, digitaldebounce, wiegand1 and wiegand2 options only work on local installations.

The Iono Pi implements all datapoints provided by the underlying Iono Pi kernel module. Refer to the documentation available at Iono Pi Kernel Module.

Each readable file name exposed by the kernel module under the /sys/devices/virtual/ionopi/ sub-directories appears as a data point with id <subdir>.<file>. For example, as the LED's status file is /sys/devices/virtual/ionopi/led/status, the corresponding data point is "led.status".

Command files that are marked as write only in the documentation (W), are not shown as visible data points in HSYCO, but can be used in the IO events action or ioSet() methods to send a command.

For example, if "ionopi" is the id assigned to the Iono Pi I/O Server, then:

TIME : IO ionopi.led.blink = 5000

will make the led stay on for 5 second (5000 ms).

Note that ionopi.led.blink is not visible in the Status Browser and doesn't generate events, because it is write only, and only the ionopi.led.status datapoint will be visible, with a value of 0 if the LED is off, or 1 if on.

ID Value R/W Description
connection online R connection established
offline R HSYCO can't connect to the device
clock yyyy-mm-dd hh:mm:ss R the Iono clock current time
read W read the Iono clock, and the delta with HSYCO’s time
sync W set the Iono clock to HSYCO’s current time
clock.delta integer number R the delta time in seconds between the Iono and HSYCO clocks. A positive number means that the Iono clock is ahead of HSYCO
The clock and clock.delta datapoints are only available on remote installations.

In Compatibility Mode, the driver exposes datapoints using the legacy naming scheme from earlier HSYCO Iono Pi driver versions. This ensures older installations continue to work without changes, preserving existing datapoint names, scripts, and event logic exactly as before.

Below is the list of datapoints available in Compatibility Mode:

ID Value R/W Description
led 0 R LED L1 is off
W turn LED L1 off
1 R LED L1 is on
W turn LED L1 on
o<1-4> 0 R relay <1-4> is off
W switch off relay <1-4>
1 R relay <1-4> is on
W switch on relay <1-4>
oc<1-3> 0 R open collector output <1-3> is off (not grounded)
W switch off open collector output <1-3>
1 R open collector output <1-3> is on (grounded)
W switch on open collector output <1-3>
di<1-6> 0 R digital input <1-6> is low
1 R digital input <1-6> is high
ai<1-4> <val> R analog input <1-4> is reading a voltage equal to <val> (in Volts)
wiegand.<1-2> <val> R if option "wiegandbits" set to false. Value as an unsigned integer in base 16 (hex) read on the specified Wiegand interface (e.g. "2c646a2")
<bits>/<val> R if option "wiegandbits" set to true. Number of bits and value (hex) read on the specified Wiegand interface (e.g. "26/2c646a2")
onewire.bus.<id> <val> R 1-Wire device <id> value
clock read W read the Iono clock
<timestamp>.<timezone> R <timestamp> is Epoch time (in milliseconds), <timezone> is the time zone set on Iono Pi module (e.g. "Europe/Rome")
<timestamp>.<timezone> W manually set date/time and time zone on Iono Pi module. <timestamp> is Epoch time (in milliseconds), <timezone> is the time zone you want to set (e.g. "Europe/Rome")
<timestamp> W manually set date/time on Iono Pi module. <timestamp> is Epoch time (in milliseconds)
ID Value R/W Description
connection online R connection established
offline R HSYCO can't connect to the device
driverstate init R Driver is initializing
running R Driver is running (normal state)
quit R Driver quit

To control a digital output (O1 ... O4, OC1 ... OC3, LED), add a button or a buttonicon object to your project page and set its address field to the corresponding datapoint:

IonoPi UI Button.png

  • now based on Iono Pi kernel module, with redesigned datapoints map
  • "onewirebus" options removed
  • "readinterval" renamed to "pollinterval"
  • "compatibilitymode" option added, defaults to true
  • new "clock" datapoint
  • added support for iono pi driver v1.3.0 and "wiegandbits" option
  • added support for local Iono Pi direct access
  • initial release

Iono Pi is a registered trademark of Sfera Labs Srl