Bossard SmartBin Cloud basic communication

About Bossard SmartBin Cloud solution

The Bossard SmartBin Cloud solution is an IoT inventory management solution that provides an order automation solution for all interested parties. The key part of this solution is the scale that monitors the weight of the product in the bin. The sepioo® Platform offers the possibility to communicate with the scale and to adjust some parameters and settings that can influence the behavior of the Bossard SmartBin solution. This article explains what can be done and how.

Some of the parameters can be adjusted via API calls, and more about this can be found in the following article:

Bossard SmartBin Cloud Scale Parameter

As mentioned before, some of the Scale parameters can be changed, and some of them can be done with the following sepioo® REST Endpoint:

POST: {account}/{location}/devices/{id}/data 
Body: “parameter”: integer }

The parameter is a 12-bit value where the first 4 bits (most significant nibble) represent the parameter to be set and the remaining 8 bits represent the value to which the parameter is to be set.

 

SET_ACCELERATION_MODULE_STATUS
Enable or disable the acceleration module. If disabled, only manual readouts will trigger a weight measurement.

  • Default Value: 0
  • Possible Values:
    0 (deactivated)
    1 (activated)
  • 4-Bit-Command: 1110

 

SET_MINIMAL_WAIT_TIME
Defines the time in minutes to wait between measurements automatically triggered by the acceleration module. During this time, no acceleration will be detected and therefore no measurement will be triggered.

  • Default Value: 60
  • Possible Values: 0 – 255
  • 4-Bit-Command: 0010
 
SET_ACCELERATION_MEASUREMENT_DELAY
Specifies the time in seconds to wait between when the acceleration is detected and when the weight is measured.
 
  • Default Value: 10
  • Possible Values: 0 – 255
  • 4-Bit-Command: 1100
 
SET_ACCELERATION_SIGNAL_SENSITIVITY
Adjust the sensitivity of the acceleration module.
 
  • Default Value: 1
  • Possible Values:
    1-10: less to high sensitivity in +-2G range
    11-20: less to high sensitivity in +-4G range
  • 4-Bit-Command: 1000
 
SET_BATT1_THRESHOLD
Threshold in volts at which the scale begins to report a low battery condition.
 
  • Default Value: 32 -> 3,2 Volt
  • Possible Values: 0 – 255
  • 4-Bit-Command: 0100
 
SET_BATT2_THRESHOLD
Threshold in volts at which the scale begins to report a bad battery.
 
  • Default Value: 30 -> 3,0 Volt
  • Possible Values: 0 – 255
  • 4-Bit-Command: 0110
 
EXAMPLE:
To enable the acceleration sensor of the scale with ID SCALE1234, the rest call would be as follows:
 
POST: industry_example_eu/Example/devices/SCALE1234/data 
Body: { “parameter”: 3585 }
 
Parameter: 3585 -> 0b1110 0000 0001
Command: 0b1110 -> SET_ACCELERATION_MODULE_STATUS
Data: 0000 0001 -> 1 (activated)
 
READ SCALE DATA
To read scale data, a combination of the following sepioo® REST endpoints and the messages received from the “status_update” and “device_data” queues is required:
 
POST: {account}/{location}/devices/{id}/data 
Body: { “parameter”: integer }
 
 
POST: /{account}/{location}/devices/{id}/data/{dataId} 
Body: none
 
ActionDescription4-Bit CommanddataId
GET_WEIGHT

Trigger a weight measurement and

read the value.

000040
GET_FIRMWAREReadout the Scale Firmware.000141
GET_MINIMAL_WAIT_TIMEReadout the minimal wait time in minutes.001141
GET_BATT1_THRESHOLD

Readout the low

battery threshold.

010141
GET_BATT2_THRESHOLDReadout the bad battery threshold.011141
GET_ACCELERATION_ SIGNAL_SENSITIVITY

Readout the acceleration

module sensitivity.

100141
GET_ACCELERATION_ MEASUREMENT_DELAY

Readout the acceleration measurement

delay in seconds

110141
GET_ACCELERATION_ MODULE_STATUS

Readout the acceleration

module state.

111141

EXAMPLE
To trigger a weight measurement and read the weight value from a Scale with ID SCALE1234, following steps are necessary:

Trigger weight readout:

POST: /industry_example_eu/Example/devices/SCALE1234/data 
Body: { “parameter”: 0 }

Parameter: 0 -> 0b0000 0000 0000
Response: This call returns an eventId. In this example eventId = 112233

 

Wait until an event status update message with the following content is received from the “status_update” queue:

{ “deviceId”: “SCALE1234”, “messageType”: “EVENT_STATUS_UPDATE”, “eventId”: 112233, “eventStatus”: “SUCCESSFUL”… (for simplicity reasons, other parameters are omitted from the example)}

 

Trigger weight readout:

POST: /industry_example_eu/Example/devices/SCALE1234/data/40 
Response: This call returns an eventId. In this example eventId = 445566

 

Wait for a weight data message with the following content to be received from the “device_data” queue:

{“deviceId”: ” SCALE1234″, “eventId”: 445566, “messageType”: “DEVICE_DATA”, “status”: “SUCCESSFUL”,

“payload”: {“data”: 55,“type”: 41} … (for simplicity reasons other parameters are omitted from the example)}

Decode the payload.data according to the following table:

 

 

Error Code

Bit: 32 – 28

Sign Number 0: positive

1: negative

Bit: 27

27-bit weight value in gram

Bit: 26 – 0

No Error00001/0Weight in Gram
Error B2000100
Error F001000
Error B00111/0Weight in Gram
Error I01001/0Weight in Gram
Error C01011/0Weight in Gram
Error M01101/0Weight in Gram
Error K01111/0Weight in Gram

Error description:

 Description
Error MScale movement detected while weight measurement. Weight might not be correct.
Error CMeasured weight out of predefined range. 0-6000 g for small and 0-20000 g for large scales
Error IAverage frequency not in a predefined range during weight measurement. Weight might not be correct.
Error BBattery voltage is below the defined BATT1 threshold
Error B2Battery voltage is below the defined BATT2 threshold
Error FHW Error. Scale might be defect.
Error KScale is positioned in an angle > 15°. Weight might not be correct.