Monday, March 16, 2026

Berikut contoh dokumentasi lengkap MQTT Payload untuk Modbus Gateway ESP32 yang bisa langsung dipakai sebagai manual produk / dokumentasi user.


OSO Gateway




MQTT – Modbus Gateway Payload Documentation

OSO Gateway adalah perangkat Industrial IoT Gateway yang berfungsi menghubungkan perangkat Modbus RTU / Modbus TCP dengan MQTT Broker sehingga data PLC atau perangkat industri dapat dikirim ke cloud, dashboard, SCADA, atau Node-RED.


1. Arsitektur Sistem

Gateway bekerja sebagai bridge antara Modbus dan MQTT.

Modbus Device / PLC

│ Modbus RTU / TCP

OSO Gateway

│ MQTT

MQTT Broker


Dashboard / NodeRED / Cloud / SCADA

Fungsi gateway:

  1. Polling data Modbus

  2. Publish data ke MQTT

  3. Menerima command dari MQTT

  4. Mengirim write command ke Modbus device


2. Struktur Topic MQTT




Gateway menggunakan dua topic utama.

TopicFungsi
gateway/cmdMengirim perintah Modbus
gateway/dataData Modbus dari gateway

3. MQTT Command (Write Modbus)

Topic:

gateway/cmd

Payload:

{
"slave":1,
"fc":6,
"addr":0,
"value":1
}

Parameter:

FieldKeterangan
slaveModbus Slave ID
fcFunction Code
addrAddress register
valueNilai yang akan ditulis

4. Contoh Perintah Write Register

Payload:

{
"slave":1,
"fc":6,
"addr":0,
"value":1
}

Artinya gateway akan mengirim perintah Modbus:

Slave ID : 1
Function : 06 (Write Single Register)
Address : 0
Value : 1

Jika menggunakan addressing PLC standar:

40001 = 1

5. Contoh Write Coil

Payload:

{
"slave":1,
"fc":5,
"addr":0,
"value":1
}

Arti:

Slave 1
Write Coil
Address 0
Value ON

Value:

ValueStatus
0OFF
1ON

6. Function Code yang Didukung

FCNamaFungsi
1Read CoilMembaca coil
2Read Discrete InputMembaca input
3Read Holding RegisterMembaca register
4Read Input RegisterMembaca input register
5Write Single CoilMenulis coil
6Write Single RegisterMenulis register

7. Data yang Dikirim Gateway

Topic:

gateway/data

Contoh payload:

{
"gw": "esp32gw",
"data": {
"1:0": 1,
"1:1": 1111,
"2:0": 222,
"2:1": 2222
}
}

8. Penjelasan Field Payload

FieldKeterangan
gwNama gateway
dataData hasil polling Modbus

9. Format Mapping Data

Format key pada field data:

slave:address

Contoh:

1:0

Artinya:

Slave ID : 1
Register : 0

Contoh lain:

2:1

Artinya:

Slave ID : 2
Register : 1

10. Contoh Interpretasi Data

Payload:

{
"gw": "esp32gw",
"data": {
"1:0": 1,
"1:1": 1111,
"2:0": 222,
"2:1": 2222
}
}

Interpretasi:

SlaveAddressValue
101
111111
20222
212222

11. Contoh Integrasi Node-RED

Subscribe topic:

gateway/data

Untuk mengambil nilai:

msg.payload.data["1:0"]

Contoh penggunaan:

RegisterNodeRED
Slave1 Addr0msg.payload.data["1:0"]
Slave1 Addr1msg.payload.data["1:1"]
Slave2 Addr0msg.payload.data["2:0"]

12. Contoh Testing dengan MQTT Explorer

Publish command:

Topic:

gateway/cmd

Payload:

{
"slave":2,
"fc":6,
"addr":1,
"value":123
}

Gateway akan menulis:

Slave ID : 2
Register : 1
Value : 123

13. Keunggulan Format Payload Ini

Keuntungan format ini:

✔ Ringkas
✔ Mudah diparse di ESP32
✔ Mendukung multi slave
✔ Mendukung multi register
✔ Mudah dipakai di NodeRED / SCADA
✔ Payload ringan untuk IoT


14. Contoh Flow Sistem IoT

PLC

│ Modbus RTU

OSO Gateway

│ MQTT Publish

MQTT Broker

├── NodeRED
├── SCADA
├── Dashboard Web
└── Cloud Database


Berikut contoh dokumentasi lengkap MQTT Payload untuk Modbus Gateway ESP32 yang bisa langsung dipakai sebagai manual produk / dokumentasi u...