Difference between revisions of "Template:Networking rutos manual input output"

From Teltonika Networks Wiki
(32 intermediate revisions by 6 users not shown)
Line 1: Line 1:
 
{{Template:Networking_rutos_manual_fw_disclosure
 
{{Template:Networking_rutos_manual_fw_disclosure
| fw_version = {{{series}}}_R_00.02.05.1
+
| fw_version = {{{series}}}{{#ifeq:{{{name}}}|RUT241|M|}}_R_00.07.01{{#ifeq:{{{series}}}|RUT9|.1|}}
 
| series    = {{{series}}}
 
| series    = {{{series}}}
 
}}
 
}}
 +
{{#ifeq: {{{series}}} | RUT9 |<br><i><b>Note</b>: <b>[[{{{name}}} Input/Output (legacy WebUI)|click here]]</b> for the old style WebUI (FW version RUT9XX_R_00.06.08.5 and earlier) user manual page.</i>
 +
<p style="color:red">Warning: From 7.0 version I/O parameters and controls have changed compared to RUT9XX_R_00.06.08.3 and earlier legacy versions.</p>|}}
 +
{{#ifeq: {{{series}}} | RUT2 |
 +
{{#switch: {{{name}}}
 +
  | RUT241 =
 +
  | #default =
 +
<br><i><b>Note</b>: <b>[[{{{name}}} System (legacy WebUI)|click here]]</b> for the old style WebUI (FW version RUT2XX_R_00.01.14.4 and earlier) user manual page.</i>}}
 +
<p style="color:red">Warning: From 7.1 version I/O parameters and controls have changed compared to RUT2XX_R_00.01.14.1 and earlier legacy versions.</p>|}}
 
==Summary==
 
==Summary==
  
Line 12: Line 20:
 
| series = {{{series}}}
 
| series = {{{series}}}
 
}}
 
}}
 +
==Physical characteristics and I/O pin mapping==
  
{{#switch: {{{series}}}
+
Electrical characteristics and I/O pin mapping information are presented below.
| RUTX =
 
==Power Socket Pinout==
 
  
The router's input/output pins can be found inside the power socket:
+
{{Template:Networking_rutos_manual_input_output_pinout
 +
| series        = {{{series}}}
 +
| configurableio = {{{configurableio}}}
 +
| input_volts    = {{{input_volts}}}
 +
}}{{#ifeq: {{{name}}} | TRB141 |
 +
<h3>Input/Output Connector Pinout</h3>
 +
----
 +
[[File:Networking_trb141_manual_input_output_input_output_connector_pinout.png]]
  
[[File:Networking_rutos_manual_input_output_power_socket_pinout_configurableio_{{{configurableio}}}.png]]
 
----
 
The electric characteristics for the input and output pins are as follows:
 
 
<ul>
 
<ul>
     <li><b>Power</b>: 9-50 VDC positive (+).</li>
+
     <li><b>DI<sub>1</sub></b> & <b>DI<sub>2</sub></b> - DRY/WET configurable inputs:
    <li><b>Ground</b>: negative/ground (-).</li>
 
    <li><b>Input</b>: digital non-isolated input.
 
 
         <ul>
 
         <ul>
             <li><i>logical low level:</i> 0 - 5 V;</li>
+
             <li><b>WET</b>: 0-1.9 V is detected as logical "0"; 1.9-3.8 V is detected as logical "1"</li>
             <li><i>logical high level:</i> 8 - 40 V.</li>
+
             <li><b>DRY</b>: is detected as logical "0"  when the input is shorted to GND; otherwise is detected as logical "1"</li>
 
         </ul>
 
         </ul>
 
     </li>
 
     </li>
     <li><b>Output</b>: digital open collector (OC) output; 30 V, 300 mA.</li>
+
     <li><b>NC<sub>1</sub></b>, <b>C<sub>1</sub></b> & <b>NO<sub>1</sub></b> - Normally Closed, Common and Normally Open contacts of the internal Non-Latching Relay respectively.<br>Maximum relay ratings: 0.5 A at 60 VDC/70 VAC, 1 A at 30 VDC/VAC.</li>
</ul>
+
     <li><b>NC<sub>2</sub></b>, <b>C<sub>2</sub></b> & <b>NO<sub>2</sub></b> - Normally Closed, Common and Normally Open contacts of the internal Latching Relay respectively.<br>Maximum relay ratings: 0.8 A at 70 VDC, 0.9 A at 70 VAC, 2 A at 30 VDC/VAC.</li>
| TRB1 =
+
     <li><b>A</b> - ADC input. Analog voltage range: 0-30 V. The input can be configured for 4-20 mA sensor protocol as current measurement (ACL) of 0-30 mA.</li>
{{#ifeq:{{{name}}}|TRB141
+
     <li><b>l</b> and <b>⏚</b> - isolated input contacts.
|
 
==Characteristics==
 
 
 
TRB141 has eighteen input/output pins, two of them can be found inside the power socket and the rest sixteen are on the side of the device. A list of Input/Output electric characteristics inherent in TRB141 devices can be found below.
 
 
 
===Power Socket Pinout===
 
----
 
[[File:Networking_rutos_manual_input_output_power_socket_pinout_configurableio_{{{configurableio}}}.png]]
 
 
 
<ul>
 
     <li><b>Power</b>: 9-30 VDC positive (+).</li>
 
     <li><b>Ground</b>: negative/ground (-).</li>
 
     <li><b>I/O</b>: programmable input/output pins; can be set to:
 
 
         <ul>
 
         <ul>
             <li><i>open collector (OC) output;</i> max 30 V;</li>
+
             <li>0-7.3 V is detected as logical "0"</li>
            <li><i>digital input;</i> 0-7.3 V is detected as logical "0"; 7.3-30 V is detected as logical "1".</li>
+
            <li>7.3-71 V is detected as logical "1"</li>
 
         </ul>
 
         </ul>
 
     </li>
 
     </li>
</ul>
+
    <li><b>+</b> - a power output connected directly to gateway's power supply input pin. This Output can be used to power an external 4-20 mA current sensor.</li>
 
+
    <li><b>3.8</b> is a 3.8 V power output that can be used to power 1-Wire sensors.</li>
===Connector Pins===
+
    <li><b>1W</b> - 1-Wire protocol input/output.</li>
----
+
    <li><b></b> - GND contact.</li>
[[File:Networking_trb141_manual_I-O_socket_v1.png|345x345px|border|class=tlt-border]]
+
</ul>|}}
 
 
*'''DI1''' and '''DI2''' are DRY/WET configurable inputs. WET: 0-1.9 V is detected as logical "0", 1.9-3.8 V is detected as logical "1".  DRY: Logical "0" is detected when input is shorted to GND, otherwise  input is detected as logical "1".
 
*'''NC<sub>1</sub> C<sub>1</sub>''' and '''NO<sub>1</sub>''' are respectively Normally Closed, Common and Normally Open contacts of internal Non-Latching Relay. Maximum relay ratings: 0.5A at 60 VDC/70 VAC, 1A at 30 VDC/VAC.
 
*'''NC<sub>2</sub> C<sub>2</sub>''' and '''NO<sub>2</sub>''' are respectively Normally Closed, Common and Normally Open contacts of internal Latching Relay. Maximum relay ratings: 0.8A at 70 VDC, 0.9A at 70 VAC, 2A at 30 VDC/VAC.
 
*'''A''' is ADC input. Analog voltage range 0 - 30 V. Input can be configured for 4-20mA sensor protocol as current measurement of 0 - 30 mA.
 
*'''l''' and '''⏚''' are isolated input contacts. 0-7.3 V is detected as logical "0",  7.3-71 V is detected as logical "1".
 
*'''+''' is power output connected directly to gateway's power supply input pin. This Output can be used for powering external 4-20 mA current sensor.
 
*'''3.8''' is 3.8V power output which can be used to power 1-Wire sensors when needed.
 
*'''1W''' 1-Wire protocol input/output.
 
*'''''' is GND contact.
 
 
 
|
 
 
 
==Characteristics==
 
 
 
{{{name}}} input/output pins can be found inside the power socket:
 
 
 
===Power Socket Pins===
 
----
 
[[File:Networking_rutos_manual_input_output_power_socket_pinout_configurableio_{{{configurableio}}}.png]]
 
 
 
*'''Power''' pin: +9 ... +30 VDC positive power input.
 
*'''Ground''' pin: negative/ground connection from power supply.
 
*'''I/0''' pins: programmable Input/Output pins (Open Collector output, max  30V or Digital input where 0-5 V is detected as logical "0", 8-40 V is  detected as logical "1").
 
}}
 
 
 
| TRB2XX =
 
 
 
|
 
}}
 
  
 
==Status==
 
==Status==
  
{{#switch:{{{series}}}
+
The <b>Status</b> page displays the current states of the device's input and output pins:
| TRB2 =
 
The <b>Status</b> page displays the current states of the device configurable inputs and outputs:
 
 
 
[[File:Networking_trb2_manual_input_output_status_v1.png|border|class=tlt-border]]
 
 
 
You can invert Input pins by clicking on slider in <b>Inversion</b> column and switch Outputs pin state by clicking on slider in <b>State</b> column.
 
 
 
===Status from command line===
 
----
 
You can also obtain the status of the input or output from the command line. List of ubus possible <b>values</b> in {{{name}}} devices:
 
 
 
ioman.adc.adc0
 
ioman.gpio.dio0
 
ioman.gpio.dio1
 
ioman.gpio.dio2
 
 
 
Call command <b>ubus call <u>value</u> status </b>:
 
root@Teltonika-{{{name}}}:~# ubus call ioman.gpio.dio0 status
 
{
 
        "value": "0",
 
        "direction": "out",
 
        "bi_dir": true,
 
        "invert_input": false
 
}
 
 
 
<ul>
 
    <li><b>dio0</b> is configurable input / output:
 
        <ul>
 
            <li>"value": "<b>0</b>" means low level state.</li>
 
            <li>"value": "<b>1</b>" means high level state.</li>
 
        </ul>
 
    </li>
 
    <li><b>adc0</b> is analog input:
 
        <ul>
 
            <li>"value": "<b>0.54</b>" means 0.54V.</li>
 
        </ul>
 
    </li>
 
</ul>
 
| TRB1 =
 
{{#ifeq:{{{name}}}|TRB141
 
|
 
The <b>Status</b> page displays the current states of the device configurable inputs and outputs:
 
 
 
[[File:Networking_trb1_manual_input_output_status_v2.png|border|class=tlt-border]]
 
 
 
You can invert Input pins by clicking on slider in <b>Inversion</b> column and switch Outputs pin state by clicking on slider in <b>State</b> column.
 
 
 
===Status from command line===
 
----
 
You can also obtain the status of the input or output from the command line. List of ubus possible <b>values</b> in {{{name}}} devices:
 
 
 
ioman.acl.acl0
 
ioman.adc.adc0
 
ioman.dwi.dwi0
 
ioman.dwi.dwi1
 
ioman.gpio.dio0
 
ioman.gpio.dio1
 
ioman.gpio.iio
 
ioman.gpio.onewire
 
ioman.relay.relay0
 
ioman.relay.relay1
 
 
 
In order to read value use '''''status''''' command.
 
 
 
ubus call ioman.gpio.dio0 status
 
ubus call ioman.relay.relay0 status
 
 
 
To change input settings use '''''update''''' command and write the value.
 
 
 
ubus call ioman.gpio.dio0 update '{"value":"0"}'
 
ubus call ioman.gpio.dio0 update '{"value":"1"}'
 
 
 
To change relay settings use '''''update''''' command and write state.
 
 
 
ubus call ioman.relay.relay0 update '{"state":"open"}'
 
ubus call ioman.relay.relay0 update '{"state":"closed"}'
 
 
 
===Reading I/O values from directory===
 
----
 
 
 
You can also collect I/O values straight from directories in your device.
 
 
 
====Digital inputs, Relay outputs====
 
----
 
 
 
Following is a list of I/O directories in '''''/sys/class/gpio/''''':
 
 
 
dwi1(dry wet) input 14; toggle 12 (to read value refer to gpio14, to change state dry/wet refer to gpio12)
 
dwi2(dry wet) input 15; toggle 38 (to read value refer to gpio15, to change state dry/wet refer to gpio38)
 
relay open 20; closed 22; (turn off gpio20 set to 0, turn on gpio22 set value to 1; and visa versa)
 
latching relay open 23; close 21 (turn off gpio23 set to 0, turn on gpio21 set value to 1; and visa versa)
 
dio0 (power socket) input 13; output 16 (direction can be changed, to read input use gpio13, to control output use gpio16)
 
dio1 (power socket) input 17; output 78 (direction can be changed, to read input use gpio17, to control output use gpio78)
 
iio (isolated input) input 1021 (to read value refer to gpio1021)
 
 
 
In order to read digital input value use '''''cat''''' command.
 
 
 
cat /sys/class/gpio/gpio14/value
 
cat /sys/class/gpio/gpio15/value
 
cat /sys/class/gpio/gpio1021/value
 
 
 
To change input state use '''''echo''''' command where "1" is "dry" state and "0" is "wet" state.
 
 
 
echo 0 > /sys/class/gpio/gpio12/value
 
echo 1 > /sys/class/gpio/gpio38/value
 
 
 
When one Relay output is open, other one is closed, so turning on/off the output you will have to change value on both pins. For that '''''echo''''' command is used. Same principle applies to Latching Relay output.
 
 
 
echo 1 > /sys/class/gpio/gpio20/value & echo 0 > /sys/class/gpio/gpio22/value
 
echo 1 > /sys/class/gpio/gpio23/value & echo 0 > /sys/class/gpio/gpio21/value
 
 
 
====ADC (Analog Input)====
 
----
 
 
 
ADC (Analog input) can be read from different directory, '''''/sys/devices/qpnp-vadc-8/mpp4_vadc''''' also using '''''cat''''' command, but received Result value has to be divided by 126582 to get number in volts.
 
 
 
cat /sys/devices/qpnp-vadc-8/mpp4_vadc
 
 
 
====One-wire====
 
----
 
 
 
To read one-wire sensor data you will need to follow these steps:
 
 
 
Set one-wire sensor '''''value''''' to '''''1''''' using '''''ubus''''' command.
 
 
 
  ubus call ioman.gpio.onewire update '{"value":"1"}'
 
 
 
After that list out connected one-wire devices in directory '''''/sys/bus/w1/devices''''' with '''''ls''''' command.
 
 
 
  ls /sys/bus/w1/devices
 
 
 
Choose sensor that you want to know values off and using '''''cat''''' command read them from '''''/sys/bus/w1/devices/&#60;device_name&#62;/w1_slave''''' directory.
 
  
  cat /sys/bus/w1/devices/&#60;device_name&#62;/w1_slave
+
{{#switch: {{{name}}}
 
+
| TRB141 = [[File:Networking_trb141_manual_input_output_status.png|border|class=tlt-border]]
 
+
| RUT950 = [[File:Networking_RUT950_manual_input_output_status.png|border|class=tlt-border]]
| <!--    for other TRB1    -->
+
| RUT955 = [[File:Networking_RUT955_manual_input_output_status.png|border|class=tlt-border]]
The <b>Status</b> page displays the current states of the device input and output:
+
| [[File:Networking_{{lc:{{{series}}}}}_manual_input_output_status.png|border|class=tlt-border]]
 
 
[[File:Networking_trb14x_manual_input_output_status_v1.png|border|class=tlt-border]]
 
 
 
You can invert Input pin by clicking on slider in <b>Inversion</b> column and switch Output pin state by clicking on slider in <b>State</b> column.
 
 
 
===Status from command line===
 
----
 
You can also obtain the status of the input or output from the command line. List of ubus possible <b>values</b> in {{{name}}} devices:
 
 
 
ioman.gpio.din1
 
ioman.gpio.dout1
 
 
 
Call command <b>ubus call <u>value</u> status </b>:
 
root@Teltonika-{{{name}}}:~# ubus call ioman.gpio.dout1 status
 
{
 
        "value": "0",
 
        "direction": "in",
 
        "bi_dir": false,
 
        "invert_input": false
 
}
 
 
 
<ul>
 
    <li><b>din1</b> is the input:
 
        <ul>
 
            <li>"value": "<b>0</b>" means low level state.</li>
 
            <li>"value": "<b>1</b>" means high level state.</li>
 
        </ul>
 
    </li>
 
    <li><b>dout1</b> is the output:
 
        <ul>
 
            <li>"value": "<b>0</b>" means low level state.</li>
 
            <li>"value": "<b>1</b>" means high level state.</li>
 
        </ul>
 
    </li>
 
</ul>
 
 
}}
 
}}
| <!--    for rutx      -->
 
The <b>Status</b> page displays the current states of the device input and output:
 
 
[[File:Networking_rutx_manual_input_output_status_v2.png|border|class=tlt-border]]
 
  
You can invert Input pin by clicking on slider in <b>Inversion</b> column and switch Output pin state by clicking on slider in <b>State</b> column.
+
You can invert an Input pin by clicking the on/off slider under the "Inversion" column or switch the state of an Output pin by clicking the on/off slider under the "State" column.
  
 
===Status from command line===
 
===Status from command line===
 
----
 
----
You can also obtain the status of the input or output from the command line. List of ubus possible <b>values</b> in {{{name}}} devices:
+
You can also obtain the status of input and output pins via the command line (CLI or SSH). List of possible ubus values in {{{name}}} devices:
  
ioman.gpio.dio0
+
{{#switch: {{{series}}}
ioman.gpio.dio1
+
| TRB1 ={{#ifeq:{{{name}}}
 
+
  | TRB141 | {{Template:Networking_trb141_manual_input_output_status}}
Call command <b>ubus call <u>value</u> status </b>:
+
  | {{Template:Networking_{{lc:{{{series}}}}}_manual_input_output_status|name={{{name}}}}}
root@Teltonika-{{{name}}}:~# ubus call ioman.gpio.dio0 status
+
  }}
{
+
| #default = {{Template:Networking_{{lc:{{{series}}}}}_manual_input_output_status|name={{{name}}}}}
        "value": "0",
 
        "direction": "in",
 
        "bi_dir": false,
 
        "invert_input": false
 
}
 
 
 
<ul>
 
    <li><b>din1</b> is the input:
 
        <ul>
 
            <li>"value": "<b>0</b>" means low level state.</li>
 
            <li>"value": "<b>1</b>" means high level state.</li>
 
        </ul>
 
    </li>
 
    <li><b>dout1</b> is the output:
 
        <ul>
 
            <li>"value": "<b>0</b>" means low level state.</li>
 
            <li>"value": "<b>1</b>" means high level state.</li>
 
        </ul>
 
    </li>
 
</ul>
 
 
}}
 
}}
  
 
==Post/Get==
 
==Post/Get==
  
Enabling <b>Post/Get</b> provides the possibility to control the state of an output via HTTP POST/GET requests. The figure below is an example of the Auth Settings section of the Post/Get page. It is used to turn Post/Get on or off and to set authentication parameters.
+
Enabling <b>Post/Get</b> provides the possibility to control the state of an output via HTTP POST/GET requests. The figure below is an example of the Auth Settings section of the Post/Get page. It is used to turn Post/Get requests on or off and to set authentication parameters.
  
 
[[File:Networking_rutos_manual_input_output_post_get_auth_settings.png|border|class=tlt-border]]
 
[[File:Networking_rutos_manual_input_output_post_get_auth_settings.png|border|class=tlt-border]]
Line 341: Line 116:
 
===Post/Get examples===
 
===Post/Get examples===
 
----
 
----
It is possible to turn the output on and off by using a valid HTTP POST/GET syntax. Use a web browser or any other compatible software to submit HTTP POST/GET strings to the device.
+
Use a web browser or any other compatible software to send HTTP POST/GET requests to the device.
  
 
Below is a table containing syntax examples of this usage:  
 
Below is a table containing syntax examples of this usage:  
Line 361: Line 136:
 
     <tr>
 
     <tr>
 
         <td>Change Configurable Input/Output with pin3 to Output</td>
 
         <td>Change Configurable Input/Output with pin3 to Output</td>
         <td><nowiki>http://192.168.</nowiki>{{#ifeq:{{{series}}}|TRB1|2|1}}.1/cgi-bin/<span style="color: #0054a6;"><b>io_type</b></span><nowiki>?username=user1&password=user1&</nowiki><span style="color: #0054a6;"><b>pin=dio1</b></span><span style="color: #3232ff;"><b><nowiki>&type=out</nowiki></b></span></td>
+
         <td><nowiki>http://192.168.</nowiki>{{#ifeq:{{{series}}}|TRB1|2|1}}.1/cgi-bin/<span style="color: #0054a6;"><b>io_type</b></span><nowiki>?username=user1&password=user1&</nowiki><span style="color: #0054a6;"><b>pin=dio0</b></span><span style="color: #3232ff;"><b><nowiki>&type=out</nowiki></b></span></td>
 
     </tr>
 
     </tr>
 
|
 
|
Line 401: Line 176:
 
==Scheduler==
 
==Scheduler==
  
The output <b>Scheduler</b> can be used to configure a timetable of when an output should be turned on or off, based on days of the week and hours of the day. Below is an example of the Scheduler section.
+
The output <b>Scheduler</b> can be used to configure a timetable of when an output should be turned on or off, based on days of the week or month and hours of the day. The General Configuration section is used to turn the Output Scheduler on or off.
 +
 
 +
[[File:Networking_rutos_manual_input_output_scheduler_general_configuration.png|border|class=tlt-border]]
 +
 
 +
The Scheduler is configured in the form of <b>Instances</b>. A Scheduler Instance defines a time interval during which the state of an output associated with the instance will be set to "High". The Output Scheduler Instances list is empty by default. Click the 'Add' button in order to create a new Scheduler Instance:
 +
 
 +
[[File:Networking_rutos_manual_input_output_scheduler_add_button.png|border|class=tlt-border]]
 +
 
 +
After this you should be redirected to the configuration page for the newly added Instance which should look similar to this:
  
[[File:Networking_rutos_manual_input_output_scheduler_configure_scheduler_configurableio_{{{configurableio}}}.png|border|class=tlt-border]]
+
[[File:Networking_rutos_manual_input_output_scheduler_instance_configuration_configurableio_{{{configurableio}}}.png|border|class=tlt-border]]
  
Each field represents a day of the week and an hour of the day. The Scheduler table itself is interactive; click on different fields to set the state of an output for a specific window of time. For example:
+
<table class="nd-mantable">
 +
    <tr>
 +
        <th>Field</th>
 +
      <th>Value</th>
 +
      <th>Description</th>
 +
    </tr>
 +
    <tr>
 +
      <td>Enable</td>
 +
      <td>off | on; default: <b>off</b></td>
 +
      <td>Turns the Scheduler Instance on or off.</td>
 +
    </tr>
 +
    <tr>
 +
      <td>Pin</td>
 +
      <td>output pin; default: <b>{{#ifeq:{{{configurableio}}}|1|Configurable Input/Output (2)|Output (4)}}</b></td>
 +
      <td>Output pin. The state of the selected output will be set to "High" during the time interval defined in the fields below.</td>
 +
    </tr>
 +
    <tr>
 +
      <td>Interval Type</td>
 +
      <td>Weekdays | <span style="color: red;">Month Days</span>; default: <b>Weekdays</b></td>
 +
      <td>Selects the interval type for scheduler to use.</td>
 +
    </tr>
 +
    <tr>
 +
      <td>Start Day</td>
 +
      <td>[Monday..Sunday] | [1..31]; default: <b>Monday | 1</b></td>
 +
      <td>The day that marks the start of the time interval.</td>
 +
    </tr>
 +
    <tr>
 +
      <td>Start Time</td>
 +
      <td>hh:mm ([00..23]:[00..59]); default: <b>12:00</b></td>
 +
      <td>The hour and minute that mark the start of the time interval.</td>
 +
    </tr>
 +
    <tr>
 +
      <td>End Day</td>
 +
      <td>[Monday..Sunday] | [1..31]; default: <b>Tuesday | 1</b></td>
 +
      <td>The day that marks the end of the time interval.</td>
 +
    </tr>
 +
    <tr>
 +
      <td>End Time</td>
 +
      <td>hh:mm ([00..23]:[00..59]); default: <b>12:00</b></td>
 +
      <td>The hour and minute that mark the end of the time interval.</td>
 +
    </tr>
 +
    <tr>
 +
      <td><span style="color: red;">Force Last Day</span></td>
 +
      <td>off | on; default: <b>off</b></td>
 +
      <td>Forces intervals to accept last day of month as a valid option if selected day does not exist during ongoing month. This field becomes visible only when 'Interval Type' is set to <i>Month Days</i>.</td>
 +
    </tr>
 +
</table>
  
[[File:Networking_rutos_manual_input_output_scheduler_configure_scheduler_example_configurableio_{{{configurableio}}}.png|border|class=tlt-border]]
+
A Scheduler Instance will not work unless you turn both the the Scheduler service and the individual instance on:
  
The Scheduler is turned off by default. To turn it on set the 'Enable' slider to "on".
+
[[File:Networking_rutos_manual_input_output_scheduler_on_off_slider_configurableio_{{{configurableio}}}.png|border|class=tlt-border]]
  
 
==I/O Juggler==
 
==I/O Juggler==
Line 638: Line 467:
 
====HTTP====
 
====HTTP====
 
----
 
----
Executes at HTTP Post/Get action.
+
Executes a HTTP POST/GET request.
  
 
[[File:Networking_rutos_manual_input_output_io_juggler_actions_http.png|border|class=tlt-border]]
 
[[File:Networking_rutos_manual_input_output_io_juggler_actions_http.png|border|class=tlt-border]]

Revision as of 17:05, 22 November 2021

Template:Networking rutos manual fw disclosure


Summary

Inputs and outputs are used for monitoring and controlling a connected device or receiving signals from that device in order to trigger certain events.

This chapter of the user manual provides an overview of the Input/Output section for {{{name}}} devices.

If you're having trouble finding this page or some of the parameters described here on your device's WebUI, you should turn on "Advanced WebUI" mode. You can do that by clicking the "Advanced" button, located at the top of the WebUI.

Networking rutos manual webui basic advanced mode 75.gif

Physical characteristics and I/O pin mapping

Electrical characteristics and I/O pin mapping information are presented below.

Power Socket Pinout


[[File:Networking_rutos_manual_input_output_power_socket_pinout_configurableio_{{{configurableio}}}.png]]

  • Power: {{{input_volts}}} VDC positive (+).
  • Ground: negative/ground (-).
  • Input: digital non-isolated input.
    • logical low level: 0 - 5 V;
    • logical high level: 8 - 30 V.
  • Output: digital open collector (OC) output; 30 V, 300 mA.

Status

The Status page displays the current states of the device's input and output pins:

[[File:Networking_{{{series}}}_manual_input_output_status.png|border|class=tlt-border]]

You can invert an Input pin by clicking the on/off slider under the "Inversion" column or switch the state of an Output pin by clicking the on/off slider under the "State" column.

Status from command line


You can also obtain the status of input and output pins via the command line (CLI or SSH). List of possible ubus values in {{{name}}} devices:

{{Template:Networking_{{{series}}}_manual_input_output_status|name={{{name}}}}}

Post/Get

Enabling Post/Get provides the possibility to control the state of an output via HTTP POST/GET requests. The figure below is an example of the Auth Settings section of the Post/Get page. It is used to turn Post/Get requests on or off and to set authentication parameters.

Networking rutos manual input output post get auth settings.png

Field Value Description
Enable off | on; default: off Turns Post/Get on or off.
Username string; default: none Username used for authentication in POST/GET queries.
Password string; default: none Password used for authentication in POST/GET queries.
Confirm password string; default: none Repeat the password for confirmation.

Post/Get examples


Use a web browser or any other compatible software to send HTTP POST/GET requests to the device.

Below is a table containing syntax examples of this usage:

Action POST/GET URL
Turn Output state to high http://192.168.1.1/cgi-bin/io_state?username=user1&password=user1&pin=dout1&state=on
Turn Output state to low after 5 seconds for 3 seconds http://192.168.1.1/cgi-bin/io_state?username=user1&password=user1&pin=dout1&state=on&delay=5&time=3

Overview:

  • 192.168.1.1 - device default LAN IP address; replace it in accordance with your own configuration.
  • username - login name from Post/Get configuration.
  • password- password from Post/Get configuration.
  • state - turn Output on or off.
  • delay - defines a delay (in seconds) after which the specified action will be performed.
  • time - defines a window of time during which the action will take place. For instance, if you post an on action while specifying time=5, the output will turn on and stay on for 5 seconds before turning off.

Delay and time parameters can be used together. For example, if delay is 10, time is 5, action is on, then 10 seconds after the execution of the command, the output will switch to on (or stay in on state if it was already that way), then after 5 more seconds it will switch to off state. In this case the overall command execution time is 15 seconds.


To use Post/Get via SSH instead of a browser, you may want to use the curl -X command. Simply add the same URL command in between quotes and specify the HTTP method.

Examples:

  • Switch output to High:
    curl -X GET "http://192.168.1.1/cgi-bin/io_state?username=user1&password=user1&pin=dout1&state=on"
  • Switch output to Low after delay:
    curl -X GET "http://192.168.1.1/cgi-bin/io_state?username=user1&password=user1&pin=dout1&state=off&delay=5"

Scheduler

The output Scheduler can be used to configure a timetable of when an output should be turned on or off, based on days of the week or month and hours of the day. The General Configuration section is used to turn the Output Scheduler on or off.

Networking rutos manual input output scheduler general configuration.png

The Scheduler is configured in the form of Instances. A Scheduler Instance defines a time interval during which the state of an output associated with the instance will be set to "High". The Output Scheduler Instances list is empty by default. Click the 'Add' button in order to create a new Scheduler Instance:

Networking rutos manual input output scheduler add button.png

After this you should be redirected to the configuration page for the newly added Instance which should look similar to this:

[[File:Networking_rutos_manual_input_output_scheduler_instance_configuration_configurableio_{{{configurableio}}}.png|border|class=tlt-border]]

Field Value Description
Enable off | on; default: off Turns the Scheduler Instance on or off.
Pin output pin; default: Output (4) Output pin. The state of the selected output will be set to "High" during the time interval defined in the fields below.
Interval Type Weekdays | Month Days; default: Weekdays Selects the interval type for scheduler to use.
Start Day [Monday..Sunday] | [1..31]; default: Monday | 1 The day that marks the start of the time interval.
Start Time hh:mm ([00..23]:[00..59]); default: 12:00 The hour and minute that mark the start of the time interval.
End Day [Monday..Sunday] | [1..31]; default: Tuesday | 1 The day that marks the end of the time interval.
End Time hh:mm ([00..23]:[00..59]); default: 12:00 The hour and minute that mark the end of the time interval.
Force Last Day off | on; default: off Forces intervals to accept last day of month as a valid option if selected day does not exist during ongoing month. This field becomes visible only when 'Interval Type' is set to Month Days.

A Scheduler Instance will not work unless you turn both the the Scheduler service and the individual instance on:

[[File:Networking_rutos_manual_input_output_scheduler_on_off_slider_configurableio_{{{configurableio}}}.png|border|class=tlt-border]]

I/O Juggler

The I/O Juggler is a feature that provides the possibility to create automated rules that perform certain actions based on Input state changes and other conditions. The operating sequence of I/O Juggler can be visualized as such:

[[File:Networking_rutos_manual_input_output_io_juggler_scheme_condition_mobile_{{{mobile}}}.png]]

When an Input Trigger occurs, the Input check to see if user-specified conditions are also met. If so, it executes a user-specified action.


For example, if we configure the I/O Juggler like this:

  • Trigger - input state rising.
  • Condition - 8:00 AM - 5:00 PM.
  • Action - send email.

The operating sequence would look like this:

  1. A connected device raises the input state.
  2. This {{{name}}} device checks whether the current time is between 8:00 AM and 5:00 PM.
    • Yes - {{{name}}} sends an email.
    • No - {{{name}}} doesn't send an email.

You can specify multiple actions and multiple conditions for any I/O Juggler rule. Selecting conditions is optional. If there are no set or configured I/O Juggler conditions, the operating sequence is as such:

[[File:Networking_rutos_manual_input_output_io_juggler_scheme_mobile_{{{mobile}}}.png]]

General


The General section is used to Input Trigger rules, which can perform a specified user-configured action when the Input state changes and when certain other user-configured conditions are met (conditions are optional).

Before you can use the I/O Juggler, you must turn it on first (off by default). This can be done by setting the 'Enable' slider to "on":

Networking rutos manual input output io juggler general enabled.png

Input


The Input is used to create Input Rules. An Input Rule is triggered by a user-specified input state change. When this trigger occurs, the device executes a specified command if certain specified conditions are met (conditions are optional).

The Input list is empty by default. To create a new Input Rule, look to the Add Input section at the bottom of the page; select an input and click the 'Add' button:

[[File:Networking_rutos_manual_input_output_io_juggler_general_input_add_button_juggler_input_{{{juggler_input}}}.png|border|class=tlt-border]]

After this you will be redirected to the configuration page for the newly added Rule, which should look similar to this:

[[File:Networking_rutos_manual_input_output_io_juggler_general_input_configuration_juggler_input_{{{juggler_input}}}.png|border|class=tlt-border]]

Field Value Description
Enabled off | on; default: off Changes current profile to specified one when action triggers.
Trigger interval integer [0..99999999]; default: 1 The shortest amount of time (in seconds) between two triggers. If the input is triggered more than once in a time period shorter than the value specified in this field, the device will react to the first trigger.
Trigger Rising | Falling | Both; default: Rising Input state change that will trigger this rule.
Add actions i/o juggler action(s); default: none Actions that will be executed by this rule when the specified trigger and conditions (optional) occur.
Add conditions i/o juggler conditions; default: none Conditions that have to be met for the rule to take action. Conditions are optional.

Actions


The Actions section is used to manage and create new Actions that can be executed by the I/O Juggler Rules. The figure below is an example of the Actions section, which is empty by default.

Networking rutos manual input output io juggler actions actions.png

To create a new Action, look to the Add an Action section at the bottom of the page; enter a custom name, select an action type and click the 'Add' button:

Networking rutos manual input output io juggler actions add button.png

After this you will be redirected to the configuration page for the newly added Action, which should look similar to this (example for action 'Type: Reboot'):

Networking rutos manual input output io juggler actions configuration reboot.png

Action configuration depends on the selected action 'Type'. Each Action can have one or multiple user-defined Conditions assigned to it. Actions that have Conditions assigned to them are executed only if the Conditions are met (a trigger occurrence is not enough to set off these actions). Assigning to Actions is optional.

You will find descriptions of each different action Type described on the sections below.

Type: Email


Sends an email to specified recipients. Requires an existing email account configuration on the device. Email accounts can be configured in the System → Administration → Recipients → [[{{{name}}}_Administration#Email_Accounts|Email Accounts]] page.

Networking rutos manual input output io juggler actions email.png

Field Value Description
Subject string; default: none Subject of email.
Text message string; default: none Email body text. Below this field you can find special codes that begin with the '%' sign. Each code represents a piece information related to the status of the device. Include these codes in the Text message for dynamic information reports.
Execution delay positive integer; default: none A period of time (in seconds) which has to pass after a trigger event before the action is executed.
Email account email account; default: none Email account used to send the email. Email accounts can be configured in the System → Administration → Recipients → [[{{{name}}}_Administration#Email_Accounts|Email Accounts]] page.
Recipient's email address email; default: none Email address(es) of the message's receiver(s).

Type: Output


Changes the state of a selected output pin.

[[File:Networking_rutos_manual_input_output_io_juggler_actions_output_configurableio_{{{configurableio}}}.png|border|class=tlt-border]]

Field Value Description
Execution delay positive integer; default: none A period of time (in seconds) which has to pass after a trigger event before this Action is executed.
Control output; default: Output (4) Selects the output controlled by this Action.
Revert integer; default: 0 After how many seconds the state will revert. If left as 0 or empty the state will not revert.
Maintain off | on; default: on When set to 'on', the output maintains its new state after reboot (the state is changed in the config file as well).
Invert off | on; default: off Inverts the state of the selected output, i.e., switches the output pin to a state that is opposite to its current one (high-to-low or low-to-high). This can be used instead of specifying a static state.
State copying off | on; default: off Copies the state from the selected input and applies it to the selected output. This can be used instead of specifying a static state.
State High | Low; default: High Specifies the state of the output pin that will be set by this Action.

HTTP


Executes a HTTP POST/GET request.

Networking rutos manual input output io juggler actions http.png

Field Value Description
Execution delay positive integer; default: none A period of time (in seconds) which has to pass after a trigger event before this Action is executed.
Method Get | Post; default: Get HTTP method to be used by this Action.
URL string; default: none URL to send the HTTP Post/Get request to.
Verify off | on; default: off Verifies the validity of certificates; only used with HTTPS.
Parameters string; default: none Parameters that are to be included the Post/Get request. Select a parameter (right drop-down box) and enter a custom name for it (left text box).

Type: Script


Executes a custom, user-written shell script.

Networking rutos manual input output io juggler actions script.png

Field Value Description
Execution delay positive integer; default: none A period of time (in seconds) which has to pass after a trigger event before this Action is executed.
Specify path Upload a script |Specify path; default: Upload a script Specifies whether the script should be uploaded from an external file or a path to an internal (on this device) script file should be specified.
Custom script | Script file -(interactive button) | filepath Shows file upload window on click or provides the possibility to specify a path to an internal script file. The name and selection type of this field depends on the value set in the 'Specify path' field.
Arguments string; default: none Optional arguments which can be provided for the script. You can include device information with values given below this input field.

Type: Reboot


Reboots the device.

Networking rutos manual input output io juggler actions reboot.png

Field Value Description
Execution delay positive integer; default: none A period of time (in seconds) which has to pass after a trigger event before this Action is executed.

Type: Profile


Switches to using a specified Configuration Profile.

Networking rutos manual input output io juggler actions profile.png

Field Value Description
Execution delay positive integer; default: none A period of time (in seconds) which has to pass after a trigger event before this Action is executed.
Profile profile; default: default Configuration Profile that will be applied by this Action. Configuration Profiles can be defined in the System → [[{{{name}}}_Profiles|Profiles]] page.


Conditions


The Conditions section is used to manage and created Conditions for I/O Juggler Actions. The figure below is an example of the Conditions section, which is empty by default.

Networking rutos manual input output io juggler conditions.png

To create a new Condition, look to the Add a Condition section; enter a custom name, select the Type of the Condition and click the 'Add' button.

Networking rutos manual input output io juggler conditions add button.png

After this you should be redirected to the configuration page of the newly added Condition. You will find descriptions of each different Condition type described on the sections below.

Condition type: I/O


I/O Condition type tracks the state of a selected input or output pin and considers the Condition as MET if that pin is in a user-specified state.

[[File:Networking_rutos_manual_input_output_io_juggler_conditions_io_configurableio_{{{configurableio}}}.png|border|class=tlt-border]]

Field Value Description
I/O inputs/outputs; default: Output(4) Specifies the I/O pin to which this Condition is listening to.
State High | Low; default: High Specifies in what state the pin has to be in in order for the Condition to be met.

Condition type: Boolean group


Boolean Group will evaluate two or more existing conditions based on selected Boolean type. A Boolean Group condition will considered as MET based on the outcome of the evaluation performed along with one of the available Boolean types:

  • AND - all selected conditions evaluate as TRUE.
  • NAND - at least one selected condition evaluates as FALSE.
  • OR - at least one selected condition evaluates as TRUE.
  • NOR - none of the selected conditions evaluate as TRUE.

For example, if we have two time Conditions (hour and minute) and a third Condition of Boolean group: AND, both Conditions 1 & 2 have to be met for Condition 3 to be evaluated as TRUE.

Networking rutos manual input output io juggler boolean group scheme true.png

In this case, if at least one condition is no longer met, the Boolean group: AND Condition is evaluated as FALSE.

Networking rutos manual input output io juggler boolean group scheme false.png


Below is an example of Condition type: Boolean group configuration.

Networking rutos manual input output io juggler conditions boolean group.png

Field Value Description
Boolean type AND | NAND | OR | NOR; default: AND Type of boolean condition.
Add conditions conditions; default: none Specifies conditions which have to be met for action to occur.


Condition types: Date/Time


Lastly, you can configure Conditions based on date and time. Date/time Conditions can be configured based on:

  • Minute of the hour
  • Hour of the day
  • Day of the Week
  • Day of the Month
  • Day of the Year

Networking rutos manual input output io juggler conditions date time.png

Each type can be configured in two distinct ways:

  1. Specific time - configured as a single value which defines the exact time when the Condition is considered as TRUE. e.g.:
    • Hour: 8
    • Day of Month: 1
  2. Time interval - configured with a start and an end value which define a window of time during which the Condition is considered as TRUE. e.g.:
    • Hours: 8-12
    • Days of Month: 1-12

[[Category:{{{name}}} Services section]]