Difference between revisions of "Strato"

From HSYCO
Jump to navigation Jump to search
 
(73 intermediate revisions by 2 users not shown)
Line 1: Line 1:
Strato is a general-purpose, professional input/output module based on a standard Arduino microcontroller.
+
[[Category:I/O Server]]
 +
 
 +
[http://www.sferalabs.cc/strato/ Strato Pi] is an expansion board developed by Sfera Labs for the Raspberry Pi computer.
  
 
[[File:Strato_Board.png|200px|thumb|Strato Pi]]
 
[[File:Strato_Board.png|200px|thumb|Strato 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].
+
Strato Pi implements a number of hardware features to expand the Pi and allows its use in professional applications:
 +
*9-28 Vdc extended-range power supply
 +
*integrated UPS with external NiCd rechargeable battery
 +
*real-time clock with dedicated back-up battery
 +
*opto-isolated RS-232, RS-485, CAN bus ports
 +
*configurable hardware watchdog
 +
*buzzer for audible feedback.
 +
 
  
The default sketch installed in iono Ethernet exposes this API.
+
== HSYCO Configuration ==
 +
Add a STRATO I/O Server in the [[Settings#I/O Servers|I/O Servers section of the Settings]] and set its parameters.
  
[[Category:I/O Server]]
+
{{note|Note that the Strato 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 Strato with HSYCO.}}
  
== HSYCO Configuration ==
+
On Strato Pi Base, UPS, CAN, CM and CM Duo, the STRATO I/O Server requires the [https://github.com/sfera-labs/strato-pi-kernel-module Strato Pi Kernel Module] to be fully functional. Without the kernel module, only a subset of the features are available for backward compatibility.
Add a IONO I/O Server in the [[Settings#I/O Servers|I/O Servers section of the Settings]] and set its parameters:
 
  
=== Communication ===
+
Strato Pi Fan is also supported if the [https://github.com/sfera-labs/strato-pi-fan-kernel-module Strato Pi Fan Kernel Module] is installed.
*'''IP Address''': the IP address assigned to iono;
 
  
 
=== High Availability ===
 
=== High Availability ===
*'''Shutdown when inactive''': defaults to true.
+
*'''Shutdown when inactive''': defaults to false.
  
 
=== Options ===
 
=== Options ===
Line 28: Line 36:
 
|-
 
|-
  
|rowspan="2"|startupevents
+
|rowspan="3"|dualsdsync
|rowspan="2"|true
+
|rowspan="3"|false
 +
|true
 +
|enables the files synchronisation process that copies all HSYCO files and some operating system configuration files to the alternate SD card (SD1). Synchronisation occurs automatically once a minute. SD1 is enabled and its root file system mounted to /mnt/alt
 +
|-
 +
|false
 +
|disables the files synchronisation process
 +
|-
 +
|manual
 +
|doesn't change the watchdog configuration parameters
 +
 
 +
|-
 +
 
 +
|rowspan="4"|watchdog
 +
|rowspan="4"|always<br>(false on Strato Pi Mini)
 +
|always
 +
|enables the hardware watchdog and automatically generates the heartbeat signal (when the HSYCO main control loop is running normally, approximately every 10 seconds). The watchdog timeout is set to 60 seconds while HSYCO is running, or to 1 hour when HSYCO is manually stopped (sysctl stop hsyco) and when it is starting. If dualsdsync is set to true or manual, the watchdog is configured to boot from the alternate SD card if there is no heartbeat after the first reboot
 +
|-
 
|true
 
|true
|generate IO events also during the driver’s start-up phase
+
|enables the hardware watchdog only while HSYCO is running, and automatically generates the heartbeat signal (when the HSYCO main control loop is running normally, approximately every 10 seconds). The watchdog timeout is temporarily set to 1 hour when HSYCO is starting. If dualsdsync is set to true or manual, the watchdog is configured to boot from the alternate SD card
 
|-
 
|-
 
|false
 
|false
|start generating events only after HSYCO is aligned with the current status of the system
+
|disables the hardware watchdog
 +
|-
 +
|ignore
 +
|doesn't change the watchdog configuration parameters
  
 
|-
 
|-
  
|rowspan="2"|pollinterval
+
|rowspan="2"|shutdown_minutes
 
|rowspan="2"|0
 
|rowspan="2"|0
 
|0
 
|0
|the driver will use the push notifications sent by iono to monitor its changes
+
|no automatic shutdown after power failure
 
|-
 
|-
 
|int > 0
 
|int > 0
|the driver will poll iono's state with the specified time interval (in seconds). Push notifications won't be enabled
+
|the driver will command the operating system shutdown and hardware power off after N minutes of back-up battery operations during a power failure. The Strato board will automatically power-up the Pi when power is restored (use this option only with the Strato UPS board)
 +
 
 +
|-
 +
 
 +
|rowspan="2"|quiet
 +
|rowspan="2"|false
 +
|true
 +
|enables audible alarms on power failure
 +
|-
 +
|false
 +
|disables audible alarms on power failure
  
 
|-
 
|-
  
|input1
+
|rowspan="5"|version
|rowspan="4"|digital
+
|rowspan="5"|base<br>(automatically detected when the Strato Pi Kernel Module is installed)
|rowspan="2"|digital
+
|base
|rowspan="2"|the specified multi-mode input will be read as digital signal (DI<n>)
+
|Strato Pi Base and UPS boards
 
|-
 
|-
|input2
+
|mini
 +
|Strato Pi Mini board
 
|-
 
|-
|input3
+
|can
|voltage
+
|Strato Pi CAN
|the specified multi-mode input will be read as analog voltage (AV<n>)
 
 
|-
 
|-
|input4
+
|cm
|current
+
|Strato Pi CM
|the specified multi-mode input will be read as analog current (AI<n>)
 
 
 
 
|-
 
|-
 +
|cmduo
 +
|Strato Pi CM Duo
  
|stabletime
+
|}
|100
 
|int > 0
 
|number of milliseconds an input must be stable before a push notification is sent by iono to HSYCO
 
  
|-
+
== Datapoints ==
  
|minvariation
+
The Strato I/O Server implements all data points provided by the underlying Strato Pi kernel module. Refer to the documentation available at [https://github.com/sfera-labs/strato-pi-kernel-module Strato Pi Kernel Module].
|0.1
 
|float > 0
 
|minimun value variation (for analog inputs) to trigger a push notification
 
  
|-
+
Each readable file name exposed by the kernel module under the /sys/class/ionopimax/ sub-directories appears as a data point with id <subdir>.<file>. For example, as the buzzer's status file is /sys/class/stratopi/buzzer/status, the corresponding data point is "buzzer.status".
  
|subscribehost
+
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.
|
 
|<host_name>
 
|hostname or IP address to be used by iono to send push notifications. Leave blank to let the driver discover the local address
 
  
|}
+
For example, if "strato" is the id assigned to the Strato I/O Server, then:
 +
TIME : IO strato.buzzer.beep = 1000
 +
will make the buzzer beep for 1 second (1000 ms).
  
== Datapoints ==
+
Note that "strato.buzzer.beep" is not visible in the Status Browser and doesn't generate events, because it is write only, and only the "strato.buzzer.status" data point will be visible, with a value of 0 if the buzzer is not active, or 1 if active.
  
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).
+
=== Additional datapoints ===
  
 
{| class="wikitable"
 
{| class="wikitable"
Line 98: Line 128:
 
|-
 
|-
  
|rowspan="2" |connection
+
|rowspan="2" |backlight.brightness
|online
+
|rowspan="2" |<brightness>
 
|R
 
|R
|connection established
+
|the current backlight brightness of HSYCO Pi Touch Display
 +
|-
 +
|W
 +
|set brightness of HSYCO Pi Touch Display to a value between 0 (off) and 255 (max)
 +
 
 
|-
 
|-
|offline
+
 
 +
|rowspan="2" |battery<br>(base/ups only)
 +
|0
 +
|R
 +
|power supply is available
 +
|-
 +
|1
 
|R
 
|R
|HSYCO can't connect to the device
+
|power supply failure, running on UPS battery
  
 
|-
 
|-
  
|rowspan="4" |do<n>
+
|rowspan="6" |beep<br>(base/ups/can/mini only)
 +
|0
 +
|R
 +
|buzzer is off
 +
|-
 +
|1
 +
|R
 +
|buzzer is on
 +
|-
 +
|off
 +
|W
 +
|turn buzzer off
 +
|-
 +
|on
 +
|W
 +
|turn buzzer on (continuous tone)
 +
|-
 +
|<duration>
 +
|W
 +
|turn buzzer on for <duration> seconds (decimals allowed)
 +
|-
 +
|<duration>;<pause>
 +
|W
 +
|turn buzzer on for <duration> seconds, then pause for <pause> seconds (decimals allowed)
 +
 
 +
|-
 +
 
 +
|cpu.temperature
 +
|<temperature>
 +
|R
 +
|the current CPU core temperature, in Celsius degrees
 +
 
 +
|-
 +
 
 +
|rowspan="3" |dualsdsync<br>(cm duo only)
 +
|0
 +
|R
 +
|manual SD synchronisation completed
 +
|-
 +
|rowspan="2" |1
 +
|R
 +
|manual SD synchronisation pending or in progress
 +
|-
 +
|W
 +
|initiate SD synchronisation (only available when the dualsdsync option is set to "manual"
 +
 
 +
|-
 +
 
 +
|dualsdsync.status<br>(cm duo only)
 +
|N
 +
|R
 +
|status of the last SD synchronisation run:
 +
* >=0: number of files synchronised
 +
* -1: error while updating files (see logs)
 +
* -2: alternate SD card not available or file system error
 +
 
 +
|-
 +
 
 +
|dualsdsync.time<br>(cm duo only)
 +
|<timestamp>
 +
|R
 +
|positive integer number representing the time in seconds since 00:00:00 UTC on 1 January 1970 of when the last synchronization run ended (with or without errors)
 +
 
 +
|-
 +
 
 +
|fan.temperature
 +
|<temperature>
 +
|R
 +
|temperature measured by the Strato Pi Fan on-board sensor, in Celsius degrees
 +
 
 +
|-
 +
 
 +
|rowspan="2" |fan.temperature.off
 +
|rowspan="2" |<temperature>
 +
|R
 +
|the current fan turn-off temperature threshold, in Celsius degrees
 +
|-
 +
|W
 +
|set fan turn-off temperature threshold, in Celsius degrees
 +
 
 +
|-
 +
 
 +
|rowspan="2" |fan.temperature.on
 +
|rowspan="2" |<temperature>
 +
|R
 +
|the current fan turn-on temperature threshold, in Celsius degrees
 +
|-
 +
|W
 +
|set fan turn-on temperature threshold, in Celsius degrees
 +
 
 +
|-
 +
 
 +
|rowspan="4" |heartbeat<br>(base/ups/can/cm only)
 
|rowspan="2" |0
 
|rowspan="2" |0
 
|R
 
|R
|relay <n> (digital output) is off
+
|heartbeat line is off
 
|-
 
|-
 
|W
 
|W
|switch off relay <n>
+
|set heartbeat line to off
 
|-
 
|-
 
|rowspan="2" |1
 
|rowspan="2" |1
 
|R
 
|R
|relay <n> (digital output) is on
+
|heartbeat line is on
 
|-
 
|-
 
|W
 
|W
|switch on relay <n>
+
|set heartbeat line to on
  
 
|-
 
|-
  
|rowspan="2" |di<n>
+
|rowspan="6" |led<br>(cm only)
 
|0
 
|0
 
|R
 
|R
|digital input <n> is low
+
|led is off
 
|-
 
|-
 
|1
 
|1
 
|R
 
|R
|digital input <n> is high
+
|led is on
 +
|-
 +
|off
 +
|W
 +
|turn led off
 +
|-
 +
|on
 +
|W
 +
|turn led on
 +
|-
 +
|<duration>
 +
|W
 +
|turn led on for <duration> seconds (decimals allowed)
 +
|-
 +
|<duration>;<pause>
 +
|W
 +
|turn led on for <duration> seconds, then pause for <pause> seconds (decimals allowed)
 +
 
 +
|-
 +
 
 +
|rowspan="3" |shutdown<br>(base/ups/can/cm only)
 +
|0
 +
|R
 +
|shutdown line is off
 +
|-
 +
|rowspan="2" |1
 +
|R
 +
|shutdown line is on
 +
|-
 +
|W
 +
|Quit HSYCO, halt the operating system, and perform a power cycle to reboot. Once the shutdown process is initiated, the power cycle procedure can't be reset. On Strato Pi CM, a hardware reset of the Compute Module is performed, instead of a full power down cycle
  
 
|-
 
|-
  
|av<n>
+
|rowspan="2" |timeout<br>(base/ups/can/cm only)
|<val>
+
|0
 
|R
 
|R
|analog input <n> is reading a voltage equal to <val> (in Volts)
+
|hardware watchdog timeout line is off (not expired)
 +
|-
 +
|1
 +
|R
 +
|hardware watchdog timeout line is on (expired). When the watchdog expires, Strato will set this line to on, then wait approximately 60 seconds and execute a power off-on cycle. On Strato Pi CM, a hardware reset of the Compute Module is performed, instead of a full power down cycle
  
 
|-
 
|-
  
|ai<n>
+
|rowspan="2" |timeout.time<br>(base/ups/cm only)
|<val>
+
|rowspan="2" |<seconds>
 
|R
 
|R
|analog input <n> is reading a current equal to <val> (in mA)
+
|the watchdog current timeout time in seconds
 +
|-
 +
|W
 +
|set the watchdog timeout time in seconds (1 - 99999). Factory default: 60
  
 
|-
 
|-
  
|ao1
+
|rowspan="4" |watchdog<br>(base/ups/can/cm only)
|<val>
+
|rowspan="2" |0
 +
|R
 +
|hardware watchdog is disabled
 +
|-
 
|W
 
|W
|set the analog output to <val> Volts
+
|disables the hardware watchdog
 +
|-
 +
|rowspan="2" |1
 +
|R
 +
|hardware watchdog is enabled
 +
|-
 +
|W
 +
|enables the hardware watchdog. When enabled, Strato should see an off-on transition on the hearbeat line at least every 60 seconds, otherwise a power cycle will be initiated, setting the timeout line on, then waiting 60 seconds, removing power to the Pi for 5 seconds, and finally restoring power. On Strato Pi CM, a hardware reset of the Compute Module is performed, while the power is not removed
  
 
|}
 
|}
  
== User Interface ==
+
== Release Notes ==
  
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:
+
=== 3.8.0 ===
 +
*dual µSD card support
 +
*improved watchdog and UPS support (excluding Strato Pi CM Mini)
 +
*supports the Strato Pi Kernel Module (excluding Strato Pi CM Mini)
 +
*supports the Strato Pi Fan Kernel Module
  
[[File:Iono_UI_Buttonicon.png|500px|border]]
+
=== 3.7.0 ===
 +
*added support for Strato Pi CAN and Strato Pi CM Duo
 +
*new cpu.temperature data point
  
== Release Notes ==
+
=== 3.6.0 ===
 +
*added support for Strato Pi Mini and Strato Pi CM
 +
*new backlight.brightness data point to set the display backlight brightness of HSYCO Pi Touch Display
  
 
=== 3.5.0 ===
 
=== 3.5.0 ===
Line 172: Line 359:
  
  
''Strato is a registered trademarks of Home Systems Consulting S.p.A.''
+
''Strato is a registered trademark of Sfera Labs Srl''

Latest revision as of 17:49, 13 July 2022


Strato Pi is an expansion board developed by Sfera Labs for the Raspberry Pi computer.

Strato Pi

Strato Pi implements a number of hardware features to expand the Pi and allows its use in professional applications:

  • 9-28 Vdc extended-range power supply
  • integrated UPS with external NiCd rechargeable battery
  • real-time clock with dedicated back-up battery
  • opto-isolated RS-232, RS-485, CAN bus ports
  • configurable hardware watchdog
  • buzzer for audible feedback.


HSYCO Configuration

Add a STRATO I/O Server in the I/O Servers section of the Settings and set its parameters.

Note that the Strato 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 Strato with HSYCO.


On Strato Pi Base, UPS, CAN, CM and CM Duo, the STRATO I/O Server requires the Strato Pi Kernel Module to be fully functional. Without the kernel module, only a subset of the features are available for backward compatibility.

Strato Pi Fan is also supported if the Strato Pi Fan Kernel Module is installed.

High Availability

  • Shutdown when inactive: defaults to false.

Options

ID Default Values Description
dualsdsync false true enables the files synchronisation process that copies all HSYCO files and some operating system configuration files to the alternate SD card (SD1). Synchronisation occurs automatically once a minute. SD1 is enabled and its root file system mounted to /mnt/alt
false disables the files synchronisation process
manual doesn't change the watchdog configuration parameters
watchdog always
(false on Strato Pi Mini)
always enables the hardware watchdog and automatically generates the heartbeat signal (when the HSYCO main control loop is running normally, approximately every 10 seconds). The watchdog timeout is set to 60 seconds while HSYCO is running, or to 1 hour when HSYCO is manually stopped (sysctl stop hsyco) and when it is starting. If dualsdsync is set to true or manual, the watchdog is configured to boot from the alternate SD card if there is no heartbeat after the first reboot
true enables the hardware watchdog only while HSYCO is running, and automatically generates the heartbeat signal (when the HSYCO main control loop is running normally, approximately every 10 seconds). The watchdog timeout is temporarily set to 1 hour when HSYCO is starting. If dualsdsync is set to true or manual, the watchdog is configured to boot from the alternate SD card
false disables the hardware watchdog
ignore doesn't change the watchdog configuration parameters
shutdown_minutes 0 0 no automatic shutdown after power failure
int > 0 the driver will command the operating system shutdown and hardware power off after N minutes of back-up battery operations during a power failure. The Strato board will automatically power-up the Pi when power is restored (use this option only with the Strato UPS board)
quiet false true enables audible alarms on power failure
false disables audible alarms on power failure
version base
(automatically detected when the Strato Pi Kernel Module is installed)
base Strato Pi Base and UPS boards
mini Strato Pi Mini board
can Strato Pi CAN
cm Strato Pi CM
cmduo Strato Pi CM Duo

Datapoints

The Strato I/O Server implements all data points provided by the underlying Strato Pi kernel module. Refer to the documentation available at Strato Pi Kernel Module.

Each readable file name exposed by the kernel module under the /sys/class/ionopimax/ sub-directories appears as a data point with id <subdir>.<file>. For example, as the buzzer's status file is /sys/class/stratopi/buzzer/status, the corresponding data point is "buzzer.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 "strato" is the id assigned to the Strato I/O Server, then:

TIME : IO strato.buzzer.beep = 1000

will make the buzzer beep for 1 second (1000 ms).

Note that "strato.buzzer.beep" is not visible in the Status Browser and doesn't generate events, because it is write only, and only the "strato.buzzer.status" data point will be visible, with a value of 0 if the buzzer is not active, or 1 if active.

Additional datapoints

ID Value R/W Description
backlight.brightness <brightness> R the current backlight brightness of HSYCO Pi Touch Display
W set brightness of HSYCO Pi Touch Display to a value between 0 (off) and 255 (max)
battery
(base/ups only)
0 R power supply is available
1 R power supply failure, running on UPS battery
beep
(base/ups/can/mini only)
0 R buzzer is off
1 R buzzer is on
off W turn buzzer off
on W turn buzzer on (continuous tone)
<duration> W turn buzzer on for <duration> seconds (decimals allowed)
<duration>;<pause> W turn buzzer on for <duration> seconds, then pause for <pause> seconds (decimals allowed)
cpu.temperature <temperature> R the current CPU core temperature, in Celsius degrees
dualsdsync
(cm duo only)
0 R manual SD synchronisation completed
1 R manual SD synchronisation pending or in progress
W initiate SD synchronisation (only available when the dualsdsync option is set to "manual"
dualsdsync.status
(cm duo only)
N R status of the last SD synchronisation run:
  • >=0: number of files synchronised
  • -1: error while updating files (see logs)
  • -2: alternate SD card not available or file system error
dualsdsync.time
(cm duo only)
<timestamp> R positive integer number representing the time in seconds since 00:00:00 UTC on 1 January 1970 of when the last synchronization run ended (with or without errors)
fan.temperature <temperature> R temperature measured by the Strato Pi Fan on-board sensor, in Celsius degrees
fan.temperature.off <temperature> R the current fan turn-off temperature threshold, in Celsius degrees
W set fan turn-off temperature threshold, in Celsius degrees
fan.temperature.on <temperature> R the current fan turn-on temperature threshold, in Celsius degrees
W set fan turn-on temperature threshold, in Celsius degrees
heartbeat
(base/ups/can/cm only)
0 R heartbeat line is off
W set heartbeat line to off
1 R heartbeat line is on
W set heartbeat line to on
led
(cm only)
0 R led is off
1 R led is on
off W turn led off
on W turn led on
<duration> W turn led on for <duration> seconds (decimals allowed)
<duration>;<pause> W turn led on for <duration> seconds, then pause for <pause> seconds (decimals allowed)
shutdown
(base/ups/can/cm only)
0 R shutdown line is off
1 R shutdown line is on
W Quit HSYCO, halt the operating system, and perform a power cycle to reboot. Once the shutdown process is initiated, the power cycle procedure can't be reset. On Strato Pi CM, a hardware reset of the Compute Module is performed, instead of a full power down cycle
timeout
(base/ups/can/cm only)
0 R hardware watchdog timeout line is off (not expired)
1 R hardware watchdog timeout line is on (expired). When the watchdog expires, Strato will set this line to on, then wait approximately 60 seconds and execute a power off-on cycle. On Strato Pi CM, a hardware reset of the Compute Module is performed, instead of a full power down cycle
timeout.time
(base/ups/cm only)
<seconds> R the watchdog current timeout time in seconds
W set the watchdog timeout time in seconds (1 - 99999). Factory default: 60
watchdog
(base/ups/can/cm only)
0 R hardware watchdog is disabled
W disables the hardware watchdog
1 R hardware watchdog is enabled
W enables the hardware watchdog. When enabled, Strato should see an off-on transition on the hearbeat line at least every 60 seconds, otherwise a power cycle will be initiated, setting the timeout line on, then waiting 60 seconds, removing power to the Pi for 5 seconds, and finally restoring power. On Strato Pi CM, a hardware reset of the Compute Module is performed, while the power is not removed

Release Notes

3.8.0

  • dual µSD card support
  • improved watchdog and UPS support (excluding Strato Pi CM Mini)
  • supports the Strato Pi Kernel Module (excluding Strato Pi CM Mini)
  • supports the Strato Pi Fan Kernel Module

3.7.0

  • added support for Strato Pi CAN and Strato Pi CM Duo
  • new cpu.temperature data point

3.6.0

  • added support for Strato Pi Mini and Strato Pi CM
  • new backlight.brightness data point to set the display backlight brightness of HSYCO Pi Touch Display

3.5.0

  • initial release


Strato is a registered trademark of Sfera Labs Srl