Skip to content

Conveyor

Conveyors and belt scales: belt speed, throughput and totalised tonnage.

Conveyors and belt scales: belt speed, throughput and totalised tonnage. Send readings for this device type with the field names in the metrics table. Every table on this page is generated from the platform, so it matches what the ingest service accepts today.

Metrics#

These are the registered field names for the data object. A reading may carry any subset. A missing field is not an error, so a device can report one value at a time. Any field you send that is not listed here is a custom data point. Custom data points appear on dashboards. They never drive alerts or forecasts.

Conveyor metric fields
FieldTypeRequiredUnitDescription
weightnumberYeskgCurrent weight
ratenumberNoNot setThroughput rate
speednumberNom/sBelt speed
totaliser1numberNoNot setRate x time since last reset - total weight over period
totaliser2numberNoNot setRate x time since last reset - total weight over period
statusstringNoNot setDevice status

Configuration#

Configuration is set on the device in the app. It is not sent with a reading. It tells Logable how to read the values, for example which unit a weight is in.

Conveyor configuration fields
FieldTypeRequiredDefaultDescription
weightUnitkg | tons | lbsYeskgUnit for weight, rate, and totaliser values. Changing this changes the label on existing readings. It does not convert them.
maxWeightnumberNoNot setMaximum weight capacity on belt (in the Capacity unit)
capacityUnitkg | tons | lbsNoinherits weightUnitUnit for the maximum weight capacity. Changing this changes the label on existing readings. It does not convert them.
maxRatenumberNoNot setMaximum rate per hour (in the Rate unit)
rateUnitkg | tons | lbsNoinherits weightUnitUnit for the throughput rate, shown per hour. Changing this changes the label on existing readings. It does not convert them.
totaliser1Unitkg | tons | lbsNoinherits weightUnitUnit for totaliser 1. Changing this changes the label on existing readings. It does not convert them.
totaliser2Unitkg | tons | lbsNoinherits weightUnitUnit for totaliser 2. Changing this changes the label on existing readings. It does not convert them.
speedUnitm/s | m/min | ft/s | ft/minNom/sUnit of measurement for speed
nominalSpeednumberNoNot setNormal running speed, in the configured speed unit
materialstringNoNot setMaterial being conveyed

Example payload#

A complete request body for this device type.

{
  "timestamp": "2026-07-01T10:00:00.000Z",
  "status": "online",
  "data": {
    "weight": 95.3,
    "rate": 12500,
    "speed": 1.8,
    "totaliser1": 540000,
    "totaliser2": 12000,
    "status": "running"
  }
}

Code samples#

Replace the placeholder id and token with the values from the device's Connection tab.

Over HTTP

# Conveyor - Quick Test (curl)
# Device Type: conveyor | Device ID: <DEVICE_ID>
#
# The "data" fields shown are this device type's registered metrics.
# Optionally add your OWN custom fields to "data" (e.g. "totalizer": 1284300.0).
# Custom keys: start with a letter; letters/digits/underscores; max 64 chars.
# Up to 20 custom fields; values: number, string (max 256 chars) or boolean.
# Custom values appear on dashboards via a widget's "Show Custom Data" option.

curl -X POST "https://ingest.logable.app/ingest/<DEVICE_ID>" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer <DEVICE_TOKEN>" \
  -d '{"timestamp":"2026-07-01T10:00:00.000Z","status":"online","data":{"weight":95.3,"rate":12500,"speed":1.8,"totaliser1":540000,"totaliser2":12000,"status":"running"}}'

Over MQTT

"""
Conveyor - Logable MQTT Integration (Python)
Device Type: conveyor
Device ID: <DEVICE_ID>

Broker: MQTT over TLS on port 8883 (Let's Encrypt certificate; standard system CAs validate it). WebSocket: wss://mqtt.logable.app/mqtt
Client ID must be unique per connection - a duplicate ID disconnects the other client.
Access: this device may publish/subscribe only under devices/<DEVICE_ID>/* - everything else is denied.

Installation: pip install paho-mqtt
"""

import paho.mqtt.client as mqtt
import json
from datetime import datetime, timezone
import time

MQTT_HOST = "mqtt.logable.app"
MQTT_PORT = 8883
MQTT_USERNAME = "<DEVICE_ID>"
MQTT_PASSWORD = "<DEVICE_TOKEN>"
MQTT_CLIENT_ID = "logable-<DEVICE_ID>"
MQTT_TOPIC = "devices/<DEVICE_ID>/data"

def on_connect(client, userdata, flags, reason_code, properties):
    if reason_code.is_failure:
        print(f"Connection failed: {reason_code}")
    else:
        print(f"Connected to MQTT broker at {MQTT_HOST}:{MQTT_PORT}")

def send_data(client):
    # The "data" fields shown are this device type's registered metrics.
    # Optionally add your OWN custom fields to "data" (e.g. "totalizer": 1284300.0).
    # Custom keys: start with a letter; letters/digits/underscores; max 64 chars.
    # Up to 20 custom fields; values: number, string (max 256 chars) or boolean.
    # Custom values appear on dashboards via a widget's "Show Custom Data" option.
    payload = {
        "timestamp": datetime.now(timezone.utc).isoformat(),
        "status": "online",
        "data": {
            "weight": 95.3,
            "rate": 12500,
            "speed": 1.8,
            "totaliser1": 540000,
            "totaliser2": 12000,
            "status": "running"
        }
    }
    result = client.publish(MQTT_TOPIC, json.dumps(payload), qos=1)
    if result.rc == mqtt.MQTT_ERR_SUCCESS:
        print(f"Data sent to {MQTT_TOPIC}")

def main():
    client = mqtt.Client(mqtt.CallbackAPIVersion.VERSION2, client_id=MQTT_CLIENT_ID)
    client.on_connect = on_connect
    client.username_pw_set(MQTT_USERNAME, MQTT_PASSWORD)
    # TLS with the default system CA store - validates the broker's
    # Let's Encrypt certificate out of the box.
    client.tls_set()

    try:
        client.connect(MQTT_HOST, MQTT_PORT, keepalive=60)
        client.loop_start()
        time.sleep(1)
        send_data(client)
        time.sleep(1)
        client.loop_stop()
        client.disconnect()
    except Exception as e:
        print(f"Error: {e}")

if __name__ == "__main__":
    main()

Widgets#

Widgets you can put on a dashboard for this device type.

  • Conveyor Monitoring. Real-time conveyor belt monitoring with weight, speed, rate, and totaliser metrics
  • Data Table. Tabular view of device metrics with pagination, sorting, and real-time updates
  • Line Chart. Time-series line chart for visualizing metrics over time with multiple devices
  • Area Chart. Filled area chart for volume and trend visualization
  • Bar Chart. Categorical comparison with vertical or horizontal bars
  • Pie Chart. Proportional distribution visualization
  • Radar Chart. Multi-dimensional data comparison
  • Gauge. Radial gauge for single metric monitoring with thresholds
  • Stat Card. Single-value KPI display with optional trend sparkline
  • Status Card. Device health and connectivity status indicator
  • Plant Status. Fleet-wide asset health, ranked by concern

Guides#

How to put this equipment on a dashboard, and what to alert on.

Search the docs

Find a guide, an integration page, or a device type.