Configuration Commands

How to configure Thingsee BEAM — Service API commands and GraphQL examples

Overview

Thingsee BEAM is configured remotely through the Service API (GraphQL) — named commands with built-in validation and automatic encoding.

Configuration changes can also be requested via support@haltian.com if you do not have direct API access.


Service API Commands

The Service API provides named configuration commands that handle CBOR encoding, delivery, and validation automatically. Use these through the Service API (GraphQL).

Available Commands

CommandPurposeParameters
SetReportAndMeasurementIntervalSet reporting and measurement frequencyreportInterval, measurementInterval
GetReportAndMeasurementIntervalRead current intervals—
SetDeviceConfigurationSet sensor-specific parametersrangingMode, rangingTimingBudget, rangingROI, accelerometer, temperature
GetDeviceConfigurationRead current device configuration—

SetReportAndMeasurementInterval

Configures how frequently the sensor takes measurements and reports data to the cloud.

Parameters:

ParameterTypeRangeDefaultDescription
reportIntervalInteger600–864003600How often the sensor sends a report (seconds)
measurementIntervalInteger10–86400300How often the sensor measures distance (seconds)

Example — 10-minute reporting with 1-minute measurement:

mutation {
  setReportAndMeasurementInterval(
    input: {
      vendorSerial: "TSTF04TSC20204001"
      reportInterval: 600
      measurementInterval: 60
    }
  ) {
    success
  }
}

GetReportAndMeasurementInterval

Reads the current reporting and measurement intervals.

query {
  getReportAndMeasurementInterval(
    vendorSerial: "TSTF04TSC20204001"
  ) {
    reportInterval
    measurementInterval
  }
}

SetDeviceConfiguration

Configures sensor-specific parameters: ranging mode, timing budget, ROI, and optional sensors.

Parameters:

ParameterTypeValuesDefaultDescription
rangingModeInteger1=short, 2=long1Measurement range mode
rangingTimingBudgetInteger15,20,33,50,100,200,500 (ms)50Accuracy vs power trade-off
rangingROIX1Integer0–154ROI left boundary
rangingROIY1Integer0–154ROI top boundary
rangingROIX2Integer0–1511ROI right boundary
rangingROIY2Integer0–1511ROI bottom boundary
accelerometerInteger0=disabled, 1=enabled0Optional tilt detection
temperatureInteger0=disabled, 1=enabled0Optional temperature reporting

Example — Switch to long range mode with wider beam:

mutation {
  setDeviceConfiguration(
    input: {
      vendorSerial: "TSTF04TSC20204001"
      rangingMode: 2
      rangingROIX1: 2
      rangingROIY1: 2
      rangingROIX2: 13
      rangingROIY2: 13
    }
  ) {
    success
  }
}

GetDeviceConfiguration

Reads the current device-specific configuration.

query {
  getDeviceConfiguration(
    vendorSerial: "TSTF04TSC20204001"
  ) {
    rangingMode
    rangingTimingBudget
    rangingROIX1
    rangingROIY1
    rangingROIX2
    rangingROIY2
    accelerometer
    temperature
  }
}

Quick Configuration Recipes

Dispenser Monitoring (Short Range, Frequent)

10-minute reporting, 1-minute measurement, narrow beam for small dispensers:

mutation {
  setReportAndMeasurementInterval(
    input: { vendorSerial: "TSTF04TSC20204001", reportInterval: 600, measurementInterval: 60 }
  ) { success }
}
mutation {
  setDeviceConfiguration(
    input: { vendorSerial: "TSTF04TSC20204001", rangingMode: 1, rangingROIX1: 6, rangingROIY1: 6, rangingROIX2: 9, rangingROIY2: 9 }
  ) { success }
}

Large Bin Monitoring (Long Range, Battery Optimized)

1-hour reporting, 15-minute measurement, wide beam for large bins:

mutation {
  setReportAndMeasurementInterval(
    input: { vendorSerial: "TSTF04TSC20204001", reportInterval: 3600, measurementInterval: 900 }
  ) { success }
}
mutation {
  setDeviceConfiguration(
    input: { vendorSerial: "TSTF04TSC20204001", rangingMode: 2, rangingROIX1: 2, rangingROIY1: 2, rangingROIX2: 13, rangingROIY2: 13 }
  ) { success }
}