Commands & Monitors

Command execution is only allowed for an authorized session. The command API will output "Unauthorized" and a Login button as necessary. The login state is also available in the global variable `loggedin`. To send the user to the login page and return to the current page after login, call `login()`:

### Command Execution on Load

To execute a command automatically on page load, simply add the `monitor` class to an output element, set `data-updcmd` to the command to be executed and `data-updcnt` to 1:

    Fetching boot status…

Output elements typically are `samp` or `pre`, as commands normally output formatted plain text, but any element can be used. `samp` by default compresses white space and has no visible area, while `pre` is visible and preserves all spacing.

`updcnt` will count down to zero and stop, or run indefinitely if started below zero. The execution interval can be given in `data-updint` (in seconds). You can set the data attributes any time using jQuery, all monitors are checked and updated by the framework once per second.

### Command Execution on Events

To automatically trigger a monitor update on OVMS events, additionally set the `data-events` attribute to a regular expression matching the event(s) of interest. This example monitor lists the active network channels and automatically updates on all server connection events:

Try: Open new window Stop V2 server Start V2 server Send fake event

### Command Buttons

A bootstrap button has the base class `btn`. Add the command to execute as attribute `data-cmd` and optionally the output element as `data-target` and you're done.

``

Add class `samp-inline` or wrap in a `ul.list-inline` to place the output element on the same line with the button. Prefix the target with a "+" to append to it:

External 12V power
``

### Combining Buttons & Monitors

By combination of a button and a monitor, you can let the button start a repeated execution of a command: set `data-watchcnt` on the button to the number of repetitions (default 0) and `data-watchint` to the interval in seconds (default 2).

Note: to stop a monitor, set `data-updcnt` to 0:

### Execute Javascript

To execute Javascript code directly (i.e. without calling `script eval`), simply exchange the `data-cmd / data-updcmd` attribute by `data-js / data-updjs`. Example: