---
# System prepended metadata

title: 'OLD-SynLink CLI for Serial, SSH, and Telnet'
tags: [serial, telnet, documentation, ssh]

---

# OLD-SynLink CLI for Serial, SSH, and Telnet
###### tags: `documentation` `ssh` `telnet` `serial`


[TOC]

# Overview
SynLink Command Line Interface is a text based terminal shell which shows information and controls PDU functions.
Typing in commands from the list of commands, will provide further details and additional commands which can be appended to previous commands separated by spaces.

## Accessing CLI
Access to SynLink Command Line Interface can be achieved with with SSH (Secure Shell), Telnet, or a local serial connection.

###  Accessing CLI via SSH
Execute the `ssh` command with username and IP address separated by an @. A prompt for admin password will appear. Once properly authenticated, SynLink Shell Help Menu will appear.

**Example Ubuntu/Debian OS** 
```shell
$ ssh admin@192.168.1.100
The authenticity of host '192.168.1.100 (192.168.1.100)' can't be established.
ECDSA key fingerprint is SHA256:VZMUnPw2MrIWR9y9pBbKlEzuWZRxJAo9bLMMUdsO/Jw.
Are you sure you want to continue connecting (yes/no)? 
admin@192.168.1.100's password: 
-----------------------
SynLink Shell Help Menu
-----------------------

Usage: [command] [options...]

Commands 
  status       print status reports for all Syn processess
  network      see options for networking configurations and status
  system       see options for PDU power, control, sensors, etc
  logs         see options for logs
  settings     see options for managing users settings
  help         returns this message
  [exit]       Exits SynLink Shell

SynLink> 

```
**Example Windows 10 OS** 

**PuTTY** is a useful tool which has an SSH Client. You can download PuTTY on their organization's website

[https://www.putty.org/](https://www.putty.org/)

Once downloaded open the application. The following screen will likely appear.

![Putty-Screen](https://i.imgur.com/s9fRrTu.png)

Under `Host Name (or IP address)` you can add your username and IP address.
Example: `admin@192.168.1.100`

![Putty-Screen-prompt](https://i.imgur.com/HpZ5B5C.png)


### Accessing CLI via Telnet
Follows  similar steps to SSH for Ubuntu/Debian Linux OS and Windows 10 OS

**Ubuntu/Debian Linux OS**
```shell
telnet admin@192.168.1.100
```
**Windows 10 OS**
Same steps as SSH, on PuTTY select telnet instead. 

### Accessing CLI via USB-Serial
TODO

# List of Commands

## `network`
`network` command returns a list of commands to access networking related subcategories. To see a general overview of networking configurations and status use command `status`. Options to change configurations can be found within each subcategory.

```shell
SynLink> network
---------------------------
SynLink PDU Networking Menu
---------------------------

Usage: network [command] [options...]

Commands:    
   status    Print all network status and configurations
   restart   Restart all networking related activity.    
   ip        Print options to show and configure PDU IP
   web       Print options to show and configure HTTP(S) Webserver
   ssh       Print options to show and configure ssh info
   telnet    Print options to show and configure telnet info
   snmp      Print options to show and configure SNMP info
   syslog    Print options to show and configure syslog info
   smtp      Print options to show and configure smtp info
   ntp       Print options to show and configure NTP info
```

### `network status`
`network status` will print in human readable format networking information and configurations.
```shell
SynLink> network status
----------------
Network Settings
----------------

Process        Control  Status   Port Proto    
-------------------------------------------
Webserver      Enabled  Running  80   TCP
SSH Server     Enabled  Running  22   TCP
Telnet Server  Enabled  Running  23   TCP 
SNMP Agent     Enabled  Running  161  UDP
NTP Sync       Enabled  Running  123  UDP
Syslog Server  Enabled  Running  514  UDP

IP Settings
-----------
IP Address Assignment:  DHCP
DHCP Assigned IP:       192.168.1.126       // only shows with ipAssign DHCP
Static Assigned IP:     192.168.1.100
Mac Address:            80:1F:12:41:ED:28
Gateway IP:             192.168.1.1
Source IP:              0.0.0.0
Source Subnet:          255.255.255.0
Primary DNS IP:         8.8.8.8
Secondary DNS IP:       8.8.4.4

Web Settings
------------
Availability:           Enabled
Status:                 Running
Port:                   80
SSL Security:           Enabled
Max Users:              0 users   (No Max Limit)
Web Idle Timeout:       0 seconds (No Timeout)

SSH Settings
------------
Availability            Enabled
Status:                 Running
Port:                   22
SSH Idle Timeout:       90 seconds
Auth Key Login:         Enabled
Password Login:         Enabled

Telnet Settings
---------------
Availability:           Enabled
Status:                 Running
Port:                   23

Syslog Settings
---------------
Availability            Enabled
Status:                 Running
Port:                   514
Protocol:               RFC5424
Remote Logging:         Enabled
Remote Log IP:          192.168.1.181

SMTP Settings
-------------
TODO

SNMP Settings
-------------
TODO

AutoPing Reboot Settings
------------------------
TODO

NTP Settings
------------
TODO

```

### `network restart`
`network restart` will restart any networking related processes with most recently changed settings.
```shell
SynLink> network restart
Are you sure you want to restart the network? 
If certain IP settings are changed, you may lose connectivity.
[y/n]
>y
Network settings successfully restarted

```

### `network ip`

`network ip` is a subcategory of `network` section which deals with IP assignment of PDU, and other related configurations necessary to reach PDU Host via Internet Protocol. 
```shell
SynLink> network ip
---------------
Network IP Menu
---------------

Usage: network ip [command] [options...]

Commands:
  status       Show current status and configurations for IP
  set          See configuration options to change IP settings

```

#### `network ip status`
`network ip status` will print in human readable format networking information and configurations related to IP of PDU.

```shell
SynLink> network ip status
-----------
IP Settings
-----------
IP Address Assignment:  DHCP
DHCP Assigned IP:       192.168.1.126       // only shows with ipAssign DHCP
Static Assigned IP:     192.168.1.100
Mac Address:            80:1F:12:41:ED:28
Gateway IP:             192.168.1.1
Source IP:              0.0.0.0
Source Subnet:          255.255.255.0
Primary DNS IP:         8.8.8.8
Secondary DNS IP:       8.8.4.4
```

#### `network ip set`
`network ip set` will show all available configurations to change. Follow 'Usage' example to change values of interest.
```shell
SynLink> network ip set
-------------------------
Network IP Configurations
-------------------------

Usage: network ip set [key] [value]

Key           | Values      | Default Value | Description
---------------------------------------------------------------------------------------------------------------------------
static_ip     | IP_ADDRESS  | 192.168.1.100 | IP Address that unit will respond to if ip_assign is set to 'dhcp'
subnet_mask   | SUBNET_MASK | 255.255.255.0 | Subnet Mask that divides the IP address into network address and host address
gateway_ip    | IP_ADDRESS  | 192.168.1.1   | IP Address for forwarding host (router) to other networks
ip_assign     | static,dhcp | static        | Choosing DHCP will have DHCP Server at 'gateway_ip' assign IP address to PDU
primary_dns   | IP_ADDRESS  | 8.8.8.8       | Default DNS Server from Google
secondary_dns | IP_ADDRESS  | 8.8.4.4       | Default Secondary DNS Server from Google
source_ip     | IP_ADDRESS  | 0.0.0.0       | Allows one specific IP to access PDU, or a group depending on source_subnet setting. 0.0.0.0 allows all.
source_subnet | SUBNET_MASK | 255.255.255.0 | Can be set to allow a range of IP's to access PDU or a single IP. 255.255.255.255 for the exact source_ip match. 255.255.255.0 for all IP address starting with first 3 octets of source_ip
--------------------------------------------------------------------------------------------------------------------------
```
##### `network ip set static_ip`
IP input must follow [Valid IP](#ip-validation) requirement.
Requires running `syn network restart`. May lose connection depending on network settings changed, and connection method.
```shell
SynLink> network ip set static_ip 192.168.1.101
Successfully saved setting. 
Please restart network to change IP address.
```

##### `network ip set subnet_mask`
Subnet Mask input must [Valid Subnet Mask](#subnet-mask-validation) requirement.
Requires running `syn network restart`. May lose connection depending on network settings changed, and connection method.
```shell
SynLink> network ip set subnet_mask 255.255.0.0
Successfully saved setting.
Please restart network to change Subnet Mask.
```
##### `network ip set gateway_ip`
IP input must follow [Valid IP](#ip-validation) requirement.
Requires running `syn network restart`. May lose connection depending on network settings changed, and connection method.
```shell
SynLink> network ip set gateway_ip 192.168.1.2
Successfully saved setting.
Please restart network to change Gateway IP
```

##### `network ip set ip_assign`
IP Assign input must follow be either "`dhcp`" or "`static`".
Requires running `syn network restart`. May lose connection depending on network settings changed, and connection method.

```shell
SynLink> network ip set ip_assign dhcp
Successfully saved setting.
Please restart network to change IP Assignment.
```
##### `network ip set primary_dns`
IP input must follow [Valid IP](#IP-Validation) requirement.
Requires running `syn network restart`. May lose connection depending on network settings changed, and connection method.
```shell
SynLink> network ip set primary_dns 1.1.1.1
Successfully saved setting.
Please restart network to change Primary DNS
```
##### `network ip set secondary_dns`
IP input must follow [Valid IP](#IP-Validation) requirement.
Requires running `syn network restart`. May lose connection depending on network settings changed, and connection method.
```shell
SynLink> network ip set secondary_dns 1.0.0.1
Successfully saved setting.
Please restart network to change Secondary DNS
```
##### `network ip set source_ip`
IP input must follow [Valid IP](#valid-ip) requirement. If source_ip is not 0.0.0.0, Only IP's allowed to access PDU are source_ip with subnet mask of source_subnet.

To allow one specific Source IP:
Set `source_ip` to IP of interest. Ex: 192.168.1.191. 
Set `source_subnet` to 255.255.255.255.

To allow a group of IPs:
Set `source_ip` to IP of interest. Ex: 192.168.1.8. 
Set `source_subnet` to 255.255.255.248. 
Will allow 192.168.1.8 to 192.168.1.15 IP range.

```shell
SynLink> network ip set source_ip 192.168.1.191
Successfully saved setting.
Please restart network to change Source IP filtering.
```

##### `network ip set source_subnet`
Subnet Mask input must follow [Valid Subnet](#valid_subnet) requirement. 
```shell
SynLink> network ip set source_ip 255.255.255.255
Successfully saved setting.
Please restart network to change Source IP filtering.
```

### `network web`
`network web` is a subcategory of `network` section which deals with the HTTP(S) webserver configurations.
```shell
SynLink> network web
----------------
Network Web Menu
----------------

Usage: network web [command] [options...]

Commands:
  status   Show current status and configurations for Web HTTP(S) Server
  set      See configuration options to change Web HTTP(S) Server settings

```

#### `network web status`
`network web status` will print in human readable format webserver configurations
```shell
SynLink> network web status
------------
Web Settings
------------
Availability:           Enabled
Status:                 Running
Port:                   80
SSL Security:           Enabled
Max Users:              0 users   (No Max Limit)
Web Idle Timeout:       0 seconds (No Timeout)
```

#### `network web set`
`network web set` will show all available configurations to change. Follow 'Usage' section to change values of interest.
```shell
SynLink> network web set
-------------------------
Network Web Configurations
-------------------------

Usage: network web set [key] [value]

Key                 | Values    | Default | Description
----------------------------------------------------------------------------------------------------------------------
web_enabled         | on,off    | on      | Turns on or off HTTP(S) Server
web_ssl_enabled     | on,off    | off     | Enforces SSL certificate for HTTPS
web_port            | PORT_NUM  | 80      | Port to reach Webserver
web_max_users       | NUM_USERS | 0       | Max number concurrent users on web browser. 0 is no limit
web_timeout         | SECONDS   | 120     | Number seconds on web browser before auto log off. 0 is no timeout
webhook_log_enabled | on,off    | on      | Enable or disables logging for web hook alerts without HTTP 200 responses.
----------------------------------------------------------------------------------------------------------------------
```
##### `network web set web_enabled`
Turn on or off Webserver HTTP(S) server. Valid input are either "`on`" or "`off`".
```shell
SynLink> network web set web_enabled off
Webserver process stopped.
```
```shell
SynLink> network web set web_enabled on
Webserver started at port 80.
```

##### `network web set web_ssl_enabled`
Enable SSL (Secure Sockets Layer) security on set port.
```shell
SynLink> network web set web_ssl_enabled on
Successfully saved setting.
HTTPS on port 80 enabled.
Please restart network to use SSL security.
```

##### `network web set web_port`
Port input must follow [Valid Port](#valid-port) requirement.
```shell
SynLink> network web set web_port 8080
Successfully saved setting.
Please restart network to change webserver port.
```

##### `network web set web_max_users`
Set max number of users allowed to connect via web browser at a given moment. 0 will allow unlimited connections. Must be a number between 0 and 20.
```shell
SynLink> network web set web_max_users 0
Successfully saved setting.
Please restart network to set max number of web browser users.
```

##### `network web set web_timeout`
Number of seconds before a user is automatically logged off while connected to PDU on a web browser. Must be between 0 and 3600.  0 for no timeout.
```shell
SynLink> network web set web_timeout 120
Successfully saved setting.
Please restart network to change web timeout.
```

##### `network web set webhook_log_enabled`
Enable whether webhook http requests log into syslog when unsuccessfully sending HTTP Post request to specified IP.
```shell
SynLink> network web set webhook_log_enabled on
Successfully saved setting.
Future Web hook HTTP Request will log when not successful.
```


### `network ssh`
`network ssh` is a subcategory of `network` section which deals with SSH server configurations. To manage ssh keys, use `ssh keys` command.
```shell
SynLink> network ssh
----------------
Network SSH Menu
----------------

Usage: network ssh [command] [options...]

Commands:
  status   Show current status and configurations for SSH Server
  keys     Print options to manage SSH Keys
  set      See configuration options to change SSH Server settings

```

#### `network ssh status`
`network ssh status` will print in human readable format ssh configurations
```shell
SynLink> network ssh status
------------
SSH Settings
------------
Availability            Enabled
Status:                 Running
Port:                   22
SSH Idle Timeout:       90 seconds
Auth Key Login:         Enabled
Password Login:         Enabled
```

#### `network ssh keys`
`network ssh keys` will print a list of commands to manage ssh keys
```shell
SynLink> network ssh keys
---------------------
Network SSH Keys Menu
---------------------

Usage: ssh keys [command] [options..]

Commands:
  list    List all current SSH Keys
  add     Add a SSH Key for password logins. Prompts user for key name and key
  remove  Remove a single SSH Key

```

##### `network ssh keys list`
`network ssh keys list` will print a list of ssh keys with the key name and RSA key footprint.
```shell
SynLink> network ssh keys list
---------------------
Network SSH Keys List
---------------------

Key 1: lab_pc_2 - 97:f0:86:10:02:96:8f:24:e6:df:38:f2:c8:de:4b:69
Key 2: lab_pc_1 - 4a:dc:9a:76:c3:04:30:c3:88:9a:9e:a6:ed:36:ca:b5

```

##### `network ssh keys add`
`network ssh keys add` will prompt for a public ssh key, and a name to remember it by.
RSA SSH Keys are acceptable key types, and are typically found in ~/.ssh/id_rsa.pub for Ubuntu/Debian Linux OS and Mac. Once found, copy the key to your clipboard and paste or copy manually. No uploading options exist on SynLink CLI.
The name you provide for the keys must be unique, as well as the keys themselves.
```shell
SynLink> ssh keys add
Paste RSA SSH Key Here:
> ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCEj9MGWzy5LGDKGM50GgOpncbcuTgp4gJ2XVjbqicbguXljQt+hfiMAb2IIJg7vXtMp6yr/8DYoqI5cwv1pDqxPweMcvOKMgv1HFX28Ng2kzJorEF6f6Xw6K6iXaKcXH3xRm2ZAfiv4qM6UT/jxgA2OmHhP0HptH4Kp2ScwlccUs7CP2srxf+hAQ7Mh2HP0mtjgLrQvqGtYw+hSr9XuygTKzOSuTVA0GIj+udF1mlIln+uWXKnupocdJvuvpfp38FefMATmR4h5M4ydDF+ngYazgv1qm7U37IXoLbBvnzoCtZbnLkina6EdiL+jGZvSPNpcbHaW7lAoeH8ujCStJUx 
Please provide a name for your key:
> lab_pc_3
Key Successfully Added
```

##### `network ssh keys remove`
`network ssh keys remove` will list ssh keys by names provided and prompt user for the name of ssh key to remove.
User input but come from the list provided.
TODO spaces allowed???
```shell
SynLink> ssh keys remove
Which of the following keys would you like to delete forever?
lab_pc_1
lab_pc_2
lab_pc_3
> lab_pc_1

```


#### `network ssh set`
`network ssh set` will show all available configurations to change. Follow ‘Usage’ section to change values of interest.
```shell
SynLink> network ssh set
-------------------------
Network SSH Configurations
-------------------------

Usage: network ssh set [key] [value]

Key              | Values   | Default | Description
-----------------------------------------------------------------------------------
ssh_enabled      | on,off   | on      | Turns on or off SSH Server
ssh_port         | PORT_NUM | 22      | Port to reach SSH Server
ssh_idle_timeout | SECONDS  | 30      | Number seconds before SSH Server auto exits
ssh_disable_keys | on,off   | off     | Disable key based Login
ssh_disable_pass | on,off   | off     | Disable password logins
-----------------------------------------------------------------------------------
```
##### `network ssh set ssh_enabled`
Turn on or off SSH Server. Valid inputs are either `on` or `off`
```shell
SynLink> network ssh set ssh_enabled on
SSH Server stopped.
```

##### `network ssh set ssh_port`
Port input must follow [Valid Port](#valid-port) requirement.
```shell
SynLink> network ssh set ssh_port 1022
Successfully saved setting.
Please restart network to change ssh port.
```

##### `network ssh set ssh_idle_timeout`
Number of seconds before a user is automatically logged off while connected to PDU on a SSH session. 0 for no timeout. Must be a number between 0 and 3600. 
```shell
SynLink> network ssh set ssh_idle_timeout 0
Successfully saved setting.
Please restart network to change ssh timeout.
```

##### `network ssh set ssh_disable_pass`
If enabled, password authentication is disabled for ssh connection requests.
```shell
SynLink> network ssh set ssh_disable_pass on
Successfully saved setting.
Please restart network to change SSH password authentication setting.
```

##### `network ssh set ssh_disable_keys`
If enabled, key based authentication is disabled for ssh connection requests.
```shell
SynLink> network ssh set ssh_disable_keys on
Successfully saved setting.
Please restart network to change SSH Key based authentication setting.
```



### `network telnet`
`network telnet` is a subcategory of `network` section which deals with Telnet Server configurations.
```shell
SynLink> network telnet
----------------
Network Telnet Menu
----------------

Usage: network telnet [command] [options...]

Commands:
  status   Show current status and configurations for Telnet Server
  set      See configuration options to change Telnet Server settings

```

#### `network telnet status`
`network ssh status` will print in human readable format telnet configurations
```shell
SynLink> network telnet status
---------------
Telnet Settings
---------------
Availability:           Enabled
Status:                 Running
Port:                   23
```

#### `network telnet set`
`network telnet set` will show all available configurations to change. Follow ‘Usage’ section to change values of interest.
```shell
SynLink> network telnet set
-------------------------
Network Telnet Configurations
-------------------------

Usage: network telnet set [key] [value]

Key            | Values   | Default | Description
-------------------------------------------------------------------
telnet_enabled | on,off   | on      | Turns on or off Telnet Server
telnet_port    | PORT_NUM | 23      | Port to reach Telnet Server
-------------------------------------------------------------------

```

##### `network telnet set telnet_enabled`
Turn on or off Telnet Server. Valid inputs are either `on` or `off`
```shell
SynLink> network telnet set telnet_enabled on
Telnet Server stopped.
```

##### `network telnet set telnet_port`
Port input must follow [Valid Port](#valid-port) requirement.
```shell
SynLink> network telnet set telnet_port 1023
Successfully saved setting.
Please restart network to change telnet port.
```

### `network snmp`


```shell
SynLink> network 
----------------
Network SNMP Menu
----------------

Usage: network snmp [command] [options...]

Commands:
  status   Show current status and configurations for SNMP 
  set      See configuration options to change SNMP settings

```

#### `network snmp status`
```shell
SynLink> network snmp status
------------------
Network SNMP Status
------------------
TODO

```

#### `network snmp set`

```shell
SynLink> network snmp set
-------------------------
Network SNMP Configurations
-------------------------

Usage: network snmp set [key] [value]

Key               | Values     | Default | Description
-------------------------------------------------------------------------------------------
snmp_enabled      | on,off     | on      | Turns on or off SNMP Agent
snmp_trap_enabled | on,off     | off     | Turns on or off outgoing SNMP Trap Notifications
snmp_trap_ip      | IP_ADDRESS |         | SNMP Trap Receiver IP
-------------------------------------------------------------------------------------------

```


### `network syslog`
`network syslog` is a subcategory of `network` section which deals with Syslog related settings.

```shell
SynLink> network syslog
----------------
Network  Menu
----------------

Usage: network syslog [command] [options...]

Commands:
  status   Show current status and configurations for Syslog
  set      See configuration options to change Syslog settings

```

#### `network syslog status`
`network syslog status` will print in human readable format syslog configurations.
```shell
SynLink> network syslog status
---------------
Syslog Settings
---------------
Availability            Enabled
Status:                 Running
Port:                   514
Protocol:               RFC5424
Remote Logging:         Enabled
Remote Log IP:          192.168.1.181

```

#### `network syslog set`
`network syslog set` will show all available configurations to change. Follow 'Usage' section to change values of interest.
```shell
SynLink> network syslog set
-------------------------
Network Syslog Configurations
-------------------------

Usage: network syslog set [key] [value]

Key                       | Values   | Default | Description
--------------------------------------------------------------------------------------------------------
syslog_enabled            | on, off   | on      | Turns on or off syslog logging               
syslog_remote_log_enabled | on, off   | off     | Enable or disables sending logs to remote syslog server
syslog_remote_log_ip      | IP_ADDR   |         | Host IP for Remote Syslog Server               
syslog_port               | PORT      | 514     | UDP Port for Syslog Server               
syslog_protocol           | RFC_PROTO | RFC3164 | Can be either RFC3164 or RFC5424           
--------------------------------------------------------------------------------------------------------
```
##### `network syslog set syslog_enabled`
Enable or disables syslog logging.
```shell
SynLink> network syslog set syslog_enabled on
Successfully saved setting.
Syslog logging enabled.
```

##### `network syslog set syslog_remote_log_enabled`
Enable or disables remote logging. If no remote log IP configured, ignores on command.
```shell
SynLink> network syslog set syslog_remote_log_enabled on
No Remote Log IP set. Please set Remote Log IP with network syslog set syslog_remote_log_ip.
```
```shell
SynLink> network syslog set syslog_remote_log_enabled on
Successfully saved setting.
Syslog logging to remote log 192.168.1.205 enabled.
```

##### `network syslog set syslog_remote_log_ip`
Set IP address for remote log server to send syslog logs to. Must follow [Valid IP](#valid_ip) requirement.
```shell
SynLink> network syslog set syslog_remote_log_ip 192.168.1.205
Successfully saved setting.
Syslog remote log IP successfully set to 192.168.1.205.
To start logging, please enable syslog_remote_log_enabled setting.
```



### `network smtp`
`network smtp` is a subcategory of `network` section which deals with SMTP related notification settings.
```shell
SynLink> network smtp
----------------
Network SMTP Menu
----------------

Usage: network smtp [command] [options...]

Commands:
  status      Show current status and configurations for SMTP Notifications
  test_email  Sends test email to specified email address.
  set         See configuration options to change SMTP settings

```

#### `network smtp status`
`network smtp status` will print in human readable format SMTP configurations.
```shell
SynLink> network smtp status
------------------
Network SMTP Status
------------------
SMTP Account Email:    example@email.domain
SMTP Account Password: [Exists]
SMTP Port :            25
SMTP Authentication:   TODO

Events:
SMTP Message to test@email.domain triggered on Outlet 2-62893731 Outlet Max Current Threshold of 8.2 Amps
SMTP Message to test2@email.domain triggered on 192.168.1.186 Autoping Timeout of 5 times.
SMTP Message to test@email.domain triggered on Device Circuit Breaker Trip.

```
#### `network smtp test_email`
`network smtp test_email` will send a test message to specified email address.
```shell
SynLink> network smtp test_email
Which email address would you like to send a test_email to?
>test@email.domain
Sending Message on port 25 from example@email.domain to test@email.domain.
Successfully sent
```
```shell
SynLink> network smtp test_email test@email.domain
Sending Message on port 25 from example@email.domain to test@email.domain.
Successfully sent
```
```shell
SynLink> network smtp test_email test@email.domain
No SMTP settings configured. Please configure SMTP settings at network smtp set.
```
#### `network smtp set`
`network smtp set` will show all available configurations to change. Follow 'Usage' section to change values of interest.
```shell
SynLink> network smtp set
-------------------------
Network SMTP Configurations
-------------------------

Usage: network smtp set [key] [value]

Key                         | Values   | Default | Description
-------------------------------------------------------------------
smtp_notifications_enabled  Turns on or off any smtp notifications.
smtp_account_email          SMTP email address to send messages through
smtp_account_password       SMTP email password to authorize messages to be sent with
smtp_port                   Port for SMTP email
smtp_authentication_type    TODO
-------------------------------------------------------------------

```

### `network ntp`
`network ntp` is a subcategory of `network` section with deals with synchronizing time with a specified NTP server. Network Time Protocol (NTP).
```shell
SynLink> network ntp
----------------
Network NTP Menu
----------------

Usage: network ntp [command] [options...]

Commands:
  status   Show current status and configurations for NTP Info
  set      See configuration options to change NTP settings

```

#### `network ntp status`
`network ntp status` will print in human readable format NTP related configurations.
```shell
SynLink> network ntp status
------------------
Network NTP Status
------------------

Date is:          19/03/2020
Time is:          17:11:37
NTP Time:         ENABLED
NTP Host:         pool.ntp.org
Timezone:         TODO
Daylight Savings: TODO
```

#### `network ntp set`
`network ntp set` will show all available configurations to change. Follow 'Usage' section to change values of interest.
```shell
SynLink> network ntp set
--------------------------
Network NTP Configurations
--------------------------

Usage: network ntp set [key] [value]  

Key                   | Values    | Default | Description
-------------------------------------------------------------------------------------------
ntp_enabled           | on,off    | on           | Turns on or off NTP time synchronization
ntp_host              | on,off    | pool.ntp.org | NTP Host to reference for time
ntp_timezone          | TODO      | TODO         | Timezone string
ntp_daylight_savings  | TODO      | TODO         | TODO
-------------------------------------------------------------------------------------------
```

##### `network ntp set ntp_enabled`
Turns on or off NTP synchronization with specified NTP Host. Valid input is `on` or `off` keywords
```shell
SynLink> network ntp set ntp_enabled on
Synchronizing NTP with ntp host pool.ntp.org...
Synchronization successfully connected.
```

##### `network ntp set ntp_host`
Sets NTP Host to to reference for time on PDU.
```shell
SynLink> network ntp set ntp_host ntp-b.nist.gov
Successfully saved setting.
Synchronizing NTP with ntp host ntp-b.nist.gov...
Synchronization successfully connected
```

##### `network ntp set ntp_timezone`
TODO

##### `network ntp set ntp_daylight_savings`
TODO

### `network autoping`


```shell
SynLink> network autoping
-------------------------------
Network AutoPing Reboot Feature
-------------------------------

Usage: network autoping [command] [options...]

Commands:
  status   Show current status and configurations for AutoPing Reboot
  set      See configuration options to change AutoPing Reboot settings

```
#### `network autoping status`
```shell
SynLink> network autoping status
------------------------------
Network AutoPing Reboot Status
------------------------------

AutoPing Interval length is 3 seconds
AutoPing Timeout length is 3 seconds
AutoPing is ignored when no network connection found

AutoPing Events

1. 192.168.1.181, 5 timeout attempts.
   Action: 2-62893731 Outlet Reboot
   
1. 192.168.1.181, 5 timeout attempts.
   Action: Syslog logging
   
2. 192.168.1.171, 3 timeout attempts.
   Action: 3-62893731 Outlet Reboot
```

#### `network autoping test_ping`
If no IP address specified, prompt for IP address will appear.
```shell
SynLink> network autoping test_ping 192.168.1.1

[Press any key to stop ping]

PING 192.168.1.1 (192.168.1.1): 56 data bytes
64 bytes from 192.168.1.1: seq=0 ttl=64 time=0.742 ms
64 bytes from 192.168.1.1: seq=1 ttl=64 time=0.695 ms
64 bytes from 192.168.1.1: seq=2 ttl=64 time=0.702 ms
64 bytes from 192.168.1.1: seq=3 ttl=64 time=0.635 ms
```

#### `network autoping events`
```shell
SynLink> network autoping events
-----------------------
Network AutoPing Events
-----------------------

Usage: network autoping events [command] [options...]

Commands:
  list       Print all events which are triggered by autoping timeouts
  add        Add an event which is triggered by autoping timeouts
  remove     Remove an autoping event
```
##### `network autoping events list`
```shell
SynLink> network autoping events list
----------------------------
Network AutoPing Events List
----------------------------

AutoPing Events

1. 192.168.1.181, 5 timeout attempts.
   Action: 2-62893731 Outlet Reboot
   
1. 192.168.1.181, 5 timeout attempts.
   Action: Syslog logging
   
2. 192.168.1.171, 3 timeout attempts.
   Action: 3-62893731 Outlet Reboot
```
##### `network autoping events add`
```shell
SynLink> network autoping events add
--------------------------------
Network AutoPing Events Triggers
--------------------------------

Usage: network autoping events add [key] [arg1]

Key              | arg1       | arg2         | Description
------------------------------------------------------------------------------------------------------------------------
autoping_timeout | IP_ADDRESS | NUM_FAILURES | Turns on or off NTP time synchronization
--------------------------------------------------------------------------------------------------------------------------

```

##### `network autoping events add autoping_timeout`
```shell
SynLink> network autoping events add autoping_timeout 192.168.1.186 5
Which action to trigger?
[1] Set specified outlet to specified state (on,off)
[2] Reboot specified outlet
[3] Set specified outlet group to specified state (on,off)
[4] Reboot specified outlet group
[5] Email specified email address
[6] Outgoing HTTP Request (Web Hook) to specified IP Address
[7] Save to Syslog. Remote logging option found network syslog section
[8] SNMP Trap notification. SNMP Trap destination setting found in network snmp section.
```
##### `network autoping events remove`
```shell
SynLink> network autoping events remove

```
#### `network autoping set`
```shell
SynLink> network autoping set

```
##### `network autoping set autoping_interval`
```shell
SynLink> network autoping set autoping_interval

```
##### `network autoping set autoping_timeout`
```shell
SynLink> network autoping set autoping_timeout

```
##### `network autoping set autoping_network_active_enabled`
```shell
SynLink> network autoping set autoping_network_active_enabled

```
---

## `system`

### `system device`
#### `system device status`
return firmware and hardware versions

#### `system device events`
##### `system device events list`
##### `system device events add`
##### `system device events add device_3phase_imbalance`
##### `system device events add device_any_breaker_trip`

### `system banks`
#### `system banks status`
#### `system banks events`
##### `system banks events list`
##### `system banks events add`
###### `system banks events add bank_current_max_threshold`
###### `system banks events add bank_current_min_threshold`
###### `system banks events add bank_voltage_max_threshold`
###### `system banks events add bank_voltage_min_threshold`
###### `system banks events add bank_powerfactor_max_threshold`
###### `system banks events add bank_powerfactor_min_threshold`
###### `system banks events add bank_breaker_trip`
##### `system banks events remove`
#### `system banks set`
##### `system banks set bank_name`

### `system outlets`
#### `system outlets status`
#### `system outlets events`
##### `system outlets events list`
##### `system outlets events add`
###### `system outlets events add outlet_current_max_threshold`
###### `system outlets events add outlet_current_min_threshold`
##### `system outlets events remove`
#### `system outlets set`
##### `system outlets set outlet_name`
##### `system outlets set outlet_pwr_on_state`
##### `system outlets set outlet_state`
##### `system outlets set outlet_reboot`

### `system groups`
#### `system groups status`
#### `system groups list`
#### `system groups add`
#### `system groups edit`
#### `system groups remove`
#### `system groups events`
##### `system groups events list`
##### `system groups events add`
###### `system groups events add group_current_max_threshold`
###### `system groups events add group_current_min_threshold`
##### `system groups events remove`
#### `system groups set`
##### `system groups set group_name`
##### `system groups set group_pwr_on_state`
##### `system groups set group_state`
##### `system groups set group_reboot`

### `system sensors`
#### `system sensors status`
#### `system sensors events`
##### `system sensors events list`
##### `system sensors events add`
###### `system sensors events add temperature_1_max_threshold`
###### `system sensors events add temperature_1_min_threshold`
###### `system sensors events add temperature_1_max_humidity`
###### `system sensors events add temperature_1_min_humidity`
###### `system sensors events add temperature_2_max_threshold`
###### `system sensors events add temperature_2_min_threshold`
###### `system sensors events add temperature_2_max_humidity`
###### `system sensors events add temperature_2_min_humidity`
##### `system sensors events remove`
  
### `system lcd`
#### `system lcd status`
#### `system lcd set`
##### `system lcd set lcd_enabled`
##### `system lcd set lcd_orientation`
##### `system lcd set lcd_timeout`
##### `system lcd set lcd_backlight_timeout`
##### `system lcd set lcd_brightness`

### `system scheduling`
#### `system scheduling status`
#### `system scheduling events`
##### `system scheduling events scheduled_time`
##### `system scheduling events scheduled_interval`
#### `system scheduling set`

## `logs`
### `logs syslog`
### `logs banks`
### `logs outlets`
### `logs groups`

## `settings`
### `settings users`
#### `settings users list`
#### `settings users add`
#### `settings users edit`
#### `settings users remove`
#### `settings users events`
##### `settings users events list`
##### `settings users events add`
###### `settings users events add user_web_login`
###### `settings users events add user_web_logout`
###### `settings users events add user_http_pat_used`
###### `settings users events add user_added`
###### `settings users events add user_removed`
### `settings restart`
### `settings factory_reset`
### `settings firmware_update`

## `help`

# All Commands

Outlet or group related commands are unavailable if the PDU does not have any outlet switching or outlet current metering.


```
status          Print overview for PDU Status information
network         Print options to show and configure network info  
  status          Print all network status and configurations
  restart         Restart all networking related activity.
  ip              Print options to show and configure PDU IP
    status          Show current status and configurations for IP
    set             See configuration options to change IP settings
      static_ip       IP Address that unit will respond to if ip_assign is set to 'dhcp'
      subnet_mask     Subnet Mask that divides the IP address into network address and host address
      gateway_ip      IP Address for forwarding host (router) to other networks
      ip_assign       Choosing DHCP will have DHCP Server at 'gateway_ip' assign IP address to PDU
      primary_dns     Default DNS Server from Google
      secondary_dns   Default Secondary DNS Server from Google
      dns_suffix      
      custom_dhcp_dns_enabled 
      custom_dhcp_dns_suffix_enabled
  web             Print options to show and configure HTTP(S) Webserver
    status          Show current status and configurations for HTTP(S) Webserver
    set             See configuration options to change HTTP(S) Webserver settings 
      web_enabled          Turns on or off HTTP(S) Server
      web_ssl_enabled      Enforces SSL certificate for HTTPS
      web_port             Port to reach Webserver
      web_max_users        Max number concurrent users on web browser. 0 is no limit
      web_timeout          Number seconds on web browser before auto log off. 0 is no timeout
      web_redirect_http
      web_ssl_port
      web_user_block_enabled
      web_user_block_limit
      web_user_block_timeout
      web_api_token_enabled
      web_api_password_enabled
      web_custom_sslcert_enabled
 ssh             Print options to show and configure ssh info
    status          Show current status and configurations for SSH Server
    keys            Print options to manage SSH Keys
      list            List all current SSH Keys
      add             Add a SSH Key for passwordless logins. Prompts user for key name and key
      remove          Remove a single SSH Key
    set             See configuration options to change SSH settings
      ssh_enabled       Turns on or off SSH Server
      ssh_port          Port to reach SSH Server
      ssh_idle_timeout  Number seconds before SSH Server auto disconnects
      ssh_disable_keys  Disable key based Login
      ssh_disable_pass  Disable password logins
      ssh_login_banner  Banner to show users that access SSH CLI
  telnet          Print options to show and configure telnet info
    status          Show current status and configurations for Telnet Server
    set             See configuration options to change Telnet settings
      telnet_enabled  Turns on or off Telnet Server
      telnet_port     Port to reach Telnet Server
  snmp            Print options to show and configure SNMP info
    status          Show current status and configurations for SNMP
    test_snmp_trap  Send test SNMP Trap notification.
    set             See configuration options to change SNMP settings
      snmpv12_enabled              Enable or disables SNMP v1/v2c agent.
      snmpv12_readstring           Passphrase for reading from agent SNMP 1/v2c
      snmpv12_writestring          Passphrase for writing to agent SNMP 1/v2c
      snmpv3_enabled               Enable or disable SNMP 3 agent.
      snmp_sysContact              Primary contact for PDU SNMP node
      snmp_sysName                 Assigned name for PDU SNMP node
      snmp_sysLocation             Physical location for PDU SNMP node
      snmp_trap_enabled            Enable or disable SNMP traps to snmp_trap_host
      snmp_trap_host               Host to send SNMP Trap notifications to
      snmp_trap_community          Community string for making trap notification requests.
      snmp_trap_version            Protocol for sending SNMP trap notifications. Options are "snmpv3" or "snmpv2"
      snmp3_trap_security          Options are "authPriv", "noAuthNoPriv", or "authNoPriv". Specifies authentication and privacy for SNMP security.
      snmp3_trap_userId            Username SNMP 3 Trap notification
      snmp3_auth_pass              Auth passphrase for SNMP 3 trap notification
      snmp_trap_auth_protocol      Options are "sha1", or "md5"
      snmp3_privacy_pass           Passphrase for Privacy configuration
      snmp3_trap_privacy_protocol  Options are "des", or "aes128"
  smtp            Print options to show and configure smtp info
    status          Show current status and configurations for SMTP Info
    test_email      Sends test email to specified email address. 
    set             See configuration options to change SMTP settings
      smtp_server         IP/Domain name for SMTP server
      smtp_port           Port to reach SMTP Server
      smtp_tls_enabled    Enable or disable TLS Authentication
      smtp_auth_required  Enable or disable passing authentication with SMTP messages
      smtp_username       Username for SMTP authentication
      smtp_password       Password for SMTP authentication
  syslog          Print options to show and configure syslog info
    status          Show current status and configurations for Syslog
    test_msg        Send syslog test message
    set             See configuration options to change Syslog settings
      syslog_remote_log_ip      Host IP for Remote Syslog Server
      syslog_port               UDP Port for Syslog Server      
  ntp             Print options to show and configure NTP info
    status          Show current status and configurations for NTP Info
    set             See configuration options to change NTP settings
      ntp_enable                Turns on or off NTP time synchronization
      ntp_host                  NTP Host to reference for time
      timezone                  Enable or disable day light savings
      daylight_savings_enabled  ---
      
system          Print options for PDU power, control, sensors, etc
  device          Print PDU Information and Versions
    status          Print device configurations and related info
    set             See configuration options to change AutoPing Reboot Settings
      device_sequential_powerup_delay  On boot or when group reboots outlets turn on relays sequentially with a delay for number of seconds specified.
      device_name                      Name for device which shows up on network searches
  
  inlets         Print options for Inlet information
    status         Print inlet configurations and info
    edit            See configuration options to change inlet settings
      inlet_name                 User defined name for inlet
      inlet_energy_accumulation  Only value accepted is 0. 0 will reset energy accumulation back to 0. Resetting energy accumulation for any inlet will reset for all inlets.
    events         Print all events which trigger actions for inlet related stats
      list           List all events triggered by inlet events
        add
          inlet_line_max_current_threshold      Applies to 3 phase PDUs with line measurements. Amperage threshold in amps
          inlet_line_min_current_threshold      Applies to 3 phase PDUs with line measurements. Amperage threshold in amps
          inlet_max_current_threshold	        Applies to single phase PDUs. Amperage threshold in amps
          inlet_min_current_threshold	        Applies to single phase PDUs. Amperage threshold in amps
          inlet_max_voltage_threshold	        Applies to single phase PDUs. Voltage threshold in volts
          inlet_min_voltage_threshold	        Applies to single phase PDUs. Voltage threshold in volts
          inlet_max_line_Frequency_threshold	Applies to single phase PDUs. Line frequency threshold in hertz
          inlet_max_line_Frequency_threshold	Applies to single phase PDUs. Line frequency threshold in hertz
          inlet_min_power_factor	            Power Factor Threshold as a ratio
          inlet_active_energy_accumulation_max	kWH threshold to trigger event
          inlet_min_active_power_threshold	    Active Power Threshold in watts
          inlet_max_active_power_threshold	    Active Power Threshold in watts
          inlet_max_apparent_power_threshold	Apparent Power Threshold in volt-amperes (VA)
          inlet_min_apparent_power_threshold	Apparent Power Threshold in volt-amperes (VA)
          inlet_max_reactive_power_threshold	Reactive Power Threshold in volt-amperes reactive (VAR)
          inlet_min_reactive_power_threshold	Reactive Power Threshold in volt-amperes reactive (VAR)
          inlet_3_phase_imbalance	            % phase imbalance to trigger
        edit
        remove
  
  banks           Print options for configuring and showing Bank (Branch) related info
    status          Print Power Stats, Energy Stats, and Overload Protection Info for bank(s)
    edit            See options to configure each bank
      bank_name       Prompts for bank_id and bank_name
    events          Print all events which trigger actions for bank related stats
      list            List all events triggered by bank activity
      add             Add an event and action to a particular bank activity
        bank_circuit_breaker_trip	          
        bank_max_current_threshold	
        bank_min_current_Threshold	
        bank_max_voltage_threshold	
        bank_min_voltage_threshold	
        bank_max_line_frequency_threshold	
        bank_min_line_frequency_threshold	
        bank_min_power_factor	
        bank_active_energy_accumulation_max	
        bank_max_active_power_threshold	
        bank_min_active_power_threshold	
        bank_max_apparent_power_threshold	
        bank_min_apparent_power_threshold	
        bank_max_reactive_power_threshold	
        bank_min_reactive_power_threshold	
      edit
      remove          Prompt to remove an event and action
  
  outlets         Print options for configuring and showing Outlet Related Info
    status          Print Outlet configurations and related info
    edit            See options to configure individual outlets
      outlet_name                        Change outlet name for a specified outlet. Lists Outlets, and prompts for outlet_id and outlet_name if no argument provided
      outlet_pwr_on_state                Change power on state for specified outlet. Lists Outlets, and prompts for outlet_id and pwr_on_state if no argument provided
      outlet_state                       Change outlet relay state to specified state. Lists Outlets, and prompts for outlet_id and outlet_state if no argument provided
      outlet_custom_reboot_time_enabled  Configures outlet to use custom reboot time instead of global reboot time
      outlet_custom_reboot_time          Number of seconds to reboot when custom reboot time is enabled

    events          Print options to manage events which are trigged by outlet activity
      list            List all events triggered by outlet activity
      add             Add an event and action to an outlet's activity
        outlet_max_current_threshold  Prompts for max current value, outlet_id, num seconds above threshold, and action
        outlet_min_current_threshold  Prompts for min current value, outlet_id, num seconds below threshold, and action        
      edit
      remove          List all events triggered by outlet activity, prompts event_action_id to remove permanently    
  
  groups          Print options for configuring and showing group related info
    status          Print relevant information about outlet groups and their power consumption  
    list            Print a list of all groups, include name and outlets for each group 
    add             Prompts for group name, and which outlets to include
    edit            Prints a list of group names, and prompts to select one, then prompts for setting to change
      group_name                Change group name for a specified group. Lists groups, prompts for group_id and group name if no argument provided
      group_pwr_on_state        Change the power on state for all outlets of a group. Lists groups, prompts for group_id, and pwr_on_state  if no argument provided. Prompts user to warn all outlets will be changed
      group_state               Switch relay for outlet to specified state if outlet switching supported in PDU. Lists groups, prompts for group_id, and state  if no argument provided. Prompts warning.
      group_reboot              Switches specified relay on and off at specified duration in seconds. Lists groups, prompts for group_id  if no argument provided. Prompts warning.
      group_reboot_sequence_delay  When outlet group reboots, outlet turn on in sequence with this number of seconds in between boots
    remove          Prints a list of group names, and prompts to select one to remove forever
    events          Prints options for events which trigger actions for group related stats
      list            List all events triggered by group activity
      add             Add an event and action to a group's activity. Prints list of possible event triggers
        group_current_max_threshold  Prompts for max current value, group_id, num seconds above threshold, and action
        group_current_min_threshold  Prompts for min current value, group_id, num seconds below threshold, and action
      edit
      remove          List all events triggered by group activity, Prompts for event_action_id to remove permanently

  sensors         Print options for configuring and showing sensor related info
    status          Print relevant information about any attached sensors
    edit            See options to configure sensor settings.
      sensor_name             User defined name for sensor.
      sensor_temp_offset      Prompts for connected sensor. Degrees in celsius to offset. Can be negative.
      sensor_humidity_offset  Prompts for connected sensor. Percentage units to offset. Can be negative.
    set
      serial_modem_port_enabled  Turning serial modem port off will enable sensor port. Must choose between one of 2.
    events          Prints options for events which trigger actions for sensor related info
      list            Print a list of all events triggered by sensor related info
      add             Add an event and action triggered by sensor activity
        temperature_max_threshold  Prompts for connected sensor, max temperature value in celsius, num seconds above threshold, and action
        temperature_min_threshold  Prompts for connected sensor, min temperature value in celsius, num seconds below threshold, and action
        humidity_max_threshold     Prompts for connected sensor, max humidity value value between 0-100, num seconds above threshold, and action
        humidity_min_threshold     Prompts for connected sensor, min humidity value value between 0-100, num seconds below threshold, and action
      edit
      remove          List all events triggered by sensor activity, prompts for event_action_id to remove permanently

  lcd             Print options to configure local LCD screen
    status          Print current LCD Configuration and status 
    set             See configuration options to change LCD settings
      lcd_enabled                  Turns on or off LCD Screen
      lcd_orientation              Rotate screen between 90, 180, 270, and 0/360 deg
      lcd_timeout                  Number of seconds before overview screensaver appears
      lcd_backlight_timeout        Number of seconds before backlight turns off
      lcd_backlight_brightness     Change brightness of LCD
      lcd_outlet_control_enabled   Allow controlling of outlet relays (if applicable) through front panel LCD
      lcd_network_control_enabled  Allow changing of IP assignment/Address through front panel LCD
      lcd_screensaver_timeout      Number of seconds before screensaver is enabled
      lcd_screensaver_type         Defines which type of content displays on LCD screen during screensaver
      
  scheduling      Print options to configure any scheduled actions
    status          Print information on current scheduled actions
    events          Print options for events which are triggered on scheduled timer
      list            Print all events triggered by scheduled events
      add             Add an event triggered by scheduled event
        scheduled_daily_time Create scheduled event for specified time once per day, for specified number of times (0, for infinite) 
        scheduled_interval   Create scheduled event for specified interval in seconds, for specified number of times (0 for infinite)
      edit
      remove            

  autoping          See options to configure autoping reboot feature for PDU
    status            Show current status and configuration for autoping reboot feature
    test_ping         Send test_ping to specified ip address
    events            Print options to manage triggers from autoping related features
      list              Print all events which are triggered by autoping timeouts
      add               Add an event which is triggered by autoping timeouts
        autoping_timeout  Set trigger for autoping_timeout to specified ip address, with specified number of failures before action, and action
      edit
      remove            Remove an autoping event
    set               See configuration options to change AutoPing Reboot Settings
      autoping_interval                Interval in seconds between each individual ping request.
      autoping_timeout                 Timeout in seconds for a nonresponsive ping
      autoping_network_active_enabled  Turns on or off autoping requests if network is not currently active

logs            Print options to configure and see any relevant logs

  event_logs      Print options to configure or see event logs
    list
    clear
  
  inlets
    list
    clear

  banks           Print options to configure and see bank power/energy logging
    list            Print a list of relevant power/energy logs for PDU Banks 
    clear           Clear all bank related power/energy logs. Prompts for confirmation

  outlets         Print options to configure and see outlet power logging
    list            Print a list of relevant outlet power logs
    clear           Clear all outlet logging logs. Prompts for confirmation
      
settings        Print all SynLink settings to manage

  firmware
    status           Prints current firmware versions for any connected banks, controller, hardware versions, and firmware history. 
    firmware_update  Updates Synlink Controller when appropriate USB Drive is inserted.
    factory_reset    Reset all configuration to factory default

  serial          Print options to manage serial settings
    status          Show current status and configuration for serial ports
    set             See configuration options to change serial settings
      serial_modem_port_enabled  Enable Modem Port and also disable sensor port
      serial_modem_baud_rate     Baud rate for RJ45 modem port. Options are 1200, 2400, 4800, 9600, 19200, 38400, 57600 and 115200
      serial_usb_baud_rate       Baud rate for USB-serial port. Options are 1200, 2400, 4800, 9600, 19200, 38400, 57600 and 115200

  users           Print options to manage SynLink users
    list            List all SynLink Users. Requires proper permissions.
    add             Add a user. Prompts for username, password, and permissions             
    edit            Lists all users, Prompts for username, and specified attribute to change
      username
      roleId
      password
    remove          Remove a user permanently. Lists all usernames, prompts for username, and confirmation
    roles
      list
      add
      edit
        name
        description
        view_ip_settings       
        view_web_settings       
        view_ssh_settings       
        view_telnet_settings       
        view_Snmp_Settings       
        view_Smtp_Settings       
        modifyIpSettings       
        modifyWebSettings       
        modifySshSettings       
        modifyTelnetSettings       
        modifySnmpSettings       
        modifySmtpSettings       
        viewBankSettings       
        viewInletSettings       
        viewOutletGroups
        viewFirmwareUpdateSettings
        viewUsersList
        viewRolesList
        viewOutlets
        modifyOutlets
        modifyLcdSettings
        modifySensorSettings
        modifyBankSettings
        modifyInletSettings
        modifyOutletGroups
        modifyFirmwareVersion
        modifyUsers
        modifyRoles
        allowSshKeyLogin
        allowSshPassLogin
        allowSnmpv3Login
        allowHttpPat
        allowHttpBasicAuth
        allowChangeUserPass
        allowPduRestart
      remove
    
  
  restart         Restart SynLink PDU Controller. Prompts for confirmation.
  
help            Print help menu with top level list of commands.




```
<!--


  groups         Print options to configure and see outlet power logging
    list            Print a list of relevant group power logs
    clear           Clear all group logging logs. Prompts for confirmation
    set             See configuration options to change group power logging
      group_logging_enabled  Turns on or off logging for individual group current stats
      group_logging_groups  Prompts for which groups to log current stats


  syslog          Print options to configure and see syslog info
    list            Print a list of all syslogs
    clear           Clear all syslog entries. Prompts for confirmation
    events          Print options to manage syslog actions triggered by specified events
      list            Print a list of all events which result in syslog actions
      remove          List all events which result in syslog logging actions, prompts for event_action_id
    set             See configuration options to change syslog settings
      syslog_enabled             Turn on or off syslog logging
      syslog_remote_log_enabled  Enable or disable sending logs to remote syslog server
      syslog_remote_log_ip       Host IP for Remote Syslog Server

    set             See configuration options to change bank power/energy logging
      bank_logging_enabled               Turns on or off logging for bank power/energy stats
      bank_logging_voltage_enabled       Turn on or off logging for voltage stats
      bank_logging_power_factor_enabled  Turn on or off logging for power factor stats
      bank_logging_current_enabled       Turn on or off logging for current stats
      
    set             See configuration options to change outlet power logging
      outlet_logging_enabled  Turns on or off logging for individual outlet current stats
      outlet_logging_outlets  Prompts for which outlets to log current stats


syslog_protocol           Can be either RFC3164 or RFC5424 

    events          Print options to manage events triggered by user activity
      list            Print a list of all events triggered by user activity
      add             Add event triggered by user activity. Prints list of possible event triggers
        user_web_login      Prompts for user_id (or all users) and action
        user_web_logout     Prompts for user_id (or all users) and action
        user_http_pat_used  Prompts for user_id (or all users) and action
        user_added          Logs whenever a user is created. Prompts for action
        user_removed        Logs whenever a user is removed. Prompts for action
      remove          List all events triggered by user activity. Prompts for event_action_id


-->
---

# Reference

## Valid Entries

### IP Validation
Valid IP4 includes 4 octets separated by. TODO

## Event Actions


```shell
SynLink> network autoping events add autoping_timeout 192.168.1.186 5
Which action to trigger?
[1] Set specified outlet to specified state (on,off)
[2] Reboot specified outlet
[3] Set specified outlet group to specified state (on,off)
[4] Reboot specified outlet group
[5] Email specified email address
[6] Outgoing HTTP Request (Web Hook) to specified IP Address
[7] Send Syslog Message
[8] Send SNMP Trap notification. 
```



```shell
SynLink> network autoping events add autoping_timeout 192.168.1.186 5
Which action to trigger?
[1] Set specified outlet to specified state (on,off)
  Which Outlet would you like to switch?
  [1] 1-62893731 Outlet 1 for Bank 1 
  [2] 2-62893731 Outlet 2 for Bank 1
  [3] 3-62893731 Outlet 3 for Bank 1
  [4] 4-62893731 Outlet 4 for Bank 1
  [5]...
  >
    Which state would you like the outlet to be at after action is triggered?
    [1] on
    [2] off
    >
[2] Reboot specified outlet
  Which Outlet would you like to reboot?
  [1] 1-62893731 Outlet 1 for Bank 1 
  [2] 2-62893731 Outlet 2 for Bank 1
  [3] 3-62893731 Outlet 3 for Bank 1
  [4] 4-62893731 Outlet 4 for Bank 1
  [5]...
  >
    How long should the reboot cycle take?
    Valid response: Between 1-10 in seconds
    >
[3] Set specified outlet group to specified state (on,off)
  Which Group would you like to switch?
  [1] nas_servers
  [2] switches
  [3] web_servers
  >
    Which state would you like the group outlets to be at after action is triggered?
    [1] on
    [2] off
    >
[4] Reboot specified outlet group
  No Outlet Groups have been created. To create a group of outlets go to system groups
  --
  Which Group would you like to reboot?
  [1] nas_servers
  [2] switches
  [3] web_servers
  >
    How long should the reboot cycle take?
    Valid response: Between 1-10 in seconds
    >
[5] Email specified email address
  Which email address would you like to notify?
  >
  --
  No Outgoing Email Settings Found. Please configure network smtp settings first.
  --
[6] Outgoing HTTP Request (Web Hook) to specified IP Address
  Which IP or URL would you like to send a POST request to?
  >
[7] Send Syslog Message
  Syslog logging for specified event trigger created. Please enable syslog to register action.
  --
  Syslog logging for specified event trigger created and enabled.
[8] Send SNMP Trap notification. 
  No SNMP Trap Receiver specified. Please specify configuration in network snmp.
  --
  SNMP Trap notification for event trigger created. Please enable SNMP to register actions.
  --
  SNMP Trap notification for event trigger created and enabled.
```

## All Configuration Values
```
static_ip                          IP Address that unit will respond to if ip_assign is set to 'dhcp'
subnet_mask                        Subnet Mask that divides the IP address into network address and host address
gateway_ip                         IP Address for forwarding host (router) to other networks
ip_assign                          Choosing DHCP will have DHCP Server at 'gateway_ip' assign IP address to PDU
primary_dns                        Default DNS Server from Google
secondary_dns                      Default Secondary DNS Server from Google
source_ip                          Allows one specific IP to access PDU, or a group depending on source_subnet setting
source_subnet                      Can be set to allow a range of IP's to access PDU or a single IP
web_enabled                        Turns on or off HTTP(S) Server
web_ssl_enabled                    Enforces SSL certificate for HTTPS
web_port                           Port to reach Webserver
web_max_users                      Max number concurrent users on web browser. 0 is no limit
web_timeout                        Number seconds on web browser before auto log off. 0 is no timeout
webhook_log_enabled                Enable or disables logging for web hook alerts without HTTP 200 responses.
ssh_enabled                        Turns on or off SSH Server
ssh_port                           Port to reach SSH Server
ssh_idle_timeout                   Number seconds before SSH Server auto disconnects
ssh_disable_keys                   Disable key based Login
ssh_disable_pass                   Disable password logins
telnet_enabled                     Turns on or off Telnet Server
telnet_port                        Port to reach Telnet Server
snmp_enabled                       Turns on or off SNMP Agent
snmp_trap_enabled                  Turns on or off outgoing SNMP Trap Notifications
snmp_trap_ip                       SNMP Trap Receiver IP
syslog_enabled                     Turns on or off syslog logging
syslog_remote_log_enabled          Enable or disables sending logs to remote syslog server
syslog_remote_log_ip               Host IP for Remote Syslog Server
syslog_port                        UDP Port for Syslog Server               
syslog_protocol                    Can be either RFC3164 or RFC5424
smtp_notifications_enabled         Turns on or off any smtp notifications.
smtp_account_email                 SMTP email address to send messages through
smtp_account_password              SMTP email password to authorize messages to be sent with
smtp_port                          Port for SMTP email
smtp_authentication_type           TODO
ntp_enable                         Turns on or off NTP time synchronization
ntp_host                           NTP Host to reference for time
ntp_timezone                       Timezone string TODO
ntp_daylight_savings               TODO
autoping_interval                  Interval in seconds between each individual ping request.
autoping_timeout                   Timeout in seconds for a nonresponsive ping
autoping_network_active_enabled    Turns on or off autoping requests if network is not currently active
device_reboot_sequential_delay     On boot or when group reboots outlets turn on relays sequentially with a delay for number of seconds specified.
device_host_name                   Name for device which shows up on network searches
temp_1_sensor_offset               Degrees in celsius to offset. Can be negative.
temp_1_humidity_offset             Percentage units to offset. Can be negative.
temp_2_sensor_offset               Degrees in celsius to offset. Can be negative.
temp_2_humidity_offset             Percentage units to offset. Can be negative.
lcd_enabled                        Turns on or off LCD Screen
lcd_orientation                    Rotate screen between 90, 180, 270, and 0/360 deg
lcd_timeout                        Number of seconds before overview screensaver appears
lcd_backlight_timeout              Number of seconds before backlight turns off
lcd_brightness                     Change brightness of LCD
scheduled_events_enabled           Turn on or off for scheduled events to trigger specified actions. 
bank_logging_enabled               Turns on or off logging for bank power/energy stats
bank_logging_voltage_enabled       Turn on or off logging for voltage stats
bank_logging_power_factor_enabled  Turn on or off logging for power factor stats
bank_logging_current_enabled       Turn on or off logging for current stats
outlet_logging_enabled             Turns on or off logging for individual outlet current stats  ???? keep?
outlet_logging_outlets             Prompts for which outlets to log current stats            ????? keep?
group_logging_enabled              Turns on or off logging for individual group current stats ????? keep?
group_logging_groups               Prompts for which groups to log current stats               ????? keep?
```


### All Event Triggers
```
autoping_timeout                Set trigger for autoping_timeout to specified ip address, with specified number of failures before action, and action
device_3phase_imbalance         Set trigger if 3 phase imbalance is detected at specified percentage
device_any_breaker_trip         Set trigger if any breaker is tripped for a particular bank.
bank_current_max_threshold      Prompts for max current value, bank_id, num seconds above threshold, and action. Set maximum threshold for specified current value in milli-amps. 
bank_current_min_threshold      Prompts for min current value, bank_id, num seconds below threshold, and action. Set minimum threshold for specified current value in milli-amps, and number of seconds below threshold.  
bank_voltage_max_threshold      Prompts for max voltage value, bank_id, num seconds above threshold,and action. Set maximum threshold for specified voltage value in volts. 
bank_voltage_min_threshold      Prompts for min voltage value, bank_id, num seconds below threshold,and action. Set maximum threshold for specified voltage value in volts. 
bank_powerfactor_max_threshold  Prompts for max powerfactor value (between 0-100), num seconds above threshold, bank_id, and action. Set maximum threshold for specified power factor value between 0 and 100. 
bank_powerfactor_min_threshold  Prompts for min powerfactor value (between 0-100), num seconds below threshold, bank_id, and action. Set maximum threshold for specified power factor value between 0 and 100. 
bank_breaker_trip               Prompts for bank_id, and action. Set trigger for bank_breaker tripping, and specified action.        
outlet_current_max_threshold    Prompts for max current value, outlet_id, num seconds above threshold, and action
outlet_current_min_threshold    Prompts for min current value, outlet_id, num seconds below threshold, and action        
group_current_max_threshold     Prompts for max current value, group_id, num seconds above threshold, and action
group_current_min_threshold     Prompts for min current value, group_id, num seconds below threshold, and action
temperature_1_max_threshold     Prompts for max temperature value in celsius for port 1, num seconds above threshold, and action
temperature_1_min_threshold     Prompts for min temperature value in celsius for port 1, num seconds below threshold, and action
humidity_1_max_threshold        Prompts for max humidity value value between 0-100 for port 1, num seconds above threshold, and action
humidity_1_min_threshold        Prompts for min humidity value value between 0-100 for port 1, num seconds below threshold, and action
temperature_2_max_threshold     Prompts for max temperature value in celsius for port 2, num seconds above threshold, and action
temperature_2_min_threshold     Prompts for min temperature value in celsius for port 2, num seconds below threshold, and action
humidity_2_max_threshold        Prompts for max humidity value value between 0-100 for port 2, num seconds above threshold, and action
humidity_2_min_threshold        Prompts for min humidity value value between 0-100 for port 2, num seconds below threshold, and action
scheduled_time                  Create scheduled event for specified time once per day, for specified number of times (0, for infinite) 
scheduled_interval              Create scheduled event for specified interval in seconds, for specified number of times (0 for infinite)
user_web_login                  Prompts for user_id (or all users) and action
user_web_logout                 Prompts for user_id (or all users) and action
user_http_pat_used              Prompts for user_id (or all users) and action
user_added                      Logs whenever a user is created. Prompts for action
user_removed                    Logs whenever a user is removed. Prompts for action
```



