Skip to main content

Plugin Catalog and Common Guidance

This page provides the plugin catalog, shared concepts, typical workflows, and common configuration guidance. When configuring a plugin, first confirm the field protocol, device address, port, account, certificate, and receiving rules of the external system.

Each plugin's variable address or target-variable mapping and its plugin-specific properties are kept together in Plugin Configuration Reference. Search that page by plugin name when configuring or troubleshooting a specific plugin.

Let's look at the terminology first

This article will retain the English configuration names on the page for easier alignment with interfaces, point tables, and external system documentation. Before configuring for the first time, understand these terms according to the following on-site meanings.

TerminologyOn-site Understanding
OtherNo ordinary communication channel plugins. The plugin manages the connection itself, or does not require TCP, UDP, or serial channels.
Cron expressionTimer expression. For ordinary cycles, the millisecond value is preferred, for example, 1000 represents 1 second; Use Cron only when it needs to run at fixed times.
RPC writesexternal system backwrite points. It is only recommended to enable control at control points where remote control is allowed on site.
Target Variable AttributesAn external mapping of a forwarding target to a single variable, such as the external field name, Modbus slave address, sampling policy, or write permission.
StreamAsyncAsynchronous Read/Write Method via Serial Port. When the serial port is stable, it remains at default; adjust according to driver requirements when blocking or untimely reads occur.
DTU ID / DtuIdDTU or Passthrough Terminal Number, used to distinguish which remote device is accessing.
Brokerservers for message systems such as MQTT, Kafka, RabbitMQ, etc., can be understood on-site as "message relay servers."
Topic / Routing Key / URLThe location, subject, or request address where the external system receives data must be consistent with the agreement with the other system.
Payloadmessage body, which is the actual data content sent.
Usage Order
  1. First, select the plugin and confirm the connection method for the channel or target.
  2. Then fill in the plugin properties to complete configurations such as connection, authentication, timeout, cache, and upload format.
  3. Finally, maintain variable properties (mapping individual variables' addresses under collection or forwarding targets, write permissions, etc.), configure variable addresses, write permissions, sampling policies, or custom fields.

Troubleshooting Approach

Do not read from the beginning of this article all the way to the end when configuring on-site. First, locate the plugin according to the protocol or external system to be integrated into the project, then check the corresponding address format, plugin properties, and variable properties.

On-site issuesPrioritize viewing
PLC or instrument not reading dataCorresponding "address format" and "plugin properties" of the collection plugin.
Values are clearly incorrectData type, data parsing order, string length, BCD, byte order conversion parameters.
Multiple devices share a single channelstation number, slave station address, DTU ID, channel connection method, and packaging length.
External systems cannot receive dataConnection parameters, Topic/URL/Table Name, upload template, and cache settings for the corresponding data forwarding plugin.
External systems must invert controltarget and variable levels allow RPCs to write and on-site control permissions.
Requires historical traceabilityhistorical data objectives, historical alarm objectives, sampling strategies, retention days, and offline caching.

Before configuration, prepare the equipment manual, point table, communication parameters, and the upper-level system interface description and security boundaries. If you cannot determine the byte order or address format, first use Device Debugging Single Point Read Validation, then batch import the point list.

Current Plugin Scope

The current catalog contains 107 collection plugins and 15 data-forwarding plugins, for a total of 122 externally visible plugins. The Plugin Management page can filter them by vendor or ecosystem, type, status, license, and platform. The exact count can vary with the installed package and license. The tables below cover 47 common plugins and 75 additional collection plugins. Each row corresponds to one independent plugin description shown in Plugin Management; address formats and properties for common plugins are documented in detail later on this page.

Common Collection Plugins

Plugin search namePlugin description
CanMasterCAN and CAN FD frame transmission, filtering, and variable-mapping driver.
ControlLogixMasterAllen-Bradley ControlLogix EtherNet/IP tag read/write driver.
CustomPacketMasterDevice request and response parsing with custom complete packets.
DCONMasterDCON ASCII industrial I/O module address read/write driver.
Dlt645_2007MasterDL/T 645-2007 multifunction meter collection driver.
EDPF_NTMasterEDPF-NT UDP unsolicited-report receiver and variable-mapping driver.
GatewayMqttCollectClientCollects ThingsGateway data as an MQTT client.
GatewayMqttCollectServerReceives ThingsGateway data as an MQTT server.
HJ212MasterHJ 212 pollution-monitoring data receiver and variable-mapping driver.
IEC61850MasterIEC 61850 driver for MMS read/write, RCB reports, GOOSE, and SOE collection.
InovanceMasterInovance PLC collection driver for Modbus and vendor-specific address models.
KELID2008MasterKELID2008 UDP unsolicited-report receiver and variable-mapping driver.
LKSISMasterLKSIS UDP unsolicited-report receiver and variable-mapping driver.
Mc1E_BinaryMasterMitsubishi MC 1E binary PLC address read/write driver.
Mc3E_BinaryMasterMitsubishi MC 3E binary PLC address read/write driver.
ModbusC1MasterModbus C1 extended-protocol master address read/write driver.
ModbusC20MasterModbus C20 extended-protocol master with address read/write and dedicated diagnostics.
ModbusMasterModbus TCP, RTU, and ASCII master collection driver.
MqttCollectClientSubscribes to and collects messages as an MQTT client.
MqttCollectServerReceives reported data as an MQTT server.
OmronFinsMasterOmron FINS TCP, UDP, and serial address read/write driver.
OpcAeMasterWindows OPC AE event subscription, condition reception, and variable-mapping driver.
OpcDaMasterCollection driver for Windows OPC DA servers.
OpcUaMasterCollection driver for OPC UA servers.
PCCCMasterAllen-Bradley PCCC file-table address read/write driver.
SECSMasterSECS/GEM HSMS messaging, transaction, and equipment-initiated message driver.
SiemensS7MasterCollection driver for Siemens S7 PLCs.
TIANXINMasterTIANXIN instrument protocol address read/write driver.
TS550MasterTS550 industrial device address read/write driver.
USBScanerLocal USB scanner input listener and variable-update driver.
VigorMasterVigor PLC address read/write driver.
ZeroMQCollectClientZeroMQ subscription receiver with topic filtering and variable mapping.

Data-Forwarding Plugins

Plugin search namePlugin description
HisAlarmForwardTargetStores historical alarm records in the configured database.
HisDataForwardTargetStores variable history data in the configured database.
IEC104SlaveIEC 60870-5-104 server target for data mapping, telemetry publishing, and remote-control write-back.
IEC61850ServerIEC 61850 server target for MMS modeling, reports, GOOSE publishing, and control write-back.
KafkaProducerPublishes gateway data to Apache Kafka.
ModbusSlaveExposes gateway data through a Modbus server or slave.
MqttClientProducerPublishes gateway data as an MQTT client.
MqttServerProducerPublishes gateway data through the built-in MQTT server.
OpcUaServerExposes gateway data through an OPC UA server.
RabbitMQProducerPublishes gateway data to RabbitMQ.
RealDataForwardTargetStores real-time variable data in the configured database.
SyncBridgeSynchronizes runtime data between ThingsGateway Hub and Agent.
ThingsBoardClientProducerForwards gateway data to ThingsBoard through MQTT.
WebhookSends gateway data to generic web services through HTTP webhooks.
ZeroMQProducerZeroMQ forwarding target for variables, devices, alarms, and plugin events.

Standard Edition Addition

Plugin search namePlugin description
Dlt645_1997MasterDL/T 645-1997 meter collection and write driver.

Professional PLC and Controller Plugins

Plugin search namePlugin description
Df1MasterAllen-Bradley DF1 serial file-table read/write driver.
LogixCipMasterAllen-Bradley Logix EtherNet/IP tag read/write driver.
MicroCipMasterAllen-Bradley Micro-series EtherNet/IP tag read/write driver.
SlcEthernetMasterAllen-Bradley SLC Ethernet file-table read/write driver.
BeckhoffAdsMasterBeckhoff ADS symbolic and address-based variable read/write driver.
CimonHmiMasterCIMON HMI Ethernet protocol variable read/write driver.
DeltaMasterDelta DVP and AS-series PLC address read/write driver.
FatekProgramMasterFatek PLC programming-port register read/write and run-control driver.
FujiCommandMasterFuji Command Setting protocol PLC address read/write driver.
FujiSpbMasterFuji SPB protocol PLC address read/write driver.
FujiSphMasterFuji SPH Ethernet PLC address read/write and CPU-control driver.
GeSrtpMasterGE SRTP PLC address read/write, status, and clock diagnostics driver.
InovanceComputerLinkMasterInovance Computer Link PLC address read/write, status, and run-control driver.
InovanceConnectedCipMasterInovance connected EtherNet/IP CIP tag read/write driver.
InovanceEasyNetMasterInovance EasyNet PLC address read/write driver.
KeyenceKvOldMasterKEYENCE legacy KV PLC address read/write driver.
KeyenceMcAsciiMasterKEYENCE MC-compatible 3E ASCII address read/write driver.
KeyenceMcBinaryMasterKEYENCE MC-compatible 3E binary address read/write driver.
KeyenceNanoMasterKEYENCE KV Nano Upper Link address read/write and status diagnostics driver.
LsisMasterLSIS Cnet and Fast Ethernet PLC address read/write driver.
MegMeetMasterMegMeet MC-series PLC address read/write driver.
Mc1E_AsciiMasterMitsubishi MC 1E ASCII PLC address read/write driver.
Mc3E_AsciiMasterMitsubishi MC 3E ASCII PLC address read/write driver.
A3CMasterMitsubishi A3C serial address read/write, status, and control driver.
FxLinksMasterMitsubishi FX Links serial address read/write and PLC-control driver.
FxSerialMasterMitsubishi FX programming-port serial address read/write and PLC-control driver.
MitsubishiCipMasterMitsubishi EtherNet/IP CIP tag read/write driver.
McR_BinaryMasterMitsubishi iQ-R MC binary PLC address read/write driver.
NanjingDcsMasterNanjing DCS Modbus TCP driver with connection probing and leading status frames.
OmronCipMasterOmron unconnected EtherNet/IP CIP tag read/write driver.
OmronConnectedCipMasterOmron connected EtherNet/IP CIP tag read/write driver.
OmronHostLinkMasterOmron Host Link serial address read/write driver.
OmronHostLinkCModeMasterOmron Host Link C-Mode address read/write and PLC-status diagnostics driver.
PanasonicMcMasterPanasonic QnA-compatible MC 3E PLC address read/write driver.
PanasonicMewtocolMasterPanasonic Mewtocol PLC address read/write and status diagnostics driver.
SiemensFetchWriteMasterSiemens Fetch/Write protocol PLC address read/write driver.
SiemensPpiMasterSiemens S7-200 PPI serial address read/write driver.
ToyoPucMasterToyo PUC computer-link address read/write, status, and command driver.
XinJeInternalMasterXinje PLC internal TCP protocol 24-bit address read/write driver.
XinJeModbusMasterXinje XC, XD, and XL-series mixed Modbus address read/write driver.
YaskawaMemobusMasterYaskawa Memobus TCP and UDP address read/write and diagnostics driver.
YokogawaLinkMasterYokogawa Link PLC address read/write, status, clock, and module-control driver.

Professional Instrument, Sensor, and Identification Plugins

Plugin search namePlugin description
AiBusMasterAI-BUS instrument protocol collection driver.
BarcodeIngressMasterAccepts inbound TCP scanner connections and maps continuous barcode reports to variables.
Cjt188MasterCJ/T 188 utility meter collection driver.
Dam3601MasterDAM3601 temperature input register collection and temperature snapshot driver.
Dlt698MasterDL/T 698 energy data collection, unsolicited reporting, and link-management driver.
Dtsu6606MasterDTSU6606 meter register collection and electrical snapshot driver.
EcFanMasterEC fan speed reading, station configuration, and explicit control driver.
KeyenceDlen1MasterKEYENCE DL-EN1 sensor command, status, and I/O operation driver.
KeyenceSr2000MasterKEYENCE SR-2000 scanning, status, reset, and lock-control driver.
RkcMasterRKC temperature-controller collection driver.
SamCardMasterResident ID security-module driver for card discovery, selection, and explicit reads.
ScaleStreamMasterReceives continuous scale output over serial or reverse TCP and maps it to variables.
ShineInMasterShineIn machine-vision lighting controller read/write driver.
TurckRfidMasterTurck RFID tag-memory read, write, and dedicated diagnostics driver.
VibrationStreamMasterReceives vibration sensor real-time and peak-value reports and maps them to variables.
DigitronCplMasterAzbil Yamatake Digitron CPL instrument address read/write driver.

Professional Robot, Motion, and CNC Plugins

Plugin search namePlugin description
AbbWebApiMasterReads robot status, I/O, joints, and logs through ABB Robot Web Services.
EfortRobotMasterEfort robot operating-state and pose snapshot collection driver.
EstunRobotMasterEstun robot status, register, and program-control driver.
FanucCnc0iMasterFANUC CNC 0i status, PMC, macro-variable, and program-transfer driver.
FanucRobotInterfaceMasterFANUC Robot Interface bit, word, pose, and task-status collection driver.
HyundaiTrackingMasterHyundai robot UDP tracking-state and position-increment control driver.
KukaControllerTcpMasterKUKA controller TCP variable read/write and program-control driver.
KukaVariableProxyMasterKUKA KRC4 variable-proxy read/write and program-control driver.
OrientalMotorMasterOriental Motor EtherNet/IP cyclic I/O image read/write driver.
YamahaRcxMasterYamaha RCX multiline command, robot-status, and motion-control driver.
Yrc1000MasterYaskawa YRC1000 text-protocol status, program, servo, and motion-control driver.
YrcHighEthernetMasterYaskawa High Speed Ethernet binary UDP status, I/O, and motion-control driver.

Professional Industry Protocol Plugins

Plugin search namePlugin description
Iec104MasterIEC 60870-5-104 master interrogation, telemetry, clock synchronization, and remote-control driver.
KnxMasterKNXnet/IP tunneling group-address read/write driver.
OpenProtocolMasterAtlas Copco Open Protocol tightening-result, command, and unsolicited-message driver.
SecsSerialMasterSECS-I half-duplex transaction, multi-block reassembly, and equipment-initiated message driver.

Full Attribute Verification in Current Version

This section checks plugin properties based on the actual exposure at the current runtime. During on-site reading, first check the "Public Attribute Group," then check the "Plugin Checklist" to see if a plugin has a dedicated field; If the table says "No page plugin property," it means the plugin does not have additional plugin attributes and still needs to maintain basic configurations such as device name, execution interval, and variable address.

Data Forwarding Group Properties

The data forwarding group is not a plugin, but it determines whether a variable enters the forwarding chain. If a variable has a value but is not forwarded, this table should be checked first.

Configuration ItemsDescription
NameForwarding Group Display Name, Unique Within the Same System, It is recommended to reflect the scope of business, such as MES_ key points.
DescriptionRecord the group's purpose, integration system, acceptor, or maintenance boundary.
EnableAfter turning it off, none of the targets in the group will run.
Log levelDetail level of group logs. Joint debugging can temporarily use Debug or Trace, then return to Info after stabilization.
SortPage display order; the smaller the value, the higher it is.
Variable range patterndetermines the source of variables. Manual is manual selection, All is all variables, CollectDevice filter by device, CollectGroup filter by collection group.
For range configurationCollectDevice, and when CollectGroup, enter the collection group name. Multiple values are separated by English commas.
Trigger Modes:Change trigger by change,Interval triggered by timer, IntervalOrChange triggered by both change and timing.
Timed forwarding intervalUsed when triggered at a scheduled time. For ordinary cycles, prioritize filling in milliseconds, for example, 1000; Use the cron expression at fixed times.
Online variables onlyOnce enabled, offline variables will not be forwarded. Do not turn it on when the last value before offline is reserved on site.
Batch Processing ModeDecide how to split the batch after a single trigger, for example, not splitting the batch or splitting by data group.
Maximum batchMaximum number of variables per batch. Reduce when external interface times out or the message body is too large.

Group variable attributes only affect "how variables participate in forwarding within the group," not the target variable attributes.

Configuration ItemsDescription
VariablesVariables currently included in the forwarding group. In manual range, you must first add it here for the target variable attribute to take effect.
EnableWhen disabled, this variable does not participate in this group's forwarding.
Data GroupUsed to split batches by business unit, such as production line, region, or equipment group.
Update ModeSingle-variable trigger mode, can cover group-level trigger modes.
Participate group triggerAfter closure, this variable can still be uploaded in batches, but its own changes will not wake up the entire group.
AliasName of the external variable used during upload. When null, the original variable name is usually used.
SortOutput order of variables within the group.

Common Collection Attributes

Attribute GroupIncluded AttributesDescription
Collection RetriesNumber of failed retries, read/write duty cycle, write priorityApplicable collection plugins will display these fields. Failed retries are used for occasional timeout retrys; Read/write duty cycle controls intermittent reads when writing is heavy; Write-first is used in scenarios where control instructions need to be issued faster.
Foundation Universal Read/WriteRead/write timeout, pre-frame time, string inverted bytes, data parsing orderSuitable for address-based read/write drivers. Timeout and pre-frame time solve slow device or serial port spacing issues; String inversion and data parsing order are used to correct byte order.
Package readMaximum package lengthControl the maximum address length for a single merged read. Efficiency can be improved when there are many points; when the equipment does not support large packages, it can be reduced.
Modbus Packaging RulesFC1/FC2/FC3/FC4 maximum read quantity, FC15/FC16 maximum batch write quantityOnly used on Modbus master stations. Limit the number of frames or registers according to actual function codes, replacing the old single "maximum package length."
DTUDTU IDEnter the terminal number when accessing via DTU or transparent terminal; Direct-connected devices are usually left blank.

Collection Plugin Checklist

PluginConfirmed Attributes
MemoryNo page plugin attribute. Only the memory variable itself is maintained, without needing communication link attributes.
Modbus master stationCollection and retry, Foundation general read/write, Modbus packaging rules, DTU; Exclusive Attributes: Modbus type is used to select protocol forms such as TCP/RTU. The default station number is the slave address and can be overwritten by the station number in the variable address.
Siemens S7Collect and retry, Foundation general read/write, package read; Exclusive attributes: PLC type selected as S200/S300/S400/S1200/S1500, etc. Rack/Slot is filled in according to the PLC rack slot number, and Local TSAP is only filled in when TSAP is specified on-site.
DLT645-2007Data Acquisition Retry, Foundation General Read/Write, DTU; Exclusive attributes: The default address is a 12-bit table address, with passwords and operator codes used for writing tables or special reads. The pregress header defaults to FEFEFEFE.
OPC UA clientcollection and retry; Exclusive attributes: connection URL, login account, login password, data change trigger conditions, security policy, name identifier, certificate, whether to use SourceTime, server data type loaded, subscription activation, update frequency, dead zone, maximum group size, heart rate rate.
OPC DA clientcollection and retry; Exclusive attributes: OPC server IP, OPC server name, server-side time, subscription mode, detection reconnection frequency, dead zone, maximum group size, subscription update frequency. Remote DA also needs to confirm DCOM permissions.
MQTT acquires clientConnection type, IP address, port, WebSocket path, SSL enabled, SSL target hostname, client certificate name, CA name, allowed untrusted certificate, SSL protocol version, check certificate revocation, client ID, username, password, lifetime retention, session clear, MQTT protocol version, QoS level, detailed logs, connection timeout, check and clear time.
MQTT collects serverconnection type, port, WebSocket path, SSL enabled, server certificate name, CA name, allowed untrusted certificate, SSL protocol version, checks certificate revocation, allows connection ID prefixes, username, password, detailed logs, checks erasure time.
Dedicated Gateway MQTT collection clientFixed Topic root, remote writes, snapshot/request/offline timeouts, source/catalog/RPC/payload/rate/concurrency boundaries, one shared Broker connection, and multiple RemoteKey sources.
Dedicated Gateway MQTT collection serverThe same fixed-protocol boundaries as Client mode, plus one listener, server certificate, and exact per-source ClientId, credentials, and optional certificate fingerprint.
CAN master stationCollect and retry, Foundation general read/write; Exclusive attributes: Endpoint address selects CAN adapter and channel, baud rate is arbitration segment rate, data phase baud rate is only valid for CAN FD, protocol mode selects CAN2.0/CAN FD, BRS is enabled to control data segment rate variation, internal terminal resistors are selected via bus wiring, hardware filter CANID list is used to receive only specified CAN IDs.
Allen-Bradley ControlLogixAcquisition and retry, Foundation general read/write, packaged read; Exclusive properties: Slot is the CPU slot number, and Backplane indicates whether to address via the backplane.
Allen-Bradley PCCCAcquisition and retry, Foundation general read/write, packaged read; No other page plugin properties; focus on verifying variable address format.
DCON master stationAcquisition and retry, Foundation general read/write, packaged read, DTU; Exclusive attribute: Station is a DCON station number.
HJ212 MasterAcquisition and retry, Foundation general read/write; No other page plugin properties; focus on verifying address format and link parameters.
InovanceCollection and retry, Foundation general read/write, packaged read, DTU; Exclusive attributes: ModbusType selects the underlying Modbus mode, InovanceType selects Inovance protocol or device type, Station is the station number.
KELID2008Collection retry, Foundation general read/write; No other page plugin properties.
Mitsubishi 1EAcquisition and retry, Foundation general read/write, package read; Exclusive attributes: PLCID is filled in according to the Mitsubishi 1E communication configuration.
Mitsubishi 3EAcquisition and Retry, Foundation General Read/Write, Package Read; Exclusive attributes: NetWorkID, IOModuleStation, IOModuleID, PLCID are filled in according to Mitsubishi network number, station number, module number, and PLC number.
ModbusC1Acquisition and retry, Foundation general read/write, packaged read, DTU; Exclusive Attribute: ModbusType selects protocol form, Station is the station number.
ModbusC20Acquisition and retry, Foundation general read/write, packaged read, DTU; Exclusive Attribute: ModbusType selects protocol form, Station is the station number.
Omron FINSCollect and retry, Foundation general read/write, package read; Exclusive attributes: ICF, GCT, DNA, DA2, SNA, SA2, SID are FINS frame addressing fields, which must match the Omron network configuration.
SECSCollection and retry, Foundation general read/write, packaged read; Exclusive Attribute: DeviceID is the SECS device identifier.
TIANXINAcquisition and retry, Foundation general read/write, packaged read, DTU; Exclusive attribute: Station is the station number.
TS550Acquisition and retry, Foundation general read/write; No other page plugin properties.
VigorCollection and retry, Foundation general read/write, packaged read, DTU; Exclusive attribute: Station is the station number.
IEC 61850 clientcollection and retry; Exclusive properties: IED IP address, IED port, ConnectTimeout (connection timeout ms), maximum package quantity, UpdateRate (update frequency ms), SCL configuration file path, enabling RCB report subscription, RCB report ID, RCB reference list, ReportBufTime, ReportIntgPd, RCB TrgOps, RCB OptFlds, RCB single-request write, ReportReservationTimeSeconds (BRCB reserved time seconds), BRCB buffer clearing, enabling GOOSE subscriptions, GOOSE control block references, GOOSE network interface ID, GOOSE APP-ID, using URCB (non-buffered reporting), IED authentication password, RequestTimeout (request timeout ms), maximum PDU size, enabling TLS encrypted connections, TLS client certificates, TLS CA certificates, TLS chain verification, TLS only allows known certificates, SOE event log configuration. Variable auxiliary attributes include object references (assistance), functional constraints (assistance), and allow writes, mainly used by importers or model generation.
OPC AEcollection retry; Exclusive attributes: OpcAeUrl is the AE service connection address, CheckRate is the detection reconnection period.
ZeroMQ collects clientconnection address, socket type, binding mode, subscription theme prefix, high watermark mark, detailed logs, and check clearance time.
EDPF_NTNo page plugin properties.
LKSISNo page plugin property.
USBScanerNo page plugin properties.

Public Data Forwarding Target Attributes

attribute groupInclude attributeDescription
Target Basic AttributesName, Description, Enable, Plugin Name, Log Level, Startup Timeout, Redundancy Enabled, Redundancy Target, Redundancy Mode, Redundancy Scan Interval, Redundancy Switch Determination ScriptAll forwarding targets are present. If the target is not enabled or starts timed out, it will not be sent; Redundancy is only used when the primary and backup targets are clearly defined.
Offline CachingEnable offline caching, maximum row count of cached files, upload slicing size, memory queue limit, filter offline data, number of concurrent uploadsUsed for resending when external systems are temporarily unavailable. Key history, alarms, and platform upload suggestions are enabled; When real-time and sequencing requirements are high, cautiously increase concurrency.
Templates and ScriptsDetailed logs, JSON indentation formatting, JSON ignoring Null, device list upload, variable list upload, variable dictionary upload, alarm list upload, alarm dictionary upload, plugin event list upload, device topic template, variable topic template, alarm topic template, plugin event topic template, device entity script, Variable entity scripts, alarm entity scripts, plugin event entity scripts, upload template configurationscommon upload targets such as MQTT, Kafka, RabbitMQ, Webhook, ZeroMQ, etc. Topics determine where to send content, while physical scripts and upload templates determine what content to publish.
Channel-type TargetChannel type, remote address, local bound address, SSL enabled, SSL target hostname, SSL client certificate, SSL server certificate, SSL CA certificate, Allow untrusted certificate, SSL protocol, check certificate revocation, serial port, baud rate, data bit, check bit, check bit, stop bit, DtrEnable, RtsEnable, Asynchronous flow, handshake method, serial port input buffer size, serial port output buffer size, maximum concurrency, packet cache time, connection timeout, maximum number of connections, client cleanup time, heartbeat content, heartbeat status, heartbeat time, DtuId, DtuId Hex, DtuId Hex, Dtu service typeModbus slave, IEC104 slave, etc. For target uses that need to listen for or connect to TCP/serial/DTU. The server mode focuses on verifying the local binding address and firewall.
MQTT Producer Common ItemsConnection Type, Port, WebSocket Path, SSL Enabled, CA Name, Allow Untrusted Certificates, SSL Protocol Version, Check Certificate Revocation, Username, Password, QoS Level, Message Retention, RPC Write Topic, History Query Topic, Data Request Topic, RPC ScriptShared by MQTT client and server producers. History Query Topic defaults to RpcHistory, used for restricted history, numerical sequences, and alarm RPCs.
General Variable AttributesData 1, Data 2, Data 3, Data 4, Data 5, Data 6, Data 7, Data 8, Data 9, Data 10Custom fields for a single variable under a specific target, can be used for Topic, Routing Key, URL, or upload templates.

Data Forwarding Target Plugin Checklist

Target pluginConfirmed target attributeConfirmed target variable attribute
Modbus slaveBasic target property, channel-type target; Exclusive attributes: Modbus type, default station number, data parsing order, string inverted byte, multi-site mode, allowing RPC writes, immediate memory write, sending latency, client permission list.Slave variable address, data type, and allowing RPC writes.
MQTT client producertarget base attributes, offline cache, templates and scripts, MQTT producer common items; Exclusive attributes: IP address, SSL target hostname, client certificate name, client ID, uptime retention, session clear, MQTT protocol version.Data 1, Data 2, Data 3, Data 4, Data 5, Data 6, Data 7, Data 8, Data 9, Data 10. Allow RPC writing.
MQTT server producertarget base attributes, offline cache, templates and scripts, MQTT producer common items; Exclusive attributes: server certificate name, allowed connection ID prefix.Data 1, Data 2, Data 3, Data 4, Data 5, Data 6, Data 7, Data 8, Data 9, Data 10. Allow RPC writing.
ThingsBoard client producerTarget basic attributes, offline caching; Exclusive attributes: connection type, IP address, port, WebSocket path, SSL enabled, SSL target hostname, client certificate name, CA name, allowed untrusted certificate, SSL protocol version, certificate revocation for checking, client ID, username, password, uptime retention, session clearing, MQTT protocol version, QoS level, message retention, detailed log.Allows RPC writes.
OPC UA servertarget base attributes; Exclusive attributes: service address, name identifier, security policy, allowed RPC writes, username, password, server certificate name.Data types and allowing RPC writes.
Kafka ProducerTarget base attributes, offline cache, templates, and scripts; Exclusive attributes: service address, posting timeout, username, password, security protocol, SASL mechanism.Data 1, Data 2, Data 3, Data 4, Data 5, Data 6, Data 7, Data 8, Data 9, Data 10.
RabbitMQ ProducerTarget basic attributes, offline cache, templates, and scripts; Exclusive attributes: IP address, port, username, password, declaration queue, declaration switch, enable release acknowledgment, routing successful, switch type, publication timeout, virtual host, switch name.Data 1, Data 2, Data 3, Data 4, Data 5, Data 6, Data 7, Data 8, Data 9, Data 10.
Historical Data ObjectivesBasic Target Attributes and Offline Cache; Exclusive attributes: database type, custom SQL mode, sharding policy, join string, numeric historical table name, string history table name, retention days, historical table script, time zone offset, forced insert, default sampling policy, default sampling interval, default conditional expression, custom template configuration, dual-database mirroring.Sampling strategies, sampling intervals, and conditional expressions.
Real-time data objectivesBasic target attributes and offline caching; Exclusive attributes: database type, join string, real-time table name, real-time table script, time zone offset.No page target variable property.
Historical alarm targetsBasic target attributes and offline cache; Exclusive attributes: database type, sharding policy, join string, historical alarm table name, retention days, historical alarm table script, time zone offset, minimum alarm level, dual database mirror.No page target variable properties.
WebhookTarget basic attributes, offline cache, templates, and scripts; Exclusive attributes: signature key, custom request header, message format, Timeout (request timeout seconds). The Webhook variable topic template is the request URL.Data 1, Data 2, Data 3, Data 4, Data 5, Data 6, Data 7, Data 8, Data 9, Data 10.
SyncBridgeTarget base properties; dedicated properties: Role, LocalPeerId, ListenUri, RemoteUri, VerifyToken, transport certificate, CA, target host, TLS, authenticated heartbeat, real-time batch/Ack limits, configuration chunks, synchronization policy, Hub concurrency, and remote RPC gate.No page target variable properties.
IEC104 SlaveBasic Target Attributes and Channel Targets; Exclusive attributes: IsWithTimeInfo, Station, DeviceRpcEnable, SendDelayTime.StartAddress, DataType, VariableRpcEnable.
IEC 61850 ServerTarget Basic Attributes; Exclusive properties: IED name, IED port, vendor name, write allowed, CallbackResultTimeoutMs (callback timeout ms), SCL configuration file path, GOOSE network interface interface, enabling GOOSE release, reporting DataSet name, URCB name, BRCB name, report ConfRev, report TrgOps, report OptFlds, report BufTime, report IntgPd, GOOSEDataSet name, GOOSE block name, GOOSE block AppID, GOOSEConfRev, GOOSE fixed offset, GOOSE minimum time, GOOSE maximum time, GOOSE VLAN priority, GOOSE VLAN ID, GOOSE APPID, GOOSE TARGET MAC, SOE EVENT LOG CONFIGURATION, IEC 61850 VERSION, MAXIMUM NUMBER OF CONNECTIONS, ENABLED DYNAMIC DATASET, Enable file services, enable log services, report buffer size, BRCB includes ResvTms, RCB includes Owner, file service paths, enable TLS encrypted connections, TLS server certificates, TLS CA certificates, TLS chain verification, TLS only allows known certificates.Object references, data types, allowed writes, control models, GOOSE release.
ZeroMQ ProducerTarget basic attributes, offline cache, templates, and scripts; Exclusive attributes: connection address, socket type, binding mode, high watermark mark.Data 1, Data 2, Data 3, Data 4, Data 5, Data 6, Data 7, Data 8, Data 9, Data 10.

Address Data Conversion Parameters

Some collection plugins directly read the device's original bytes. In this case, you can use a semicolon (;) Add conversion parameters to specify byte order, string length, or encoding method. On the same device, different variables can use different conversion parameters.

Scope of Application

These conversion parameters are mainly used for Byte parsing data collection plugins such as Modbus main station, Siemens S7, DLT645-2007, etc. Plugins like OPC UA, OPC DA, and MQTT usually provide data directly from the server or message content, without needing to add these byte parsing parameters to the address.

General Conversion Parameters

ParametersSyntaxInstructions for Use
Data Formatsdata=ABCD,data=BADC,data=CDAB, data=DCBAByte order for 4-byte values. If floating-point readings show exceptionally large, very small, or abnormal positive or negative values, prioritize checking this item.
String lengthlen=NThe string variable must specify the number of bytes to read, for example, len=10. If the length is not specified, string read/write is prone to failure or excessive content may be read.
BCD formatsbcd=C8421,bcd=C5421,bcd=C2421, bcd=C3, bcd=GrayFilled in when the device uses BCD encoding. If readings from electric meters or instrument-type equipment do not meet expectations, BCD format should be confirmed according to the equipment protocol.
Character Encodingencoding=UTF-8,encoding=ASCII,encoding=Default, encoding=UnicodeFill in when a string appears garbled. The actual coding of the equipment should be consistent.
Variable-length stringvsl=trueUsed for strings with length headers, commonly found in S7 strings. After activation, the maximum length must still be specified using len=N.

Example

  • 40001;data=CDAB: Read the Modbus retention register and exchange parses by little-ender byte.
  • 40001;len=10;encoding=UTF-8: Read a 10-byte UTF-8 string.
  • 40001;bcd=C8421: Interpreted reading encoded according to BCD 8421.
  • DB1.DBW0;vsl=true;len=20: Read variable-length strings in S7 data blocks, up to 20 bytes.

Plugin-specific address parameters

PluginparametersSyntaxInstructions
Modbus main siteStation numbers=NOverride default station numbers in plugin properties. When there are multiple slaves under a channel, they can be specified separately in the variable address.
Modbus masterwrite function codew=6 or w=16Specify whether to write with a single register or multiple registers when writing to the keep-up register. Used when writing fails or the device only supports one type of function code.
Modbus master stationRead function codef=NDirectly specify to read function code. It is only used when the field protocol has special agreements regarding the address area and function code.
Modbus master station-bit index.Nreads a bit from a register, for example 40001.3. Suitable for splitting multiple state bits within a single register.
Siemens S7Wide stringW=trueParse as WString/Unicode string. If the regular string is garbled or incorrect, confirm whether to enable it by the PLC string type.

Collection Plugin

Acquisition plugin is used to read data from external devices or systems such as PLCs, meters, OPC services, MQTT Brokers, and more.

Modbus Master Station

Address Format

Address RangeRegistersRead/Write PurposeExample
00001~09999CoilRead/Writable00001
10001~19999Discrete InputRead-Only10001
30001~39999Input RegistersRead-only30001
40001~49999Register RetentionReadable and Writable40001

Plugin Properties

Configuration ItemsDefault ValueInstructions to Fill
Modbus TypeSelect by PageModbusTcp is for Ethernet Modbus TCP; ModbusRtu is for serial RTU; ModbusAscii is for Modbus ASCII. ASCII supports only SerialPort, TcpClient, and streaming TcpService channels. It does not support UdpSession, because ASCII frames depend on a continuous byte stream with : start and CRLF termination.
Default station number1Slave station address. If only one device is connected to a single channel, fill in the equipment station number; Multiple station numbers on the same channel can be overwritten in variable addresses using s=N.
Maximum number of coil bits read by FC11600maximum number of coil bits read per FC1 request, range 1~2000.
FC2 maximum read discrete input bits1600maximum number of discrete input bits read per FC2 request, range 1~2000.
FC3 maximum number of hold registers to read:100Number of hold registers that can be read at the highest level per FC3 request, range: 1~125.
FC4 maximum number of input registers to read100maximum number of input registers to be read per FC4 request, range 1~125.
FC15 Maximum batch write coil bits1968Maximum number of coil bits written per FC15 request, range 1~1968.
FC16 maximum batch write registers123maximum number of registers written per FC16 request, range 1~123.
Read/write timeout3000 millisecondssingle read/write wait time. Increase when serial, wireless, or remote networks are slow; If it is too large, fault response slows down.
Time before frame0 millisecondswait time before sending a packet. Some serial converters or older equipment require message spacing when setting the signal.
String inverted byteClosedString inverted by word. Try to enable when two adjacent characters in a string are reversed.
Data parsing orderSelectnumeric byte order on site. Adjusts when floating-point or integer readings are abnormal.
DTU IDLeave blankFill in when accessing via DTU/transhaul device and devices need to be distinguished by terminal ID; Direct-connected devices are usually left blank.
Number of failed retries3Number of retries after a single read/write failure. Occasional network jitter can be appropriately increased, but long-term faults should not be set too high.
Read/Write Duty Cycle3When writing tasks are frequent, perform several writes followed by interwoven reads to avoid prolonged write-only and non-read-only tasks. When control commands are dense, adjustments can be made according to the on-site rhythm.
Write PriorityOffWhen Write Tasks Are Enabled and Sent First. Suitable for scenarios where control commands require faster response; Normal collection can be kept off.
Upgrade check

Modbus master has removed the old MaxPack(maximum package length) field. After upgrading, please open each Modbus master device one by one and check the above six rules. Do not assume that old values will be automatically mapped. If the read length of a single variable or the number of batch writes exceeds the corresponding upper limit, the system will return a validation error before constructing the packet; If the supported capacity of on-site equipment is below the protocol limit, it should continue to be lowered according to the equipment manual.

Siemens S7

Address Format

PrefixAreaExampleInstructions for Use
IInput ZoneI0.0,IB0,IW0, ID0Read input points, input bytes, input words, or enter dual characters.
Qoutput areaQ0.0,QB0,QW0, QD0read or write output area.
MIntermediate storage areaM0.0,MB0,MW0, MD0Read or write to the M section.
DBData BlockDB1.DBX0.0, DB1.DBB0, DB1.DBW0, DB1.DBD0Press DB number. Address Fill in.
AIanalog inputAI0, AIW0read analog input.
AQanalog outputAQ0, AQW0Read or write analog output.
TTimerT0Read Timer.
CcounterC0read counter.
VS200 V ZoneV0,VB0, VW0, VD0S200 Common Address Area.

S7 strings should be filled in according to the actual definition in the PLC: for fixed-length strings, use len=N; For strings with length headers, use vsl=true;len=N; For wide strings, use W=true.

Plugin Properties

Configuration ItemsDefault ValuesInstructions to Fill Out
PLC TypeSelect by PageSelect S200,S200Smart,S300,S400, S1200, or S1500. If the model is selected incorrectly, connection or address resolution may fail.
Rack0rack number. The S7-1200/1500 typically has 0; S7-300/400 fill in according to actual hardware configuration.
Slot0Slot number. On site, the commonly used S7-300 CPU is 2, while the S7-1200/1500 is often 0 or configured according to device configuration. If connection fails, check rack/slot first.
LocalTSAP0Local TSAP. Normal connections remain at default; On-site requirements specify TSAP or, when using special gateways, fill in according to PLC communication configuration.
Maximum package length200Single combined read length. Efficiency can be improved when there are multiple points; Reduce when read/write timeout or when the PLC rejects a request.
Read/write timeout3000 millisecondsSingle-request wait time. For cross-segment applications, VPNs, or poor network quality, the size can be increased appropriately.
Time before frame0 millisecondsWait time before sending a request. Regular Ethernet connections remain by default.
Reverse bytes of stringsDisableUsed when string byte order is abnormal.
Data parsing orderSelectnumeric byte order on site. Adjust when the value is read incorrectly but the address is correct.
Number of failed retries3Number of retries after communication failure.
Read/Write Duty Cycle3Control the read/write interplay rhythm when writing is frequent.
Write priorityTurn offEnable when control commands need to be issued first.

DLT645-2007

Address Format

DLT645-2007 uses 8-bit hexadecimal data identifiers as variable addresses. When specifying the meter address, add s = 12-bit meter address after the address.

ExampleExplanation
02010100phase A voltage.
02020100Phase A current.
02030000instantaneous total active power.
00000000Current combined total active energy.
00010000Current forward total active energy.
02010100;s=111111111111reads the A phase voltage at the specified 12-bit meter address.

Plugin Properties

Configuration ItemsDefault ValuesInstructions for Filling
Default address111111111111Default meter address. If only one form is connected, it can be filled in here; When multiple tables share a channel, you can overwrite the variable address with s=....
PasswordLeave blankEnter password when writing or special reading on the meter requires a password; Normal reading usually leaves blank.
Operator CodeLeave blankEnter when the meter requires the operator code.
Preamble Message HeadFEFEFEFEDLT645 Precursor Message. Most meters remain at default; If message resolution is abnormal, confirm according to the meter manual.
Read/write timeout3000 millisecondsread wait time. Infrared, wireless, or serial links can be increased when the link is slow.
Time before frame0 millisecondswait time before sending packets.
String invert bytesDisableUsed for string class data parsing exceptions.
Data parsing orderSelectnumeric byte order on site.
DTU IDLeave blankto fill in when distinguishing terminals through DTU.
Number of failed retries3Number of retries after a table reading failure.
Read-write duty cycle3Includes read-write intermittent rhythm during writing tasks.
Write priorityTurn offEnable when writing meter parameters needs to be executed first.

OPC UA client

Address format

The OPC UA variable address should be filled with the server node identifier, for example:

  • ns=2;s=Channel1.Device1.Tag1
  • ns=2;i=1001

Plugin Properties

Configuration ItemsDefault ValuesInstructions to Fill Out
Connection Urlopc.tcp://127.0.0.1:49320OPC UA service address. The server should actually expose opc.tcp:// host: port.
Log in to accountLeave blankFill in when the server requires username authentication. Anonymous interviews are left blank.
Login passwordLeave blankFill in together with your login account.
Data Change Trigger ConditionsStatusValueSubscription Trigger Conditions. Usually kept as default; If you only care about status or timestamp changes, adjust according to server requirements.
Security PolicyTurn OffUse secure connections after enabling them, usually requiring a client certificate and trusting the server. Connections fail if the certificate is not trusted.
Name IdentifierThingsGateway_OPC_UA_MasterClient application name, which will be displayed in the server-side audit and certificate trust lists.
CertificateLeave EmptySelect Certificate Management when security policies are enabled or when the server requires a client certificate.
Whether to enable SourceTimeAfter enabling variable time, use OPC UA server time; After closure, use the gateway to receive time. If the server is not on time, it is recommended to shut it down.
Load server data typeEnableAfter connecting, read server node data type to facilitate variable type matching. If too many points cause slow initial connections, you can close it after confirming the type configuration is correct.
Activate subscriptionEnableReceive changes through subscription after activation; After turning off, it actively reads according to the collection cycle. It can be turned off when server-side subscription capacity is poor or subscription is unstable.
Update frequency1000 millisecondssubscription update intervals. The smaller the response, the faster the response, and the higher the pressure on the server side.
Dead Zone0Percentage of dead zones for simulation changes. When values fluctuate slightly and frequently report, this can be set to reduce meaningless changes.
Maximum group size500Maximum number of nodes per subscription group. When there are many points, it is used to split subscriptions; when the server rejects large subscriptions, it is reduced.
Heart rate3000 millisecondsmaintain a session heartbeat interval with the server. If the network is unstable, the size can be increased appropriately.
Number of failed retries3Number of retries after a read/write failure.
Read/write duty cycle:3Control the read/write interplay rhythm when writing is heavy.
Write priorityTurn offEnable when write instructions need to be prioritized.

OPC DA client

Address formatting

The OPC DA variable address is filled with the server entry name, for example:

  • Channel1.Device1.Group1.Tag1

Plugin Properties

Configuration ItemsDefault ValuesInstructions to Fill
OPC server IPlocalhosthost where the OPC DA service is located. For remote access, enter the server IP or hostname and confirm DCOM permissions.
OPC server nameKepware.KEPServerEX.V6ProgID of OPC DA Server. The name must match the one registered on the server.
Server TimeEnableAfter activation, use the OPC DA server timestamp; Shut down when server time is unreliable.
Subscription ModeEnableAfter activating, use OPC subscription to obtain changes; After turning off, read according to the collection cycle.
Detection reconnection frequency10 minutesinterval between regular checks and reconnections. When the server is frequently disconnected, it can be shortened appropriately.
Dead Zone0subscription dead zone percentage. Used when analog output fluctuates greatly and slightly.
Maximum group size500Maximum number of items per subscription group. Decrease when the server cannot handle large groups.
Subscription update frequency1000 millisecondssubscription refresh interval. The smaller the size, the higher the real-time performance, but the greater the pressure on the server side.
Number of failed retries3Number of retries after a read/write failure.
Read/write duty cycle3Control the read/write interplay rhythm when writing is heavy.
Write priorityTurn offEnable when write instructions need to be processed first.
Runtime environment

OPC DA depends on Windows COM/DCOM. When accessing remotely, you need to confirm Windows Firewall, DCOM permissions, account permissions, and OPC Server registration information at the same time.

MQTT Acquisition Client

Configuration Entry

Add or edit MQTT acquisition client devices in "Collection Configuration," then add variables for the device. In the variable address, fill in Topic, field path, and optional condition scripts. The conditional script needs to be created as a "Data Transformation" script in "Development Configuration→ Script Management" and compiled successfully.

Address Format

MQTT Acquisition Client can subscribe to telemetry messages from the Broker or issue control commands to the device. Variable addresses use the following fixed-order eight-segment format:

Subscribe to topics; JSONPath1||JSONPath2; Conditional scripts; Release the theme; Load mode; Retain; RPC response themes; RPC timeouts in milliseconds
ParagraphUser Instructions
Subscribe to TopicTelemetry MQTT Topic. Allows precise themes or MQTT wildcard themes; Must be filled in together with JSONPath or left blank at the same time.
Single-value field path in JSONPathPayload. Multiple candidate paths are separated by `
Conditional scriptsOptional scripts for transforming compiled data; The script only updates the variable when it returns true.
Release TopicDevice Control Topic; do not use + or #. Leaving the variable blank does not support MQTT release control.
Load modeJson or RawString. When omitted, it is Json; Only fill in when the topic is published.
Retaintrue or false, omitted as false. Instantaneous commands should remain false.
RPC response themeoptional. After entering in pairs with RPC timeout milliseconds, the gateway waits for device confirmation.
RPC timeout in milliseconds100 to 60000; Only fill in when filling out the response topic.

Read-only variables can continue to use the first three segments, for example, vendor/device;$.data.temperature;TelemetryCondition. You can leave the first three paragraphs blank when writing only variables, for example ;;;factory/a/reboot;RawString;false. Example of a variable to read and write simultaneously is:

factory/a/status;$.power;;factory/a/command;Json;false

Control Write

After selecting the MQTT Collect device in the Variable Editor, the address area will display three areas: "Telemetry Read," "Control Write," and "RPC Receipt." When the release topic is empty, the payload mode, Retain, and receipt configuration will not be saved. When switching to read-only or write-only permissions, the system clears control or telemetry fields that are no longer allowed. QoS is uniformly controlled by device attributes and is not configured separately by variables.

Load modeWrite expression resultsSend content
JsonAny valid JSON valuePreserve the original JSON text and publish according to UTF-8. Objects, arrays, numbers, and booleans can all be used.
RawStringJSON stringFetch the string content and publish it in UTF-8. For example, when writing an expression returns "REBOOT", the device receives REBOOT.

RawString does not accept numbers, booleans, objects, arrays, or null. When mapping page values to device commands, a string should be returned in the variable's write expression. A successful release only means the MQTT client or gateway broker has accepted the message and will not change the current value; Variable values are still updated by subsequent telemetry messages.

RPC Receipt

When device confirmation is required, fill in the last level of the publishing topic and the response topic {RequestId}, for example:

Release topic: factory/a/command/{RequestId}
Response Topic: factory/a/response/{RequestId}

The gateway generates a 32-bit lowercase request ID for each write. The device obtains this identifier from the last layer of the request topic and, before timeout, publishes the following JSON to the corresponding response topic:

{
"success": true,
"message": "optional diagnostic text"
}

success must be a JSON Boolean. With true, the variable write shows that the device confirmed the operation; with false, it shows message or a fixed failure reason. The response does not need to repeat requestId in JSON because the gateway correlates it with the actual response Topic. Retained messages, incorrect response Topics, invalid JSON, or messages without a valid success value do not complete the write wait. The client publishes a command requiring confirmation only after the response Topic subscription is acknowledged. Timeouts, disconnections, service shutdown, or variable-routing reloads return an explicit failure and do not resend the control command. If a reload occurs before publication, no command is sent to the old Topic; an old response arriving after the reload does not affect the new configuration.

The following Payload is used to illustrate path syntax:

{
"data": {
"items": [
{ "value": 12.5 },
{ "value": 18.2 }
],
"temperature": 31
},
"a.b": "special"
}
Variable addressresult or purpose
vendor/device;data.temperatureresult is 31, so you can omit the root symbol $.
vendor/device;$.data.temperatureresult is 31.
vendor/device;$.data.items[0].valueresult is 12.5, indexed using a parenthesis array.
vendor/device;data.items.1.valueresult is 18.2, and array indexes can also be numbered in dot format.
vendor/device;$['a.b']result is "special", with the attribute name containing . Use parenthesis properties.
vendor/device;$.devs[0].d[?(@.m == 'ZP_AA01_01_VC')].vFilters array elements and returns 233.4.
vendor/device;$..temperatureRecursively finds properties named temperature and takes the first match in document order.
vendor/device;$.data.items[*].valueMatches array elements and takes the first match in document order.
`vendor/device;$.data.temperature
`vendor/device;$.data.temperature

Field Path Rule

RuleDescription
Root Node$ represents the complete Payload JSON root node; The regular path can omit $.
Object PropertiesUse data.temperature or $.data.temperature.
Array indexessupport items[0].value and items.0.value. The index must be an integer greater than or equal to 0.
Special Attribute NameAttribute Name Contains . or `
Filter expressionUse [?()] to filter array elements, for example $.items[?(@.name == 'A')].value. A logical `
Wildcard[*] matches array elements and .* matches object properties. When several nodes match, the first one in document order is used.
Recursive descent$..name recursively finds properties with the given name from the root. When several nodes match, the first one in document order is used.
CaseFirst, match exactly by attribute name; Only when the exact name does not exist use a unique case-ignoring match. If the payload contains both Temperature and temperature, the path TEMPERATURE will not update due to unique matching.
Candidate FieldsUse `Path 1
Missing Field:If the field does not exist, the array is out of bounds, or the path format is incorrect, this variable update is skipped, and the original variable value is retained.
JSON nullnull explicitly present in Payload are valid fields and will be updated as null values; It is not different from a field.

One MQTT message still maps to one variable. When a filter, wildcard, or recursive-descent expression matches several nodes, the first node in JSON document order is used; multiple matches are not written as an array automatically.

Condition Script

The condition is the "Data Transformation" script, with the script's raw parameters set to full Payload JSON. Configuration steps are as follows:

  1. Open "Development Configuration → Script Management" and add a new "Data Transformation" script.
  2. In the script editor's "Input Parameters," add Topic or MqttTopic as needed, and select "String" as the data type.
  3. Write a script that returns the boolean value and click "Compile and Save".
  4. Fill the script name into the third paragraph of the variable address, for example, vendor/device;$.data.temperature;TelemetryCondition.

The following example requires the message to come from a specified actual topic, with the payload type being telemetry:

var payload = (System.Text.Json.JsonElement)raw;

return Topic == "devices/device-01/up"
&& payload.TryGetProperty("type", out var type)
&& type.GetString() == "telemetry";

Conditional scripts run according to the following rules:

  • raw always a full Payload JSON, not a single value selected by the variable field path.
  • Topic and MqttTopic input parameters to obtain the actual message published Topic. For example, when the variable is configured as devices/+/up, the script can get devices/device-01/up.
  • In the same message, the script for the same condition is executed only once; multiple variables can share the same condition.
  • If the condition returns false, the script name does not exist, the script throws an exception, or the return value cannot be converted to a boolean value, this message will not update the related variable and will record the warning log.
Publish client ID

MQTT Broker forwards messages to subscription clients that do not include the original publisher ClientID, so MQTT cannot read the publisher ClientID when collecting client condition scripts. Even if you declare ClientId or MqttClientId as an input parameter, you will only get an empty string; Do not use the client's own ClientId as the publisher's identity.

Wildcard Topic

devices/+/up;$.data.temperature will update messages from all matched devices to the same variable. If you need to save variables separately by device, configure an exact Topic for each device; When filtering only some devices, you can also read the actual Topic in the condition script and return true or false.

Plugin Properties

Configuration ItemsDefault ValuesInstructions to Fill Out
Connection TypeTcpNormal MQTT Use Tcp; When the broker provides WebSocket access, select WebSocket.
IP addresslocalhostBroker address, where you can enter IP or domain name.
Port1883Broker port. The common TLS port is 8883, depending on the broker configuration.
WebSocket path/mqttis only for WebSocket connections and must match the broker path.
Enable SSLturn offBroker when requesting TLS/WSS. After activation, continue to confirm the target hostname, certificate, and CA.
SSL target hostnameleavehostname used when verifying the certificate. When connecting via IP but the certificate is issued to a domain name, fill in the domain name in the certificate.
Client Certificate NameLeaveBroker When requesting bidirectional TLS, select the client certificate from Certificate Management.
CA NameLeaveSelect the CA certificate when you need to verify the broker's server certificate.
Allow untrusted certificatesenableCan be enabled temporarily during self-signed certificate debugging; Production environments are recommended to be closed. If the certificate is not trusted after closing, it will cause connection failures.
SSL protocol versionNoneusually remains by default; TLS handshake fails or the platform specifies the version before adjusting.
Check certificate revocationCloseEnable when there are compliance requirements for certificate revocation. After enabling it, the network cannot access the revocation list, which may cause connection failures.
Client IDLeave blankBroker enters when the ClientID is fixed or the session is reserved. If left blank, it is generated by the system or handled according to the connection library rules.
UsernameLeave blankBroker to enter when account authentication is enabled.
PasswordLeaveFill in together with your username.
Keep Alive time60 secondsMQTT Keep Alive. If the network is unstable, do not set it too small.
Clear sessionsEnableAfter activation, each connection does not retain the old subscription status; Turn off the session when the broker needs to keep it and use a fixed client ID.
MQTT protocol versionV311is consistent with the Broker-supported version. Check this when the connection is rejected by the broker.
QoS RatingAtMostOnceAtMostOnce Low latency but possible message loss;AtLeastOnce at least delivered but may be duplicated; ExactlyOnce is the most reliable but has the highest overhead.
Detailed LogsCloseTemporarily enabled when debugging Topic, authentication, certificate, or message resolution; Shut down after stable operation.
Connection timeout3000 millisecondswait time to establish a connection. Increase when cross-network or when broker response is slow.
Check the interval between60000 millisecondsPeriodic cleanup of connection and message status. Normal scenarios remain by default.

MQTT Acquisition Server

The MQTT Acquisition Server connects via the gateway listening to the MQTT client, with variable address formats the same as the MQTT acquisition client.

The rules for handling server field paths, candidate fields, case sensitivity, missing fields, and condition failures are the same as in the previous section. The server can identify the publisher client based on the MQTT session receiving the message, so conditional scripts can also declare string types ClientId or MqttClientId: in the "Input Parameters"

var payload = (System.Text.Json.JsonElement)raw;

return ClientId == "device-01"
&& payload.TryGetProperty("type", out var type)
&& type.GetString() == "telemetry";

When using devices/+/up and other wild-matched topics, the server can filter conditions by combining the actual Topic and ClientId; If each device needs independent variables, it is still recommended to configure precise Topics to avoid multiple publishers updating the same variable.

Configuration ItemsDefault ValuesInstructions to Fill Out
Connection TypeTcpListen for Regular MQTT or WebSocket MQTT.
Port1883Gateway Local Listening Port. Before deployment, confirm that ports are not occupied and allow them according to firewall policies.
WebSocket path/mqttWebSocket client connection path.
Enable SSLTurn offenable when the client requests TLS/WSS to connect to the gateway.
Server certificate nameLeaveCertificate provided to clients when the gateway acts as an MQTT server. Usually, you need to select SSL when enabling it.
CA NameLeave BlankSelect CA when client certificate verification is needed.
Allow untrusted certificatesenableCan be temporarily enabled during two-way certificate interchange; Production environments are recommended to be closed.
SSL protocol versionNoneadjust when handshake failure or when security policies require a specified version.
Check for certificate revocationCloseEnable when certificate revocation verification is required.
Allow connection to the ID prefixleave it blankOnly allow client IDs with specified prefixes to connect. Leaving a blank means no prefix restrictions apply.
UsernameLeave blankFill in when account verification is required.
Leave the passwordblankFill in together with the username.
QoS LevelAtMostOncecontrols publishes and RPC collections use this QoS;AtMostOnce has low latency but may lose messages,AtLeastOnce at least delivered but may be duplicated, ExactlyOnce has the highest overhead.
Detailed LogDisableTemporarily enabled when the joint debugging client connects, authenticates, and messages is enabled.
Check the cleanup time60000 millisecondsinterval for periodic cleanup of connection and message status.

Dedicated Gateway MQTT Collection Client and Server

Dedicated Gateway MQTT collection accepts only the current ThingsGateway fixed protocol. Every variable address is RemoteKey/RemoteVariableId. Client mode uses one connection to a shared Broker for multiple sources. Server mode accepts multiple sources through one listener and binds each source to an exact ClientId, independent credentials, and an optional certificate fingerprint.

Do not mix these plugins with the general MQTT collection sections above. General MQTT addresses combine Topic, JSONPath, and control Topics; dedicated addresses contain only the source key and remote variable ID. See Dedicated Gateway MQTT Collection for properties, edge-producer preparation, variable synchronization, and the dedicated debug page.

Data Forwarding Plugins

Data forwarding plugins are used to push collected data, device status, alarms, or plugin events to external systems, and can also provide server capabilities such as Modbus, OPC UA, MQTT, etc.

Modbus Slave

Plugin Properties

Configuration ItemsDefault ValuesInstructions for Filling
Modbus TypeSelect by pageModbusTcp used as TCP slave; ModbusRtu is used for serial slave stations.
Default station number1Default slave station number provided externally.
Data parsing orderSelect by siteByte order used when external main stations read and write multi-byte values. Adjust when values are reversed or floating-point abnormalities.
String invert bytesTurn offEnable when adjacent bytes are inverted when the external master station reads and writes strings.
Multi-site ModeEnabledAfter enabled, you can respond by multiple station numbers. If only a single site is available, it can be closed to reduce accidental access.
Allow RPC to writeEnableto control whether external masters allow writing to variables under the target. After closing, all variables under the target are read-only.
Write memory immediatelyEnableAfter the external master writes, the slave memory is updated first; the master reads again and immediately sees the new value; Whether actual device control is complete still depends on the data collected side writing results.
Send latency0 millisecondswait time before response. Some main stations require slower response times to set up this system.
Client permission listLeaveControl access by client IP in TCP server mode. Leave blank with no restrictions; After filling out the list, unmatched clients cannot access it.

The client permission list includes "Allowed client IP" and "Whether write is allowed." Filling in * means matching all clients. When reading is only enabled, you can enter * and disable write; When only the host computer is allowed to write, configure separately according to the host computer's IP.

Modbus slave requires channel parameters to be filled simultaneously. The most common channel fields to fill in incorrectly are as follows.

Configuration ItemsDefault ValuesFill in Instructions
Channel TypeTcpServiceTcpService means the gateway listens to the port and waits for the master to connect;TcpClient means the gateway actively connects to the remote end;SerialPort represents the serial slave station; UdpSession represents a UDP session.
Remote address127.0.0.1:502TCP client or UDP remote address. When using TcpClient, this must be filled in; UDP scenarios should at least include one of the remote or locally bound addresses.
Local bound address0.0.0.0:502a TCP server or UDP local listening address. When using TcpService, it must be filled in; When other hosts need to access, use 0.0.0.0: port or the actual local IP.
Enable SSL/SSL server certificatesDisable / leave blankWhen enabling TLS on TCP servers, server certificates must be selected; When enabling TLS on a TCP client, configure the CA, client certificate, and target hostname according to the peer requirements.
Allows untrusted certificatesenablescan be enabled when debugging self-signed certificates. It is recommended to close the production environment and choose a trusted CA.
Packet cache time500 millisecondsMinimum 100 time window for packet assembly completion. Used to handle TCP packet sticking, unpacking, or serial port segmentation arrivals, not variable value caching. If the parsing half-packet or occasional packet is incomplete, the size can be increased; If the value is too large, it increases response delay.
Heartbeat content / Heartbeat HEX / Heartbeat timeLeave blank / Off / 60000 millisecondsMaintain connection in TCP client mode. When the peer requires a hexadecimal heartbeat, enable Hex and fill in consecutive hexadecimal bytes.
DtuId / Is DtuId Hex / Dtu service typeLeave blank / Off / DefaultDTU or transhaul gateway is used to identify remote terminals when accessing. When the terminal reports the text number, the text is filled in directly; Enable Hex when reporting byte numbers.

Variable Properties

Configuration ItemsDefault ValuesRequiredInstructions for Filling
Slave Variable AddressLeave BlankThe Modbus address is the Modbus address accessed by the external master. Conflicts between different variable addresses must be avoided.
Data TypeInt16NoExternal master parses register values according to this type. When reading inverted values, incorrect precision, or incorrect boolean bits, check the data type, address, and byte order simultaneously.
Allow RPC writesEnableNoControl whether this variable allows external masters to write. Only when both the target and variable levels are enabled can the variable be written.

MQTT Client Producer

Connection Configuration

Configuration ItemsDefault ValuesInstructions to Fill Out
Connection TypeTcpNormal MQTT Use Tcp; When the broker provides WebSocket access, select WebSocket.
IP addresslocalhostbroker address.
Port1883Broker port.
WebSocket path/mqttWebSocket connection path.
Enable SSLturn offBroker when requesting TLS/WSS.
SSL target hostnameleaveblank for certificate hostname verification. If the certificate domain name does not match the connection address, fill in the certificate domain name.
Client Certificate NameLeave EmptySelect when Broker requests a client certificate.
CA NameLeaveEmpty to verify the broker server certificate.
Allow untrusted certificatesEnableCan be temporarily enabled during joint debugging of self-signed certificates; Production environments are recommended to be closed.
SSL protocol versionNoneusually remains by default, but adjusts when handshake fails or the platform specifies the version.
Check Certificate RevocationCloseEnable when certificate revocation verification is required.
Leave the client IDblankFill in when the broker requests a fixed ClientID, session hold, or permission binding.
UsernameLeaveBroker authentication username.
PasswordLeave theBroker authentication password blank.
Keep Alive time60 secondsMQTT Keep Alive. If the network is unstable, do not set it too small.
Clear sessionsEnableAfter opening, do not retain old sessions with each connection; When the Broker needs to hold sessions, it closes and fixes the client ID.
MQTT protocol versionV311is consistent with the version supported by Broker.
QoS levelAtMostOnceupload quality level. Key data can be considered for higher QoS, but repetitive or performance overhead must be accepted.
Keep messagescloseAfter opening, the broker saves the last message, and new subscribers may immediately receive the old value. Telemetry data is generally not recommended to be enabled.

RPC and request trigger

Configuration itemsDefault valuesInstructions to fill in
RPC Write TopicLeave blankTopic prefix used by external systems to write variables. With tg/rpc/write, the request topic is tg/rpc/write/<request-id>, and the response topic is tg/rpc/write/<request-id>/Response.
Data Request TopicLeave BlankAfter the external system sends any message to the Topic, the target triggers a data upload for devices, variables, alarms, etc.
RPC ScriptLeaveChoose a script when you need to customize MQTT RPC request parsing, writing logic, or response content.

Upload and Cache Configuration

Configuration ItemsDefault ValuesInstructions to Fill Out
Enable Offline CachingCloseIf the external system is unavailable or sending fails, write unsent data to the local cache and wait for retransmission. When shutting down, failed data will not be retried.
Maximum number of rows in a cache file262144Maximum number of rows retained in a single cache file. Exceeding the limit will clean up earlier data, not keep it indefinitely.
Upload shard size2000Maximum number of records retrieved from the queue or cache each time. Reduce when interface timeout, message body size is too large, or external systems process slowly.
Memory queue limit100000The amount of data allowed to backlog in memory. If exceeded, offline caching will be activated to prioritize disk execution; Closing the cache may discard old data.
Filter offline dataTurn offDo not upload offline variable data after enabled. External systems need to cautiously enable when seeing the last value of the offline device.
Number of concurrent uploads1Number of tasks uploaded simultaneously for the same target. When the sequence is strict, maintain 1; After confirming the target supports concurrency, increase the scale.
Detailed LogCloseEnable temporarily when linking topics, templates, scripts, or failing to send; Shut down after stable operation.
JSON indentation formattingenablemessage body is easy to read after enabled; After closing, the message body is smaller.
JSON ignores Nullenableddoes not output null fields after enablement; Turn off when the external system requires a field to be fixed.
Upload device listEnableMerge data from the same batch of devices into a list upload; Upload each item when closing.
Variable list uploadEnableMerge data from the same batch of variable data into a list upload; Upload each item when closing.
Variable Dictionary UploadCloseWhen uploading the variable list, it can be organized into a dictionary structure of "Device Name → Variable Name → Variable Data".
Alarm list uploadEnableMerge alarm data from the same batch into a list upload; Upload each item when closing.
Alarm Dictionary UploadCloseWhen uploading the alarm list, it can be organized into a dictionary structure of "Device Name → Variable Name → Alarm Data".
Plugin event list uploadEnableMerge the same batch of plugin events into a list upload; Upload each item when closing.
Device Topic TemplateLeaveDevice Data Upload Topic. No device data is uploaded during idle times.
Variable Topic TemplateThingsGateway/VariableVariable data upload to Topic, which can be grouped using variable or device fields.
Alarm Topic TemplateLeave BlankUpload Alarm Data to Topic. No alarm data is uploaded during the empty period.
Plugin Event Topic TemplateLeave BlankPlugin Event Upload Topic. No plugin upload event when it is empty.
Upload template configurationDefault templateConfigure when custom message bodies are needed. The template field must be consistent with the external system agreement.

Variable Properties

Configuration ItemsDefault ValuesRequiredInstructions to Fill
Data1~Data10Leave BlankNoCustom fields for variables under this target, can be used for Topic templates or upload templates, such as external point number, service code, area number.
Allow RPC writesEnableNoControl whether this variable allows external MQTT RPC writes.

MQTT Server Producer

The MQTT server producer listens for the MQTT client connection by the gateway, then publishes forwarded data to the connected client.

Configuration ItemsDefault ValuesInstructions for Filling
Connection TypeTcpListen for regular MQTT or WebSocket MQTT.
Port1883Gateway Local Listening Port. Before deployment, confirm that ports are not occupied.
WebSocket path:/mqttWebSocket client connection path.
Enable SSLTurn offenable when the client requests TLS/WSS to connect to the gateway.
Server certificate nameLeave blankSelect the certificate provided by the gateway to the client when SSL is enabled.
CA NameLeaveSelect CA when client certificate validation is needed.
Allow untrusted certificatesenablecan be temporarily enabled during joint debugging of self-signed certificates; Production environments are recommended to be closed.
SSL protocol versionNoneAdjust when handshake fails or security requirements are required.
Check Certificate RevocationCloseEnable when certificate revocation verification is required.
Allow connection to ID prefixesleave blankOnly allow client IDs with specified prefixes to connect. Leave blanks without prefix restrictions.
Leave the usernameblankto fill in when verification is required.
PasswordLeave blankFill in together with the username.
QoS LevelAtMostOnce.
Hold messageTurn offAfter enabled, connected or newly subscribed clients may receive the last hold message.
RPC writes TopicLeave blankExternal client writes the topic prefix of the variable, and the request and response rules are consistent with the MQTT client producer.
Data Request TopicLeave BlankAfter the client sends any message to the Topic, a full upload is triggered.
RPC ScriptLeaveChoose a script when you need to customize MQTT RPC request parsing, writing logic, or response content.

variable properties are the same as those of MQTT client producers. Upload template, cache, and list/dictionary upload configurations are also filled out according to the MQTT client producer.

ThingsBoard Client Producer

The ThingsBoard client producer uploads data according to the ThingsBoard Gateway MQTT protocol and receives RPC issued by ThingsBoard. Topics are fixed by the ThingsBoard protocol, and users mainly maintain connection rights, authentication, TLS, QoS, caching, and variable write permissions.

Configuration ItemsDefault ValuesInstructions to fill in
Connection typeTcpis consistent with the ThingsBoard MQTT access method.
IP addresslocalhostThingsBoard MQTT service address.
Port1883ThingsBoard MQTT port; TLS access usually uses 8883, depending on platform configuration.
WebSocket path/mqttused only when connecting via WebSocket.
Enable SSLturn offenable when using TLS, and configure certificates or CAs.
SSL target hostnameleavethe hostname used when proofreading the verification certificate, usually entering the domain name in the certificate.
Client certificate nameLeaveSelect when ThingsBoard requests bidirectional TLS.
CA nameleave blankto validate the ThingsBoard server certificate.
Allow untrusted certificatesenablecan be temporarily enabled when debugging self-signed certificates; Production environments are recommended to be closed.
SSL protocol versionNoneusually remains by default, with adjustments made according to platform requirements if handshake fails.
Check Certificate RevocationCloseEnable when certificate revocation verification is required.
Leave the client IDblankfill in when the platform requires a fixed client ID.
UsernameLeaveThingsBoard device credentials empty. This is usually filled in when using Access Tokens.
Password:Leave blankEnter the password when the platform requires it; Access Token mode can usually be left blank.
Keep Alive time60 secondsMQTT Keep Alive.
Clear SessionsEnableWhether to clear sessions after each connection.
MQTT protocol versionV500is consistent with the MQTT protocol version supported by ThingsBoard.
QoS RatingAtMostOnceUpload Quality Level. When remote measurement is large, platform throughput selection must be considered.
Keep messagesTurn offTelemetry data is generally not recommended.
Detailed LogTemporarily enabled whenjoint debugging authentication, Topic, or RPC are disabled.

ThingsBoard targets fixed topics on the platform, does not maintain standard MQTT templates for devices, variables, alarms, plugin events, or upload template configurations. When custom payloads or grouping by business fields are needed, you should use common forwarding targets such as MQTT, Kafka, RabbitMQ, or Webhook.

Variable properties:

Configuration ItemsDefault ValuesRequiredInstructions to fill in
Allow RPC writesEnableNoControl whether this variable allows ThingsBoard RPC writes.

OPC UA Server

The OPC UA server objective is to publish gateway variables as OPC UA nodes for external OPC UA clients to read or write.

Configuration ItemsDefault ValuesFill in Instructions
Service Addressopc.tcp://127.0.0.1:48410OPC UA service listening address. When multiple addresses are needed, use semicolons to separate them. For external access, the client should provide an accessible address.
Name IdentifierThingsGateway_OPC_UA_ServerOPC UA server application name, which is visible when clients connect and trust certificates.
Security PolicyDisableAfter activation, the client must connect according to the signature or encryption policy and trust the server certificate; Allow anonymous connections when closed.
Allow certificate loginDisablePublishes the X509 user-certificate login policy on secure endpoints. Enable it when clients log in with user certificates and configure the corresponding user trust chain.
Client certificate trust modeManualTrustListManualTrustList is maintained through application/user issuer and trusted stores. SpecifiedCA trusts only client certificates issued by the selected CA.
Trusted client CALeave blankUsed only by SpecifiedCA. When selected, only application and user certificates issued by this CA are accepted. When blank, valid client certificates are trusted automatically.
Allow RPC writesEnableControl whether the OPC UA client allows write to gateway variables. It is recommended to shut down read-only production when released.
Historical data targetLeave blankEnter a stable history target name (group/target) to expose OPC UA historical data reads. Leave blank to keep them closed.
Historical alarm targetLeave blankEnter a target that supports historical alarm queries to expose OPC UA historical event reads. Leave blank to keep them closed.
UsernameLeave blankClient account authentication username. If there is no account verification, leave it blank.
PasswordLeaveFill in together with your username.
Server Certificate NameLeaveOPC UA Server Certificate. When security policies are enabled, clients need to trust the certificate.
Server issuing CALeave blankWhen the server certificate is issued by a CA, select that CA so the server sends the complete certificate chain during the handshake.

For certificate-store upload, deletion, and trust-mode procedures, see OPC UA Server certificate stores in the debugging manual. Supported files are .cer, .crt, .der, and .pem; each file must be no larger than 1 MiB.

Variable properties:

Configuration ItemsDefault ValuesRequiredInstructions to fill
Data TypeObjectNoThe data type used by the OPC UA client when seeing and writing to this node. If the client prompts that the type does not match, it should be adjusted according to the actual value type of the variable.
Allow RPC writeenableNoOnly when both target and variable levels are enabled can the OPC UA client write to this variable.

Kafka Producer

Configuration ItemsDefault ValuesInstructions to Fill Out
Service Address127.0.0.1:9092Kafka Bootstrap Address, usually entered as host: port. Multiple brokers are filled in according to the Kafka connection string agreement.
Release timeout5000 millisecondssingle release wait time. When the network is slow or the broker is busy, the size can be increased appropriately.
UsernameLeaveSASL verified username blank. Leave SASL blank when not enabled.
PasswordLeaveSASL authentication password. Leave SASL blank when not enabled.
Security protocolsPlaintextCommon non-authenticated internal network Plaintext; When enabling authentication or encryption, select according to Kafka cluster requirements.
SASL mechanismPlainmust be configured with Kafka clusters, such as Plain, ScramSha256 Or ScramSha512.

After the Kafka Topic template is expanded, it must be a topic name that the target cluster allows writing. When activating authentication, security protocols, SASL mechanisms, usernames, and passwords must be configured in groups; Only the account and password are entered but the security protocol is still Plaintext, so it usually cannot connect to clusters that enable authentication.

Variable Properties:

Configuration ItemsDefault ValuesRequiredInstructions to Fill
Data1~Data10Leave BlankNoCustom fields, can be used in Topic templates or upload templates.

RabbitMQ Producer

Configuration ItemsDefault ValuesInstructions for Filling
IP AddresslocalhostRabbitMQ service address.
Port5672RabbitMQ service port.
UsernameguestVerified username.
Passwordguestauthentication password.
Declare QueueCloseWhen enabled, the gateway automatically declares the queue. In production environments, if queues are uniformly created by the platform, it is recommended to close them.
Declare the switchCloseAfter opening, the gateway automatically declares the switch. If the account does not have creation permission, it should be closed.
Switch Typetopicmust match the actual switch type in RabbitMQ. Common values include direct,topic,fanout, headers.
Enable release confirmationEnableWait for the broker to return the release confirmation. Keep on when reliability requirements are high; Failure to publish after closure may not be exposed in time.
Requires successful routingEnablesRequires messages to be routed at least one queue. If the Routing Key fails to hit any bindings, it will be marked as a failure.
Release timeout5000 millisecondsRelease wait time. When the broker is busy or the network is slow, the size can be increased appropriately.
Virtual Host/RabbitMQ Virtual Host. It must match the virtual host where the account permissions are held.
Switch NameTGrelease. Topic templates for

variables, devices, alarms, and plugin events are used as routing keys in RabbitMQ. The Routing Key must be matched by the target queue bound rules; After enabling "Request Routing Successful," any queue that fails to match will be directly exposed as publishing failure, making it easier to troubleshoot binding rule errors.

Variable attributes:

Configuration ItemsDefault ValuesRequiredInstructions to fill
Data1~Data10Leave blankNoCustom fields, can be used in Routing Key templates or upload templates.

Historical Data Objectives

Historical data objectives are used to write variable values into historical databases. Whether a variable is stored depends on the scope of the forwarding group, target sampling strategy, and variable attributes.

Configuration ItemsDefault ValuesInstructions to Fill Out
Database TypeSqlServerSelect the database type where the historical data is written; the connection string must match the database type.
Custom SQL ModeCloseAfter enabling it, organize the historical table structure and write statements according to custom templates or scripts. Stay closed when you don't understand the structure of the target table.
Table segmentation strategySelect by pageWhen historical data volume is large or retention periods are long, used to split tables by time and other strategies.
Connection stringExample connection stringDatabase connection information, including server, port, database name, account, password, and encryption policy.
Numeric History Table NamehistoryNumberValueThe name of the historical table written to the numeric variable.
String history table namehistoryStringValueThe name of the history table written to the string class variable.
Retention Days3650Historical Data Retention Period. Before setup, traceability requirements and disk capacity should be evaluated.
History table scriptLeave blankCustom table creation or write logic. Only used when interfacing with existing table structures or special inbound rules.
Time zone offset+08:00Time zone offset for the time written. When deploying across time zones or unifying UTC warehousing, special confirmation is required.
Forced insertTurn offWrite data upon receiving it after opening, and reduce the amount of records not according to the sampling strategy. Having many variables or short cycles can significantly increase database pressure.
Default sampling strategyChangeUsed when variable properties are not configured. Variable sampling is suitable for state quantities, interval sampling is suitable for trend, and conditional sampling is suitable for recording according to operating conditions.
Default sampling intervalLeave blankThe default sampling strategy is used when the interval is used, unit: milliseconds.
Default conditional expressionLeave blankUse when the default sampling strategy is conditional; only when the expression meets the requirements is it added.
Custom template configurationOn-demand maintenanceCustom maintenance of field templates in SQL mode. Field names, data types, and SQL logic must match the target database.

Redundancy and Reliability: When gateway redundancy is enabled and historical reliability is enabled, standard SQL historical data goals for SqlServer, MySQL, Sqlite, and PostgreSql support local journals, handover or reboot completion, and record unique key deduplication. QuestDB, TDengine, custom SQL patterns, and historical table scripts are not included in this mechanism; If disconnection or reboot is needed, offline cache should be enabled simultaneously and disk capacity confirmed.

Variable Properties:

Configuration ItemsDefault ValuesRequiredInstructions for Filling
Sampling StrategyChangeNoHow the variable is stored in historical objectives.
Sampling intervalLeave blankNoUsed during sampling, unit: milliseconds.
Conditional expressionsLeave blankNoUsed for conditional sampling. It is suitable for recording history only when equipment is running, process permitted, or values meet certain conditions.

Real-time Data Objectives

Real-time data objectives are used to write the latest values of variables to the real-time table for external systems to read the current state.

Configuration ItemsDefault ValuesInstructions for Filling
Database TypeSqlServerSelect the database type for real-time data writes.
Joining stringsExample join stringsReal-time library connection information. Accounts must have permission to create tables, update, and write to them.
Real-time table namerealValueThe table name where the latest value of the variable is stored.
Live Table ScriptLeave BlankCustomize Live Table Structure or Select When Writing Logic.
Time zone offset+08:00The time zone used for writing time must match the time displayed by the external system.

When real-time performance is required, it is not advisable to set the upload shard size too large; When external databases are temporarily unavailable, offline caching can be enabled to reduce data loss.

Historical Alarm Targets

Historical alarm targets are used to save alarms and recover events, enabling alarm traceability, statistics, and export.

Configuration ItemsDefault ValuesInstructions for Filling
Database TypeSqlServerSelect the database type to be written to by historical alarms.
Table segmentation strategySelect by pageUse when alarm volume is high or retention cycles are long.
Connection stringExample connection stringHistorical alarm library connection information.
Historical alarm table namehistoryAlarmSave the name of the alarm event.
Retention Days3650Historical alarm retention cycle, must meet on-site audit or traceability requirements.
Historical alarm table scriptLeave blankChoose when customizing alarm table structure or writing logic.
Time zone offset+08:00The time zone used when writing the alarm event time.
Minimum alarm level0Only alarms of this level and above are saved. It is desirable to keep a low level when recording all alarms.

Redundancy Reliability: When gateway redundancy is enabled and historical reliability is enabled, standard historical alarm targets for SqlServer, MySQL, Sqlite, and PostgreSQL support local journals, swap or reboot rewrites, and record unique key deduplication. This mechanism is not included when filling out historical alarm form scripts or using other dynamic write logic; When using alarms for traceability, offline caching should be enabled simultaneously and disk capacity should be confirmed.

When using alarm data for traceability, it is recommended to enable offline caching and confirm disk space to avoid record loss caused by temporary database inavailability.

Webhook

The Webhook target sends data to an HTTP endpoint. The default variable Topic template is http://127.0.0.1:7502/ThingsGateway/Variable; for Webhooks, the Topic template is used as the final request URL.

Configuration ItemsDefault ValuesInstructions to Fill
Signature KeyLeaveSecret used in DingTalk robot add-in mode; Leave WeCom, Feishu, or regular HTTP interfaces blank when not needed.
Custom request headersLeaveJSON-formatted request headers, such as {"Authorization":"Bearer token"}. Formatting errors can cause requests to fail.
Message format:RawRaw Send default JSON or template content directly;Text Supports text messages from DingTalk, WeChat, and Feishu; Markdown Supports DingTalk and WeChat Markdown messages.
Request timeout10 secondsHTTP request wait time. If the interface response is slow, it can be increased; if too large, it will extend the failure and retry cycle.

When configuring a webhook, the variable, device, alarm, or plugin event Topic template should be filled in as the actual URL; Data types with empty Topics will not be uploaded. Ordinary HTTP interfaces usually use custom request headers to pass tokens; Bot endorsement only requires entering the signature key when the platform activates the add-on.

Variable attributes:

Configuration ItemsDefault ValuesRequiredInstructions to fill
Data1~Data10Leave blankNoCustom fields, can be used in URL templates or upload templates.

SyncBridge

SyncBridge lets one HubServer aggregate configuration and real-time values from multiple EdgePublisher targets through one mutual-TLS listener.

Configuration ItemsDefault ValuesInstructions for Filling
RoleRequiredSelect HubServer for the Hub and EdgePublisher for each Edge.
LocalPeerIdEmptyStable and unique identity of the current node.
ListenUri0.0.0.0:7777Hub listener endpoint.
RemoteUriEmptyHub endpoint reached by an Edge.
VerifyTokenEmptySecond authentication secret after TLS; no public default is provided.
TransportCertificateName / TransportCaCertificateNameEmptyRequired current-node certificate and private CA used to verify peers.
TransportTargetHostEmptyHostname used by an Edge to verify the Hub certificate.
HeartbeatIntervalMs5000 msAuthenticated heartbeat interval, from 1000 to 60000.
RealtimeFlushIntervalMs20 msReal-time value coalescing window.
MaxRealtimeBatchVariables / MaxRealtimeBatchBytes2000 / 262144Variable and byte limits of one real-time batch.
RealtimeAckTimeoutMs3000 msTimeout for the Hub application acknowledgement.
MaxConfigChunkBytes524288Maximum bytes in one configuration chunk.
ConfigSyncModeOnChangeAndReconnectWhen an Edge automatically compares configuration.
MaxConcurrentConfigurationSyncPeers4Hub concurrency across Edge configuration requests.
AllowRemoteRpcDisabledBridge-wide reverse-write gate.

SyncBridge has no target-variable properties; the forwarding-group scope determines the mirror. See SyncBridge Gateway Synchronization for certificate preparation, Hub and Edge setup, field ownership, dedicated debugging, and troubleshooting.

Upload Template Configuration

Forwarding plugins with "Upload Template Configuration" allow custom message bodies.

Configuration ItemsDefault ValuesInstructions for Filling
Variable Content TemplateLeaveVariable Data Upload Template, You Can Use ${Name}, ${Value}, ${DeviceName}, ${CollectTime}, ${CollectGroup}, ${Remark1} to ${Remark5} placeholders.
Device Content TemplateLeave BlankDevice Status Upload Template. Fill in when external systems require fixed device fields or fixed message formats.
Alarm content templateLeave blankAlarm event upload template. It is recommended to retain the alarm name, level, trigger value, event time, and device information.
Plugin event content templateLeave blankPlugin event upload template. Used for external notifications of plugin events such as connection, disconnection, and errors.

Use the default JSON when the template is left blank. You can add formatters after the field, for example, ${CollectTime:long} outputs Unix millisecond timestamps, ${CollectTime:yyyy-MM-dd HH:mm:ss} outputs formatting time. Only input json output JSON array; Only input json_dict output dictionary structure; Enter dict:template content to organize dictionary results by device and variable.

templates are suitable for scenarios where external system fields are fixed, bot message formats are fixed, or both Topic and Payload need to reference variable fields. If the template placeholder is written incorrectly, the corresponding field will not get the expected value, and the external system will show a database entry failure, fields that are empty, or parsing failed.

Public Configuration Description

Collection Plugin Public Configuration

Configuration ItemsDefault ValuesInstructions for Filling
Number of failed retries3Number of retries after a single read/write failure. If network or serial port occasional jitter occurs, increase the volume appropriately; Long-term fault settings that are too high will slow down fault feedback.
Read/write duty cycle3When there are many write requests, perform several writes followed by interwoven reads to avoid long periods of writing only.
Write priorityTurn offWhen there is a write task when enabled, write processing is prioritized. Suitable for scenarios where control commands need to be issued quickly.

Data Forwarding Cache Public Configuration

Configuration ItemsDefault ValuesInstructions for Filling
Enable offline cachingturn offwrite to the local cache and wait for resend if the send fails. Historical data, alarms, and key reporting recommendations are enabled.
Maximum row count in cached file262144Cache file retains the maximum number of rows. When external systems are unavailable for a long time, exceeding the limit will clear earlier data.
Upload shard size2000Maximum number of records uploaded or resent per upload. Reduce when interface timeout, database pressure is high, or message size is too large.
Memory queue limit100000The amount of data allowed to accumulate in memory. When the limit is exceeded, enabling offline caching will prioritize order execution; If cache is not enabled or orders cannot be placed, old data may be discarded.
Filter offline dataTurn offDo not upload offline variable data after enabled. External systems need to cautiously enable when seeing the last value of the offline device.
Number of concurrent uploads1Number of tasks uploaded simultaneously by the same target. When the sequence is strict, maintain 1; After confirming the target supports concurrency, increase the scale.

Variable Custom Fields

The variable attributes of the data forwarding plugin usually include "data1" to "data10". These fields do not change the variable acquisition values and are mainly used to supplement business information during external system integration, such as external point location numbers, area codes, equipment codes, process segments, or alarm groups. Fill in these fields when the Topic template, URL template, or upload template is needed; Leave it blank when not in use.