Applications
API for communication with ZBOS by Zora Robotics.
Channels
zbos/applications/categories/get
PUB Get application categories
Get all application categories.
zbos/applications/categories/get/response/\{key}
SUB Response: Get application categories
Array<ApplicationCategory>
Payload
| Name | Type | Description | Accepted values | 
| 
 | array (object) | Any | |
| 
 | string | Any | |
| 
 | string | Use name for a static name, or name_key for a translatable name | Any | 
| 
 | string | Use name for a static name, or name_key for a translatable name | Any | 
| 
 | integer | Any | 
zbos/applications/apps/get
PUB Get applications
Get all applications with optional filters.
GetApplicationsRequest
Payload
| Name | Type | Description | Accepted values | 
| 
 | string | Any | |
| 
 | integer | Any | |
| 
 | integer | Any | |
| 
 | array (object) | Any | |
| 
 | string | Field to check on. Note that the field should be camelCase, not snake_case | Any | 
| 
 | string | Value to check on. For numbers you should use 'min' and 'max'. | Any | 
| 
 | number | Minimum value, only usable for number fields | Any | 
| 
 | number | Maximum value, only usable for number fields | Any | 
| 
 | string | Direction to sort on. Can be 'asc' or 'desc'. The default direction is 'asc' | *  | 
| 
 | string | Operator for either the child filters, or this filter object itself. Can be 'and', 'or' or 'not'. Default is 'and'. The root operator is always 'and' | *  | 
| 
 | string | Match type for string values. Can be 'exact', 'contains', 'starts_with', 'ends_with'. The default match_type is 'contains' | *  | 
| 
 | array (object) | Filters on which the operator will be applied. If there are no child filters, the operator will be applied to the filter object itself. | Any | 
| 
 | array (object) | Filters to apply on the child fields of the field. Will only work if the field is an object, array/list or map. | Any | 
| 
 | string | Optional. Set the language to have all translations filled in. The language format is ISO 639-1 language code, Eg: 'en' or 'en-US' | Any | 
zbos/applications/apps/get/response/\{key}
SUB Response: Get applications
Array<Application>
Payload
| Name | Type | Description | Accepted values | 
| 
 | array (object) | Any | |
| 
 | string | This could be a package name, or some other defined unique ID | Any | 
| 
 | string | Use name for a static name, or name_key for a translatable name | Any | 
| 
 | string | Use name for a static name, or name_key for a translatable name | Any | 
| 
 | string | Any | |
| 
 | integer | Any | |
| 
 | array (object) | Any | |
| 
 | string | Any | |
| 
 | string | Use name for a static name, or name_key for a translatable name | Any | 
| 
 | string | Use name for a static name, or name_key for a translatable name | Any | 
| 
 | string | List of available actions: open: Opens an application handled by the RAILopen_control: Opens an application handled by the control settings: Opens the settings, handled by the control datasource: Edit the datasource, handled by the control other: Should be handled by the app itself | *  | 
| 
 | object | Optional data that an action might need. | Any | 
| 
 | string | Any | |
| 
 | boolean | Adds this application to the list of optional apps, which determines if the app is shown to the user | Any | 
| 
 | string | The path to an image on the robot or the url to an image | Any | 
Examples of payload
{
  "id": "com.zorabots.application.one",
  "name": "Application 1",
  "weight": 10,
  "actions": [
    {
      "name": "Open",
      "type": "open",
      "data": {
        "key1": "value1"
      },
      "valid": true,
      "application_id": "com.zorabots.application.one"
    },
    {
      "name": "Settings",
      "type": "settings",
      "valid": true,
      "application_id": "com.zorabots.application.one"
    },
    {
      "name": "Datasource",
      "type": "datasources",
      "valid": true,
      "application_id": "com.zorabots.application.one"
    }
  ],
  "optional": false,
  "category_id": "category_1"
}{
  "id": "com.zorabots.application.two",
  "weight": 20,
  "actions": [
    {
      "type": "open",
      "data": {
        "key1": "value1"
      },
      "valid": true,
      "application_id": "com.zorabots.application.two",
      "name_key": "Open"
    },
    {
      "name": "Some other action",
      "type": "other",
      "data": {
        "key1": "value1"
      },
      "valid": true,
      "application_id": "com.zorabots.application.two"
    }
  ],
  "optional": false,
  "name_key": "application_2_key",
  "category_id": "category_1"
}zbos/applications/apps/changed/event/\{app}
PUB Application changed
Fired when an app was added or changed.
Application
Payload
| Name | Type | Description | Accepted values | 
| 
 | string | This could be a package name, or some other defined unique ID | Any | 
| 
 | string | Use name for a static name, or name_key for a translatable name | Any | 
| 
 | string | Use name for a static name, or name_key for a translatable name | Any | 
| 
 | string | Any | |
| 
 | integer | Any | |
| 
 | array (object) | Any | |
| 
 | string | Any | |
| 
 | string | Use name for a static name, or name_key for a translatable name | Any | 
| 
 | string | Use name for a static name, or name_key for a translatable name | Any | 
| 
 | string | List of available actions: open: Opens an application handled by the RAILopen_control: Opens an application handled by the control settings: Opens the settings, handled by the control datasource: Edit the datasource, handled by the control other: Should be handled by the app itself | *  | 
| 
 | object | Optional data that an action might need. | Any | 
| 
 | string | Any | |
| 
 | boolean | Adds this application to the list of optional apps, which determines if the app is shown to the user | Any | 
| 
 | string | The path to an image on the robot or the url to an image | Any | 
Examples of payload
{
  "id": "com.zorabots.application.one",
  "name": "Application 1",
  "weight": 10,
  "actions": [
    {
      "name": "Open",
      "type": "open",
      "data": {
        "key1": "value1"
      },
      "valid": true,
      "application_id": "com.zorabots.application.one"
    },
    {
      "name": "Settings",
      "type": "settings",
      "valid": true,
      "application_id": "com.zorabots.application.one"
    },
    {
      "name": "Datasource",
      "type": "datasources",
      "valid": true,
      "application_id": "com.zorabots.application.one"
    }
  ],
  "optional": false,
  "category_id": "category_1"
}zbos/applications/icons/get
PUB Get application icon
Get the application icons for the passed application ID.
zbos/applications/actions/start
PUB Start application action
Start an application action.
ApplicationAction
Payload
| Name | Type | Description | Accepted values | 
| 
 | string | Any | |
| 
 | string | Use name for a static name, or name_key for a translatable name | Any | 
| 
 | string | Use name for a static name, or name_key for a translatable name | Any | 
| 
 | string | List of available actions: open: Opens an application handled by the RAILopen_control: Opens an application handled by the control settings: Opens the settings, handled by the control datasource: Edit the datasource, handled by the control other: Should be handled by the app itself | *  | 
| 
 | object | Optional data that an action might need. | Any | 
| 
 | string | Any | 
Examples of payload
{
  "name": "Open",
  "type": "open",
  "data": {
    "key1": "value1"
  },
  "key": "some_key",
  "valid": true,
  "application_id": "com.zorabots.application.one"
}{
  "name": "Settings",
  "type": "settings",
  "key": "some_key",
  "valid": true,
  "application_id": "com.zorabots.application.one"
}{
  "name": "Datasource",
  "type": "datasources",
  "key": "some_key",
  "valid": true,
  "application_id": "com.zorabots.application.one"
}{
  "name": "Some other action",
  "type": "other",
  "data": {
    "key1": "value1"
  },
  "key": "some_key",
  "valid": true,
  "application_id": "com.zorabots.application.one"
}zbos/applications/registration/add
PUB Add application registration
Registers an application to the applications list. Should be executed every time the application is started.
RegisterApplicationRequest
Payload
| Name | Type | Description | Accepted values | 
| 
 | string | Any | |
| 
 | object | Any | |
| 
 | string | This could be a package name, or some other defined unique ID | Any | 
| 
 | string | Use name for a static name, or name_key for a translatable name | Any | 
| 
 | string | Use name for a static name, or name_key for a translatable name | Any | 
| 
 | string | Any | |
| 
 | integer | Any | |
| 
 | array (object) | Any | |
| 
 | string | Any | |
| 
 | string | Use name for a static name, or name_key for a translatable name | Any | 
| 
 | string | Use name for a static name, or name_key for a translatable name | Any | 
| 
 | string | List of available actions: open: Opens an application handled by the RAILopen_control: Opens an application handled by the control settings: Opens the settings, handled by the control datasource: Edit the datasource, handled by the control other: Should be handled by the app itself | *  | 
| 
 | object | Optional data that an action might need. | Any | 
| 
 | string | Any | |
| 
 | boolean | Adds this application to the list of optional apps, which determines if the app is shown to the user | Any | 
| 
 | string | The path to an image on the robot or the url to an image | Any | 
Examples of payload
{
  "key": "abc",
  "application": {
    "id": "com.zorabots.application.one",
    "name": "Application 1",
    "weight": 10,
    "actions": [
      {
        "name": "Open",
        "type": "open",
        "data": {
          "key1": "value1"
        },
        "valid": true,
        "application_id": "com.zorabots.application.one"
      },
      {
        "name": "Settings",
        "type": "settings",
        "valid": true,
        "application_id": "com.zorabots.application.one"
      }
    ],
    "optional": false,
    "category_id": "category_1",
    "icon_uri": "/sdcard/zbos_media_library/background.jpg"
  },
  "valid": true
}{
  "key": "def",
  "application": {
    "id": "com.zorabots.application.two",
    "name": "Application 2",
    "weight": 20,
    "actions": [
      {
        "name": "Open",
        "type": "open",
        "data": {
          "key1": "value1"
        },
        "valid": true,
        "application_id": "com.zorabots.application.two"
      },
      {
        "name": "Settings",
        "type": "settings",
        "valid": true,
        "application_id": "com.zorabots.application.two"
      }
    ],
    "optional": false,
    "category_id": "category_1",
    "icon_uri": "https://www.zorarobotics.be/sites/default/files/styles/desktop_fixed_height_1x/public/2020-05/zorabots-robot-james-web.png?itok=5kw5HYOg"
  },
  "valid": true
}{
  "key": "ghi",
  "application": {
    "id": "com.zorabots.application.three",
    "name": "Application 3",
    "weight": 30,
    "actions": [
      {
        "name": "Open",
        "type": "open",
        "data": {
          "key1": "value1"
        },
        "valid": true,
        "application_id": "com.zorabots.application.three"
      },
      {
        "name": "Settings",
        "type": "settings",
        "valid": true,
        "application_id": "com.zorabots.application.three"
      }
    ],
    "optional": false,
    "category_id": "category_1"
  },
  "valid": true
}