Settings

API for communication with ZBOS by Zora Robotics.

Channels

zbos/settings/get

publish

Get settings

Get all settings for the provided category

Channel tags
  • Settings

Message GetSettingsRequest
Payload

Name

Type

Description

Accepted values

key

string

Any

category

string

Any

setting_keys

array(string)

Optional, will return all settings if not set.

Any

subcategories

object

Optional, will return all subcategories if not set.

Any

Examples of payload
{
  "key": "abc",
  "category": "category_1"
}
{
  "key": "abc",
  "category": "category_1",
  "setting_keys": [
    "setting_key_1",
    "setting_key_2"
  ]
}

zbos/settings/get/response/{key}

publish

Response: Get settings

Channel tags
  • Settings

Message SettingsCategory
Payload

Name

Type

Description

Accepted values

label_key

string

Translation key should use the dot notation: {category}.{key}

Any

description_key

string

Optional description key Translation key should use the dot notation: {category}.{key}

Any

settings

object

Any

subcategories

object

Optional subcategories

Any

orphaned

boolean

The orphaned state indicates that this category was not added again since boot.

Any

Examples of payload
{
  "category": {
    "settings": {
      "setting_key_1": {
        "value": "Value 1",
        "type": "string",
        "required": true,
        "label_key": "translations_category.setting_1_label",
        "description_key": "translations_category.setting_1_description"
      },
      "setting_key_2": {
        "value": "100",
        "type": "integer",
        "range": {
          "min": 0,
          "max": 150
        },
        "required": false,
        "label_key": "translations_category.setting_2_label",
        "description_key": "translations_category.setting_2_description"
      },
      "setting_key_3": {
        "value": "100.50",
        "type": "number",
        "range": {
          "min": 1,
          "max": 150
        },
        "required": true,
        "label_key": "translations_category.setting_3_label",
        "description_key": "translations_category.setting_3_description"
      },
      "setting_key_4": {
        "value": "true",
        "type": "boolean",
        "label_key": "translations_category.setting_4_label",
        "description_key": "translations_category.setting_4_description"
      },
      "setting_key_5": {
        "value": "option_1",
        "type": "select_single",
        "options": [
          {
            "key": "option_1",
            "value": "Option 1",
            "label_key": "translations_category.setting_5_option_1"
          },
          {
            "key": "option_2",
            "value": "Option 2",
            "label_key": "translations_category.setting_5_option_2"
          }
        ],
        "label_key": "translations_category.translations_category.setting_5_label",
        "description_key": "translations_category.setting_5_description"
      },
      "setting_key_6": {
        "values": [
          "option_1",
          "option_2"
        ],
        "type": "select_multi",
        "options": [
          {
            "key": "option_1",
            "value": "Option 1",
            "label_key": "translations_category.setting_6_option_1"
          },
          {
            "key": "option_2",
            "value": "Option 2",
            "label_key": "translations_category.setting_6_option_2"
          },
          {
            "key": "option_3",
            "value": "Option 3",
            "label_key": "translations_category.setting_6_option_3"
          }
        ],
        "label_key": "translations_category.setting_6_label",
        "description_key": "translations_category.setting_6_description"
      }
    },
    "label_key": "translations_category.category_1_label"
  }
}
{
  "category": {
    "settings": {
      "setting_key_1": {
        "value": "Value 1",
        "type": "string",
        "required": true,
        "label_key": "translations_category.setting_1_label",
        "description_key": "translations_category.setting_1_description"
      },
      "setting_key_2": {
        "value": "100",
        "type": "integer",
        "range": {
          "min": 0,
          "max": 150
        },
        "required": false,
        "label_key": "translations_category.setting_2_label",
        "description_key": "translations_category.setting_2_description"
      },
      "setting_key_3": {
        "value": "100.50",
        "type": "number",
        "range": {
          "min": 1,
          "max": 150
        },
        "required": true,
        "label_key": "translations_category.setting_3_label",
        "description_key": "translations_category.setting_3_description"
      },
      "setting_key_4": {
        "value": "true",
        "type": "boolean",
        "label_key": "translations_category.setting_4_label",
        "description_key": "translations_category.setting_4_description"
      },
      "setting_key_5": {
        "value": "option_1",
        "type": "select_single",
        "options": [
          {
            "key": "option_1",
            "value": "Option 1",
            "label_key": "translations_category.setting_5_option_1"
          },
          {
            "key": "option_2",
            "value": "Option 2",
            "label_key": "translations_category.setting_5_option_2"
          }
        ],
        "label_key": "translations_category.translations_category.setting_5_label",
        "description_key": "translations_category.setting_5_description"
      },
      "setting_key_6": {
        "values": [
          "option_1",
          "option_2"
        ],
        "type": "select_multi",
        "options": [
          {
            "key": "option_1",
            "value": "Option 1",
            "label_key": "translations_category.setting_6_option_1"
          },
          {
            "key": "option_2",
            "value": "Option 2",
            "label_key": "translations_category.setting_6_option_2"
          },
          {
            "key": "option_3",
            "value": "Option 3",
            "label_key": "translations_category.setting_6_option_3"
          }
        ],
        "label_key": "translations_category.setting_6_label",
        "description_key": "translations_category.setting_6_description"
      }
    },
    "subcategories": {
      "category_2a": {
        "settings": {},
        "label_key": "translations_category.category_2a_label"
      }
    },
    "label_key": "translations_category.category_2_label"
  }
}

zbos/settings/request

publish

Request settings registrations

Request all setting providers to register their settings using the topics below.

Channel tags
  • Settings

Message EmptyMessage

Empty message

Payload

Name

Type

Description

Accepted values

Message Payload

object

Any

Example of payload (generated)
{}

zbos/settings/add

publish

Add settings

Add settings with their default values. These default values will be used as long as they are not updated via zbos/settings/update

Channel tags
  • Settings

Message AddSettingsRequest
Payload

Name

Type

Description

Accepted values

key

string

Any

category_name

string

Any

file

string

Optional. Use either category or file

Any

category

object

Optional. Use either category or file

Any

category.label_key

string

Translation key should use the dot notation: {category}.{key}

Any

category.description_key

string

Optional description key Translation key should use the dot notation: {category}.{key}

Any

category.settings

object

Any

category.subcategories

object

Optional subcategories

Any

Examples of payload
{
  "key": "abc",
  "category": {
    "settings": {
      "setting_key_1": {
        "type": "string",
        "required": true,
        "default_value": "Value 1",
        "label_key": "translations_category.setting_1_label",
        "description_key": "translations_category.setting_1_description"
      },
      "setting_key_2": {
        "type": "integer",
        "range": {
          "min": 0,
          "max": 150
        },
        "required": false,
        "default_value": "100",
        "label_key": "translations_category.setting_2_label",
        "description_key": "translations_category.setting_2_description"
      },
      "setting_key_3": {
        "type": "number",
        "range": {
          "min": 1,
          "max": 150
        },
        "required": true,
        "default_value": "100.50",
        "label_key": "translations_category.setting_3_label",
        "description_key": "translations_category.setting_3_description"
      },
      "setting_key_4": {
        "type": "boolean",
        "default_value": "true",
        "label_key": "translations_category.setting_4_label",
        "description_key": "translations_category.setting_4_description"
      },
      "setting_key_5": {
        "type": "select_single",
        "options": [
          {
            "key": "option_1",
            "value": "Option 1",
            "label_key": "translations_category.setting_5_option_1"
          },
          {
            "key": "option_2",
            "value": "Option 2",
            "label_key": "translations_category.setting_5_option_2"
          }
        ],
        "default_value": "option_1",
        "label_key": "translations_category.translations_category.setting_5_label",
        "description_key": "translations_category.setting_5_description"
      },
      "setting_key_6": {
        "type": "select_multi",
        "options": [
          {
            "key": "option_1",
            "value": "Option 1",
            "label_key": "translations_category.setting_6_option_1"
          },
          {
            "key": "option_2",
            "value": "Option 2",
            "label_key": "translations_category.setting_6_option_2"
          },
          {
            "key": "option_3",
            "value": "Option 3",
            "label_key": "translations_category.setting_6_option_3"
          }
        ],
        "label_key": "translations_category.setting_6_label",
        "description_key": "translations_category.setting_6_description"
      }
    },
    "label_key": "translations_category.category_1_label"
  },
  "category_name": "category_1"
}
{
  "key": "abc",
  "category": {
    "settings": {
      "setting_key_1": {
        "type": "string",
        "required": true,
        "default_value": "Value 1",
        "label_key": "translations_category.setting_1_label",
        "description_key": "translations_category.setting_1_description"
      },
      "setting_key_2": {
        "type": "integer",
        "range": {
          "min": 0,
          "max": 150
        },
        "required": false,
        "default_value": "100",
        "label_key": "translations_category.setting_2_label",
        "description_key": "translations_category.setting_2_description"
      },
      "setting_key_3": {
        "type": "number",
        "range": {
          "min": 1,
          "max": 150
        },
        "required": true,
        "default_value": "100.50",
        "label_key": "translations_category.setting_3_label",
        "description_key": "translations_category.setting_3_description"
      },
      "setting_key_4": {
        "type": "boolean",
        "default_value": "true",
        "label_key": "translations_category.setting_4_label",
        "description_key": "translations_category.setting_4_description"
      },
      "setting_key_5": {
        "type": "select_single",
        "options": [
          {
            "key": "option_1",
            "value": "Option 1",
            "label_key": "translations_category.setting_5_option_1"
          },
          {
            "key": "option_2",
            "value": "Option 2",
            "label_key": "translations_category.setting_5_option_2"
          }
        ],
        "default_value": "option_1",
        "label_key": "translations_category.translations_category.setting_5_label",
        "description_key": "translations_category.setting_5_description"
      },
      "setting_key_6": {
        "type": "select_multi",
        "options": [
          {
            "key": "option_1",
            "value": "Option 1",
            "label_key": "translations_category.setting_6_option_1"
          },
          {
            "key": "option_2",
            "value": "Option 2",
            "label_key": "translations_category.setting_6_option_2"
          },
          {
            "key": "option_3",
            "value": "Option 3",
            "label_key": "translations_category.setting_6_option_3"
          }
        ],
        "label_key": "translations_category.setting_6_label",
        "description_key": "translations_category.setting_6_description"
      }
    },
    "subcategories": {
      "category_2a": {
        "settings": {},
        "label_key": "translations_category.category_2a_label"
      }
    },
    "label_key": "translations_category.category_2_label"
  },
  "category_name": "category_2"
}
{
  "key": "abc",
  "file": "path/to/file.json",
  "category_name": "category_3"
}

zbos/settings/add/response/{key}

publish

Response: Add settings

Channel tags
  • Settings

Message SuccessMessage

Success message

Payload

Name

Type

Description

Accepted values

success

boolean

Any

message

string

Optional error message

Any

Examples of payload
{
  "success": true
}

zbos/settings/update

publish

Update settings

Update settings overriding the default values.

Channel tags
  • Settings

Message UpdateSettingsRequest
Payload

Name

Type

Description

Accepted values

key

string

Any

category_name

string

Any

category

object

Any

category.settings

object

Any

category.subcategories

object

Optional subcategories

Any

Examples of payload
{
  "key": "abc",
  "category": {
    "settings": {
      "setting_key_1": {
        "value": "Value 1B"
      },
      "setting_key_2": {
        "value": "50"
      },
      "setting_key_3": {
        "value": "110.20"
      },
      "setting_key_4": {
        "value": "false"
      },
      "setting_key_5": {
        "value": "option_2"
      },
      "setting_key_6": {
        "values": [
          "option_2",
          "option_3"
        ]
      }
    },
    "subcategories": {
      "category_1a": {
        "settings": {
          "setting_key_1a": {
            "value": "Value 1A"
          }
        }
      }
    }
  },
  "category_name": "category_1"
}

zbos/settings/update/response/{key}

publish

Response: Update settings

Channel tags
  • Settings

Message SuccessMessage

Success message

Payload

Name

Type

Description

Accepted values

success

boolean

Any

message

string

Optional error message

Any

Examples of payload
{
  "success": true
}

zbos/settings/changed/event/{category}

publish

Event: Settings changed

Channel tags
  • Settings

Message SettingsChangedEvent
Payload

Name

Type

Description

Accepted values

category_name

string

Any

category

object

Any

category.settings

object

Any

category.subcategories

object

Optional subcategories

Any

Examples of payload
{
  "category": {
    "settings": {
      "setting_key_1": {
        "type": "string",
        "value": "Value 1"
      },
      "setting_key_2": {
        "type": "integer",
        "value": "100"
      },
      "setting_key_3": {
        "type": "number",
        "value": "100.50"
      },
      "setting_key_4": {
        "type": "boolean",
        "value": "true"
      },
      "setting_key_5": {
        "type": "select_single",
        "value": "option_1",
        "options": [
          {
            "key": "option_1",
            "value": "Option 1",
            "label_key": "translations_category.setting_5_option_1"
          },
          {
            "key": "option_2",
            "value": "Option 2",
            "label_key": "translations_category.setting_5_option_2"
          }
        ]
      },
      "setting_key_6": {
        "type": "select_multi",
        "values": [
          "option_1",
          "option_2"
        ],
        "options": [
          {
            "key": "option_1",
            "value": "Option 1",
            "label_key": "translations_category.setting_6_option_1"
          },
          {
            "key": "option_2",
            "value": "Option 2",
            "label_key": "translations_category.setting_6_option_2"
          },
          {
            "key": "option_3",
            "value": "Option 3",
            "label_key": "translations_category.setting_6_option_3"
          }
        ]
      }
    }
  },
  "category_name": "category_1"
}

zbos/settings/reset

publish

Reset settings

Reset settings to their default values

Channel tags
  • Settings

Message ResetSettingsRequest
Payload

Name

Type

Description

Accepted values

key

string

Any

category

string

Any

Examples of payload
{
  "key": "abc",
  "category": "category_1"
}

zbos/settings/reset/response/{key}

publish

Response: Reset settings

Channel tags
  • Settings

Message SuccessMessage

Success message

Payload

Name

Type

Description

Accepted values

success

boolean

Any

message

string

Optional error message

Any

Examples of payload
{
  "success": true
}