Monitoring

API for communication with ZBOS by Zora Robotics.

Channels

zbos/monitoring/event/{source}/{type}

subscribe

Monitoring event

Channel tags
  • Monitoring

Message MonitoringEvent
Payload

Name

Type

Description

Accepted values

id

string

Mandatory. A unique ID for the event

Any

timestamp

number

Mandatory. The time at which the event occurred

Any

type

string

Mandatory. The type of event this is, no dots allowed

Any

source

string

Mandatory. What device produced this event, no dots allowed

Any

value

string

Optional. A value relating to the event such as a temperature

Any

data

object

Optional. Extra data related to the event

Any

unit

string

Optional. The type of unit the value is expressed in such as °C

Any

alarms

array(object)

Optional. Alarms attached to this event

Any

alarms.type

object

Mandatory. The type of alarm

  • ItemOmission

  • ItemCommission

  • ServiceOmission

  • ServiceCommission

  • TransientServiceOmission

  • TransientServiceCommission

  • EarlyServiceOmission

  • LateServiceCommission

  • EarlyServiceStart

  • LateServiceStart

  • BoundedOmissionInterval

  • UndetectableValueError

  • BelowRange

  • AboveRange

  • BoundedValueChange

  • StuckValue

  • OutOfBounds

  • OutOfOrder

  • OutOfCalibration

  • EarlyDelivery

  • LateDelivery

  • HighRate

  • LowRate

  • RateJitter

  • EarlyService

  • DelayedService

  • SymmetricReplicationError

  • AsymmetricApproximateValue

  • AsymmetricExactValue

  • AsymmetricItemOmission

  • AsymmetricServiceOmission

  • AsymmetricTiming

  • ReadWriteRace

  • WriteWriteRace

  • Deadlock

  • Starvation

  • AuthorizationError

  • AuthenticationError

alarms.type.name

string

Any

alarms.type.ordinal

integer

Any

alarms.severity

integer

Mandatory. How critical the alarm is

Any

alarms.persist

boolean

Mandatory. If this is an ongoing alarm

Any

alarms.timestamp

number

Mandatory. When the alarm initially started

Any

Example of payload (generated)
{
  "id": "string",
  "timestamp": 0,
  "type": "string",
  "source": "string",
  "value": "string",
  "data": {},
  "unit": "string",
  "alarms": [
    {
      "type": "ItemOmission",
      "severity": 0,
      "persist": true,
      "timestamp": 0
    }
  ]
}

zbos/monitoring/list/get

publish

Get monitoring events

Channel tags
  • Monitoring

Message FilteringRequest
Payload

Name

Type

Description

Accepted values

key

string

Any

limit

integer

Any

offset

integer

Any

filters

array(object)

Any

filters.field

string

Field to check on. Note that the field should be camelCase, not snake_case

Any

filters.value

string

Value to check on. For numbers you should use 'min' and 'max'.

Any

filters.min

number

Minimum value, only usable for number fields

Any

filters.max

number

Maximum value, only usable for number fields

Any

filters.direction

object

Direction to sort on. Can be 'asc' or 'desc'. The default direction is 'asc'

  • asc

  • desc

filters.direction.name

string

Any

filters.direction.ordinal

integer

Any

filters.operator

object

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'

  • and

  • or

  • not

filters.operator.alternateNames

array(string)

Any

filters.operator.name

string

Any

filters.operator.ordinal

integer

Any

filters.match_type

object

Match type for string values. Can be 'exact', 'contains', 'starts_with', 'ends_with'. The default match_type is 'contains'

  • exact

  • contains

  • starts_with

  • ends_with

filters.match_type.name

string

Any

filters.match_type.ordinal

integer

Any

filters.filters

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

filters.field_filters

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

sort

array(object)

Any

sort.field

string

Field to check on. Note that the field should be camelCase, not snake_case

Any

sort.value

string

Value to check on. For numbers you should use 'min' and 'max'.

Any

sort.min

number

Minimum value, only usable for number fields

Any

sort.max

number

Maximum value, only usable for number fields

Any

sort.direction

object

Direction to sort on. Can be 'asc' or 'desc'. The default direction is 'asc'

  • asc

  • desc

sort.direction.name

string

Any

sort.direction.ordinal

integer

Any

sort.operator

object

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'

  • and

  • or

  • not

sort.operator.alternateNames

array(string)

Any

sort.operator.name

string

Any

sort.operator.ordinal

integer

Any

sort.match_type

object

Match type for string values. Can be 'exact', 'contains', 'starts_with', 'ends_with'. The default match_type is 'contains'

  • exact

  • contains

  • starts_with

  • ends_with

sort.match_type.name

string

Any

sort.match_type.ordinal

integer

Any

sort.filters

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

sort.field_filters

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

Examples of payload
{
  "key": "Test123",
  "limit": 50,
  "offset": 10,
  "filters": [
    {
      "operator": "or",
      "match_type": "contains"
    },
    {
      "field": "type",
      "value": "image",
      "operator": "and",
      "match_type": "contains"
    },
    {
      "field": "date",
      "operator": "and",
      "match_type": "contains"
    }
  ],
  "sort": [
    {
      "field": "extension",
      "operator": "and",
      "match_type": "contains"
    },
    {
      "field": "name",
      "operator": "and",
      "match_type": "contains"
    }
  ]
}

zbos/monitoring/list/get/response/{key}

subscribe

response: Get monitoring events

Channel tags
  • Monitoring

Message Array<MonitoringEvent>
Payload

Name

Type

Description

Accepted values

Message Payload

array(object)

Any

Message Payload.id

string

Mandatory. A unique ID for the event

Any

Message Payload.timestamp

number

Mandatory. The time at which the event occurred

Any

Message Payload.type

string

Mandatory. The type of event this is, no dots allowed

Any

Message Payload.source

string

Mandatory. What device produced this event, no dots allowed

Any

Message Payload.value

string

Optional. A value relating to the event such as a temperature

Any

Message Payload.data

object

Optional. Extra data related to the event

Any

Message Payload.unit

string

Optional. The type of unit the value is expressed in such as °C

Any

Message Payload.alarms

array(object)

Optional. Alarms attached to this event

Any

Message Payload.alarms.type

object

Mandatory. The type of alarm

  • ItemOmission

  • ItemCommission

  • ServiceOmission

  • ServiceCommission

  • TransientServiceOmission

  • TransientServiceCommission

  • EarlyServiceOmission

  • LateServiceCommission

  • EarlyServiceStart

  • LateServiceStart

  • BoundedOmissionInterval

  • UndetectableValueError

  • BelowRange

  • AboveRange

  • BoundedValueChange

  • StuckValue

  • OutOfBounds

  • OutOfOrder

  • OutOfCalibration

  • EarlyDelivery

  • LateDelivery

  • HighRate

  • LowRate

  • RateJitter

  • EarlyService

  • DelayedService

  • SymmetricReplicationError

  • AsymmetricApproximateValue

  • AsymmetricExactValue

  • AsymmetricItemOmission

  • AsymmetricServiceOmission

  • AsymmetricTiming

  • ReadWriteRace

  • WriteWriteRace

  • Deadlock

  • Starvation

  • AuthorizationError

  • AuthenticationError

Message Payload.alarms.type.name

string

Any

Message Payload.alarms.type.ordinal

integer

Any

Message Payload.alarms.severity

integer

Mandatory. How critical the alarm is

Any

Message Payload.alarms.persist

boolean

Mandatory. If this is an ongoing alarm

Any

Message Payload.alarms.timestamp

number

Mandatory. When the alarm initially started

Any

Example of payload (generated)
[
  {
    "id": "string",
    "timestamp": 0,
    "type": "string",
    "source": "string",
    "value": "string",
    "data": {},
    "unit": "string",
    "alarms": [
      {
        "type": "ItemOmission",
        "severity": 0,
        "persist": true,
        "timestamp": 0
      }
    ]
  }
]

zbos/monitoring/registration/request

subscribe

Request monitoring registrations

Request all monitoring services to register themselves using the topics below.

Channel tags
  • Monitoring

Message EmptyMessage

Empty message

Payload

Name

Type

Description

Accepted values

Message Payload

object

Any

Example of payload (generated)
{}

zbos/monitoring/add

publish

Add monitoring service

Add monitoring service with their default values and extra settings. Settings can be retrieved using the settings API, see zbos/settings/get

Channel tags
  • Monitoring

Message AddMonitoringServiceRequest
Payload

Name

Type

Description

Accepted values

key

string

Any

service

object

Any

service.source

string

Mandatory. The source of this monitoring service

Any

service.type

string

Mandatory. The type of this monitoring service

Any

service.default_settings

object

Optional. Any default settings to be overridden

Any

service.default_settings.enabled

boolean

Any

service.default_settings.storage_type

object

  • disk

  • memory

service.default_settings.storage_type.labelKey

string

Any

service.default_settings.storage_type.name

string

Any

service.default_settings.storage_type.ordinal

integer

Any

service.default_settings.persistence_type

object

  • hours

  • days

  • weeks

  • months

  • items

service.default_settings.persistence_type.labelKey

string

Any

service.default_settings.persistence_type.name

string

Any

service.default_settings.persistence_type.ordinal

integer

Any

service.default_settings.persistence_value

integer

Any

service.default_settings.cloud_sync

boolean

Any

service.default_settings.push_notifications

boolean

Any

service.default_settings.email_notifications

boolean

Any

service.extraSettings

object

Optional. Any extra settings to be registered

Any

Examples of payload
{
  "key": "some_key",
  "service": {
    "source": "camera",
    "type": "mask",
    "extraSettings": {
      "some_setting": {
        "type": "boolean",
        "default_value": "true",
        "label_key": "some_setting"
      }
    },
    "default_settings": {
      "enabled": true,
      "storage_type": "disk",
      "persistence_type": "days",
      "persistence_value": 7
    }
  }
}

zbos/monitoring/add/response/{key}

subscribe

Response: Add monitoring service

Channel tags
  • Monitoring

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/monitoring/event/add

publish

Add a new event

Channel tags
  • Monitoring

Message AddMonitoringEventRequest
Payload

Name

Type

Description

Accepted values

key

string

Any

event

object

Any

event.timestamp

number

Mandatory. The time at which the event occurred

Any

event.type

string

Mandatory. The type of event this is, no dots allowed

Any

event.source

string

Mandatory. What device produced this event, no dots allowed

Any

event.value

string

Optional. A value relating to the event such as a temperature

Any

event.data

object

Optional. Extra data related to the event

Any

event.unit

string

Optional. The type of unit the value is expressed in such as °C

Any

event.alarms

array(object)

Optional. Alarms attached to this event

Any

event.alarms.type

object

Mandatory. The type of alarm

  • ItemOmission

  • ItemCommission

  • ServiceOmission

  • ServiceCommission

  • TransientServiceOmission

  • TransientServiceCommission

  • EarlyServiceOmission

  • LateServiceCommission

  • EarlyServiceStart

  • LateServiceStart

  • BoundedOmissionInterval

  • UndetectableValueError

  • BelowRange

  • AboveRange

  • BoundedValueChange

  • StuckValue

  • OutOfBounds

  • OutOfOrder

  • OutOfCalibration

  • EarlyDelivery

  • LateDelivery

  • HighRate

  • LowRate

  • RateJitter

  • EarlyService

  • DelayedService

  • SymmetricReplicationError

  • AsymmetricApproximateValue

  • AsymmetricExactValue

  • AsymmetricItemOmission

  • AsymmetricServiceOmission

  • AsymmetricTiming

  • ReadWriteRace

  • WriteWriteRace

  • Deadlock

  • Starvation

  • AuthorizationError

  • AuthenticationError

event.alarms.type.name

string

Any

event.alarms.type.ordinal

integer

Any

event.alarms.severity

integer

Mandatory. How critical the alarm is

Any

event.alarms.persist

boolean

Mandatory. If this is an ongoing alarm

Any

event.alarms.timestamp

number

Mandatory. When the alarm initially started

Any

Examples of payload
{
  "key": "some_key",
  "event": {
    "timestamp": 1349333576093,
    "type": "SomeType",
    "source": "SomeSource",
    "valid": true
  }
}

zbos/monitoring/event/add/response/{key}

subscribe

response: Add a new event

Channel tags
  • Monitoring

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/monitoring/event/delete

publish

Delete an event

Channel tags
  • Monitoring

Message MonitoringEvent
Payload

Name

Type

Description

Accepted values

id

string

Mandatory. A unique ID for the event

Any

timestamp

number

Mandatory. The time at which the event occurred

Any

type

string

Mandatory. The type of event this is, no dots allowed

Any

source

string

Mandatory. What device produced this event, no dots allowed

Any

value

string

Optional. A value relating to the event such as a temperature

Any

data

object

Optional. Extra data related to the event

Any

unit

string

Optional. The type of unit the value is expressed in such as °C

Any

alarms

array(object)

Optional. Alarms attached to this event

Any

alarms.type

object

Mandatory. The type of alarm

  • ItemOmission

  • ItemCommission

  • ServiceOmission

  • ServiceCommission

  • TransientServiceOmission

  • TransientServiceCommission

  • EarlyServiceOmission

  • LateServiceCommission

  • EarlyServiceStart

  • LateServiceStart

  • BoundedOmissionInterval

  • UndetectableValueError

  • BelowRange

  • AboveRange

  • BoundedValueChange

  • StuckValue

  • OutOfBounds

  • OutOfOrder

  • OutOfCalibration

  • EarlyDelivery

  • LateDelivery

  • HighRate

  • LowRate

  • RateJitter

  • EarlyService

  • DelayedService

  • SymmetricReplicationError

  • AsymmetricApproximateValue

  • AsymmetricExactValue

  • AsymmetricItemOmission

  • AsymmetricServiceOmission

  • AsymmetricTiming

  • ReadWriteRace

  • WriteWriteRace

  • Deadlock

  • Starvation

  • AuthorizationError

  • AuthenticationError

alarms.type.name

string

Any

alarms.type.ordinal

integer

Any

alarms.severity

integer

Mandatory. How critical the alarm is

Any

alarms.persist

boolean

Mandatory. If this is an ongoing alarm

Any

alarms.timestamp

number

Mandatory. When the alarm initially started

Any

Examples of payload
{
  "id": "some_id",
  "timestamp": 1349333576093,
  "type": "SomeType",
  "source": "SomeSource",
  "valid": true
}

zbos/monitoring/event/delete/event

subscribe

event: Delete an event

Channel tags
  • Monitoring

Message MonitoringResponse
Payload

Name

Type

Description

Accepted values

key

string

The key used by the add request

Any

success

boolean

Did the operation succeed

Any

id

string

The ID of the new event

Any

Example of payload (generated)
{
  "key": "string",
  "success": true,
  "id": "string"
}