Difference between revisions of "IonoPi"

From HSYCO
Jump to navigation Jump to search
(Created page with "[http://www.sferalabs.cc/iono/ Iono] is a general-purpose, professional input/output module based on a standard Arduino microcontroller. File:Iono_ethernet.png|200px|thumb|...")
 
 
(36 intermediate revisions by 3 users not shown)
Line 1: Line 1:
[http://www.sferalabs.cc/iono/ Iono] is a general-purpose, professional input/output module based on a standard Arduino microcontroller.
+
[http://www.sferalabs.cc/iono-pi/ 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.
  
[[File:Iono_ethernet.png|200px|thumb|iono Ethernet]]
+
[[File:iono_pi_module_board.png|200px|thumb|iono Pi]]
  
This driver provides support for iono Ethernet employing the HTTP API provided by the [https://github.com/sfera-labs/iono/wiki/IonoWeb IonoWeb library].
+
This driver provides support for the integration of a remote Iono Pi (pre-installed with the [http://github.com/sfera-labs/sfera Sfera Framework] and the [http://github.com/sfera-labs/sfera-driver-iono-pi Sfera Driver] for Iono Pi) as well as a local installation of HSYCO on Iono Pi itself.
  
The default sketch installed in iono Ethernet exposes this API.
 
  
 
[[Category:I/O Server]]
 
[[Category:I/O Server]]
  
 
== HSYCO Configuration ==
 
== HSYCO Configuration ==
Add a IONO I/O Server in the [[Settings#I/O Servers|I/O Servers section of the Settings]] and set its parameters:
+
Add a IONO Pi I/O Server in the [[Settings#I/O Servers|I/O Servers section of the Settings]] and set its parameters:
 +
 
 +
{{note|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.}}
  
 
=== Communication ===
 
=== Communication ===
*'''IP Address''': the IP address assigned to iono;
+
*'''IP Address''': the IP address assigned to Iono Pi, leave blank for a local installation;
 +
*'''Port''': TCP port configured on Iono Pi, leave blank for a local installation.
  
 
=== High Availability ===
 
=== High Availability ===
*'''Shutdown when inactive''': defaults to true.
+
*'''Shutdown when inactive''': defaults to false.
  
 
=== Options ===
 
=== Options ===
Line 38: Line 40:
 
|-
 
|-
  
|rowspan="2"|pollinterval
+
|rowspan="2"|wiegandbits
|rowspan="2"|0
+
|rowspan="2"|false
|0
+
|true
|the driver will use the push notifications sent by iono to monitor its changes
+
|the wiegand datapoints report bits count and data value
 
|-
 
|-
|int > 0
+
|false
|the driver will poll iono's state with the specified time interval (in seconds). Push notifications won't be enabled
+
|the wiegand datapoints report the data value only
  
 
|-
 
|-
  
|input1
+
|rowspan="2"|https
|rowspan="4"|digital
+
|rowspan="2"|false
|rowspan="2"|digital
+
|true
|rowspan="2"|the specified multi-mode input will be read as digital signal (DI<n>)
+
|use HTTPS to communicate with a remote Iono Pi
 
|-
 
|-
|input2
+
|false
 +
|use HTTP to communicate with a remote Iono Pi
 +
 
 
|-
 
|-
|input3
+
 
|voltage
+
|readinterval
|the specified multi-mode input will be read as analog voltage (AV<n>)
+
|2000
 +
|<ms>
 +
|For local installation only. Interval, in milliseconds, between subsequent readings of analog inputs and 1-Wire devices. If the value is set below 2000 (i.e. less than 2 seconds) the specified interval is only applied to analog inputs; 1-Wire devices will be polled with a 2 seconds interval. Set to 0 to disable analog inputs polling
 +
 
 
|-
 
|-
|input4
 
|current
 
|the specified multi-mode input will be read as analog current (AI<n>)
 
  
 +
|analogminvariation
 +
|100
 +
|<mV>
 +
|For local installation only. 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 0
 +
 +
|-
 +
 +
|rowspan="2"|digitalinputs
 +
|rowspan="2"|true
 +
|true
 +
|For local installation only. Enable digital inputs monitoring
 
|-
 
|-
 +
|false
 +
|For local installation only. Disable digital inputs monitoring
  
|stabletime
+
|-
|100
+
 
|int > 0
+
|digitaldebounce
|number of milliseconds an input must be stable before a push notification is sent by iono to HSYCO
+
|30
 +
|<ms>
 +
|For local installation only. Time, in milliseconds, required for digital inputs to maintain a value, after a variation, before an event is triggered
 +
 
 +
|-
  
 +
|rowspan="2"|wiegand1
 +
|rowspan="2"|false
 +
|true
 +
|For local installation only. Enable and monitor Wiegand interface 1
 
|-
 
|-
 +
|false
 +
|For local installation only. Disable Wiegand interface 1
  
|minvariation
+
|-
|0.1
 
|float > 0
 
|minimun value variation (for analog inputs) to trigger a push notification
 
  
 +
|rowspan="2"|wiegand2
 +
|rowspan="2"|false
 +
|true
 +
|For local installation only. Enable and monitor Wiegand interface 2
 
|-
 
|-
 +
|false
 +
|For local installation only. Disable Wiegand interface 2
 +
 +
|-
  
|subscribehost
+
|rowspan="3"|onewirebus
 +
|rowspan="3"|
 +
|true
 +
|For local installation only. Enable reading of the 1-Wire bus devices connected on TTL1
 +
|-
 +
|false
 +
|For local installation only. Disable reading of the 1-Wire bus devices connected on TTL1
 +
|-
 
|
 
|
|<host_name>
+
|If not specified the monitoring will be enabled if the 1-Wire interface is enabled in the Raspberry Pi OS configuration
|hostname or IP address to be used by iono to send push notifications. Leave blank to let the driver discover the local address
 
  
 
|}
 
|}
  
 
== Datapoints ==
 
== Datapoints ==
 
For inputs 1 to 4, depending on the 'input1' ... 'input4' options, only the corresponding datapoint will be created, i.e. di<n> (if digital), av<n> (if voltage) or ai<n> (if curent).
 
  
 
{| class="wikitable"
 
{| class="wikitable"
Line 109: Line 145:
 
|-
 
|-
  
|rowspan="4" |do<n>
+
|rowspan="3" |driverstate
 +
|init
 +
|R
 +
|Sfera driver is initializing
 +
|-
 +
|quit
 +
|R
 +
|Sfera driver quit
 +
|-
 +
|running
 +
|R
 +
|Sfera driver is running (normal state)
 +
 
 +
|-
 +
 
 +
|rowspan="4" |led
 
|rowspan="2" |0
 
|rowspan="2" |0
 
|R
 
|R
|relay <n> (digital output) is off
+
|LED L1 is off
 
|-
 
|-
 
|W
 
|W
|switch off relay <n>
+
|turn LED L1 off
 
|-
 
|-
 
|rowspan="2" |1
 
|rowspan="2" |1
 
|R
 
|R
|relay <n> (digital output) is on
+
|LED L1 is on
 
|-
 
|-
 
|W
 
|W
|switch on relay <n>
+
|turn LED L1 on
  
 
|-
 
|-
  
|rowspan="2" |di<n>
+
|rowspan="4" |o<1-4>
 +
|rowspan="2" |0
 +
|R
 +
|relay <1-4> is off
 +
|-
 +
|W
 +
|switch off relay <1-4>
 +
|-
 +
|rowspan="2" |1
 +
|R
 +
|relay <1-4> is on
 +
|-
 +
|W
 +
|switch on relay <1-4>
 +
 
 +
|-
 +
 
 +
|rowspan="4" |oc<1-3>
 +
|rowspan="2" |0
 +
|R
 +
|open collector output <1-3> is off (not grounded)
 +
|-
 +
|W
 +
|switch off open collector output <1-3>
 +
|-
 +
|rowspan="2" |1
 +
|R
 +
|open collector output <1-3> is on (grounded)
 +
|-
 +
|W
 +
|switch on open collector output <1-3>
 +
 
 +
|-
 +
 
 +
|rowspan="2" |di<1-6>
 
|0
 
|0
 
|R
 
|R
|digital input <n> is low
+
|digital input <1-6> is low
 
|-
 
|-
 
|1
 
|1
 
|R
 
|R
|digital input <n> is high
+
|digital input <1-6> is high
  
 
|-
 
|-
  
|av<n>
+
|ai<1-4>
 
|<val>
 
|<val>
 
|R
 
|R
|analog input <n> is reading a voltage equal to <val> (in Volts)
+
|analog input <1-4> is reading a voltage equal to <val> (in Volts)
  
 
|-
 
|-
  
|ai<n>
+
|rowspan="2" |wiegand.<1-2>
 
|<val>
 
|<val>
 
|R
 
|R
|analog input <n> is reading a current equal to <val> (in mA)
+
|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")
  
 
|-
 
|-
  
|ao1
+
|onewire.bus.<id>
 
|<val>
 
|<val>
 +
|R
 +
|1-Wire device <id> value
 +
 +
|-
 +
 +
|rowspan="4" |clock
 +
|read
 
|W
 
|W
|set the analog output to <val> Volts
+
|used to get date/time from Iono Pi module
 +
|-
 +
|auto
 +
|W
 +
|used to force Iono Pi module to auto-update date/time
 +
|-
 +
|rowspan="2" |<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")
 +
|-
 +
|R
 +
|<timestamp> is Epoch time (in milliseconds), <timezone> is the time zone set on Iono Pi module (e.g. "Europe/Rome")
  
 
|}
 
|}
Line 160: Line 267:
 
== User Interface ==
 
== User Interface ==
  
To control a digital output (DO1 ... DO6), add a [[button]] or a [[buttonicon]] object to your project page and set its address field to the corresponding datapoint:
+
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:
  
[[File:Iono_UI_Buttonicon.png|500px|border]]
+
[[File:IonoPi_UI_Button.png|500px|border]]
  
 
== Release Notes ==
 
== Release Notes ==
  
=== 3.5.0 ===
+
=== 3.8.0 ===
 +
*new "clock" datapoint
 +
 
 +
=== 3.7.0 ===
 +
*added support for iono pi driver v1.3.0 and "wiegandbits" option
 +
*added support for local Iono Pi direct access
 +
 
 +
=== 3.6.0 ===
 
*initial release
 
*initial release
  
Line 172: Line 286:
  
  
''iono is a registered trademark of Sfera Labs Srl''
+
''Iono Pi is a registered trademark of Sfera Labs Srl''

Latest revision as of 16:20, 21 July 2021

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 the integration of a remote Iono Pi (pre-installed with the Sfera Framework and the Sfera Driver for Iono Pi) as well as a local installation of HSYCO on Iono Pi itself.

HSYCO Configuration

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.


Communication

  • IP Address: the IP address assigned to Iono Pi, leave blank for a local installation;
  • Port: TCP port configured on Iono Pi, leave blank for a local installation.

High Availability

  • Shutdown when inactive: defaults to false.

Options

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
wiegandbits false true the wiegand datapoints report bits count and data value
false the wiegand datapoints report the data value only
https false true use HTTPS to communicate with a remote Iono Pi
false use HTTP to communicate with a remote Iono Pi
readinterval 2000 <ms> For local installation only. Interval, in milliseconds, between subsequent readings of analog inputs and 1-Wire devices. If the value is set below 2000 (i.e. less than 2 seconds) the specified interval is only applied to analog inputs; 1-Wire devices will be polled with a 2 seconds interval. Set to 0 to disable analog inputs polling
analogminvariation 100 <mV> For local installation only. 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 0
digitalinputs true true For local installation only. Enable digital inputs monitoring
false For local installation only. Disable digital inputs monitoring
digitaldebounce 30 <ms> For local installation only. Time, in milliseconds, required for digital inputs to maintain a value, after a variation, before an event is triggered
wiegand1 false true For local installation only. Enable and monitor Wiegand interface 1
false For local installation only. Disable Wiegand interface 1
wiegand2 false true For local installation only. Enable and monitor Wiegand interface 2
false For local installation only. Disable Wiegand interface 2
onewirebus true For local installation only. Enable reading of the 1-Wire bus devices connected on TTL1
false For local installation only. Disable reading of the 1-Wire bus devices connected on TTL1
If not specified the monitoring will be enabled if the 1-Wire interface is enabled in the Raspberry Pi OS configuration

Datapoints

ID Value R/W Description
connection online R connection established
offline R HSYCO can't connect to the device
driverstate init R Sfera driver is initializing
quit R Sfera driver quit
running R Sfera driver is running (normal state)
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 used to get date/time from Iono Pi module
auto W used to force Iono Pi module to auto-update date/time
<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")
R <timestamp> is Epoch time (in milliseconds), <timezone> is the time zone set on Iono Pi module (e.g. "Europe/Rome")

User Interface

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

Release Notes

3.8.0

  • new "clock" datapoint

3.7.0

  • added support for iono pi driver v1.3.0 and "wiegandbits" option
  • added support for local Iono Pi direct access

3.6.0

  • initial release


Iono Pi is a registered trademark of Sfera Labs Srl