โ๏ธIND400 - Smart Weighing Indicator
In this article, you will learn about IND400 from Mettler Toledo which is a smart weighing device that support various protoocls like MODBUS, MQTT and OPC UA to share data remotely
Smart Weighing with MQTT- IND400 in ACTION
The Mettler Toledo IND400 is a smart weighing indicator designed for industrial applications. It supports modern protocols such as MQTT, OPC UA, and Ethernet/IP, making it IIoT-ready for digital factories.

Data Communication and Integration
IND400 smart weighing indicator communicates via Modbus TCP, RTU, OpenAPI, MQTT, and OPCUA for real-time data transmission to the cloud or an MQTT broker.
IND400 can be connected to Node-RED for easy data visualization and real-time monitoring of MQTT data and device status.
Remote Control and Monitoring
IND400 supports remote monitoring and control via VNC, enabling easy access and real-time observation of weighing data and device status.
The scale can be controlled remotely using MQTT and Node-RED, allowing for real-time data and command exchange, including zeroing, taring, preset taring, and clearing.
Operational Modes
IND400 can be configured to send data via Transfer mode or ComOne mode, enabling real-time data transmission and remote control.
Industry-Specific Features
IND400 is ideal for pharmaceutical industries and food production systems, providing audit trails, secure data, time synchronization, and LDAP support for GMP environments.
Key notes:
Resources:
The following is the code that was used in the LIVE demonstration in the video.
Transfer Mode
// Converting String to JSON
let input = msg.payload;
// Remove extra spaces and split by lines
let lines = input.trim().split('\n');
let result = {};
for (let line of lines) {
let [key, ...valueParts] = line.split(':');
if (!key || valueParts.length === 0) continue;
let value = valueParts.join(':').trim();
switch (key.trim()) {
case 'Kopie / Kopien insgesamt':
result.copies = value;
break;
case 'Datum':
result.date = value;
break;
case 'Zeit':
result.time = value;
break;
case 'Brutto':
result.brutto = value;
break;
case 'Netto':
result.netto = value;
break;
case 'Tara':
result.tara = value;
break;
case 'Waage Nr.':
result.scale_id = value;
break;
default:
result[key.trim()] = value;
}
}
msg.payload = result;
return msg;
ComOne mode
1. Get measurements
msg.payload = {
"Message": {
"Header": {
"Version": "v1.0.0",
"MessageType": "Request",
"ActionCode": "Read",
"MessageID": "1234",
"Path": "Measurement/Weight"
}
}
}
return msg;
2. Zero the scale
msg.payload = {
"Message": {
"Header":
{
"Version": "v1.0.0",
"MessageType": "Request",
"ActionCode": "Update",
"MessageID": "1234",
"Path": "Command"
},
"Command":
{
"DeviceName": "Scale1",
"CommandCode": "Zero"
}
}
}
return msg;
3. Tare the scale
msg.payload = {
"Message": {
"Header":
{
"Version": "v1.0.0",
"MessageType": "Request",
"ActionCode": "Update",
"MessageID": "1234",
"Path": "Command"
},
"Command":
{
"DeviceName": "Scale1",
"CommandCode": "Tare"
}
}
}
return msg;
4. Preset Tare the scale
msg.payload = {
"Message": {
"Header": {
"Version": "v1.0.0",
"MessageType": "Request",
"ActionCode": "Update",
"MessageID": "1234",
"Path": "Command"
},
"Command": {
"DeviceName": "Scale1",
"CommandCode": "PresetTare",
"Value": 0.05,
"Unit": "kg"
}
}
}
return msg;
5. Clear the scale
msg.payload = {
"Message": {
"Header": {
"Version": "v1.0.0",
"MessageType": "Request",
"ActionCode": "Update",
"MessageID": "1234",
"Path": "Command"
},
"Command": {
"DeviceName": "Scale1",
"CommandCode": "Clear"
}
}
}
return msg;
Node-RED Example Code
The Node-RED flow used in the video can be found in the GitHub repository mentioned below:
https://github.com/Code-and-Compile/Mettler_Toledo_IND400_MQTT
โฅ๏ธ 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 LinkedIn
Last updated
Was this helpful?