Settings

API for communication with ZBOS by Zora Robotics.

Channels

zbos/settings/get

PUB Get settings

Get all settings for the provided category

Channel tags
  • Settings

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}

PUB Response: Get settings

Channel tags
  • Settings

GetSettingsResult
Payload

Name

Type

Description

Accepted values

category

object

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

category. 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

PUB Request settings registrations

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

Channel tags
  • Settings

EmptyMessage

Empty message

zbos/settings/add

PUB 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

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}

PUB Response: Add settings

Channel tags
  • Settings

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

PUB Update settings

Update settings overriding the default values.

Channel tags
  • Settings

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"
        ]
      },
      "setting_key_7": {
        "hidden": true
      },
      "setting_key_8": {
        "options": [
          {
            "key": "first",
            "value": "first",
            "label": "First Option"
          },
          {
            "key": "second",
            "value": "second",
            "label": "Second Option"
          }
        ]
      }
    },
    "subcategories": {
      "category_1a": {
        "settings": {
          "setting_key_1a": {
            "value": "Value 1A"
          }
        }
      }
    }
  },
  "category_name": "category_1"
}

zbos/settings/update/response/\{key}

PUB Response: Update settings

Channel tags
  • Settings

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}

PUB Event: Settings changed

Channel tags
  • Settings

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

PUB Reset settings

Reset settings to their default values

Channel tags
  • Settings

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}

PUB Response: Reset settings

Channel tags
  • Settings

SuccessMessage

Success message

Payload

Name

Type

Description

Accepted values

success

boolean

Any

message

string

Optional error message

Any

Examples of payload
{
  "success": true
}