Jump to content

Template:Networking rutos manual input output: Difference between revisions

No edit summary
No edit summary
 
(50 intermediate revisions by 2 users not shown)
Line 7: Line 7:
  }}
  }}
}}
}}
{{#ifeq: {{{series}}} | RUT9 |<br><i><b>Note</b>: <b>[[{{{name}}} Input/Output (legacy WebUI)|click here]]</b> for the old style WebUI (FW version {{Template: Networking_device_manual_latest_fw | series = RUT9XX}} and earlier) user manual page.</i>


<p style="color:red">Warning: From 7.0 version I/O parameters and controls have changed compared to {{Template: Networking_device_manual_latest_fw | series = RUT9XX}} and earlier legacy versions.</p>|}}
{{#ifeq: {{{name}}}|RUT951|<b>Note:</b> Input/Output page is deprecated for <b>Active PoE</b> devices.|}}
{{#ifeq: {{{series}}} | RUT2 |<br><i><b>Note</b>: <b>[[{{{name}}} Input/Output (legacy WebUI)|click here]]</b> for the old style WebUI (FW version {{Template: Networking_device_manual_latest_fw | series = RUT2XX}} and earlier) user manual page.</i>
 
<p style="color:red">Warning: From 7.1 version I/O parameters and controls have changed compared to {{Template: Networking_device_manual_latest_fw | series = RUT2XX}} and earlier legacy versions.</p>|}}
==Summary==
==Summary==


Line 18: Line 14:


This chapter of the user manual provides an overview of the Input/Output section for {{{name}}} devices.
This chapter of the user manual provides an overview of the Input/Output section for {{{name}}} devices.
{{Template:Networking_rutos_manual_basic_advanced_webui_disclaimer
| series = {{{series}}}
}}


==Physical characteristics and I/O pin mapping==
==Physical characteristics and I/O pin mapping==
Line 29: Line 21:
{{Template:Networking_rutos_manual_input_output_pinout
{{Template:Networking_rutos_manual_input_output_pinout
| series        = {{{series}}}
| series        = {{{series}}}
| name          = {{{name}}}
| configurableio = {{{configurableio}}}
| configurableio = {{{configurableio}}}
| input_volts    = {{{input_volts}}}
| input_volts    = {{{input_volts}}}
}}{{#switch: {{{name}}}
| TRB141 =<h3>Input/Output Connector Pinout</h3>
----
[[File:Networking_trb141_manual_input_output_input_output_connector_pinout_v2.png]]
<ul>
    <li><b>DI<sub>1</sub></b> & <b>DI<sub>2</sub></b> - DRY/WET configurable inputs:
        <ul>
            <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><b>DRY</b>: is detected as logical "0"  when the input is shorted to GND; otherwise is detected as logical "1"</li>
        </ul>
    </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>
    <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>
    <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>
    <li><b>l</b> and <b>⏚</b> - isolated input contacts.
        <ul>
            <li>0-7.3 V is detected as logical "0"</li>
            <li>7.3-71 V is detected as logical "1"</li>
        </ul>
    </li>
    <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>
    <li><b>1W</b> - 1-Wire protocol input/output.</li>
    <li><b>⏚</b> - GND contact.</li>
    <li><b>''Note:''</b> input circuit components have tolerance of +-1%.</li>
</ul>
| RUT955|RUT956|RUT906 =<h3>Input/Output Connector Pinout</h3>
----
[[File:Networking_rut955_manual_input_output_input_output_connector_pinout_v3.png]]
<ul>
    <li><b>DI</b><sub>1</sub> and <b>⏚</b><sub>1</sub> - Digital input (dry type):</li>
        <ul>
            <li>0-1.2 V is detected as logical "1"</li>
            <li>1.8-3 V is detected as logical "0"</li>
        </ul>
    <li><b>DI</b><sub>2</sub>  and <b>⏚</b><sub>2</sub> - Digital galvanically isolated input:</li>
        <ul>
            <li>0-4 V is detected as logical "0"</li>
            <li>9-30 V is detected as logical "1"</li>
        </ul>
    <li><b>DO</b> and <b>⏚</b><sub>3</sub> - Galvanically isolated open collector (OC) output: 30 V, 250 mA.</li> 
    <li><b>+V</b> and <b>⏚</b><sub>3</sub> - External VCC for <b>DO</b> (<30 V).</li> 
    <li><b>C & NO</b> - Common and Normally Open contacts of the internal Non-Latching Relay respectively.<br>Maximum relay ratings: 4 A at 24 VDC, 4 A at 40 VAC.</li>
    <li><b>A</b> and <b>⏚</b><sub>1</sub> - ADC input. Analog voltage range: 0-24 V. The input can be configured for 4-20 mA sensor protocol as current measurement (ACL).<span class="asterisk">*</span></li>
    <li><b>⏚</b><sub>1</sub> - GND for <b>DI</b><sub>1</sub> and <b>A</b>.</li>
    <li><b>⏚</b><sub>2</sub> - GND for <b>DI</b><sub>2</sub>.
    <li><b>⏚</b><sub>3</sub> - GND for <b>DO</b> pins.
    <li><b>''Note:''</b> input circuit components have tolerance of +-1%.</li>
</ul>
----
<span class="asterisk">*</span> The deviation from the actual input voltage and the voltage measured by the device is dependent on the input voltage value:
<ul>
    <li>'''≥ 1.5 V''' - the deviation is about ± 10 % and gets lower when the input voltage increases towards 5 V</li>
    <li>'''≥ 5 V''' - the deviation does not exceed ± 3 %</li>
    <li>'''≥ 9 V''' - the deviation does not exceed ± 2 %</li>
</ul>
<b>Additional note</b>: the deviation values specified above are applicable in temperatures of < 50 °C. Under higher temperatures the deviation values become considerably higher.
}}
}}


Line 99: Line 31:


{{#switch: {{{name}}}  
{{#switch: {{{name}}}  
| TRB141 = [[File:Networking_trb141_manual_input_output_status_v5.png|border|class=tlt-border]]
| TRB141 = [[File:Networking_trb141_manual_input_output_status_v6.png|border|class=tlt-border]]
| RUT955|RUT956|RUT906 = [[File:Networking_RUT955_manual_input_output_status_v4.png|border|class=tlt-border]]
| RUTM55 = [[File:Networking rutm55 manual input output status_v1.png|border|class=tlt-border]]
| TRB245|TRB246|TRB255|TRB256 = [[File:Networking_trb2_manual_input_output_status_v3.png|border|class=tlt-border]]
| RUT955|RUT956|RUT906|RUT976 = [[File:Networking_RUT956_manual_input_output_status_v1.png|border|class=tlt-border]]
| [[File:Networking_{{lc:{{{series}}}}}_manual_input_output_status.png|border|class=tlt-border]]
| TRB245|TRB246|TRB255|TRB256|TRB247 = [[File:Networking_trb2_manual_input_output_status_v5.png|border|class=tlt-border]]
}}
| RUTM30|RUTM31 = [[File:Networking_rut301_manual_input_output_status_v3.png|border|class=tlt-border]]
 
| #default = [[File:Networking_{{lc:{{{series}}}}}_manual_input_output_status_v3.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.
 
User can <b> Rename </b> Input/Output interface by clicking on the "Edit" button.
 
{{#switch: {{{name}}}
| TRB141 = '''Note:''' When dry/wet input is not connected to anything - the state of level is undetermined.
| #default =}}
{{#switch: {{{name}}}|RUT955|RUT956|RUT906|TRB245|TRB246|TRB255|TRB141|TRB256 =
'''Note:''' You can edit the adc/acl formula to customize values.
 
Custom I/O status labels for "Analog input":
[[File:Networking_manual_input_output_status_formula_adc0.png|border|class=tlt-border]]
 
Custom I/O status labels for "Analog current loop":
[[File:Networking_manual_input_output_status_formula_acl0.png|border|class=tlt-border]]
| #default =}}
 
===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:
 
{{#switch: {{{series}}}
| TRB1 ={{#ifeq:{{{name}}}
  | TRB141 | {{Template:Networking_trb141_manual_input_output_status}}
  | {{Template:Networking_{{lc:{{{series}}}}}_manual_input_output_status|name={{{name}}}}}
  }}
| #default = {{Template:Networking_{{lc:{{{series}}}}}_manual_input_output_status|name={{{name}}}}}
}}
 
{{#switch: {{{name}}}
| RUT300|RUT301|RUT360|TRB245|TRB246|TRB255|TRB140|TRB141|TRB142|TRB143|TRB145|TRB256|TRB160 = '''Note:''' Changes of configurable pin type  from output to input (and reverse) could causes the issues where the specific type was set in configurations. Make sure that configurations do not contradict one another.
| #default =
}}
}}


==Post/Get==
{{#ifeq: {{{powersocket}}}|1|
 
  {{#ifeq: {{{configurableio}}}|1|
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.
You can invert an Input pin or switch the state of an Output pin and change I/O direction by clicking on edit button in the "Actions" column. Also user can <b>Rename</b> Input/Output interface:
 
[[File:Networking_manual_configurable_input_output_configuration.png|border|class=tlt-border]]
[[File:Networking_rutos_manual_input_output_post_get_auth_settings_v3.png|border|class=tlt-border]]
 
<table class="nd-mantable">
<table class="nd-mantable">
     <tr>
     <tr>
Line 152: Line 50:
     </tr>
     </tr>
     <tr>
     <tr>
       <td>Enable</td>
       <td>Custom name</td>
       <td>off {{!}} on; default: <b>off</b></td>
       <td>string; default: <b>none</b></td>
       <td>Turns Post/Get on or off.</td>
       <td>Sets custom name for this I/O.</td>
     </tr>
     </tr>
     <tr>
     <tr>
       <td>Access</td>
       <td>Custom names for</td>
       <td>io_state {{!}} io_type {{!}} io_value {{!}} io_invert; default: <b>io_state, io_type, io_value, io_invert</b></td>
       <td><b>Low state</b> (Sets custom low state name); <b>High state</b> (Sets custom high state name)</td>
       <td>Accessible methods. It is considered that all methods are allowed if this list is empty.</td>
       <td>Sets custom state names.</td>
     </tr>
     </tr>
     <tr>
     <tr>
       <td>Username</td>
       <td>I/O direction</td>
       <td>string; default: <b>none</b></td>
       <td>Input {{!}} <span style="color:blue">Output</span>; default: <b>none</b></td>
       <td>Username used for authentication in POST/GET queries.</td>
       <td>Sets custom state names.</td>
     </tr>
     </tr>
     <tr>
     <tr>
    <td>Password</td>
      <td>Invert input</td>
        <td>string; default: <b>none</b></td>
      <td>on {{!}} off; default: <b>off</b></td>
        <td>Password used for authentication in POST/GET queries.</td>
      <td>Inverts the input signal.</td>
     </tr>
     </tr>
     <tr>
     <tr>
    <td>Confirm password</td>
      <td><span style="color:blue">Output state</span></td>
        <td>string; default: <b>none</b></td>
      <td>Low level {{!}} High level; default: <b>Low level</b></td>
        <td>Repeat the password for confirmation.</td>
      <td>Sets the state of the output.</td>
     </tr>
     </tr>
</table>
</table>
 
|You can invert an Input pin or switch the state of an Output pin by clicking on edit button in the "Actions" column. Also user can <b>Rename</b> Input/Output interface:
<b>Note:</b> password fields are required to enable POST/GET funcionallity.
[[File:Networking_manual_input_output_configuration.png|border|class=tlt-border]]
 
<table class="nd-mantable">
===Post/Get examples===
----
Use a web browser or any other compatible software to send HTTP POST/GET requests to the device.
 
====Setting====
----
Changing states of various I/O is possible using requests. Below is a table containing syntax examples of this usage:
 
<table class="nd-othertables_2">
     <tr>
     <tr>
         <th style="width: 500px">Action</th>
         <th>Field</th>
       <th style="width: 900px">POST/GET URL</th>
       <th>Value</th>
      <th>Description</th>
     </tr>
     </tr>
     <tr>
     <tr>
       <td>Turn Output state to high</td> <!--  another ifeq to change ip subnet according to trb14x...  -->
       <td>Custom name</td>
       <td><nowiki>http://192.168.</nowiki>{{#switch:{{{series}}}|TRB1|TRB5=2|#default=1}}.1/cgi-bin/<span style="color: #0054a6;"><b>io_state</b></span><nowiki>?username=user1&password=user1&pin=</nowiki>{{#ifeq:{{{series}}}|RUTX|dout1|<dio0/dio1{{#switch:{{{series}}}|TRB2|TRB2M=/dio2}}>}}<span style="color: #0054a6;"><b><nowiki>&state=on</nowiki></b></span></td>
       <td>string; default: <b>none</b></td>
    </tr>
      <td>Sets custom name for this I/O.</td>
    <tr>
      <td>Turn Output state to low after 5 seconds for 3 seconds</td>
      <td><nowiki>http://192.168.</nowiki>{{#switch:{{{series}}}|TRB1|TRB5=2|#default=1}}.1/cgi-bin/<span style="color: #0054a6;"><b>io_state</b></span><nowiki>?username=user1&password=user1&pin=</nowiki>{{#ifeq:{{{series}}}|RUTX|dout1|<dio0/dio1{{#switch:{{{series}}}|TRB2|TRB2M=/dio2}}>}}&state=on<span style="color: #0054a6;"><b><nowiki>&delay=5</nowiki></b></span><span style="color: #3232ff;"><b><nowiki>&time=3</nowiki></b></span></td>
     </tr>
     </tr>
     <tr>
     <tr>
        <td>Check t_time parameter - time is set in miliseconds</td>
      <td>Custom names for</td>
        <td><nowiki>http://192.168.</nowiki>{{#switch:{{{series}}}|TRB1|TRB5=2|#default=1}}.1/cgi-bin/<span style="color: #0054a6;"><b>io_state</b></span><nowiki>?username=user1&password=user1&pin=</nowiki>{{#ifeq:{{{series}}}|RUTX|dout1|<dio0/dio1{{#switch:{{{series}}}|TRB2|TRB2M=/dio2}}>}}&state=on<span style="color: #0054a6;"><b><nowiki>&t_time=msec</nowiki></b></span><span style="color: #3232ff;"><b><nowiki>&time=5000</nowiki></b></span><span style="color: #3232ff;"><b><nowiki>&time=1000</nowiki></b></span></td>
      <td><b>Low state</b> (Sets custom low state name); <b>High state (Sets custom high state name)</b></td>
      <td>Sets custom state names.</td>
     </tr>
     </tr>
     <tr>
     <tr>
        <td>Invert input</td>
      <td><b>Iput pin:</b> Invert input</td>
        <td><nowiki>http://192.168.</nowiki>{{#switch:{{{series}}}|TRB1|TRB5=2|#default=1}}.1/cgi-bin/io_invert?username=user1&password=user1&pin={{#ifeq:{{{series}}}|RUTX|din1|<dio0/dio1{{#switch:{{{series}}}|TRB2|TRB2M=/dio2}}>}}<span style="color: #0054a6;"><b><nowiki>&invert=<0/1> (0 - disable inversion/1 - enable inversion</nowiki></b></span></td>
      <td>on {{!}} off; default: <b>off</b></td>
      <td>Inverts the input signal.</td>
     </tr>
     </tr>
{{#ifeq:{{{configurableio}}}|1|
     <tr>
     <tr>
        <td>Change Configurable Input/Output with pin3 to Output</td>
      <td><b>Output pin:</b>Output state</td>
        <td><nowiki>http://192.168.</nowiki>{{#switch:{{{series}}}|TRB1|TRB5=2|#default=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>
      <td>Low level {{!}} High level; default: <b>Low level</b></td>
      <td>Sets the state of the output.</td>
     </tr>
     </tr>
||}}
</table>}}||}}


</table>
{{#switch: {{{name}}}
| TRB141 = '''Note:''' When dry/wet input is not connected to anything - the state of level is undetermined.
| #default =}}
{{#switch: {{{name}}}|RUT955|RUT956|RUT906|TRB245|TRB246|TRB255|TRB141|TRB256|RUT976|TRB247|RUTM55 = 
'''Note:''' You can edit the ADC/ACL formula to customize values and other Input/Output inversions, relays closures, if supported by the device, by clicking the edit button in the "Actions" column.


<b>Overview</b>:
<b>Example</b> - Custom I/O status labels for "Analog input":
<ul>
[[File:Networking_manual_input_output_status_formula_adc0_v1.png|border|class=tlt-border]]
    <li>192.168.{{#switch:{{{series}}}|TRB1|TRB5=2|#default=1}}.1 - device default LAN IP address; replace it in accordance with your own configuration.</li>
{{#ifeq:{{{configurableio}}}|1|<li>io_state,io_type or io_invert- allows you to change IO state, type or invert cofigurable input.</li>}}
    <li>username - login name from Post/Get configuration.</li>
    <li>password- password from Post/Get configuration.</li>
    <li>state - turn Output on or off.</li>
{{#ifeq:{{{configurableio}}}|1|<li>type - turn Configurable Input/Output to Input or Output.</li>}}
    <li>invert - enables inversion on/off (only works with inputs).</li>
    <li>delay - defines a delay (in seconds) after which the specified action will be performed.</li>
    <li>time - defines a window of time during which the action will take place. For instance, if you post an <i>on</i> action while specifying <i>time=5</i>, the output will turn on and stay on for 5 seconds before turning off.</li>
</ul>


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 <i>on</i> (or stay in <i>on</i> state if it was already that way), then after 5 more seconds it will switch to <i>off</i> state. In this case the overall command execution time is 15 seconds.
<b>Example</b> - Custom I/O status labels for "Analog current loop":
----
[[File:Networking_manual_input_output_status_formula_acl0_v1.png|border|class=tlt-border]]
To use Post/Get via SSH instead of a browser, you may want to use the <b><i>curl -X</i></b> command. Simply add the same URL command in between quotes and specify the HTTP method.
| #default =}}


<b>Examples:</b>
===Status from command line===
 
* <b>Switch output to High:</b>
curl -X GET "<nowiki>http://192.168.</nowiki>{{#switch:{{{series}}}|TRB1|TRB5=2|#default=1}}<nowiki>.1/cgi-bin/io_state?username=user1&password=user1&pin=dout1&state=on</nowiki>"
* <b>Switch output to Low after delay:</b>
curl -X GET "<nowiki>http://192.168.</nowiki>{{#switch:{{{series}}}|TRB1|TRB5=2|#default=1}}<nowiki>.1/cgi-bin/io_state?username=user1&password=user1&pin=dout1&state=off&delay=5</nowiki>"
 
====Reading====
----
----
Getting the current state of various I/O is possible using requests. Usage is very similar to the examples above:
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:


<b>Examples:</b>
{{#switch: {{{series}}}
| TRB1 ={{#ifeq:{{{name}}}
  | TRB141 | {{Template:Networking_trb141_manual_input_output_status}}
  | {{Template:Networking_{{lc:{{{series}}}}}_manual_input_output_status|name={{{name}}}}}
  }}
| RUTM = {{#switch: {{{name}}} | RUTM30|RUTM31 = {{Template:Networking_rut301_manual_input_output_status|name={{{name}}}}}
| RUTM55 = {{Template:Networking rutm55 manual input output status}}
| #default = {{Template:Networking_{{lc:{{{series}}}}}_manual_input_output_status|name={{{name}}}}}}}
| #default = {{Template:Networking_{{lc:{{{series}}}}}_manual_input_output_status|name={{{name}}}}}
}}


{{#ifeq:{{{configurableio}}}|1|* {{#switch:{{{name}}}|TRB245|TRB246|TRB255|TRB256 = <b>Read state of Configurable Input/Output PIN2/PIN3/PIN4:</b>
{{#switch: {{{name}}}
curl -X GET "<nowiki>http://192.168.</nowiki>{{#switch:{{{series}}}|TRB1|TRB5=2|#default=1}}<nowiki>.1/cgi-bin/io_value?username=user1&password=user1&pin=dio0</nowiki>"
| RUT300|RUT301|RUT360|TRB245|TRB246|TRB255|TRB140|TRB141|TRB142|TRB143|TRB145|TRB256|TRB160|RUTM30|RUTM31 = '''Note:''' Changes of configurable pin type from output to input (and reverse) could causes the issues where the specific type was set in configurations. Make sure that configurations do not contradict one another.
curl -X GET "<nowiki>http://192.168.</nowiki>{{#switch:{{{series}}}|TRB1|TRB5=2|#default=1}}<nowiki>.1/cgi-bin/io_value?username=user1&password=user1&pin=dio1</nowiki>"
| #default =
curl -X GET "<nowiki>http://192.168.</nowiki>{{#switch:{{{series}}}|TRB1|TRB5=2|#default=1}}<nowiki>.1/cgi-bin/io_value?username=user1&password=user1&pin=dio2</nowiki>" | #default = <b>Read state of Configurable Input/Output PIN3/PIN4:</b>
}}
curl -X GET "<nowiki>http://192.168.</nowiki>{{#switch:{{{series}}}|TRB1|TRB5=2|#default=1}}<nowiki>.1/cgi-bin/io_value?username=user1&password=user1&pin=dio0</nowiki>"
  curl -X GET "<nowiki>http://192.168.</nowiki>{{#switch:{{{series}}}|TRB1|TRB5=2|#default=1}}<nowiki>.1/cgi-bin/io_value?username=user1&password=user1&pin=dio1</nowiki>"}}|
* <b>Read state of digital input/output:</b>
curl -X GET "<nowiki>http://192.168.</nowiki>{{#switch:{{{series}}}|TRB1|TRB5=2|#default=1}}<nowiki>.1/cgi-bin/io_value?username=user1&password=user1&pin=din1</nowiki>"
curl -X GET "<nowiki>http://192.168.</nowiki>{{#switch:{{{series}}}|TRB1|TRB5=2|#default=1}}<nowiki>.1/cgi-bin/io_value?username=user1&password=user1&pin=dout1</nowiki>"}}
{{#ifeq:{{{analog}}}|1|* <b>Read state of analog input (in voltage mode):</b>
curl -X GET "<nowiki>http://192.168.</nowiki>{{#switch:{{{series}}}|TRB1|TRB5=2|#default=1}}<nowiki>.1/cgi-bin/io_value?username=user1&password=user1&pin=adc0</nowiki>"|}}
{{#ifeq:{{{acl}}}|1|* <b>Read state of analog input (in current mode):</b>
curl -X GET "<nowiki>http://192.168.</nowiki>{{#switch:{{{series}}}|TRB1|TRB5=2|#default=1}}<nowiki>.1/cgi-bin/io_value?username=user1&password=user1&pin=acl0</nowiki>"|}}
{{#ifeq:{{{dry}}}|1|* <b>Read state of Dry input PIN1:</b>
curl -X GET "<nowiki>http://192.168.</nowiki>{{#switch:{{{series}}}|TRB1|TRB5=2|#default=1}}<nowiki>.1/cgi-bin/io_value?username=user1&password=user1&pin=dwi0</nowiki>"|}}
{{#ifeq:{{{wet}}}|1|* <b>Read state of Wet input PIN2:</b>
curl -X GET "<nowiki>http://192.168.</nowiki>{{#switch:{{{series}}}|TRB1|TRB5=2|#default=1}}<nowiki>.1/cgi-bin/io_value?username=user1&password=user1&pin=dwi1</nowiki>"|}}
{{#ifeq:{{{isolated}}}|1|* <b>Read state of Isolated input:</b>
curl -X GET "<nowiki>http://192.168.</nowiki>{{#switch:{{{series}}}|TRB1|TRB5=2|#default=1}}<nowiki>.1/cgi-bin/io_value?username=user1&password=user1&pin=iio</nowiki>"|}}
{{#ifeq:{{{onewire}}}|1|* <b>Read state of One Wire:</b>
curl -X GET "<nowiki>http://192.168.</nowiki>{{#switch:{{{series}}}|TRB1|TRB5=2|#default=1}}<nowiki>.1/cgi-bin/io_value?username=user1&password=user1&pin=onewire</nowiki>"|}}
{{#ifeq:{{{relay}}}|1|* <b>Read state of Relay:</b>
curl -X GET "<nowiki>http://192.168.</nowiki>{{#switch:{{{series}}}|TRB1|TRB5=2|#default=1}}<nowiki>.1/cgi-bin/io_value?username=user1&password=user1&pin=relay0</nowiki>"|}}
{{#ifeq:{{{latchingrelay}}}|1|* <b>Read state of Latching Relay:</b>
curl -X GET "<nowiki>http://192.168.</nowiki>{{#switch:{{{series}}}|TRB1|TRB5=2|#default=1}}<nowiki>.1/cgi-bin/io_value?username=user1&password=user1&pin=relay1</nowiki>"|}}
{{#ifeq:{{{galvanic}}}|1|* <b>Read state of Galvanically isolated open collector output:</b>
curl -X GET "<nowiki>http://192.168.</nowiki>{{#switch:{{{series}}}|TRB1|TRB5=2|#default=1}}<nowiki>.1/cgi-bin/io_value?username=user1&password=user1&pin=dout2</nowiki>"|}}
{{#ifeq:{{{digitalpassive}}}|1|* <b>Read state of Digital input (only for passive sensors):</b>
curl -X GET "<nowiki>http://192.168.</nowiki>{{#switch:{{{series}}}|TRB1|TRB5=2|#default=1}}<nowiki>.1/cgi-bin/io_value?username=user1&password=user1&pin=din2</nowiki>"|}}


==Scheduler==
==Scheduler==
Line 283: Line 142:
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.
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]]
<b>Note:</b> I/O Scheduler is additional software on some devices that can be installed from the <b>System → [[{{{name}}} Package Manager|Package Manager]]</b> page.
 
[[File:Networking_rutos_manual_input_output_scheduler_general_configuration_v1.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:
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]]
[[File:Networking_rutos_manual_input_output_scheduler_add_button_v1.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:
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]]
[[File:Networking_rutos_manual_input_output_scheduler_instance_configuration.png|border|class=tlt-border]]


<table class="nd-mantable">
<table class="nd-mantable">
Line 306: Line 167:
     <tr>
     <tr>
       <td>Pin</td>
       <td>Pin</td>
       <td>output pin; default: <b>{{#ifeq:{{{configurableio}}}|1|Configurable Input/Output (2)|Output (4)}}</b></td>
       <td>output pin; default: <b>P. S. Different devices have different output settings.</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>
       <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>
Line 341: Line 202:
</table>
</table>


A Scheduler Instance will not work unless you turn both the the Scheduler service and the individual instance on:
<b>Note:</b> 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==
==I/O Juggler==


The <b>I/O Juggler</b> 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:
The <b>I/O Juggler</b> 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:
<b>Note:</b> I/O Juggler is additional software on some devices that can be installed from the <b>System → [[{{{name}}} Package Manager|Package Manager]]</b> page.


[[File:Networking_rutos_manual_input_output_io_juggler_scheme_condition_mobile_{{{mobile}}}.png|border|class=tlt-border]]
[[File:Networking_rutos_manual_input_output_io_juggler_scheme_condition_mobile_{{{mobile}}}.png|border|class=tlt-border]]
Line 383: Line 244:
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"{{#ifeq:{{{configurableio}}}|1|<span class="asterisk">*</span>|}}:
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"{{#ifeq:{{{configurableio}}}|1|<span class="asterisk">*</span>|}}:


[[File:Networking_rutos_manual_input_output_io_juggler_general_enabled.png|border|class=tlt-border]]
[[File:Networking_rutos_manual_input_output_io_juggler_general_enabled_v1.png|border|class=tlt-border]]
{{#ifeq:{{{configurableio}}}|1|<span class="asterisk">*</span> Input rules for Configurable I/O will work only when the type of the pin is set to "input"|}}
{{#ifeq:{{{configurableio}}}|1|<span class="asterisk">*</span> Input rules for Configurable I/O will work only when the type of the pin is set to "input"|}}
====Input====
====Input====
Line 391: Line 252:
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:
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]]
[[File:Networking_rutos_manual_input_output_io_juggler_general_input_add_button_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:
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]]
[[File:Networking_rutos_manual_input_output_io_juggler_general_input_configuration_juggler_input.png|border|class=tlt-border]]


<table class="nd-mantable">
<table class="nd-mantable">
Line 434: Line 295:
The <b>Actions</b> 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.
The <b>Actions</b> 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.


[[File:Networking_rutos_manual_input_output_io_juggler_actions_actions.png|border|class=tlt-border]]
[[File:Networking_rutos_manual_input_output_io_juggler_actions_actions_v1.png|border|class=tlt-border]]
 
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:


[[File:Networking_rutos_manual_input_output_io_juggler_actions_add_button.png|border|class=tlt-border]]
To create a new Action, click the 'Add' button.


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'):
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'):


[[File:Networking_rutos_manual_input_output_io_juggler_actions_configuration_reboot.png|border|class=tlt-border]]
[[File:Networking_rutos_manual_input_output_io_juggler_actions_configuration_reboot_v1.png|border|class=tlt-border]]


<b>Action configuration</b> depends on the selected action 'Type'. Each Action can have one or multiple user-defined [[#Conditions|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.
<b>Action configuration</b> depends on the selected action 'Type'. Each Action can have one or multiple user-defined [[#Conditions|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.
Line 452: Line 311:
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.
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.


{{#switch: {{{name}}}
[[File:Networking rutos manual input output io juggler actions email v3.png|border|class=tlt-border]]
| RUTX12| RUTM12 =  [[File:Networking rutos manual input output io juggler actions email rutx12 v2.png|border|class=tlt-border]]
| RUTX10 = [[File:Networking_rutos_manual_input_output_io_juggler_actions_email_rutx10_v2.png|border|class=tlt-border]]
| #default = [[File:Networking rutos manual input output io juggler actions email v2.png|border|class=tlt-border]]
}}


<table class="nd-mantable">
<table class="nd-mantable">
Line 463: Line 318:
       <th>Value</th>
       <th>Value</th>
       <th>Description</th>
       <th>Description</th>
    </tr>
    <tr>
        <td>Name</td>
        <td>string; default: <b>none</b></td>
        <td>Name of action.</td>
     </tr>
     </tr>
     <tr>
     <tr>
         <td>Subject</td>
         <td>Subject</td>
         <td>string; default: <b>none</b></td>
         <td>string; default: <b>none</b></td>
         <td>Subject of email.</td>
         <td>Subject of an email.</td>
     </tr>
     </tr>
     <tr>
     <tr>
Line 478: Line 338:
         <td>positive integer; default: <b>none</b></td>
         <td>positive integer; default: <b>none</b></td>
         <td>A period of time (in seconds) which has to pass after a trigger event before the action is executed.</td>
         <td>A period of time (in seconds) which has to pass after a trigger event before the action is executed.</td>
     </tr>{{#switch: {{{name}}}
     </tr>{{#ifeq: {{{dualmodem}}}| 1 |
| RUTX12| RUTM12 =
     <tr>
     <tr>
         <td>Modem</td>
         <td>Modem</td>
Line 486: Line 345:
     </tr>|}}
     </tr>|}}
     <tr>
     <tr>
         <td>Email account</td>
         <td>Sender's email account</td>
         <td>email account; default: <b>none</b></td>
         <td>email account; default: <b>none</b></td>
         <td>Email account used to send the email. Email accounts can be configured in the System → Administration → Recipients → [[{{{name}}}_Administration#Email_Accounts|Email Accounts]] page.</td>
         <td>Email account used to send the email. Email accounts can be configured in the System → Administration → Recipients → [[{{{name}}}_Administration#Email_Accounts|Email Accounts]] page.</td>
Line 494: Line 353:
         <td>email; default: <b>none</b></td>
         <td>email; default: <b>none</b></td>
         <td>Email address(es) of the message's receiver(s).</td>
         <td>Email address(es) of the message's receiver(s).</td>
    </tr>
    <tr>
        <td>Add conditions</td>
        <td>list; default: <b>none</b></td>
        <td>Specifies global conditions for this pin. Actions will trigger only if the conditions are met. Conditions are optional.</td>
     </tr>
     </tr>
</table>
</table>
Line 501: Line 365:
Changes the state of a selected output pin.
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]]
[[File:Networking_rutos_manual_input_output_io_juggler_actions_output.png|border|class=tlt-border]]


<table class="nd-mantable">
<table class="nd-mantable">
Line 508: Line 372:
       <th>Value</th>
       <th>Value</th>
       <th>Description</th>
       <th>Description</th>
    </tr>
    <tr>
        <td>Name</td>
        <td>string; default: <b>none</b></td>
        <td>Name of action.</td>
     </tr>
     </tr>
     <tr>
     <tr>
Line 516: Line 385:
     <tr>
     <tr>
         <td>Control</td>
         <td>Control</td>
         <td>output; default: <b>{{#ifeq:{{{configurableio}}}|1|Configurable Input/Output (2)|Output (4)}}</b></td>
         <td>output pin; default: <b>P. S. Different devices have different output settings.</b></td>
         <td>Selects the output controlled by this Action.</td>
         <td>Specifies the output/relay of which the state will be changed.</td>
     </tr>
     </tr>
     <tr>
     <tr>
Line 526: Line 395:
     <tr>
     <tr>
         <td>Maintain</td>
         <td>Maintain</td>
         <td>off | on; default: <b>on</b></td>
         <td>off {{!}} on; default: <b>on</b></td>
         <td>When set to 'on', the output maintains its new state after reboot (the state is changed in the config file as well).</td>
         <td>When set to 'on', the output maintains its new state after reboot (the state is changed in the config file as well).</td>
     </tr>
     </tr>
     <tr>
     <tr>
         <td>Invert</td>
         <td>Invert</td>
         <td>off | on; default: <b>off</b></td>
         <td>off {{!}} on; default: <b>off</b></td>
         <td>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.</td>
         <td>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.</td>
     </tr>
     </tr>
     <tr>
     <tr>
         <td>State copying</td>
         <td>State copying</td>
         <td>off | on; default: <b>off</b></td>
         <td>off {{!}} on; default: <b>off</b></td>
         <td>Copies the state from the selected input and applies it to the selected output. This can be used instead of specifying a static state.</td>
         <td>Copies the state from the selected input and applies it to the selected output. This can be used instead of specifying a static state.</td>
     </tr>
     </tr>
     <tr>
     <tr>
         <td>State</td>
         <td>State</td>
         <td>High | Low; default: <b>High</b></td>
         <td>High {{!}} Low; default: <b>High</b></td>
         <td>Specifies the state of the output pin that will be set by this Action.</td>
         <td>Specifies the state of the output pin that will be set by this Action.</td>
    </tr>
    <tr>
        <td>Add conditions</td>
        <td>list; default: <b>none</b></td>
        <td>Specifies global conditions for this pin. Actions will trigger only if the conditions are met. Conditions are optional.</td>
     </tr>
     </tr>
</table>
</table>
Line 550: Line 424:
Executes a HTTP POST/GET request.
Executes a HTTP POST/GET request.


[[File:Networking_rutos_manual_input_output_io_juggler_actions_http_v2.png|border|class=tlt-border]]
[[File:Networking_rutos_manual_input_output_io_juggler_actions_http_v3.png|border|class=tlt-border]]


<table class="nd-mantable">
<table class="nd-mantable">
Line 557: Line 431:
       <th>Value</th>
       <th>Value</th>
       <th>Description</th>
       <th>Description</th>
    </tr>
    <tr>
        <td>Name</td>
        <td>string; default: <b>none</b></td>
        <td>Name of action.</td>
     </tr>
     </tr>
     <tr>
     <tr>
Line 597: Line 476:
         <td>positive integer; default: <b>none</b></td>
         <td>positive integer; default: <b>none</b></td>
         <td>A period of time (in seconds) which has to pass after a trigger event before this Action is executed.</td>
         <td>A period of time (in seconds) which has to pass after a trigger event before this Action is executed.</td>
    </tr>
    <tr>
        <td>Add conditions</td>
        <td>list; default: <b>none</b></td>
        <td>Specifies global conditions for this pin. Actions will trigger only if the conditions are met. Conditions are optional.</td>
     </tr>
     </tr>
</table>
</table>
Line 604: Line 488:
Executes a custom, user-written shell script.
Executes a custom, user-written shell script.


{{#switch: {{{name}}}
[[File:Networking_rutos_manual_input_output_io_juggler_actions_script_v1.png|border|class=tlt-border]]
| RUTX10 = [[File:Networking_rutos_manual_input_output_io_juggler_actions_script_rutx10_v1.png|border|class=tlt-border]]
| #default = [[File:Networking_rutos_manual_input_output_io_juggler_actions_script.png|border|class=tlt-border]]
}}
 


<table class="nd-mantable">
<table class="nd-mantable">
Line 615: Line 495:
       <th>Value</th>
       <th>Value</th>
       <th>Description</th>
       <th>Description</th>
    </tr>
    <tr>
        <td>Name</td>
        <td>string; default: <b>none</b></td>
        <td>Name of action.</td>
     </tr>
     </tr>
     <tr>
     <tr>
Line 635: Line 520:
         <td>string; default: <b>none</b></td>
         <td>string; default: <b>none</b></td>
         <td>Optional arguments which can be provided for the script. You can include device information with values given below this input field.</td>
         <td>Optional arguments which can be provided for the script. You can include device information with values given below this input field.</td>
    </tr>
    <tr>
        <td>Add conditions</td>
        <td>list; default: <b>none</b></td>
        <td>Specifies global conditions for this pin. Actions will trigger only if the conditions are met. Conditions are optional.</td>
     </tr>
     </tr>
</table>
</table>
Line 642: Line 532:
Reboots the device.
Reboots the device.


[[File:Networking_rutos_manual_input_output_io_juggler_actions_reboot.png|border|class=tlt-border]]
[[File:Networking_rutos_manual_input_output_io_juggler_actions_reboot_v1.png|border|class=tlt-border]]


<table class="nd-mantable">
<table class="nd-mantable">
Line 649: Line 539:
       <th>Value</th>
       <th>Value</th>
       <th>Description</th>
       <th>Description</th>
    </tr>
    <tr>
        <td>Name</td>
        <td>string; default: <b>none</b></td>
        <td>Name of action.</td>
     </tr>
     </tr>
     <tr>
     <tr>
Line 654: Line 549:
         <td>positive integer; default: <b>none</b></td>
         <td>positive integer; default: <b>none</b></td>
         <td>A period of time (in seconds) which has to pass after a trigger event before this Action is executed.</td>
         <td>A period of time (in seconds) which has to pass after a trigger event before this Action is executed.</td>
    </tr>
    <tr>
        <td>Add conditions</td>
        <td>list; default: <b>none</b></td>
        <td>Specifies global conditions for this pin. Actions will trigger only if the conditions are met. Conditions are optional.</td>
     </tr>
     </tr>
</table>
</table>
Line 661: Line 561:
Switches to using a specified Configuration Profile.
Switches to using a specified Configuration Profile.


[[File:Networking_rutos_manual_input_output_io_juggler_actions_profile.png|border|class=tlt-border]]
[[File:Networking_rutos_manual_input_output_io_juggler_actions_profile_v1.png|border|class=tlt-border]]


<table class="nd-mantable">
<table class="nd-mantable">
Line 668: Line 568:
       <th>Value</th>
       <th>Value</th>
       <th>Description</th>
       <th>Description</th>
    </tr>
    <tr>
        <td>Name</td>
        <td>string; default: <b>none</b></td>
        <td>Name of action.</td>
     </tr>
     </tr>
     <tr>
     <tr>
Line 678: Line 583:
         <td>profile; default: <b>default</b> </td>
         <td>profile; default: <b>default</b> </td>
         <td>Configuration Profile that will be applied by this Action. Configuration Profiles can be defined in the System → [[{{{name}}}_Profiles|Profiles]] page.</td>
         <td>Configuration Profile that will be applied by this Action. Configuration Profiles can be defined in the System → [[{{{name}}}_Profiles|Profiles]] page.</td>
    </tr>
    <tr>
        <td>Add conditions</td>
        <td>list; default: <b>none</b></td>
        <td>Specifies global conditions for this pin. Actions will trigger only if the conditions are met. Conditions are optional.</td>
     </tr>
     </tr>
</table>
</table>
Line 685: Line 595:
Enables or disables RMS service.
Enables or disables RMS service.


[[File:Networking_rutos_manual_input_output_io_juggler_actions_rms_v1.png|border|class=tlt-border]]
[[File:Networking_rutos_manual_input_output_io_juggler_actions_rms_v2.png|border|class=tlt-border]]


<table class="nd-mantable">
<table class="nd-mantable">
Line 692: Line 602:
       <th>Value</th>
       <th>Value</th>
       <th>Description</th>
       <th>Description</th>
    </tr>
    <tr>
        <td>Name</td>
        <td>string; default: <b>none</b></td>
        <td>Name of action.</td>
     </tr>
     </tr>
     <tr>
     <tr>
Line 702: Line 617:
         <td>off {{!}} on; default: <b>off</b> </td>
         <td>off {{!}} on; default: <b>off</b> </td>
         <td>Specifies whether RMS service will be enabled or disabled with this action.</td>
         <td>Specifies whether RMS service will be enabled or disabled with this action.</td>
    </tr>
    <tr>
        <td>Add conditions</td>
        <td>list; default: <b>none</b></td>
        <td>Specifies global conditions for this pin. Actions will trigger only if the conditions are met. Conditions are optional.</td>
     </tr>
     </tr>
</table>
</table>
Line 709: Line 629:
Executes a MQTT action.
Executes a MQTT action.


{{#switch: {{{name}}}
[[File:Networking rutos manual input output io juggler actions mqtt_v2.png|border|class=tlt-border]]
| RUTX10 = [[File:Networking_rutos_manual_input_output_io_juggler_actions_mqtt_rutx10_v1.png|border|class=tlt-border]]
| #default = [[File:Networking rutos manual input output io juggler actions mqtt_v1.png|border|class=tlt-border]]
}}
 
 


<table class="nd-mantable">
<table class="nd-mantable">
Line 721: Line 636:
       <th>Value</th>
       <th>Value</th>
       <th>Description</th>
       <th>Description</th>
    </tr>
    <tr>
        <td>Name</td>
        <td>string; default: <b>none</b></td>
        <td>Name of action.</td>
     </tr>
     </tr>
     <tr>
     <tr>
Line 814: Line 734:
     </tr>
     </tr>
</table>
</table>


{{#ifeq: {{{dualsim}}} | 1 |
{{#ifeq: {{{dualsim}}} | 1 |
Line 821: Line 740:
Switches to using the specified SIM card.
Switches to using the specified SIM card.


[[File:Networking_rutos_manual_input_output_io_juggler_actions_change_sim_v2.png|border|class=tlt-border]]
[[File:Networking_rutos_manual_input_output_io_juggler_actions_change_sim_v3.png|border|class=tlt-border]]


<table class="nd-mantable">
<table class="nd-mantable">
Line 828: Line 747:
       <th>Value</th>
       <th>Value</th>
       <th>Description</th>
       <th>Description</th>
    </tr>
    <tr>
        <td>Name</td>
        <td>string; default: <b>none</b></td>
        <td>Name of action.</td>
     </tr>
     </tr>
     <tr>
     <tr>
Line 848: Line 772:
         <td>SIM1 {{!}} SIM2; default: <b>SIM1</b></td>
         <td>SIM1 {{!}} SIM2; default: <b>SIM1</b></td>
         <td>Selects a SIM card to switch to. This field is visible only when the 'Flip' field is set to 'off'.</td>
         <td>Selects a SIM card to switch to. This field is visible only when the 'Flip' field is set to 'off'.</td>
    </tr>
    <tr>
        <td>Add conditions</td>
        <td>list; default: <b>none</b></td>
        <td>Specifies global conditions for this pin. Actions will trigger only if the conditions are met. Conditions are optional.</td>
     </tr>
     </tr>
</table>
</table>
Line 856: Line 785:
Sends an SMS message to specified recipients.
Sends an SMS message to specified recipients.


[[File:Networking_rutos_manual_input_output_io_juggler_actions_sms.png|border|class=tlt-border]]
[[File:Networking_rutos_manual_input_output_io_juggler_actions_sms_v1.png|border|class=tlt-border]]


<table class="nd-mantable">
<table class="nd-mantable">
Line 863: Line 792:
       <th>Value</th>
       <th>Value</th>
       <th>Description</th>
       <th>Description</th>
    </tr>
    <tr>
        <td>Name</td>
        <td>string; default: <b>none</b></td>
        <td>Name of action.</td>
     </tr>
     </tr>
     <tr>
     <tr>
Line 883: Line 817:
         <td>phone number {{!}} phone group; default: <b>none</b></td>
         <td>phone number {{!}} phone group; default: <b>none</b></td>
         <td>Phone number of a single recipient or a Phone group of multiple recipients. The name and selection type of this field depends on the value set in the 'Recipients' field.</td>
         <td>Phone number of a single recipient or a Phone group of multiple recipients. The name and selection type of this field depends on the value set in the 'Recipients' field.</td>
    </tr>
    <tr>
        <td>Add conditions</td>
        <td>list; default: <b>none</b></td>
        <td>Specifies global conditions for this pin. Actions will trigger only if the conditions are met. Conditions are optional.</td>
     </tr>
     </tr>
</table>
</table>
Line 891: Line 830:
Sends an SMS message to specified recipients.
Sends an SMS message to specified recipients.


[[File:Networking_rutos_manual_input_output_io_juggler_actions_wifi_v1.png|border|class=tlt-border]]
[[File:Networking_rutos_manual_input_output_io_juggler_actions_wifi_v2.png|border|class=tlt-border]]


<table class="nd-mantable">
<table class="nd-mantable">
Line 898: Line 837:
       <th>Value</th>
       <th>Value</th>
       <th>Description</th>
       <th>Description</th>
    </tr>
    <tr>
        <td>Name</td>
        <td>string; default: <b>none</b></td>
        <td>Name of action.</td>
     </tr>
     </tr>
     <tr>
     <tr>
Line 908: Line 852:
         <td>off {{!}} on; default: <b>off</b></td>
         <td>off {{!}} on; default: <b>off</b></td>
         <td>Specifies whether all WiFi interfaces will be enabled/disabled with this action.</td>
         <td>Specifies whether all WiFi interfaces will be enabled/disabled with this action.</td>
    </tr>
    <tr>
        <td>Add conditions</td>
        <td>list; default: <b>none</b></td>
        <td>Specifies global conditions for this pin. Actions will trigger only if the conditions are met. Conditions are optional.</td>
     </tr>
     </tr>
</table>
</table>
Line 916: Line 865:
The <b>Conditions</b> 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.
The <b>Conditions</b> 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.


[[File:Networking_rutos_manual_input_output_io_juggler_conditions.png|border|class=tlt-border]]
[[File:Networking_rutos_manual_input_output_io_juggler_conditions_v1.png|border|class=tlt-border]]


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.
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.
[[File:Networking_rutos_manual_input_output_io_juggler_conditions_add_button.png|border|class=tlt-border]]


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.
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.
Line 928: Line 875:
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.
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]]
[[File:Networking_rutos_manual_input_output_io_juggler_conditions_io.png|border|class=tlt-border]]


<table class="nd-mantable">
<table class="nd-mantable">
Line 935: Line 882:
       <th>Value</th>
       <th>Value</th>
       <th>Description</th>
       <th>Description</th>
    </tr>
    <tr>
        <td>Name</td>
        <td>string; default: <b>none</b></td>
        <td>Name of condition.</td>
     </tr>
     </tr>
     <tr>
     <tr>
         <td>I/O</td>
         <td>I/O</td>
         <td>inputs/outputs; default: <b>Output(4)</b></td>
         <td>inputs/outputs; default: <b>P. S. Different devices have different output settings.</b></td>
         <td>Specifies the I/O pin to which this Condition is listening to.</td>
         <td>Specifies the I/O to which the condition is listening to..</td>
     </tr>
     </tr>
     <tr>
     <tr>
         <td>State</td>
         <td>State</td>
         <td>High | Low; default: <b>High</b></td>
         <td>High {{!}} Low; default: <b>High</b></td>
         <td>Specifies in what state the pin has to be in in order for the Condition to be met.</td>
         <td>Specifies in what state the pin has to be in in order for the Condition to be met.</td>
     </tr>
     </tr>
</table>
</table>
{{#ifeq: {{{analog}}} | 1 |
{{#ifeq: {{{analog}}} | 1 |
====Condition type: Analog voltage====
====Condition type: ADC/ACL====
----
----
Analog voltage Condition type measures the value of the Analog input and checks whether it inside or outside the user-specified range.
Analog voltage/current Condition type measures the value of the Analog input and checks whether it inside or outside the user-specified range.


[[File:Networking_rutos_manual_input_output_io_juggler_conditions_analog_voltage.png|border|class=tlt-border]]
[[File:Networking_rutos_manual_input_output_io_juggler_conditions_analog_voltage_v1.png|border|class=tlt-border]]


<table class="nd-mantable">
<table class="nd-mantable">
Line 959: Line 912:
       <th>Value</th>
       <th>Value</th>
       <th>Description</th>
       <th>Description</th>
    </tr>
    <tr>
        <td>Name</td>
        <td>string; default: <b>none</b></td>
        <td>Name of condition.</td>
    </tr>
    <tr>
        <td>Input</td>
        <td><span style="color:blue">Analog Current Loop</span> {{!}} Analog Input; default: <b>Analog Current Loop</b></td>
        <td>Specifies the analog input to which the condition is listening to.</td>
     </tr>
     </tr>
     <tr>
     <tr>
         <td>Condition</td>
         <td>Condition</td>
         <td>Inside voltage {{!}} Outside voltage; default: <b>Inside voltage</b> </td>
         <td>Inside range {{!}} Outside range; default: <b>Inside range</b> </td>
         <td>Whether to evaluate the condition as true inside or outside the specified range.</td>
         <td>Whether to evaluate the condition as true inside or outside the specified range.</td>
     </tr>
     </tr>
     <tr>
     <tr>
         <td>Input</td>
         <td><span style="color:blue">ACL Property</span></td>
         <td>inputs; default: <b>none</b></td>
        <td>Current {{!}} Percent; default: <b>Current</b> </td>
         <td>Specifies the analog input to which the condition is listening to.</td>
        <td>Select which property - ampere or percentage the condition listens to.</td>
    </tr>
    <tr>
        <td><span style="color:blue">Min current/percent</span></td>
        <td>positive float; default: <b>none</b></td>
        <td>Specifies minimum current of the range. Values between 4-20mA / Specifies minimum percent of the range.</td>
    </tr>
    <tr>
         <td><span style="color:blue">Max current/percent</span></td>
        <td>positive float; default: <b>none</b></td>
         <td>Specifies maximum current of the range. Values between 4-20mA. / Specifies maximum percent of the range.</td>
     </tr>
     </tr>
     <tr>
     <tr>
Line 980: Line 953:
         <td>Specifies magimum voltage of range.</td>
         <td>Specifies magimum voltage of range.</td>
     </tr>
     </tr>
</table>
</table>|}}
|}}
 
====Condition type: Boolean group====
====Condition type: Boolean group====
----
----
Line 1,003: Line 976:
Below is an example of Condition type: Boolean group configuration.
Below is an example of Condition type: Boolean group configuration.


[[File:Networking_rutos_manual_input_output_io_juggler_conditions_boolean_group.png|border|class=tlt-border]]
[[File:Networking_rutos_manual_input_output_io_juggler_conditions_boolean_group_v1.png|border|class=tlt-border]]


<table class="nd-mantable">
<table class="nd-mantable">
Line 1,019: Line 992:
         <td>Add conditions</td>
         <td>Add conditions</td>
         <td>conditions; default: <b>none</b> </td>
         <td>conditions; default: <b>none</b> </td>
         <td>Specifies conditions which have to be met for action to occur.</td>
         <td>Specifies global conditions for this pin. Actions will trigger only if the conditions are met. Conditions are optional.</td>
     </tr>
     </tr>
</table>
</table>


====Condition types: Date/Time====
====Condition types: Date/Time====
Line 1,037: Line 1,008:
</ul>
</ul>


[[File:Networking_rutos_manual_input_output_io_juggler_conditions_date_time.png|border|class=tlt-border]]
[[File:Networking_rutos_manual_input_output_io_juggler_conditions_date_time_v1.png|border|class=tlt-border]]


Each type can be configured in two distinct ways:
Each type can be configured in two distinct ways:
Line 1,055: Line 1,026:
     </li>
     </li>
</ol>
</ol>
==Impulse Counter==
<b>Impulse Counter</b> service can register chages in the {{#ifeq: {{{configurableio}}} | 1 | `Configurable Input/Output` | `Input`}} state  of a Power socket when a value is transitioned from low to high, from high to low, or both.
===Configuration===
----
The <b>configuration</b> page is used to enable impulse counter and select GPIO pins for input configuration.
====Impulse counter configuration====
----
[[File:Networking_rutos_manual_input_output_impulse_counter_configuration.png|border|class=tlt-border]]
<table class="nd-mantable">
    <tr>
        <th>Field</th>
      <th>Value</th>
      <th>Description</th>
    </tr>
    <tr>
        <td>Status</td>
        <td></td>
        <td>Status of service, whether it is currently running.</td>
    </tr>
    <tr>
        <td>Enabled</td>
        <td>off {{!}} on; default: <b>off</b></td>
        <td>Enable impulse counter.</td>
    </tr>
    <tr>
        <td>Count store duration</td>
        <td>Hour {{!}} Day {{!}} Week {{!}} Month; default: <b>Day</b></td>
        <td>Define for how long the impulse counts are retained, in seconds, before being reset.</td>
    </tr>
    <tr>
        <td>Reset counts</td>
        <td>-(interactive buttom)</td>
        <td>Reset collected impulse counts.</td>
    </tr>
</table>
====Input configuration====
----
A Input configuration defines which {{#ifeq: {{{configurableio}}} | 1 | `Configurable Inputs/Outputs` | `Inputs`}} will be used for impulse counting. Input configuration list is empty by default. Click the 'Add' button in order to create a new Input instance:
[[File:Networking_rutos_manual_input_output_impulse_counter_input_configuration_add_v2.png|border|class=tlt-border]]
You will then be taken to the configuration page for the newly added input:
[[File:Networking_rutos_manual_input_output_impulse_counter_input_configuration.png|border|class=tlt-border]]
<table class="nd-mantable">
    <tr>
        <th>Field</th>
      <th>Value</th>
      <th>Description</th>
    </tr>
    <tr>
        <td>Enable</td>
        <td>off {{!}} on; default: <b>on</b></td>
        <td>Enable input configuration.</td>
    </tr>
    <tr>
        <td>Name</td>
        <td>string; default: <b>none</b></td>
        <td>Name of input configuration.</td>
    </tr>
    <tr>
        <td>GPIO pin</td>
        <td>{{#ifeq: {{{configurableio}}} | 1 | Configurable Input/Output (3) {{!}} Configurable Input/Output (4) | Input (3)}}{{#ifeq: {{{isolated}}} | 1 | {{!}} Isolated Input (2,7)|}} {{#ifeq: {{{digitalpassive}}} | 1 | {{!}} Digital Input (1)|}}; default: <b>{{#ifeq: {{{configurableio}}} | 1 | Configurable Input/Output (3) | Input (3)}}</b></td>
        <td>Select GPIO pin for input configuration.</td>
    </tr>
    <tr>
        <td>Edge</td>
        <td>Rising {{!}} Falling {{!}} Both; default: <b>Rising</b></td>
        <td>Select the edge option to have the impulse counter increment on the signal`s transition from low to high, high to low, or both.</td>
    </tr>
    <tr>
        <td>Debounce</td>
        <td>integer; default: <b>0</b></td>
        <td>Debounce filters out rapid, unintended signals. Set between 0-1000 ms to ensure only stable inputs are registered.</td>
    </tr>
</table>
===Statistics===
----
<b>Statistics</b> page displays PIN statistics in routers local time.
[[File:Networking_rutos_manual_input_output_impulse_counter_statistics.png|border|class=tlt-border]]


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