Fork me on GitHub

RPC Service - Config

This service provides an ability to manage device configuration remotely. It is required by the mos config-get and mos config-set commands. If this library is not included in the app, those commands won't work. It is possible to call this service programmatically via serial, HTTP/RESTful, Websocket, MQTT or other transports (see RPC section) or use mos tool.

Below is a list of exported RPC methods and arguments:

Config.Get

Get device configuration subtree. Arguments:

{
  // Optional. Path to a config object, e.g. `wifi.sta.ssid`.
  // If not specified, a full configuration tree is returned.
  "key": "..."
}

Example usage:

mos call Config.Get
{
  "http": {
    "enable": true,
    "listen_addr": "80",
    ...
mos call Config.Get '{"key": "wifi.sta.enable"}'
true

This RPC command has a shortcut: mos config-get:

mos config-get
{
  "http": {
    "enable": true,
    "listen_addr": "80",
    ...
mos config-get wifi.sta.enable
true

Config.Set

Set device configuration parameters. Arguments:

{
  // Required. Contains a sparse object with configuration parameters.
  // These parameters are applied on top of the existing device configuration.
  "config": { ... }
}

Example usage - set debug.level to 3:

mos call Config.Set '{"config": {"debug": {"level": 3}}}'

This RPC command has a shortcut: mos config-set which sets the config option, saves it, and reboots the device (since some config options take effect only after reboot):

mos config-set debug.level=3
Getting configuration...
Setting new configuration...
Saving and rebooting...

Config.Save

Writes an existing device confuguration on flash, as a sequence of confX.json files (see description). This makes configuration permament, preserved after device reboot. Arguments:

{
  "reboot": false  // Optional. Whether to reboot the device after the call
}

Example usage:

mos call Config.Save '{"reboot": true}'