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
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
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
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
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
To enable the acceleration sensor of the scale with ID SCALE1234, the rest call would be as follows:
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:
Action | Description | 4-Bit Command | dataId |
GET_WEIGHT | Trigger a weight measurement and read the value. | 0000 | 40 |
GET_FIRMWARE | Readout the Scale Firmware. | 0001 | 41 |
GET_MINIMAL_WAIT_TIME | Readout the minimal wait time in minutes. | 0011 | 41 |
GET_BATT1_THRESHOLD | Readout the low battery threshold. | 0101 | 41 |
GET_BATT2_THRESHOLD | Readout the bad battery threshold. | 0111 | 41 |
GET_ACCELERATION_ SIGNAL_SENSITIVITY | Readout the acceleration module sensitivity. | 1001 | 41 |
GET_ACCELERATION_ MEASUREMENT_DELAY | Readout the acceleration measurement delay in seconds | 1101 | 41 |
GET_ACCELERATION_ MODULE_STATUS | Readout the acceleration module state. | 1111 | 41 |
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 Error | 0000 | 1/0 | Weight in Gram |
Error B2 | 0001 | 0 | 0 |
Error F | 0010 | 0 | 0 |
Error B | 0011 | 1/0 | Weight in Gram |
Error I | 0100 | 1/0 | Weight in Gram |
Error C | 0101 | 1/0 | Weight in Gram |
Error M | 0110 | 1/0 | Weight in Gram |
Error K | 0111 | 1/0 | Weight in Gram |
Error description:
Description | |
Error M | Scale movement detected while weight measurement. Weight might not be correct. |
Error C | Measured weight out of predefined range. 0-6000 g for small and 0-20000 g for large scales |
Error I | Average frequency not in a predefined range during weight measurement. Weight might not be correct. |
Error B | Battery voltage is below the defined BATT1 threshold |
Error B2 | Battery voltage is below the defined BATT2 threshold |
Error F | HW Error. Scale might be defect. |
Error K | Scale is positioned in an angle > 15°. Weight might not be correct. |