scale-balancedIND360 integration with MQTT

Connect the Mettler Toledo IND360 weighing controller to MQTT and stream live weight data into Node-RED and Ignition SCADA. No OPC license. No custom driver. Just MQTT.

In this video and guide, we explore how IND360 can be seamlessly integrated via MQTT with:


πŸ“Ί Video Tutorial


πŸ”‘ What You Will Learn in This Video

In this hands-on demo, you will learn:

  • How to connect IND360 with Node-RED and Ignition SCADA using MQTT

  • How to read weight & status data in real time

  • How to send commands such as:

    • Zero scale

    • Tare scale

    • Preset tare

    • Clear tare

  • How to log the feedback in the database


Prerequisites

Requirement
Details
Status

Mettler Toledo IND360

With network access via Ethernet

● Required

MQTT Broker

Shiftr (for testing) or Ignition Distributor

● Required

Node-RED

Installed locally or on server

Use Case 1

Ignition Gateway

Standard edition v8.3.4+

Use Case 2

Cirrus Link Modules

MQTT Distributor + MQTT Engine

Use Case 2


1. MQTT Broker Setup

Before connecting the IND360, you need a running MQTT broker. For initial testing, we use Shiftr, an MQTT broker with a visual connection map.

circle-check

1

Download and install the Shiftr desktop app

Visit https://www.shiftr.io/desktop and install the broker locally.

2

MQTT Broker parameters

Note the MQTT port address

3

Verify port 1883 is open

Open PowerShell and run the commands below.

circle-exclamation

2. Enabling MQTT on IND360

In this step, we need to enable the MQTT service on the IND360 device.

1

Open the IND360 web interface

Navigate to https://192.168.0.8 (replace with your IND360 IP) and login using 002.

2

Go to Communication β†’ Service and find the MQTT section.

3

Configure MQTT parameters

Fill in all fields as shown in the table below.

Parameter
Value
Notes

Client ID

IND360

Unique identifier for this device

Host

192.168.0.24

IP of your broker machine

Port

1883

Standard MQTT port

Topic

Root topic prefix

Username

Must match broker user

Supervision

Enabled

Enables keep-alive monitoring

circle-info

Topic Structure

The IND360 automatically appends its serial number and sub-paths to the root topic. For example: ind360/devices/C249346600/scales/_/measurements

4

Click SET, then CONNECT

Status should change to Connected.


3. Testing with Shiftr

Use Shiftr's visual broker map to confirm the IND360 is publishing data before integrating with Node-RED or Ignition.

Open the Shiftr dashboard to visualize the data flowing from the IND360 device


Use Case 1: Node-RED Integration

Use Node-RED as a lightweight MQTT client to read live weight data and send commands to the IND360 via the Shiftr broker.

Reading Weight Data

Subscribe to the measurements topic to receive live weight data as a JSON array.

  • ind360/devices/C249346600

  • ind360/devices/C249346600/alarms

  • ind360/devices/C249346600/scales/_

  • ind360/devices/C249346600/scales/_/measurements

Sending Commands

Each command follows the same pattern β€” an Inject node triggers a Function node that builds the payload, which is then published via an MQTT Out node.

Command
Description
Topic

tare

Sets net weight to zero using current gross as tare offset

Invoke:

ind360/devices/C249346600/commands/tare/invoke

Result: ind360/devices/C249346600/commands/tare/result

tare-clear

Removes the tare offset, gross equals net again

Invoke:

ind360/devices/C249346600/commands/tare-clear/invoke

Result: ind360/devices/C249346600/commands/tare-clear/result

zero

Sets current gross weight as the new zero reference point

Invoke:

ind360/devices/C249346600/commands/zero/invoke

Result: ind360/devices/C249346600/commands/zero/result

tare-preset

Applies a manually entered known tare value

Invoke:

ind360/devices/C249346600/commands/tare-preset/invoke

Result: ind360/devices/C249346600/commands/tare-preset/result

Tare Command β€” Function Node

Clear Command β€” Function Node

Zero Command β€” Function Node

Preset Tare Command β€” Function Node


Dashboard

You can use the dashboard 2.0 to visualize your value as shown below. Feel free to use the NodeRed flow for a ready-to-use dashboard.

file-download
27KB

Use Case 2: Ignition Integration

Ignition acts as both the MQTT broker (via MQTT Distributor) and the subscriber (via MQTT Engine). No external broker needed.

1

Install Ignition

Sign up for an account, download, and install Ignition. https://inductiveautomation.com/arrow-up-right

2

Install MQTT Modules

Visit https://inductiveautomation.com/downloads/third-party-modules/8.3.4 β€” Match the version to your Ignition installation.

Install via Gateway β†’ Platform β†’ Modules

Module
Role
Port

MQTT Distributor

Acts as the MQTT broker inside Ignition

1883

MQTT Engine

Subscribes and converts MQTT data to Ignition tags

β€”

3

Configure MQTT Distributor

Gateway β†’ Connections β†’ MQTT Distributor β†’ Settings

Enable the distributor and verify that the port is set to 1883.

Create broker users

Go to Users and create two accounts:

Username
Password
Used by

ind360

ind360

IND360 device

ignition

ignition

MQTT Engine internal connection

nodered

nodered

(Optional) For Node-RED to subscribe and publishdata

4

Configure MQTT Engine

Gateway β†’ Connections β†’ MQTT Engine β†’ Servers β†’ Add Server

Field
Value

URL

tcp://192.168.0.24:1883

Server Set

Default Set

Username

ignition

Password

ignition

5

Create Custom Namespace

circle-info

Why a Custom Namespace?

MQTT Engine's default namespaces (Sparkplug B and Elecsys) expect specific structured payload formats. The IND360 publishes plain JSON β€” so we must create a custom namespace that tells the Engine how to parse and tag the incoming data.

Gateway β†’ MQTT Engine β†’ Namespaces β†’ Custom β†’ Create New

Field
Value
Notes

Namespace Name

IND360

Unique identifier

MQTT Topic

#

Wildcard captures all sub-topics

Root Folder

IND360_folder

Tag browser folder name

JSON Payload

βœ… Checked

Auto-parses JSON into tags

Create Writable Tags

βœ… Checked

Enables writing back to device

6

Dashboard & Commands

Once tags appear in the Tag Browser under MQTT Engine, bind them to Vision components for live display.

Useful scripts

Below are the scripts that are used for publishing the data to the MQTT broker via buttons

Tare Button Script

circle-exclamation

Clear Button Script

Zero Button Script

Preset Tare Button Script

  • Take an input field and rename that to 'presetTare'

  • Add the script below to the Preset Tare button.

7

Feedback Logging to Database

Log real device confirmation to SQLite using a Gateway Tag Change script triggered by the result timestamp.

Create Database Table

First, create a table in the default database. Run the following script in the Tools > Database Query browser.

To delete the table, use the following script

Gateway Tag Change Script:

tare_result

Watch tag: [MQTT Engine]IND360_folder/ind360/devices/C249346600/commands/tare/result/_timestamp

clear_result

Watch tag: [MQTT Engine]IND360_folder/ind360/devices/C249346600/commands/clear/result/_timestamp

zero_result

Watch tag: [MQTT Engine]IND360_folder/ind360/devices/C249346600/commands/zero/result/_timestamp

preset_tare

Watch tag: [MQTT Engine]IND360_folder/ind360/devices/C249346600/commands/tare-preset/result/_timestamp

Table SQL Query Binding

To visualize the feedback in the table. Add a table to your screen and bind the data with the following script

Clear button

To clear the values in the table, you can use the following script


Topic Structure Reference

Command Payload Reference

Command
content field
Notes

tare

null

No content needed

tare-clear

null

No content needed

zero

null

No content needed

tare-preset

{"value": "2.0", "unit": "Kg"}

Value and unit required

Ignition Project

You can import this project in your Ignition designer to use it as a prototype:

file-archive
48KB

Key notes:


β™₯️ Work With Me

I regularly test industrial automation and IIoT devices. If you’d like me to review your product or showcase it in my courses and YouTube channel:

πŸ“§ Email: [email protected] or drop me a message on LinkedInarrow-up-right

Last updated