Litmus Edge 4.4.x - DeviceHub: Create Device Driver Examples
Create Device - AB CompactLogix Ethernet Advanced
POST {{edgeUrl}}/devicehub/v2
CompactLogix Ethernet Driver Advanced
| Prerequisites | None |
| Required fields | Network address Port Slot Access Mode |
| Browse devices supported | No |
| Browse tags supported | Yes |
| Supported device models | Allen-Bradley CompactLogix and ControlLogix series |
Access Mode:
- Logical: The driver uses ID-based tag requests to improve communication performance.
- Symbolic: The driver uses string-based tag requests as a fallback for older firmware.
If Logical mode is selected, choose a Project Changes behavior. If a project change option is selected, it may reduce the driver’s performance.
- Don't monitor: If the PLC project is changed, the user must manually restart the driver to trigger a tag instance upload.
- Switch to symbolic on project change: If a project change is detected, the driver will change to symbolic mode and wait for a reconnection to upload tag instance IDs.
- Upload project on project change: If a project change is detected, the driver will upload tag instance IDs immediately. Read and write operations to the PLC will be paused for the duration of the upload.
Driver ID: 86933B9C-37D5-4926-9C6B-EDF94E5F6DC5 Group: Allen Bradley
Required properties:
- networkAddress String — The IP address of the device on the network.
- networkPort SignedInteger — The TCP or UDP port used to communicate with the device, depending on the protocol. Defaults to the standard port for the selected protocol but must match the port configured on the device.
- slotNumber SignedInteger — This is a slot no of device
- accessMode SignedInteger — Logical: This mode uses ID-based tag requests to improve communication performance. The driver must be restarted if the PLC program is changed.
Symbolic: This mode uses string-based tag requests. Options: 0, 1
- name String — A unique, user-defined name for this device. Used to identify the device throughout the edge gateway, including in message broker topics and logs.
Optional properties:
- fwVersion UnsignedInteger — If set to Auto, the driver will attempt to determine the firmware version upon connection. Specify the firmware version if there is a connection issue. Options: 0, 1, 2
- PLCProgramChangeAction UnsignedInteger — Specify whether the driver will monitor the PLC project for changes. If a project change option is selected, it may reduce the driver’s performance. If Upload project is selected, read/writes to the PLC will be paused for the duration of the upload. If Switch to symbolic is selected, communication will be in symbolic mode. However, the next time the driver connects to the PLC, it will use logical mode. Options: 0, 1, 2
- description String — Optional free-text notes about this device, such as its physical location or purpose.
Request Body
GraphQL Query
mutation CreateDevice($input: CreateDeviceRequest!) {
CreateDevice(input: $input) {
ID
Name
DriverID
Description
}
}
Variables
{
"input": {
"Name": "My AB CompactLogix Ethernet Advanced Device",
"Description": "",
"DriverID": "86933B9C-37D5-4926-9C6B-EDF94E5F6DC5",
"AliasTopics": false,
"Debug": false,
"MetaData": [],
"StoppedState": false,
"StatusRegister": null,
"Properties": [
{
"Key": "networkAddress",
"Value": "192.168.1.100"
},
{
"Key": "networkPort",
"Value": "502"
},
{
"Key": "slotNumber",
"Value": "0"
},
{
"Key": "accessMode",
"Value": "0"
},
{
"Key": "fwVersion",
"Value": "0"
},
{
"Key": "PLCProgramChangeAction",
"Value": "0"
},
{
"Key": "name",
"Value": "rockwell-compact-logix-adv_device"
},
{
"Key": "description",
"Value": ""
}
]
}
}
Response
Status: 200 OK
{
"data": {
"CreateDevice": {
"ID": "<generated-uuid>",
"Name": "My AB CompactLogix Ethernet Advanced Device",
"DriverID": "86933B9C-37D5-4926-9C6B-EDF94E5F6DC5",
"Description": ""
}
}
}
Create Device - AB CompactLogix Ethernet FreeTag
POST {{edgeUrl}}/devicehub/v2
AB CompactLogix Ethernet FreeTag
| Prerequisites | None |
| Required fields | Network address Network Port Slot Number |
| Browse devices supported | No |
| Browse tags supported | Yes |
| Supported device models | Allen-Bradley CompactLogix and ControlLogix Series |
Driver ID: 2FB8D1F6-5675-11EB-AE93-0242AC130002 Group: Allen Bradley
Required properties:
- networkAddress String — The IP address of the device on the network.
- networkPort SignedInteger — The TCP or UDP port used to communicate with the device, depending on the protocol. Defaults to the standard port for the selected protocol but must match the port configured on the device.
- slotNumber SignedInteger — This is a slot no of device.
- name String — A unique, user-defined name for this device. Used to identify the device throughout the edge gateway, including in message broker topics and logs.
Optional properties:
- description String — Optional free-text notes about this device, such as its physical location or purpose.
Request Body
GraphQL Query
mutation CreateDevice($input: CreateDeviceRequest!) {
CreateDevice(input: $input) {
ID
Name
DriverID
Description
}
}
Variables
{
"input": {
"Name": "My AB CompactLogix Ethernet FreeTag Device",
"Description": "",
"DriverID": "2FB8D1F6-5675-11EB-AE93-0242AC130002",
"AliasTopics": false,
"Debug": false,
"MetaData": [],
"StoppedState": false,
"StatusRegister": null,
"Properties": [
{
"Key": "networkAddress",
"Value": "192.168.1.100"
},
{
"Key": "networkPort",
"Value": "502"
},
{
"Key": "slotNumber",
"Value": "0"
},
{
"Key": "name",
"Value": "rockwell-compact-logix_device"
},
{
"Key": "description",
"Value": ""
}
]
}
}
Response
Status: 200 OK
{
"data": {
"CreateDevice": {
"ID": "<generated-uuid>",
"Name": "My AB CompactLogix Ethernet FreeTag Device",
"DriverID": "2FB8D1F6-5675-11EB-AE93-0242AC130002",
"Description": ""
}
}
}
Create Device - AB ControlLogix Unsolicited (Gen1.3)
POST {{edgeUrl}}/devicehub/v2
AB ControlLogix Unsolicited (Gen1.3)
| Prerequisites | Tags should be configured in the PLC using CIP Data table Read/Write MSG instruction |
| Required fields | Network Port |
| Browse devices supported | No |
| Browse tags supported | No |
| Supported device models | All ControlLogix and Compactlogix series that support CIP Data table Read/Write MSG instruction |
Driver ID: 9479F114-86F0-4E77-8118-9A721340EC3C Group: Allen Bradley
Required properties:
- name String — Device Name that describes your asset.
- networkPort SignedInteger — Network port of the device.
Optional properties:
- description String — Description of the device or an asset.
Request Body
GraphQL Query
mutation CreateDevice($input: CreateDeviceRequest!) {
CreateDevice(input: $input) {
ID
Name
DriverID
Description
}
}
Variables
{
"input": {
"Name": "My AB ControlLogix Unsolicited (Gen1.3) Device",
"Description": "",
"DriverID": "9479F114-86F0-4E77-8118-9A721340EC3C",
"AliasTopics": false,
"Debug": false,
"MetaData": [],
"StoppedState": false,
"StatusRegister": null,
"Properties": [
{
"Key": "name",
"Value": "rockwell device"
},
{
"Key": "description",
"Value": ""
},
{
"Key": "networkPort",
"Value": "502"
}
]
}
}
Response
Status: 200 OK
{
"data": {
"CreateDevice": {
"ID": "<generated-uuid>",
"Name": "My AB ControlLogix Unsolicited (Gen1.3) Device",
"DriverID": "9479F114-86F0-4E77-8118-9A721340EC3C",
"Description": ""
}
}
}
Create Device - AB DF1 Ethernet
POST {{edgeUrl}}/devicehub/v2
AB DF1 Ethernet Driver
| Required fields: | > Network Address |
| > Network Port | |
| > Source ID | |
| > Destination ID | |
| Browse devices supported: | No |
| Browse tags supported: | Yes |
| Supported device models: | Allen-Bradley PLC5 Ethernet Devices |
| Miscellaneous: | > Byte Order: Little-Endian |
| > Register Grouping Size: 103 | |
| > A strings: padding always added to "Length", up to next register | |
| > ST strings: padded into 84 byte blocks, first 2 bytes contain # characters | |
| > T/C/R bits: read-only flags | |
| > uint == uint16 (unsigned 16bit register) | |
| > int == int16 | |
| > float == float32 | |
| > bcd == 16-bit Binary Coded Decimal (0x99 -> 99, 0x1A -> error) | |
| > Addresses are always decimal, "O" or "H" only indicate what format PLC may display | |
| > Types O, I, S are bound to files 0, 1, 2 respectively | |
| > Types B, T, C, R, N, F default to files 3, 4, 5, 6, 7, 8 respectively | |
| > All other types default to file 9, and should be configured manually | |
| > Non-bound types can be addressed to any file 3-999 | |
| > Consult your plc configuration for addressing with non-default files |
Driver ID: 2683ED51-D9E7-4A15-ABFB-C526B382E28B Group: Allen Bradley
Required properties:
- SourceID SignedInteger — SRC Byte
- DestinationID SignedInteger — DST Byte
- networkAddress String — PLC IP
- networkPort SignedInteger — PLC Port
- name String — A unique, user-defined name for this device. Used to identify the device throughout the edge gateway, including in message broker topics and logs.
Optional properties:
- KeepAlive SignedInteger — TCP Keep-Alive (s) (0 to disable)
- PlcType SignedInteger — PLC Type Options: 0, 1
- ReadTimeout SignedInteger — Read Timeout (ms)
- RetryCount SignedInteger — Read Retries (0 for no retry)
- description String — Optional free-text notes about this device, such as its physical location or purpose.
Request Body
GraphQL Query
mutation CreateDevice($input: CreateDeviceRequest!) {
CreateDevice(input: $input) {
ID
Name
DriverID
Description
}
}
Variables
{
"input": {
"Name": "My AB DF1 Ethernet Device",
"Description": "",
"DriverID": "2683ED51-D9E7-4A15-ABFB-C526B382E28B",
"AliasTopics": false,
"Debug": false,
"MetaData": [],
"StoppedState": false,
"StatusRegister": null,
"Properties": [
{
"Key": "KeepAlive",
"Value": "60"
},
{
"Key": "SourceID",
"Value": "0"
},
{
"Key": "DestinationID",
"Value": "0"
},
{
"Key": "PlcType",
"Value": "0"
},
{
"Key": "networkAddress",
"Value": "192.168.1.100"
},
{
"Key": "networkPort",
"Value": "502"
},
{
"Key": "ReadTimeout",
"Value": "1000"
},
{
"Key": "RetryCount",
"Value": "0"
},
{
"Key": "name",
"Value": "rockwell-df1-eth_device"
},
{
"Key": "description",
"Value": ""
}
]
}
}
Response
Status: 200 OK
{
"data": {
"CreateDevice": {
"ID": "<generated-uuid>",
"Name": "My AB DF1 Ethernet Device",
"DriverID": "2683ED51-D9E7-4A15-ABFB-C526B382E28B",
"Description": ""
}
}
}
Create Device - AB DF1 Serial
POST {{edgeUrl}}/devicehub/v2
Rockwell DF1 Serial Driver
| Required fields: | > Device File |
| > Baud Rate | |
| > Data Bits | |
| > Stop Bits | |
| > Parity | |
| > Source ID | |
| > Destination ID | |
| Browse devices supported: | No |
| Browse tags supported: | No |
| Supported device models: | Allen-Bradley PLC5 Serial Devices |
| Miscellaneous: | > Byte Order: Little-Endian |
| > Register Grouping Size: 42 | |
| > A strings: padding always added to "Length", up to next register | |
| > ST strings: padded into 84 byte blocks, first 2 bytes contain # characters | |
| > T/C/R bits: read-only flags | |
| > uint == uint16 (unsigned 16bit register) | |
| > int == int16 | |
| > float == float32 | |
| > bcd == 16-bit Binary Coded Decimal (0x99 -> 99, 0x1A -> error) | |
| > Addresses are always decimal, "O" or "H" only indicate what format PLC may display | |
| > Types O, I, S are bound to files 0, 1, 2 respectively | |
| > Types B, T, C, R, N, F default to files 3, 4, 5, 6, 7, 8 respectively | |
| > All other types default to file 9, and should be configured manually | |
| > Non-bound types can be addressed to any file 3-999 | |
| > Consult your plc configuration for addressing with non-default files |
Driver ID: E8D1F27A-924C-4B8E-9382-8B2B6ABB695F Group: Allen Bradley
Required properties:
- SourceID SignedInteger — SRC Byte
- DestinationID SignedInteger — DST Byte
- deviceFile String — The serial port path used to communicate with the device (/dev/ttyS1, /dev/ttyUSB0, …). Must match a port available on the gateway host.
- name String — A unique, user-defined name for this device. Used to identify the device throughout the edge gateway, including in message broker topics and logs.
Optional properties:
- baudRate SignedInteger — The data transmission speed, in bits per second, used for serial communication. Must match the baud rate configured on the device. Options: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10
- dataBits SignedInteger — The number of data bits in each transmitted character (typically 7 or 8). Must match the device's serial configuration. Options: 0, 1, 2, 3
- parity SignedInteger — The error-checking method used for serial communication (None, Even, or Odd). Must match the device's configured parity setting. Options: 0, 1, 2
- stopBits SignedInteger — The number of stop bits used to signal the end of a character (typically 1 or 2). Must match the device's serial configuration. Options: 0, 1, 2
- ReadTimeout SignedInteger — Read Timeout (ms)
- PlcType SignedInteger — PLC Type Options: 0, 1
- RetryCount SignedInteger — Read Retries (0 for no retry)
- description String — Optional free-text notes about this device, such as its physical location or purpose.
Request Body
GraphQL Query
mutation CreateDevice($input: CreateDeviceRequest!) {
CreateDevice(input: $input) {
ID
Name
DriverID
Description
}
}
Variables
{
"input": {
"Name": "My AB DF1 Serial Device",
"Description": "",
"DriverID": "E8D1F27A-924C-4B8E-9382-8B2B6ABB695F",
"AliasTopics": false,
"Debug": false,
"MetaData": [],
"StoppedState": false,
"StatusRegister": null,
"Properties": [
{
"Key": "SourceID",
"Value": "0"
},
{
"Key": "baudRate",
"Value": "0"
},
{
"Key": "dataBits",
"Value": "0"
},
{
"Key": "parity",
"Value": "0"
},
{
"Key": "stopBits",
"Value": "0"
},
{
"Key": "ReadTimeout",
"Value": "1000"
},
{
"Key": "PlcType",
"Value": "0"
},
{
"Key": "DestinationID",
"Value": "1"
},
{
"Key": "deviceFile",
"Value": "/dev/ttyUSB0"
},
{
"Key": "RetryCount",
"Value": "2"
},
{
"Key": "name",
"Value": "rockwell-df1-serial_device"
},
{
"Key": "description",
"Value": ""
}
]
}
}
Response
Status: 200 OK
{
"data": {
"CreateDevice": {
"ID": "<generated-uuid>",
"Name": "My AB DF1 Serial Device",
"DriverID": "E8D1F27A-924C-4B8E-9382-8B2B6ABB695F",
"Description": ""
}
}
}
Create Device - AB EthernetIP Ethernet
POST {{edgeUrl}}/devicehub/v2
AB EthernetIP Ethernet
| Prerequisites | None |
| Required fields | Network address Network Port Slot Number |
| Browse devices supported | No |
| Browse tags supported | No |
| Supported device models | Allen-Bradley MicroLogix and SLC 500 series |
Driver ID: 2FB8D1F6-5675-11EB-AE93-0242AC130003 Group: Allen Bradley
Required properties:
- networkAddress String — The IP address of the device on the network.
- networkPort SignedInteger — The TCP or UDP port used to communicate with the device, depending on the protocol. Defaults to the standard port for the selected protocol but must match the port configured on the device.
- slotNumber SignedInteger — This is a slot no of device.
- name String — A unique, user-defined name for this device. Used to identify the device throughout the edge gateway, including in message broker topics and logs.
Optional properties:
- description String — Optional free-text notes about this device, such as its physical location or purpose.
Request Body
GraphQL Query
mutation CreateDevice($input: CreateDeviceRequest!) {
CreateDevice(input: $input) {
ID
Name
DriverID
Description
}
}
Variables
{
"input": {
"Name": "My AB EthernetIP Ethernet Device",
"Description": "",
"DriverID": "2FB8D1F6-5675-11EB-AE93-0242AC130003",
"AliasTopics": false,
"Debug": false,
"MetaData": [],
"StoppedState": false,
"StatusRegister": null,
"Properties": [
{
"Key": "networkAddress",
"Value": "192.168.1.100"
},
{
"Key": "networkPort",
"Value": "502"
},
{
"Key": "slotNumber",
"Value": "0"
},
{
"Key": "name",
"Value": "rockwell-micrologix_device"
},
{
"Key": "description",
"Value": ""
}
]
}
}
Response
Status: 200 OK
{
"data": {
"CreateDevice": {
"ID": "<generated-uuid>",
"Name": "My AB EthernetIP Ethernet Device",
"DriverID": "2FB8D1F6-5675-11EB-AE93-0242AC130003",
"Description": ""
}
}
}
Create Device - AB Logix Ethernet
POST {{edgeUrl}}/devicehub/v2
AB Logix Ethernet
| Prerequisites | None |
| Required fields | Network address Port Route Access Mode |
| Browse devices supported | No |
| Browse tags supported | Yes |
| Supported device models | Allen-Bradley CompactLogix, ControlLogix, FlexLogix, SLC500, and PLC-5 series connected over Ethernet, DH+, or ControlNet |
Route: Use the Route field to enter the routing path for your configuration. To connect directly to a CPU, enter 1, [Slot Number]. A typical DH+ path is configured as [Backplane], [Slot], [Port], [Station]. A typical ControlNet path is [IP Address], [Backplane], [Slot], [Port], [Node].
Access Mode:
- Logical: The driver uses ID-based tag requests to improve communication performance.
- Symbolic: The driver uses string-based tag requests as a fallback for older firmware.
If Logical mode is selected, choose a Project Changes behavior. If a project change option is selected, it may reduce the driver’s performance.
- Don't monitor: If the PLC project is changed, the user must manually restart the driver to trigger a tag instance upload.
- Switch to symbolic on project change: If a project change is detected, the driver will change to symbolic mode and wait for a reconnection to upload tag instance IDs.
- Upload project on project change: If a project change is detected, the driver will upload tag instance IDs immediately. Read and write operations to the PLC will be paused for the duration of the upload.
Driver ID: 0170E3C7-3D54-4710-A8FA-F953AE626353 Group: Allen Bradley
Required properties:
- networkAddress String — The IP address of the device on the network.
- networkPort SignedInteger — The TCP or UDP port used to communicate with the device, depending on the protocol. Defaults to the standard port for the selected protocol but must match the port configured on the device.
- route String — The path describes the route the message takes to get to the destination. Use this format: port, next_address, port, next_address.
- accessMode SignedInteger — Logical: This mode uses ID-based tag requests to improve communication performance. The driver must be restarted if the PLC program is changed.
Symbolic: This mode uses string-based tag requests. Options: 0, 1
- name String — A unique, user-defined name for this device. Used to identify the device throughout the edge gateway, including in message broker topics and logs.
Optional properties:
- fwVersion UnsignedInteger — If set to Auto, the driver will attempt to determine the firmware version upon connection. Specify the firmware version if there is a connection issue. Options: 0, 1, 2
- PLCProgramChangeAction UnsignedInteger — Specify whether the driver will monitor the PLC project for changes. If a project change option is selected, it may reduce the driver’s performance. If Upload project is selected, read/writes to the PLC will be paused for the duration of the upload. If Switch to symbolic is selected, communication will be in symbolic mode. However, the next time the driver connects to the PLC, it will use logical mode. Options: 0, 1, 2
- description String — Optional free-text notes about this device, such as its physical location or purpose.
Request Body
GraphQL Query
mutation CreateDevice($input: CreateDeviceRequest!) {
CreateDevice(input: $input) {
ID
Name
DriverID
Description
}
}
Variables
{
"input": {
"Name": "My AB Logix Ethernet Device",
"Description": "",
"DriverID": "0170E3C7-3D54-4710-A8FA-F953AE626353",
"AliasTopics": false,
"Debug": false,
"MetaData": [],
"StoppedState": false,
"StatusRegister": null,
"Properties": [
{
"Key": "networkAddress",
"Value": "192.168.1.100"
},
{
"Key": "networkPort",
"Value": "502"
},
{
"Key": "route",
"Value": "1,0"
},
{
"Key": "accessMode",
"Value": "0"
},
{
"Key": "fwVersion",
"Value": "0"
},
{
"Key": "PLCProgramChangeAction",
"Value": "0"
},
{
"Key": "name",
"Value": "ab-logix_device"
},
{
"Key": "description",
"Value": ""
}
]
}
}
Response
Status: 200 OK
{
"data": {
"CreateDevice": {
"ID": "<generated-uuid>",
"Name": "My AB Logix Ethernet Device",
"DriverID": "0170E3C7-3D54-4710-A8FA-F953AE626353",
"Description": ""
}
}
}
Create Device - AB Logix Serial
POST {{edgeUrl}}/devicehub/v2
AB Logix Serial
| Prerequisites | No |
| Required fields | Device File Baud Rate Data Bits Stop Bits Parity PLC Type |
| Browse devices supported | No |
| Browse tags supported | Yes |
| Supported device models | Allen-Bradley CompactLogix Allen-Bradley ControlLogix Allen-Bradley FlexLogix Allen-Bradley Micro800 |
| Miscellaneous | Use PLC Type Compactlogix if connecting to ControlLogix series PLCs |
Driver ID: 6F794B0D-C363-41E1-9828-5DDB2E1C587E Group: Allen Bradley
Required properties:
- PLCType SignedInteger Options: 0, 1, 2
- deviceFile String — The serial port path used to communicate with the device (/dev/ttyS1, /dev/ttyUSB0, …). Must match a port available on the gateway host.
- name String — A unique, user-defined name for this device. Used to identify the device throughout the edge gateway, including in message broker topics and logs.
Optional properties:
- readTimeout SignedInteger — Read Timeout (ms)
- baudRate SignedInteger — The data transmission speed, in bits per second, used for serial communication. Must match the baud rate configured on the device. Options: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10
- dataBits SignedInteger — The number of data bits in each transmitted character (typically 7 or 8). Must match the device's serial configuration. Options: 0, 1, 2, 3
- parity SignedInteger — The error-checking method used for serial communication (None, Even, or Odd). Must match the device's configured parity setting. Options: 0, 1, 2
- stopBits SignedInteger — The number of stop bits used to signal the end of a character (typically 1 or 2). Must match the device's serial configuration. Options: 0, 1, 2
- description String — Optional free-text notes about this device, such as its physical location or purpose.
Request Body
GraphQL Query
mutation CreateDevice($input: CreateDeviceRequest!) {
CreateDevice(input: $input) {
ID
Name
DriverID
Description
}
}
Variables
{
"input": {
"Name": "My AB Logix Serial Device",
"Description": "",
"DriverID": "6F794B0D-C363-41E1-9828-5DDB2E1C587E",
"AliasTopics": false,
"Debug": false,
"MetaData": [],
"StoppedState": false,
"StatusRegister": null,
"Properties": [
{
"Key": "PLCType",
"Value": "0"
},
{
"Key": "readTimeout",
"Value": "1000"
},
{
"Key": "deviceFile",
"Value": "/dev/ttyUSB0"
},
{
"Key": "baudRate",
"Value": "0"
},
{
"Key": "dataBits",
"Value": "0"
},
{
"Key": "parity",
"Value": "0"
},
{
"Key": "stopBits",
"Value": "0"
},
{
"Key": "name",
"Value": "ab-logix-serial_device"
},
{
"Key": "description",
"Value": ""
}
]
}
}
Response
Status: 200 OK
{
"data": {
"CreateDevice": {
"ID": "<generated-uuid>",
"Name": "My AB Logix Serial Device",
"DriverID": "6F794B0D-C363-41E1-9828-5DDB2E1C587E",
"Description": ""
}
}
}
Create Device - AB Micro800 Ethernet
POST {{edgeUrl}}/devicehub/v2
AB Micro800 Ethernet
| Prerequisites | None |
| Required fields | Network address Network Port |
| Browse devices supported | No |
| Browse tags supported | Yes |
| Supported device models | Allen-Bradley Micro800 series |
| Miscellaneous | You may export tags from Connected Components Workbench and upload them to browse Program and UDT elements. FB elements are not supported. |
Driver ID: D654F142-8343-4354-B2AA-A838B93AF988 Group: Allen Bradley
Required properties:
- networkAddress String — The IP address of the device on the network.
- networkPort SignedInteger — The TCP or UDP port used to communicate with the device, depending on the protocol. Defaults to the standard port for the selected protocol but must match the port configured on the device.
- name String — A unique, user-defined name for this device. Used to identify the device throughout the edge gateway, including in message broker topics and logs.
Optional properties:
- globalVariablesCSV String — FTP path for CSV file exported from CCW
- description String — Optional free-text notes about this device, such as its physical location or purpose.
Request Body
GraphQL Query
mutation CreateDevice($input: CreateDeviceRequest!) {
CreateDevice(input: $input) {
ID
Name
DriverID
Description
}
}
Variables
{
"input": {
"Name": "My AB Micro800 Ethernet Device",
"Description": "",
"DriverID": "D654F142-8343-4354-B2AA-A838B93AF988",
"AliasTopics": false,
"Debug": false,
"MetaData": [],
"StoppedState": false,
"StatusRegister": null,
"Properties": [
{
"Key": "networkAddress",
"Value": "192.168.1.100"
},
{
"Key": "networkPort",
"Value": "502"
},
{
"Key": "globalVariablesCSV",
"Value": ""
},
{
"Key": "name",
"Value": "ab-micro800_device"
},
{
"Key": "description",
"Value": ""
}
]
}
}
Response
Status: 200 OK
{
"data": {
"CreateDevice": {
"ID": "<generated-uuid>",
"Name": "My AB Micro800 Ethernet Device",
"DriverID": "D654F142-8343-4354-B2AA-A838B93AF988",
"Description": ""
}
}
}
Create Device - ABB Robot Web Services
POST {{edgeUrl}}/devicehub/v2
ABB Robot Web Services Controller
| Browse devices supported | No |
| Browse tags supported | No |
| Driver Settings | > Server Connection Settings: Address, Port, Authentication, TLS |
| Common Request Settings: | |
| > Path: Root URL Path for all requests | |
| > Headers: Common HTTP Headers (JSON-encoded) | |
| > Path Params: Common HTTP Path Parameters (JSON-encoded) | |
| > Query Params: Common HTTP Query Parameters (Parameter-string or JSON-encoded) e.g. p1=xyz&p2=2 or {"p1":"xyz","p2":"2"} | |
| > WebSocket Timeout: Keepalive interval for websocket connections | |
| Tag Settings | Request Settings: |
| > Type: (GET, POST) | |
| > Path: Request URL Path, follows common path | |
| > Parameters Settings: Appends/Overwrites common parameters | |
| > Payload: HTTP request body, usually for POST-only requests | |
| > Response Parse Pattern: Target path within JSON response body (JSONPath encoded) e.g. $.fieldA.fieldB[0].xyz or $['field-a']['field-b'][0]['xyz'] | |
| > Allow Multiple Matches: When using wildcards in parse pattern, yield all matches (default: disabled, first-only) | |
| > Allow Empty Matches: When using wildcards in parse pattern, don't yield error when no matches are found (default: disabled, yield-error) | |
| Subscription Settings: | |
| > Resource: Target path, with optional field specification (e.g. "/rw/rapid/tasks/T_ROB1;excstate") | |
| > Message Parse Pattern: Default will attempt to unpack the most important information from the subscription payload | |
| > Parse Result Index: Index within parse pattern results | |
| > RobotStudio subscription payloads are always converted from XML to JSON | |
| > Each subscription creates a new session with the server. This may be limited. |
Driver ID: 97A7485B-816E-4F89-8155-48617608CC28 Group: Robot
Required properties:
- clientCertificate String — Client Certificate (PEM)
- username String — Username
- bearerToken String — Client Token
- networkAddress String — Server Hostname or IP
- networkPort SignedInteger — Server Port
- oauth2ClientID String — Client Identifier registered to the application
- oauth2TokenEndpoint String — Authorization Server URL
- clientPrivateKey String — Client Private Key (PEM)
- password String — Password
- name String — A unique, user-defined name for this device. Used to identify the device throughout the edge gateway, including in message broker topics and logs.
Optional properties:
- oauth2Scopes String — Access request scope(s) (space separated values)
- certificateAuthority String — CA Chain (PEM)
- pathParams String — Common HTTP Path Parameters (JSON)
- headers String — Common HTTP Headers (JSON)
- certificateVerification SignedInteger — Verify server certificate Options: 0, 1
- requestTimeout SignedInteger — Request timeout, msec
- requestRetryWaitMS SignedInteger — Pause between retries, msec
- authSchemeOverride String — Authorization header scheme/prefix override
- enableTLS SignedInteger — Enable TLS / HTTPS Options: 0, 1
- websocketTimeout SignedInteger — WebSocket Subscription Timeout, S
- queryParams String — Common HTTP Query Parameters (JSON or Parameter string)
- urlPath String — Common URL Path
- enableMutualTLS SignedInteger — Enable mTLS / Client Certificate Options: 0, 1
- oauth2ClientSecret String — Client Secret registered to the application
- requestRetryCount SignedInteger — Retry request count
- oauth2TokenParams String — Additional token endpoint parameters (JSON or Parameter string)
- authenticationType SignedInteger — Authentication Type Options: 0, 1, 2, 3, 4
- description String — Optional free-text notes about this device, such as its physical location or purpose.
Request Body
GraphQL Query
mutation CreateDevice($input: CreateDeviceRequest!) {
CreateDevice(input: $input) {
ID
Name
DriverID
Description
}
}
Variables
{
"input": {
"Name": "My ABB Robot Web Services Device",
"Description": "",
"DriverID": "97A7485B-816E-4F89-8155-48617608CC28",
"AliasTopics": false,
"Debug": false,
"MetaData": [],
"StoppedState": false,
"StatusRegister": null,
"Properties": [
{
"Key": "oauth2Scopes",
"Value": ""
},
{
"Key": "certificateAuthority",
"Value": ""
},
{
"Key": "clientCertificate",
"Value": "<certificate>"
},
{
"Key": "pathParams",
"Value": ""
},
{
"Key": "headers",
"Value": ""
},
{
"Key": "username",
"Value": "admin"
},
{
"Key": "certificateVerification",
"Value": "0"
},
{
"Key": "requestTimeout",
"Value": "2000"
},
{
"Key": "requestRetryWaitMS",
"Value": "100"
},
{
"Key": "bearerToken",
"Value": "password"
},
{
"Key": "authSchemeOverride",
"Value": ""
},
{
"Key": "networkAddress",
"Value": "192.168.1.100"
},
{
"Key": "enableTLS",
"Value": "1"
},
{
"Key": "websocketTimeout",
"Value": "30"
},
{
"Key": "networkPort",
"Value": "80"
},
{
"Key": "queryParams",
"Value": "json=1"
},
{
"Key": "urlPath",
"Value": "/example/path"
},
{
"Key": "oauth2ClientID",
"Value": "placeholder_oauth2clientid"
},
{
"Key": "enableMutualTLS",
"Value": "1"
},
{
"Key": "oauth2ClientSecret",
"Value": ""
},
{
"Key": "requestRetryCount",
"Value": "0"
},
{
"Key": "oauth2TokenEndpoint",
"Value": "/example/path"
},
{
"Key": "oauth2TokenParams",
"Value": ""
},
{
"Key": "clientPrivateKey",
"Value": "<certificate>"
},
{
"Key": "authenticationType",
"Value": "0"
},
{
"Key": "password",
"Value": "password"
},
{
"Key": "name",
"Value": "abb-robot-web_device"
},
{
"Key": "description",
"Value": ""
}
]
}
}
Response
Status: 200 OK
{
"data": {
"CreateDevice": {
"ID": "<generated-uuid>",
"Name": "My ABB Robot Web Services Device",
"DriverID": "97A7485B-816E-4F89-8155-48617608CC28",
"Description": ""
}
}
}
Create Device - ABB Robot Web Services (No TLS)
POST {{edgeUrl}}/devicehub/v2
ABB Robot Web Services Controller
| Browse devices supported | No |
| Browse tags supported | No |
| Driver Settings | > Server Connection Settings: Address, Port, Authentication, TLS |
| Common Request Settings: | |
| > Path: Root URL Path for all requests | |
| > Headers: Common HTTP Headers (JSON-encoded) | |
| > Path Params: Common HTTP Path Parameters (JSON-encoded) | |
| > Query Params: Common HTTP Query Parameters (Parameter-string or JSON-encoded) e.g. p1=xyz&p2=2 or {"p1":"xyz","p2":"2"} | |
| > WebSocket Timeout: Keepalive interval for websocket connections | |
| Tag Settings | Request Settings: |
| > Type: (GET, POST) | |
| > Path: Request URL Path, follows common path | |
| > Parameters Settings: Appends/Overwrites common parameters | |
| > Payload: HTTP request body, usually for POST-only requests | |
| > Response Parse Pattern: Target path within JSON response body (JSONPath encoded) e.g. $.fieldA.fieldB[0].xyz or $['field-a']['field-b'][0]['xyz'] | |
| > Allow Multiple Matches: When using wildcards in parse pattern, yield all matches (default: disabled, first-only) | |
| > Allow Empty Matches: When using wildcards in parse pattern, don't yield error when no matches are found (default: disabled, yield-error) | |
| Subscription Settings: | |
| > Resource: Target path, with optional field specification (e.g. "/rw/rapid/tasks/T_ROB1;excstate") | |
| > Message Parse Pattern: Default will attempt to unpack the most important information from the subscription payload | |
| > Parse Result Index: Index within parse pattern results | |
| > RobotStudio subscription payloads are always converted from XML to JSON | |
| > Each subscription creates a new session with the server. This may be limited. |
Driver ID: 97A7485B-816E-4F89-8155-48617608CC28 Group: Robot
Required properties:
- clientCertificate String — Client Certificate (PEM)
- username String — Username
- bearerToken String — Client Token
- networkAddress String — Server Hostname or IP
- networkPort SignedInteger — Server Port
- oauth2ClientID String — Client Identifier registered to the application
- oauth2TokenEndpoint String — Authorization Server URL
- clientPrivateKey String — Client Private Key (PEM)
- password String — Password
- name String — A unique, user-defined name for this device. Used to identify the device throughout the edge gateway, including in message broker topics and logs.
Optional properties:
- oauth2Scopes String — Access request scope(s) (space separated values)
- certificateAuthority String — CA Chain (PEM)
- pathParams String — Common HTTP Path Parameters (JSON)
- headers String — Common HTTP Headers (JSON)
- certificateVerification SignedInteger — Verify server certificate Options: 0, 1
- requestTimeout SignedInteger — Request timeout, msec
- requestRetryWaitMS SignedInteger — Pause between retries, msec
- authSchemeOverride String — Authorization header scheme/prefix override
- enableTLS SignedInteger — Enable TLS / HTTPS Options: 0, 1
- websocketTimeout SignedInteger — WebSocket Subscription Timeout, S
- queryParams String — Common HTTP Query Parameters (JSON or Parameter string)
- urlPath String — Common URL Path
- enableMutualTLS SignedInteger — Enable mTLS / Client Certificate Options: 0, 1
- oauth2ClientSecret String — Client Secret registered to the application
- requestRetryCount SignedInteger — Retry request count
- oauth2TokenParams String — Additional token endpoint parameters (JSON or Parameter string)
- authenticationType SignedInteger — Authentication Type Options: 0, 1, 2, 3, 4
- description String — Optional free-text notes about this device, such as its physical location or purpose.
Request Body
GraphQL Query
mutation CreateDevice($input: CreateDeviceRequest!) {
CreateDevice(input: $input) {
ID
Name
DriverID
Description
}
}
Variables
{
"input": {
"Name": "My ABB Robot Web Services Device (No TLS)",
"Description": "",
"DriverID": "97A7485B-816E-4F89-8155-48617608CC28",
"AliasTopics": false,
"Debug": false,
"MetaData": [],
"StoppedState": false,
"StatusRegister": null,
"Properties": [
{
"Key": "pathParams",
"Value": ""
},
{
"Key": "headers",
"Value": ""
},
{
"Key": "requestTimeout",
"Value": "2000"
},
{
"Key": "requestRetryWaitMS",
"Value": "100"
},
{
"Key": "networkAddress",
"Value": "192.168.1.100"
},
{
"Key": "enableTLS",
"Value": "0"
},
{
"Key": "websocketTimeout",
"Value": "30"
},
{
"Key": "networkPort",
"Value": "80"
},
{
"Key": "queryParams",
"Value": "json=1"
},
{
"Key": "urlPath",
"Value": "/example/path"
},
{
"Key": "requestRetryCount",
"Value": "0"
},
{
"Key": "authenticationType",
"Value": "0"
},
{
"Key": "name",
"Value": "abb-robot-web_device"
},
{
"Key": "description",
"Value": ""
}
]
}
}
Response
Status: 200 OK
{
"data": {
"CreateDevice": {
"ID": "<generated-uuid>",
"Name": "My ABB Robot Web Services Device (No TLS)",
"DriverID": "97A7485B-816E-4F89-8155-48617608CC28",
"Description": ""
}
}
}
Create Device - ABB Totalflow DB2 (Gen1.3)
POST {{edgeUrl}}/devicehub/v2
ABB Totalflow DB2 (Gen1.3)
| Prerequisites | None |
| Required fields | Network address Network Port |
| Browse devices supported | No |
| Browse tags supported | No |
| Supported device models | ABB Totalflow devices that support native DB2 protocol |
Driver ID: EFE0CCA0-E2C0-4BAC-A535-766ECE45F66D Group: ABB
Required properties:
- networkAddress String — IP Address of the device.
- networkPort SignedInteger — Network port of the device.
- name String — Device Name that describes your asset.
Optional properties:
- description String — Description of the device or an asset.
Request Body
GraphQL Query
mutation CreateDevice($input: CreateDeviceRequest!) {
CreateDevice(input: $input) {
ID
Name
DriverID
Description
}
}
Variables
{
"input": {
"Name": "My ABB Totalflow DB2 (Gen1.3) Device",
"Description": "",
"DriverID": "EFE0CCA0-E2C0-4BAC-A535-766ECE45F66D",
"AliasTopics": false,
"Debug": false,
"MetaData": [],
"StoppedState": false,
"StatusRegister": null,
"Properties": [
{
"Key": "description",
"Value": ""
},
{
"Key": "networkAddress",
"Value": "192.168.1.100"
},
{
"Key": "networkPort",
"Value": "502"
},
{
"Key": "name",
"Value": "ABB"
}
]
}
}
Response
Status: 200 OK
{
"data": {
"CreateDevice": {
"ID": "<generated-uuid>",
"Name": "My ABB Totalflow DB2 (Gen1.3) Device",
"DriverID": "EFE0CCA0-E2C0-4BAC-A535-766ECE45F66D",
"Description": ""
}
}
}
Create Device - ABB Totalflow DB2 Serial (Gen1.3)
POST {{edgeUrl}}/devicehub/v2
ABB Totalflow DB2 Serial (Gen1.3)
| Prerequisites | No |
| Required fields | Communication Port Baud Rate Data Bits Stop Bits Parity Station ID |
| Browse devices supported | No |
| Browse tags supported | No |
| Supported device models | ABB Totalflow devices that support native DB2 protocol |
Driver ID: 15E3CB87-6179-4306-B68E-43038FE02127 Group: ABB
Required properties:
- stopBits SignedInteger — Serial communication stopbits parameter.
- name String — Device Name that describes your asset.
- stationId SignedInteger — Station id/ slot number
- baudRate SignedInteger — Serial communication baudrate parameter.
- dataBits SignedInteger — Serial communication databits parameter.
- parity SignedInteger — serial communication parity parameter. Options: 0, 1, 2
- deviceFile String — Local Serial connection file path.
Optional properties:
- description String — Description of the device or an asset.
Request Body
GraphQL Query
mutation CreateDevice($input: CreateDeviceRequest!) {
CreateDevice(input: $input) {
ID
Name
DriverID
Description
}
}
Variables
{
"input": {
"Name": "My ABB Totalflow DB2 Serial (Gen1.3) Device",
"Description": "",
"DriverID": "15E3CB87-6179-4306-B68E-43038FE02127",
"AliasTopics": false,
"Debug": false,
"MetaData": [],
"StoppedState": false,
"StatusRegister": null,
"Properties": [
{
"Key": "stopBits",
"Value": "1"
},
{
"Key": "name",
"Value": "ABB"
},
{
"Key": "description",
"Value": ""
},
{
"Key": "stationId",
"Value": "1"
},
{
"Key": "baudRate",
"Value": "9600"
},
{
"Key": "dataBits",
"Value": "8"
},
{
"Key": "parity",
"Value": "0"
},
{
"Key": "deviceFile",
"Value": "/dev/ttyUSB0"
}
]
}
}
Response
Status: 200 OK
{
"data": {
"CreateDevice": {
"ID": "<generated-uuid>",
"Name": "My ABB Totalflow DB2 Serial (Gen1.3) Device",
"DriverID": "15E3CB87-6179-4306-B68E-43038FE02127",
"Description": ""
}
}
}
Create Device - AutomationDirect Productivity Series Ethernet
POST {{edgeUrl}}/devicehub/v2
AutomationDirect Productivity Series Ethernet
Experimental
| Prerequisites | None |
| Required fields | Network address Network Port Tags CSV |
| Browse devices supported | No |
| Browse tags supported | Yes |
| Supported device models | AutomationDirect P3-550 |
| Miscellaneous | You may export tags from Productivity Suite Programming Software and upload them to browse tags |
Driver ID: 257321A4-3069-4DF4-95F0-1599777C6FB4 Group: AutomationDirect
Required properties:
- networkAddress String — The IP address of the device on the network.
- networkPort SignedInteger — The TCP or UDP port used to communicate with the device, depending on the protocol. Defaults to the standard port for the selected protocol but must match the port configured on the device.
- name String — A unique, user-defined name for this device. Used to identify the device throughout the edge gateway, including in message broker topics and logs.
Optional properties:
- tagsCSV String — Name of the exported .csv tag file from Productivity Suite software which was uploaded to /ftp-data/devicehub/
- readTimeout SignedInteger — Read Timeout (ms)
- description String — Optional free-text notes about this device, such as its physical location or purpose.
Request Body
GraphQL Query
mutation CreateDevice($input: CreateDeviceRequest!) {
CreateDevice(input: $input) {
ID
Name
DriverID
Description
}
}
Variables
{
"input": {
"Name": "My AutomationDirect Productivity Series Ethernet Device",
"Description": "",
"DriverID": "257321A4-3069-4DF4-95F0-1599777C6FB4",
"AliasTopics": false,
"Debug": false,
"MetaData": [],
"StoppedState": false,
"StatusRegister": null,
"Properties": [
{
"Key": "tagsCSV",
"Value": ""
},
{
"Key": "networkAddress",
"Value": "192.168.1.100"
},
{
"Key": "networkPort",
"Value": "502"
},
{
"Key": "readTimeout",
"Value": "3000"
},
{
"Key": "name",
"Value": "ad-productivity-series-ethernet_device"
},
{
"Key": "description",
"Value": ""
}
]
}
}
Response
Status: 200 OK
{
"data": {
"CreateDevice": {
"ID": "<generated-uuid>",
"Name": "My AutomationDirect Productivity Series Ethernet Device",
"DriverID": "257321A4-3069-4DF4-95F0-1599777C6FB4",
"Description": ""
}
}
}
Create Device - B&R PVI Ethernet
POST {{edgeUrl}}/devicehub/v2
B&R PVI Ethernet Driver
| Required fields: | > Network Address |
| > Network Port | |
| Browse devices supported: | No |
| Browse tags supported: | Yes |
Driver ID: AA0D80DF-21C0-4C57-9320-C74CD64FF0BA Group: B&R
Required properties:
- networkAddress String — The IP address of the device on the network.
- networkPort SignedInteger — The TCP or UDP port used to communicate with the device, depending on the protocol. Defaults to the standard port for the selected protocol but must match the port configured on the device.
- name String — A unique, user-defined name for this device. Used to identify the device throughout the edge gateway, including in message broker topics and logs.
Optional properties:
- description String — Optional free-text notes about this device, such as its physical location or purpose.
Request Body
GraphQL Query
mutation CreateDevice($input: CreateDeviceRequest!) {
CreateDevice(input: $input) {
ID
Name
DriverID
Description
}
}
Variables
{
"input": {
"Name": "My B&R PVI Ethernet Device",
"Description": "",
"DriverID": "AA0D80DF-21C0-4C57-9320-C74CD64FF0BA",
"AliasTopics": false,
"Debug": false,
"MetaData": [],
"StoppedState": false,
"StatusRegister": null,
"Properties": [
{
"Key": "networkAddress",
"Value": "192.168.1.100"
},
{
"Key": "networkPort",
"Value": "502"
},
{
"Key": "name",
"Value": "bnr_pvi_ethernet_device"
},
{
"Key": "description",
"Value": ""
}
]
}
}
Response
Status: 200 OK
{
"data": {
"CreateDevice": {
"ID": "<generated-uuid>",
"Name": "My B&R PVI Ethernet Device",
"DriverID": "AA0D80DF-21C0-4C57-9320-C74CD64FF0BA",
"Description": ""
}
}
}
Create Device - BacnetIP
POST {{edgeUrl}}/devicehub/v2
BACnet IP Driver
The driver implements the Client for communications protocol for Building Automation and Control (BAC) networks that leverage the ASHRAE, ANSI, and ISO 16484-5 standard protocol. The driver supports the IP data link layer.
Features:
- Discovering devices in the network (make sure devices to discover can receive the broadcast IP packets)
- Browsing the address space of the device
- Reading and writing "Present Value" (Property Identifier 85, The current value of the object)
- Read uses the services ReadProperty & ReadPropertyMultiple
- Write uses the services WriteProperty & WritePropertyMultiple
Driver ID: 83935618-A9BB-11EB-BCBC-0242AC130002 Group: BACnet
Required properties:
- networkAddress String — The IP address of the device on the network.
- networkPort SignedInteger — The TCP or UDP port used to communicate with the device, depending on the protocol. Defaults to the standard port for the selected protocol but must match the port configured on the device.
- targetDeviceID SignedInteger — Target device ID
- name String — A unique, user-defined name for this device. Used to identify the device throughout the edge gateway, including in message broker topics and logs.
Optional properties:
- destinationAddress String — Destination address in hex string format.
- destinationNetwork SignedInteger — Destination network.
- instanceDeviceId SignedInteger — Instance device ID. If 0 will be random.
- description String — Optional free-text notes about this device, such as its physical location or purpose.
Request Body
GraphQL Query
mutation CreateDevice($input: CreateDeviceRequest!) {
CreateDevice(input: $input) {
ID
Name
DriverID
Description
}
}
Variables
{
"input": {
"Name": "My BacnetIP Device",
"Description": "",
"DriverID": "83935618-A9BB-11EB-BCBC-0242AC130002",
"AliasTopics": false,
"Debug": false,
"MetaData": [],
"StoppedState": false,
"StatusRegister": null,
"Properties": [
{
"Key": "destinationAddress",
"Value": ""
},
{
"Key": "destinationNetwork",
"Value": "0"
},
{
"Key": "instanceDeviceId",
"Value": "0"
},
{
"Key": "networkAddress",
"Value": "192.168.1.100"
},
{
"Key": "networkPort",
"Value": "502"
},
{
"Key": "targetDeviceID",
"Value": "0"
},
{
"Key": "name",
"Value": "bacnet_ip_cpp_device"
},
{
"Key": "description",
"Value": ""
}
]
}
}
Response
Status: 200 OK
{
"data": {
"CreateDevice": {
"ID": "<generated-uuid>",
"Name": "My BacnetIP Device",
"DriverID": "83935618-A9BB-11EB-BCBC-0242AC130002",
"Description": ""
}
}
}
Create Device - BacnetMSTP
POST {{edgeUrl}}/devicehub/v2
BACnet MS/TP Driver
The driver implements the Client for communications protocol for Building Automation and Control (BAC) networks that leverage the ASHRAE, ANSI, and ISO 16484-5 standard protocol. The driver supports the MS/TP data link layer.
## Features:
* Browsing the address space of the device
* Reading and writing properties of the objects
Driver ID: 83935618-A9BB-11EB-BCBC-0242AC132222 Group: BACnet
Required properties:
- DeviceFile String — The serial port path used to communicate with the device (/dev/ttyS1, /dev/ttyUSB0, …). Must match a port available on the gateway host.
- ResponseTimeout SignedInteger — Response timeout, ms
- name String — A unique, user-defined name for this device. Used to identify the device throughout the edge gateway, including in message broker topics and logs.
Optional properties:
- BaudRate String — The data transmission speed, in bits per second, used for serial communication. Must match the baud rate configured on the device. Options: 0, 1, 2, 3, 4, 5, 6, 7
- DataBits String — The number of data bits in each transmitted character (typically 7 or 8). Must match the device's serial configuration. Options: 0, 1, 2, 3
- Parity String — The error-checking method used for serial communication (None, Even, or Odd). Must match the device's configured parity setting. Options: 0, 1, 2
- StopBits String — The number of stop bits used to signal the end of a character (typically 1 or 2). Must match the device's serial configuration. Options: 0, 1, 2
- description String — Optional free-text notes about this device, such as its physical location or purpose.
Request Body
GraphQL Query
mutation CreateDevice($input: CreateDeviceRequest!) {
CreateDevice(input: $input) {
ID
Name
DriverID
Description
}
}
Variables
{
"input": {
"Name": "My BacnetMSTP Device",
"Description": "",
"DriverID": "83935618-A9BB-11EB-BCBC-0242AC132222",
"AliasTopics": false,
"Debug": false,
"MetaData": [],
"StoppedState": false,
"StatusRegister": null,
"Properties": [
{
"Key": "BaudRate",
"Value": "0"
},
{
"Key": "DataBits",
"Value": "0"
},
{
"Key": "DeviceFile",
"Value": "/dev/ttyUSB0"
},
{
"Key": "Parity",
"Value": "0"
},
{
"Key": "ResponseTimeout",
"Value": "1000"
},
{
"Key": "StopBits",
"Value": "0"
},
{
"Key": "name",
"Value": "bacnet_mstp_cpp_device"
},
{
"Key": "description",
"Value": ""
}
]
}
}
Response
Status: 200 OK
{
"data": {
"CreateDevice": {
"ID": "<generated-uuid>",
"Name": "My BacnetMSTP Device",
"DriverID": "83935618-A9BB-11EB-BCBC-0242AC132222",
"Description": ""
}
}
}
Create Device - Beckhoff TwinCAT2 Ethernet Absolute (Gen1.3)
POST {{edgeUrl}}/devicehub/v2
Beckhoff TwinCAT2 Ethernet Absolute
| Required fields: | > Network Address |
| > Network Port | |
| > ADS Port | |
| > AMS ID | |
| > Local AMS ID | |
| Browse devices supported: | No |
| Browse tags supported: | No |
| Supported device models: | Beckhoff TwinCAT2 |
| Access Mode: | Absolute |
| Device settings: | > Max Request Tags: Maximum number of tags included per reqest |
| > Max Array Browse Size: Maximum number of array elems displayed in browse results | |
| Register settings: | > CommunicationMode: 0 for Polling/Solicited, 1 for Subscription/Unsolicited |
| > Address: Index Offset | |
| > Group: Index Group Override | |
| Miscellaneous: | |
| > DATE: format -> "2001-01-02" | |
| > DATEANDTIME: format -> "2001-01-02 12:34:56.999" | |
| > TIME: format -> "1h 23m 4s 567ms" | |
| > LTIME: format -> "1h 23m 4s 567ms 8us 9ns" | |
| > TIMEOFDAY: format -> "12:34:56" |
Driver ID: CBB394D8-42AB-42AC-84CD-480458835DAE Group: Beckhoff
Required properties:
- name String — Device Name that describes your asset.
- adsPort SignedInteger — ADS Port for the Twincat device.
- amsId String — AMS Net ID for the Twincat device.
- localAmsId String — Local AMS NET ID for the Twincat device.
- networkAddress String — IP Address of the Twincat device.
- networkPort SignedInteger — Network port of the Twincat device.
Optional properties:
- description String — Description of the device or an asset.
- maxRequestTags SignedInteger — Maximum Tags/Symbols per Request
- maxArrayBrowseSize SignedInteger — Maximum Array Elements shown during Browse
Request Body
GraphQL Query
mutation CreateDevice($input: CreateDeviceRequest!) {
CreateDevice(input: $input) {
ID
Name
DriverID
Description
}
}
Variables
{
"input": {
"Name": "My Beckhoff TwinCAT2 Ethernet Absolute (Gen1.3) Device",
"Description": "",
"DriverID": "CBB394D8-42AB-42AC-84CD-480458835DAE",
"AliasTopics": false,
"Debug": false,
"MetaData": [],
"StoppedState": false,
"StatusRegister": null,
"Properties": [
{
"Key": "name",
"Value": "Device Name"
},
{
"Key": "description",
"Value": ""
},
{
"Key": "adsPort",
"Value": "502"
},
{
"Key": "amsId",
"Value": "0.0.0.0.1.1"
},
{
"Key": "localAmsId",
"Value": "0.0.0.0.1.1"
},
{
"Key": "networkAddress",
"Value": "192.168.1.100"
},
{
"Key": "networkPort",
"Value": "502"
},
{
"Key": "maxRequestTags",
"Value": "500"
},
{
"Key": "maxArrayBrowseSize",
"Value": "1000"
}
]
}
}
Response
Status: 200 OK
{
"data": {
"CreateDevice": {
"ID": "<generated-uuid>",
"Name": "My Beckhoff TwinCAT2 Ethernet Absolute (Gen1.3) Device",
"DriverID": "CBB394D8-42AB-42AC-84CD-480458835DAE",
"Description": ""
}
}
}
Create Device - Beckhoff TwinCAT3 Ethernet Absolute (Gen1.3)
POST {{edgeUrl}}/devicehub/v2
Beckhoff TwinCAT3 Ethernet Absolute
| Required fields: | > Network Address |
| > Network Port | |
| > ADS Port | |
| > AMS ID | |
| > Local AMS ID | |
| Browse devices supported: | No |
| Browse tags supported: | No |
| Supported device models: | Beckhoff TwinCAT3 |
| Access Mode: | Absolute |
| Device settings: | > Max Request Tags: Maximum number of tags included per reqest |
| > Max Array Browse Size: Maximum number of array elems displayed in browse results | |
| Register settings: | > CommunicationMode: 0 for Polling/Solicited, 1 for Subscription/Unsolicited |
| > Address: Index Offset | |
| > Group: Index Group Override | |
| Miscellaneous: | |
| > DATE: format -> "2001-01-02" | |
| > DATEANDTIME: format -> "2001-01-02 12:34:56.999" | |
| > TIME: format -> "1h 23m 4s 567ms" | |
| > LTIME: format -> "1h 23m 4s 567ms 8us 9ns" | |
| > TIMEOFDAY: format -> "12:34:56" |
Driver ID: DABE4A08-6858-4A0C-B94E-A3BB45FE8147 Group: Beckhoff
Required properties:
- adsPort SignedInteger — ADS Port for the Twincat device.
- name String — Device Name that describes your asset.
- networkPort SignedInteger — Network port of the Twincat device.
- amsId String — AMS Net ID for the Twincat device.
- localAmsId String — Local AMS NET ID for the Twincat device.
- networkAddress String — IP Address of the Twincat device.
Optional properties:
- maxArrayBrowseSize SignedInteger — Maximum Array Elements shown during Browse
- description String — Description of the device or an asset.
- maxRequestTags SignedInteger — Maximum Tags/Symbols per Request
Request Body
GraphQL Query
mutation CreateDevice($input: CreateDeviceRequest!) {
CreateDevice(input: $input) {
ID
Name
DriverID
Description
}
}
Variables
{
"input": {
"Name": "My Beckhoff TwinCAT3 Ethernet Absolute (Gen1.3) Device",
"Description": "",
"DriverID": "DABE4A08-6858-4A0C-B94E-A3BB45FE8147",
"AliasTopics": false,
"Debug": false,
"MetaData": [],
"StoppedState": false,
"StatusRegister": null,
"Properties": [
{
"Key": "adsPort",
"Value": "502"
},
{
"Key": "maxArrayBrowseSize",
"Value": "1000"
},
{
"Key": "name",
"Value": "Device Name"
},
{
"Key": "description",
"Value": ""
},
{
"Key": "networkPort",
"Value": "502"
},
{
"Key": "amsId",
"Value": "0.0.0.0.1.1"
},
{
"Key": "localAmsId",
"Value": "0.0.0.0.1.1"
},
{
"Key": "maxRequestTags",
"Value": "500"
},
{
"Key": "networkAddress",
"Value": "192.168.1.100"
}
]
}
}
Response
Status: 200 OK
{
"data": {
"CreateDevice": {
"ID": "<generated-uuid>",
"Name": "My Beckhoff TwinCAT3 Ethernet Absolute (Gen1.3) Device",
"DriverID": "DABE4A08-6858-4A0C-B94E-A3BB45FE8147",
"Description": ""
}
}
}
Create Device - Beckhoff TwinCAT3 Ethernet Symbolic (Gen1.3)
POST {{edgeUrl}}/devicehub/v2
Beckhoff TwinCAT3 Ethernet Symbolic
| Required fields: | > Network Address |
| > Network Port | |
| > ADS Port | |
| > AMS ID | |
| > Local AMS ID | |
| Browse devices supported: | No |
| Browse tags supported: | Yes |
| Supported device models: | Beckhoff TwinCAT3 |
| Access Mode: | Symbolic |
| > Absolute address accepted in the form ("[\<index_group#>\<index_offset#>]" | |
| Device settings: | > Max Request Tags: Maximum number of tags included per reqest |
| > Max Array Browse Size: Maximum number of array elems displayed in browse results | |
| Register settings: | > CommunicationMode: 0 for Polling/Solicited, 1 for Subscription/Unsolicited |
| Miscellaneous: | |
| > DATE: format -> "2001-01-02" | |
| > DATEANDTIME: format -> "2001-01-02 12:34:56.999" | |
| > TIME: format -> "1h 23m 4s 567ms" | |
| > LTIME: format -> "1h 23m 4s 567ms 8us 9ns" | |
| > TIMEOFDAY: format -> "12:34:56" |
Driver ID: 9AA30E17-BE0A-4B7E-BFB8-CE09D4188021 Group: Beckhoff
Required properties:
- name String — Device Name that describes your asset.
- networkPort SignedInteger — Network port of the Twincat device.
- adsPort SignedInteger — ADS Port for the Twincat device.
- localAmsId String — Local AMS NET ID for the Twincat device.
- networkAddress String — IP Address of the Twincat device.
- amsId String — AMS Net ID for the Twincat device.
Optional properties:
- maxArrayBrowseSize SignedInteger — Maximum Array Elements shown during Browse
- description String — Description of the device or an asset.
- maxRequestTags SignedInteger — Maximum Tags/Symbols per Request
Request Body
GraphQL Query
mutation CreateDevice($input: CreateDeviceRequest!) {
CreateDevice(input: $input) {
ID
Name
DriverID
Description
}
}
Variables
{
"input": {
"Name": "My Beckhoff TwinCAT3 Ethernet Symbolic (Gen1.3) Device",
"Description": "",
"DriverID": "9AA30E17-BE0A-4B7E-BFB8-CE09D4188021",
"AliasTopics": false,
"Debug": false,
"MetaData": [],
"StoppedState": false,
"StatusRegister": null,
"Properties": [
{
"Key": "name",
"Value": "Device Name"
},
{
"Key": "networkPort",
"Value": "502"
},
{
"Key": "adsPort",
"Value": "502"
},
{
"Key": "localAmsId",
"Value": "0.0.0.0.1.1"
},
{
"Key": "maxArrayBrowseSize",
"Value": "1000"
},
{
"Key": "description",
"Value": ""
},
{
"Key": "networkAddress",
"Value": "192.168.1.100"
},
{
"Key": "amsId",
"Value": "0.0.0.0.1.1"
},
{
"Key": "maxRequestTags",
"Value": "500"
}
]
}
}
Response
Status: 200 OK
{
"data": {
"CreateDevice": {
"ID": "<generated-uuid>",
"Name": "My Beckhoff TwinCAT3 Ethernet Symbolic (Gen1.3) Device",
"DriverID": "9AA30E17-BE0A-4B7E-BFB8-CE09D4188021",
"Description": ""
}
}
}
Create Device - Brother Speedio Ethernet (Gen1.3)
POST {{edgeUrl}}/devicehub/v2
Brother Speedio Ethernet
Driver ID: 99C745DC-4BB3-4408-B966-58805E56FECC Group: Brother Industries, Ltd
Required properties:
- name String — Device Name that describes your asset.
- networkPort SignedInteger — Network port of the device.
- networkAddress String — IP Address of the device.
Optional properties:
- description String — Description of the device or an asset.
Request Body
GraphQL Query
mutation CreateDevice($input: CreateDeviceRequest!) {
CreateDevice(input: $input) {
ID
Name
DriverID
Description
}
}
Variables
{
"input": {
"Name": "My Brother Speedio Ethernet (Gen1.3) Device",
"Description": "",
"DriverID": "99C745DC-4BB3-4408-B966-58805E56FECC",
"AliasTopics": false,
"Debug": false,
"MetaData": [],
"StoppedState": false,
"StatusRegister": null,
"Properties": [
{
"Key": "name",
"Value": "Brother Device"
},
{
"Key": "description",
"Value": ""
},
{
"Key": "networkPort",
"Value": "502"
},
{
"Key": "networkAddress",
"Value": "192.168.1.100"
}
]
}
}
Response
Status: 200 OK
{
"data": {
"CreateDevice": {
"ID": "<generated-uuid>",
"Name": "My Brother Speedio Ethernet (Gen1.3) Device",
"DriverID": "99C745DC-4BB3-4408-B966-58805E56FECC",
"Description": ""
}
}
}
Create Device - Brother TC Ethernet (Gen1.3)
POST {{edgeUrl}}/devicehub/v2
Brother TC Ethernet (Gen1.3)
Experimental
| Prerequisites | None |
| Required fields | Network address Network Port |
| Browse devices supported | No |
| Browse tags supported | No |
| Supported device models | Brother TC Ethernet series |
Driver ID: 5CAE67E3-C73D-4465-A515-AC65CFC91AAE Group: Brother Industries, Ltd
Required properties:
- name String — Device Name that describes your asset.
- networkPort SignedInteger — Network port of the device.
- networkAddress String — IP Address of the device.
Optional properties:
- description String — Description of the device or an asset.
Request Body
GraphQL Query
mutation CreateDevice($input: CreateDeviceRequest!) {
CreateDevice(input: $input) {
ID
Name
DriverID
Description
}
}
Variables
{
"input": {
"Name": "My Brother TC Ethernet (Gen1.3) Device",
"Description": "",
"DriverID": "5CAE67E3-C73D-4465-A515-AC65CFC91AAE",
"AliasTopics": false,
"Debug": false,
"MetaData": [],
"StoppedState": false,
"StatusRegister": null,
"Properties": [
{
"Key": "name",
"Value": "Brother Device"
},
{
"Key": "description",
"Value": ""
},
{
"Key": "networkPort",
"Value": "502"
},
{
"Key": "networkAddress",
"Value": "192.168.1.100"
}
]
}
}
Response
Status: 200 OK
{
"data": {
"CreateDevice": {
"ID": "<generated-uuid>",
"Name": "My Brother TC Ethernet (Gen1.3) Device",
"DriverID": "5CAE67E3-C73D-4465-A515-AC65CFC91AAE",
"Description": ""
}
}
}
Create Device - CAN Raw (Gen1.3)
POST {{edgeUrl}}/devicehub/v2
CAN Raw (Gen1.3)
| Prerequisites | Gateway must have CAN Bus port |
| Required fields | Interface Channel Bit Rate |
| Browse devices supported | No |
| Browse tags supported | No |
| Supported device models | CANopen publishing protocol only |
Driver ID: 6A849294-D48A-4CE7-977F-96B1B6499A19 Group: CAN Bus
Required properties:
- name String — Device Name that describes your asset.
- interface String — Local interface of the SocketCAN compatible device.
- channel String — Local data channel of the CAN Bus device.
- bitRate SignedInteger — CAN Bus bitrate parameter.
Optional properties:
- description String — Description of the device or an asset.
Request Body
GraphQL Query
mutation CreateDevice($input: CreateDeviceRequest!) {
CreateDevice(input: $input) {
ID
Name
DriverID
Description
}
}
Variables
{
"input": {
"Name": "My CAN Raw (Gen1.3) Device",
"Description": "",
"DriverID": "6A849294-D48A-4CE7-977F-96B1B6499A19",
"AliasTopics": false,
"Debug": false,
"MetaData": [],
"StoppedState": false,
"StatusRegister": null,
"Properties": [
{
"Key": "name",
"Value": "Can Device"
},
{
"Key": "description",
"Value": ""
},
{
"Key": "interface",
"Value": "socketcan"
},
{
"Key": "channel",
"Value": "can0"
},
{
"Key": "bitRate",
"Value": "1000000"
}
]
}
}
Response
Status: 200 OK
{
"data": {
"CreateDevice": {
"ID": "<generated-uuid>",
"Name": "My CAN Raw (Gen1.3) Device",
"DriverID": "6A849294-D48A-4CE7-977F-96B1B6499A19",
"Description": ""
}
}
}
Create Device - CIP Ethernet
POST {{edgeUrl}}/devicehub/v2
CIP Ethernet
| Prerequisites | None |
| Required fields | Network address Port |
| Browse devices supported | No. Use DeviceHub > Asset Discovery |
| Browse tags supported | Yes |
| Miscellaneous | Use this driver to read CIP objects that are addressable by Class, Instance, and Attribute |
Different vendors may use different names for the unsigned and signed integer types. Make sure to select the correct data type based on the size of the type. To get array values within an Attribute, use the "Attribute" register name and select one of the array value types. The bit[] type publishes in order of low bit to high bit, low byte to high byte. To get an array of values of over multiple Attributes, use the "Attribute Range" register name and enter Start Attribute and Number of Attriutes to read. You can read a string or an array of one data type. |
Driver ID: 60B722BA-4539-4D5D-9D2F-7C63F7FADBFB Group: ODVA
Required properties:
- networkAddress String — The IP address of the device on the network.
- networkPort SignedInteger — The TCP or UDP port used to communicate with the device, depending on the protocol. Defaults to the standard port for the selected protocol but must match the port configured on the device.
- name String — A unique, user-defined name for this device. Used to identify the device throughout the edge gateway, including in message broker topics and logs.
Optional properties:
- readTimeout SignedInteger — Read Timeout (ms)
- serviceType UnsignedInteger Options: 0, 1
- description String — Optional free-text notes about this device, such as its physical location or purpose.
Request Body
GraphQL Query
mutation CreateDevice($input: CreateDeviceRequest!) {
CreateDevice(input: $input) {
ID
Name
DriverID
Description
}
}
Variables
{
"input": {
"Name": "My CIP Ethernet Device",
"Description": "",
"DriverID": "60B722BA-4539-4D5D-9D2F-7C63F7FADBFB",
"AliasTopics": false,
"Debug": false,
"MetaData": [],
"StoppedState": false,
"StatusRegister": null,
"Properties": [
{
"Key": "networkAddress",
"Value": "192.168.1.100"
},
{
"Key": "networkPort",
"Value": "502"
},
{
"Key": "readTimeout",
"Value": "3000"
},
{
"Key": "serviceType",
"Value": "0"
},
{
"Key": "name",
"Value": "cip-ethernet_device"
},
{
"Key": "description",
"Value": ""
}
]
}
}
Response
Status: 200 OK
{
"data": {
"CreateDevice": {
"ID": "<generated-uuid>",
"Name": "My CIP Ethernet Device",
"DriverID": "60B722BA-4539-4D5D-9D2F-7C63F7FADBFB",
"Description": ""
}
}
}
Create Device - CODESYS V2 Ethernet Absolute (Gen1.3)
POST {{edgeUrl}}/devicehub/v2
CODESYS V2 Ethernet Absolute (Gen1.3)
| Prerequisites | None |
| Required fields | Network address Network Port |
| Browse devices supported | No |
| Browse tags supported | No |
| Supported device models | CODESYS V2 absolute addressing |
Driver ID: 05FA3FB9-7FB1-45FB-8160-B2606F5DABFC Group: CodeSys Devices
Required properties:
- name String — Device Name that describes your asset.
- networkPort SignedInteger — Network port of the Codesys system.
- networkAddress String — IP Address of the Codesys system.
Optional properties:
- description String — Description of the device or an asset.
Request Body
GraphQL Query
mutation CreateDevice($input: CreateDeviceRequest!) {
CreateDevice(input: $input) {
ID
Name
DriverID
Description
}
}
Variables
{
"input": {
"Name": "My CODESYS V2 Ethernet Absolute (Gen1.3) Device",
"Description": "",
"DriverID": "05FA3FB9-7FB1-45FB-8160-B2606F5DABFC",
"AliasTopics": false,
"Debug": false,
"MetaData": [],
"StoppedState": false,
"StatusRegister": null,
"Properties": [
{
"Key": "name",
"Value": "Codesys Device"
},
{
"Key": "description",
"Value": ""
},
{
"Key": "networkPort",
"Value": "502"
},
{
"Key": "networkAddress",
"Value": "192.168.1.100"
}
]
}
}
Response
Status: 200 OK
{
"data": {
"CreateDevice": {
"ID": "<generated-uuid>",
"Name": "My CODESYS V2 Ethernet Absolute (Gen1.3) Device",
"DriverID": "05FA3FB9-7FB1-45FB-8160-B2606F5DABFC",
"Description": ""
}
}
}
Create Device - CODESYS V2 Ethernet Symbolic (Gen1.3)
POST {{edgeUrl}}/devicehub/v2
CODESYS V2 Ethernet Symbolic (Gen1.3)
| Prerequisites | None |
| Required fields | Network address Network Port Path Protocol Addressing Mode ByteOrder |
| Browse devices supported | No |
| Browse tags supported | Yes |
| Supported device models | Devices support CODESYS V2.3 symbolic address |
Driver ID: 94B2C05D-8998-4755-A0B6-B3EFAC078A2D Group: CodeSys Devices
Required properties:
- networkPort SignedInteger — Network port of the Codesys system.
- Byteorder SignedInteger — Level 7 Motorola Byte Order. Options: 0, 1
- name String — Device Name that describes your asset.
- path String — Register file path of device.
- networkAddress String — IP Address of the Codesys system.
- addressingMode SignedInteger — Offline/Online. Options: 0, 1
- protocol SignedInteger — Protocol. Options: 0, 1, 2
Optional properties:
- description String — Description of the device or an asset.
Request Body
GraphQL Query
mutation CreateDevice($input: CreateDeviceRequest!) {
CreateDevice(input: $input) {
ID
Name
DriverID
Description
}
}
Variables
{
"input": {
"Name": "My CODESYS V2 Ethernet Symbolic (Gen1.3) Device",
"Description": "",
"DriverID": "94B2C05D-8998-4755-A0B6-B3EFAC078A2D",
"AliasTopics": false,
"Debug": false,
"MetaData": [],
"StoppedState": false,
"StatusRegister": null,
"Properties": [
{
"Key": "description",
"Value": ""
},
{
"Key": "networkPort",
"Value": "502"
},
{
"Key": "Byteorder",
"Value": "1"
},
{
"Key": "name",
"Value": "Codesys V2 Device"
},
{
"Key": "path",
"Value": "/example/path"
},
{
"Key": "networkAddress",
"Value": "192.168.1.100"
},
{
"Key": "addressingMode",
"Value": "0"
},
{
"Key": "protocol",
"Value": "1"
}
]
}
}
Response
Status: 200 OK
{
"data": {
"CreateDevice": {
"ID": "<generated-uuid>",
"Name": "My CODESYS V2 Ethernet Symbolic (Gen1.3) Device",
"DriverID": "94B2C05D-8998-4755-A0B6-B3EFAC078A2D",
"Description": ""
}
}
}
Create Device - CSV Stream
POST {{edgeUrl}}/devicehub/v2
CSV Stream Driver
| Browse devices supported: | No |
| Browse tags supported: | No |
| Driver Settings: | > |
| Tag Settings: | |
| Tag Types: | |
| > STRING: Published payload is string type |
Driver ID: 17B16A98-C42B-4C46-80F7-8BA06A1F6B3C Group: Generic
Required properties:
- Port SignedInteger — Server Port
- Terminator String — Line Terminator
- Certificate String — Certificate (PEM)
- Address String — Server Address
- PrivateKey String — Private Key (PEM)
- CAChain String — Certificate Authority (PEM)
- Interface String — Server Interface
- name String — A unique, user-defined name for this device. Used to identify the device throughout the edge gateway, including in message broker topics and logs.
Optional properties:
- Role SignedInteger — Transport Role Options: 0
- MinTLS SignedInteger — Minimum TLS Version Options: 0, 1, 2, 3
- MaxPDU SignedInteger — Maximum Message Size
- Delimiter String — Field Delimiter
- EnableTLS SignedInteger — Enable TLS Options: 0, 1
- ClientAuth SignedInteger — Enable Client Authentication (mTLS) Options: 0, 1
- Timeout SignedInteger — Connection Timeout (ms)
- Transport SignedInteger — Transport Type Options: 0
- description String — Optional free-text notes about this device, such as its physical location or purpose.
Request Body
GraphQL Query
mutation CreateDevice($input: CreateDeviceRequest!) {
CreateDevice(input: $input) {
ID
Name
DriverID
Description
}
}
Variables
{
"input": {
"Name": "My CSV Stream Device",
"Description": "",
"DriverID": "17B16A98-C42B-4C46-80F7-8BA06A1F6B3C",
"AliasTopics": false,
"Debug": false,
"MetaData": [],
"StoppedState": false,
"StatusRegister": null,
"Properties": [
{
"Key": "Role",
"Value": "0"
},
{
"Key": "Port",
"Value": "1234"
},
{
"Key": "MinTLS",
"Value": "2"
},
{
"Key": "MaxPDU",
"Value": "65536"
},
{
"Key": "Terminator",
"Value": "\\n"
},
{
"Key": "Certificate",
"Value": "<certificate>"
},
{
"Key": "Delimiter",
"Value": ","
},
{
"Key": "Address",
"Value": "192.168.1.100"
},
{
"Key": "EnableTLS",
"Value": "1"
},
{
"Key": "ClientAuth",
"Value": "1"
},
{
"Key": "PrivateKey",
"Value": "<certificate>"
},
{
"Key": "CAChain",
"Value": "<certificate>"
},
{
"Key": "Interface",
"Value": "0.0.0.0"
},
{
"Key": "Timeout",
"Value": "10000"
},
{
"Key": "Transport",
"Value": "0"
},
{
"Key": "name",
"Value": "csv-stream_device"
},
{
"Key": "description",
"Value": ""
}
]
}
}
Response
Status: 200 OK
{
"data": {
"CreateDevice": {
"ID": "<generated-uuid>",
"Name": "My CSV Stream Device",
"DriverID": "17B16A98-C42B-4C46-80F7-8BA06A1F6B3C",
"Description": ""
}
}
}
Create Device - CSV Stream (No TLS)
POST {{edgeUrl}}/devicehub/v2
CSV Stream Driver
| Browse devices supported: | No |
| Browse tags supported: | No |
| Driver Settings: | > |
| Tag Settings: | |
| Tag Types: | |
| > STRING: Published payload is string type |
Driver ID: 17B16A98-C42B-4C46-80F7-8BA06A1F6B3C Group: Generic
Required properties:
- Port SignedInteger — Server Port
- Terminator String — Line Terminator
- Certificate String — Certificate (PEM)
- Address String — Server Address
- PrivateKey String — Private Key (PEM)
- CAChain String — Certificate Authority (PEM)
- Interface String — Server Interface
- name String — A unique, user-defined name for this device. Used to identify the device throughout the edge gateway, including in message broker topics and logs.
Optional properties:
- Role SignedInteger — Transport Role Options: 0
- MinTLS SignedInteger — Minimum TLS Version Options: 0, 1, 2, 3
- MaxPDU SignedInteger — Maximum Message Size
- Delimiter String — Field Delimiter
- EnableTLS SignedInteger — Enable TLS Options: 0, 1
- ClientAuth SignedInteger — Enable Client Authentication (mTLS) Options: 0, 1
- Timeout SignedInteger — Connection Timeout (ms)
- Transport SignedInteger — Transport Type Options: 0
- description String — Optional free-text notes about this device, such as its physical location or purpose.
Request Body
GraphQL Query
mutation CreateDevice($input: CreateDeviceRequest!) {
CreateDevice(input: $input) {
ID
Name
DriverID
Description
}
}
Variables
{
"input": {
"Name": "My CSV Stream Device (No TLS)",
"Description": "",
"DriverID": "17B16A98-C42B-4C46-80F7-8BA06A1F6B3C",
"AliasTopics": false,
"Debug": false,
"MetaData": [],
"StoppedState": false,
"StatusRegister": null,
"Properties": [
{
"Key": "Role",
"Value": "0"
},
{
"Key": "Port",
"Value": "1234"
},
{
"Key": "MaxPDU",
"Value": "65536"
},
{
"Key": "Terminator",
"Value": "\\n"
},
{
"Key": "Delimiter",
"Value": ","
},
{
"Key": "Address",
"Value": "192.168.1.100"
},
{
"Key": "EnableTLS",
"Value": "1"
},
{
"Key": "Timeout",
"Value": "10000"
},
{
"Key": "Transport",
"Value": "0"
},
{
"Key": "name",
"Value": "csv-stream_device"
},
{
"Key": "description",
"Value": ""
}
]
}
}
Response
Status: 200 OK
{
"data": {
"CreateDevice": {
"ID": "<generated-uuid>",
"Name": "My CSV Stream Device (No TLS)",
"DriverID": "17B16A98-C42B-4C46-80F7-8BA06A1F6B3C",
"Description": ""
}
}
}
Create Device - Cutler-Hammer ELC Ethernet
POST {{edgeUrl}}/devicehub/v2
Cutler-Hammer ELC Ethernet Driver
| Required fields: | > Connection Settings (TCP) |
| Browse devices supported: | No |
| Browse tags supported: | No |
| Supported device models: | ELC-PV28NNDR |
| Register Settings: |
Driver ID: 6BF05DB2-2BD5-4780-83BE-ACB878EFC042 Group: Cutler-Hammer
Required properties:
- networkPort SignedInteger — The TCP or UDP port used to communicate with the device, depending on the protocol. Defaults to the standard port for the selected protocol but must match the port configured on the device.
- stationId SignedInteger — This is a station no of device.
- networkAddress String — The IP address of the device on the network.
- name String — A unique, user-defined name for this device. Used to identify the device throughout the edge gateway, including in message broker topics and logs.
Optional properties:
- requestTimeoutMs SignedInteger — Response Timeout (ms)
- Zero-Based Addressing SignedInteger Options: 0, 1
- overrideStationID SignedInteger Options: 0, 1
- maxRequestSize SignedInteger — Maximum block size retrieved per request (# bytes)
- description String — Optional free-text notes about this device, such as its physical location or purpose.
Request Body
GraphQL Query
mutation CreateDevice($input: CreateDeviceRequest!) {
CreateDevice(input: $input) {
ID
Name
DriverID
Description
}
}
Variables
{
"input": {
"Name": "My Cutler-Hammer ELC Ethernet Device",
"Description": "",
"DriverID": "6BF05DB2-2BD5-4780-83BE-ACB878EFC042",
"AliasTopics": false,
"Debug": false,
"MetaData": [],
"StoppedState": false,
"StatusRegister": null,
"Properties": [
{
"Key": "requestTimeoutMs",
"Value": "1000"
},
{
"Key": "networkPort",
"Value": "502"
},
{
"Key": "stationId",
"Value": "1"
},
{
"Key": "Zero-Based Addressing",
"Value": "0"
},
{
"Key": "networkAddress",
"Value": "192.168.1.100"
},
{
"Key": "overrideStationID",
"Value": "0"
},
{
"Key": "maxRequestSize",
"Value": "512"
},
{
"Key": "name",
"Value": "cutler-hammer-elc-ethernet_device"
},
{
"Key": "description",
"Value": ""
}
]
}
}
Response
Status: 200 OK
{
"data": {
"CreateDevice": {
"ID": "<generated-uuid>",
"Name": "My Cutler-Hammer ELC Ethernet Device",
"DriverID": "6BF05DB2-2BD5-4780-83BE-ACB878EFC042",
"Description": ""
}
}
}
Create Device - Cutler-Hammer ELC Serial
POST {{edgeUrl}}/devicehub/v2
Cutler-Hammer ELC Serial Driver
| Required fields: | > Connection Settings (Serial) |
| Browse devices supported: | No |
| Browse tags supported: | No |
| Supported device models: | ELC-PV28NNDR |
| Register Settings: |
Driver ID: 77155198-9657-456C-99AB-D10F55322193 Group: Cutler-Hammer
Required properties:
- baudRate SignedInteger — The data transmission speed, in bits per second, used for serial communication. Must match the baud rate configured on the device. Options: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10
- stopBits SignedInteger — The number of stop bits used to signal the end of a character (typically 1 or 2). Must match the device's serial configuration.
- deviceFile String — The serial port path used to communicate with the device (/dev/ttyS1, /dev/ttyUSB0, …). Must match a port available on the gateway host.
- dataBits SignedInteger — The number of data bits in each transmitted character (typically 7 or 8). Must match the device's serial configuration.
- parity SignedInteger — The error-checking method used for serial communication (None, Even, or Odd). Must match the device's configured parity setting. Options: 0, 1, 2
- stationId SignedInteger — This is a station no of device.
- name String — A unique, user-defined name for this device. Used to identify the device throughout the edge gateway, including in message broker topics and logs.
Optional properties:
- Zero-Based Addressing SignedInteger Options: 0, 1
- maxRequestSize SignedInteger — Maximum block size retrieved per request (# bytes)
- requestTimeoutMs SignedInteger — Response Timeout (ms)
- description String — Optional free-text notes about this device, such as its physical location or purpose.
Request Body
GraphQL Query
mutation CreateDevice($input: CreateDeviceRequest!) {
CreateDevice(input: $input) {
ID
Name
DriverID
Description
}
}
Variables
{
"input": {
"Name": "My Cutler-Hammer ELC Serial Device",
"Description": "",
"DriverID": "77155198-9657-456C-99AB-D10F55322193",
"AliasTopics": false,
"Debug": false,
"MetaData": [],
"StoppedState": false,
"StatusRegister": null,
"Properties": [
{
"Key": "baudRate",
"Value": "0"
},
{
"Key": "stopBits",
"Value": "1"
},
{
"Key": "deviceFile",
"Value": "/dev/ttyUSB0"
},
{
"Key": "dataBits",
"Value": "7"
},
{
"Key": "parity",
"Value": "0"
},
{
"Key": "Zero-Based Addressing",
"Value": "0"
},
{
"Key": "maxRequestSize",
"Value": "512"
},
{
"Key": "stationId",
"Value": "0"
},
{
"Key": "requestTimeoutMs",
"Value": "1000"
},
{
"Key": "name",
"Value": "cutler-hammer-elc-serial_device"
},
{
"Key": "description",
"Value": ""
}
]
}
}
Response
Status: 200 OK
{
"data": {
"CreateDevice": {
"ID": "<generated-uuid>",
"Name": "My Cutler-Hammer ELC Serial Device",
"DriverID": "77155198-9657-456C-99AB-D10F55322193",
"Description": ""
}
}
}
Create Device - Danfoss FC/TSC
POST {{edgeUrl}}/devicehub/v2
Danfoss FC/TSC
Driver ID: 28B130B3-530E-4644-99EF-4FDC06C758DF Group: Danfoss
Required properties:
- networkAddress String — VFD's IP Address
- networkPort SignedInteger — TCP/IP port
- name String — A unique, user-defined name for this device. Used to identify the device throughout the edge gateway, including in message broker topics and logs.
Optional properties:
- description String — Optional free-text notes about this device, such as its physical location or purpose.
Request Body
GraphQL Query
mutation CreateDevice($input: CreateDeviceRequest!) {
CreateDevice(input: $input) {
ID
Name
DriverID
Description
}
}
Variables
{
"input": {
"Name": "My Danfoss FC/TSC Device",
"Description": "",
"DriverID": "28B130B3-530E-4644-99EF-4FDC06C758DF",
"AliasTopics": false,
"Debug": false,
"MetaData": [],
"StoppedState": false,
"StatusRegister": null,
"Properties": [
{
"Key": "networkAddress",
"Value": "192.168.1.100"
},
{
"Key": "networkPort",
"Value": "502"
},
{
"Key": "name",
"Value": "danfoss-fc-tsc_device"
},
{
"Key": "description",
"Value": ""
}
]
}
}
Response
Status: 200 OK
{
"data": {
"CreateDevice": {
"ID": "<generated-uuid>",
"Name": "My Danfoss FC/TSC Device",
"DriverID": "28B130B3-530E-4644-99EF-4FDC06C758DF",
"Description": ""
}
}
}
Create Device - Delta DVP Ethernet (Gen1.3)
POST {{edgeUrl}}/devicehub/v2
Delta DVP Ethernet (Gen1.3)
| Prerequisites | No |
| Required fields | Network Address Port |
| Browse devices supported | No |
| Browse tags supported | No |
| Supported device models | Delta DVP Series |
Driver ID: 9F48C353-AEA4-4CE3-AE15-686A557CEFB5 Group: Delta PLC
Required properties:
- networkPort SignedInteger — Network port of the device.
- networkAddress String — IP Address of the device.
- name String — Device Name that describes your asset.
Optional properties:
- description String — Description of the device or an asset.
Request Body
GraphQL Query
mutation CreateDevice($input: CreateDeviceRequest!) {
CreateDevice(input: $input) {
ID
Name
DriverID
Description
}
}
Variables
{
"input": {
"Name": "My Delta DVP Ethernet (Gen1.3) Device",
"Description": "",
"DriverID": "9F48C353-AEA4-4CE3-AE15-686A557CEFB5",
"AliasTopics": false,
"Debug": false,
"MetaData": [],
"StoppedState": false,
"StatusRegister": null,
"Properties": [
{
"Key": "networkPort",
"Value": "502"
},
{
"Key": "networkAddress",
"Value": "192.168.1.100"
},
{
"Key": "name",
"Value": "delta device"
},
{
"Key": "description",
"Value": ""
}
]
}
}
Response
Status: 200 OK
{
"data": {
"CreateDevice": {
"ID": "<generated-uuid>",
"Name": "My Delta DVP Ethernet (Gen1.3) Device",
"DriverID": "9F48C353-AEA4-4CE3-AE15-686A557CEFB5",
"Description": ""
}
}
}
Create Device - DeviceHub Agent
POST {{edgeUrl}}/devicehub/v2
DeviceHub Agent
| Prerequisites: | Install DeviceHub Agent and connect to an OPC Classic Server |
| Required fields: | Network Address Network Port Data Validity Period |
| Browse devices supported: | No |
| Browse tags supported: | Yes |
Driver ID: 6C3031AE-E667-4849-A302-6D074FE5DFD3 Group: OPCUA
Required properties:
- networkPort SignedInteger — Listen port
- dataValidityPeriod SignedInteger — The time period after which the data become invalid
- networkAddress String — Listen host (Caution! If unsure set it to 0.0.0.0)
- name String — A unique, user-defined name for this device. Used to identify the device throughout the edge gateway, including in message broker topics and logs.
Optional properties:
- description String — Optional free-text notes about this device, such as its physical location or purpose.
Request Body
GraphQL Query
mutation CreateDevice($input: CreateDeviceRequest!) {
CreateDevice(input: $input) {
ID
Name
DriverID
Description
}
}
Variables
{
"input": {
"Name": "My DeviceHub Agent Device",
"Description": "",
"DriverID": "6C3031AE-E667-4849-A302-6D074FE5DFD3",
"AliasTopics": false,
"Debug": false,
"MetaData": [],
"StoppedState": false,
"StatusRegister": null,
"Properties": [
{
"Key": "networkPort",
"Value": "41250"
},
{
"Key": "dataValidityPeriod",
"Value": "60"
},
{
"Key": "networkAddress",
"Value": "0.0.0.0"
},
{
"Key": "name",
"Value": "devicehub-agent_device"
},
{
"Key": "description",
"Value": ""
}
]
}
}
Response
Status: 200 OK
{
"data": {
"CreateDevice": {
"ID": "<generated-uuid>",
"Name": "My DeviceHub Agent Device",
"DriverID": "6C3031AE-E667-4849-A302-6D074FE5DFD3",
"Description": ""
}
}
}
Create Device - DNP3 Ethernet
POST {{edgeUrl}}/devicehub/v2
DNP3 Ethernet
| Prerequisites | None |
| Required fields | Network address Network Port Master Address Outstation Address Class 1/2/3 Poll Period |
| Browse devices supported | No |
| Browse tags supported | Yes |
| Supported device models | Emerson FB3000/1200 |
| Miscellaneous | Validated with Emerson devices only |
Driver ID: 96B7A2BE-1EA8-4DC0-8809-EBF867ADFFFF Group: Emerson
Required properties:
- class1PollPeriod SignedInteger
- class2PollPeriod SignedInteger
- class3PollPeriod SignedInteger
- networkAddress String — Device IP Address
- networkPort SignedInteger — TCP/IP Port
- masterAddress SignedInteger — Master Station Address
- outstationAddress SignedInteger — DNP3 Outstation Address
- name String — A unique, user-defined name for this device. Used to identify the device throughout the edge gateway, including in message broker topics and logs.
Optional properties:
- enableTimeSync SignedInteger Options: 0, 1
- description String — Optional free-text notes about this device, such as its physical location or purpose.
Request Body
GraphQL Query
mutation CreateDevice($input: CreateDeviceRequest!) {
CreateDevice(input: $input) {
ID
Name
DriverID
Description
}
}
Variables
{
"input": {
"Name": "My DNP3 Ethernet Device",
"Description": "",
"DriverID": "96B7A2BE-1EA8-4DC0-8809-EBF867ADFFFF",
"AliasTopics": false,
"Debug": false,
"MetaData": [],
"StoppedState": false,
"StatusRegister": null,
"Properties": [
{
"Key": "class1PollPeriod",
"Value": "5"
},
{
"Key": "class2PollPeriod",
"Value": "5"
},
{
"Key": "class3PollPeriod",
"Value": "5"
},
{
"Key": "enableTimeSync",
"Value": "0"
},
{
"Key": "networkAddress",
"Value": "192.168.1.100"
},
{
"Key": "networkPort",
"Value": "502"
},
{
"Key": "masterAddress",
"Value": "0"
},
{
"Key": "outstationAddress",
"Value": "1"
},
{
"Key": "name",
"Value": "dnp3-ethernet_device"
},
{
"Key": "description",
"Value": ""
}
]
}
}
Response
Status: 200 OK
{
"data": {
"CreateDevice": {
"ID": "<generated-uuid>",
"Name": "My DNP3 Ethernet Device",
"DriverID": "96B7A2BE-1EA8-4DC0-8809-EBF867ADFFFF",
"Description": ""
}
}
}
Create Device - DNP3 Ethernet with FB Extensions
POST {{edgeUrl}}/devicehub/v2
DNP3 Ethernet with FB Extensions
| Required fields: | > Network Address |
| > Network Port | |
| > Master Address | |
| > Outstation Address | |
| > Class 1/2/3 Poll Period | |
| Browse devices supported: | No |
| Browse tags supported: | Yes |
| Supported devices: | DNP3-compatible RTUs |
| Miscellaneous: | > Does not yet support File Transfer or SAv5 |
| > Supports Emerson's DNP3 tunneling method for Emerson FBx RTUs only |
Driver ID: 2FBB1709-E94F-4244-BFC8-779C4D504ADA Group: Emerson
Required properties:
- masterAddress SignedInteger — Master Station Address
- networkAddress String — The IP address of the device on the network.
- networkPort SignedInteger — The TCP or UDP port used to communicate with the device, depending on the protocol. Defaults to the standard port for the selected protocol but must match the port configured on the device.
- outstationAddress SignedInteger — DNP3 Outstation Address
- name String — A unique, user-defined name for this device. Used to identify the device throughout the edge gateway, including in message broker topics and logs.
Optional properties:
- class123PollPeriod SignedInteger — Class123 Polling period
- enableTimeSync SignedInteger — Enable Time Sync Options: 0, 1
- password String — Password
- user String
- description String — Optional free-text notes about this device, such as its physical location or purpose.
Request Body
GraphQL Query
mutation CreateDevice($input: CreateDeviceRequest!) {
CreateDevice(input: $input) {
ID
Name
DriverID
Description
}
}
Variables
{
"input": {
"Name": "My DNP3 Ethernet with FB Extensions Device",
"Description": "",
"DriverID": "2FBB1709-E94F-4244-BFC8-779C4D504ADA",
"AliasTopics": false,
"Debug": false,
"MetaData": [],
"StoppedState": false,
"StatusRegister": null,
"Properties": [
{
"Key": "class123PollPeriod",
"Value": "30"
},
{
"Key": "enableTimeSync",
"Value": "0"
},
{
"Key": "masterAddress",
"Value": "0"
},
{
"Key": "networkAddress",
"Value": "192.168.1.100"
},
{
"Key": "networkPort",
"Value": "502"
},
{
"Key": "outstationAddress",
"Value": "1"
},
{
"Key": "password",
"Value": ""
},
{
"Key": "user",
"Value": ""
},
{
"Key": "name",
"Value": "DNP3 Ethernet with FB Extensions_device"
},
{
"Key": "description",
"Value": ""
}
]
}
}
Response
Status: 200 OK
{
"data": {
"CreateDevice": {
"ID": "<generated-uuid>",
"Name": "My DNP3 Ethernet with FB Extensions Device",
"DriverID": "2FBB1709-E94F-4244-BFC8-779C4D504ADA",
"Description": ""
}
}
}
Create Device - DNP3 Master
POST {{edgeUrl}}/devicehub/v2
DNP3 Master Driver
| Required fields: | > Network Address |
| > Network Port | |
| > Master Address | |
| > Outstation Address | |
| > Class 1/2/3 Poll Period | |
| Browse devices supported: | No |
| Browse tags supported: | Yes |
| Supported devices: | DNP3-compatible RTUs |
| Miscellaneous: | > Does not yet support File Transfer or SAv5 |
| > Supports Emerson's DNP3 tunneling method for Emerson FBx RTUs only |
Driver ID: 12EC6276-32E0-41C1-812B-FA9746ECF42F Group: DNP3
Required properties:
- masterAddress SignedInteger — Master Station Address
- networkAddress String — The IP address of the device on the network.
- networkPort SignedInteger — The TCP or UDP port used to communicate with the device, depending on the protocol. Defaults to the standard port for the selected protocol but must match the port configured on the device.
- outstationAddress SignedInteger — DNP3 Outstation Address
- name String — A unique, user-defined name for this device. Used to identify the device throughout the edge gateway, including in message broker topics and logs.
Optional properties:
- class123PollPeriod SignedInteger — Class123 Polling period
- enableTimeSync SignedInteger — Enable Time Sync Options: 0, 1
- description String — Optional free-text notes about this device, such as its physical location or purpose.
Request Body
GraphQL Query
mutation CreateDevice($input: CreateDeviceRequest!) {
CreateDevice(input: $input) {
ID
Name
DriverID
Description
}
}
Variables
{
"input": {
"Name": "My DNP3 Master Device",
"Description": "",
"DriverID": "12EC6276-32E0-41C1-812B-FA9746ECF42F",
"AliasTopics": false,
"Debug": false,
"MetaData": [],
"StoppedState": false,
"StatusRegister": null,
"Properties": [
{
"Key": "class123PollPeriod",
"Value": "30"
},
{
"Key": "enableTimeSync",
"Value": "0"
},
{
"Key": "masterAddress",
"Value": "0"
},
{
"Key": "networkAddress",
"Value": "192.168.1.100"
},
{
"Key": "networkPort",
"Value": "502"
},
{
"Key": "outstationAddress",
"Value": "1"
},
{
"Key": "name",
"Value": "DNP3_Master_device"
},
{
"Key": "description",
"Value": ""
}
]
}
}
Response
Status: 200 OK
{
"data": {
"CreateDevice": {
"ID": "<generated-uuid>",
"Name": "My DNP3 Master Device",
"DriverID": "12EC6276-32E0-41C1-812B-FA9746ECF42F",
"Description": ""
}
}
}
Create Device - EBC Ethernet
POST {{edgeUrl}}/devicehub/v2
AutomationDirect EBC
| Prerequisites | None |
| Required fields | Network address Network Port |
| Browse devices supported | No |
| Browse tags supported | No |
| Supported device models | AutomationDirect Terminator I/O |
Driver ID: 386981A0-FB2A-447C-93A6-9373D82AA32A Group: AutomationDirect
Required properties:
- networkAddress String — The IP address of the device on the network.
- networkPort SignedInteger — The TCP or UDP port used to communicate with the device, depending on the protocol. Defaults to the standard port for the selected protocol but must match the port configured on the device.
- name String — A unique, user-defined name for this device. Used to identify the device throughout the edge gateway, including in message broker topics and logs.
Optional properties:
- readTimeout SignedInteger — Read Timeout (ms)
- description String — Optional free-text notes about this device, such as its physical location or purpose.
Request Body
GraphQL Query
mutation CreateDevice($input: CreateDeviceRequest!) {
CreateDevice(input: $input) {
ID
Name
DriverID
Description
}
}
Variables
{
"input": {
"Name": "My EBC Ethernet Device",
"Description": "",
"DriverID": "386981A0-FB2A-447C-93A6-9373D82AA32A",
"AliasTopics": false,
"Debug": false,
"MetaData": [],
"StoppedState": false,
"StatusRegister": null,
"Properties": [
{
"Key": "networkAddress",
"Value": "192.168.1.100"
},
{
"Key": "networkPort",
"Value": "502"
},
{
"Key": "readTimeout",
"Value": "1000"
},
{
"Key": "name",
"Value": "ebc-ethernet_device"
},
{
"Key": "description",
"Value": ""
}
]
}
}
Response
Status: 200 OK
{
"data": {
"CreateDevice": {
"ID": "<generated-uuid>",
"Name": "My EBC Ethernet Device",
"DriverID": "386981A0-FB2A-447C-93A6-9373D82AA32A",
"Description": ""
}
}
}
Create Device - ELC Serial (Gen1.3)
POST {{edgeUrl}}/devicehub/v2
ELC Serial (Gen1.3)
| Prerequisites | No |
| Required fields | Communication Port Baud Rate Data Bits Stop Bits Parity |
| Browse devices supported | No |
| Browse tags supported | No |
| Supported device models | Cutler-Hammer ELC model PV28 Series |
Driver ID: E48B9CBE-DBBB-420C-BDF0-8BAED607DFE0 Group: Cutler-Hammer
Required properties:
- baudRate SignedInteger — Serial communication baudrate parameter.
- parity SignedInteger — Serial communication parity parameter Options: 0, 1, 2
- name String — Device Name that describes your asset.
- deviceFile String — Local Serial connection file path.
- dataBits SignedInteger — Serial communication databits parameter.
- stopBits SignedInteger — Serial communication stopbits parameter.
Optional properties:
- description String — Description of the device or an asset.
Request Body
GraphQL Query
mutation CreateDevice($input: CreateDeviceRequest!) {
CreateDevice(input: $input) {
ID
Name
DriverID
Description
}
}
Variables
{
"input": {
"Name": "My ELC Serial (Gen1.3) Device",
"Description": "",
"DriverID": "E48B9CBE-DBBB-420C-BDF0-8BAED607DFE0",
"AliasTopics": false,
"Debug": false,
"MetaData": [],
"StoppedState": false,
"StatusRegister": null,
"Properties": [
{
"Key": "description",
"Value": ""
},
{
"Key": "baudRate",
"Value": "9600"
},
{
"Key": "parity",
"Value": "0"
},
{
"Key": "name",
"Value": "delta device"
},
{
"Key": "deviceFile",
"Value": "/dev/ttyS0"
},
{
"Key": "dataBits",
"Value": "7"
},
{
"Key": "stopBits",
"Value": "1"
}
]
}
}
Response
Status: 200 OK
{
"data": {
"CreateDevice": {
"ID": "<generated-uuid>",
"Name": "My ELC Serial (Gen1.3) Device",
"DriverID": "E48B9CBE-DBBB-420C-BDF0-8BAED607DFE0",
"Description": ""
}
}
}
Create Device - Enron Modbus
POST {{edgeUrl}}/devicehub/v2
Enron Modbus
| Required fields (Serial transport) | Device File Baud Rate Data Bits Stop Bits Parity |
| Required fields (TCP/IP transport) | Network Address Network Port Connection timeout |
| Browse devices supported | No |
| Browse tags supported | No |
Driver ID: 410EFF34-68C9-4630-AB8D-A8E438995FD3 Group: Modbus
Required properties:
- protocolMode SignedInteger — Protocol Mode Options: 0, 1
- requestTimeoutMs SignedInteger — Request timeout, msec
- networkAddress String — PLC IP
- networkPort SignedInteger — PLC Port
- overrideStationID SignedInteger — Override registers' Station ID setting Options: 0, 1
- bytesAndWordsOrder SignedInteger — Bytes And Words Order Options: 0, 1, 2, 3
- overrideBWOrder SignedInteger — Override registers' "Bytes And Words Order" setting Options: 0, 1
- protocolBaseYear UnsignedInteger — Base year for date conversion
- transportType SignedInteger — Transport Type Options: 0, 1
- connectionTimeoutSec SignedInteger — Connection timeout, sec
- deviceFile String — The serial port path used to communicate with the device (/dev/ttyS1, /dev/ttyUSB0, …). Must match a port available on the gateway host.
- stationID SignedInteger — Station ID
- name String — A unique, user-defined name for this device. Used to identify the device throughout the edge gateway, including in message broker topics and logs.
Optional properties:
- dataBits SignedInteger — The number of data bits in each transmitted character (typically 7 or 8). Must match the device's serial configuration. Options: 0, 1, 2, 3
- parity SignedInteger — The error-checking method used for serial communication (None, Even, or Odd). Must match the device's configured parity setting. Options: 0, 1, 2
- stopBits SignedInteger — The number of stop bits used to signal the end of a character (typically 1 or 2). Must match the device's serial configuration. Options: 0, 1, 2
- retryRequestCount SignedInteger — Retry request count
- pauseBetweenRetriesMs SignedInteger — Pause between retries, msec
- baudRate SignedInteger — The data transmission speed, in bits per second, used for serial communication. Must match the baud rate configured on the device. Options: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10
- description String — Optional free-text notes about this device, such as its physical location or purpose.
Request Body
GraphQL Query
mutation CreateDevice($input: CreateDeviceRequest!) {
CreateDevice(input: $input) {
ID
Name
DriverID
Description
}
}
Variables
{
"input": {
"Name": "My Enron Modbus Device",
"Description": "",
"DriverID": "410EFF34-68C9-4630-AB8D-A8E438995FD3",
"AliasTopics": false,
"Debug": false,
"MetaData": [],
"StoppedState": false,
"StatusRegister": null,
"Properties": [
{
"Key": "protocolMode",
"Value": "0"
},
{
"Key": "requestTimeoutMs",
"Value": "2000"
},
{
"Key": "networkAddress",
"Value": "192.168.1.100"
},
{
"Key": "networkPort",
"Value": "502"
},
{
"Key": "overrideStationID",
"Value": "0"
},
{
"Key": "bytesAndWordsOrder",
"Value": "0"
},
{
"Key": "dataBits",
"Value": "0"
},
{
"Key": "parity",
"Value": "0"
},
{
"Key": "overrideBWOrder",
"Value": "0"
},
{
"Key": "protocolBaseYear",
"Value": "2000"
},
{
"Key": "transportType",
"Value": "0"
},
{
"Key": "stopBits",
"Value": "0"
},
{
"Key": "connectionTimeoutSec",
"Value": "5"
},
{
"Key": "retryRequestCount",
"Value": "0"
},
{
"Key": "pauseBetweenRetriesMs",
"Value": "0"
},
{
"Key": "baudRate",
"Value": "0"
},
{
"Key": "deviceFile",
"Value": "/dev/ttyUSB0"
},
{
"Key": "stationID",
"Value": "1"
},
{
"Key": "name",
"Value": "Enron-Modbus_device"
},
{
"Key": "description",
"Value": ""
}
]
}
}
Response
Status: 200 OK
{
"data": {
"CreateDevice": {
"ID": "<generated-uuid>",
"Name": "My Enron Modbus Device",
"DriverID": "410EFF34-68C9-4630-AB8D-A8E438995FD3",
"Description": ""
}
}
}
Create Device - EUROMAP 63
POST {{edgeUrl}}/devicehub/v2
EUROMAP 63
| Prerequisites | Configure the mount point in System/External Storage. Disable the "Read Only" option. |
| Required fields | Mounted Folder Path Cyclic Shot/Time |
| Browse devices supported | No |
| Browse tags supported | Yes |
| Supported device models | IMMs which support EUROMAP 63 |
Driver ID: D9EB6EC4-6A99-4E26-8358-1C3A1B9A8078 Group: Euromap63
Required properties:
- name String — This is a Device Name.
Optional properties:
- sessionDir String — Communication Sessions are initiated by placing Session Request files in a
particular Directory
- sessionMin SignedInteger
- sessionMax SignedInteger
- sessionTimeout SignedInteger
- datFileTimeout SignedInteger
- keepFiles SignedInteger — If enabled, the driver will not delete RSP and DAT files for
troubleshooting Options: 0, 1
- description String — This is a description of device.
Request Body
GraphQL Query
mutation CreateDevice($input: CreateDeviceRequest!) {
CreateDevice(input: $input) {
ID
Name
DriverID
Description
}
}
Variables
{
"input": {
"Name": "My EUROMAP 63 Device",
"Description": "",
"DriverID": "D9EB6EC4-6A99-4E26-8358-1C3A1B9A8078",
"AliasTopics": false,
"Debug": false,
"MetaData": [],
"StoppedState": false,
"StatusRegister": null,
"Properties": [
{
"Key": "sessionDir",
"Value": "/data/euromap63"
},
{
"Key": "sessionMin",
"Value": "1"
},
{
"Key": "sessionMax",
"Value": "4"
},
{
"Key": "sessionTimeout",
"Value": "10"
},
{
"Key": "datFileTimeout",
"Value": "60"
},
{
"Key": "keepFiles",
"Value": "0"
},
{
"Key": "name",
"Value": "euromap63_device"
},
{
"Key": "description",
"Value": ""
}
]
}
}
Response
Status: 200 OK
{
"data": {
"CreateDevice": {
"ID": "<generated-uuid>",
"Name": "My EUROMAP 63 Device",
"DriverID": "D9EB6EC4-6A99-4E26-8358-1C3A1B9A8078",
"Description": ""
}
}
}
Create Device - Excel (Gen1.3)
POST {{edgeUrl}}/devicehub/v2
Excel (Gen1.3)
| Prerequisites | Enable the FTP server and upload your Excel file to /ftp-data/devicehub/ |
| Required fields | Path |
| Browse devices supported | No |
| Browse tags supported | No |
| Miscellaneous | This is a read-only driver |
Driver ID: 7AC52EDC-EBA9-4669-82CF-8EA99323E697 Group: Excel
Required properties:
- name String — Device Name that describes your asset.
- path String — Path to Excel file.
Optional properties:
- description String — Description of the device or an asset.
- cellPublishingOption SignedInteger — Cell Publishing Option parameter. Options: 0, 1
Request Body
GraphQL Query
mutation CreateDevice($input: CreateDeviceRequest!) {
CreateDevice(input: $input) {
ID
Name
DriverID
Description
}
}
Variables
{
"input": {
"Name": "My Excel (Gen1.3) Device",
"Description": "",
"DriverID": "7AC52EDC-EBA9-4669-82CF-8EA99323E697",
"AliasTopics": false,
"Debug": false,
"MetaData": [],
"StoppedState": false,
"StatusRegister": null,
"Properties": [
{
"Key": "name",
"Value": "Excel"
},
{
"Key": "description",
"Value": ""
},
{
"Key": "path",
"Value": "/example/path"
},
{
"Key": "cellPublishingOption",
"Value": "0"
}
]
}
}
Response
Status: 200 OK
{
"data": {
"CreateDevice": {
"ID": "<generated-uuid>",
"Name": "My Excel (Gen1.3) Device",
"DriverID": "7AC52EDC-EBA9-4669-82CF-8EA99323E697",
"Description": ""
}
}
}
Create Device - Fanuc CNC Ethernet (Gen1.3)
POST {{edgeUrl}}/devicehub/v2
Fanuc CNC Ethernet
Driver ID: 588C8307-33D1-4526-85BD-FECC82C82C2E Group: Fanuc Corporation
Required properties:
- name String — Device Name that describes your asset.
- networkPort SignedInteger — Network port of the device.
- networkAddress String — IP Address of the device.
Optional properties:
- description String — Description of the device or an asset.
Request Body
GraphQL Query
mutation CreateDevice($input: CreateDeviceRequest!) {
CreateDevice(input: $input) {
ID
Name
DriverID
Description
}
}
Variables
{
"input": {
"Name": "My Fanuc CNC Ethernet (Gen1.3) Device",
"Description": "",
"DriverID": "588C8307-33D1-4526-85BD-FECC82C82C2E",
"AliasTopics": false,
"Debug": false,
"MetaData": [],
"StoppedState": false,
"StatusRegister": null,
"Properties": [
{
"Key": "name",
"Value": "Fanuc CNC Device"
},
{
"Key": "description",
"Value": ""
},
{
"Key": "networkPort",
"Value": "502"
},
{
"Key": "networkAddress",
"Value": "192.168.1.100"
}
]
}
}
Response
Status: 200 OK
{
"data": {
"CreateDevice": {
"ID": "<generated-uuid>",
"Name": "My Fanuc CNC Ethernet (Gen1.3) Device",
"DriverID": "588C8307-33D1-4526-85BD-FECC82C82C2E",
"Description": ""
}
}
}
Create Device - FB107 Ethernet
POST {{edgeUrl}}/devicehub/v2
FB107
| Prerequisites | None |
| Required fields | Network address Port |
| Browse devices supported | No |
| Browse tags supported | Supported Opcodes and Point Types |
| Miscellaneous |
Driver ID: 41D18BCA-6BB1-450F-88C9-35B27E6210D0 Group: Emerson
Required properties:
- operatorID String — Operator ID
- password SignedInteger — Password
- deviceAddress SignedInteger — FB107 Station Address
- hostGroup SignedInteger — Host Station Group
- hostAddress SignedInteger — Host Station Address
- networkAddress String — Device IP Address
- networkPort SignedInteger — TCP/IP Port
- deviceGroup SignedInteger — FB107 Station Group
- name String — A unique, user-defined name for this device. Used to identify the device throughout the edge gateway, including in message broker topics and logs.
Optional properties:
- nextRequestDelay SignedInteger — Delay before next Request (ms)
- responseTimeout SignedInteger — Response timeout (ms)
- optimizations SignedInteger Options: 0, 1
- description String — Optional free-text notes about this device, such as its physical location or purpose.
Request Body
GraphQL Query
mutation CreateDevice($input: CreateDeviceRequest!) {
CreateDevice(input: $input) {
ID
Name
DriverID
Description
}
}
Variables
{
"input": {
"Name": "My FB107 Ethernet Device",
"Description": "",
"DriverID": "41D18BCA-6BB1-450F-88C9-35B27E6210D0",
"AliasTopics": false,
"Debug": false,
"MetaData": [],
"StoppedState": false,
"StatusRegister": null,
"Properties": [
{
"Key": "operatorID",
"Value": "LOI"
},
{
"Key": "password",
"Value": "1000"
},
{
"Key": "deviceAddress",
"Value": "240"
},
{
"Key": "hostGroup",
"Value": "1"
},
{
"Key": "hostAddress",
"Value": "239"
},
{
"Key": "nextRequestDelay",
"Value": "0"
},
{
"Key": "networkAddress",
"Value": "192.168.1.100"
},
{
"Key": "networkPort",
"Value": "502"
},
{
"Key": "deviceGroup",
"Value": "240"
},
{
"Key": "responseTimeout",
"Value": "3000"
},
{
"Key": "optimizations",
"Value": "0"
},
{
"Key": "name",
"Value": "fb107-ethernet_device"
},
{
"Key": "description",
"Value": ""
}
]
}
}
Response
Status: 200 OK
{
"data": {
"CreateDevice": {
"ID": "<generated-uuid>",
"Name": "My FB107 Ethernet Device",
"DriverID": "41D18BCA-6BB1-450F-88C9-35B27E6210D0",
"Description": ""
}
}
}
Create Device - Fuji NB serial (Gen1.3)
POST {{edgeUrl}}/devicehub/v2
Fuji NB Serial (Gen1.3)
| Prerequisites | No |
| Required fields | Communication Port Baud Rare Data Bits Parity Stop Bits Station ID |
| Browse devices supported | No |
| Browse tags supported | No |
| Supported device models | Fuji Flex PC(NB Series PLC) |
| miscellaneous | Supported Register address range will be varied from models. Disconnection comes from invalid address, please restart device to reset connection |
Driver ID: E9DA2966-C794-4282-854C-F624F84DCB75 Group: Fuji Devices
Required properties:
- deviceFile String — Local Serial connection file path.
- baudRate SignedInteger — Serial communication baudrate parameter.
- dataBits SignedInteger — Serial communication databits parameter.
- stopBits SignedInteger — Serial communication stopbits parameter.
- parity SignedInteger — Serial communication parity parameter. Options: 0, 1, 2
- name String — Device Name that describes your asset.
Optional properties:
- description String — Description of the device or an asset.
Request Body
GraphQL Query
mutation CreateDevice($input: CreateDeviceRequest!) {
CreateDevice(input: $input) {
ID
Name
DriverID
Description
}
}
Variables
{
"input": {
"Name": "My Fuji NB serial (Gen1.3) Device",
"Description": "",
"DriverID": "E9DA2966-C794-4282-854C-F624F84DCB75",
"AliasTopics": false,
"Debug": false,
"MetaData": [],
"StoppedState": false,
"StatusRegister": null,
"Properties": [
{
"Key": "description",
"Value": ""
},
{
"Key": "deviceFile",
"Value": "/dev/ttyUSB0"
},
{
"Key": "baudRate",
"Value": "9600"
},
{
"Key": "dataBits",
"Value": "8"
},
{
"Key": "stopBits",
"Value": "1"
},
{
"Key": "parity",
"Value": "0"
},
{
"Key": "name",
"Value": "fuji device"
}
]
}
}
Response
Status: 200 OK
{
"data": {
"CreateDevice": {
"ID": "<generated-uuid>",
"Name": "My Fuji NB serial (Gen1.3) Device",
"DriverID": "E9DA2966-C794-4282-854C-F624F84DCB75",
"Description": ""
}
}
}
Create Device - Fuji SPH2000 Ethernet (Gen1.3)
POST {{edgeUrl}}/devicehub/v2
Fuji SPH2000 Ethernet (Gen1.3)
| Prerequisites | None |
| Required fields | Network address Network Port |
| Browse devices supported | No |
| Browse tags supported | No |
| Supported device models | Fuji SPH2000 series |
Driver ID: 2BB297DF-B51E-4E0B-ABE9-52267DFBDAFB Group: Fuji Devices
Required properties:
- networkAddress String — IP Address of the device.
- name String — Device Name that describes your asset.
- networkPort SignedInteger — Network port of the device.
Optional properties:
- description String — Description of the device or an asset.
Request Body
GraphQL Query
mutation CreateDevice($input: CreateDeviceRequest!) {
CreateDevice(input: $input) {
ID
Name
DriverID
Description
}
}
Variables
{
"input": {
"Name": "My Fuji SPH2000 Ethernet (Gen1.3) Device",
"Description": "",
"DriverID": "2BB297DF-B51E-4E0B-ABE9-52267DFBDAFB",
"AliasTopics": false,
"Debug": false,
"MetaData": [],
"StoppedState": false,
"StatusRegister": null,
"Properties": [
{
"Key": "networkAddress",
"Value": "192.168.1.100"
},
{
"Key": "name",
"Value": "Fuji device"
},
{
"Key": "description",
"Value": ""
},
{
"Key": "networkPort",
"Value": "502"
}
]
}
}
Response
Status: 200 OK
{
"data": {
"CreateDevice": {
"ID": "<generated-uuid>",
"Name": "My Fuji SPH2000 Ethernet (Gen1.3) Device",
"DriverID": "2BB297DF-B51E-4E0B-ABE9-52267DFBDAFB",
"Description": ""
}
}
}
Create Device - GE EGD Ethernet
POST {{edgeUrl}}/devicehub/v2
GE EGD Ethernet
Experimental
| Prerequisites | None |
| Required fields | Network Interface Network Port Producer Exchange Destination Producer Exchange ID Producer Exchange Size |
| Browse devices supported | No |
| Browse tags supported | No |
| Supported device models | GE devices that support EGD transactions. These devices require CPU-364 or higher. Any device that supports the EGD protocol |
Driver ID: CDFACE5B-7202-4FA9-B0D9-37256AB1F9C3 Group: GE Fanuc
Required properties:
- networkInterface String
- networkPort SignedInteger — The TCP or UDP port used to communicate with the device, depending on the protocol. Defaults to the standard port for the selected protocol but must match the port configured on the device.
- name String — A unique, user-defined name for this device. Used to identify the device throughout the edge gateway, including in message broker topics and logs.
Optional properties:
- producerExchange1Destination String
- producerExchange1ID UnsignedInteger
- producerExchange1Size UnsignedInteger
- description String — Optional free-text notes about this device, such as its physical location or purpose.
Request Body
GraphQL Query
mutation CreateDevice($input: CreateDeviceRequest!) {
CreateDevice(input: $input) {
ID
Name
DriverID
Description
}
}
Variables
{
"input": {
"Name": "My GE EGD Ethernet Device",
"Description": "",
"DriverID": "CDFACE5B-7202-4FA9-B0D9-37256AB1F9C3",
"AliasTopics": false,
"Debug": false,
"MetaData": [],
"StoppedState": false,
"StatusRegister": null,
"Properties": [
{
"Key": "networkInterface",
"Value": "10.17.11.242/22"
},
{
"Key": "networkPort",
"Value": "18246"
},
{
"Key": "producerExchange1Destination",
"Value": "192.168.0.1"
},
{
"Key": "producerExchange1ID",
"Value": "1"
},
{
"Key": "producerExchange1Size",
"Value": "1"
},
{
"Key": "name",
"Value": "ge-egd-ethernet_device"
},
{
"Key": "description",
"Value": ""
}
]
}
}
Response
Status: 200 OK
{
"data": {
"CreateDevice": {
"ID": "<generated-uuid>",
"Name": "My GE EGD Ethernet Device",
"DriverID": "CDFACE5B-7202-4FA9-B0D9-37256AB1F9C3",
"Description": ""
}
}
}
Create Device - GE Ethernet Absolute
POST {{edgeUrl}}/devicehub/v2
GE Ethernet Absolute
| Prerequisites | None |
| Required fields | Network address Network Port Slot Number |
| Browse devices supported | No |
| Browse tags supported | No |
| Miscellaneous | PACSystems RX3i and RX7i |
Driver ID: 4561ACD1-343B-40A1-9DD6-51F0EB4FBF28 Group: GE Fanuc
Required properties:
- networkAddress String — The IP address of the device on the network.
- networkPort SignedInteger — The TCP or UDP port used to communicate with the device, depending on the protocol. Defaults to the standard port for the selected protocol but must match the port configured on the device.
- slotNumber SignedInteger — Slot# in Rack0
- name String — A unique, user-defined name for this device. Used to identify the device throughout the edge gateway, including in message broker topics and logs.
Optional properties:
- readTimeout SignedInteger — Read Timeout (ms)
- description String — Optional free-text notes about this device, such as its physical location or purpose.
Request Body
GraphQL Query
mutation CreateDevice($input: CreateDeviceRequest!) {
CreateDevice(input: $input) {
ID
Name
DriverID
Description
}
}
Variables
{
"input": {
"Name": "My GE Ethernet Absolute Device",
"Description": "",
"DriverID": "4561ACD1-343B-40A1-9DD6-51F0EB4FBF28",
"AliasTopics": false,
"Debug": false,
"MetaData": [],
"StoppedState": false,
"StatusRegister": null,
"Properties": [
{
"Key": "readTimeout",
"Value": "3000"
},
{
"Key": "networkAddress",
"Value": "192.168.1.100"
},
{
"Key": "networkPort",
"Value": "502"
},
{
"Key": "slotNumber",
"Value": "0"
},
{
"Key": "name",
"Value": "ge-abs-ethernet_device"
},
{
"Key": "description",
"Value": ""
}
]
}
}
Response
Status: 200 OK
{
"data": {
"CreateDevice": {
"ID": "<generated-uuid>",
"Name": "My GE Ethernet Absolute Device",
"DriverID": "4561ACD1-343B-40A1-9DD6-51F0EB4FBF28",
"Description": ""
}
}
}
Create Device - GE Ethernet Symbolic
POST {{edgeUrl}}/devicehub/v2
GE Ethernet Symbolic
| Prerequisites | None |
| Required fields | Network Address Network Port |
| Browse devices supported | No |
| Browse tags supported | You must upload the .snf file to /ftp-data/devicehub/ and paste the file name in the "Global Variables CSV" setting to browse tag names. |
Driver ID: 85F8517C-0453-4B78-8B0C-74ED738A9EC4 Group: GE Fanuc
Required properties:
- slotNumber SignedInteger — Slot# in Rack0
- networkAddress String — The IP address of the device on the network.
- networkPort SignedInteger — The TCP or UDP port used to communicate with the device, depending on the protocol. Defaults to the standard port for the selected protocol but must match the port configured on the device.
- name String — A unique, user-defined name for this device. Used to identify the device throughout the edge gateway, including in message broker topics and logs.
Optional properties:
- readTimeout SignedInteger — Read Timeout (ms)
- globalVariablesCSV String — FTP path to .SNF file
- description String — Optional free-text notes about this device, such as its physical location or purpose.
Request Body
GraphQL Query
mutation CreateDevice($input: CreateDeviceRequest!) {
CreateDevice(input: $input) {
ID
Name
DriverID
Description
}
}
Variables
{
"input": {
"Name": "My GE Ethernet Symbolic Device",
"Description": "",
"DriverID": "85F8517C-0453-4B78-8B0C-74ED738A9EC4",
"AliasTopics": false,
"Debug": false,
"MetaData": [],
"StoppedState": false,
"StatusRegister": null,
"Properties": [
{
"Key": "slotNumber",
"Value": "0"
},
{
"Key": "readTimeout",
"Value": "3000"
},
{
"Key": "globalVariablesCSV",
"Value": ""
},
{
"Key": "networkAddress",
"Value": "192.168.1.100"
},
{
"Key": "networkPort",
"Value": "502"
},
{
"Key": "name",
"Value": "ge-sym-ethernet_device"
},
{
"Key": "description",
"Value": ""
}
]
}
}
Response
Status: 200 OK
{
"data": {
"CreateDevice": {
"ID": "<generated-uuid>",
"Name": "My GE Ethernet Symbolic Device",
"DriverID": "85F8517C-0453-4B78-8B0C-74ED738A9EC4",
"Description": ""
}
}
}
Create Device - GE Fanuc 90-30 Ethernet (Gen1.3)
POST {{edgeUrl}}/devicehub/v2
GE Fanuc 90-30 Ethernet (Gen1.3)
| Prerequisites | None |
| Required fields | Network address Network Port |
| Browse devices supported | No |
| Browse tags supported | No |
| Supported device models | GE Fanuc 90-30 series |
Driver ID: 4C9B19DF-60AA-4667-A1A3-62CBA2F1B2CF Group: GE Fanuc
Required properties:
- name String — Device Name that describes your asset.
- networkPort SignedInteger — Network port of the device.
- networkAddress String — IP Address of the device.
Optional properties:
- description String — Description of the device or an asset.
Request Body
GraphQL Query
mutation CreateDevice($input: CreateDeviceRequest!) {
CreateDevice(input: $input) {
ID
Name
DriverID
Description
}
}
Variables
{
"input": {
"Name": "My GE Fanuc 90-30 Ethernet (Gen1.3) Device",
"Description": "",
"DriverID": "4C9B19DF-60AA-4667-A1A3-62CBA2F1B2CF",
"AliasTopics": false,
"Debug": false,
"MetaData": [],
"StoppedState": false,
"StatusRegister": null,
"Properties": [
{
"Key": "name",
"Value": "Fanuc Device"
},
{
"Key": "description",
"Value": ""
},
{
"Key": "networkPort",
"Value": "502"
},
{
"Key": "networkAddress",
"Value": "192.168.1.100"
}
]
}
}
Response
Status: 200 OK
{
"data": {
"CreateDevice": {
"ID": "<generated-uuid>",
"Name": "My GE Fanuc 90-30 Ethernet (Gen1.3) Device",
"DriverID": "4C9B19DF-60AA-4667-A1A3-62CBA2F1B2CF",
"Description": ""
}
}
}
Create Device - GE Fanuc CMM Serial (Gen1.3)
POST {{edgeUrl}}/devicehub/v2
GE Fanuc CMM Serial (Gen1.3) Serial
| Prerequisites | No |
| Required fields | Communication Port Baud Rate Data Bits Stop Bits Parity Station ID |
| Browse devices supported | No |
| Browse tags supported | No |
| Supported device models | GE Fanuc Series 90-30 |
Driver ID: 5F7ED114-AFBE-45DE-B86A-035DE603A82B Group: GE Fanuc
Required properties:
- deviceFile String — Local Serial connection file path.
- dataBits SignedInteger — Serial communication databits parameter.
- stopBits SignedInteger — Serial communication stopbits parameter.
- parity SignedInteger — Serial communication parity parameter Options: 0, 1, 2
- name String — Device Name that describes your asset.
- baudRate SignedInteger — Serial communication baudrate parameter.
Optional properties:
- description String — Description of the device or an asset.
Request Body
GraphQL Query
mutation CreateDevice($input: CreateDeviceRequest!) {
CreateDevice(input: $input) {
ID
Name
DriverID
Description
}
}
Variables
{
"input": {
"Name": "My GE Fanuc CMM Serial (Gen1.3) Device",
"Description": "",
"DriverID": "5F7ED114-AFBE-45DE-B86A-035DE603A82B",
"AliasTopics": false,
"Debug": false,
"MetaData": [],
"StoppedState": false,
"StatusRegister": null,
"Properties": [
{
"Key": "deviceFile",
"Value": "/dev/ttyUSB0"
},
{
"Key": "dataBits",
"Value": "8"
},
{
"Key": "stopBits",
"Value": "1"
},
{
"Key": "parity",
"Value": "0"
},
{
"Key": "name",
"Value": "GE Fanuc Device"
},
{
"Key": "description",
"Value": ""
},
{
"Key": "baudRate",
"Value": "9600"
}
]
}
}
Response
Status: 200 OK
{
"data": {
"CreateDevice": {
"ID": "<generated-uuid>",
"Name": "My GE Fanuc CMM Serial (Gen1.3) Device",
"DriverID": "5F7ED114-AFBE-45DE-B86A-035DE603A82B",
"Description": ""
}
}
}
Create Device - GE Fanuc RX3i Serial (Gen1.3)
POST {{edgeUrl}}/devicehub/v2
GE Fanuc RX3i Serial (Gen1.3)
| Prerequisites | No |
| Required fields | Communication Port Baud Rate Data Bits Stop Bits Parity Station ID |
| Browse devices supported | No |
| Browse tags supported | No |
| Supported device models | PACSystems RX3i |
Driver ID: F2AEC18F-3D63-4661-9E84-83E6FCB087AE Group: GE Fanuc
Required properties:
- stationId SignedInteger — Station no./ slot no. of PLC
- stopBits SignedInteger — Serial communication stopbits parameter.
- deviceFile String — Local Serial connection file path.
- baudRate SignedInteger — Serial communication baudrate parameter.
- dataBits SignedInteger — Serial communication databits parameter.
- parity SignedInteger — Serial communication parity parameter. Options: 0, 1, 2
- name String — Device Name that describes your asset.
Optional properties:
- description String — Description of the device or an asset.
Request Body
GraphQL Query
mutation CreateDevice($input: CreateDeviceRequest!) {
CreateDevice(input: $input) {
ID
Name
DriverID
Description
}
}
Variables
{
"input": {
"Name": "My GE Fanuc RX3i Serial (Gen1.3) Device",
"Description": "",
"DriverID": "F2AEC18F-3D63-4661-9E84-83E6FCB087AE",
"AliasTopics": false,
"Debug": false,
"MetaData": [],
"StoppedState": false,
"StatusRegister": null,
"Properties": [
{
"Key": "description",
"Value": ""
},
{
"Key": "stationId",
"Value": "1"
},
{
"Key": "stopBits",
"Value": "1"
},
{
"Key": "deviceFile",
"Value": "/dev/ttyS0"
},
{
"Key": "baudRate",
"Value": "9600"
},
{
"Key": "dataBits",
"Value": "8"
},
{
"Key": "parity",
"Value": "0"
},
{
"Key": "name",
"Value": "GE Fanuc Device"
}
]
}
}
Response
Status: 200 OK
{
"data": {
"CreateDevice": {
"ID": "<generated-uuid>",
"Name": "My GE Fanuc RX3i Serial (Gen1.3) Device",
"DriverID": "F2AEC18F-3D63-4661-9E84-83E6FCB087AE",
"Description": ""
}
}
}
Create Device - GE Fanuc SNP Serial (Gen1.3)
POST {{edgeUrl}}/devicehub/v2
GE Fanuc SNP Serial (Gen1.3)
| Prerequisites | No |
| Required fields | Communication Port Baud Rate Data Bits Stop Bits Parity Station ID |
| Browse devices supported | No |
| Browse tags supported | No |
| Supported device models | GE micro and VersaMax series PLC |
Driver ID: A72B91B9-6666-41E8-9C3F-8B3B96A76ECE Group: GE Fanuc
Required properties:
- deviceFile String — Local Serial connection file path.
- stationId SignedInteger — Station Id/Slot number of PLC
- baudRate SignedInteger — Serial communication baudrate parameter.
- dataBits SignedInteger — Serial communication databits parameter.
- stopBits SignedInteger — Serial communication stopbits parameter.
- parity SignedInteger — Serial communication parity parameter. Options: 0, 1, 2
- name String — Device Name that describes your asset.
Optional properties:
- description String — Description of the device or an asset.
Request Body
GraphQL Query
mutation CreateDevice($input: CreateDeviceRequest!) {
CreateDevice(input: $input) {
ID
Name
DriverID
Description
}
}
Variables
{
"input": {
"Name": "My GE Fanuc SNP Serial (Gen1.3) Device",
"Description": "",
"DriverID": "A72B91B9-6666-41E8-9C3F-8B3B96A76ECE",
"AliasTopics": false,
"Debug": false,
"MetaData": [],
"StoppedState": false,
"StatusRegister": null,
"Properties": [
{
"Key": "description",
"Value": ""
},
{
"Key": "deviceFile",
"Value": "/dev/ttyS0"
},
{
"Key": "stationId",
"Value": "1"
},
{
"Key": "baudRate",
"Value": "9600"
},
{
"Key": "dataBits",
"Value": "8"
},
{
"Key": "stopBits",
"Value": "1"
},
{
"Key": "parity",
"Value": "0"
},
{
"Key": "name",
"Value": "GE Fanuc Device"
}
]
}
}
Response
Status: 200 OK
{
"data": {
"CreateDevice": {
"ID": "<generated-uuid>",
"Name": "My GE Fanuc SNP Serial (Gen1.3) Device",
"DriverID": "A72B91B9-6666-41E8-9C3F-8B3B96A76ECE",
"Description": ""
}
}
}
Create Device - Generator
POST {{edgeUrl}}/devicehub/v2
Generator driver
Driver ID: 5BC98836-CFD4-11E9-BB65-2A2AE2DBCCE4 Group: Simulator
Required properties:
- name String — A unique, user-defined name for this device. Used to identify the device throughout the edge gateway, including in message broker topics and logs.
Optional properties:
- description String — Optional free-text notes about this device, such as its physical location or purpose.
Request Body
GraphQL Query
mutation CreateDevice($input: CreateDeviceRequest!) {
CreateDevice(input: $input) {
ID
Name
DriverID
Description
}
}
Variables
{
"input": {
"Name": "My Generator Device",
"Description": "",
"DriverID": "5BC98836-CFD4-11E9-BB65-2A2AE2DBCCE4",
"AliasTopics": false,
"Debug": false,
"MetaData": [],
"StoppedState": false,
"StatusRegister": null,
"Properties": [
{
"Key": "name",
"Value": "generator_device"
},
{
"Key": "description",
"Value": ""
}
]
}
}
Response
Status: 200 OK
{
"data": {
"CreateDevice": {
"ID": "<generated-uuid>",
"Name": "My Generator Device",
"DriverID": "5BC98836-CFD4-11E9-BB65-2A2AE2DBCCE4",
"Description": ""
}
}
}
Create Device - Generic Device
POST {{edgeUrl}}/devicehub/v2
Generic Device Driver
| Required fields: | > Connection Settings (TCP, UDP or Serial) |
| Browse devices supported: | No |
| Browse tags supported: | No |
| Supported device models: | |
| Requests: | > Poll: Execute at interval, or when triggered. |
| > Write: Execute when triggered | |
| > Stream: Initiate connection, execute request, parse responses on receipt | |
| > Response: Parse additional value from existing Poll/Stream requests. This tag is useful when a single poll/stream response contains multiple values and you want to parse each one separately | |
| Payload: | > Request payload formatted as "Hex-String" |
| > Hex-String: string of valid hexadecimal characters: 0123456789ABCDEF | |
| > example: ABCD1234 -> encoded in binary exactly as seen | |
| > with Params: ABCD\ -> "address" param injected, binary encoding | |
| > with ASCII: ABCD"PROTO"123 -> quoted segments, ascii encoding | |
| > all ASCII: "HEADER-$%*-123-TAIL" -> entire payload, ascii encoding | |
| > Example: Add tag with Poll, select value type string and enter command you need to send (example: "TEST\r\n") in the payload field and keep rest tag configuration to default. ASCII-encoded TEST command is sent | |
| > For Write or Poll tags, use the Payload field to enter the command string to be sent to the device, including any required command terminator. | |
| Parameters: | > Session or Request params formatted as JSON (string values only) |
| > Request params take precedence over Session params, if duplicate | |
| > Keys like "address" or "areaCode", can be used in request: ...\<areaCode>\<address>... | |
| > Numeric params can be decimal/hexadecimal/octal, but must be in "string" form with appropriate prefix | |
| > Bit length inferred from padded length: "0x0012" or "0018" -> encoded as uint16(18) | |
| > Bit lengths supported: 4/8/16/24/32/64 | |
| > Params wrapped with \\"\\", encoded as ascii: { "areaType": "\"MEM_AREA\"" } | |
| > Params injected within ascii segment of payload, converted to ascii: ..."\ |
|
| Parsing: | > Start Index: 0-Indexed start of values, within response. Combined with value count, defines minimum response length (-1 to skip read) |
| > Value Count: Count of typed values to parse from response. If response is too short, reads will fail. | |
| > Value Length: (Strings-Only) Defines length of single value in bytes (0 for entire response) | |
| > Response Max Length: The largest full response frame size driver is allowed to read from socket before parsing stops (0 for unlimited) | |
| > Request Tag: Datahub Tag name for target request tag | |
| > Regex: Run 'FindAllSubmatch' on the response (RE2 semantics) | |
| > Regex Match Num: Index of 'FindAll' match | |
| > Regex Group Num: Index of 'Submatch' group | |
| Register Settings: | > Request Tag: For "Response" registers, enter the Tag name of an existing Poll or Stream register in this field to link the Response tag to that request |
| > Override Transport: Define alternate endpoint for single request, connection is not persistent | |
| > Response terminator: Specifies the characters or byte sequence (for example \r\n) that indicate the end of the device response |
Driver ID: 2ED8A8E1-1DF4-481A-9033-03F6E8E9456E Group: Generic
Required properties:
- networkPort SignedInteger — Port
- clientCertificate String — Client Certificate (PEM)
- deviceFile String — The serial port path used to communicate with the device (/dev/ttyS1, /dev/ttyUSB0, …). Must match a port available on the gateway host.
- connectionPayload String — Connection Request (Hex String)
- clientPrivateKey String — Client Private Key (PEM)
- networkAddress String — IP Address
- name String — A unique, user-defined name for this device. Used to identify the device throughout the edge gateway, including in message broker topics and logs.
Optional properties:
- enableTLS SignedInteger — Enable TLS Options: 0, 1
- MultipleConnections SignedInteger — Enable if using multiple streams Options: 0, 1
- enableMutualTLS SignedInteger — Enable mTLS / Client Certificate Options: 0, 1
- KeepAlive SignedInteger — TCP Keep-Alive (s) (0 to disable)
- baudRate SignedInteger — The data transmission speed, in bits per second, used for serial communication. Must match the baud rate configured on the device. Options: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10
- dataByteOrder SignedInteger — Default Data Endianness Options: 0, 1, 2, 3
- sessionParams Text — Session Parameters (JSON)
- connectionRequest SignedInteger — If enabled this field is used to enter the command that initiates the connection with the device Options: 0, 1
- certificateAuthority String — CA Chain (PEM)
- RetryCount SignedInteger — Retry request count
- stopBits SignedInteger — The number of stop bits used to signal the end of a character (typically 1 or 2). Must match the device's serial configuration. Options: 0, 1, 2
- Transport SignedInteger — Transport Type Options: 0, 1, 2
- responseIndex SignedInteger — Response Parsing - Start Index
- protocolByteOrder SignedInteger — Protocol Endianness Options: 0, 1, 2, 3
- parity SignedInteger — The error-checking method used for serial communication (None, Even, or Odd). Must match the device's configured parity setting. Options: 0, 1, 2
- ReadTimeout SignedInteger — Request timeout, msec
- dataBits SignedInteger — The number of data bits in each transmitted character (typically 7 or 8). Must match the device's serial configuration. Options: 0, 1, 2, 3
- certificateVerification SignedInteger — Verify server certificate Options: 0, 1
- PauseBetweenRetries SignedInteger — Pause between retries, msec
- description String — Optional free-text notes about this device, such as its physical location or purpose.
Request Body
GraphQL Query
mutation CreateDevice($input: CreateDeviceRequest!) {
CreateDevice(input: $input) {
ID
Name
DriverID
Description
}
}
Variables
{
"input": {
"Name": "My Generic Device Device",
"Description": "",
"DriverID": "2ED8A8E1-1DF4-481A-9033-03F6E8E9456E",
"AliasTopics": false,
"Debug": false,
"MetaData": [],
"StoppedState": false,
"StatusRegister": null,
"Properties": [
{
"Key": "networkPort",
"Value": "1234"
},
{
"Key": "clientCertificate",
"Value": "<certificate>"
},
{
"Key": "enableTLS",
"Value": "1"
},
{
"Key": "MultipleConnections",
"Value": "1"
},
{
"Key": "enableMutualTLS",
"Value": "1"
},
{
"Key": "KeepAlive",
"Value": "60"
},
{
"Key": "deviceFile",
"Value": "/dev/ttyUSB0"
},
{
"Key": "baudRate",
"Value": "3"
},
{
"Key": "connectionPayload",
"Value": "placeholder_connectionpayload"
},
{
"Key": "dataByteOrder",
"Value": "0"
},
{
"Key": "sessionParams",
"Value": ""
},
{
"Key": "connectionRequest",
"Value": "1"
},
{
"Key": "certificateAuthority",
"Value": ""
},
{
"Key": "RetryCount",
"Value": "0"
},
{
"Key": "stopBits",
"Value": "0"
},
{
"Key": "Transport",
"Value": "0"
},
{
"Key": "clientPrivateKey",
"Value": "<certificate>"
},
{
"Key": "responseIndex",
"Value": "0"
},
{
"Key": "protocolByteOrder",
"Value": "0"
},
{
"Key": "parity",
"Value": "1"
},
{
"Key": "ReadTimeout",
"Value": "2000"
},
{
"Key": "dataBits",
"Value": "3"
},
{
"Key": "networkAddress",
"Value": "192.168.1.100"
},
{
"Key": "certificateVerification",
"Value": "0"
},
{
"Key": "PauseBetweenRetries",
"Value": "0"
},
{
"Key": "name",
"Value": "generic-device_device"
},
{
"Key": "description",
"Value": ""
}
]
}
}
Response
Status: 200 OK
{
"data": {
"CreateDevice": {
"ID": "<generated-uuid>",
"Name": "My Generic Device Device",
"DriverID": "2ED8A8E1-1DF4-481A-9033-03F6E8E9456E",
"Description": ""
}
}
}
Create Device - Generic Device (No TLS)
POST {{edgeUrl}}/devicehub/v2
Generic Device Driver
| Required fields: | > Connection Settings (TCP, UDP or Serial) |
| Browse devices supported: | No |
| Browse tags supported: | No |
| Supported device models: | |
| Requests: | > Poll: Execute at interval, or when triggered. |
| > Write: Execute when triggered | |
| > Stream: Initiate connection, execute request, parse responses on receipt | |
| > Response: Parse additional value from existing Poll/Stream requests. This tag is useful when a single poll/stream response contains multiple values and you want to parse each one separately | |
| Payload: | > Request payload formatted as "Hex-String" |
| > Hex-String: string of valid hexadecimal characters: 0123456789ABCDEF | |
| > example: ABCD1234 -> encoded in binary exactly as seen | |
| > with Params: ABCD\ -> "address" param injected, binary encoding | |
| > with ASCII: ABCD"PROTO"123 -> quoted segments, ascii encoding | |
| > all ASCII: "HEADER-$%*-123-TAIL" -> entire payload, ascii encoding | |
| > Example: Add tag with Poll, select value type string and enter command you need to send (example: "TEST\r\n") in the payload field and keep rest tag configuration to default. ASCII-encoded TEST command is sent | |
| > For Write or Poll tags, use the Payload field to enter the command string to be sent to the device, including any required command terminator. | |
| Parameters: | > Session or Request params formatted as JSON (string values only) |
| > Request params take precedence over Session params, if duplicate | |
| > Keys like "address" or "areaCode", can be used in request: ...\<areaCode>\<address>... | |
| > Numeric params can be decimal/hexadecimal/octal, but must be in "string" form with appropriate prefix | |
| > Bit length inferred from padded length: "0x0012" or "0018" -> encoded as uint16(18) | |
| > Bit lengths supported: 4/8/16/24/32/64 | |
| > Params wrapped with \\"\\", encoded as ascii: { "areaType": "\"MEM_AREA\"" } | |
| > Params injected within ascii segment of payload, converted to ascii: ..."\ |
|
| Parsing: | > Start Index: 0-Indexed start of values, within response. Combined with value count, defines minimum response length (-1 to skip read) |
| > Value Count: Count of typed values to parse from response. If response is too short, reads will fail. | |
| > Value Length: (Strings-Only) Defines length of single value in bytes (0 for entire response) | |
| > Response Max Length: The largest full response frame size driver is allowed to read from socket before parsing stops (0 for unlimited) | |
| > Request Tag: Datahub Tag name for target request tag | |
| > Regex: Run 'FindAllSubmatch' on the response (RE2 semantics) | |
| > Regex Match Num: Index of 'FindAll' match | |
| > Regex Group Num: Index of 'Submatch' group | |
| Register Settings: | > Request Tag: For "Response" registers, enter the Tag name of an existing Poll or Stream register in this field to link the Response tag to that request |
| > Override Transport: Define alternate endpoint for single request, connection is not persistent | |
| > Response terminator: Specifies the characters or byte sequence (for example \r\n) that indicate the end of the device response |
Driver ID: 2ED8A8E1-1DF4-481A-9033-03F6E8E9456E Group: Generic
Required properties:
- networkPort SignedInteger — Port
- clientCertificate String — Client Certificate (PEM)
- deviceFile String — The serial port path used to communicate with the device (/dev/ttyS1, /dev/ttyUSB0, …). Must match a port available on the gateway host.
- connectionPayload String — Connection Request (Hex String)
- clientPrivateKey String — Client Private Key (PEM)
- networkAddress String — IP Address
- name String — A unique, user-defined name for this device. Used to identify the device throughout the edge gateway, including in message broker topics and logs.
Optional properties:
- enableTLS SignedInteger — Enable TLS Options: 0, 1
- MultipleConnections SignedInteger — Enable if using multiple streams Options: 0, 1
- enableMutualTLS SignedInteger — Enable mTLS / Client Certificate Options: 0, 1
- KeepAlive SignedInteger — TCP Keep-Alive (s) (0 to disable)
- baudRate SignedInteger — The data transmission speed, in bits per second, used for serial communication. Must match the baud rate configured on the device. Options: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10
- dataByteOrder SignedInteger — Default Data Endianness Options: 0, 1, 2, 3
- sessionParams Text — Session Parameters (JSON)
- connectionRequest SignedInteger — If enabled this field is used to enter the command that initiates the connection with the device Options: 0, 1
- certificateAuthority String — CA Chain (PEM)
- RetryCount SignedInteger — Retry request count
- stopBits SignedInteger — The number of stop bits used to signal the end of a character (typically 1 or 2). Must match the device's serial configuration. Options: 0, 1, 2
- Transport SignedInteger — Transport Type Options: 0, 1, 2
- responseIndex SignedInteger — Response Parsing - Start Index
- protocolByteOrder SignedInteger — Protocol Endianness Options: 0, 1, 2, 3
- parity SignedInteger — The error-checking method used for serial communication (None, Even, or Odd). Must match the device's configured parity setting. Options: 0, 1, 2
- ReadTimeout SignedInteger — Request timeout, msec
- dataBits SignedInteger — The number of data bits in each transmitted character (typically 7 or 8). Must match the device's serial configuration. Options: 0, 1, 2, 3
- certificateVerification SignedInteger — Verify server certificate Options: 0, 1
- PauseBetweenRetries SignedInteger — Pause between retries, msec
- description String — Optional free-text notes about this device, such as its physical location or purpose.
Request Body
GraphQL Query
mutation CreateDevice($input: CreateDeviceRequest!) {
CreateDevice(input: $input) {
ID
Name
DriverID
Description
}
}
Variables
{
"input": {
"Name": "My Generic Device Device (No TLS)",
"Description": "",
"DriverID": "2ED8A8E1-1DF4-481A-9033-03F6E8E9456E",
"AliasTopics": false,
"Debug": false,
"MetaData": [],
"StoppedState": false,
"StatusRegister": null,
"Properties": [
{
"Key": "networkPort",
"Value": "1234"
},
{
"Key": "enableTLS",
"Value": "1"
},
{
"Key": "MultipleConnections",
"Value": "1"
},
{
"Key": "KeepAlive",
"Value": "5"
},
{
"Key": "dataByteOrder",
"Value": "0"
},
{
"Key": "sessionParams",
"Value": ""
},
{
"Key": "connectionRequest",
"Value": "1"
},
{
"Key": "RetryCount",
"Value": "0"
},
{
"Key": "Transport",
"Value": "0"
},
{
"Key": "protocolByteOrder",
"Value": "0"
},
{
"Key": "ReadTimeout",
"Value": "2000"
},
{
"Key": "networkAddress",
"Value": "192.168.1.100"
},
{
"Key": "PauseBetweenRetries",
"Value": "0"
},
{
"Key": "name",
"Value": "generic-device_device"
},
{
"Key": "description",
"Value": ""
}
]
}
}
Response
Status: 200 OK
{
"data": {
"CreateDevice": {
"ID": "<generated-uuid>",
"Name": "My Generic Device Device (No TLS)",
"DriverID": "2ED8A8E1-1DF4-481A-9033-03F6E8E9456E",
"Description": ""
}
}
}
Create Device - Heidenhain 530 Ethernet (Gen1.3)
POST {{edgeUrl}}/devicehub/v2
Heidenhain 530 Ethernet (Gen1.3)
| Prerequisites | None |
| Required fields | Network address Network Port |
| Browse devices supported | No |
| Browse tags supported | No |
| Supported device models | Heidenhain iTNC 530 Controllers |
Driver ID: BC328283-3630-479E-A503-0EC999898B3E Group: Heidenhain
Required properties:
- networkAddress String — IP Address of the device.
- name String — Device Name that describes your asset.
- networkPort SignedInteger — Network port of the device.
Optional properties:
- description String — Description of the device or an asset.
Request Body
GraphQL Query
mutation CreateDevice($input: CreateDeviceRequest!) {
CreateDevice(input: $input) {
ID
Name
DriverID
Description
}
}
Variables
{
"input": {
"Name": "My Heidenhain 530 Ethernet (Gen1.3) Device",
"Description": "",
"DriverID": "BC328283-3630-479E-A503-0EC999898B3E",
"AliasTopics": false,
"Debug": false,
"MetaData": [],
"StoppedState": false,
"StatusRegister": null,
"Properties": [
{
"Key": "networkAddress",
"Value": "192.168.1.100"
},
{
"Key": "name",
"Value": "Heidenhain Device"
},
{
"Key": "description",
"Value": ""
},
{
"Key": "networkPort",
"Value": "502"
}
]
}
}
Response
Status: 200 OK
{
"data": {
"CreateDevice": {
"ID": "<generated-uuid>",
"Name": "My Heidenhain 530 Ethernet (Gen1.3) Device",
"DriverID": "BC328283-3630-479E-A503-0EC999898B3E",
"Description": ""
}
}
}
Create Device - Heidenhain 640 Ethernet (Gen1.3)
POST {{edgeUrl}}/devicehub/v2
Heidenhain 640 Ethernet (Gen1.3)
| Prerequisites | None |
| Required fields | Network address Network Port |
| Browse devices supported | No |
| Browse tags supported | No |
| Supported device models | Heidenhain TNC 640 controllers |
Driver ID: 479A3869-9394-4F8B-869D-EB19454146AD Group: Heidenhain
Required properties:
- name String — Device Name that describes your asset.
- networkPort SignedInteger — Network port of the device.
- networkAddress String — IP Address of the device.
Optional properties:
- description String — Description of the device or an asset.
Request Body
GraphQL Query
mutation CreateDevice($input: CreateDeviceRequest!) {
CreateDevice(input: $input) {
ID
Name
DriverID
Description
}
}
Variables
{
"input": {
"Name": "My Heidenhain 640 Ethernet (Gen1.3) Device",
"Description": "",
"DriverID": "479A3869-9394-4F8B-869D-EB19454146AD",
"AliasTopics": false,
"Debug": false,
"MetaData": [],
"StoppedState": false,
"StatusRegister": null,
"Properties": [
{
"Key": "name",
"Value": "Heidenhain Device"
},
{
"Key": "description",
"Value": ""
},
{
"Key": "networkPort",
"Value": "502"
},
{
"Key": "networkAddress",
"Value": "192.168.1.100"
}
]
}
}
Response
Status: 200 OK
{
"data": {
"CreateDevice": {
"ID": "<generated-uuid>",
"Name": "My Heidenhain 640 Ethernet (Gen1.3) Device",
"DriverID": "479A3869-9394-4F8B-869D-EB19454146AD",
"Description": ""
}
}
}
Create Device - HID Device (Gen1.3)
POST {{edgeUrl}}/devicehub/v2
HID Device (Gen1.3)
| Prerequisites | No |
| Required fields | Communication Port |
| Browse devices supported | No |
| Browse tags supported | No |
| Supported device models | USB HID class devices |
This driver will publish the value of a string of ASCII characters only after a carriage return (\n) is sent.
Driver ID: A06BEA40-76CD-4EFE-9E52-E56A6F2AE434 Group: HID Devices
Required properties:
- deviceFile String — Local Serial connection file path.
- name String — Device Name that describes your asset.
Optional properties:
- description String — Description of the device or an asset.
Request Body
GraphQL Query
mutation CreateDevice($input: CreateDeviceRequest!) {
CreateDevice(input: $input) {
ID
Name
DriverID
Description
}
}
Variables
{
"input": {
"Name": "My HID Device (Gen1.3) Device",
"Description": "",
"DriverID": "A06BEA40-76CD-4EFE-9E52-E56A6F2AE434",
"AliasTopics": false,
"Debug": false,
"MetaData": [],
"StoppedState": false,
"StatusRegister": null,
"Properties": [
{
"Key": "deviceFile",
"Value": "/dev/hidraw0"
},
{
"Key": "name",
"Value": "hid device"
},
{
"Key": "description",
"Value": ""
}
]
}
}
Response
Status: 200 OK
{
"data": {
"CreateDevice": {
"ID": "<generated-uuid>",
"Name": "My HID Device (Gen1.3) Device",
"DriverID": "A06BEA40-76CD-4EFE-9E52-E56A6F2AE434",
"Description": ""
}
}
}
Create Device - Hitachi serial (Gen1.3)
POST {{edgeUrl}}/devicehub/v2
Hitachi Serial (Gen1.3)
| Prerequisites | No |
| Required fields | Communication Port Baud Rate Data Bits Stop Bits Parity |
| Browse devices supported | No |
| Browse tags supported | No |
| Supported device models | Hitachi EH Series |
Driver ID: FAE5C1D8-A774-4D9A-A186-5ADAEDA0B31D Group: Hitachi Devices
Required properties:
- deviceFile String — Local Serial connection file path.
- parity SignedInteger — Serial communication parity parameter. Options: 0, 1, 2
- name String — Device Name that describes your asset.
- baudRate SignedInteger — Serial communication baudrate parameter.
- dataBits SignedInteger — Serial communication databits parameter.
- stopBits SignedInteger — Serial communication stopbits parameter.
Optional properties:
- description String — Description of the device or an asset.
Request Body
GraphQL Query
mutation CreateDevice($input: CreateDeviceRequest!) {
CreateDevice(input: $input) {
ID
Name
DriverID
Description
}
}
Variables
{
"input": {
"Name": "My Hitachi serial (Gen1.3) Device",
"Description": "",
"DriverID": "FAE5C1D8-A774-4D9A-A186-5ADAEDA0B31D",
"AliasTopics": false,
"Debug": false,
"MetaData": [],
"StoppedState": false,
"StatusRegister": null,
"Properties": [
{
"Key": "deviceFile",
"Value": "/dev/ttyUSB0"
},
{
"Key": "parity",
"Value": "0"
},
{
"Key": "name",
"Value": "hitachi device"
},
{
"Key": "description",
"Value": ""
},
{
"Key": "baudRate",
"Value": "9600"
},
{
"Key": "dataBits",
"Value": "7"
},
{
"Key": "stopBits",
"Value": "1"
}
]
}
}
Response
Status: 200 OK
{
"data": {
"CreateDevice": {
"ID": "<generated-uuid>",
"Name": "My Hitachi serial (Gen1.3) Device",
"DriverID": "FAE5C1D8-A774-4D9A-A186-5ADAEDA0B31D",
"Description": ""
}
}
}
Create Device - IEC60870-5-102 Ethernet (Gen1.3)
POST {{edgeUrl}}/devicehub/v2
IEC60870-5-102 Ethernet (Gen1.3)
| Prerequisites | None |
| Required fields | Network address Network Port Link Address Asdu Addr Size |
| Browse devices supported | No |
| Browse tags supported | No |
| Supported device models | Devices that support IEC60870-5-102 protocol |
Driver ID: 94290D6F-4197-4DBF-9847-1848F9840F63 Group: IEC
Required properties:
- networkPort SignedInteger — Network port of the device.
- linkAddress SignedInteger — Link Address.
- asduAddrSize SignedInteger — Size of ASDU Address.
- name String — Device Name that describes your asset.
- networkAddress String — IP Address of the device.
Optional properties:
- description String — Description of the device or an asset.
Request Body
GraphQL Query
mutation CreateDevice($input: CreateDeviceRequest!) {
CreateDevice(input: $input) {
ID
Name
DriverID
Description
}
}
Variables
{
"input": {
"Name": "My IEC60870-5-102 Ethernet (Gen1.3) Device",
"Description": "",
"DriverID": "94290D6F-4197-4DBF-9847-1848F9840F63",
"AliasTopics": false,
"Debug": false,
"MetaData": [],
"StoppedState": false,
"StatusRegister": null,
"Properties": [
{
"Key": "networkPort",
"Value": "502"
},
{
"Key": "linkAddress",
"Value": "3"
},
{
"Key": "asduAddrSize",
"Value": "2"
},
{
"Key": "name",
"Value": "IEC Device"
},
{
"Key": "description",
"Value": ""
},
{
"Key": "networkAddress",
"Value": "192.168.1.100"
}
]
}
}
Response
Status: 200 OK
{
"data": {
"CreateDevice": {
"ID": "<generated-uuid>",
"Name": "My IEC60870-5-102 Ethernet (Gen1.3) Device",
"DriverID": "94290D6F-4197-4DBF-9847-1848F9840F63",
"Description": ""
}
}
}
Create Device - IEC60870-5-104 Ethernet (Gen1.3)
POST {{edgeUrl}}/devicehub/v2
IEC60870-5-104 Ethernet (Gen1.3)
| Prerequisites | None |
| Required fields | Network address Network Port Station ID |
| Browse devices supported | No |
| Browse tags supported | No |
| Supported device models | Devices that support IEC60870-5-104 protocol |
Driver ID: EFD8528C-5C90-4454-81F9-6DC851F63936 Group: IEC
Required properties:
- name String — Device Name that describes your asset.
- networkAddress String — IP Address of the device.
- networkPort SignedInteger — Network port of the device.
- stationId SignedInteger — Station id/ slot number
Optional properties:
- description String — Description of the device or an asset.
Request Body
GraphQL Query
mutation CreateDevice($input: CreateDeviceRequest!) {
CreateDevice(input: $input) {
ID
Name
DriverID
Description
}
}
Variables
{
"input": {
"Name": "My IEC60870-5-104 Ethernet (Gen1.3) Device",
"Description": "",
"DriverID": "EFD8528C-5C90-4454-81F9-6DC851F63936",
"AliasTopics": false,
"Debug": false,
"MetaData": [],
"StoppedState": false,
"StatusRegister": null,
"Properties": [
{
"Key": "name",
"Value": "IEC Device"
},
{
"Key": "description",
"Value": ""
},
{
"Key": "networkAddress",
"Value": "192.168.1.100"
},
{
"Key": "networkPort",
"Value": "502"
},
{
"Key": "stationId",
"Value": "1"
}
]
}
}
Response
Status: 200 OK
{
"data": {
"CreateDevice": {
"ID": "<generated-uuid>",
"Name": "My IEC60870-5-104 Ethernet (Gen1.3) Device",
"DriverID": "EFD8528C-5C90-4454-81F9-6DC851F63936",
"Description": ""
}
}
}
Create Device - IEC61850 MMS Client
POST {{edgeUrl}}/devicehub/v2
IEC61850 MMS Client Driver
| Required fields: | > Network Address |
| > Network Port | |
| > Request Timeout | |
| Browse devices supported: | No |
| Browse tags supported: | Yes |
| Simple data type read/write: | Yes |
| Complex data type read: | Yes |
| Reporting: | Yes |
Driver ID: 69E7E8D0-0D2C-4F2A-AB84-7A989BB83C14 Group: IEC
Required properties:
- networkAddress String — The IP address of the device on the network.
- networkPort UnsignedInteger — The TCP or UDP port used to communicate with the device, depending on the protocol. Defaults to the standard port for the selected protocol but must match the port configured on the device.
- requestTimeout UnsignedInteger — Request timeout, msec
- name String — A unique, user-defined name for this device. Used to identify the device throughout the edge gateway, including in message broker topics and logs.
Optional properties:
- AuthMethod String — Authorization method Options: 0, 1, 2
- CA Certificate String — CA certificate used to validate peer certificates (PEM format)
- Certificate String — Client certificate (PEM format)
- Password String — Password
- PrivateKey String — Client private key (PEM format)
- allowOnlyKnownCertificates String — If set to true only known certificates are accepted. Connections with unknown certificates are rejected even if they are signed by a trusted authority. Options: 0, 1
- chainValidation String — Enables the validation of the certificate trust chain. Options: 0, 1
- timeValidation String — Enables the verification of validity times for certificates and CRLs. Options: 0, 1
- description String — Optional free-text notes about this device, such as its physical location or purpose.
Request Body
GraphQL Query
mutation CreateDevice($input: CreateDeviceRequest!) {
CreateDevice(input: $input) {
ID
Name
DriverID
Description
}
}
Variables
{
"input": {
"Name": "My IEC61850 MMS Client Device",
"Description": "",
"DriverID": "69E7E8D0-0D2C-4F2A-AB84-7A989BB83C14",
"AliasTopics": false,
"Debug": false,
"MetaData": [],
"StoppedState": false,
"StatusRegister": null,
"Properties": [
{
"Key": "AuthMethod",
"Value": "0"
},
{
"Key": "CA Certificate",
"Value": ""
},
{
"Key": "Certificate",
"Value": "<certificate>"
},
{
"Key": "Password",
"Value": ""
},
{
"Key": "PrivateKey",
"Value": "<certificate>"
},
{
"Key": "allowOnlyKnownCertificates",
"Value": "0"
},
{
"Key": "chainValidation",
"Value": "1"
},
{
"Key": "networkAddress",
"Value": "192.168.1.100"
},
{
"Key": "networkPort",
"Value": "102"
},
{
"Key": "requestTimeout",
"Value": "5000"
},
{
"Key": "timeValidation",
"Value": "1"
},
{
"Key": "name",
"Value": "iec61850mms_client_device"
},
{
"Key": "description",
"Value": ""
}
]
}
}
Response
Status: 200 OK
{
"data": {
"CreateDevice": {
"ID": "<generated-uuid>",
"Name": "My IEC61850 MMS Client Device",
"DriverID": "69E7E8D0-0D2C-4F2A-AB84-7A989BB83C14",
"Description": ""
}
}
}
Create Device - Ignition Module
POST {{edgeUrl}}/devicehub/v2
Ignition Module
Driver ID: C7B2183F-2BB8-415E-83A3-AA3FF8A20BF5 Group: Ignition
Required properties:
- writeRequestItemsCount SignedInteger — Write request max items count
- networkPort SignedInteger — Port
- interface String — Interface
- enableTLS SignedInteger — Enable TLS Authentication Options: 0, 1
- browseRequestItemsCount SignedInteger — Browse request max items count
- user String — User
- password String — Password
- TLScert String — Certificate (PEM)
- TLSpkey String — Private Key (PEM)
- natsConnectionName String — NATS connection name
- natsRequestTimeout SignedInteger — Request timeout, ms
- name String — A unique, user-defined name for this device. Used to identify the device throughout the edge gateway, including in message broker topics and logs.
Optional properties:
- publishStat Boolean — Publish driver statistics in the log
- description String — Optional free-text notes about this device, such as its physical location or purpose.
Request Body
GraphQL Query
mutation CreateDevice($input: CreateDeviceRequest!) {
CreateDevice(input: $input) {
ID
Name
DriverID
Description
}
}
Variables
{
"input": {
"Name": "My Ignition Module Device",
"Description": "",
"DriverID": "C7B2183F-2BB8-415E-83A3-AA3FF8A20BF5",
"AliasTopics": false,
"Debug": false,
"MetaData": [],
"StoppedState": false,
"StatusRegister": null,
"Properties": [
{
"Key": "writeRequestItemsCount",
"Value": "50"
},
{
"Key": "networkPort",
"Value": "4778"
},
{
"Key": "interface",
"Value": "0.0.0.0"
},
{
"Key": "enableTLS",
"Value": "1"
},
{
"Key": "browseRequestItemsCount",
"Value": "500"
},
{
"Key": "publishStat",
"Value": "false"
},
{
"Key": "user",
"Value": "admin"
},
{
"Key": "password",
"Value": "password"
},
{
"Key": "TLScert",
"Value": "placeholder_tlscert"
},
{
"Key": "TLSpkey",
"Value": "placeholder_tlspkey"
},
{
"Key": "natsConnectionName",
"Value": "IgnitionAgent"
},
{
"Key": "natsRequestTimeout",
"Value": "5000"
},
{
"Key": "name",
"Value": "Ignition-module_device"
},
{
"Key": "description",
"Value": ""
}
]
}
}
Response
Status: 200 OK
{
"data": {
"CreateDevice": {
"ID": "<generated-uuid>",
"Name": "My Ignition Module Device",
"DriverID": "C7B2183F-2BB8-415E-83A3-AA3FF8A20BF5",
"Description": ""
}
}
}
Create Device - Ignition Module (No TLS)
POST {{edgeUrl}}/devicehub/v2
Ignition Module
Driver ID: C7B2183F-2BB8-415E-83A3-AA3FF8A20BF5 Group: Ignition
Required properties:
- writeRequestItemsCount SignedInteger — Write request max items count
- networkPort SignedInteger — Port
- interface String — Interface
- enableTLS SignedInteger — Enable TLS Authentication Options: 0, 1
- browseRequestItemsCount SignedInteger — Browse request max items count
- user String — User
- password String — Password
- TLScert String — Certificate (PEM)
- TLSpkey String — Private Key (PEM)
- natsConnectionName String — NATS connection name
- natsRequestTimeout SignedInteger — Request timeout, ms
- name String — A unique, user-defined name for this device. Used to identify the device throughout the edge gateway, including in message broker topics and logs.
Optional properties:
- publishStat Boolean — Publish driver statistics in the log
- description String — Optional free-text notes about this device, such as its physical location or purpose.
Request Body
GraphQL Query
mutation CreateDevice($input: CreateDeviceRequest!) {
CreateDevice(input: $input) {
ID
Name
DriverID
Description
}
}
Variables
{
"input": {
"Name": "My Ignition Module Device (No TLS)",
"Description": "",
"DriverID": "C7B2183F-2BB8-415E-83A3-AA3FF8A20BF5",
"AliasTopics": false,
"Debug": false,
"MetaData": [],
"StoppedState": false,
"StatusRegister": null,
"Properties": [
{
"Key": "writeRequestItemsCount",
"Value": "50"
},
{
"Key": "networkPort",
"Value": "4778"
},
{
"Key": "interface",
"Value": "0.0.0.0"
},
{
"Key": "enableTLS",
"Value": "1"
},
{
"Key": "browseRequestItemsCount",
"Value": "500"
},
{
"Key": "publishStat",
"Value": "false"
},
{
"Key": "user",
"Value": "admin"
},
{
"Key": "password",
"Value": "password"
},
{
"Key": "natsConnectionName",
"Value": "IgnitionAgent"
},
{
"Key": "natsRequestTimeout",
"Value": "5000"
},
{
"Key": "name",
"Value": "Ignition-module_device"
},
{
"Key": "description",
"Value": ""
}
]
}
}
Response
Status: 200 OK
{
"data": {
"CreateDevice": {
"ID": "<generated-uuid>",
"Name": "My Ignition Module Device (No TLS)",
"DriverID": "C7B2183F-2BB8-415E-83A3-AA3FF8A20BF5",
"Description": ""
}
}
}
Create Device - IND256x
POST {{edgeUrl}}/devicehub/v2
IND256x Driver
| Required fields: | > Connection Settings (TCP, UDP or Serial) |
| Browse devices supported: | No |
| Browse tags supported: | No |
| Supported device models: | |
| Requests: | > Write: Execute when triggered |
| > Stream: Initiate connection, execute request, parse responses on receipt | |
| Register Settings: | |
| > Override Transport: Define alternate endpoint for single request, connection is not persistent |
Driver ID: 897D81B8-CB6F-4144-A985-1588A021A645 Group: Mettler Toledo
Required properties:
- networkPort SignedInteger — Port
- connectionPayload String — Connection Request (Hex String)
- networkAddress String — IP Address
- deviceFile String — The serial port path used to communicate with the device (/dev/ttyS1, /dev/ttyUSB0, …). Must match a port available on the gateway host.
- name String — A unique, user-defined name for this device. Used to identify the device throughout the edge gateway, including in message broker topics and logs.
Optional properties:
- Transport SignedInteger — Transport Type Options: 0, 1, 2
- baudRate SignedInteger — The data transmission speed, in bits per second, used for serial communication. Must match the baud rate configured on the device. Options: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10
- connectionRequest SignedInteger — If enabled this field is used to enter the command that initiates the connection with the device Options: 0, 1
- protocolByteOrder SignedInteger — Protocol Endianness Options: 0, 1, 2, 3
- MultipleConnections SignedInteger — Enable if using multiple streams Options: 0, 1
- parity SignedInteger — The error-checking method used for serial communication (None, Even, or Odd). Must match the device's configured parity setting. Options: 0, 1, 2
- ReadTimeout SignedInteger — Request timeout, msec
- RetryCount SignedInteger — Retry request count
- KeepAlive SignedInteger — TCP Keep-Alive (s) (0 to disable)
- responseIndex SignedInteger — Response Parsing - Start Index
- dataByteOrder SignedInteger — Default Data Endianness Options: 0, 1, 2, 3
- dataBits SignedInteger — The number of data bits in each transmitted character (typically 7 or 8). Must match the device's serial configuration. Options: 0, 1, 2, 3
- stopBits SignedInteger — The number of stop bits used to signal the end of a character (typically 1 or 2). Must match the device's serial configuration. Options: 0, 1, 2
- sessionParams Text — Session Parameters (JSON)
- PauseBetweenRetries SignedInteger — Pause between retries, msec
- description String — Optional free-text notes about this device, such as its physical location or purpose.
Request Body
GraphQL Query
mutation CreateDevice($input: CreateDeviceRequest!) {
CreateDevice(input: $input) {
ID
Name
DriverID
Description
}
}
Variables
{
"input": {
"Name": "My IND256x Device",
"Description": "",
"DriverID": "897D81B8-CB6F-4144-A985-1588A021A645",
"AliasTopics": false,
"Debug": false,
"MetaData": [],
"StoppedState": false,
"StatusRegister": null,
"Properties": [
{
"Key": "Transport",
"Value": "0"
},
{
"Key": "networkPort",
"Value": "1234"
},
{
"Key": "baudRate",
"Value": "3"
},
{
"Key": "connectionRequest",
"Value": "1"
},
{
"Key": "connectionPayload",
"Value": "placeholder_connectionpayload"
},
{
"Key": "protocolByteOrder",
"Value": "0"
},
{
"Key": "MultipleConnections",
"Value": "1"
},
{
"Key": "parity",
"Value": "1"
},
{
"Key": "ReadTimeout",
"Value": "2000"
},
{
"Key": "RetryCount",
"Value": "0"
},
{
"Key": "KeepAlive",
"Value": "60"
},
{
"Key": "responseIndex",
"Value": "0"
},
{
"Key": "networkAddress",
"Value": "192.168.1.100"
},
{
"Key": "dataByteOrder",
"Value": "0"
},
{
"Key": "dataBits",
"Value": "3"
},
{
"Key": "stopBits",
"Value": "0"
},
{
"Key": "deviceFile",
"Value": "/dev/ttyUSB0"
},
{
"Key": "sessionParams",
"Value": ""
},
{
"Key": "PauseBetweenRetries",
"Value": "0"
},
{
"Key": "name",
"Value": "ind256x_device"
},
{
"Key": "description",
"Value": ""
}
]
}
}
Response
Status: 200 OK
{
"data": {
"CreateDevice": {
"ID": "<generated-uuid>",
"Name": "My IND256x Device",
"DriverID": "897D81B8-CB6F-4144-A985-1588A021A645",
"Description": ""
}
}
}
Create Device - Industrial OT Server
POST {{edgeUrl}}/devicehub/v2
Industrial OT Server Driver
Driver ID: A206D802-2E0B-4C14-A38A-353F666FCF0C Group: MQTT
Required properties:
- User String — User
- Password String — Password
- MqttSSLPort SignedInteger — MQTT SSL Port
- CertificateAuthority String — CA Chain (PEM)
- MqttPort SignedInteger — MQTT Port
- MqttInterface String — MQTT Interface
- MqttSSLInterface String — MQTT SSL Interface
- ServerCertificate String — Broker Certificate (PEM)
- ServerPrivateKey String — Broker Private Key (PEM)
- name String — A unique, user-defined name for this device. Used to identify the device throughout the edge gateway, including in message broker topics and logs.
Optional properties:
- MinTLSVersion SignedInteger — Minimum TLS Version Options: 0, 1, 2, 3
- EnableMqtt SignedInteger — Enable MQTT at Port Options: 0, 1
- EnableMqttSSL SignedInteger — Enable MQTT SSL at Port Options: 0, 1
- RequireClientCertificate SignedInteger — Require Client CA Options: 0, 1
- EnableUserPassword SignedInteger — Enable Authentification (User/Password) Options: 0, 1
- description String — Optional free-text notes about this device, such as its physical location or purpose.
Request Body
GraphQL Query
mutation CreateDevice($input: CreateDeviceRequest!) {
CreateDevice(input: $input) {
ID
Name
DriverID
Description
}
}
Variables
{
"input": {
"Name": "My Industrial OT Server Device",
"Description": "",
"DriverID": "A206D802-2E0B-4C14-A38A-353F666FCF0C",
"AliasTopics": false,
"Debug": false,
"MetaData": [],
"StoppedState": false,
"StatusRegister": null,
"Properties": [
{
"Key": "User",
"Value": "admin"
},
{
"Key": "Password",
"Value": "password"
},
{
"Key": "MqttSSLPort",
"Value": "8883"
},
{
"Key": "CertificateAuthority",
"Value": "<certificate>"
},
{
"Key": "MinTLSVersion",
"Value": "2"
},
{
"Key": "EnableMqtt",
"Value": "0"
},
{
"Key": "MqttPort",
"Value": "1883"
},
{
"Key": "MqttInterface",
"Value": "0.0.0.0"
},
{
"Key": "EnableMqttSSL",
"Value": "1"
},
{
"Key": "MqttSSLInterface",
"Value": "0.0.0.0"
},
{
"Key": "ServerCertificate",
"Value": "<certificate>"
},
{
"Key": "ServerPrivateKey",
"Value": "<certificate>"
},
{
"Key": "RequireClientCertificate",
"Value": "1"
},
{
"Key": "EnableUserPassword",
"Value": "1"
},
{
"Key": "name",
"Value": "Industrial-OT-server_device"
},
{
"Key": "description",
"Value": ""
}
]
}
}
Response
Status: 200 OK
{
"data": {
"CreateDevice": {
"ID": "<generated-uuid>",
"Name": "My Industrial OT Server Device",
"DriverID": "A206D802-2E0B-4C14-A38A-353F666FCF0C",
"Description": ""
}
}
}
Create Device - Industrial OT Server (No TLS)
POST {{edgeUrl}}/devicehub/v2
Industrial OT Server Driver
Driver ID: A206D802-2E0B-4C14-A38A-353F666FCF0C Group: MQTT
Required properties:
- User String — User
- Password String — Password
- MqttSSLPort SignedInteger — MQTT SSL Port
- CertificateAuthority String — CA Chain (PEM)
- MqttPort SignedInteger — MQTT Port
- MqttInterface String — MQTT Interface
- MqttSSLInterface String — MQTT SSL Interface
- ServerCertificate String — Broker Certificate (PEM)
- ServerPrivateKey String — Broker Private Key (PEM)
- name String — A unique, user-defined name for this device. Used to identify the device throughout the edge gateway, including in message broker topics and logs.
Optional properties:
- MinTLSVersion SignedInteger — Minimum TLS Version Options: 0, 1, 2, 3
- EnableMqtt SignedInteger — Enable MQTT at Port Options: 0, 1
- EnableMqttSSL SignedInteger — Enable MQTT SSL at Port Options: 0, 1
- RequireClientCertificate SignedInteger — Require Client CA Options: 0, 1
- EnableUserPassword SignedInteger — Enable Authentification (User/Password) Options: 0, 1
- description String — Optional free-text notes about this device, such as its physical location or purpose.
Request Body
GraphQL Query
mutation CreateDevice($input: CreateDeviceRequest!) {
CreateDevice(input: $input) {
ID
Name
DriverID
Description
}
}
Variables
{
"input": {
"Name": "My Industrial OT Server Device (No TLS)",
"Description": "",
"DriverID": "A206D802-2E0B-4C14-A38A-353F666FCF0C",
"AliasTopics": false,
"Debug": false,
"MetaData": [],
"StoppedState": false,
"StatusRegister": null,
"Properties": [
{
"Key": "EnableMqtt",
"Value": "0"
},
{
"Key": "MqttPort",
"Value": "1883"
},
{
"Key": "MqttInterface",
"Value": "0.0.0.0"
},
{
"Key": "EnableMqttSSL",
"Value": "0"
},
{
"Key": "EnableUserPassword",
"Value": "1"
},
{
"Key": "name",
"Value": "Industrial-OT-server_device"
},
{
"Key": "description",
"Value": ""
}
]
}
}
Response
Status: 200 OK
{
"data": {
"CreateDevice": {
"ID": "<generated-uuid>",
"Name": "My Industrial OT Server Device (No TLS)",
"DriverID": "A206D802-2E0B-4C14-A38A-353F666FCF0C",
"Description": ""
}
}
}
Create Device - JTEKT Toyopuc CMP-Link Ethernet (Gen1.3)
POST {{edgeUrl}}/devicehub/v2
JTEKT Toyopuc CMP-Link Ethernet (Gen1.3)
| Prerequisites | None |
| Required fields | Network address Network Port |
| Browse devices supported | No |
| Browse tags supported | No |
| Supported device models | JTEKT Toyopuc PC10 |
Driver ID: 5C8E41C3-6DF1-47B5-AD2E-9C5FD0FF803C Group: Toyopuc
Required properties:
- name String — Device Name that describes your asset.
- networkPort SignedInteger — Network port of the device.
- networkAddress String — IP Address of the device.
Optional properties:
- description String — Description of the device or an asset.
Request Body
GraphQL Query
mutation CreateDevice($input: CreateDeviceRequest!) {
CreateDevice(input: $input) {
ID
Name
DriverID
Description
}
}
Variables
{
"input": {
"Name": "My JTEKT Toyopuc CMP-Link Ethernet (Gen1.3) Device",
"Description": "",
"DriverID": "5C8E41C3-6DF1-47B5-AD2E-9C5FD0FF803C",
"AliasTopics": false,
"Debug": false,
"MetaData": [],
"StoppedState": false,
"StatusRegister": null,
"Properties": [
{
"Key": "name",
"Value": "toyopuc device"
},
{
"Key": "description",
"Value": ""
},
{
"Key": "networkPort",
"Value": "502"
},
{
"Key": "networkAddress",
"Value": "192.168.1.100"
}
]
}
}
Response
Status: 200 OK
{
"data": {
"CreateDevice": {
"ID": "<generated-uuid>",
"Name": "My JTEKT Toyopuc CMP-Link Ethernet (Gen1.3) Device",
"DriverID": "5C8E41C3-6DF1-47B5-AD2E-9C5FD0FF803C",
"Description": ""
}
}
}
Create Device - Keyence KV10 Serial (Gen1.3)
POST {{edgeUrl}}/devicehub/v2
Keyence KV10 Serial (Gen1.3)
| Prerequisites | No |
| Required fields | Communication Port Baud Rate Data Bits Stop Bits Parity |
| Browse devices supported | No |
| Browse tags supported | No |
| Supported device models | Keyence KV Series (KV10~80) |
Driver ID: 29530297-998F-4E0A-9137-ABEDA478AF2D Group: Keyence
Required properties:
- deviceFile String — Local Serial connection file path.
- stopBits SignedInteger — Serial communication stopbits parameter.
- name String — Device Name that describes your asset.
- baudRate SignedInteger — Serial communication baudrate parameter.
- dataBits SignedInteger — Serial communication databits parameter.
- parity SignedInteger — Serial communication parity parameter. Options: 0, 1, 2
Optional properties:
- description String — Description of the device or an asset.
Request Body
GraphQL Query
mutation CreateDevice($input: CreateDeviceRequest!) {
CreateDevice(input: $input) {
ID
Name
DriverID
Description
}
}
Variables
{
"input": {
"Name": "My Keyence KV10 Serial (Gen1.3) Device",
"Description": "",
"DriverID": "29530297-998F-4E0A-9137-ABEDA478AF2D",
"AliasTopics": false,
"Debug": false,
"MetaData": [],
"StoppedState": false,
"StatusRegister": null,
"Properties": [
{
"Key": "deviceFile",
"Value": "/dev/ttyS0"
},
{
"Key": "stopBits",
"Value": "1"
},
{
"Key": "name",
"Value": "keyence"
},
{
"Key": "baudRate",
"Value": "9600"
},
{
"Key": "dataBits",
"Value": "8"
},
{
"Key": "parity",
"Value": "0"
},
{
"Key": "description",
"Value": ""
}
]
}
}
Response
Status: 200 OK
{
"data": {
"CreateDevice": {
"ID": "<generated-uuid>",
"Name": "My Keyence KV10 Serial (Gen1.3) Device",
"DriverID": "29530297-998F-4E0A-9137-ABEDA478AF2D",
"Description": ""
}
}
}
Create Device - Keyence Nano
POST {{edgeUrl}}/devicehub/v2
Keyence Nano Driver
| Prerequisites | None |
| Required fields | Network address Network Port |
| Browse devices supported | No |
| Browse tags supported | No |
Driver ID: CC3EDEED-0DBD-47B5-A057-7CD2F04668EA Group: Keyence
Required properties:
- networkPort SignedInteger — Port
- networkAddress String — IP Address
- name String — A unique, user-defined name for this device. Used to identify the device throughout the edge gateway, including in message broker topics and logs.
Optional properties:
- KeepAlive SignedInteger — TCP Keep-Alive (s) (0 to disable)
- ReadTimeout SignedInteger — Request timeout, msec
- RetryCount SignedInteger — Retry request count
- PauseBetweenRetries SignedInteger — Pause between retries, msec
- Transport SignedInteger — Transport Type Options: 0
- description String — Optional free-text notes about this device, such as its physical location or purpose.
Request Body
GraphQL Query
mutation CreateDevice($input: CreateDeviceRequest!) {
CreateDevice(input: $input) {
ID
Name
DriverID
Description
}
}
Variables
{
"input": {
"Name": "My Keyence Nano Device",
"Description": "",
"DriverID": "CC3EDEED-0DBD-47B5-A057-7CD2F04668EA",
"AliasTopics": false,
"Debug": false,
"MetaData": [],
"StoppedState": false,
"StatusRegister": null,
"Properties": [
{
"Key": "networkPort",
"Value": "8501"
},
{
"Key": "networkAddress",
"Value": "192.168.1.100"
},
{
"Key": "KeepAlive",
"Value": "60"
},
{
"Key": "ReadTimeout",
"Value": "2000"
},
{
"Key": "RetryCount",
"Value": "0"
},
{
"Key": "PauseBetweenRetries",
"Value": "0"
},
{
"Key": "Transport",
"Value": "0"
},
{
"Key": "name",
"Value": "keyence-nano_device"
},
{
"Key": "description",
"Value": ""
}
]
}
}
Response
Status: 200 OK
{
"data": {
"CreateDevice": {
"ID": "<generated-uuid>",
"Name": "My Keyence Nano Device",
"DriverID": "CC3EDEED-0DBD-47B5-A057-7CD2F04668EA",
"Description": ""
}
}
}
Create Device - Keyence Nano Ethernet (Gen1.3)
POST {{edgeUrl}}/devicehub/v2
Keyence Nano Ethernet (Gen1.3)
| Prerequisites | None |
| Required fields | Network address Network Port |
| Browse devices supported | No |
| Browse tags supported | No |
| Supported device models | Keyence KV and Nano series |
Driver ID: F43FC385-C0CC-4E0D-AABF-C1686F3AA6E3 Group: Keyence
Required properties:
- networkPort SignedInteger — Network port of the device.
- networkAddress String — IP Address of the device.
- name String — Device Name that describes your asset.
Optional properties:
- description String — Description of the device or an asset.
Request Body
GraphQL Query
mutation CreateDevice($input: CreateDeviceRequest!) {
CreateDevice(input: $input) {
ID
Name
DriverID
Description
}
}
Variables
{
"input": {
"Name": "My Keyence Nano Ethernet (Gen1.3) Device",
"Description": "",
"DriverID": "F43FC385-C0CC-4E0D-AABF-C1686F3AA6E3",
"AliasTopics": false,
"Debug": false,
"MetaData": [],
"StoppedState": false,
"StatusRegister": null,
"Properties": [
{
"Key": "networkPort",
"Value": "502"
},
{
"Key": "networkAddress",
"Value": "192.168.1.100"
},
{
"Key": "name",
"Value": "keyence"
},
{
"Key": "description",
"Value": ""
}
]
}
}
Response
Status: 200 OK
{
"data": {
"CreateDevice": {
"ID": "<generated-uuid>",
"Name": "My Keyence Nano Ethernet (Gen1.3) Device",
"DriverID": "F43FC385-C0CC-4E0D-AABF-C1686F3AA6E3",
"Description": ""
}
}
}
Create Device - Keyence Serial (Gen1.3)
POST {{edgeUrl}}/devicehub/v2
Keyence Serial (Gen1.3)
| Prerequisites | None |
| Required fields | Communication Port Parity Baud Rate Data Bits Stop Bits |
| Browse devices supported | No |
| Browse tags supported | No |
| Supported device models | Keyence KV and Nano series |
Driver ID: E2875F18-40FA-408A-8CE2-F40E022E3DED Group: Keyence
Required properties:
- name String — Device Name that describes your asset.
- deviceFile String — Local Serial connection file path.
- baudRate SignedInteger — Serial communication baudrate parameter.
- parity SignedInteger — Serial communication parity parameter. Options: 0, 1, 2
- dataBits SignedInteger — Serial communication databits parameter.
- stopBits SignedInteger — Serial communication stopbits parameter.
Optional properties:
- description String — Description of the device or an asset.
Request Body
GraphQL Query
mutation CreateDevice($input: CreateDeviceRequest!) {
CreateDevice(input: $input) {
ID
Name
DriverID
Description
}
}
Variables
{
"input": {
"Name": "My Keyence Serial (Gen1.3) Device",
"Description": "",
"DriverID": "E2875F18-40FA-408A-8CE2-F40E022E3DED",
"AliasTopics": false,
"Debug": false,
"MetaData": [],
"StoppedState": false,
"StatusRegister": null,
"Properties": [
{
"Key": "name",
"Value": "keyence"
},
{
"Key": "description",
"Value": ""
},
{
"Key": "deviceFile",
"Value": "/dev/ttyS0"
},
{
"Key": "baudRate",
"Value": "9600"
},
{
"Key": "parity",
"Value": "0"
},
{
"Key": "dataBits",
"Value": "8"
},
{
"Key": "stopBits",
"Value": "1"
}
]
}
}
Response
Status: 200 OK
{
"data": {
"CreateDevice": {
"ID": "<generated-uuid>",
"Name": "My Keyence Serial (Gen1.3) Device",
"DriverID": "E2875F18-40FA-408A-8CE2-F40E022E3DED",
"Description": ""
}
}
}
Create Device - Koyo Click Serial (Gen1.3)
POST {{edgeUrl}}/devicehub/v2
Koyo Click Serial (Gen1.3)
| Prerequisites | No |
| Required fields | Communication Port Baud Rate Data Bits Stop Bits Parity Station ID |
| Browse devices supported | No |
| Browse tags supported | No |
| Supported device models | Koyo Click PLC Series |
Driver ID: 27522C78-CBE8-4BF0-BD26-43DAD7E02F0C Group: Koyo
Required properties:
- stationId SignedInteger — Station id/slot number
- baudRate SignedInteger — Serial communication baudrate parameter.
- dataBits SignedInteger — Serial communication databits parameter.
- parity SignedInteger — Serial communication parity parameter. Options: 0, 1, 2
- deviceFile String — Local Serial connection file path.
- stopBits SignedInteger — Serial communication stopbits parameter.
- name String — Device Name that describes your asset.
Optional properties:
- description String — Description of the device or an asset.
Request Body
GraphQL Query
mutation CreateDevice($input: CreateDeviceRequest!) {
CreateDevice(input: $input) {
ID
Name
DriverID
Description
}
}
Variables
{
"input": {
"Name": "My Koyo Click Serial (Gen1.3) Device",
"Description": "",
"DriverID": "27522C78-CBE8-4BF0-BD26-43DAD7E02F0C",
"AliasTopics": false,
"Debug": false,
"MetaData": [],
"StoppedState": false,
"StatusRegister": null,
"Properties": [
{
"Key": "stationId",
"Value": "1"
},
{
"Key": "baudRate",
"Value": "9600"
},
{
"Key": "dataBits",
"Value": "8"
},
{
"Key": "parity",
"Value": "0"
},
{
"Key": "deviceFile",
"Value": "/dev/ttyUSB0"
},
{
"Key": "stopBits",
"Value": "1"
},
{
"Key": "name",
"Value": "Koyo Device"
},
{
"Key": "description",
"Value": ""
}
]
}
}
Response
Status: 200 OK
{
"data": {
"CreateDevice": {
"ID": "<generated-uuid>",
"Name": "My Koyo Click Serial (Gen1.3) Device",
"DriverID": "27522C78-CBE8-4BF0-BD26-43DAD7E02F0C",
"Description": ""
}
}
}
Create Device - Koyo Direct Serial (Gen1.3)
POST {{edgeUrl}}/devicehub/v2
Koyo Direct Serial
Driver ID: DEABEBA3-7E58-4774-A475-39F81ECF486B Group: Koyo
Required properties:
- deviceFile String — Local Serial connection file path.
- baudRate SignedInteger — Serial communication baudrate parameter.
- dataBits SignedInteger — Serial communication databits parameter.
- stopBits SignedInteger — Serial communication stopbits parameter.
- name String — Device Name that describes your asset.
- stationId SignedInteger — Station id/slot number
- parity SignedInteger — Serial communication parity parameter. Options: 0, 1, 2
Optional properties:
- description String — Description of the device or an asset.
Request Body
GraphQL Query
mutation CreateDevice($input: CreateDeviceRequest!) {
CreateDevice(input: $input) {
ID
Name
DriverID
Description
}
}
Variables
{
"input": {
"Name": "My Koyo Direct Serial (Gen1.3) Device",
"Description": "",
"DriverID": "DEABEBA3-7E58-4774-A475-39F81ECF486B",
"AliasTopics": false,
"Debug": false,
"MetaData": [],
"StoppedState": false,
"StatusRegister": null,
"Properties": [
{
"Key": "deviceFile",
"Value": "/dev/ttyUSB0"
},
{
"Key": "baudRate",
"Value": "9600"
},
{
"Key": "dataBits",
"Value": "8"
},
{
"Key": "stopBits",
"Value": "1"
},
{
"Key": "name",
"Value": "Koyo Device"
},
{
"Key": "description",
"Value": ""
},
{
"Key": "stationId",
"Value": "1"
},
{
"Key": "parity",
"Value": "0"
}
]
}
}
Response
Status: 200 OK
{
"data": {
"CreateDevice": {
"ID": "<generated-uuid>",
"Name": "My Koyo Direct Serial (Gen1.3) Device",
"DriverID": "DEABEBA3-7E58-4774-A475-39F81ECF486B",
"Description": ""
}
}
}
Create Device - Koyo Ethernet (Gen1.3)
POST {{edgeUrl}}/devicehub/v2
Koyo Ethernet (Gen 1.3)
| Prerequisites | None |
| Required fields | Network address Network Port Station ID |
| Browse devices supported | No |
| Browse tags supported | No |
| Supported device models | Koyo DirectLogic Series |
Driver ID: 1A483B03-463F-4218-B464-F796343C6D5F Group: Koyo
Required properties:
- networkPort SignedInteger — Network port of the device.
- networkAddress String — IP Address of the device.
- name String — Device Name that describes your asset.
Optional properties:
- description String — Description of the device or an asset.
Request Body
GraphQL Query
mutation CreateDevice($input: CreateDeviceRequest!) {
CreateDevice(input: $input) {
ID
Name
DriverID
Description
}
}
Variables
{
"input": {
"Name": "My Koyo Ethernet (Gen1.3) Device",
"Description": "",
"DriverID": "1A483B03-463F-4218-B464-F796343C6D5F",
"AliasTopics": false,
"Debug": false,
"MetaData": [],
"StoppedState": false,
"StatusRegister": null,
"Properties": [
{
"Key": "description",
"Value": ""
},
{
"Key": "networkPort",
"Value": "502"
},
{
"Key": "networkAddress",
"Value": "192.168.1.100"
},
{
"Key": "name",
"Value": "koyo device"
}
]
}
}
Response
Status: 200 OK
{
"data": {
"CreateDevice": {
"ID": "<generated-uuid>",
"Name": "My Koyo Ethernet (Gen1.3) Device",
"DriverID": "1A483B03-463F-4218-B464-F796343C6D5F",
"Description": ""
}
}
}
Create Device - LioN-X
POST {{edgeUrl}}/devicehub/v2
LioN-X OPC UA Client Driver
The driver implements the Client according to OPC UA Specification version 1.04 (IEC62541 standard).
Features:
- Discovering Servers and Endpoint (make sure the DNS name of the discovered server can be resolved by LE or replace it with the IP address)
- Browsing the address space of the server
- Reading, subscribing, and writing "Value" (Attribute ID 13, The value of a variable)
Driver ID: D5E201DC-35DE-44AD-B9DB-EB6AD70432C0 Group: Lumberg Automation
Required properties:
- AuthMode String — Auth Mode Options: 0, 1, 2
- DefaultRoot String — Start node to browse the server
- DriverMode String — Driver Mode Options: 0, 1
- OverrideRegistersSamplingInterval String — Override registers sampling interval Options: 0, 1
- SecurityMode String — Security Mode Options: 0, 1, 2
- SecurityPolicy String — Security Policy Options: 0, 1, 2, 3, 4, 5
- ServerURL String — Server URL
- name String — A unique, user-defined name for this device. Used to identify the device throughout the edge gateway, including in message broker topics and logs.
Optional properties:
- DisableApplicationUriCheck String — Flag used to disable the certificate ApplicationUri match check. Options: 0, 1
- DisableEncryptedPasswordCheck String — Flag used to disable the check if the password of a UserPassword identity token is encrypted properly. Options: 0, 1
- DisableErrorCertificateChainIncomplete String — Flag used to disable the certificate validation error BadCertificateChainIncomplete. Options: 0, 1
- DisableErrorCertificateHostNameInvalid String — Flag used to disable the check if the hostname the client connected to matches one of the hostnames or IP addresses in the server certificate. Options: 0, 1
- DisableErrorCertificateRevocationUnknown String — Flag used to disable the client certificate validation error BadCertificateRevocationUnknown. Options: 0, 1
- DisableErrorCertificateTimeInvalid String — Flag used to disable the certificate validation error CertificateTimeInvalid. Options: 0, 1
- DisableErrorCertificateUntrusted String — Flag used to disable the certificate validation error BadCertificateUntrusted. Options: 0, 1
- LifetimeCount SignedInteger — The subscription lifetime count (SubscriptionLifetime = LifetimeCount * PublishingInterval)
- MaxKeepAliveCount SignedInteger — If the server has no notifications pending for the period of time defined by * (MaxKeepAliveCount * PublishingInterval), the server will send a keep alive message to the client
- MaxNotificationsPerPublish SignedInteger — The maximum number of notifications that the client wishes to receive in a single publish response
- Password String — Password
- Priority SignedInteger — The relative priority of this subscription within the session
- PublishingInterval SignedInteger — The cyclic rate in milliseconds at which the subscription is being requested to return notifications to the client
- RegistersSamplingInterval Float — The interval in milliseconds that defines the fastest rate at which the MonitoredItem(s) should be accessed and evaluated (0 - fastest practical rate).
- SessionCertificate String — Session Certificate
- SessionPrivateKey String — Session Private Key
- UserCertificate String — User Auth Certificate (PEM format)
- UserName String — User Name
- UserPrivateKey String — User Auth Private Key (PEM format)
- description String — Optional free-text notes about this device, such as its physical location or purpose.
Request Body
GraphQL Query
mutation CreateDevice($input: CreateDeviceRequest!) {
CreateDevice(input: $input) {
ID
Name
DriverID
Description
}
}
Variables
{
"input": {
"Name": "My LioN-X Device",
"Description": "",
"DriverID": "D5E201DC-35DE-44AD-B9DB-EB6AD70432C0",
"AliasTopics": false,
"Debug": false,
"MetaData": [],
"StoppedState": false,
"StatusRegister": null,
"Properties": [
{
"Key": "AuthMode",
"Value": "0"
},
{
"Key": "DefaultRoot",
"Value": "ns=0;i=84"
},
{
"Key": "DisableApplicationUriCheck",
"Value": "0"
},
{
"Key": "DisableEncryptedPasswordCheck",
"Value": "0"
},
{
"Key": "DisableErrorCertificateChainIncomplete",
"Value": "0"
},
{
"Key": "DisableErrorCertificateHostNameInvalid",
"Value": "0"
},
{
"Key": "DisableErrorCertificateRevocationUnknown",
"Value": "0"
},
{
"Key": "DisableErrorCertificateTimeInvalid",
"Value": "0"
},
{
"Key": "DisableErrorCertificateUntrusted",
"Value": "0"
},
{
"Key": "DriverMode",
"Value": "0"
},
{
"Key": "LifetimeCount",
"Value": "2400"
},
{
"Key": "MaxKeepAliveCount",
"Value": "10"
},
{
"Key": "MaxNotificationsPerPublish",
"Value": "0"
},
{
"Key": "OverrideRegistersSamplingInterval",
"Value": "1"
},
{
"Key": "Password",
"Value": ""
},
{
"Key": "Priority",
"Value": "0"
},
{
"Key": "PublishingInterval",
"Value": "500"
},
{
"Key": "RegistersSamplingInterval",
"Value": "0"
},
{
"Key": "SecurityMode",
"Value": "0"
},
{
"Key": "SecurityPolicy",
"Value": "0"
},
{
"Key": "ServerURL",
"Value": "192.168.1.100"
},
{
"Key": "SessionCertificate",
"Value": "<certificate>"
},
{
"Key": "SessionPrivateKey",
"Value": "<certificate>"
},
{
"Key": "UserCertificate",
"Value": ""
},
{
"Key": "UserName",
"Value": ""
},
{
"Key": "UserPrivateKey",
"Value": ""
},
{
"Key": "name",
"Value": "LioN-X_device"
},
{
"Key": "description",
"Value": ""
}
]
}
}
Response
Status: 200 OK
{
"data": {
"CreateDevice": {
"ID": "<generated-uuid>",
"Name": "My LioN-X Device",
"DriverID": "D5E201DC-35DE-44AD-B9DB-EB6AD70432C0",
"Description": ""
}
}
}
Create Device - LS Master-K CPU Direct Serial (Gen1.3)
POST {{edgeUrl}}/devicehub/v2
LS Master-K CPU Direct Serial (Gen1.3)
| Prerequisites | No |
| Required fields | Communication Port Baud Rate Data Bits Stop Bits Parity |
| Browse devices supported | No |
| Browse tags supported | No |
| Supported device models | LS MASTER-K series: K7M, K80S, K120S, K200S, K300S, K1000S |
Driver ID: CAC8E388-0230-4EA3-99D0-9B4FE42F9328 Group: LS Industrial System
Required properties:
- deviceFile String — Local Serial connection file path.
- baudRate SignedInteger — Serial communication baudrate parameter.
- dataBits SignedInteger — Serial communication databits parameter.
- name String — Device Name that describes your asset.
- stopBits SignedInteger — Serial communication stopbits parameter.
- parity SignedInteger — Serial communication parity parameter. Options: 0, 1, 2
Optional properties:
- description String — Description of the device or an asset.
Request Body
GraphQL Query
mutation CreateDevice($input: CreateDeviceRequest!) {
CreateDevice(input: $input) {
ID
Name
DriverID
Description
}
}
Variables
{
"input": {
"Name": "My LS Master-K CPU Direct Serial (Gen1.3) Device",
"Description": "",
"DriverID": "CAC8E388-0230-4EA3-99D0-9B4FE42F9328",
"AliasTopics": false,
"Debug": false,
"MetaData": [],
"StoppedState": false,
"StatusRegister": null,
"Properties": [
{
"Key": "description",
"Value": ""
},
{
"Key": "deviceFile",
"Value": "/dev/ttyS0"
},
{
"Key": "baudRate",
"Value": "9600"
},
{
"Key": "dataBits",
"Value": "8"
},
{
"Key": "name",
"Value": "LS Master Device"
},
{
"Key": "stopBits",
"Value": "1"
},
{
"Key": "parity",
"Value": "0"
}
]
}
}
Response
Status: 200 OK
{
"data": {
"CreateDevice": {
"ID": "<generated-uuid>",
"Name": "My LS Master-K CPU Direct Serial (Gen1.3) Device",
"DriverID": "CAC8E388-0230-4EA3-99D0-9B4FE42F9328",
"Description": ""
}
}
}
Create Device - LS XBM Cnet Serial (Gen1.3)
POST {{edgeUrl}}/devicehub/v2
LS XBM Cnet Serial (Gen1.3)
| Prerequisites | No |
| Required fields | Communication Port Baud Rate Data Bits Stop Bits Parity |
| Browse devices supported | No |
| Browse tags supported | No |
| Supported device models | LS XBM/XBC CPU series with XGL-CH2A module |
Driver ID: 9F2C6E7B-363A-4933-8B14-3FDBE3348276 Group: LS Industrial System
Required properties:
- name String — Device Name that describes your asset.
- deviceFile String — Local Serial connection file path.
- baudRate SignedInteger — Serial communication baudrate parameter.
- parity SignedInteger — Serial communication parity parameter. Options: 0, 1, 2
- stationId SignedInteger — Station Id/ Slot number
- dataBits SignedInteger — Serial communication databits parameter.
- stopBits SignedInteger — Serial communication stopbits parameter.
Optional properties:
- description String — Description of the device or an asset.
Request Body
GraphQL Query
mutation CreateDevice($input: CreateDeviceRequest!) {
CreateDevice(input: $input) {
ID
Name
DriverID
Description
}
}
Variables
{
"input": {
"Name": "My LS XBM Cnet Serial (Gen1.3) Device",
"Description": "",
"DriverID": "9F2C6E7B-363A-4933-8B14-3FDBE3348276",
"AliasTopics": false,
"Debug": false,
"MetaData": [],
"StoppedState": false,
"StatusRegister": null,
"Properties": [
{
"Key": "name",
"Value": "LS Master Device"
},
{
"Key": "description",
"Value": ""
},
{
"Key": "deviceFile",
"Value": "/dev/ttyS0"
},
{
"Key": "baudRate",
"Value": "9600"
},
{
"Key": "parity",
"Value": "0"
},
{
"Key": "stationId",
"Value": "1"
},
{
"Key": "dataBits",
"Value": "8"
},
{
"Key": "stopBits",
"Value": "1"
}
]
}
}
Response
Status: 200 OK
{
"data": {
"CreateDevice": {
"ID": "<generated-uuid>",
"Name": "My LS XBM Cnet Serial (Gen1.3) Device",
"DriverID": "9F2C6E7B-363A-4933-8B14-3FDBE3348276",
"Description": ""
}
}
}
Create Device - LS XBM Serial (Gen1.3)
POST {{edgeUrl}}/devicehub/v2
LS XBM Serial (Gen1.3)
| Prerequisites | No |
| Required fields | Communication Port Baud Rate Data Bits Stop Bits Parity |
| Browse devices supported | No |
| Browse tags supported | No |
| Supported device models | LS XBM/XBC series (RS232 port) |
Driver ID: 111BCF84-25D5-4C53-9588-D22CFF50F6C5 Group: LS Industrial System
Required properties:
- name String — Device Name that describes your asset.
- baudRate SignedInteger — Serial communication baudrate parameter.
- dataBits SignedInteger — Serial communication databits parameter.
- deviceFile String — Local Serial connection file path.
- stopBits SignedInteger — Serial communication stopbits parameter.
- parity SignedInteger — Serial communication parity parameter. Options: 0, 1, 2
Optional properties:
- description String — Description of the device or an asset.
Request Body
GraphQL Query
mutation CreateDevice($input: CreateDeviceRequest!) {
CreateDevice(input: $input) {
ID
Name
DriverID
Description
}
}
Variables
{
"input": {
"Name": "My LS XBM Serial (Gen1.3) Device",
"Description": "",
"DriverID": "111BCF84-25D5-4C53-9588-D22CFF50F6C5",
"AliasTopics": false,
"Debug": false,
"MetaData": [],
"StoppedState": false,
"StatusRegister": null,
"Properties": [
{
"Key": "name",
"Value": "LS Master Device"
},
{
"Key": "description",
"Value": ""
},
{
"Key": "baudRate",
"Value": "9600"
},
{
"Key": "dataBits",
"Value": "8"
},
{
"Key": "deviceFile",
"Value": "/dev/ttyS0"
},
{
"Key": "stopBits",
"Value": "1"
},
{
"Key": "parity",
"Value": "0"
}
]
}
}
Response
Status: 200 OK
{
"data": {
"CreateDevice": {
"ID": "<generated-uuid>",
"Name": "My LS XBM Serial (Gen1.3) Device",
"DriverID": "111BCF84-25D5-4C53-9588-D22CFF50F6C5",
"Description": ""
}
}
}
Create Device - Microsoft SQL Server Client
POST {{edgeUrl}}/devicehub/v2
Microsoft SQL Client Driver
| Browse devices supported: | No |
| Browse tags supported: | No |
| Driver Settings: | > Address: IP, Hostname or Endpoint (Port setting is ignored if port is included here) |
| > Instance, Database: Specify query target within server | |
| > Username, Password: Client authentication | |
| > Encryption: "Optional" -> Don't require certificate, "Mandatory" -> Verify certficate, "Strict" -> Verify certicate & use TDS8 | |
| > ValidateQuery: Preemptive query parsing (MySQL compatibility mode) | |
| > ReadOnlyMode: Enforce read-only commands (SELECT,UNION,STREAM,SHOW,USE) | |
| > AppName: Client Application ID (optional) | |
| > HostName: Client Workstation ID (optional - defaults to |
|
| Important: | > Ensure minimal permissions are set for the provided user account |
| > For T-SQL specific statements to work as expected, "ValidateQuery" may need to be disabled | |
| Miscellaneous: | > Driver does not support writing to tags |
| > For multi-row output, use "Table" register | |
| > For single-row or single-field output, use "Record" register | |
| > When reading single rows, enable timestamp/value parsing by setting a positive index value for the respective fields | |
| > When reading multiple rows, it is recommended to keep output table sizes under 1MB | |
| > When using "Only Publish on Change of Value", it may be necessary to define a CDC query (see below) | |
| > All SQL queries (multi-statement in particular) should be tested independently of driver to ensure correctness |
CDC (Change Data Capture)
- In order to detect data changes for Table queries, CDC must be enabled on the DB and configured within the Tag settings
-
CDC queries will likely require "ValidateQuery" to be disabled, in order to use T-SQL specific syntax
-
Init Query: one-shot query to initialize a "state", which will be compared before polling
- (e.g. SELECT sys.fn_cdc_get_max_lsn() AS __$start_lsn)
- determine which column in the last row of output represents the state, and configure "ParseState" accordingly
-
if the DB permits, the state may be stored as session/global variable on the server
- in this case, state parsing is not required
-
Change Query: compare previous "state", and if changes detected, re-issue "Data Query"
- (e.g. SELECT * FROM cdc.dbo_tablexyz_CT WHERE __$start_lsn > @lastState)
- "@lastState" is a special string reserved for injecting the previous state value
- state parsing (either by column idx or column name) must be the same as "Init Query"
-
any result from "Change Query" will indicate that changes have occurred
-
Data Query: regardless of CDC, this should retrieve the entire data set of interest
- (e.g. SELECT * FROM tablexyz)
- on initial poll, the "Data Query" is executed regardless of the results of "Change Query"
- after initial publish, subsequent payloads will include an additional "Changes" field
- this will include the results of the "Change Query"
Driver ID: EAE46646-63D5-4C94-970B-A046B4D6DE85 Group: Historian
Required properties:
- Address String — SQL Server Address
- Port SignedInteger — SQL Server Port
- Username String
- Password String
- name String — A unique, user-defined name for this device. Used to identify the device throughout the edge gateway, including in message broker topics and logs.
Optional properties:
- ReadOnlyMode SignedInteger — ReadOnly Protections Options: 0, 1
- AppName String — Client Application ID
- MinTLSVersion SignedInteger — Minimum TLS Version Options: 0, 1, 2, 3
- RequestTimeout SignedInteger — Request Timeout (S)
- KeepAlive SignedInteger — TCP Keep-Alive (S) (0 to disable)
- PacketSize SignedInteger — Maximum Packet Size
- HostName String — Client Workstation ID
- ServerCertificate String — CA Chain (PEM)
- Instance String — Server Instance Path
- Database String — Server Database Name
- Encryption SignedInteger — Encryption Mode Options: 0, 1, 2, 3
- ValidateQuery SignedInteger — Parse Queries and Validate Syntax (MySQL Syntax Only) Options: 0, 1
- ConnectionTimeout SignedInteger — Connection Timeout (S)
- description String — Optional free-text notes about this device, such as its physical location or purpose.
Request Body
GraphQL Query
mutation CreateDevice($input: CreateDeviceRequest!) {
CreateDevice(input: $input) {
ID
Name
DriverID
Description
}
}
Variables
{
"input": {
"Name": "My Microsoft SQL Server Client Device",
"Description": "",
"DriverID": "EAE46646-63D5-4C94-970B-A046B4D6DE85",
"AliasTopics": false,
"Debug": false,
"MetaData": [],
"StoppedState": false,
"StatusRegister": null,
"Properties": [
{
"Key": "Address",
"Value": "192.168.1.100"
},
{
"Key": "ReadOnlyMode",
"Value": "0"
},
{
"Key": "AppName",
"Value": "devicehub"
},
{
"Key": "MinTLSVersion",
"Value": "0"
},
{
"Key": "RequestTimeout",
"Value": "10"
},
{
"Key": "KeepAlive",
"Value": "30"
},
{
"Key": "PacketSize",
"Value": "4096"
},
{
"Key": "Port",
"Value": "502"
},
{
"Key": "Username",
"Value": "admin"
},
{
"Key": "Password",
"Value": "password"
},
{
"Key": "HostName",
"Value": ""
},
{
"Key": "ServerCertificate",
"Value": ""
},
{
"Key": "Instance",
"Value": ""
},
{
"Key": "Database",
"Value": "master"
},
{
"Key": "Encryption",
"Value": "0"
},
{
"Key": "ValidateQuery",
"Value": "0"
},
{
"Key": "ConnectionTimeout",
"Value": "5"
},
{
"Key": "name",
"Value": "mssql-client_device"
},
{
"Key": "description",
"Value": ""
}
]
}
}
Response
Status: 200 OK
{
"data": {
"CreateDevice": {
"ID": "<generated-uuid>",
"Name": "My Microsoft SQL Server Client Device",
"DriverID": "EAE46646-63D5-4C94-970B-A046B4D6DE85",
"Description": ""
}
}
}
Create Device - Mitsubishi A Series Serial
POST {{edgeUrl}}/devicehub/v2
Mitsubishi A Series Serial Driver
| Required fields: | > Device File |
| > Baud Rate | |
| > Data Bits | |
| > Stop Bits | |
| > Parity | |
| > PLC Type | |
| Browse devices supported: | No |
| Browse tags supported: | No |
| Supported device models: | Mitsubishi A Series Serial Devices (A2SH/A2USH/A2N) |
| Miscellaneous: | > Byte Order: Little-Endian |
| > Register Grouping Size: 32 | |
| > word == uint16 |
Driver ID: EDB59BDF-3459-48C2-9E8E-6F5CAAA3E343 Group: Mitsubishi
Required properties:
- deviceFile String — The serial port path used to communicate with the device (/dev/ttyS1, /dev/ttyUSB0, …). Must match a port available on the gateway host.
- PlcType SignedInteger — PLC Type Options: 0, 1, 2
- name String — A unique, user-defined name for this device. Used to identify the device throughout the edge gateway, including in message broker topics and logs.
Optional properties:
- parity SignedInteger — The error-checking method used for serial communication (None, Even, or Odd). Must match the device's configured parity setting. Options: 0, 1, 2
- ReadTimeout SignedInteger — Serial Read Timeout (ms)
- RetryCount SignedInteger — Read Retries (0 for no retry)
- baudRate SignedInteger — The data transmission speed, in bits per second, used for serial communication. Must match the baud rate configured on the device. Options: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10
- dataBits SignedInteger — The number of data bits in each transmitted character (typically 7 or 8). Must match the device's serial configuration. Options: 0, 1, 2, 3
- stopBits SignedInteger — The number of stop bits used to signal the end of a character (typically 1 or 2). Must match the device's serial configuration. Options: 0, 1, 2
- WriteDelay SignedInteger — Wait time before resetting RTS during serial write (ms)
- description String — Optional free-text notes about this device, such as its physical location or purpose.
Request Body
GraphQL Query
mutation CreateDevice($input: CreateDeviceRequest!) {
CreateDevice(input: $input) {
ID
Name
DriverID
Description
}
}
Variables
{
"input": {
"Name": "My Mitsubishi A Series Serial Device",
"Description": "",
"DriverID": "EDB59BDF-3459-48C2-9E8E-6F5CAAA3E343",
"AliasTopics": false,
"Debug": false,
"MetaData": [],
"StoppedState": false,
"StatusRegister": null,
"Properties": [
{
"Key": "deviceFile",
"Value": "/dev/ttyUSB0"
},
{
"Key": "parity",
"Value": "0"
},
{
"Key": "PlcType",
"Value": "0"
},
{
"Key": "ReadTimeout",
"Value": "200"
},
{
"Key": "RetryCount",
"Value": "2"
},
{
"Key": "baudRate",
"Value": "0"
},
{
"Key": "dataBits",
"Value": "0"
},
{
"Key": "stopBits",
"Value": "0"
},
{
"Key": "WriteDelay",
"Value": "3"
},
{
"Key": "name",
"Value": "mitsubishi-a-ser_device"
},
{
"Key": "description",
"Value": ""
}
]
}
}
Response
Status: 200 OK
{
"data": {
"CreateDevice": {
"ID": "<generated-uuid>",
"Name": "My Mitsubishi A Series Serial Device",
"DriverID": "EDB59BDF-3459-48C2-9E8E-6F5CAAA3E343",
"Description": ""
}
}
}
Create Device - Mitsubishi FX2N serial (Gen1.3)
POST {{edgeUrl}}/devicehub/v2
Mitsubishi FX2N serial (Gen1.3)
| Prerequisites | No |
| Required fields | Communication Port Baud Rate Data Bits Stop Bits Parity |
| Browse devices supported | No |
| Browse tags supported | No |
| Supported device models | Mitsubishi FX2N series |
Driver ID: 1AED6791-3AE4-4642-BF16-47AE5C71EEC6 Group: Mitsubishi
Required properties:
- deviceFile String — Local Serial connection file path.
- dataBits SignedInteger — Serial communication databits parameter.
- stopBits SignedInteger — Serial communication stopbits parameter.
- name String — Device Name that describes your asset.
- baudRate SignedInteger — Serial communication baudrate parameter.
- parity SignedInteger — Serial communication parity parameter. Options: 0, 1, 2
Optional properties:
- description String — Description of the device or an asset.
Request Body
GraphQL Query
mutation CreateDevice($input: CreateDeviceRequest!) {
CreateDevice(input: $input) {
ID
Name
DriverID
Description
}
}
Variables
{
"input": {
"Name": "My Mitsubishi FX2N serial (Gen1.3) Device",
"Description": "",
"DriverID": "1AED6791-3AE4-4642-BF16-47AE5C71EEC6",
"AliasTopics": false,
"Debug": false,
"MetaData": [],
"StoppedState": false,
"StatusRegister": null,
"Properties": [
{
"Key": "description",
"Value": ""
},
{
"Key": "deviceFile",
"Value": "/dev/ttyUSB0"
},
{
"Key": "dataBits",
"Value": "7"
},
{
"Key": "stopBits",
"Value": "1"
},
{
"Key": "name",
"Value": "mitsubishi device"
},
{
"Key": "baudRate",
"Value": "9600"
},
{
"Key": "parity",
"Value": "0"
}
]
}
}
Response
Status: 200 OK
{
"data": {
"CreateDevice": {
"ID": "<generated-uuid>",
"Name": "My Mitsubishi FX2N serial (Gen1.3) Device",
"DriverID": "1AED6791-3AE4-4642-BF16-47AE5C71EEC6",
"Description": ""
}
}
}
Create Device - Mitsubishi FX2N-10GM/20GM Serial (Gen1.3)
POST {{edgeUrl}}/devicehub/v2
Mitsubishi FX2N-10GM/20GM Serial (Gen1.3)
| Prerequisites | No |
| Required fields | Communication Port Baud Rate Data Bits Stop Bits Parity |
| Browse devices supported | No |
| Browse tags supported | No |
| Supported device models | Mitsubishi FX2N-10GM/20GM Series |
Driver ID: 547F2D33-0081-424A-978D-0CE3C6676410 Group: Mitsubishi
Required properties:
- name String — Device Name that describes your asset.
- baudRate SignedInteger — Serial communication baudrate parameter.
- stopBits SignedInteger — Serial communication stopbits parameter.
- parity SignedInteger — Serial communication parity parameter. Options: 0, 1, 2
- deviceFile String — Local Serial connection file path.
- dataBits SignedInteger — Serial communication databits parameter.
Optional properties:
- description String — Description of the device or an asset.
Request Body
GraphQL Query
mutation CreateDevice($input: CreateDeviceRequest!) {
CreateDevice(input: $input) {
ID
Name
DriverID
Description
}
}
Variables
{
"input": {
"Name": "My Mitsubishi FX2N-10GM/20GM Serial (Gen1.3) Device",
"Description": "",
"DriverID": "547F2D33-0081-424A-978D-0CE3C6676410",
"AliasTopics": false,
"Debug": false,
"MetaData": [],
"StoppedState": false,
"StatusRegister": null,
"Properties": [
{
"Key": "name",
"Value": "mitsubishi device"
},
{
"Key": "description",
"Value": ""
},
{
"Key": "baudRate",
"Value": "9600"
},
{
"Key": "stopBits",
"Value": "1"
},
{
"Key": "parity",
"Value": "0"
},
{
"Key": "deviceFile",
"Value": "/dev/ttyUSB0"
},
{
"Key": "dataBits",
"Value": "8"
}
]
}
}
Response
Status: 200 OK
{
"data": {
"CreateDevice": {
"ID": "<generated-uuid>",
"Name": "My Mitsubishi FX2N-10GM/20GM Serial (Gen1.3) Device",
"DriverID": "547F2D33-0081-424A-978D-0CE3C6676410",
"Description": ""
}
}
}
Create Device - Mitsubishi FX3G ASCII Ethernet (Gen1.3)
POST {{edgeUrl}}/devicehub/v2
Mitsubishi FX3G ASCII Ethernet (Gen1.3)
| Prerequisites | None |
| Required fields | Network address Network Port |
| Browse devices supported | No |
| Browse tags supported | No |
| Supported device models | Mitsubishi FX3G Series |
Driver ID: 0D25A6F3-55DE-41CF-89CE-7BBA69A5A34D Group: Mitsubishi
Required properties:
- name String — Device Name that describes your asset.
- networkAddress String — IP Address of the device.
- networkPort SignedInteger — Network port of the device.
Optional properties:
- description String — Description of the device or an asset.
Request Body
GraphQL Query
mutation CreateDevice($input: CreateDeviceRequest!) {
CreateDevice(input: $input) {
ID
Name
DriverID
Description
}
}
Variables
{
"input": {
"Name": "My Mitsubishi FX3G ASCII Ethernet (Gen1.3) Device",
"Description": "",
"DriverID": "0D25A6F3-55DE-41CF-89CE-7BBA69A5A34D",
"AliasTopics": false,
"Debug": false,
"MetaData": [],
"StoppedState": false,
"StatusRegister": null,
"Properties": [
{
"Key": "name",
"Value": "mitsubish device"
},
{
"Key": "description",
"Value": ""
},
{
"Key": "networkAddress",
"Value": "192.168.1.100"
},
{
"Key": "networkPort",
"Value": "502"
}
]
}
}
Response
Status: 200 OK
{
"data": {
"CreateDevice": {
"ID": "<generated-uuid>",
"Name": "My Mitsubishi FX3G ASCII Ethernet (Gen1.3) Device",
"DriverID": "0D25A6F3-55DE-41CF-89CE-7BBA69A5A34D",
"Description": ""
}
}
}
Create Device - Mitsubishi FX3G Binary Ethernet (Gen1.3)
POST {{edgeUrl}}/devicehub/v2
Mitsubishi FX3G Binary Ethernet (Gen1.3)
| Prerequisites | None |
| Required fields | Network address Network Port |
| Browse devices supported | No |
| Browse tags supported | No |
| Supported device models | Mitsubishi FX3G Series |
Driver ID: 793F3159-4523-4DCB-80A2-24B0F9432D0C Group: Mitsubishi
Required properties:
- name String — Device Name that describes your asset.
- networkAddress String — IP Address of the device.
- networkPort SignedInteger — Network port of the device.
Optional properties:
- description String — Description of the device or an asset.
Request Body
GraphQL Query
mutation CreateDevice($input: CreateDeviceRequest!) {
CreateDevice(input: $input) {
ID
Name
DriverID
Description
}
}
Variables
{
"input": {
"Name": "My Mitsubishi FX3G Binary Ethernet (Gen1.3) Device",
"Description": "",
"DriverID": "793F3159-4523-4DCB-80A2-24B0F9432D0C",
"AliasTopics": false,
"Debug": false,
"MetaData": [],
"StoppedState": false,
"StatusRegister": null,
"Properties": [
{
"Key": "name",
"Value": "mitsubishi device"
},
{
"Key": "description",
"Value": ""
},
{
"Key": "networkAddress",
"Value": "192.168.1.100"
},
{
"Key": "networkPort",
"Value": "502"
}
]
}
}
Response
Status: 200 OK
{
"data": {
"CreateDevice": {
"ID": "<generated-uuid>",
"Name": "My Mitsubishi FX3G Binary Ethernet (Gen1.3) Device",
"DriverID": "793F3159-4523-4DCB-80A2-24B0F9432D0C",
"Description": ""
}
}
}
Create Device - Mitsubishi FX3U Serial (Gen1.3)
POST {{edgeUrl}}/devicehub/v2
Mitsubishi FX3U Serial (Gen1.3)
| Prerequisites | No |
| Required fields | Communication Port Baud Rate Data Bits Parity Stop Bits |
| Browse devices supported | No |
| Browse tags supported | No |
| Supported device models | Mitsubishi FX3 Series |
Driver ID: AB084A0D-92A7-47C7-B4BC-825863223ABD Group: Mitsubishi
Required properties:
- name String — Device Name that describes your asset.
- deviceFile String — Local Serial connection file path.
- baudRate SignedInteger — Serial communication baudrate parameter.
- dataBits SignedInteger — Serial communication databits parameter.
- stopBits SignedInteger — Serial communication stopbits parameter.
- parity SignedInteger — Serial communication parity parameter. Options: 0, 1, 2
Optional properties:
- description String — Description of the device or an asset.
Request Body
GraphQL Query
mutation CreateDevice($input: CreateDeviceRequest!) {
CreateDevice(input: $input) {
ID
Name
DriverID
Description
}
}
Variables
{
"input": {
"Name": "My Mitsubishi FX3U Serial (Gen1.3) Device",
"Description": "",
"DriverID": "AB084A0D-92A7-47C7-B4BC-825863223ABD",
"AliasTopics": false,
"Debug": false,
"MetaData": [],
"StoppedState": false,
"StatusRegister": null,
"Properties": [
{
"Key": "name",
"Value": "mitsubishi device"
},
{
"Key": "deviceFile",
"Value": "/dev/ttyUSB0"
},
{
"Key": "baudRate",
"Value": "9600"
},
{
"Key": "dataBits",
"Value": "7"
},
{
"Key": "stopBits",
"Value": "1"
},
{
"Key": "description",
"Value": ""
},
{
"Key": "parity",
"Value": "0"
}
]
}
}
Response
Status: 200 OK
{
"data": {
"CreateDevice": {
"ID": "<generated-uuid>",
"Name": "My Mitsubishi FX3U Serial (Gen1.3) Device",
"DriverID": "AB084A0D-92A7-47C7-B4BC-825863223ABD",
"Description": ""
}
}
}
Create Device - Mitsubishi FX5U Serial (Gen1.3)
POST {{edgeUrl}}/devicehub/v2
Mitsubishi FX5U Serial (Gen1.3)
| Prerequisites | No |
| Required fields | Communication Port Baud Rate Data Bits Parity Stop Bits |
| Browse devices supported | No |
| Browse tags supported | No |
| Supported device models | Mitsubishi iQ-F Series, 4-wire RS485 |
Driver ID: 7DA81F7B-CAF9-4E23-BE23-4D8B78B94E5F Group: Mitsubishi
Required properties:
- dataBits SignedInteger — Serial communication databits parameter.
- stopBits SignedInteger — Serial communication stopbits parameter.
- parity SignedInteger — Serial communication parity parameter. Options: 0, 1, 2
- stationId SignedInteger — Station no of device.
- name String — Device Name that describes your asset.
- deviceFile String — Local Serial connection file path.
- baudRate SignedInteger — Serial communication baudrate parameter.
Optional properties:
- description String — Description of the device or an asset.
Request Body
GraphQL Query
mutation CreateDevice($input: CreateDeviceRequest!) {
CreateDevice(input: $input) {
ID
Name
DriverID
Description
}
}
Variables
{
"input": {
"Name": "My Mitsubishi FX5U Serial (Gen1.3) Device",
"Description": "",
"DriverID": "7DA81F7B-CAF9-4E23-BE23-4D8B78B94E5F",
"AliasTopics": false,
"Debug": false,
"MetaData": [],
"StoppedState": false,
"StatusRegister": null,
"Properties": [
{
"Key": "dataBits",
"Value": "8"
},
{
"Key": "stopBits",
"Value": "1"
},
{
"Key": "parity",
"Value": "0"
},
{
"Key": "stationId",
"Value": "0"
},
{
"Key": "name",
"Value": "mitsubishi device"
},
{
"Key": "deviceFile",
"Value": "/dev/ttyS0"
},
{
"Key": "baudRate",
"Value": "9600"
},
{
"Key": "description",
"Value": ""
}
]
}
}
Response
Status: 200 OK
{
"data": {
"CreateDevice": {
"ID": "<generated-uuid>",
"Name": "My Mitsubishi FX5U Serial (Gen1.3) Device",
"DriverID": "7DA81F7B-CAF9-4E23-BE23-4D8B78B94E5F",
"Description": ""
}
}
}
Create Device - Mitsubishi iQ-F Ethernet
POST {{edgeUrl}}/devicehub/v2
Mitsubishi iQ-F Ethernet Driver
| Required fields: | > Network Address |
| > Network Port | |
| > Network ID | |
| > Station ID | |
| > Encoding | |
| Browse devices supported: | No |
| Browse tags supported: | No |
| Supported device models: | Mitsubishi iQ-F Series Ethernet Devices (Ascii/Binary) |
| > FX5U Ethernet Devices (exluding V, LT-, LS-, ZR) | |
| Miscellaneous: | > Byte Order: (Binary -> Little-Endian, Ascii -> Big-Endian) |
| > Register Grouping Size: 64 | |
| > strings: padding always added to "Length", up to next register | |
| > timers: TN/SN (dint -> raw value, string -> T#-12d23h34m45s567ms format) | |
| > word/dword/lword == uint16/uint32/uint64 | |
| > real/dreal == float32/float64 | |
| > LZ/LTN/LCN/LSN do not support count > 1 | |
| > LTN/LCN/LSN are not supported in ascii mode | |
| > Address Formats prefixed with '*' may not match PLC. Ensure all addresses are converted to Decimal correctly. |
Driver ID: A6BBE2F9-39D1-49D0-A05A-947B5D837911 Group: Mitsubishi
Required properties:
- networkPort SignedInteger — PLC Port
- stationId SignedInteger — Station No. of PLC
- networkId SignedInteger — Network No. of PLC
- networkAddress String — PLC IP
- name String — A unique, user-defined name for this device. Used to identify the device throughout the edge gateway, including in message broker topics and logs.
Optional properties:
- maxPDUSize SignedInteger — Maximum block size of PLC memory per request (# bytes)
- RetryCount SignedInteger — Read Retries (0 for no retry)
- KeepAlive SignedInteger — TCP Keep-Alive (s) (0 to disable)
- encoding SignedInteger — Encoding Format Options: 0, 1
- ReadTimeout SignedInteger — Read Timeout (ms)
- description String — Optional free-text notes about this device, such as its physical location or purpose.
Request Body
GraphQL Query
mutation CreateDevice($input: CreateDeviceRequest!) {
CreateDevice(input: $input) {
ID
Name
DriverID
Description
}
}
Variables
{
"input": {
"Name": "My Mitsubishi iQ-F Ethernet Device",
"Description": "",
"DriverID": "A6BBE2F9-39D1-49D0-A05A-947B5D837911",
"AliasTopics": false,
"Debug": false,
"MetaData": [],
"StoppedState": false,
"StatusRegister": null,
"Properties": [
{
"Key": "networkPort",
"Value": "502"
},
{
"Key": "maxPDUSize",
"Value": "1920"
},
{
"Key": "RetryCount",
"Value": "0"
},
{
"Key": "KeepAlive",
"Value": "60"
},
{
"Key": "stationId",
"Value": "255"
},
{
"Key": "encoding",
"Value": "0"
},
{
"Key": "networkId",
"Value": "0"
},
{
"Key": "ReadTimeout",
"Value": "2000"
},
{
"Key": "networkAddress",
"Value": "192.168.1.100"
},
{
"Key": "name",
"Value": "mitsubishi-iqf-eth_device"
},
{
"Key": "description",
"Value": ""
}
]
}
}
Response
Status: 200 OK
{
"data": {
"CreateDevice": {
"ID": "<generated-uuid>",
"Name": "My Mitsubishi iQ-F Ethernet Device",
"DriverID": "A6BBE2F9-39D1-49D0-A05A-947B5D837911",
"Description": ""
}
}
}
Create Device - Mitsubishi iQ-R Ethernet
POST {{edgeUrl}}/devicehub/v2
Mitsubishi iQ-R Ethernet Driver
| Required fields: | > Network Address |
| > Network Port | |
| > Network ID | |
| > Station ID | |
| > Encoding | |
| Browse devices supported: | No |
| Browse tags supported: | No |
| Supported device models: | Mitsubishi iQ-R Series Ethernet Devices (Ascii/Binary) |
| > FX5U Ethernet Devices (exluding V, LT-, LS-, ZR) | |
| Miscellaneous: | > Byte Order: (Binary -> Little-Endian, Ascii -> Big-Endian) |
| > Register Grouping Size: 64 | |
| > strings: padding always added to "Length", up to next register | |
| > timers: TN/SN (dint -> raw value, string -> T#-12d23h34m45s567ms format) | |
| > word/dword/lword == uint16/uint32/uint64 | |
| > real/dreal == float32/float64 | |
| > LZ/LTN/LCN/LSN do not support count > 1 | |
| > LTN/LCN/LSN are not supported in ascii mode | |
| > Address Formats prefixed with '*' may not match PLC. Ensure all addresses are converted to Decimal correctly. |
Driver ID: 8A7DDEFC-94E5-46D2-BE41-68318B641856 Group: Mitsubishi
Required properties:
- networkPort SignedInteger — PLC Port
- stationId SignedInteger — Station No. of PLC
- networkId SignedInteger — Network No. of PLC
- networkAddress String — PLC IP
- name String — A unique, user-defined name for this device. Used to identify the device throughout the edge gateway, including in message broker topics and logs.
Optional properties:
- RetryCount SignedInteger — Read Retries (0 for no retry)
- encoding SignedInteger — Encoding Format Options: 0, 1
- maxPDUSize SignedInteger — Maximum block size of PLC memory per request (# bytes)
- ReadTimeout SignedInteger — Read Timeout (ms)
- KeepAlive SignedInteger — TCP Keep-Alive (s) (0 to disable)
- description String — Optional free-text notes about this device, such as its physical location or purpose.
Request Body
GraphQL Query
mutation CreateDevice($input: CreateDeviceRequest!) {
CreateDevice(input: $input) {
ID
Name
DriverID
Description
}
}
Variables
{
"input": {
"Name": "My Mitsubishi iQ-R Ethernet Device",
"Description": "",
"DriverID": "8A7DDEFC-94E5-46D2-BE41-68318B641856",
"AliasTopics": false,
"Debug": false,
"MetaData": [],
"StoppedState": false,
"StatusRegister": null,
"Properties": [
{
"Key": "RetryCount",
"Value": "0"
},
{
"Key": "encoding",
"Value": "0"
},
{
"Key": "networkPort",
"Value": "502"
},
{
"Key": "maxPDUSize",
"Value": "1920"
},
{
"Key": "ReadTimeout",
"Value": "2000"
},
{
"Key": "KeepAlive",
"Value": "60"
},
{
"Key": "stationId",
"Value": "255"
},
{
"Key": "networkId",
"Value": "0"
},
{
"Key": "networkAddress",
"Value": "192.168.1.100"
},
{
"Key": "name",
"Value": "mitsubishi-iqr-eth_device"
},
{
"Key": "description",
"Value": ""
}
]
}
}
Response
Status: 200 OK
{
"data": {
"CreateDevice": {
"ID": "<generated-uuid>",
"Name": "My Mitsubishi iQ-R Ethernet Device",
"DriverID": "8A7DDEFC-94E5-46D2-BE41-68318B641856",
"Description": ""
}
}
}
Create Device - Mitsubishi Q/L Ethernet
POST {{edgeUrl}}/devicehub/v2
Mitsubishi Q/L Ethernet Driver
| Required fields: | > Network Address |
| > Network Port | |
| > Network ID | |
| > Station ID | |
| > Encoding | |
| Browse devices supported: | No |
| Browse tags supported: | No |
| Supported device models: | Mitsubishi Q/L Ethernet Devices (incl. QJ71E71 modules) Ascii/Binary |
| Miscellaneous: | > Byte Order: (Binary -> Little-Endian, Ascii -> Big-Endian) |
| > Register Grouping Size: 960 | |
| > Network ID default: (QJ71E71 -> 1, Other -> 0) | |
| > strings: padding always added to "Length", up to next register | |
| > timers: TN/SN (dint -> raw value, string -> T#-12d23h34m45s567ms format) | |
| > word/dword/lword == uint16/uint32/uint64 | |
| > real/dreal == float32/float64 | |
| > Address Formats prefixed with '*' may not match PLC. Ensure all addresses are converted to Decimal correctly. |
Driver ID: 341C7310-967F-4BAC-9C80-2C93BB9B068B Group: Mitsubishi
Required properties:
- networkPort SignedInteger — PLC Port
- networkId SignedInteger — Network No. of PLC
- networkAddress String — PLC IP
- stationId SignedInteger — Station No. of PLC
- name String — A unique, user-defined name for this device. Used to identify the device throughout the edge gateway, including in message broker topics and logs.
Optional properties:
- encoding SignedInteger — Encoding Format Options: 0, 1
- ReadTimeout SignedInteger — Read Timeout (ms)
- RetryCount SignedInteger — Read Retries (0 for no retry)
- KeepAlive SignedInteger — TCP Keep-Alive (s) (0 to disable)
- maxPDUSize SignedInteger — Maximum block size of PLC memory per request (# bytes)
- description String — Optional free-text notes about this device, such as its physical location or purpose.
Request Body
GraphQL Query
mutation CreateDevice($input: CreateDeviceRequest!) {
CreateDevice(input: $input) {
ID
Name
DriverID
Description
}
}
Variables
{
"input": {
"Name": "My Mitsubishi Q/L Ethernet Device",
"Description": "",
"DriverID": "341C7310-967F-4BAC-9C80-2C93BB9B068B",
"AliasTopics": false,
"Debug": false,
"MetaData": [],
"StoppedState": false,
"StatusRegister": null,
"Properties": [
{
"Key": "encoding",
"Value": "0"
},
{
"Key": "ReadTimeout",
"Value": "2000"
},
{
"Key": "RetryCount",
"Value": "0"
},
{
"Key": "KeepAlive",
"Value": "60"
},
{
"Key": "networkPort",
"Value": "502"
},
{
"Key": "maxPDUSize",
"Value": "1920"
},
{
"Key": "networkId",
"Value": "0"
},
{
"Key": "networkAddress",
"Value": "192.168.1.100"
},
{
"Key": "stationId",
"Value": "255"
},
{
"Key": "name",
"Value": "mitsubishi-ql-eth_device"
},
{
"Key": "description",
"Value": ""
}
]
}
}
Response
Status: 200 OK
{
"data": {
"CreateDevice": {
"ID": "<generated-uuid>",
"Name": "My Mitsubishi Q/L Ethernet Device",
"DriverID": "341C7310-967F-4BAC-9C80-2C93BB9B068B",
"Description": ""
}
}
}
Create Device - Mitsubishi Q06 Serial (Gen1.3)
POST {{edgeUrl}}/devicehub/v2
Mitsubishi Q06 Serial (Gen1.3)
| Prerequisites | No |
| Required fields | Communication Port Baud Rate Data Bits Stop Bits Parity |
| Browse devices supported | No |
| Browse tags supported | No |
| Supported device models | Mitsubishi Q06H CPU Series |
Driver ID: 66042B77-7B8F-486C-B8A6-E045A94D8D49 Group: Mitsubishi
Required properties:
- name String — Device Name that describes your asset.
- deviceFile String — Local Serial connection file path.
- baudRate SignedInteger — Serial communication baudrate parameter.
- dataBits SignedInteger — Serial communication databits parameter.
- stopBits SignedInteger — Serial communication stopbits parameter.
- parity SignedInteger — Serial communication parity parameter. Options: 0, 1, 2
Optional properties:
- description String — Description of the device or an asset.
Request Body
GraphQL Query
mutation CreateDevice($input: CreateDeviceRequest!) {
CreateDevice(input: $input) {
ID
Name
DriverID
Description
}
}
Variables
{
"input": {
"Name": "My Mitsubishi Q06 Serial (Gen1.3) Device",
"Description": "",
"DriverID": "66042B77-7B8F-486C-B8A6-E045A94D8D49",
"AliasTopics": false,
"Debug": false,
"MetaData": [],
"StoppedState": false,
"StatusRegister": null,
"Properties": [
{
"Key": "name",
"Value": "mitsubishi device"
},
{
"Key": "description",
"Value": ""
},
{
"Key": "deviceFile",
"Value": "/dev/ttyS0"
},
{
"Key": "baudRate",
"Value": "9600"
},
{
"Key": "dataBits",
"Value": "8"
},
{
"Key": "stopBits",
"Value": "1"
},
{
"Key": "parity",
"Value": "0"
}
]
}
}
Response
Status: 200 OK
{
"data": {
"CreateDevice": {
"ID": "<generated-uuid>",
"Name": "My Mitsubishi Q06 Serial (Gen1.3) Device",
"DriverID": "66042B77-7B8F-486C-B8A6-E045A94D8D49",
"Description": ""
}
}
}
Create Device - Mitsubishi QJ71E71
POST {{edgeUrl}}/devicehub/v2
Mitsubishi QJ71E71 Ethernet Driver
Driver ID: C35CD544-F1D7-4911-B38A-AD21AABE9744 Group: Mitsubishi
Required properties:
- stationId SignedInteger — Station No. of device
- networkAddress String — IP Address of device
- networkPort SignedInteger — TCP/IP port of device
- networkId SignedInteger — Network No. of device
- name String — A unique, user-defined name for this device. Used to identify the device throughout the edge gateway, including in message broker topics and logs.
Optional properties:
- description String — Optional free-text notes about this device, such as its physical location or purpose.
Request Body
GraphQL Query
mutation CreateDevice($input: CreateDeviceRequest!) {
CreateDevice(input: $input) {
ID
Name
DriverID
Description
}
}
Variables
{
"input": {
"Name": "My Mitsubishi QJ71E71 Device",
"Description": "",
"DriverID": "C35CD544-F1D7-4911-B38A-AD21AABE9744",
"AliasTopics": false,
"Debug": false,
"MetaData": [],
"StoppedState": false,
"StatusRegister": null,
"Properties": [
{
"Key": "stationId",
"Value": "1"
},
{
"Key": "networkAddress",
"Value": "192.168.1.100"
},
{
"Key": "networkPort",
"Value": "502"
},
{
"Key": "networkId",
"Value": "1"
},
{
"Key": "name",
"Value": "mitsubishi-qj71e71_device"
},
{
"Key": "description",
"Value": ""
}
]
}
}
Response
Status: 200 OK
{
"data": {
"CreateDevice": {
"ID": "<generated-uuid>",
"Name": "My Mitsubishi QJ71E71 Device",
"DriverID": "C35CD544-F1D7-4911-B38A-AD21AABE9744",
"Description": ""
}
}
}
Create Device - Mitsubishi_Q00_01H_serial (Gen1.3)
POST {{edgeUrl}}/devicehub/v2
Mitsubishi_Q00_01H_serial (Gen1.3)
| Prerequisites | No |
| Required fields | Communication Port Baud Rate Data Bits Stop Bits Parity |
| Browse devices supported | No |
| Browse tags supported | No |
| Supported device models | Mitsubishi Q series with Q00, Q01H CPU port, QJ71C24N communication module |
Driver ID: 5E339CD5-2C29-4E7E-AF1A-6A022B97211D Group: Mitsubishi
Required properties:
- name String — Device Name that describes your asset.
- deviceFile String — Local Serial connection file path.
- baudRate SignedInteger — Serial communication baudrate parameter.
- parity SignedInteger — Serial communication parity parameter. Options: 0, 1, 2
- dataBits SignedInteger — Serial communication databits parameter.
- stopBits SignedInteger — Serial communication stopbits parameter.
Optional properties:
- description String — Description of the device or an asset.
Request Body
GraphQL Query
mutation CreateDevice($input: CreateDeviceRequest!) {
CreateDevice(input: $input) {
ID
Name
DriverID
Description
}
}
Variables
{
"input": {
"Name": "My Mitsubishi_Q00_01H_serial (Gen1.3) Device",
"Description": "",
"DriverID": "5E339CD5-2C29-4E7E-AF1A-6A022B97211D",
"AliasTopics": false,
"Debug": false,
"MetaData": [],
"StoppedState": false,
"StatusRegister": null,
"Properties": [
{
"Key": "name",
"Value": "mitsubishi device"
},
{
"Key": "description",
"Value": ""
},
{
"Key": "deviceFile",
"Value": "/dev/ttyS0"
},
{
"Key": "baudRate",
"Value": "9600"
},
{
"Key": "parity",
"Value": "0"
},
{
"Key": "dataBits",
"Value": "8"
},
{
"Key": "stopBits",
"Value": "1"
}
]
}
}
Response
Status: 200 OK
{
"data": {
"CreateDevice": {
"ID": "<generated-uuid>",
"Name": "My Mitsubishi_Q00_01H_serial (Gen1.3) Device",
"DriverID": "5E339CD5-2C29-4E7E-AF1A-6A022B97211D",
"Description": ""
}
}
}
Create Device - Mitsubishi_Q02_02H_serial (Gen1.3)
POST {{edgeUrl}}/devicehub/v2
Mitsubishi_Q02_02H_serial (Gen1.3)
| Prerequisites | No |
| Required fields | Communication Port Baud Rate Data Bits Stop Bits Parity |
| Browse devices supported | No |
| Browse tags supported | No |
| Supported device models | Mitsubishi Q02/Q02H CPU port series |
Driver ID: EAA09420-76AB-41E9-B8D4-00778BE65B8D Group: Mitsubishi
Required properties:
- parity SignedInteger — Serial communication parity parameter. Options: 0, 1, 2
- name String — Device Name that describes your asset.
- baudRate SignedInteger — Serial communication baudrate parameter.
- dataBits SignedInteger — Serial communication databits parameter.
- stopBits SignedInteger — Serial communication stopbits parameter.
- deviceFile String — Local Serial connection file path.
Optional properties:
- description String — Description of the device or an asset.
Request Body
GraphQL Query
mutation CreateDevice($input: CreateDeviceRequest!) {
CreateDevice(input: $input) {
ID
Name
DriverID
Description
}
}
Variables
{
"input": {
"Name": "My Mitsubishi_Q02_02H_serial (Gen1.3) Device",
"Description": "",
"DriverID": "EAA09420-76AB-41E9-B8D4-00778BE65B8D",
"AliasTopics": false,
"Debug": false,
"MetaData": [],
"StoppedState": false,
"StatusRegister": null,
"Properties": [
{
"Key": "parity",
"Value": "0"
},
{
"Key": "name",
"Value": "mitsubishi device"
},
{
"Key": "baudRate",
"Value": "9600"
},
{
"Key": "dataBits",
"Value": "8"
},
{
"Key": "stopBits",
"Value": "1"
},
{
"Key": "description",
"Value": ""
},
{
"Key": "deviceFile",
"Value": "/dev/ttyS0"
}
]
}
}
Response
Status: 200 OK
{
"data": {
"CreateDevice": {
"ID": "<generated-uuid>",
"Name": "My Mitsubishi_Q02_02H_serial (Gen1.3) Device",
"DriverID": "EAA09420-76AB-41E9-B8D4-00778BE65B8D",
"Description": ""
}
}
}
Create Device - Modbus ASCII
POST {{edgeUrl}}/devicehub/v2
Modbus ASCII
| Required fields | Device File Baud Rate Data Bits Parity Stop Bits Station ID |
| Browse devices supported | No |
| Browse tags supported | No |
| Miscellaneous | Zero-Based Addressing specifies if Modbus Protocol addresses are 0-based or 1-based |
Driver ID: 7E0EB9A6-D638-11E9-BB65-2A2AE2DBCCE4 Group: Modbus
Required properties:
- stopBits SignedInteger — The number of stop bits used to signal the end of a character (typically 1 or 2). Must match the device's serial configuration.
- deviceFile String — The serial port path used to communicate with the device (/dev/ttyS1, /dev/ttyUSB0, …). Must match a port available on the gateway host.
- stationId SignedInteger — This is a station no of device.
- baudRate SignedInteger — The data transmission speed, in bits per second, used for serial communication. Must match the baud rate configured on the device. Options: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10
- dataBits SignedInteger — The number of data bits in each transmitted character (typically 7 or 8). Must match the device's serial configuration.
- parity SignedInteger — The error-checking method used for serial communication (None, Even, or Odd). Must match the device's configured parity setting. Options: 0, 1, 2
- name String — A unique, user-defined name for this device. Used to identify the device throughout the edge gateway, including in message broker topics and logs.
Optional properties:
- Zero-Based Addressing SignedInteger Options: 0, 1
- discreteGap SignedInteger — If this setting is > 0 for performance optimization it spans over address gaps when grouping tags
- requestTimeoutMs SignedInteger — Response Timeout (ms)
- maxDiscrete SignedInteger — Maximum number of Coil and Contact Registers allowed in a single request. Must be greater than Coil and Contact Allowable Gap Size
- maxAnalog SignedInteger — Maximum number of Input and Holding Registers allowed in a single request. Must be greater than Input and Holding Allowable Gap Size.
- analogGap SignedInteger — If this setting is > 0 for performance optimization it spans over address gaps when grouping tags
- description String — Optional free-text notes about this device, such as its physical location or purpose.
Request Body
GraphQL Query
mutation CreateDevice($input: CreateDeviceRequest!) {
CreateDevice(input: $input) {
ID
Name
DriverID
Description
}
}
Variables
{
"input": {
"Name": "My Modbus ASCII Device",
"Description": "",
"DriverID": "7E0EB9A6-D638-11E9-BB65-2A2AE2DBCCE4",
"AliasTopics": false,
"Debug": false,
"MetaData": [],
"StoppedState": false,
"StatusRegister": null,
"Properties": [
{
"Key": "stopBits",
"Value": "1"
},
{
"Key": "Zero-Based Addressing",
"Value": "0"
},
{
"Key": "discreteGap",
"Value": "0"
},
{
"Key": "deviceFile",
"Value": "/dev/ttyUSB0"
},
{
"Key": "stationId",
"Value": "0"
},
{
"Key": "requestTimeoutMs",
"Value": "2000"
},
{
"Key": "maxDiscrete",
"Value": "2000"
},
{
"Key": "maxAnalog",
"Value": "125"
},
{
"Key": "analogGap",
"Value": "0"
},
{
"Key": "baudRate",
"Value": "0"
},
{
"Key": "dataBits",
"Value": "8"
},
{
"Key": "parity",
"Value": "0"
},
{
"Key": "name",
"Value": "modbus-ascii_device"
},
{
"Key": "description",
"Value": ""
}
]
}
}
Response
Status: 200 OK
{
"data": {
"CreateDevice": {
"ID": "<generated-uuid>",
"Name": "My Modbus ASCII Device",
"DriverID": "7E0EB9A6-D638-11E9-BB65-2A2AE2DBCCE4",
"Description": ""
}
}
}
Create Device - Modbus ASCII Advanced
POST {{edgeUrl}}/devicehub/v2
Modbus ASCII Advanced
| Prerequisites | None |
| Required fields | Device File Baud Rate Data Bits Parity Stop Bits |
| Browse devices supported | No |
| Browse tags supported | No |
| Miscellaneous | Zero-Based Addressing specifies if Modbus Protocol addresses are 0-based or 1-based |
Use this driver instead of the Modbus ASCII driver when multiple stations are connected to the RS-485 bus. The Station ID setting can be customized at the tag level with this driver. The device connection status is defined by the last received response.
Driver ID: 5E0CFCEA-9AF0-4BE5-A8C2-C811A254D452 Group: Modbus
Required properties:
- baudRate SignedInteger — The data transmission speed, in bits per second, used for serial communication. Must match the baud rate configured on the device. Options: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10
- dataBits SignedInteger — The number of data bits in each transmitted character (typically 7 or 8). Must match the device's serial configuration.
- stopBits SignedInteger — The number of stop bits used to signal the end of a character (typically 1 or 2). Must match the device's serial configuration.
- parity SignedInteger — The error-checking method used for serial communication (None, Even, or Odd). Must match the device's configured parity setting. Options: 0, 1, 2
- deviceFile String — The serial port path used to communicate with the device (/dev/ttyS1, /dev/ttyUSB0, …). Must match a port available on the gateway host.
- name String — A unique, user-defined name for this device. Used to identify the device throughout the edge gateway, including in message broker topics and logs.
Optional properties:
- Zero-Based Addressing SignedInteger Options: 0, 1
- discreteGap SignedInteger — If this setting is > 0 for performance optimization it spans over address gaps when grouping tags
- analogGap SignedInteger — If this setting is > 0 for performance optimization it spans over address gaps when grouping tags
- Delay Between Polls SignedInteger — Delay between Poll requests (ms)
- requestTimeoutMs SignedInteger — Response Timeout (ms)
- maxDiscrete SignedInteger — Maximum number of Coil and Contact Registers allowed in a single request. Must be greater than Coil and Contact Allowable Gap Size
- maxAnalog SignedInteger — Maximum number of Input and Holding Registers allowed in a single request. Must be greater than Input and Holding Allowable Gap Size.
- description String — Optional free-text notes about this device, such as its physical location or purpose.
Request Body
GraphQL Query
mutation CreateDevice($input: CreateDeviceRequest!) {
CreateDevice(input: $input) {
ID
Name
DriverID
Description
}
}
Variables
{
"input": {
"Name": "My Modbus ASCII Advanced Device",
"Description": "",
"DriverID": "5E0CFCEA-9AF0-4BE5-A8C2-C811A254D452",
"AliasTopics": false,
"Debug": false,
"MetaData": [],
"StoppedState": false,
"StatusRegister": null,
"Properties": [
{
"Key": "baudRate",
"Value": "0"
},
{
"Key": "dataBits",
"Value": "8"
},
{
"Key": "stopBits",
"Value": "1"
},
{
"Key": "Zero-Based Addressing",
"Value": "0"
},
{
"Key": "discreteGap",
"Value": "0"
},
{
"Key": "analogGap",
"Value": "0"
},
{
"Key": "parity",
"Value": "0"
},
{
"Key": "deviceFile",
"Value": "/dev/ttyUSB0"
},
{
"Key": "Delay Between Polls",
"Value": "0"
},
{
"Key": "requestTimeoutMs",
"Value": "2000"
},
{
"Key": "maxDiscrete",
"Value": "2000"
},
{
"Key": "maxAnalog",
"Value": "125"
},
{
"Key": "name",
"Value": "modbus-ascii-adv_device"
},
{
"Key": "description",
"Value": ""
}
]
}
}
Response
Status: 200 OK
{
"data": {
"CreateDevice": {
"ID": "<generated-uuid>",
"Name": "My Modbus ASCII Advanced Device",
"DriverID": "5E0CFCEA-9AF0-4BE5-A8C2-C811A254D452",
"Description": ""
}
}
}
Create Device - Modbus Multi-Station RTU to TCP Converter
POST {{edgeUrl}}/devicehub/v2
Modbus Multi-Station RTU to TCP Converter
| Browse devices supported | No |
| Browse tags supported | No |
| Registers supported | No |
Use this driver to connect to Modbus RS-485 multi-station architectures in conjunction with multiple instances of the Modbus TCP driver. This driver will handle all serial communication with the RS-485 stations and expose them using a TCP server. You cannot add tags to this driver. Instead, all tags should be added to the Modbus TCP driver instances. This allows you to reuse tag names across different station IDs.
In the Modbus TCP driver instances, set the device parameters as follows:
| Parameter | Value |
|---|---|
| IP address | 127.0.0.1 |
| Response Timeout | Number of Stations * ([Response Timeout * (Retry Count + 1)] + [Retry Count * Pause Between Requests]) |
Driver ID: 4F0F523B-293C-4704-8282-6C2073C76C10 Group: Modbus
Required properties:
- port SignedInteger — Bind Port for TCP server
- maxTCPConnections SignedInteger — Maximum number of simultaneous TCP connections
- retryRequestCount SignedInteger — Maximum number of request retries
- pauseBetweenRequests SignedInteger — Pause between requests (ms)
- deviceFile String — The serial port path used to communicate with the device (/dev/ttyS1, /dev/ttyUSB0, …). Must match a port available on the gateway host.
- networkInterface String — Bind network interface for TCP server
- responseTimeout SignedInteger — Response timeout (ms)
- name String — A unique, user-defined name for this device. Used to identify the device throughout the edge gateway, including in message broker topics and logs.
Optional properties:
- stopBits SignedInteger — The number of stop bits used to signal the end of a character (typically 1 or 2). Must match the device's serial configuration. Options: 0, 1, 2
- baudRate SignedInteger — The data transmission speed, in bits per second, used for serial communication. Must match the baud rate configured on the device. Options: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10
- dataBits SignedInteger — The number of data bits in each transmitted character (typically 7 or 8). Must match the device's serial configuration. Options: 0, 1, 2, 3
- parity SignedInteger — The error-checking method used for serial communication (None, Even, or Odd). Must match the device's configured parity setting. Options: 0, 1, 2
- description String — Optional free-text notes about this device, such as its physical location or purpose.
Request Body
GraphQL Query
mutation CreateDevice($input: CreateDeviceRequest!) {
CreateDevice(input: $input) {
ID
Name
DriverID
Description
}
}
Variables
{
"input": {
"Name": "My Modbus Multi-Station RTU to TCP Converter Device",
"Description": "",
"DriverID": "4F0F523B-293C-4704-8282-6C2073C76C10",
"AliasTopics": false,
"Debug": false,
"MetaData": [],
"StoppedState": false,
"StatusRegister": null,
"Properties": [
{
"Key": "stopBits",
"Value": "0"
},
{
"Key": "port",
"Value": "502"
},
{
"Key": "maxTCPConnections",
"Value": "32"
},
{
"Key": "retryRequestCount",
"Value": "3"
},
{
"Key": "pauseBetweenRequests",
"Value": "10"
},
{
"Key": "deviceFile",
"Value": "/dev/ttyUSB0"
},
{
"Key": "baudRate",
"Value": "0"
},
{
"Key": "dataBits",
"Value": "0"
},
{
"Key": "parity",
"Value": "0"
},
{
"Key": "networkInterface",
"Value": "0.0.0.0"
},
{
"Key": "responseTimeout",
"Value": "5000"
},
{
"Key": "name",
"Value": "modbus-converter_device"
},
{
"Key": "description",
"Value": ""
}
]
}
}
Response
Status: 200 OK
{
"data": {
"CreateDevice": {
"ID": "<generated-uuid>",
"Name": "My Modbus Multi-Station RTU to TCP Converter Device",
"DriverID": "4F0F523B-293C-4704-8282-6C2073C76C10",
"Description": ""
}
}
}
Create Device - Modbus RTU
POST {{edgeUrl}}/devicehub/v2
Modbus RTU
| Prerequisites | None |
| Required fields | Device File Baud Rate Data Bits Parity Stop Bits Station ID |
| Browse devices supported | No |
| Browse tags supported | No |
| Miscellaneous | Zero-Based Addressing specifies if Modbus Protocol addresses are 0-based or 1-based |
Driver ID: 546457FA-D638-11E9-BB65-2A2AE2DBCCE4 Group: Modbus
Required properties:
- baudRate SignedInteger — The data transmission speed, in bits per second, used for serial communication. Must match the baud rate configured on the device. Options: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10
- dataBits SignedInteger — The number of data bits in each transmitted character (typically 7 or 8). Must match the device's serial configuration.
- parity SignedInteger — The error-checking method used for serial communication (None, Even, or Odd). Must match the device's configured parity setting. Options: 0, 1, 2
- stopBits SignedInteger — The number of stop bits used to signal the end of a character (typically 1 or 2). Must match the device's serial configuration.
- deviceFile String — The serial port path used to communicate with the device (/dev/ttyS1, /dev/ttyUSB0, …). Must match a port available on the gateway host.
- stationId SignedInteger — This is a station no of device.
- name String — A unique, user-defined name for this device. Used to identify the device throughout the edge gateway, including in message broker topics and logs.
Optional properties:
- maxAnalog SignedInteger — Maximum number of Input and Holding Registers allowed in a single request. Must be greater than Input and Holding Allowable Gap Size.
- analogGap SignedInteger — If this setting is > 0 for performance optimization it spans over address gaps when grouping tags
- Zero-Based Addressing SignedInteger Options: 0, 1
- discreteGap SignedInteger — If this setting is > 0 for performance optimization it spans over address gaps when grouping tags
- requestTimeoutMs SignedInteger — Response Timeout (ms)
- maxDiscrete SignedInteger — Maximum number of Coil and Contact Registers allowed in a single request. Must be greater than Coil and Contact Allowable Gap Size
- description String — Optional free-text notes about this device, such as its physical location or purpose.
Request Body
GraphQL Query
mutation CreateDevice($input: CreateDeviceRequest!) {
CreateDevice(input: $input) {
ID
Name
DriverID
Description
}
}
Variables
{
"input": {
"Name": "My Modbus RTU Device",
"Description": "",
"DriverID": "546457FA-D638-11E9-BB65-2A2AE2DBCCE4",
"AliasTopics": false,
"Debug": false,
"MetaData": [],
"StoppedState": false,
"StatusRegister": null,
"Properties": [
{
"Key": "maxAnalog",
"Value": "125"
},
{
"Key": "analogGap",
"Value": "0"
},
{
"Key": "baudRate",
"Value": "0"
},
{
"Key": "dataBits",
"Value": "8"
},
{
"Key": "parity",
"Value": "0"
},
{
"Key": "stopBits",
"Value": "1"
},
{
"Key": "Zero-Based Addressing",
"Value": "0"
},
{
"Key": "discreteGap",
"Value": "0"
},
{
"Key": "deviceFile",
"Value": "/dev/ttyUSB0"
},
{
"Key": "stationId",
"Value": "0"
},
{
"Key": "requestTimeoutMs",
"Value": "2000"
},
{
"Key": "maxDiscrete",
"Value": "2000"
},
{
"Key": "name",
"Value": "modbus-rtu_device"
},
{
"Key": "description",
"Value": ""
}
]
}
}
Response
Status: 200 OK
{
"data": {
"CreateDevice": {
"ID": "<generated-uuid>",
"Name": "My Modbus RTU Device",
"DriverID": "546457FA-D638-11E9-BB65-2A2AE2DBCCE4",
"Description": ""
}
}
}
Create Device - Modbus RTU Advanced
POST {{edgeUrl}}/devicehub/v2
Modbus RTU Advanced
| Prerequisites | None |
| Required fields | Device File Baud Rate Data Bits Parity Stop Bits |
| Browse devices supported | No |
| Browse tags supported | No |
| Miscellaneous | Zero-Based Addressing specifies if Modbus Protocol addresses are 0-based or 1-based |
Use this driver instead of the Modbus RTU driver when multiple stations are connected to the RS-485 bus. The Station ID setting can be customized at the tag level with this driver. The device connection status is defined by the last received response.
Driver ID: 49D60576-FC85-43F7-A7F0-CAE4ECE7B854 Group: Modbus
Required properties:
- baudRate SignedInteger — The data transmission speed, in bits per second, used for serial communication. Must match the baud rate configured on the device. Options: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10
- dataBits SignedInteger — The number of data bits in each transmitted character (typically 7 or 8). Must match the device's serial configuration.
- stopBits SignedInteger — The number of stop bits used to signal the end of a character (typically 1 or 2). Must match the device's serial configuration.
- parity SignedInteger — The error-checking method used for serial communication (None, Even, or Odd). Must match the device's configured parity setting. Options: 0, 1, 2
- deviceFile String — The serial port path used to communicate with the device (/dev/ttyS1, /dev/ttyUSB0, …). Must match a port available on the gateway host.
- name String — A unique, user-defined name for this device. Used to identify the device throughout the edge gateway, including in message broker topics and logs.
Optional properties:
- requestTimeoutMs SignedInteger — Response Timeout (ms)
- maxDiscrete SignedInteger — Maximum number of Coil and Contact Registers allowed in a single request. Must be greater than Coil and Contact Allowable Gap Size
- maxAnalog SignedInteger — Maximum number of Input and Holding Registers allowed in a single request. Must be greater than Input and Holding Allowable Gap Size.
- Zero-Based Addressing SignedInteger Options: 0, 1
- discreteGap SignedInteger — If this setting is > 0 for performance optimization it spans over address gaps when grouping tags
- analogGap SignedInteger — If this setting is > 0 for performance optimization it spans over address gaps when grouping tags
- Delay Between Polls SignedInteger — Delay between Poll requests (ms)
- description String — Optional free-text notes about this device, such as its physical location or purpose.
Request Body
GraphQL Query
mutation CreateDevice($input: CreateDeviceRequest!) {
CreateDevice(input: $input) {
ID
Name
DriverID
Description
}
}
Variables
{
"input": {
"Name": "My Modbus RTU Advanced Device",
"Description": "",
"DriverID": "49D60576-FC85-43F7-A7F0-CAE4ECE7B854",
"AliasTopics": false,
"Debug": false,
"MetaData": [],
"StoppedState": false,
"StatusRegister": null,
"Properties": [
{
"Key": "requestTimeoutMs",
"Value": "2000"
},
{
"Key": "maxDiscrete",
"Value": "2000"
},
{
"Key": "maxAnalog",
"Value": "125"
},
{
"Key": "baudRate",
"Value": "0"
},
{
"Key": "dataBits",
"Value": "8"
},
{
"Key": "stopBits",
"Value": "1"
},
{
"Key": "Zero-Based Addressing",
"Value": "0"
},
{
"Key": "discreteGap",
"Value": "0"
},
{
"Key": "analogGap",
"Value": "0"
},
{
"Key": "parity",
"Value": "0"
},
{
"Key": "deviceFile",
"Value": "/dev/ttyUSB0"
},
{
"Key": "Delay Between Polls",
"Value": "0"
},
{
"Key": "name",
"Value": "modbus-rtu-adv_device"
},
{
"Key": "description",
"Value": ""
}
]
}
}
Response
Status: 200 OK
{
"data": {
"CreateDevice": {
"ID": "<generated-uuid>",
"Name": "My Modbus RTU Advanced Device",
"DriverID": "49D60576-FC85-43F7-A7F0-CAE4ECE7B854",
"Description": ""
}
}
}
Create Device - Modbus RTU over TCP
POST {{edgeUrl}}/devicehub/v2
Modbus RTU over TCP
| Prerequisites | None |
| Required fields | Network address Network Port Station ID |
| Browse devices supported | No |
| Browse tags supported | No |
| Miscellaneous | Zero-Based Addressing specifies if Modbus Protocol addresses are 0-based or 1-based |
Use this driver to connect to a Modbus RTU server or gateway which is polling from Modbus RTU clients.
Driver ID: FAB8D777-BBD3-43FC-90E2-C69C41062660 Group: Modbus
Required properties:
- networkPort SignedInteger — The TCP or UDP port used to communicate with the device, depending on the protocol. Defaults to the standard port for the selected protocol but must match the port configured on the device.
- networkAddress String — The IP address of the device on the network.
- stationId SignedInteger — This is a station no of device.
- name String — A unique, user-defined name for this device. Used to identify the device throughout the edge gateway, including in message broker topics and logs.
Optional properties:
- maxDiscrete SignedInteger — Maximum number of Coil and Contact Registers allowed in a single request. Must be greater than Coil and Contact Allowable Gap Size
- Zero-Based Addressing SignedInteger Options: 0, 1
- pauseBetweenRetriesMs SignedInteger — Pause between Retries (ms)
- analogGap SignedInteger — If this setting is > 0 for performance optimization it spans over address gaps when grouping tags
- maxAnalog SignedInteger — Maximum number of Input and Holding Registers allowed in a single request. Must be greater than Input and Holding Allowable Gap Size.
- requestTimeoutMs SignedInteger — Response Timeout (ms)
- overrideStationID SignedInteger Options: 0, 1
- retryRequestCount SignedInteger — Retry request count
- discreteGap SignedInteger — If this setting is > 0 for performance optimization it spans over address gaps when grouping tags
- description String — Optional free-text notes about this device, such as its physical location or purpose.
Request Body
GraphQL Query
mutation CreateDevice($input: CreateDeviceRequest!) {
CreateDevice(input: $input) {
ID
Name
DriverID
Description
}
}
Variables
{
"input": {
"Name": "My Modbus RTU over TCP Device",
"Description": "",
"DriverID": "FAB8D777-BBD3-43FC-90E2-C69C41062660",
"AliasTopics": false,
"Debug": false,
"MetaData": [],
"StoppedState": false,
"StatusRegister": null,
"Properties": [
{
"Key": "maxDiscrete",
"Value": "2000"
},
{
"Key": "Zero-Based Addressing",
"Value": "0"
},
{
"Key": "pauseBetweenRetriesMs",
"Value": "0"
},
{
"Key": "analogGap",
"Value": "0"
},
{
"Key": "maxAnalog",
"Value": "125"
},
{
"Key": "networkPort",
"Value": "502"
},
{
"Key": "requestTimeoutMs",
"Value": "2000"
},
{
"Key": "networkAddress",
"Value": "192.168.1.100"
},
{
"Key": "overrideStationID",
"Value": "0"
},
{
"Key": "retryRequestCount",
"Value": "0"
},
{
"Key": "discreteGap",
"Value": "0"
},
{
"Key": "stationId",
"Value": "1"
},
{
"Key": "name",
"Value": "modbus-rtu-over-tcp_device"
},
{
"Key": "description",
"Value": ""
}
]
}
}
Response
Status: 200 OK
{
"data": {
"CreateDevice": {
"ID": "<generated-uuid>",
"Name": "My Modbus RTU over TCP Device",
"DriverID": "FAB8D777-BBD3-43FC-90E2-C69C41062660",
"Description": ""
}
}
}
Create Device - Modbus TCP
POST {{edgeUrl}}/devicehub/v2
Modbus TCP
| Prerequisites | None |
| Required fields | Network address Network Port Station ID |
| Browse devices supported | No |
| Browse tags supported | No |
| Miscellaneous | Zero-Based Addressing specifies if Modbus Protocol addresses are 0-based or 1-based |
Driver ID: 2AF1FA08-D638-11E9-BB65-2A2AE2DBCCE4 Group: Modbus
Required properties:
- stationId SignedInteger — This is a station no of device.
- networkPort SignedInteger — The TCP or UDP port used to communicate with the device, depending on the protocol. Defaults to the standard port for the selected protocol but must match the port configured on the device.
- networkAddress String — The IP address of the device on the network.
- name String — A unique, user-defined name for this device. Used to identify the device throughout the edge gateway, including in message broker topics and logs.
Optional properties:
- maxAnalog SignedInteger — Maximum number of Input and Holding Registers allowed in a single request. Must be greater than Input and Holding Allowable Gap Size.
- requestTimeoutMs SignedInteger — Response Timeout (ms)
- maxDiscrete SignedInteger — Maximum number of Coil and Contact Registers allowed in a single request. Must be greater than Coil and Contact Allowable Gap Size
- Zero-Based Addressing SignedInteger Options: 0, 1
- overrideStationID SignedInteger Options: 0, 1
- discreteGap SignedInteger — If this setting is > 0 for performance optimization it spans over address gaps when grouping tags
- analogGap SignedInteger — If this setting is > 0 for performance optimization it spans over address gaps when grouping tags
- description String — Optional free-text notes about this device, such as its physical location or purpose.
Request Body
GraphQL Query
mutation CreateDevice($input: CreateDeviceRequest!) {
CreateDevice(input: $input) {
ID
Name
DriverID
Description
}
}
Variables
{
"input": {
"Name": "My Modbus TCP Device",
"Description": "",
"DriverID": "2AF1FA08-D638-11E9-BB65-2A2AE2DBCCE4",
"AliasTopics": false,
"Debug": false,
"MetaData": [],
"StoppedState": false,
"StatusRegister": null,
"Properties": [
{
"Key": "maxAnalog",
"Value": "125"
},
{
"Key": "stationId",
"Value": "1"
},
{
"Key": "requestTimeoutMs",
"Value": "2000"
},
{
"Key": "maxDiscrete",
"Value": "2000"
},
{
"Key": "Zero-Based Addressing",
"Value": "0"
},
{
"Key": "networkPort",
"Value": "502"
},
{
"Key": "networkAddress",
"Value": "192.168.1.100"
},
{
"Key": "overrideStationID",
"Value": "0"
},
{
"Key": "discreteGap",
"Value": "0"
},
{
"Key": "analogGap",
"Value": "0"
},
{
"Key": "name",
"Value": "modbus-tcp_device"
},
{
"Key": "description",
"Value": ""
}
]
}
}
Response
Status: 200 OK
{
"data": {
"CreateDevice": {
"ID": "<generated-uuid>",
"Name": "My Modbus TCP Device",
"DriverID": "2AF1FA08-D638-11E9-BB65-2A2AE2DBCCE4",
"Description": ""
}
}
}
Create Device - Modbus UDP
POST {{edgeUrl}}/devicehub/v2
Modbus UDP
| Prerequisites | None |
| Required fields | Network address Network Port Station ID |
| Browse devices supported | No |
| Browse tags supported | No |
| Miscellaneous | Zero-Based Addressing specifies if Modbus Protocol addresses are 0-based or 1-based |
Driver ID: F3FD7C20-D637-11E9-BB65-2A2AE2DBCCE4 Group: Modbus
Required properties:
- networkPort SignedInteger — The TCP or UDP port used to communicate with the device, depending on the protocol. Defaults to the standard port for the selected protocol but must match the port configured on the device.
- stationId SignedInteger — This is a station no of device.
- networkAddress String — The IP address of the device on the network.
- name String — A unique, user-defined name for this device. Used to identify the device throughout the edge gateway, including in message broker topics and logs.
Optional properties:
- requestTimeoutMs SignedInteger — Response Timeout (ms)
- maxDiscrete SignedInteger — Maximum number of Coil and Contact Registers allowed in a single request. Must be greater than Coil and Contact Allowable Gap Size
- discreteGap SignedInteger — If this setting is > 0 for performance optimization it spans over address gaps when grouping tags
- analogGap SignedInteger — If this setting is > 0 for performance optimization it spans over address gaps when grouping tags
- Zero-Based Addressing SignedInteger Options: 0, 1
- maxAnalog SignedInteger — Maximum number of Input and Holding Registers allowed in a single request. Must be greater than Input and Holding Allowable Gap Size.
- description String — Optional free-text notes about this device, such as its physical location or purpose.
Request Body
GraphQL Query
mutation CreateDevice($input: CreateDeviceRequest!) {
CreateDevice(input: $input) {
ID
Name
DriverID
Description
}
}
Variables
{
"input": {
"Name": "My Modbus UDP Device",
"Description": "",
"DriverID": "F3FD7C20-D637-11E9-BB65-2A2AE2DBCCE4",
"AliasTopics": false,
"Debug": false,
"MetaData": [],
"StoppedState": false,
"StatusRegister": null,
"Properties": [
{
"Key": "networkPort",
"Value": "502"
},
{
"Key": "stationId",
"Value": "1"
},
{
"Key": "requestTimeoutMs",
"Value": "2000"
},
{
"Key": "maxDiscrete",
"Value": "2000"
},
{
"Key": "discreteGap",
"Value": "0"
},
{
"Key": "analogGap",
"Value": "0"
},
{
"Key": "networkAddress",
"Value": "192.168.1.100"
},
{
"Key": "Zero-Based Addressing",
"Value": "0"
},
{
"Key": "maxAnalog",
"Value": "125"
},
{
"Key": "name",
"Value": "modbus-udp_device"
},
{
"Key": "description",
"Value": ""
}
]
}
}
Response
Status: 200 OK
{
"data": {
"CreateDevice": {
"ID": "<generated-uuid>",
"Name": "My Modbus UDP Device",
"DriverID": "F3FD7C20-D637-11E9-BB65-2A2AE2DBCCE4",
"Description": ""
}
}
}
Create Device - MQTT Client
POST {{edgeUrl}}/devicehub/v2
MQTT Client Driver
| Required fields: | > Broker Address |
| > Broker Port | |
| Browse devices supported: | No |
| Browse tags supported: | No |
| Supported device models: | Compatible with Brokers >= MQTTv3 (only MQTTv4 features supported) |
| Miscellaneous: | > Generated certificates are self-signed |
| > All payloads are escapable strings: \\ , \" -> \ , " | |
| > Message receive order is not guaranteed | |
| > If Client ID is left blank, a random ID will be generated | |
| > Client ID cannot be >23 chars for MQTTv3 |
Driver ID: 236E3A53-E133-48D6-96F4-D95E61C7592A Group: MQTT
Required properties:
- ClientPrivateKey String — Client Private Key (PEM)
- BrokerAddress String — Broker IP or Hostname
- ClientCertificate String — Client Certificate (PEM)
- WillTopic String — LWT Topic
- Username String
- WillPayload String — LWT String Payload
- SecurePort SignedInteger — Broker SSL Port
- CertificateAuthority String — CA Chain (PEM)
- Port SignedInteger — Broker Port
- Password String
- name String — A unique, user-defined name for this device. Used to identify the device throughout the edge gateway, including in message broker topics and logs.
Optional properties:
- WillQos SignedInteger — LWT Qos Options: 0, 1, 2
- WillRetained SignedInteger — Retain LWT Message Options: 0, 1
- ProtocolVersion SignedInteger — MQTT Protocol Version Options: 0, 1, 2
- ClientID String — MQTT Client ID
- PersistentSession SignedInteger — Persistent Session with Broker Options: 0, 1
- KeepAlivePeriod SignedInteger — Keep-Alive Period (s)
- ClientAuthentication SignedInteger — Authentication Mode Options: 0, 1, 2, 3
- CertificateVerification SignedInteger — Broker Certificate & Hostname Verification Options: 0, 1
- WillEnabled SignedInteger — Enable LWT Message Options: 0, 1
- MinTLSVersion SignedInteger — Minimum TLS Version Options: 0, 1, 2, 3
- WriteTimeout SignedInteger — Write Timeout (s)
- ConnectTimeout SignedInteger — Connect Timeout (s)
- SecurityMode SignedInteger — SSL Mode Options: 0, 1
- description String — Optional free-text notes about this device, such as its physical location or purpose.
Request Body
GraphQL Query
mutation CreateDevice($input: CreateDeviceRequest!) {
CreateDevice(input: $input) {
ID
Name
DriverID
Description
}
}
Variables
{
"input": {
"Name": "My MQTT Client Device",
"Description": "Documentation placeholder for MQTT Client \u2014 safe to delete",
"DriverID": "236E3A53-E133-48D6-96F4-D95E61C7592A",
"AliasTopics": false,
"Debug": false,
"MetaData": [],
"StoppedState": false,
"StatusRegister": null,
"Properties": [
{
"Key": "ClientPrivateKey",
"Value": "-----BEGIN RSA PRIVATE KEY----END RSA PRIVATE KEY-----\n"
},
{
"Key": "WillQos",
"Value": "0"
},
{
"Key": "WillRetained",
"Value": "0"
},
{
"Key": "ProtocolVersion",
"Value": "0"
},
{
"Key": "ClientID",
"Value": ""
},
{
"Key": "BrokerAddress",
"Value": "192.168.1.100"
},
{
"Key": "ClientCertificate",
"Value": "-----BEGIN CERTIFICATE-----\nMIIDezCCAmOgAwIBAgIRAJZ2WQXP86zhFetJu59ilSIwDQYJKoZIhvcNAQELBQAw\nOTEUMBIGA1UEChMLbXF0dC1jbGllbnQxITAfBgNVBAMTGGxpdG11cy1lZGdlLTAw\nNTA1NmI5YjY3ODAeFw0yNjAyMTkxOTQzMzJaFw0yNzAyMTkxOTQzMzJaMDkxFDAS\nBgNVBAoTC21xdHQtY2xpZW50MSEwHwYDVQQDExhsaXRtdXMtZWRnZS0wMDUwNTZi\nOWI2NzgwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDS3vebm6+Dgn8C\nIh9/QF3hyklVZneRSFXC8T5+bNQ8KajcBHLMqbS3lR3IOxStSmV0fHbOnp1sdwnX\n9sVxqQ/fR4chtC0YKAZKiXQBRrUw37tU5v6sbxy3+8nNx8VPNmd1NIrlR6Cete8k\nqoEaQi2HABveGYWewTaw73LuzqgX8wEKKWITbr0SaZ8ACQH2yTAVBevk2iaD6xDn\nyxwo+vL7aidW7+S/7OoqMv9+WcvoIEIrkZ5knBULBBqZmt+hLiRzlrSnXc2lTMf6\noY5KvA2GqTPqFrNfDCDNsygHmFvXwSNlq2U2ggPEwzOYHpqjsfhf5g+2UrgEmGsj\nEOSoX+QzAgMBAAGjfjB8MA4GA1UdDwEB/wQEAwIC9DAdBgNVHSUEFjAUBggrBgEF\nBQcDAgYIKwYBBQUHAwEwDAYDVR0TAQH/BAIwADA9BgNVHREENjA0ghhsaXRtdXMt\nZWRnZS0wMDUwNTZiOWI2NziGGGxpdG11cy1lZGdlLTAwNTA1NmI5YjY3ODANBgkq\nhkiG9w0BAQsFAAOCAQEAxSrPI9g7M4LBBxmplNstvJeyMMX/OA1cQ6qLUZMovaRU\njzStez+vkro+7SF7l3W7I/gvIDEp44kyYG1WeIQHrd/FDn8m74+GhKwH59eaGUaw\nG2oYFTMy9tVPA65ZpOdKdT50Qz8ZXWWzoDLCzjBYdkv4l6v42DF0Gm9ve+Jin09x\nIpj3s0tBeWeoP7L5Qh8ZXCM0DJ6dJcXHrMsuga1iZeOm4Y/2jIaJ8zjZlPU4BEIW\nM8FgkAXEmlta3S06TuY0sHFAcpXofiWxuKMsGrUzVzcp/EmJRRUCpR01PF62kAlW\nblqZzQw2CUp0jWPqNuuLtw0wIWSZ28lNy3RbB2eguA==\n-----END CERTIFICATE-----\n"
},
{
"Key": "WillTopic",
"Value": "/example/path"
},
{
"Key": "PersistentSession",
"Value": "0"
},
{
"Key": "KeepAlivePeriod",
"Value": "30"
},
{
"Key": "ClientAuthentication",
"Value": "0"
},
{
"Key": "Username",
"Value": "admin"
},
{
"Key": "WillPayload",
"Value": "placeholder_willpayload"
},
{
"Key": "CertificateVerification",
"Value": "0"
},
{
"Key": "SecurePort",
"Value": "8883"
},
{
"Key": "CertificateAuthority",
"Value": "-----BEGIN CERTIFICATE-----\nMIICsDCCAZgCCQCNcjSUigYyLjANBgkqhkiG9w0BAQsFADAaMRgwFgYDVQQDDA9F\neGFtcGxlIE1RVFQgQ0EwHhcNMjYxMDE0MTk0MjE3WhcNMzYxMDExMTk0MjE3WjAa\nMRgwFgYDVQQDDA9FeGFtcGxlIE1RVFQgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IB\nDwAwggEKAoIBAQDdRa05ed0EbpUklTu0eh8JIGbnW70B7UTEzwGA7Wqt8F1ci6v3\n8NM06tUJRpbragr2KKiWRToFxuOFCyU34W5Qs432RsavpNeU9D671Tqq1BAx3ofP\nsMcK2fhUqXKdua0s5xAm7s+D8z6rMoWkdS5ybgglz/do8QkDtqBtftPlQ0BM67X7\nUQzpu/VqlBrPKEpR5fjAAzDck3q/Rst0TpfiOFJU9w1ZWjR1tkX63HX/cLFjWEd3\n/ydFcw0hOANoUn2LJqXEyhyfSJ+m1ZsVKhx0kFUx1YrSIYY3LXZTjo+JmC9uCgI9\nI4z7IOexe+mIfqHB/0eZZlcHhzWs1iJ4d2c7AgMBAAEwDQYJKoZIhvcNAQELBQAD\nggEBAF2eXxggQNPYkO5T46f8vOvP+tQitNOJlcnvLjNiV8q7pnCqeOb48Vj7DrpA\n8Ig/7UMjLVxELz1VkU30LWNKHo7gV6i851xmXi4mXvJwyj1F2OYMUmRtMgAbVj3a\nNNFKf7/P5bBlrYWkifuyJL3BFRIQvenJijtc/t238ZFfTHoGXAN/0FfcSCTwj2uO\nOnkLyamdmOlWXTqyKlfPl0iPIgyc07xBGrt0P+eOCRbcCk3uO/g3hMLvzpfFzbdx\ne7rU5nolW3yF98oAePIOTgFT6eFmSLaJ+YhPTPMEIEkBccl7Xy+Z6M5iM94t/Rzq\nKzhitwXDC697Xk9h1ld+T305MVE=\n-----END CERTIFICATE-----\n"
},
{
"Key": "WillEnabled",
"Value": "0"
},
{
"Key": "MinTLSVersion",
"Value": "0"
},
{
"Key": "WriteTimeout",
"Value": "10"
},
{
"Key": "ConnectTimeout",
"Value": "10"
},
{
"Key": "SecurityMode",
"Value": "0"
},
{
"Key": "Port",
"Value": "1883"
},
{
"Key": "Password",
"Value": "password"
},
{
"Key": "name",
"Value": "MQTT-client_device"
},
{
"Key": "description",
"Value": ""
}
]
}
}
Response
Status: 200 OK
{
"data": {
"CreateDevice": {
"ID": "<generated-uuid>",
"Name": "My MQTT Client Device",
"DriverID": "236E3A53-E133-48D6-96F4-D95E61C7592A",
"Description": "Documentation placeholder for MQTT Client \u2014 safe to delete"
}
}
}
Create Device - MQTT Client (No TLS)
POST {{edgeUrl}}/devicehub/v2
MQTT Client Driver
| Required fields: | > Broker Address |
| > Broker Port | |
| Browse devices supported: | No |
| Browse tags supported: | No |
| Supported device models: | Compatible with Brokers >= MQTTv3 (only MQTTv4 features supported) |
| Miscellaneous: | > Generated certificates are self-signed |
| > All payloads are escapable strings: \\ , \" -> \ , " | |
| > Message receive order is not guaranteed | |
| > If Client ID is left blank, a random ID will be generated | |
| > Client ID cannot be >23 chars for MQTTv3 |
Driver ID: 236E3A53-E133-48D6-96F4-D95E61C7592A Group: MQTT
Required properties:
- ClientPrivateKey String — Client Private Key (PEM)
- BrokerAddress String — Broker IP or Hostname
- ClientCertificate String — Client Certificate (PEM)
- WillTopic String — LWT Topic
- Username String
- WillPayload String — LWT String Payload
- SecurePort SignedInteger — Broker SSL Port
- CertificateAuthority String — CA Chain (PEM)
- Port SignedInteger — Broker Port
- Password String
- name String — A unique, user-defined name for this device. Used to identify the device throughout the edge gateway, including in message broker topics and logs.
Optional properties:
- WillQos SignedInteger — LWT Qos Options: 0, 1, 2
- WillRetained SignedInteger — Retain LWT Message Options: 0, 1
- ProtocolVersion SignedInteger — MQTT Protocol Version Options: 0, 1, 2
- ClientID String — MQTT Client ID
- PersistentSession SignedInteger — Persistent Session with Broker Options: 0, 1
- KeepAlivePeriod SignedInteger — Keep-Alive Period (s)
- ClientAuthentication SignedInteger — Authentication Mode Options: 0, 1, 2, 3
- CertificateVerification SignedInteger — Broker Certificate & Hostname Verification Options: 0, 1
- WillEnabled SignedInteger — Enable LWT Message Options: 0, 1
- MinTLSVersion SignedInteger — Minimum TLS Version Options: 0, 1, 2, 3
- WriteTimeout SignedInteger — Write Timeout (s)
- ConnectTimeout SignedInteger — Connect Timeout (s)
- SecurityMode SignedInteger — SSL Mode Options: 0, 1
- description String — Optional free-text notes about this device, such as its physical location or purpose.
Request Body
GraphQL Query
mutation CreateDevice($input: CreateDeviceRequest!) {
CreateDevice(input: $input) {
ID
Name
DriverID
Description
}
}
Variables
{
"input": {
"Name": "My MQTT Client Device (No TLS)",
"Description": "",
"DriverID": "236E3A53-E133-48D6-96F4-D95E61C7592A",
"AliasTopics": false,
"Debug": false,
"MetaData": [],
"StoppedState": false,
"StatusRegister": null,
"Properties": [
{
"Key": "ProtocolVersion",
"Value": "1"
},
{
"Key": "ClientID",
"Value": ""
},
{
"Key": "BrokerAddress",
"Value": "192.168.1.100"
},
{
"Key": "PersistentSession",
"Value": "1"
},
{
"Key": "KeepAlivePeriod",
"Value": "30"
},
{
"Key": "ClientAuthentication",
"Value": "0"
},
{
"Key": "WillEnabled",
"Value": "1"
},
{
"Key": "WriteTimeout",
"Value": "10"
},
{
"Key": "ConnectTimeout",
"Value": "10"
},
{
"Key": "SecurityMode",
"Value": "1"
},
{
"Key": "Port",
"Value": "1883"
},
{
"Key": "name",
"Value": "MQTT-client_device"
},
{
"Key": "description",
"Value": ""
}
]
}
}
Response
Status: 200 OK
{
"data": {
"CreateDevice": {
"ID": "<generated-uuid>",
"Name": "My MQTT Client Device (No TLS)",
"DriverID": "236E3A53-E133-48D6-96F4-D95E61C7592A",
"Description": ""
}
}
}
Create Device - MTConnect Ethernet (Gen1.3)
POST {{edgeUrl}}/devicehub/v2
MTConnect Ethernet (Gen1.3)
| Prerequisites | None |
| Required fields | Network address Network Port Device Name |
| Browse devices supported | No |
| Browse tags supported | Yes |
| Miscellaneous | This is a read-only driver |
Driver ID: A1203823-578D-48C4-832A-34670D6F0DF7 Group: MTConnect
Required properties:
- deviceName String — Device Name of the device.
- name String — Name that describes your asset.
- networkAddress String — IP Address of the device.
- networkPort SignedInteger — Network port of the device.
Optional properties:
- description String — Description of the device or an asset.
Request Body
GraphQL Query
mutation CreateDevice($input: CreateDeviceRequest!) {
CreateDevice(input: $input) {
ID
Name
DriverID
Description
}
}
Variables
{
"input": {
"Name": "My MTConnect Ethernet (Gen1.3) Device",
"Description": "",
"DriverID": "A1203823-578D-48C4-832A-34670D6F0DF7",
"AliasTopics": false,
"Debug": false,
"MetaData": [],
"StoppedState": false,
"StatusRegister": null,
"Properties": [
{
"Key": "deviceName",
"Value": "device"
},
{
"Key": "name",
"Value": "MTConnect Device"
},
{
"Key": "description",
"Value": ""
},
{
"Key": "networkAddress",
"Value": "192.168.1.100"
},
{
"Key": "networkPort",
"Value": "502"
}
]
}
}
Response
Status: 200 OK
{
"data": {
"CreateDevice": {
"ID": "<generated-uuid>",
"Name": "My MTConnect Ethernet (Gen1.3) Device",
"DriverID": "A1203823-578D-48C4-832A-34670D6F0DF7",
"Description": ""
}
}
}
Create Device - MySQL Server Client
POST {{edgeUrl}}/devicehub/v2
MySQL Server Client Driver
| Browse devices supported: | No |
| Browse tags supported: | No |
| Driver Settings: | > Address: IP, Hostname or Endpoint (Port setting is ignored if port is included here) |
| > Database: Specify query target within server | |
| > Username, Password: Client authentication | |
| > AppName: Client Application ID (optional connection identifier) | |
| Important: | > Ensure minimal permissions are set for the provided user account |
| Miscellaneous: | > Driver is Read-Only |
| > For multi-row output, use "Table" register | |
| > For single-row or single-field output, use "Record" register | |
| > When reading single rows, enable timestamp/value parsing by setting a positive index value for the respective fields | |
| > When reading multiple rows, it is recommended to keep output table sizes under 1MB | |
| > When using "Publish on Change", it may be necessary to define a "Change Query" on which any output will indicate that the data has been updated | |
| > To persist a change "state", configure state value parsing and implement "Change Query", the first argument must represet the "state" | |
| > All SQL queries (multi-statement in particular) should be tested independently of driver to ensure correctness | |
| Miscellaneous: | > Driver does not support writing to tags |
| > For multi-row output, use "Table" register | |
| > For single-row or single-field output, use "Record" register | |
| > When reading single rows, enable timestamp/value parsing by setting a positive index value for the respective fields | |
| > When reading multiple rows, it is recommended to keep output table sizes under 1MB | |
| > When using "Only Publish on Change of Value", it may be necessary to define a CDC query | |
| > All SQL queries (multi-statement in particular) should be tested independently of driver to ensure correctness |
Driver ID: 9F29E6F9-A195-4393-B1F1-8DDA3E8B3982 Group: Historian
Required properties:
- Port SignedInteger — SQL Server Port
- Username String
- Password String
- Address String — SQL Server Address
- name String — A unique, user-defined name for this device. Used to identify the device throughout the edge gateway, including in message broker topics and logs.
Optional properties:
- Database String — Server Database Name
- EnableTLS SignedInteger — Enable TLS Options: 0, 1
- CAChain String — Server CA Chain (PEM)
- ClientAuth SignedInteger — Client Authentication (mTLS) Options: 0, 1
- Certificate String — Client Certificate (PEM)
- RequestTimeout SignedInteger — Request Timeout (S)
- PrivateKey String — Client Private Key (PEM)
- AppName String — Client Application Name
- CertificateVerification SignedInteger — Server Certificate & Hostname Verification Options: 0, 1
- ConnectionTimeout SignedInteger — Connection Timeout (S)
- description String — Optional free-text notes about this device, such as its physical location or purpose.
Request Body
GraphQL Query
mutation CreateDevice($input: CreateDeviceRequest!) {
CreateDevice(input: $input) {
ID
Name
DriverID
Description
}
}
Variables
{
"input": {
"Name": "My MySQL Server Client Device",
"Description": "",
"DriverID": "9F29E6F9-A195-4393-B1F1-8DDA3E8B3982",
"AliasTopics": false,
"Debug": false,
"MetaData": [],
"StoppedState": false,
"StatusRegister": null,
"Properties": [
{
"Key": "Port",
"Value": "3306"
},
{
"Key": "Database",
"Value": "master"
},
{
"Key": "EnableTLS",
"Value": "1"
},
{
"Key": "CAChain",
"Value": ""
},
{
"Key": "ClientAuth",
"Value": "1"
},
{
"Key": "Certificate",
"Value": "<certificate>"
},
{
"Key": "RequestTimeout",
"Value": "10"
},
{
"Key": "Username",
"Value": "admin"
},
{
"Key": "Password",
"Value": "password"
},
{
"Key": "PrivateKey",
"Value": "<certificate>"
},
{
"Key": "AppName",
"Value": "devicehub"
},
{
"Key": "CertificateVerification",
"Value": "0"
},
{
"Key": "ConnectionTimeout",
"Value": "5"
},
{
"Key": "Address",
"Value": "192.168.1.100"
},
{
"Key": "name",
"Value": "mysql-client_device"
},
{
"Key": "description",
"Value": ""
}
]
}
}
Response
Status: 200 OK
{
"data": {
"CreateDevice": {
"ID": "<generated-uuid>",
"Name": "My MySQL Server Client Device",
"DriverID": "9F29E6F9-A195-4393-B1F1-8DDA3E8B3982",
"Description": ""
}
}
}
Create Device - MySQL Server Client (No TLS)
POST {{edgeUrl}}/devicehub/v2
MySQL Server Client Driver
| Browse devices supported: | No |
| Browse tags supported: | No |
| Driver Settings: | > Address: IP, Hostname or Endpoint (Port setting is ignored if port is included here) |
| > Database: Specify query target within server | |
| > Username, Password: Client authentication | |
| > AppName: Client Application ID (optional connection identifier) | |
| Important: | > Ensure minimal permissions are set for the provided user account |
| Miscellaneous: | > Driver is Read-Only |
| > For multi-row output, use "Table" register | |
| > For single-row or single-field output, use "Record" register | |
| > When reading single rows, enable timestamp/value parsing by setting a positive index value for the respective fields | |
| > When reading multiple rows, it is recommended to keep output table sizes under 1MB | |
| > When using "Publish on Change", it may be necessary to define a "Change Query" on which any output will indicate that the data has been updated | |
| > To persist a change "state", configure state value parsing and implement "Change Query", the first argument must represet the "state" | |
| > All SQL queries (multi-statement in particular) should be tested independently of driver to ensure correctness | |
| Miscellaneous: | > Driver does not support writing to tags |
| > For multi-row output, use "Table" register | |
| > For single-row or single-field output, use "Record" register | |
| > When reading single rows, enable timestamp/value parsing by setting a positive index value for the respective fields | |
| > When reading multiple rows, it is recommended to keep output table sizes under 1MB | |
| > When using "Only Publish on Change of Value", it may be necessary to define a CDC query | |
| > All SQL queries (multi-statement in particular) should be tested independently of driver to ensure correctness |
Driver ID: 9F29E6F9-A195-4393-B1F1-8DDA3E8B3982 Group: Historian
Required properties:
- Port SignedInteger — SQL Server Port
- Username String
- Password String
- Address String — SQL Server Address
- name String — A unique, user-defined name for this device. Used to identify the device throughout the edge gateway, including in message broker topics and logs.
Optional properties:
- Database String — Server Database Name
- EnableTLS SignedInteger — Enable TLS Options: 0, 1
- CAChain String — Server CA Chain (PEM)
- ClientAuth SignedInteger — Client Authentication (mTLS) Options: 0, 1
- Certificate String — Client Certificate (PEM)
- RequestTimeout SignedInteger — Request Timeout (S)
- PrivateKey String — Client Private Key (PEM)
- AppName String — Client Application Name
- CertificateVerification SignedInteger — Server Certificate & Hostname Verification Options: 0, 1
- ConnectionTimeout SignedInteger — Connection Timeout (S)
- description String — Optional free-text notes about this device, such as its physical location or purpose.
Request Body
GraphQL Query
mutation CreateDevice($input: CreateDeviceRequest!) {
CreateDevice(input: $input) {
ID
Name
DriverID
Description
}
}
Variables
{
"input": {
"Name": "My MySQL Server Client Device (No TLS)",
"Description": "",
"DriverID": "9F29E6F9-A195-4393-B1F1-8DDA3E8B3982",
"AliasTopics": false,
"Debug": false,
"MetaData": [],
"StoppedState": false,
"StatusRegister": null,
"Properties": [
{
"Key": "Port",
"Value": "3306"
},
{
"Key": "Database",
"Value": "master"
},
{
"Key": "EnableTLS",
"Value": "1"
},
{
"Key": "RequestTimeout",
"Value": "10"
},
{
"Key": "Username",
"Value": "admin"
},
{
"Key": "Password",
"Value": "password"
},
{
"Key": "AppName",
"Value": "devicehub"
},
{
"Key": "ConnectionTimeout",
"Value": "5"
},
{
"Key": "Address",
"Value": "192.168.1.100"
},
{
"Key": "name",
"Value": "mysql-client_device"
},
{
"Key": "description",
"Value": ""
}
]
}
}
Response
Status: 200 OK
{
"data": {
"CreateDevice": {
"ID": "<generated-uuid>",
"Name": "My MySQL Server Client Device (No TLS)",
"DriverID": "9F29E6F9-A195-4393-B1F1-8DDA3E8B3982",
"Description": ""
}
}
}
Create Device - Oemax Serial (Gen1.3)
POST {{edgeUrl}}/devicehub/v2
Oemax Serial (Gen1.3)
| Prerequisites | No |
| Required fields | Communication Port Baud Rate Data Bits Stop Bits Parity Station ID |
| Browse devices supported | No |
| Browse tags supported | No |
| Supported device models | OEMax NX7 Controller series |
Driver ID: 1F64A3F7-8AB4-4030-A773-4D7F428F2354 Group: RS Automation
Required properties:
- name String — Device Name that describes your asset.
- deviceFile String — Local Serial connection file path.
- baudRate SignedInteger — Serial communication baudrate parameter.
- dataBits SignedInteger — Serial communication databits parameter.
- stopBits SignedInteger — Serial communication stopbits parameter.
- parity SignedInteger — Serial communication parity parameter. Options: 0, 1, 2
- stationId SignedInteger — Station no of device.
Optional properties:
- description String — Description of the device or an asset.
Request Body
GraphQL Query
mutation CreateDevice($input: CreateDeviceRequest!) {
CreateDevice(input: $input) {
ID
Name
DriverID
Description
}
}
Variables
{
"input": {
"Name": "My Oemax Serial (Gen1.3) Device",
"Description": "",
"DriverID": "1F64A3F7-8AB4-4030-A773-4D7F428F2354",
"AliasTopics": false,
"Debug": false,
"MetaData": [],
"StoppedState": false,
"StatusRegister": null,
"Properties": [
{
"Key": "name",
"Value": "oemax device"
},
{
"Key": "description",
"Value": ""
},
{
"Key": "deviceFile",
"Value": "/dev/ttyUSB0"
},
{
"Key": "baudRate",
"Value": "9600"
},
{
"Key": "dataBits",
"Value": "8"
},
{
"Key": "stopBits",
"Value": "1"
},
{
"Key": "parity",
"Value": "0"
},
{
"Key": "stationId",
"Value": "255"
}
]
}
}
Response
Status: 200 OK
{
"data": {
"CreateDevice": {
"ID": "<generated-uuid>",
"Name": "My Oemax Serial (Gen1.3) Device",
"DriverID": "1F64A3F7-8AB4-4030-A773-4D7F428F2354",
"Description": ""
}
}
}
Create Device - Omron Fins Ethernet
POST {{edgeUrl}}/devicehub/v2
Omron FINS Ethernet Driver
| Required fields: | > Network Address |
| > Network Port | |
| > Transport | |
| Browse devices supported: | No |
| Browse tags supported: | No |
| Supported device models: | Omron CS/CJ FINS Ethernet Devices |
| Miscellaneous: | > Byte Order: Big-Endian |
| > Register Grouping Size: 256 | |
| > strings: padding always added to "Length", up to next register | |
| > word/dword/lword == uint16/uint32/uint64 | |
| > real/lreal == float32/float64 | |
| > bcd == Binary Coded Decimal (0x99 -> 99, 0x1A -> error) | |
| > flag == Counter/Timer "Done" status | |
| > UDP operation requires use of local port 9600 |
Driver ID: 90C9F160-69CD-11ED-B37D-032E0F6C0B5E Group: Omron
Required properties:
- networkPort SignedInteger — PLC Port
- deviceFile String — The serial port path used to communicate with the device (/dev/ttyS1, /dev/ttyUSB0, …). Must match a port available on the gateway host.
- networkAddress String — PLC IP
- name String — A unique, user-defined name for this device. Used to identify the device throughout the edge gateway, including in message broker topics and logs.
Optional properties:
- parity SignedInteger — The error-checking method used for serial communication (None, Even, or Odd). Must match the device's configured parity setting. Options: 0, 1, 2
- ReadTimeout SignedInteger — Request timeout, msec
- KeepAlive SignedInteger — TCP Keep-Alive (s) (0 to disable)
- DestinationAddress SignedInteger
- dataBits SignedInteger — The number of data bits in each transmitted character (typically 7 or 8). Must match the device's serial configuration. Options: 0, 1, 2, 3
- DestinationUnitID SignedInteger
- SourceAddress SignedInteger
- SourceNodeID SignedInteger
- stopBits SignedInteger — The number of stop bits used to signal the end of a character (typically 1 or 2). Must match the device's serial configuration. Options: 0, 1, 2
- baudRate SignedInteger — The data transmission speed, in bits per second, used for serial communication. Must match the baud rate configured on the device. Options: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10
- DestinationNodeID SignedInteger
- Transport SignedInteger — Transport Type Options: 0, 1
- RetryCount SignedInteger — Retry request count
- description String — Optional free-text notes about this device, such as its physical location or purpose.
Request Body
GraphQL Query
mutation CreateDevice($input: CreateDeviceRequest!) {
CreateDevice(input: $input) {
ID
Name
DriverID
Description
}
}
Variables
{
"input": {
"Name": "My Omron Fins Ethernet Device",
"Description": "",
"DriverID": "90C9F160-69CD-11ED-B37D-032E0F6C0B5E",
"AliasTopics": false,
"Debug": false,
"MetaData": [],
"StoppedState": false,
"StatusRegister": null,
"Properties": [
{
"Key": "parity",
"Value": "0"
},
{
"Key": "ReadTimeout",
"Value": "2000"
},
{
"Key": "networkPort",
"Value": "502"
},
{
"Key": "KeepAlive",
"Value": "60"
},
{
"Key": "DestinationAddress",
"Value": "0"
},
{
"Key": "dataBits",
"Value": "0"
},
{
"Key": "DestinationUnitID",
"Value": "0"
},
{
"Key": "deviceFile",
"Value": "/dev/ttyUSB0"
},
{
"Key": "SourceAddress",
"Value": "0"
},
{
"Key": "SourceNodeID",
"Value": "0"
},
{
"Key": "stopBits",
"Value": "0"
},
{
"Key": "networkAddress",
"Value": "192.168.1.100"
},
{
"Key": "baudRate",
"Value": "0"
},
{
"Key": "DestinationNodeID",
"Value": "0"
},
{
"Key": "Transport",
"Value": "0"
},
{
"Key": "RetryCount",
"Value": "0"
},
{
"Key": "name",
"Value": "omron-fins_device"
},
{
"Key": "description",
"Value": ""
}
]
}
}
Response
Status: 200 OK
{
"data": {
"CreateDevice": {
"ID": "<generated-uuid>",
"Name": "My Omron Fins Ethernet Device",
"DriverID": "90C9F160-69CD-11ED-B37D-032E0F6C0B5E",
"Description": ""
}
}
}
Create Device - Omron Fins Serial
POST {{edgeUrl}}/devicehub/v2
Omron FINS Serial Driver
| Required fields: | > Device File |
| > Baud Rate | |
| > Data Bits | |
| > Stop Bits | |
| > Parity | |
| Browse devices supported: | No |
| Browse tags supported: | No |
| Supported device models: | Omron CS/CJ FINS Host-Link Devices |
| Miscellaneous: | > Byte Order: Big-Endian |
| > Register Grouping Size: 256 | |
| > strings: padding always added to "Length", up to next register | |
| > word/dword/lword == uint16/uint32/uint64 | |
| > real/lreal == float32/float64 | |
| > bcd == Binary Coded Decimal (0x99 -> 99, 0x1A -> error) | |
| > flag == Counter/Timer "Done" status |
Driver ID: 44234053-0202-442D-9FD6-50FAADABBC63 Group: Omron
Required properties:
- deviceFile String — The serial port path used to communicate with the device (/dev/ttyS1, /dev/ttyUSB0, …). Must match a port available on the gateway host.
- name String — A unique, user-defined name for this device. Used to identify the device throughout the edge gateway, including in message broker topics and logs.
Optional properties:
- baudRate SignedInteger — The data transmission speed, in bits per second, used for serial communication. Must match the baud rate configured on the device. Options: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10
- dataBits SignedInteger — The number of data bits in each transmitted character (typically 7 or 8). Must match the device's serial configuration. Options: 0, 1, 2, 3
- parity SignedInteger — The error-checking method used for serial communication (None, Even, or Odd). Must match the device's configured parity setting. Options: 0, 1, 2
- RetryCount SignedInteger — Retry request count
- DestinationAddress SignedInteger
- DestinationNodeID SignedInteger
- DestinationUnitID SignedInteger
- stopBits SignedInteger — The number of stop bits used to signal the end of a character (typically 1 or 2). Must match the device's serial configuration. Options: 0, 1, 2
- ReadTimeout SignedInteger — Request timeout, msec
- SourceAddress SignedInteger
- SourceNodeID SignedInteger
- description String — Optional free-text notes about this device, such as its physical location or purpose.
Request Body
GraphQL Query
mutation CreateDevice($input: CreateDeviceRequest!) {
CreateDevice(input: $input) {
ID
Name
DriverID
Description
}
}
Variables
{
"input": {
"Name": "My Omron Fins Serial Device",
"Description": "",
"DriverID": "44234053-0202-442D-9FD6-50FAADABBC63",
"AliasTopics": false,
"Debug": false,
"MetaData": [],
"StoppedState": false,
"StatusRegister": null,
"Properties": [
{
"Key": "baudRate",
"Value": "0"
},
{
"Key": "dataBits",
"Value": "0"
},
{
"Key": "parity",
"Value": "0"
},
{
"Key": "RetryCount",
"Value": "0"
},
{
"Key": "DestinationAddress",
"Value": "0"
},
{
"Key": "DestinationNodeID",
"Value": "0"
},
{
"Key": "DestinationUnitID",
"Value": "0"
},
{
"Key": "stopBits",
"Value": "0"
},
{
"Key": "deviceFile",
"Value": "/dev/ttyUSB0"
},
{
"Key": "ReadTimeout",
"Value": "2000"
},
{
"Key": "SourceAddress",
"Value": "0"
},
{
"Key": "SourceNodeID",
"Value": "0"
},
{
"Key": "name",
"Value": "omron-fins-serial_device"
},
{
"Key": "description",
"Value": ""
}
]
}
}
Response
Status: 200 OK
{
"data": {
"CreateDevice": {
"ID": "<generated-uuid>",
"Name": "My Omron Fins Serial Device",
"DriverID": "44234053-0202-442D-9FD6-50FAADABBC63",
"Description": ""
}
}
}
Create Device - Omron HostLink
POST {{edgeUrl}}/devicehub/v2
Omron Host-Link Serial Driver
| Required fields: | > Device File |
| > Baud Rate | |
| > Data Bits | |
| > Stop Bits | |
| > Parity | |
| Browse devices supported: | No |
| Browse tags supported: | No |
| Supported device models: | Omron (C, CPM, CPL, CQM) Host-Link Devices |
| Miscellaneous: | > Byte Order: Big-Endian |
| > Register Grouping Size: 256 | |
| > strings: padding always added to "Length", up to next register | |
| > word/dword/lword == uint16/uint32/uint64 | |
| > real/lreal == float32/float64 | |
| > bcd == Binary Coded Decimal (0x99 -> 99, 0x1A -> error) | |
| > flag == Counter/Timer "Done" status |
Driver ID: E4017A52-BCAE-4AB5-8F84-C30AF40F9B21 Group: Omron
Required properties:
- deviceFile String — The serial port path used to communicate with the device (/dev/ttyS1, /dev/ttyUSB0, …). Must match a port available on the gateway host.
- name String — A unique, user-defined name for this device. Used to identify the device throughout the edge gateway, including in message broker topics and logs.
Optional properties:
- ReadTimeout SignedInteger — Request timeout, msec
- RetryCount SignedInteger — Retry request count
- parity SignedInteger — The error-checking method used for serial communication (None, Even, or Odd). Must match the device's configured parity setting. Options: 0, 1, 2
- stopBits SignedInteger — The number of stop bits used to signal the end of a character (typically 1 or 2). Must match the device's serial configuration. Options: 0, 1, 2
- baudRate SignedInteger — The data transmission speed, in bits per second, used for serial communication. Must match the baud rate configured on the device. Options: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10
- DestinationNodeID SignedInteger
- dataBits SignedInteger — The number of data bits in each transmitted character (typically 7 or 8). Must match the device's serial configuration. Options: 0, 1, 2, 3
- description String — Optional free-text notes about this device, such as its physical location or purpose.
Request Body
GraphQL Query
mutation CreateDevice($input: CreateDeviceRequest!) {
CreateDevice(input: $input) {
ID
Name
DriverID
Description
}
}
Variables
{
"input": {
"Name": "My Omron HostLink Device",
"Description": "",
"DriverID": "E4017A52-BCAE-4AB5-8F84-C30AF40F9B21",
"AliasTopics": false,
"Debug": false,
"MetaData": [],
"StoppedState": false,
"StatusRegister": null,
"Properties": [
{
"Key": "ReadTimeout",
"Value": "2000"
},
{
"Key": "RetryCount",
"Value": "0"
},
{
"Key": "parity",
"Value": "0"
},
{
"Key": "stopBits",
"Value": "0"
},
{
"Key": "deviceFile",
"Value": "/dev/ttyUSB0"
},
{
"Key": "baudRate",
"Value": "0"
},
{
"Key": "DestinationNodeID",
"Value": "0"
},
{
"Key": "dataBits",
"Value": "0"
},
{
"Key": "name",
"Value": "omron-hostlink_device"
},
{
"Key": "description",
"Value": ""
}
]
}
}
Response
Status: 200 OK
{
"data": {
"CreateDevice": {
"ID": "<generated-uuid>",
"Name": "My Omron HostLink Device",
"DriverID": "E4017A52-BCAE-4AB5-8F84-C30AF40F9B21",
"Description": ""
}
}
}
Create Device - Omron NJ Ethernet
POST {{edgeUrl}}/devicehub/v2
Omron NJ Ethernet Driver
| Required fields: | > Network Address |
| > Network Port | |
| Browse devices supported: | No |
| Browse tags supported: | Yes |
| Supported device models: | Omron NJ Ethernet Devices |
| Access Mode: | Symbolic |
| Miscellaneous: | |
| > DATE: int64, format -> "2001-01-02" | |
| > DATE_AND_TIME: int64, format -> "2001-01-02-12:34:56.999" | |
| > TIME: int64, format -> "1h23m4.567s" or "123ms" | |
| > TIME_OF_DAY: int64, format -> "12:34:56.999" |
Driver ID: 5E20791D-2DED-4B3B-8A66-ABA4D0F53C4C Group: Omron
Required properties:
- networkAddress String — PLC IP Address
- networkPort SignedInteger — PLC Port Number
- name String — A unique, user-defined name for this device. Used to identify the device throughout the edge gateway, including in message broker topics and logs.
Optional properties:
- MaxPDU SignedInteger — Connection Size (bytes)
- RequestTimeout SignedInteger — Request Timeout (ms)
- description String — Optional free-text notes about this device, such as its physical location or purpose.
Request Body
GraphQL Query
mutation CreateDevice($input: CreateDeviceRequest!) {
CreateDevice(input: $input) {
ID
Name
DriverID
Description
}
}
Variables
{
"input": {
"Name": "My Omron NJ Ethernet Device",
"Description": "",
"DriverID": "5E20791D-2DED-4B3B-8A66-ABA4D0F53C4C",
"AliasTopics": false,
"Debug": false,
"MetaData": [],
"StoppedState": false,
"StatusRegister": null,
"Properties": [
{
"Key": "networkAddress",
"Value": "192.168.1.100"
},
{
"Key": "networkPort",
"Value": "502"
},
{
"Key": "MaxPDU",
"Value": "1996"
},
{
"Key": "RequestTimeout",
"Value": "2000"
},
{
"Key": "name",
"Value": "omron-nj_device"
},
{
"Key": "description",
"Value": ""
}
]
}
}
Response
Status: 200 OK
{
"data": {
"CreateDevice": {
"ID": "<generated-uuid>",
"Name": "My Omron NJ Ethernet Device",
"DriverID": "5E20791D-2DED-4B3B-8A66-ABA4D0F53C4C",
"Description": ""
}
}
}
Create Device - OPC UA Client Advanced
POST {{edgeUrl}}/devicehub/v2
OPC UA Client Advanced Driver
The driver implements the Client according to OPC UA Specification version 1.04 (IEC62541 standard).
Features:
- Discovering Servers and Endpoint (make sure the DNS name of the discovered server can be resolved by LE or replace it with the IP address)
- Browsing the address space of the server
- Reading, subscribing, and writing "Value" (Attribute ID 13, The value of a variable)
Driver ID: 2372E68F-BA1B-46E9-BC07-E92CA006B377 Group: OPCUA
Required properties:
- AuthMode String — Auth Mode Options: 0, 1, 2
- DriverMode String — Driver Mode Options: 0, 1
- OverrideRegistersSamplingInterval String — Override registers sampling interval Options: 0, 1
- SecurityMode String — Security Mode Options: 0, 1, 2
- SecurityPolicy String — Security Policy Options: 0, 1, 2, 3, 4, 5
- ServerURL String — Server URL
- name String — A unique, user-defined name for this device. Used to identify the device throughout the edge gateway, including in message broker topics and logs.
Optional properties:
- DisableApplicationUriCheck String — Flag used to disable the certificate ApplicationUri match check. Options: 0, 1
- DisableEncryptedPasswordCheck String — Flag used to disable the check if the password of a UserPassword identity token is encrypted properly. Options: 0, 1
- DisableErrorCertificateChainIncomplete String — Flag used to disable the certificate validation error BadCertificateChainIncomplete. Options: 0, 1
- DisableErrorCertificateHostNameInvalid String — Flag used to disable the check if the hostname the client connected to matches one of the hostnames or IP addresses in the server certificate. Options: 0, 1
- DisableErrorCertificateRevocationUnknown String — Flag used to disable the client certificate validation error BadCertificateRevocationUnknown. Options: 0, 1
- DisableErrorCertificateTimeInvalid String — Flag used to disable the certificate validation error CertificateTimeInvalid. Options: 0, 1
- DisableErrorCertificateUntrusted String — Flag used to disable the certificate validation error BadCertificateUntrusted. Options: 0, 1
- LifetimeCount SignedInteger — The subscription lifetime count (SubscriptionLifetime = LifetimeCount * PublishingInterval)
- LocaleId String — The locale ID requested for the session Options: 0, 1, 2, 3, 4
- MaxKeepAliveCount SignedInteger — If the server has no notifications pending for the period of time defined by * (MaxKeepAliveCount * PublishingInterval), the server will send a keep alive message to the client
- MaxNotificationsPerPublish SignedInteger — The maximum number of notifications that the client wishes to receive in a single publish response
- Password String — Password
- Priority SignedInteger — The relative priority of this subscription within the session
- PublishingInterval SignedInteger — The cyclic rate in milliseconds at which the subscription is being requested to return notifications to the client
- RegistersSamplingInterval Float — The interval in milliseconds that defines the fastest rate at which the MonitoredItem(s) should be accessed and evaluated (0 - fastest practical rate).
- SessionCertificate String — Session Certificate
- SessionPrivateKey String — Session Private Key
- UserCertificate String — User Auth Certificate (PEM format)
- UserName String — User Name
- UserPrivateKey String — User Auth Private Key (PEM format)
- description String — Optional free-text notes about this device, such as its physical location or purpose.
Request Body
GraphQL Query
mutation CreateDevice($input: CreateDeviceRequest!) {
CreateDevice(input: $input) {
ID
Name
DriverID
Description
}
}
Variables
{
"input": {
"Name": "My OPC UA Client Advanced Device",
"Description": "",
"DriverID": "2372E68F-BA1B-46E9-BC07-E92CA006B377",
"AliasTopics": false,
"Debug": false,
"MetaData": [],
"StoppedState": false,
"StatusRegister": null,
"Properties": [
{
"Key": "AuthMode",
"Value": "0"
},
{
"Key": "DisableApplicationUriCheck",
"Value": "0"
},
{
"Key": "DisableEncryptedPasswordCheck",
"Value": "0"
},
{
"Key": "DisableErrorCertificateChainIncomplete",
"Value": "0"
},
{
"Key": "DisableErrorCertificateHostNameInvalid",
"Value": "0"
},
{
"Key": "DisableErrorCertificateRevocationUnknown",
"Value": "0"
},
{
"Key": "DisableErrorCertificateTimeInvalid",
"Value": "0"
},
{
"Key": "DisableErrorCertificateUntrusted",
"Value": "0"
},
{
"Key": "DriverMode",
"Value": "0"
},
{
"Key": "LifetimeCount",
"Value": "2400"
},
{
"Key": "LocaleId",
"Value": "0"
},
{
"Key": "MaxKeepAliveCount",
"Value": "10"
},
{
"Key": "MaxNotificationsPerPublish",
"Value": "0"
},
{
"Key": "OverrideRegistersSamplingInterval",
"Value": "1"
},
{
"Key": "Password",
"Value": ""
},
{
"Key": "Priority",
"Value": "0"
},
{
"Key": "PublishingInterval",
"Value": "500"
},
{
"Key": "RegistersSamplingInterval",
"Value": "0"
},
{
"Key": "SecurityMode",
"Value": "0"
},
{
"Key": "SecurityPolicy",
"Value": "0"
},
{
"Key": "ServerURL",
"Value": "opc.tcp://192.168.1.100:4840"
},
{
"Key": "SessionCertificate",
"Value": "<certificate>"
},
{
"Key": "SessionPrivateKey",
"Value": "<certificate>"
},
{
"Key": "UserCertificate",
"Value": ""
},
{
"Key": "UserName",
"Value": ""
},
{
"Key": "UserPrivateKey",
"Value": ""
},
{
"Key": "name",
"Value": "OPC_UA_Client_Advanced_device"
},
{
"Key": "description",
"Value": ""
}
]
}
}
Response
Status: 200 OK
{
"data": {
"CreateDevice": {
"ID": "<generated-uuid>",
"Name": "My OPC UA Client Advanced Device",
"DriverID": "2372E68F-BA1B-46E9-BC07-E92CA006B377",
"Description": ""
}
}
}
Create Device - OPCUA client
POST {{edgeUrl}}/devicehub/v2
OPCUA client driver (Subscription)
Driver ID: 3FCB9EF2-D638-11E9-BB65-2A2AE2DBCCE4 Group: OPCUA
Required properties:
- networkAddress String — The IP address of the device on the network.
- securityMode String — Security mode Options: 0, 1, 2
- networkPort SignedInteger — The TCP or UDP port used to communicate with the device, depending on the protocol. Defaults to the standard port for the selected protocol but must match the port configured on the device.
- Auth String — Authentication settings Options: 0, 1, 2
- Policy String — Policy Options: 0, 1, 2, 3, 4, 5
- name String — A unique, user-defined name for this device. Used to identify the device throughout the edge gateway, including in message broker topics and logs.
Optional properties:
- Password String — Password for credentials mode
- WorkerName String — Opcua worker name. If empty - will take first found
- UrlPath String — Concat this to discovery
- maxKeepAliveCount SignedInteger — Max keep alive count
- Show advanced config String — some additional advanced config, for specific cases Options: 0, 1
- TimeoutSeconds SignedInteger — Timeout for requests
- DefaultRoot String — From what node start browse
- priority SignedInteger — Max keep alive count
- subscribeUpdateMS SignedInteger — how often OPCUA server will send update of monitored values
- lifetimeCount SignedInteger — Lifetime count
- Username String — Username for credentials mode
- Certificate String — This is autogenerated certificate. Replace if needed.
- PrivateKey String — This is autogenerated certificate key. Replace if needed.
- batchPublishTimeoutMS SignedInteger — how often it will check input queue on low through put of messages
- maxNotificationsPerPublish SignedInteger — Max keep alive count
- TakeDiscoveryURL String — If true - ignore endpoints and try discovery host Options: 0, 1
- StatusHandling String — Status handling Options: 0, 1, 2
- description String — Optional free-text notes about this device, such as its physical location or purpose.
Request Body
GraphQL Query
mutation CreateDevice($input: CreateDeviceRequest!) {
CreateDevice(input: $input) {
ID
Name
DriverID
Description
}
}
Variables
{
"input": {
"Name": "My OPCUA client Device",
"Description": "",
"DriverID": "3FCB9EF2-D638-11E9-BB65-2A2AE2DBCCE4",
"AliasTopics": false,
"Debug": false,
"MetaData": [],
"StoppedState": false,
"StatusRegister": null,
"Properties": [
{
"Key": "networkAddress",
"Value": "192.168.1.100"
},
{
"Key": "securityMode",
"Value": "0"
},
{
"Key": "Password",
"Value": ""
},
{
"Key": "WorkerName",
"Value": ""
},
{
"Key": "UrlPath",
"Value": ""
},
{
"Key": "maxKeepAliveCount",
"Value": "3000"
},
{
"Key": "networkPort",
"Value": "4840"
},
{
"Key": "Auth",
"Value": "0"
},
{
"Key": "Show advanced config",
"Value": "0"
},
{
"Key": "TimeoutSeconds",
"Value": "10"
},
{
"Key": "DefaultRoot",
"Value": "ns=0;i=84"
},
{
"Key": "priority",
"Value": "0"
},
{
"Key": "subscribeUpdateMS",
"Value": "1000"
},
{
"Key": "lifetimeCount",
"Value": "10000"
},
{
"Key": "Username",
"Value": ""
},
{
"Key": "Certificate",
"Value": "<certificate>"
},
{
"Key": "PrivateKey",
"Value": "<certificate>"
},
{
"Key": "batchPublishTimeoutMS",
"Value": "50"
},
{
"Key": "maxNotificationsPerPublish",
"Value": "10000"
},
{
"Key": "TakeDiscoveryURL",
"Value": "0"
},
{
"Key": "Policy",
"Value": "0"
},
{
"Key": "StatusHandling",
"Value": "0"
},
{
"Key": "name",
"Value": "opcua_client_device"
},
{
"Key": "description",
"Value": ""
}
]
}
}
Response
Status: 200 OK
{
"data": {
"CreateDevice": {
"ID": "<generated-uuid>",
"Name": "My OPCUA client Device",
"DriverID": "3FCB9EF2-D638-11E9-BB65-2A2AE2DBCCE4",
"Description": ""
}
}
}
Create Device - OPCUA client Poll
POST {{edgeUrl}}/devicehub/v2
OPCUA client driver (Polling)
Driver ID: 914FBF10-616F-11EB-AE93-0242AC130002 Group: OPCUA
Required properties:
- networkPort SignedInteger — The TCP or UDP port used to communicate with the device, depending on the protocol. Defaults to the standard port for the selected protocol but must match the port configured on the device.
- Auth String — Authentication settings Options: 0, 1, 2
- securityMode String — Security mode Options: 0, 1, 2
- networkAddress String — The IP address of the device on the network.
- Policy String — Policy Options: 0, 1, 2, 3, 4, 5
- name String — A unique, user-defined name for this device. Used to identify the device throughout the edge gateway, including in message broker topics and logs.
Optional properties:
- Certificate String — This is autogenerated certificate. Replace if needed.
- PrivateKey String — This is autogenerated certificate key. Replace if needed.
- Show advanced config String — some additional advanced config, for specific cases Options: 0, 1
- WorkerName String — Opcua worker name. If empty - will take first found
- UrlPath String — Concat this to discovery
- DefaultRoot String — From what node start browse
- Password String — Password for credentials mode
- TimeoutSeconds SignedInteger — Timeout for requests
- TakeDiscoveryURL String — If true - ignore endpoints and try discovery host Options: 0, 1
- Username String — Username for credentials mode
- description String — Optional free-text notes about this device, such as its physical location or purpose.
Request Body
GraphQL Query
mutation CreateDevice($input: CreateDeviceRequest!) {
CreateDevice(input: $input) {
ID
Name
DriverID
Description
}
}
Variables
{
"input": {
"Name": "My OPCUA client Poll Device",
"Description": "",
"DriverID": "914FBF10-616F-11EB-AE93-0242AC130002",
"AliasTopics": false,
"Debug": false,
"MetaData": [],
"StoppedState": false,
"StatusRegister": null,
"Properties": [
{
"Key": "networkPort",
"Value": "4840"
},
{
"Key": "Auth",
"Value": "0"
},
{
"Key": "Certificate",
"Value": "<certificate>"
},
{
"Key": "PrivateKey",
"Value": "<certificate>"
},
{
"Key": "Show advanced config",
"Value": "0"
},
{
"Key": "securityMode",
"Value": "0"
},
{
"Key": "WorkerName",
"Value": ""
},
{
"Key": "UrlPath",
"Value": ""
},
{
"Key": "DefaultRoot",
"Value": "ns=0;i=84"
},
{
"Key": "networkAddress",
"Value": "192.168.1.100"
},
{
"Key": "Password",
"Value": ""
},
{
"Key": "TimeoutSeconds",
"Value": "10"
},
{
"Key": "TakeDiscoveryURL",
"Value": "0"
},
{
"Key": "Policy",
"Value": "0"
},
{
"Key": "Username",
"Value": ""
},
{
"Key": "name",
"Value": "opcua_client_poll_device"
},
{
"Key": "description",
"Value": ""
}
]
}
}
Response
Status: 200 OK
{
"data": {
"CreateDevice": {
"ID": "<generated-uuid>",
"Name": "My OPCUA client Poll Device",
"DriverID": "914FBF10-616F-11EB-AE93-0242AC130002",
"Description": ""
}
}
}
Create Device - Open Protocol Ethernet
POST {{edgeUrl}}/devicehub/v2
Torque Tool Open Protocol Ethernet
| Prerequisites | No |
| Required fields | Network address Port |
| Browse devices supported | No |
| Browse tags supported | Yes |
| Supported device models | Atlas Copco PF6000 Cleco mPro300 |
Driver ID: FA222359-D583-443F-A661-BF048AD409BC Group: Torque Tool
Required properties:
- networkAddress String — The IP address of the device on the network.
- networkPort SignedInteger — The TCP or UDP port used to communicate with the device, depending on the protocol. Defaults to the standard port for the selected protocol but must match the port configured on the device.
- mid0010rev SignedInteger Options: 0, 1, 2, 3
- mid0015rev SignedInteger Options: 0, 1
- mid0051rev SignedInteger Options: 0, 1
- mid0064rev SignedInteger Options: 0, 1
- mid0035rev SignedInteger Options: 0, 1, 2, 3, 4
- mid0042rev SignedInteger Options: 0, 1
- mid0060rev SignedInteger Options: 0, 1
- mid0100rev SignedInteger Options: 0, 1, 2, 3, 4
- name String — A unique, user-defined name for this device. Used to identify the device throughout the edge gateway, including in message broker topics and logs.
Optional properties:
- keepAlive UnsignedInteger
- retryCount UnsignedInteger — Number of times to retry message
- useGenericSubscribe Boolean — Subscribe to MID 14/34 via Generic Subscribe (MID 8) instead of the standard MID 14/34 subscribe MIDs. Required for devices (e.g. MTF 6000) that do not support the standard subscribe MIDs.
- readTimeout UnsignedInteger
- description String — Optional free-text notes about this device, such as its physical location or purpose.
Request Body
GraphQL Query
mutation CreateDevice($input: CreateDeviceRequest!) {
CreateDevice(input: $input) {
ID
Name
DriverID
Description
}
}
Variables
{
"input": {
"Name": "My Open Protocol Ethernet Device",
"Description": "",
"DriverID": "FA222359-D583-443F-A661-BF048AD409BC",
"AliasTopics": false,
"Debug": false,
"MetaData": [],
"StoppedState": false,
"StatusRegister": null,
"Properties": [
{
"Key": "keepAlive",
"Value": "10000"
},
{
"Key": "retryCount",
"Value": "3"
},
{
"Key": "networkAddress",
"Value": "192.168.1.100"
},
{
"Key": "networkPort",
"Value": "502"
},
{
"Key": "mid0010rev",
"Value": "0"
},
{
"Key": "mid0015rev",
"Value": "0"
},
{
"Key": "mid0051rev",
"Value": "0"
},
{
"Key": "mid0064rev",
"Value": "0"
},
{
"Key": "useGenericSubscribe",
"Value": "false"
},
{
"Key": "readTimeout",
"Value": "2000"
},
{
"Key": "mid0035rev",
"Value": "0"
},
{
"Key": "mid0042rev",
"Value": "0"
},
{
"Key": "mid0060rev",
"Value": "0"
},
{
"Key": "mid0100rev",
"Value": "0"
},
{
"Key": "name",
"Value": "open-protocol-ethernet_device"
},
{
"Key": "description",
"Value": ""
}
]
}
}
Response
Status: 200 OK
{
"data": {
"CreateDevice": {
"ID": "<generated-uuid>",
"Name": "My Open Protocol Ethernet Device",
"DriverID": "FA222359-D583-443F-A661-BF048AD409BC",
"Description": ""
}
}
}
Create Device - Opto22 CONT Protocol Ethernet
POST {{edgeUrl}}/devicehub/v2
Opto22 CONT Protocol Ethernet Driver
| Required fields: | > Connection Settings (TCP) |
| Browse devices supported: | No |
| Browse tags supported: | No |
| Supported device models: | OPTO 22 SNAP PAC S1 |
| Register Settings: | > Register Name: e.g. "PLC_Tag" or "PLC_ArrayTag[1]" or "PLC_ArrayTag[0-4]" |
| > String arrays not supported | |
| > Pointer register names must be prepended with "PTR_" | |
| > Pointer tables are not supported |
Driver ID: 43F4ED55-823C-48DC-AB3A-F64E8139BB07 Group: Opto Devices
Required properties:
- networkAddress String — IP Address
- networkPort SignedInteger — Port
- name String — A unique, user-defined name for this device. Used to identify the device throughout the edge gateway, including in message broker topics and logs.
Optional properties:
- ReadTimeout SignedInteger — Request timeout, msec
- Transport SignedInteger — Transport Type Options: 0
- KeepAlive SignedInteger — TCP Keep-Alive (s) (0 to disable)
- RetryCount SignedInteger — Retry request count
- PauseBetweenRetries SignedInteger — Pause between retries, msec
- description String — Optional free-text notes about this device, such as its physical location or purpose.
Request Body
GraphQL Query
mutation CreateDevice($input: CreateDeviceRequest!) {
CreateDevice(input: $input) {
ID
Name
DriverID
Description
}
}
Variables
{
"input": {
"Name": "My Opto22 CONT Protocol Ethernet Device",
"Description": "",
"DriverID": "43F4ED55-823C-48DC-AB3A-F64E8139BB07",
"AliasTopics": false,
"Debug": false,
"MetaData": [],
"StoppedState": false,
"StatusRegister": null,
"Properties": [
{
"Key": "ReadTimeout",
"Value": "2000"
},
{
"Key": "Transport",
"Value": "0"
},
{
"Key": "networkAddress",
"Value": "192.168.1.100"
},
{
"Key": "networkPort",
"Value": "22001"
},
{
"Key": "KeepAlive",
"Value": "60"
},
{
"Key": "RetryCount",
"Value": "0"
},
{
"Key": "PauseBetweenRetries",
"Value": "0"
},
{
"Key": "name",
"Value": "opto22-cont_device"
},
{
"Key": "description",
"Value": ""
}
]
}
}
Response
Status: 200 OK
{
"data": {
"CreateDevice": {
"ID": "<generated-uuid>",
"Name": "My Opto22 CONT Protocol Ethernet Device",
"DriverID": "43F4ED55-823C-48DC-AB3A-F64E8139BB07",
"Description": ""
}
}
}
Create Device - Opto22 MMIO Protocol Ethernet (Gen1.3)
POST {{edgeUrl}}/devicehub/v2
Opto22 MMIO Protocol Ethernet (Gen1.3)
| Prerequisites | None |
| Required fields | Network address Network Port |
| Browse devices supported | No |
| Browse tags supported | No |
| Supported device models | OPTO22 SNAP PAC System Series |
Driver ID: 9293C0E5-8EB9-45BF-A022-73E6F8BE0DE8 Group: Opto Devices
Required properties:
- networkAddress String — IP Address of the device.
- networkPort SignedInteger — Network port of the device.
- name String — Device Name that describes your asset.
Optional properties:
- description String — Description of the device or an asset.
Request Body
GraphQL Query
mutation CreateDevice($input: CreateDeviceRequest!) {
CreateDevice(input: $input) {
ID
Name
DriverID
Description
}
}
Variables
{
"input": {
"Name": "My Opto22 MMIO Protocol Ethernet (Gen1.3) Device",
"Description": "",
"DriverID": "9293C0E5-8EB9-45BF-A022-73E6F8BE0DE8",
"AliasTopics": false,
"Debug": false,
"MetaData": [],
"StoppedState": false,
"StatusRegister": null,
"Properties": [
{
"Key": "networkAddress",
"Value": "192.168.1.100"
},
{
"Key": "networkPort",
"Value": "502"
},
{
"Key": "name",
"Value": "Opto22 device"
},
{
"Key": "description",
"Value": ""
}
]
}
}
Response
Status: 200 OK
{
"data": {
"CreateDevice": {
"ID": "<generated-uuid>",
"Name": "My Opto22 MMIO Protocol Ethernet (Gen1.3) Device",
"DriverID": "9293C0E5-8EB9-45BF-A022-73E6F8BE0DE8",
"Description": ""
}
}
}
Create Device - OSI Agent
POST {{edgeUrl}}/devicehub/v2
OSI Agent Driver
Driver ID: 41EFEEDE-E2C6-4D34-AD6C-2442A8D9B2B1 Group: OSI
Required properties:
- networkPort String — Port
- user String — User
- password String — Password
- name String — A unique, user-defined name for this device. Used to identify the device throughout the edge gateway, including in message broker topics and logs.
Optional properties:
- interface String — Interface
- description String — Optional free-text notes about this device, such as its physical location or purpose.
Request Body
GraphQL Query
mutation CreateDevice($input: CreateDeviceRequest!) {
CreateDevice(input: $input) {
ID
Name
DriverID
Description
}
}
Variables
{
"input": {
"Name": "My OSI Agent Device",
"Description": "",
"DriverID": "41EFEEDE-E2C6-4D34-AD6C-2442A8D9B2B1",
"AliasTopics": false,
"Debug": false,
"MetaData": [],
"StoppedState": false,
"StatusRegister": null,
"Properties": [
{
"Key": "networkPort",
"Value": "502"
},
{
"Key": "interface",
"Value": "0.0.0.0"
},
{
"Key": "user",
"Value": "admin"
},
{
"Key": "password",
"Value": "password"
},
{
"Key": "name",
"Value": "OSI-agent_device"
},
{
"Key": "description",
"Value": ""
}
]
}
}
Response
Status: 200 OK
{
"data": {
"CreateDevice": {
"ID": "<generated-uuid>",
"Name": "My OSI Agent Device",
"DriverID": "41EFEEDE-E2C6-4D34-AD6C-2442A8D9B2B1",
"Description": ""
}
}
}
Create Device - OSI Agent Advanced
POST {{edgeUrl}}/devicehub/v2
OSI Agent Advanced Driver
Driver ID: 41EFEEDE-E2C6-4D34-AD6C-2442A8D9B2B2 Group: OSI
Required properties:
- natsConnectionName String — NATS connection name (should be equal to Windows-based OSI Agent setting)
- interface String — Interface
- user String — User
- enableTLS SignedInteger — Enable TLS Authentication Options: 0, 1
- TLSpkey String — Private Key (PEM)
- browseRequestItemsCount SignedInteger — Browse request items count
- natsRequestTimeout SignedInteger — Request timeout, ms
- networkPort SignedInteger — Port
- password String — Password
- TLScert String — Certificate (PEM)
- name String — A unique, user-defined name for this device. Used to identify the device throughout the edge gateway, including in message broker topics and logs.
Optional properties:
- bulkEventsItemsCount SignedInteger — Bulk events items count
- description String — Optional free-text notes about this device, such as its physical location or purpose.
Request Body
GraphQL Query
mutation CreateDevice($input: CreateDeviceRequest!) {
CreateDevice(input: $input) {
ID
Name
DriverID
Description
}
}
Variables
{
"input": {
"Name": "My OSI Agent Advanced Device",
"Description": "",
"DriverID": "41EFEEDE-E2C6-4D34-AD6C-2442A8D9B2B2",
"AliasTopics": false,
"Debug": false,
"MetaData": [],
"StoppedState": false,
"StatusRegister": null,
"Properties": [
{
"Key": "natsConnectionName",
"Value": "OSIAgent"
},
{
"Key": "interface",
"Value": "0.0.0.0"
},
{
"Key": "user",
"Value": "admin"
},
{
"Key": "enableTLS",
"Value": "1"
},
{
"Key": "TLSpkey",
"Value": "placeholder_tlspkey"
},
{
"Key": "browseRequestItemsCount",
"Value": "500"
},
{
"Key": "natsRequestTimeout",
"Value": "5000"
},
{
"Key": "networkPort",
"Value": "4777"
},
{
"Key": "password",
"Value": "password"
},
{
"Key": "TLScert",
"Value": "placeholder_tlscert"
},
{
"Key": "bulkEventsItemsCount",
"Value": "5000"
},
{
"Key": "name",
"Value": "OSI-agent-adv_device"
},
{
"Key": "description",
"Value": ""
}
]
}
}
Response
Status: 200 OK
{
"data": {
"CreateDevice": {
"ID": "<generated-uuid>",
"Name": "My OSI Agent Advanced Device",
"DriverID": "41EFEEDE-E2C6-4D34-AD6C-2442A8D9B2B2",
"Description": ""
}
}
}
Create Device - OSI Agent Advanced (No TLS)
POST {{edgeUrl}}/devicehub/v2
OSI Agent Advanced Driver
Driver ID: 41EFEEDE-E2C6-4D34-AD6C-2442A8D9B2B2 Group: OSI
Required properties:
- natsConnectionName String — NATS connection name (should be equal to Windows-based OSI Agent setting)
- interface String — Interface
- user String — User
- enableTLS SignedInteger — Enable TLS Authentication Options: 0, 1
- TLSpkey String — Private Key (PEM)
- browseRequestItemsCount SignedInteger — Browse request items count
- natsRequestTimeout SignedInteger — Request timeout, ms
- networkPort SignedInteger — Port
- password String — Password
- TLScert String — Certificate (PEM)
- name String — A unique, user-defined name for this device. Used to identify the device throughout the edge gateway, including in message broker topics and logs.
Optional properties:
- bulkEventsItemsCount SignedInteger — Bulk events items count
- description String — Optional free-text notes about this device, such as its physical location or purpose.
Request Body
GraphQL Query
mutation CreateDevice($input: CreateDeviceRequest!) {
CreateDevice(input: $input) {
ID
Name
DriverID
Description
}
}
Variables
{
"input": {
"Name": "My OSI Agent Advanced Device (No TLS)",
"Description": "",
"DriverID": "41EFEEDE-E2C6-4D34-AD6C-2442A8D9B2B2",
"AliasTopics": false,
"Debug": false,
"MetaData": [],
"StoppedState": false,
"StatusRegister": null,
"Properties": [
{
"Key": "natsConnectionName",
"Value": "OSIAgent"
},
{
"Key": "interface",
"Value": "0.0.0.0"
},
{
"Key": "user",
"Value": "admin"
},
{
"Key": "enableTLS",
"Value": "1"
},
{
"Key": "browseRequestItemsCount",
"Value": "500"
},
{
"Key": "natsRequestTimeout",
"Value": "5000"
},
{
"Key": "networkPort",
"Value": "4777"
},
{
"Key": "password",
"Value": "password"
},
{
"Key": "bulkEventsItemsCount",
"Value": "5000"
},
{
"Key": "name",
"Value": "OSI-agent-adv_device"
},
{
"Key": "description",
"Value": ""
}
]
}
}
Response
Status: 200 OK
{
"data": {
"CreateDevice": {
"ID": "<generated-uuid>",
"Name": "My OSI Agent Advanced Device (No TLS)",
"DriverID": "41EFEEDE-E2C6-4D34-AD6C-2442A8D9B2B2",
"Description": ""
}
}
}
Create Device - Panasonic FP Ethernet (Gen1.3)
POST {{edgeUrl}}/devicehub/v2
Panasonic FP Ethernet (Gen1.3)
| Prerequisites | None |
| Required fields | Network address Network Port |
| Browse devices supported | No |
| Browse tags supported | No |
| Supported device models | Panasonic FP Series |
Driver ID: 0FCEB17A-2176-40DD-ACB7-EF5E5C6BDA2D Group: Panasonic
Required properties:
- name String — Device Name that describes your asset.
- networkAddress String — IP Address of the device.
- networkPort SignedInteger — Network port of the device.
Optional properties:
- description String — Description of the device or an asset.
Request Body
GraphQL Query
mutation CreateDevice($input: CreateDeviceRequest!) {
CreateDevice(input: $input) {
ID
Name
DriverID
Description
}
}
Variables
{
"input": {
"Name": "My Panasonic FP Ethernet (Gen1.3) Device",
"Description": "",
"DriverID": "0FCEB17A-2176-40DD-ACB7-EF5E5C6BDA2D",
"AliasTopics": false,
"Debug": false,
"MetaData": [],
"StoppedState": false,
"StatusRegister": null,
"Properties": [
{
"Key": "name",
"Value": "Panasonic Device"
},
{
"Key": "description",
"Value": ""
},
{
"Key": "networkAddress",
"Value": "192.168.1.100"
},
{
"Key": "networkPort",
"Value": "502"
}
]
}
}
Response
Status: 200 OK
{
"data": {
"CreateDevice": {
"ID": "<generated-uuid>",
"Name": "My Panasonic FP Ethernet (Gen1.3) Device",
"DriverID": "0FCEB17A-2176-40DD-ACB7-EF5E5C6BDA2D",
"Description": ""
}
}
}
Create Device - Panasonic FP Serial (Gen1.3)
POST {{edgeUrl}}/devicehub/v2
Panasonic FP Serial (Gen1.3)
| Prerequisites | None |
| Required fields | Communication Port Baud Rate Data Bits Stop Bits Parity Station ID |
| Browse devices supported | No |
| Browse tags supported | No |
| Supported device models | Panasonic FP Series |
Driver ID: 4982A1BF-B08E-40C9-BC93-809855DC6986 Group: Panasonic
Required properties:
- deviceFile String — Local Serial connection file path.
- baudRate SignedInteger — Serial communication baudrate parameter.
- dataBits SignedInteger — Serial communication databits parameter.
- parity SignedInteger — serial communication parity parameter. Options: 0, 1, 2
- name String — Device Name that describes your asset.
- stationId SignedInteger — Station id/ slot number
- stopBits SignedInteger — Serial communication stopbits parameter.
Optional properties:
- description String — Description of the device or an asset.
Request Body
GraphQL Query
mutation CreateDevice($input: CreateDeviceRequest!) {
CreateDevice(input: $input) {
ID
Name
DriverID
Description
}
}
Variables
{
"input": {
"Name": "My Panasonic FP Serial (Gen1.3) Device",
"Description": "",
"DriverID": "4982A1BF-B08E-40C9-BC93-809855DC6986",
"AliasTopics": false,
"Debug": false,
"MetaData": [],
"StoppedState": false,
"StatusRegister": null,
"Properties": [
{
"Key": "description",
"Value": ""
},
{
"Key": "deviceFile",
"Value": "/dev/ttyUSB0"
},
{
"Key": "baudRate",
"Value": "9600"
},
{
"Key": "dataBits",
"Value": "8"
},
{
"Key": "parity",
"Value": "0"
},
{
"Key": "name",
"Value": "Panasonic Device"
},
{
"Key": "stationId",
"Value": "1"
},
{
"Key": "stopBits",
"Value": "1"
}
]
}
}
Response
Status: 200 OK
{
"data": {
"CreateDevice": {
"ID": "<generated-uuid>",
"Name": "My Panasonic FP Serial (Gen1.3) Device",
"DriverID": "4982A1BF-B08E-40C9-BC93-809855DC6986",
"Description": ""
}
}
}
Create Device - Panasonic FP7 Ethernet (Gen1.3)
POST {{edgeUrl}}/devicehub/v2
Panasonic FP7 Ethernet (Gen1.3)
| Prerequisites | None |
| Required fields | Network address Network Port |
| Browse devices supported | No |
| Browse tags supported | No |
| Supported device models | Panasonic FP7 |
Driver ID: C86A893E-4AA8-4635-A4DC-AED922AA80BC Group: Panasonic
Required properties:
- name String — Device Name that describes your asset.
- networkAddress String — IP Address of the device.
- networkPort SignedInteger — Network port of the device.
Optional properties:
- description String — Description of the device or an asset.
Request Body
GraphQL Query
mutation CreateDevice($input: CreateDeviceRequest!) {
CreateDevice(input: $input) {
ID
Name
DriverID
Description
}
}
Variables
{
"input": {
"Name": "My Panasonic FP7 Ethernet (Gen1.3) Device",
"Description": "",
"DriverID": "C86A893E-4AA8-4635-A4DC-AED922AA80BC",
"AliasTopics": false,
"Debug": false,
"MetaData": [],
"StoppedState": false,
"StatusRegister": null,
"Properties": [
{
"Key": "name",
"Value": "Panasonic Device"
},
{
"Key": "description",
"Value": ""
},
{
"Key": "networkAddress",
"Value": "192.168.1.100"
},
{
"Key": "networkPort",
"Value": "502"
}
]
}
}
Response
Status: 200 OK
{
"data": {
"CreateDevice": {
"ID": "<generated-uuid>",
"Name": "My Panasonic FP7 Ethernet (Gen1.3) Device",
"DriverID": "C86A893E-4AA8-4635-A4DC-AED922AA80BC",
"Description": ""
}
}
}
Create Device - Panasonic Mewtocol Ethernet (Gen1.3)
POST {{edgeUrl}}/devicehub/v2
Panasonic Mewtocol Ethernet (Gen1.3)
| Prerequisites | None |
| Required fields | Network address Network Port Station ID |
| Browse devices supported | No |
| Browse tags supported | No |
| Supported device models | Panasonic FP7 Series |
Driver ID: B70AE188-67B0-4EAF-8116-69573AC45756 Group: Panasonic
Required properties:
- stationId SignedInteger — Station no of device.
- name String — Device Name that describes your asset.
- networkAddress String — IP Address of the device.
- networkPort SignedInteger — Network port of the device.
Optional properties:
- description String — Description of the device or an asset.
Request Body
GraphQL Query
mutation CreateDevice($input: CreateDeviceRequest!) {
CreateDevice(input: $input) {
ID
Name
DriverID
Description
}
}
Variables
{
"input": {
"Name": "My Panasonic Mewtocol Ethernet (Gen1.3) Device",
"Description": "",
"DriverID": "B70AE188-67B0-4EAF-8116-69573AC45756",
"AliasTopics": false,
"Debug": false,
"MetaData": [],
"StoppedState": false,
"StatusRegister": null,
"Properties": [
{
"Key": "stationId",
"Value": "1"
},
{
"Key": "name",
"Value": "Panasonic Device"
},
{
"Key": "description",
"Value": ""
},
{
"Key": "networkAddress",
"Value": "192.168.1.100"
},
{
"Key": "networkPort",
"Value": "502"
}
]
}
}
Response
Status: 200 OK
{
"data": {
"CreateDevice": {
"ID": "<generated-uuid>",
"Name": "My Panasonic Mewtocol Ethernet (Gen1.3) Device",
"DriverID": "B70AE188-67B0-4EAF-8116-69573AC45756",
"Description": ""
}
}
}
Create Device - Parker ACR9000 Ethernet (Gen1.3)
POST {{edgeUrl}}/devicehub/v2
Parker ACR9000 Ethernet (Gen1.3)
| Prerequisites | No |
| Required fields | Network Address Port |
| Browse devices supported | No |
| Browse tags supported | No |
| Supported device models | Parker ACR9000 |
Driver ID: 1D7CBE1A-1C53-41E4-B5BF-C4515C965880 Group: Parker
Required properties:
- networkPort SignedInteger — Network port of the device.
- networkAddress String — IP Address of the device.
- name String — Device Name that describes your asset.
Optional properties:
- description String — Description of the device or an asset.
Request Body
GraphQL Query
mutation CreateDevice($input: CreateDeviceRequest!) {
CreateDevice(input: $input) {
ID
Name
DriverID
Description
}
}
Variables
{
"input": {
"Name": "My Parker ACR9000 Ethernet (Gen1.3) Device",
"Description": "",
"DriverID": "1D7CBE1A-1C53-41E4-B5BF-C4515C965880",
"AliasTopics": false,
"Debug": false,
"MetaData": [],
"StoppedState": false,
"StatusRegister": null,
"Properties": [
{
"Key": "networkPort",
"Value": "502"
},
{
"Key": "networkAddress",
"Value": "192.168.1.100"
},
{
"Key": "name",
"Value": "parker"
},
{
"Key": "description",
"Value": ""
}
]
}
}
Response
Status: 200 OK
{
"data": {
"CreateDevice": {
"ID": "<generated-uuid>",
"Name": "My Parker ACR9000 Ethernet (Gen1.3) Device",
"DriverID": "1D7CBE1A-1C53-41E4-B5BF-C4515C965880",
"Description": ""
}
}
}
Create Device - Ping (Gen1.3)
POST {{edgeUrl}}/devicehub/v2
Ping (Gen1.3)
Use the ping-type tag to check if an IP address is accessible.
Use the port-type tag to check is a port is open on an IP address.
Driver ID: F1710513-3E9B-455C-A41F-E54A6F376B39 Group: Network Utility
Required properties:
- name String — Device Name that describes your asset.
Optional properties:
- description String — Description of the device or an asset.
Request Body
GraphQL Query
mutation CreateDevice($input: CreateDeviceRequest!) {
CreateDevice(input: $input) {
ID
Name
DriverID
Description
}
}
Variables
{
"input": {
"Name": "My Ping (Gen1.3) Device",
"Description": "",
"DriverID": "F1710513-3E9B-455C-A41F-E54A6F376B39",
"AliasTopics": false,
"Debug": false,
"MetaData": [],
"StoppedState": false,
"StatusRegister": null,
"Properties": [
{
"Key": "name",
"Value": "ping"
},
{
"Key": "description",
"Value": ""
}
]
}
}
Response
Status: 200 OK
{
"data": {
"CreateDevice": {
"ID": "<generated-uuid>",
"Name": "My Ping (Gen1.3) Device",
"DriverID": "F1710513-3E9B-455C-A41F-E54A6F376B39",
"Description": ""
}
}
}
Create Device - PostgreSQL Client
POST {{edgeUrl}}/devicehub/v2
PostgreSQL Client Driver
| Browse devices supported: | No |
| Browse tags supported: | No |
| Driver Settings: | > Address: IP, Hostname or Endpoint (Port setting is ignored if port is included here) |
| > Database: Specify query target within server | |
| > Username, Password: Client authentication | |
| > AppName: Client Application ID (optional connection identifier) | |
| Important: | > Ensure minimal permissions are set for the provided user account |
| Miscellaneous: | > Driver is Read-Only |
| > For multi-row output, use "Table" register | |
| > For single-row or single-field output, use "Record" register | |
| > When reading single rows, enable timestamp/value parsing by setting a positive index value for the respective fields | |
| > When reading multiple rows, it is recommended to keep output table sizes under 1MB | |
| > When using "Publish on Change", it may be necessary to define a "Change Query" on which any output will indicate that the data has been updated | |
| > To persist a change "state", configure state value parsing and implement "Change Query", the first argument must represet the "state" | |
| > All SQL queries (multi-statement in particular) should be tested independently of driver to ensure correctness | |
| Miscellaneous: | > Driver does not support writing to tags |
| > For multi-row output, use "Table" register | |
| > For single-row or single-field output, use "Record" register | |
| > When reading single rows, enable timestamp/value parsing by setting a positive index value for the respective fields | |
| > When reading multiple rows, it is recommended to keep output table sizes under 1MB | |
| > When using "Only Publish on Change of Value", it may be necessary to define a CDC query | |
| > All SQL queries (multi-statement in particular) should be tested independently of driver to ensure correctness |
Driver ID: C373F016-4683-47DD-B633-E154AFCC2D06 Group: Historian
Required properties:
- Address String — SQL Server Address
- Password String
- Port SignedInteger — SQL Server Port
- Username String
- name String — A unique, user-defined name for this device. Used to identify the device throughout the edge gateway, including in message broker topics and logs.
Optional properties:
- Certificate String — Client Certificate (PEM)
- RequestTimeout SignedInteger — Request Timeout (S)
- Database String — Server Database Name
- CAChain String — Server CA Chain (PEM)
- PrivateKey String — Client Private Key (PEM)
- AppName String — Client Application Name
- CertificateVerification SignedInteger — Server Certificate & Hostname Verification Options: 0, 1
- ConnectionTimeout SignedInteger — Connection Timeout (S)
- EnableTLS SignedInteger — Enable TLS Options: 0, 1
- ClientAuth SignedInteger — Client Authentication (mTLS) Options: 0, 1
- description String — Optional free-text notes about this device, such as its physical location or purpose.
Request Body
GraphQL Query
mutation CreateDevice($input: CreateDeviceRequest!) {
CreateDevice(input: $input) {
ID
Name
DriverID
Description
}
}
Variables
{
"input": {
"Name": "My PostgreSQL Client Device",
"Description": "",
"DriverID": "C373F016-4683-47DD-B633-E154AFCC2D06",
"AliasTopics": false,
"Debug": false,
"MetaData": [],
"StoppedState": false,
"StatusRegister": null,
"Properties": [
{
"Key": "Certificate",
"Value": "<certificate>"
},
{
"Key": "RequestTimeout",
"Value": "10"
},
{
"Key": "Address",
"Value": "192.168.1.100"
},
{
"Key": "Database",
"Value": "master"
},
{
"Key": "Password",
"Value": "password"
},
{
"Key": "CAChain",
"Value": ""
},
{
"Key": "PrivateKey",
"Value": "<certificate>"
},
{
"Key": "AppName",
"Value": "devicehub"
},
{
"Key": "CertificateVerification",
"Value": "0"
},
{
"Key": "ConnectionTimeout",
"Value": "5"
},
{
"Key": "Port",
"Value": "5432"
},
{
"Key": "Username",
"Value": "admin"
},
{
"Key": "EnableTLS",
"Value": "1"
},
{
"Key": "ClientAuth",
"Value": "1"
},
{
"Key": "name",
"Value": "postgresql-client_device"
},
{
"Key": "description",
"Value": ""
}
]
}
}
Response
Status: 200 OK
{
"data": {
"CreateDevice": {
"ID": "<generated-uuid>",
"Name": "My PostgreSQL Client Device",
"DriverID": "C373F016-4683-47DD-B633-E154AFCC2D06",
"Description": ""
}
}
}
Create Device - PostgreSQL Client (No TLS)
POST {{edgeUrl}}/devicehub/v2
PostgreSQL Client Driver
| Browse devices supported: | No |
| Browse tags supported: | No |
| Driver Settings: | > Address: IP, Hostname or Endpoint (Port setting is ignored if port is included here) |
| > Database: Specify query target within server | |
| > Username, Password: Client authentication | |
| > AppName: Client Application ID (optional connection identifier) | |
| Important: | > Ensure minimal permissions are set for the provided user account |
| Miscellaneous: | > Driver is Read-Only |
| > For multi-row output, use "Table" register | |
| > For single-row or single-field output, use "Record" register | |
| > When reading single rows, enable timestamp/value parsing by setting a positive index value for the respective fields | |
| > When reading multiple rows, it is recommended to keep output table sizes under 1MB | |
| > When using "Publish on Change", it may be necessary to define a "Change Query" on which any output will indicate that the data has been updated | |
| > To persist a change "state", configure state value parsing and implement "Change Query", the first argument must represet the "state" | |
| > All SQL queries (multi-statement in particular) should be tested independently of driver to ensure correctness | |
| Miscellaneous: | > Driver does not support writing to tags |
| > For multi-row output, use "Table" register | |
| > For single-row or single-field output, use "Record" register | |
| > When reading single rows, enable timestamp/value parsing by setting a positive index value for the respective fields | |
| > When reading multiple rows, it is recommended to keep output table sizes under 1MB | |
| > When using "Only Publish on Change of Value", it may be necessary to define a CDC query | |
| > All SQL queries (multi-statement in particular) should be tested independently of driver to ensure correctness |
Driver ID: C373F016-4683-47DD-B633-E154AFCC2D06 Group: Historian
Required properties:
- Address String — SQL Server Address
- Password String
- Port SignedInteger — SQL Server Port
- Username String
- name String — A unique, user-defined name for this device. Used to identify the device throughout the edge gateway, including in message broker topics and logs.
Optional properties:
- Certificate String — Client Certificate (PEM)
- RequestTimeout SignedInteger — Request Timeout (S)
- Database String — Server Database Name
- CAChain String — Server CA Chain (PEM)
- PrivateKey String — Client Private Key (PEM)
- AppName String — Client Application Name
- CertificateVerification SignedInteger — Server Certificate & Hostname Verification Options: 0, 1
- ConnectionTimeout SignedInteger — Connection Timeout (S)
- EnableTLS SignedInteger — Enable TLS Options: 0, 1
- ClientAuth SignedInteger — Client Authentication (mTLS) Options: 0, 1
- description String — Optional free-text notes about this device, such as its physical location or purpose.
Request Body
GraphQL Query
mutation CreateDevice($input: CreateDeviceRequest!) {
CreateDevice(input: $input) {
ID
Name
DriverID
Description
}
}
Variables
{
"input": {
"Name": "My PostgreSQL Client Device (No TLS)",
"Description": "",
"DriverID": "C373F016-4683-47DD-B633-E154AFCC2D06",
"AliasTopics": false,
"Debug": false,
"MetaData": [],
"StoppedState": false,
"StatusRegister": null,
"Properties": [
{
"Key": "RequestTimeout",
"Value": "10"
},
{
"Key": "Address",
"Value": "192.168.1.100"
},
{
"Key": "Database",
"Value": "master"
},
{
"Key": "Password",
"Value": "password"
},
{
"Key": "AppName",
"Value": "devicehub"
},
{
"Key": "ConnectionTimeout",
"Value": "5"
},
{
"Key": "Port",
"Value": "5432"
},
{
"Key": "Username",
"Value": "admin"
},
{
"Key": "EnableTLS",
"Value": "1"
},
{
"Key": "name",
"Value": "postgresql-client_device"
},
{
"Key": "description",
"Value": ""
}
]
}
}
Response
Status: 200 OK
{
"data": {
"CreateDevice": {
"ID": "<generated-uuid>",
"Name": "My PostgreSQL Client Device (No TLS)",
"DriverID": "C373F016-4683-47DD-B633-E154AFCC2D06",
"Description": ""
}
}
}
Create Device - Profinet Acyclic
POST {{edgeUrl}}/devicehub/v2
Profinet Acyclic
| Prerequisites | None |
| Required fields | Network address Network Port Slot Number Subslot Number |
| Browse devices supported | No |
| Browse tags supported | Only for devices which support the PROFIenergy function Query_Measurement |
| Miscellaneous | This is a read-only driver |
The driver supports following tag types:
- Records: Generic data access
- I&M: Identification and Maintenance data records
- PROFIdrive profile: Read parameters by parameter number (PNU) index and subindex
- PROFIenergy profile: Read measurements
Driver ID: 28B130B3-530E-4644-99EF-4FDC06C758DE Group: Profinet
Required properties:
- networkAddress String — IP Address of Profinet IO Device
- networkPort SignedInteger — UDP port of device
- slotNumber SignedInteger — Slot
- subslot SignedInteger — Subslot
- name String — A unique, user-defined name for this device. Used to identify the device throughout the edge gateway, including in message broker topics and logs.
Optional properties:
- description String — Optional free-text notes about this device, such as its physical location or purpose.
Request Body
GraphQL Query
mutation CreateDevice($input: CreateDeviceRequest!) {
CreateDevice(input: $input) {
ID
Name
DriverID
Description
}
}
Variables
{
"input": {
"Name": "My Profinet Acyclic Device",
"Description": "",
"DriverID": "28B130B3-530E-4644-99EF-4FDC06C758DE",
"AliasTopics": false,
"Debug": false,
"MetaData": [],
"StoppedState": false,
"StatusRegister": null,
"Properties": [
{
"Key": "networkAddress",
"Value": "192.168.1.100"
},
{
"Key": "networkPort",
"Value": "502"
},
{
"Key": "slotNumber",
"Value": "0"
},
{
"Key": "subslot",
"Value": "1"
},
{
"Key": "name",
"Value": "profinet-acyclic_device"
},
{
"Key": "description",
"Value": ""
}
]
}
}
Response
Status: 200 OK
{
"data": {
"CreateDevice": {
"ID": "<generated-uuid>",
"Name": "My Profinet Acyclic Device",
"DriverID": "28B130B3-530E-4644-99EF-4FDC06C758DE",
"Description": ""
}
}
}
Create Device - Profinet Acyclic Turck
POST {{edgeUrl}}/devicehub/v2
Profinet Acyclic (Turck)
| Prerequisites | None |
| Required fields | Network address Network Port Slot Number Subslot Number |
| Browse devices supported | No |
| Browse tags supported | Only for devices which support the PROFIenergy function Query_Measurement |
| Miscellaneous | This is a read-only driver Slot and Subslot settings can be specified for a Tag. |
The driver supports following tag types: - Records: Generic data access - I&M: Identification and Maintenance data records - PROFIdrive profile: Read parameters by parameter number (PNU) index and subindex - PROFIenergy profile: Read measurements
Driver ID: 66A6A52D-F27E-454F-8BFC-C41B3419CCAC Group: Profinet
Required properties:
- networkAddress String — IP Address of Profinet IO Device
- networkPort SignedInteger — UDP port of device
- name String — A unique, user-defined name for this device. Used to identify the device throughout the edge gateway, including in message broker topics and logs.
Optional properties:
- description String — Optional free-text notes about this device, such as its physical location or purpose.
Request Body
GraphQL Query
mutation CreateDevice($input: CreateDeviceRequest!) {
CreateDevice(input: $input) {
ID
Name
DriverID
Description
}
}
Variables
{
"input": {
"Name": "My Profinet Acyclic Turck Device",
"Description": "",
"DriverID": "66A6A52D-F27E-454F-8BFC-C41B3419CCAC",
"AliasTopics": false,
"Debug": false,
"MetaData": [],
"StoppedState": false,
"StatusRegister": null,
"Properties": [
{
"Key": "networkAddress",
"Value": "192.168.1.100"
},
{
"Key": "networkPort",
"Value": "502"
},
{
"Key": "name",
"Value": "profinet-acyclic-turck_device"
},
{
"Key": "description",
"Value": ""
}
]
}
}
Response
Status: 200 OK
{
"data": {
"CreateDevice": {
"ID": "<generated-uuid>",
"Name": "My Profinet Acyclic Turck Device",
"DriverID": "66A6A52D-F27E-454F-8BFC-C41B3419CCAC",
"Description": ""
}
}
}
Create Device - REST Client
POST {{edgeUrl}}/devicehub/v2
REST Client Driver
| Browse devices supported | No |
| Browse tags supported | No |
| Driver Settings | > Server Connection Settings: Address, Port, Authentication, TLS |
| Common Request Settings: | |
| > Path: Root URL Path for all requests | |
| > Headers: Common HTTP Headers (JSON-encoded) | |
| > Path Params: Common HTTP Path Parameters (JSON-encoded) | |
| > Query Params: Common HTTP Query Parameters (Parameter-string or JSON-encoded) e.g. p1=xyz&p2=2 or {"p1":"xyz","p2":"2"} | |
| Tag Settings | Request Settings: |
| > Type: (GET, POST) | |
| > Path: Request URL Path, follows common path | |
| > Parameters Settings: Appends/Overwrites common parameters | |
| > Payload: HTTP request body, usually for POST-only requests | |
| > Response Parse Pattern: Target path within JSON response body (JSONPath encoded) e.g. $.fieldA.fieldB[0].xyz or $['field-a']['field-b'][0]['xyz'] | |
| > Allow Multiple Matches: When using wildcards in parse pattern, yield all matches (default: disabled, first-only) | |
| > Allow Empty Matches: When using wildcards in parse pattern, don't yield error when no matches are found (default: disabled, yield-error) |
Driver ID: 8FE812E2-C026-4CC8-9C9F-4D3C59CC31E9 Group: Generic
Required properties:
- networkAddress String — Server Hostname or IP
- username String — Username
- networkPort SignedInteger — Server Port
- bearerToken String — Client Token
- password String — Password
- oauth2ClientID String — Client Identifier registered to the application
- oauth2TokenEndpoint String — Authorization Server URL
- clientCertificate String — Client Certificate (PEM)
- clientPrivateKey String — Client Private Key (PEM)
- name String — A unique, user-defined name for this device. Used to identify the device throughout the edge gateway, including in message broker topics and logs.
Optional properties:
- urlPath String — Common URL Path
- oauth2TokenParams String — Additional token endpoint parameters (JSON or Parameter string)
- enableTLS SignedInteger — Enable TLS / HTTPS Options: 0, 1
- certificateAuthority String — CA Chain (PEM)
- headers String — Common HTTP Headers (JSON)
- queryParams String — Common HTTP Query Parameters (JSON or Parameter string)
- oauth2ClientSecret String — Client Secret registered to the application
- authSchemeOverride String — Authorization header scheme/prefix override
- enableMutualTLS SignedInteger — Enable mTLS / Client Certificate Options: 0, 1
- pathParams String — Common HTTP Path Parameters (JSON)
- requestTimeout SignedInteger — Request timeout, msec
- requestRetryCount SignedInteger — Retry request count
- authenticationType SignedInteger — Authentication Type Options: 0, 1, 2, 3, 4
- oauth2Scopes String — Access request scope(s) (space separated values)
- certificateVerification SignedInteger — Verify server certificate Options: 0, 1
- requestRetryWaitMS SignedInteger — Pause between retries, msec
- description String — Optional free-text notes about this device, such as its physical location or purpose.
Request Body
GraphQL Query
mutation CreateDevice($input: CreateDeviceRequest!) {
CreateDevice(input: $input) {
ID
Name
DriverID
Description
}
}
Variables
{
"input": {
"Name": "My REST Client Device",
"Description": "",
"DriverID": "8FE812E2-C026-4CC8-9C9F-4D3C59CC31E9",
"AliasTopics": false,
"Debug": false,
"MetaData": [],
"StoppedState": false,
"StatusRegister": null,
"Properties": [
{
"Key": "networkAddress",
"Value": "192.168.1.100"
},
{
"Key": "urlPath",
"Value": "/example/path"
},
{
"Key": "username",
"Value": "admin"
},
{
"Key": "oauth2TokenParams",
"Value": ""
},
{
"Key": "enableTLS",
"Value": "1"
},
{
"Key": "certificateAuthority",
"Value": ""
},
{
"Key": "headers",
"Value": ""
},
{
"Key": "queryParams",
"Value": ""
},
{
"Key": "networkPort",
"Value": "80"
},
{
"Key": "bearerToken",
"Value": "password"
},
{
"Key": "oauth2ClientSecret",
"Value": ""
},
{
"Key": "authSchemeOverride",
"Value": ""
},
{
"Key": "enableMutualTLS",
"Value": "1"
},
{
"Key": "pathParams",
"Value": ""
},
{
"Key": "requestTimeout",
"Value": "2000"
},
{
"Key": "requestRetryCount",
"Value": "0"
},
{
"Key": "authenticationType",
"Value": "0"
},
{
"Key": "password",
"Value": "password"
},
{
"Key": "oauth2ClientID",
"Value": "placeholder_oauth2clientid"
},
{
"Key": "oauth2TokenEndpoint",
"Value": "/example/path"
},
{
"Key": "oauth2Scopes",
"Value": ""
},
{
"Key": "clientCertificate",
"Value": "<certificate>"
},
{
"Key": "clientPrivateKey",
"Value": "<certificate>"
},
{
"Key": "certificateVerification",
"Value": "0"
},
{
"Key": "requestRetryWaitMS",
"Value": "100"
},
{
"Key": "name",
"Value": "rest-client_device"
},
{
"Key": "description",
"Value": ""
}
]
}
}
Response
Status: 200 OK
{
"data": {
"CreateDevice": {
"ID": "<generated-uuid>",
"Name": "My REST Client Device",
"DriverID": "8FE812E2-C026-4CC8-9C9F-4D3C59CC31E9",
"Description": ""
}
}
}
Create Device - REST Client (No TLS)
POST {{edgeUrl}}/devicehub/v2
REST Client Driver
| Browse devices supported | No |
| Browse tags supported | No |
| Driver Settings | > Server Connection Settings: Address, Port, Authentication, TLS |
| Common Request Settings: | |
| > Path: Root URL Path for all requests | |
| > Headers: Common HTTP Headers (JSON-encoded) | |
| > Path Params: Common HTTP Path Parameters (JSON-encoded) | |
| > Query Params: Common HTTP Query Parameters (Parameter-string or JSON-encoded) e.g. p1=xyz&p2=2 or {"p1":"xyz","p2":"2"} | |
| Tag Settings | Request Settings: |
| > Type: (GET, POST) | |
| > Path: Request URL Path, follows common path | |
| > Parameters Settings: Appends/Overwrites common parameters | |
| > Payload: HTTP request body, usually for POST-only requests | |
| > Response Parse Pattern: Target path within JSON response body (JSONPath encoded) e.g. $.fieldA.fieldB[0].xyz or $['field-a']['field-b'][0]['xyz'] | |
| > Allow Multiple Matches: When using wildcards in parse pattern, yield all matches (default: disabled, first-only) | |
| > Allow Empty Matches: When using wildcards in parse pattern, don't yield error when no matches are found (default: disabled, yield-error) |
Driver ID: 8FE812E2-C026-4CC8-9C9F-4D3C59CC31E9 Group: Generic
Required properties:
- networkAddress String — Server Hostname or IP
- username String — Username
- networkPort SignedInteger — Server Port
- bearerToken String — Client Token
- password String — Password
- oauth2ClientID String — Client Identifier registered to the application
- oauth2TokenEndpoint String — Authorization Server URL
- clientCertificate String — Client Certificate (PEM)
- clientPrivateKey String — Client Private Key (PEM)
- name String — A unique, user-defined name for this device. Used to identify the device throughout the edge gateway, including in message broker topics and logs.
Optional properties:
- urlPath String — Common URL Path
- oauth2TokenParams String — Additional token endpoint parameters (JSON or Parameter string)
- enableTLS SignedInteger — Enable TLS / HTTPS Options: 0, 1
- certificateAuthority String — CA Chain (PEM)
- headers String — Common HTTP Headers (JSON)
- queryParams String — Common HTTP Query Parameters (JSON or Parameter string)
- oauth2ClientSecret String — Client Secret registered to the application
- authSchemeOverride String — Authorization header scheme/prefix override
- enableMutualTLS SignedInteger — Enable mTLS / Client Certificate Options: 0, 1
- pathParams String — Common HTTP Path Parameters (JSON)
- requestTimeout SignedInteger — Request timeout, msec
- requestRetryCount SignedInteger — Retry request count
- authenticationType SignedInteger — Authentication Type Options: 0, 1, 2, 3, 4
- oauth2Scopes String — Access request scope(s) (space separated values)
- certificateVerification SignedInteger — Verify server certificate Options: 0, 1
- requestRetryWaitMS SignedInteger — Pause between retries, msec
- description String — Optional free-text notes about this device, such as its physical location or purpose.
Request Body
GraphQL Query
mutation CreateDevice($input: CreateDeviceRequest!) {
CreateDevice(input: $input) {
ID
Name
DriverID
Description
}
}
Variables
{
"input": {
"Name": "My REST Client Device (No TLS)",
"Description": "",
"DriverID": "8FE812E2-C026-4CC8-9C9F-4D3C59CC31E9",
"AliasTopics": false,
"Debug": false,
"MetaData": [],
"StoppedState": false,
"StatusRegister": null,
"Properties": [
{
"Key": "networkAddress",
"Value": "192.168.1.100"
},
{
"Key": "urlPath",
"Value": "/example/path"
},
{
"Key": "enableTLS",
"Value": "0"
},
{
"Key": "headers",
"Value": ""
},
{
"Key": "queryParams",
"Value": ""
},
{
"Key": "networkPort",
"Value": "80"
},
{
"Key": "pathParams",
"Value": ""
},
{
"Key": "requestTimeout",
"Value": "2000"
},
{
"Key": "requestRetryCount",
"Value": "0"
},
{
"Key": "authenticationType",
"Value": "0"
},
{
"Key": "requestRetryWaitMS",
"Value": "100"
},
{
"Key": "name",
"Value": "rest-client_device"
},
{
"Key": "description",
"Value": ""
}
]
}
}
Response
Status: 200 OK
{
"data": {
"CreateDevice": {
"ID": "<generated-uuid>",
"Name": "My REST Client Device (No TLS)",
"DriverID": "8FE812E2-C026-4CC8-9C9F-4D3C59CC31E9",
"Description": ""
}
}
}
Create Device - ROC800 Ethernet
POST {{edgeUrl}}/devicehub/v2
ROC800 Ethernet
| Prerequisites | None |
| Required fields | Network address Network Port Operator ID Password Device Group/Address Host Group/Address |
| Browse devices supported | No |
| Browse tags supported | Yes |
| Supported device models | Emerson ROC800 Series |
Driver ID: 96B7A2BE-1EA8-4DC0-8809-EBF867ADFB60 Group: Emerson
Required properties:
- networkAddress String — Device IP Address
- Password SignedInteger — Password
- deviceAddress SignedInteger — ROC800 Station Address
- hostAddress SignedInteger — Host Station Address
- networkPort SignedInteger — TCP/IP Port
- OperatorID String — Operator ID
- deviceGroup SignedInteger — ROC800 Station Group
- hostGroup SignedInteger — Host Station Group
- name String — A unique, user-defined name for this device. Used to identify the device throughout the edge gateway, including in message broker topics and logs.
Optional properties:
- NextRequestDelay SignedInteger — Delay before next Request (ms)
- optimizations SignedInteger Options: 0, 1
- description String — Optional free-text notes about this device, such as its physical location or purpose.
Request Body
GraphQL Query
mutation CreateDevice($input: CreateDeviceRequest!) {
CreateDevice(input: $input) {
ID
Name
DriverID
Description
}
}
Variables
{
"input": {
"Name": "My ROC800 Ethernet Device",
"Description": "",
"DriverID": "96B7A2BE-1EA8-4DC0-8809-EBF867ADFB60",
"AliasTopics": false,
"Debug": false,
"MetaData": [],
"StoppedState": false,
"StatusRegister": null,
"Properties": [
{
"Key": "networkAddress",
"Value": "192.168.1.100"
},
{
"Key": "Password",
"Value": "1000"
},
{
"Key": "deviceAddress",
"Value": "240"
},
{
"Key": "hostAddress",
"Value": "239"
},
{
"Key": "NextRequestDelay",
"Value": "0"
},
{
"Key": "networkPort",
"Value": "502"
},
{
"Key": "OperatorID",
"Value": "LOI"
},
{
"Key": "deviceGroup",
"Value": "240"
},
{
"Key": "hostGroup",
"Value": "1"
},
{
"Key": "optimizations",
"Value": "0"
},
{
"Key": "name",
"Value": "roc800-ethernet_device"
},
{
"Key": "description",
"Value": ""
}
]
}
}
Response
Status: 200 OK
{
"data": {
"CreateDevice": {
"ID": "<generated-uuid>",
"Name": "My ROC800 Ethernet Device",
"DriverID": "96B7A2BE-1EA8-4DC0-8809-EBF867ADFB60",
"Description": ""
}
}
}
Create Device - Saia Ethernet (Gen1.3)
POST {{edgeUrl}}/devicehub/v2
Saia Ethernet (Gen1.3)
| Prerequisites | No |
| Required fields | Network Address Port Station ID |
| Browse devices supported | No |
| Browse tags supported | No |
| Supported device models | SAIA PCD Series |
Driver ID: CF709836-53C7-4F49-9179-5DFC294C47A8 Group: SAIA
Required properties:
- networkAddress String — IP Address of the device.
- stationId SignedInteger — Station Id/ Slot Number
- name String — Device Name that describes your asset.
- networkPort SignedInteger — Network port of the device.
Optional properties:
- description String — Description of the device or an asset.
Request Body
GraphQL Query
mutation CreateDevice($input: CreateDeviceRequest!) {
CreateDevice(input: $input) {
ID
Name
DriverID
Description
}
}
Variables
{
"input": {
"Name": "My Saia Ethernet (Gen1.3) Device",
"Description": "",
"DriverID": "CF709836-53C7-4F49-9179-5DFC294C47A8",
"AliasTopics": false,
"Debug": false,
"MetaData": [],
"StoppedState": false,
"StatusRegister": null,
"Properties": [
{
"Key": "networkAddress",
"Value": "192.168.1.100"
},
{
"Key": "stationId",
"Value": "0"
},
{
"Key": "name",
"Value": "saia device"
},
{
"Key": "description",
"Value": ""
},
{
"Key": "networkPort",
"Value": "502"
}
]
}
}
Response
Status: 200 OK
{
"data": {
"CreateDevice": {
"ID": "<generated-uuid>",
"Name": "My Saia Ethernet (Gen1.3) Device",
"DriverID": "CF709836-53C7-4F49-9179-5DFC294C47A8",
"Description": ""
}
}
}
Create Device - Scale
POST {{edgeUrl}}/devicehub/v2
Mettler Scale Driver
| Required fields: | > Connection Settings (TCP, UDP or Serial) |
| Browse devices supported: | No |
| Browse tags supported: | No |
| Supported device models: | |
| Requests: | > Poll: Execute at interval, or when triggered |
| > Write: Execute when triggered | |
| > Stream: Initiate connection, execute request, parse responses on receipt | |
| > Response: Parse additional value from existing Poll/Stream requests | |
| Payload: | > Request payload formatted as "Hex-String" |
| > Hex-String: string of valid hexadecimal characters: 0123456789ABCDEF | |
| > example: ABCD1234 -> encoded in binary exactly as seen | |
| > with Params: ABCD\ -> "address" param injected, binary encoding | |
| > with ASCII: ABCD"PROTO"123 -> quoted segments, ascii encoding | |
| > all ASCII: "HEADER-$%*-123-TAIL" -> entire payload, ascii encoding | |
| Parameters: | > Session or Request params formatted as JSON (string values only) |
| > Request params take precedence over Session params, if duplicate | |
| > Keys like "address" or "areaCode", can be used in request: ...\<areaCode>\<address>... | |
| > Numeric params can be decimal/hexadecimal/octal, but must be in "string" form with appropriate prefix | |
| > Bit length inferred from padded length: "0x0012" or "0018" -> encoded as uint16(18) | |
| > Bit lengths supported: 4/8/16/24/32/64 | |
| > Params wrapped with \\"\\", encoded as ascii: { "areaType": "\"MEM_AREA\"" } | |
| > Params injected within ascii segment of payload, converted to ascii: ..."\ |
|
| Parsing: | > Start Index: 0-Indexed start of values, within response. Combined with value count, defines minimum response length (-1 to skip read) |
| > Value Count: Count of typed values to parse from response. If response is too short, reads will fail. | |
| > Value Length: (Strings-Only) Defines length of single value in bytes (0 for entire response) | |
| > Request Tag: Datahub Tag name for target request tag | |
| > Regex: Run 'FindAllSubmatch' on the response (RE2 semantics) | |
| > Regex Match Num: Index of 'FindAll' match | |
| > Regex Group Num: Index of 'Submatch' group | |
| Register Settings: | |
| > Request Tag: For "Response" registers, link to DH tag of target request | |
| > Override Transport: Define alternate endpoint for single request, connection is not persistent | |
| > Decimal Regex: Parsing decimal position, for float values |
Driver ID: F88D5FAE-A0C2-4B83-94FE-8F23915A390E Group: Generic
Required properties:
- networkAddress String — IP Address
- connectionPayload String — Connection Request (Hex String)
- deviceFile String — The serial port path used to communicate with the device (/dev/ttyS1, /dev/ttyUSB0, …). Must match a port available on the gateway host.
- networkPort SignedInteger — Port
- name String — A unique, user-defined name for this device. Used to identify the device throughout the edge gateway, including in message broker topics and logs.
Optional properties:
- ReadTimeout SignedInteger — Request timeout, msec
- RetryCount SignedInteger — Retry request count
- responseIndex SignedInteger — Response Parsing - Start Index
- protocolByteOrder SignedInteger — Protocol Endianness Options: 0, 1, 2, 3
- Transport SignedInteger — Transport Type Options: 0, 1, 2
- KeepAlive SignedInteger — TCP Keep-Alive (s) (0 to disable)
- parity SignedInteger — The error-checking method used for serial communication (None, Even, or Odd). Must match the device's configured parity setting. Options: 0, 1, 2
- sessionParams Text — Session Parameters (JSON)
- connectionRequest SignedInteger — If enabled this field is used to enter the command that initiates the connection with the device Options: 0, 1
- stopBits SignedInteger — The number of stop bits used to signal the end of a character (typically 1 or 2). Must match the device's serial configuration. Options: 0, 1, 2
- dataByteOrder SignedInteger — Default Data Endianness Options: 0, 1, 2, 3
- MultipleConnections SignedInteger — Enable if using multiple streams Options: 0, 1
- baudRate SignedInteger — The data transmission speed, in bits per second, used for serial communication. Must match the baud rate configured on the device. Options: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10
- dataBits SignedInteger — The number of data bits in each transmitted character (typically 7 or 8). Must match the device's serial configuration. Options: 0, 1, 2, 3
- PauseBetweenRetries SignedInteger — Pause between retries, msec
- description String — Optional free-text notes about this device, such as its physical location or purpose.
Request Body
GraphQL Query
mutation CreateDevice($input: CreateDeviceRequest!) {
CreateDevice(input: $input) {
ID
Name
DriverID
Description
}
}
Variables
{
"input": {
"Name": "My Scale Device",
"Description": "",
"DriverID": "F88D5FAE-A0C2-4B83-94FE-8F23915A390E",
"AliasTopics": false,
"Debug": false,
"MetaData": [],
"StoppedState": false,
"StatusRegister": null,
"Properties": [
{
"Key": "networkAddress",
"Value": "192.168.1.100"
},
{
"Key": "ReadTimeout",
"Value": "2000"
},
{
"Key": "RetryCount",
"Value": "0"
},
{
"Key": "responseIndex",
"Value": "0"
},
{
"Key": "protocolByteOrder",
"Value": "0"
},
{
"Key": "Transport",
"Value": "0"
},
{
"Key": "KeepAlive",
"Value": "60"
},
{
"Key": "parity",
"Value": "1"
},
{
"Key": "sessionParams",
"Value": ""
},
{
"Key": "connectionRequest",
"Value": "1"
},
{
"Key": "connectionPayload",
"Value": "placeholder_connectionpayload"
},
{
"Key": "deviceFile",
"Value": "/dev/ttyUSB0"
},
{
"Key": "stopBits",
"Value": "0"
},
{
"Key": "dataByteOrder",
"Value": "0"
},
{
"Key": "MultipleConnections",
"Value": "1"
},
{
"Key": "networkPort",
"Value": "1234"
},
{
"Key": "baudRate",
"Value": "3"
},
{
"Key": "dataBits",
"Value": "3"
},
{
"Key": "PauseBetweenRetries",
"Value": "0"
},
{
"Key": "name",
"Value": "mettler-scale_device"
},
{
"Key": "description",
"Value": ""
}
]
}
}
Response
Status: 200 OK
{
"data": {
"CreateDevice": {
"ID": "<generated-uuid>",
"Name": "My Scale Device",
"DriverID": "F88D5FAE-A0C2-4B83-94FE-8F23915A390E",
"Description": ""
}
}
}
Create Device - Scale (No TLS)
POST {{edgeUrl}}/devicehub/v2
Mettler Scale Driver
| Required fields: | > Connection Settings (TCP, UDP or Serial) |
| Browse devices supported: | No |
| Browse tags supported: | No |
| Supported device models: | |
| Requests: | > Poll: Execute at interval, or when triggered |
| > Write: Execute when triggered | |
| > Stream: Initiate connection, execute request, parse responses on receipt | |
| > Response: Parse additional value from existing Poll/Stream requests | |
| Payload: | > Request payload formatted as "Hex-String" |
| > Hex-String: string of valid hexadecimal characters: 0123456789ABCDEF | |
| > example: ABCD1234 -> encoded in binary exactly as seen | |
| > with Params: ABCD\ -> "address" param injected, binary encoding | |
| > with ASCII: ABCD"PROTO"123 -> quoted segments, ascii encoding | |
| > all ASCII: "HEADER-$%*-123-TAIL" -> entire payload, ascii encoding | |
| Parameters: | > Session or Request params formatted as JSON (string values only) |
| > Request params take precedence over Session params, if duplicate | |
| > Keys like "address" or "areaCode", can be used in request: ...\<areaCode>\<address>... | |
| > Numeric params can be decimal/hexadecimal/octal, but must be in "string" form with appropriate prefix | |
| > Bit length inferred from padded length: "0x0012" or "0018" -> encoded as uint16(18) | |
| > Bit lengths supported: 4/8/16/24/32/64 | |
| > Params wrapped with \\"\\", encoded as ascii: { "areaType": "\"MEM_AREA\"" } | |
| > Params injected within ascii segment of payload, converted to ascii: ..."\ |
|
| Parsing: | > Start Index: 0-Indexed start of values, within response. Combined with value count, defines minimum response length (-1 to skip read) |
| > Value Count: Count of typed values to parse from response. If response is too short, reads will fail. | |
| > Value Length: (Strings-Only) Defines length of single value in bytes (0 for entire response) | |
| > Request Tag: Datahub Tag name for target request tag | |
| > Regex: Run 'FindAllSubmatch' on the response (RE2 semantics) | |
| > Regex Match Num: Index of 'FindAll' match | |
| > Regex Group Num: Index of 'Submatch' group | |
| Register Settings: | |
| > Request Tag: For "Response" registers, link to DH tag of target request | |
| > Override Transport: Define alternate endpoint for single request, connection is not persistent | |
| > Decimal Regex: Parsing decimal position, for float values |
Driver ID: F88D5FAE-A0C2-4B83-94FE-8F23915A390E Group: Generic
Required properties:
- networkAddress String — IP Address
- connectionPayload String — Connection Request (Hex String)
- deviceFile String — The serial port path used to communicate with the device (/dev/ttyS1, /dev/ttyUSB0, …). Must match a port available on the gateway host.
- networkPort SignedInteger — Port
- name String — A unique, user-defined name for this device. Used to identify the device throughout the edge gateway, including in message broker topics and logs.
Optional properties:
- ReadTimeout SignedInteger — Request timeout, msec
- RetryCount SignedInteger — Retry request count
- responseIndex SignedInteger — Response Parsing - Start Index
- protocolByteOrder SignedInteger — Protocol Endianness Options: 0, 1, 2, 3
- Transport SignedInteger — Transport Type Options: 0, 1, 2
- KeepAlive SignedInteger — TCP Keep-Alive (s) (0 to disable)
- parity SignedInteger — The error-checking method used for serial communication (None, Even, or Odd). Must match the device's configured parity setting. Options: 0, 1, 2
- sessionParams Text — Session Parameters (JSON)
- connectionRequest SignedInteger — If enabled this field is used to enter the command that initiates the connection with the device Options: 0, 1
- stopBits SignedInteger — The number of stop bits used to signal the end of a character (typically 1 or 2). Must match the device's serial configuration. Options: 0, 1, 2
- dataByteOrder SignedInteger — Default Data Endianness Options: 0, 1, 2, 3
- MultipleConnections SignedInteger — Enable if using multiple streams Options: 0, 1
- baudRate SignedInteger — The data transmission speed, in bits per second, used for serial communication. Must match the baud rate configured on the device. Options: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10
- dataBits SignedInteger — The number of data bits in each transmitted character (typically 7 or 8). Must match the device's serial configuration. Options: 0, 1, 2, 3
- PauseBetweenRetries SignedInteger — Pause between retries, msec
- description String — Optional free-text notes about this device, such as its physical location or purpose.
Request Body
GraphQL Query
mutation CreateDevice($input: CreateDeviceRequest!) {
CreateDevice(input: $input) {
ID
Name
DriverID
Description
}
}
Variables
{
"input": {
"Name": "My Scale Device (No TLS)",
"Description": "",
"DriverID": "F88D5FAE-A0C2-4B83-94FE-8F23915A390E",
"AliasTopics": false,
"Debug": false,
"MetaData": [],
"StoppedState": false,
"StatusRegister": null,
"Properties": [
{
"Key": "networkAddress",
"Value": "192.168.1.100"
},
{
"Key": "ReadTimeout",
"Value": "2000"
},
{
"Key": "RetryCount",
"Value": "0"
},
{
"Key": "protocolByteOrder",
"Value": "0"
},
{
"Key": "Transport",
"Value": "0"
},
{
"Key": "KeepAlive",
"Value": "5"
},
{
"Key": "sessionParams",
"Value": ""
},
{
"Key": "connectionRequest",
"Value": "1"
},
{
"Key": "dataByteOrder",
"Value": "0"
},
{
"Key": "MultipleConnections",
"Value": "1"
},
{
"Key": "networkPort",
"Value": "1234"
},
{
"Key": "PauseBetweenRetries",
"Value": "0"
},
{
"Key": "name",
"Value": "mettler-scale_device"
},
{
"Key": "description",
"Value": ""
}
]
}
}
Response
Status: 200 OK
{
"data": {
"CreateDevice": {
"ID": "<generated-uuid>",
"Name": "My Scale Device (No TLS)",
"DriverID": "F88D5FAE-A0C2-4B83-94FE-8F23915A390E",
"Description": ""
}
}
}
Create Device - Sick Flexi Serial (Gen1.3)
POST {{edgeUrl}}/devicehub/v2
Sick Flexi Serial (Gen1.3)
| Prerequisites | No |
| Required fields | Communication Port Baud Rate Data Bits Stop Bits Parity Station ID |
| Browse devices supported | No |
| Browse tags supported | No |
| Supported device models | Sick flexi soft series |
Driver ID: 27C6423C-B925-460F-9915-82CCDB79CC36 Group: Sick Flexi
Required properties:
- name String — Device Name that describes your asset.
- baudRate SignedInteger — Serial communication baudrate parameter.
- dataBits SignedInteger — Serial communication databits parameter.
- stopBits SignedInteger — Serial communication stopbits parameter.
- stationId SignedInteger — Station no of device.
- deviceFile String — Local Serial connection file path.
- parity SignedInteger — Serial communication parity parameter. Options: 0, 1, 2
Optional properties:
- description String — Description of the device or an asset.
Request Body
GraphQL Query
mutation CreateDevice($input: CreateDeviceRequest!) {
CreateDevice(input: $input) {
ID
Name
DriverID
Description
}
}
Variables
{
"input": {
"Name": "My Sick Flexi Serial (Gen1.3) Device",
"Description": "",
"DriverID": "27C6423C-B925-460F-9915-82CCDB79CC36",
"AliasTopics": false,
"Debug": false,
"MetaData": [],
"StoppedState": false,
"StatusRegister": null,
"Properties": [
{
"Key": "name",
"Value": "sick device"
},
{
"Key": "description",
"Value": ""
},
{
"Key": "baudRate",
"Value": "9600"
},
{
"Key": "dataBits",
"Value": "8"
},
{
"Key": "stopBits",
"Value": "1"
},
{
"Key": "stationId",
"Value": "1"
},
{
"Key": "deviceFile",
"Value": "/dev/ttyS0"
},
{
"Key": "parity",
"Value": "0"
}
]
}
}
Response
Status: 200 OK
{
"data": {
"CreateDevice": {
"ID": "<generated-uuid>",
"Name": "My Sick Flexi Serial (Gen1.3) Device",
"DriverID": "27C6423C-B925-460F-9915-82CCDB79CC36",
"Description": ""
}
}
}
Create Device - Siemens ISO-on-TCP
POST {{edgeUrl}}/devicehub/v2
Siemens ISO-on-TCP
| Prerequisites | Download the LE_ISO_on_TCP library for TIA Portal V16 from Litmus Central Portal, then program your PLC for ISO-on-TCP communication |
| Required fields | Network address Network Port Slot Number Local TSAP Remote TSAP |
| Browse devices supported | No |
| Browse tags supported | No |
| Supported device models | Siemens S7-1500 Series |
| Miscellaneous | Follow instructions in the library package to program the PLC before using this driver |
Driver ID: 8A3B12FC-8F69-4126-8556-1F9B66CA0D7A Group: Siemens
Required properties:
- networkAddress String — IP Address of S7-300/400/1200/1500 device
- networkPort SignedInteger — TCP/IP port of device
- Local TSAP String — Transport Services Access Point
- name String — A unique, user-defined name for this device. Used to identify the device throughout the edge gateway, including in message broker topics and logs.
Optional properties:
- Remote TSAP String — Transport Services Access Point
(keep blank for S7-300/400)
- description String — Optional free-text notes about this device, such as its physical location or purpose.
Request Body
GraphQL Query
mutation CreateDevice($input: CreateDeviceRequest!) {
CreateDevice(input: $input) {
ID
Name
DriverID
Description
}
}
Variables
{
"input": {
"Name": "My Siemens ISO-on-TCP Device",
"Description": "",
"DriverID": "8A3B12FC-8F69-4126-8556-1F9B66CA0D7A",
"AliasTopics": false,
"Debug": false,
"MetaData": [],
"StoppedState": false,
"StatusRegister": null,
"Properties": [
{
"Key": "networkAddress",
"Value": "192.168.1.100"
},
{
"Key": "networkPort",
"Value": "502"
},
{
"Key": "Local TSAP",
"Value": "TCP-2"
},
{
"Key": "Remote TSAP",
"Value": ""
},
{
"Key": "name",
"Value": "siemens-iso-on-tcp_device"
},
{
"Key": "description",
"Value": ""
}
]
}
}
Response
Status: 200 OK
{
"data": {
"CreateDevice": {
"ID": "<generated-uuid>",
"Name": "My Siemens ISO-on-TCP Device",
"DriverID": "8A3B12FC-8F69-4126-8556-1F9B66CA0D7A",
"Description": ""
}
}
}
Create Device - Siemens Logo Ethernet (Gen1.3)
POST {{edgeUrl}}/devicehub/v2
Siemens Logo Ethernet (Gen1.3)
| Prerequisites | None |
| Required fields | Network address Network Port Local TSAP Remote TSAP |
| Browse devices supported | No |
| Browse tags supported | No |
| Supported device models | Siemens Logo |
Driver ID: C76084F2-9CFC-4FF8-B588-D8217E9C88F4 Group: Siemens
Required properties:
- networkAddress String — IP Address of the device.
- networkPort SignedInteger — Network port of the device.
- localTsap String — Local tsap of device.
- remoteTsap String — Remote tasp of device.
- name String — Device Name that describes your asset.
Optional properties:
- description String — Description of the device or an asset.
Request Body
GraphQL Query
mutation CreateDevice($input: CreateDeviceRequest!) {
CreateDevice(input: $input) {
ID
Name
DriverID
Description
}
}
Variables
{
"input": {
"Name": "My Siemens Logo Ethernet (Gen1.3) Device",
"Description": "",
"DriverID": "C76084F2-9CFC-4FF8-B588-D8217E9C88F4",
"AliasTopics": false,
"Debug": false,
"MetaData": [],
"StoppedState": false,
"StatusRegister": null,
"Properties": [
{
"Key": "description",
"Value": ""
},
{
"Key": "networkAddress",
"Value": "192.168.1.100"
},
{
"Key": "networkPort",
"Value": "502"
},
{
"Key": "localTsap",
"Value": "1000"
},
{
"Key": "remoteTsap",
"Value": "200"
},
{
"Key": "name",
"Value": "Logo PLC"
}
]
}
}
Response
Status: 200 OK
{
"data": {
"CreateDevice": {
"ID": "<generated-uuid>",
"Name": "My Siemens Logo Ethernet (Gen1.3) Device",
"DriverID": "C76084F2-9CFC-4FF8-B588-D8217E9C88F4",
"Description": ""
}
}
}
Create Device - Siemens S5 Ethernet
POST {{edgeUrl}}/devicehub/v2
Siemens S5 Ethernet
| Prerequisites | None |
| Required fields | Network address Network Port |
| Browse devices supported | No |
| Browse tags supported | No |
| Supported device models | Siemens S5 Series |
Driver ID: BB4624F5-42C3-4439-B8C2-94DB75DEEAE0 Group: Siemens
Required properties:
- networkPort SignedInteger — TCP/IP port of device
- networkAddress String — IP Address of S5 device
- name String — A unique, user-defined name for this device. Used to identify the device throughout the edge gateway, including in message broker topics and logs.
Optional properties:
- readTimeout SignedInteger
- description String — Optional free-text notes about this device, such as its physical location or purpose.
Request Body
GraphQL Query
mutation CreateDevice($input: CreateDeviceRequest!) {
CreateDevice(input: $input) {
ID
Name
DriverID
Description
}
}
Variables
{
"input": {
"Name": "My Siemens S5 Ethernet Device",
"Description": "",
"DriverID": "BB4624F5-42C3-4439-B8C2-94DB75DEEAE0",
"AliasTopics": false,
"Debug": false,
"MetaData": [],
"StoppedState": false,
"StatusRegister": null,
"Properties": [
{
"Key": "networkPort",
"Value": "502"
},
{
"Key": "readTimeout",
"Value": "6000"
},
{
"Key": "networkAddress",
"Value": "192.168.1.100"
},
{
"Key": "name",
"Value": "siemens-s5_device"
},
{
"Key": "description",
"Value": ""
}
]
}
}
Response
Status: 200 OK
{
"data": {
"CreateDevice": {
"ID": "<generated-uuid>",
"Name": "My Siemens S5 Ethernet Device",
"DriverID": "BB4624F5-42C3-4439-B8C2-94DB75DEEAE0",
"Description": ""
}
}
}
Create Device - Siemens S5 Ethernet (Gen1.3)
POST {{edgeUrl}}/devicehub/v2
Siemens S5 Ethernet (Gen1.3)
| Prerequisites | None |
| Required fields | Network address Network Port |
| Browse devices supported | No |
| Browse tags supported | No |
| Supported device models | Siemens S5 Series |
Driver ID: 96D9600E-985A-4C88-8F16-D33EABBB53DF Group: Siemens
Required properties:
- name String — This is a Device Name.
- networkAddress String — This is a IP Address of device.
- networkPort SignedInteger — This is a network port of device.
Optional properties:
- description String — This is a description of device.
Request Body
GraphQL Query
mutation CreateDevice($input: CreateDeviceRequest!) {
CreateDevice(input: $input) {
ID
Name
DriverID
Description
}
}
Variables
{
"input": {
"Name": "My Siemens S5 Ethernet (Gen1.3) Device",
"Description": "",
"DriverID": "96D9600E-985A-4C88-8F16-D33EABBB53DF",
"AliasTopics": false,
"Debug": false,
"MetaData": [],
"StoppedState": false,
"StatusRegister": null,
"Properties": [
{
"Key": "name",
"Value": "S5 PLC"
},
{
"Key": "description",
"Value": ""
},
{
"Key": "networkAddress",
"Value": "192.168.1.100"
},
{
"Key": "networkPort",
"Value": "502"
}
]
}
}
Response
Status: 200 OK
{
"data": {
"CreateDevice": {
"ID": "<generated-uuid>",
"Name": "My Siemens S5 Ethernet (Gen1.3) Device",
"DriverID": "96D9600E-985A-4C88-8F16-D33EABBB53DF",
"Description": ""
}
}
}
Create Device - Siemens S7
POST {{edgeUrl}}/devicehub/v2
Siemens S7
| Prerequisites | None |
| Required fields | Network address Network Port Slot Number |
| Browse devices supported | No |
| Browse tags supported | No |
| Supported device models | Siemens S7-300/400/1200/1500 Series |
Driver ID: 01E8B6CE-1D26-4215-8E4A-B5807F389E71 Group: Siemens
Required properties:
- networkAddress String — IP Address of device
- networkPort SignedInteger — TCP/IP port of device
- slotNumber SignedInteger — Slot
- name String — A unique, user-defined name for this device. Used to identify the device throughout the edge gateway, including in message broker topics and logs.
Optional properties:
- maxPDUSize SignedInteger — If the parameter is 0 (default), then the value determined during connection handshake is used.
If the parameter > 0, then the smaller value of this parameter value and a value determined during connection handshake is used.
- description String — Optional free-text notes about this device, such as its physical location or purpose.
Request Body
GraphQL Query
mutation CreateDevice($input: CreateDeviceRequest!) {
CreateDevice(input: $input) {
ID
Name
DriverID
Description
}
}
Variables
{
"input": {
"Name": "My Siemens S7 Device",
"Description": "",
"DriverID": "01E8B6CE-1D26-4215-8E4A-B5807F389E71",
"AliasTopics": false,
"Debug": false,
"MetaData": [],
"StoppedState": false,
"StatusRegister": null,
"Properties": [
{
"Key": "networkAddress",
"Value": "192.168.1.100"
},
{
"Key": "networkPort",
"Value": "502"
},
{
"Key": "slotNumber",
"Value": "1"
},
{
"Key": "maxPDUSize",
"Value": "0"
},
{
"Key": "name",
"Value": "siemens-s7comm_device"
},
{
"Key": "description",
"Value": ""
}
]
}
}
Response
Status: 200 OK
{
"data": {
"CreateDevice": {
"ID": "<generated-uuid>",
"Name": "My Siemens S7 Device",
"DriverID": "01E8B6CE-1D26-4215-8E4A-B5807F389E71",
"Description": ""
}
}
}
Create Device - Siemens S7-200 Ethernet
POST {{edgeUrl}}/devicehub/v2
Siemens S7-200 Ethernet
| Prerequisites | None |
| Required fields | Network address Network Port Local & Remote TSAP (hex) |
| Browse devices supported | No |
| Browse tags supported | No |
| Supported device models | Siemens S7-200 Series |
Driver ID: 778F29F1-02EF-4209-81A7-48242076E62E Group: Siemens
Required properties:
- networkAddress String — IP Address of S7-200 device
- networkPort SignedInteger — TCP/IP port of device
- localTSAP String
- remoteTSAP String
- name String — A unique, user-defined name for this device. Used to identify the device throughout the edge gateway, including in message broker topics and logs.
Optional properties:
- readTimeout SignedInteger
- description String — Optional free-text notes about this device, such as its physical location or purpose.
Request Body
GraphQL Query
mutation CreateDevice($input: CreateDeviceRequest!) {
CreateDevice(input: $input) {
ID
Name
DriverID
Description
}
}
Variables
{
"input": {
"Name": "My Siemens S7-200 Ethernet Device",
"Description": "",
"DriverID": "778F29F1-02EF-4209-81A7-48242076E62E",
"AliasTopics": false,
"Debug": false,
"MetaData": [],
"StoppedState": false,
"StatusRegister": null,
"Properties": [
{
"Key": "networkAddress",
"Value": "192.168.1.100"
},
{
"Key": "networkPort",
"Value": "502"
},
{
"Key": "readTimeout",
"Value": "6000"
},
{
"Key": "localTSAP",
"Value": "4D57"
},
{
"Key": "remoteTSAP",
"Value": "4D57"
},
{
"Key": "name",
"Value": "siemens-s7-200_device"
},
{
"Key": "description",
"Value": ""
}
]
}
}
Response
Status: 200 OK
{
"data": {
"CreateDevice": {
"ID": "<generated-uuid>",
"Name": "My Siemens S7-200 Ethernet Device",
"DriverID": "778F29F1-02EF-4209-81A7-48242076E62E",
"Description": ""
}
}
}
Create Device - Siemens S7-200 Serial
POST {{edgeUrl}}/devicehub/v2
Siemens S7-200 Serial
| Prerequisites | No |
| Required fields | Communication Port Baud Rate Data Bits Stop Bits Parity |
| Browse devices supported | No |
| Browse tags supported | No |
| Supported device models | Siemens S7-200 |
Driver ID: 7D8D63FA-1FFB-4C63-9C42-6E9385A949AC Group: Siemens
Required properties:
- deviceFile String — The serial port path used to communicate with the device (/dev/ttyS1, /dev/ttyUSB0, …). Must match a port available on the gateway host.
- name String — A unique, user-defined name for this device. Used to identify the device throughout the edge gateway, including in message broker topics and logs.
Optional properties:
- parity SignedInteger — The error-checking method used for serial communication (None, Even, or Odd). Must match the device's configured parity setting. Options: 0, 1, 2
- stopBits SignedInteger — The number of stop bits used to signal the end of a character (typically 1 or 2). Must match the device's serial configuration. Options: 0, 1, 2
- delayBeforeConfirm SignedInteger
- readTimeout SignedInteger
- baudRate SignedInteger — The data transmission speed, in bits per second, used for serial communication. Must match the baud rate configured on the device. Options: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10
- dataBits SignedInteger — The number of data bits in each transmitted character (typically 7 or 8). Must match the device's serial configuration. Options: 0, 1, 2, 3
- description String — Optional free-text notes about this device, such as its physical location or purpose.
Request Body
GraphQL Query
mutation CreateDevice($input: CreateDeviceRequest!) {
CreateDevice(input: $input) {
ID
Name
DriverID
Description
}
}
Variables
{
"input": {
"Name": "My Siemens S7-200 Serial Device",
"Description": "",
"DriverID": "7D8D63FA-1FFB-4C63-9C42-6E9385A949AC",
"AliasTopics": false,
"Debug": false,
"MetaData": [],
"StoppedState": false,
"StatusRegister": null,
"Properties": [
{
"Key": "parity",
"Value": "0"
},
{
"Key": "stopBits",
"Value": "0"
},
{
"Key": "delayBeforeConfirm",
"Value": "5"
},
{
"Key": "readTimeout",
"Value": "1000"
},
{
"Key": "deviceFile",
"Value": "/dev/ttyUSB0"
},
{
"Key": "baudRate",
"Value": "0"
},
{
"Key": "dataBits",
"Value": "0"
},
{
"Key": "name",
"Value": "siemens-s7-200-serial_device"
},
{
"Key": "description",
"Value": ""
}
]
}
}
Response
Status: 200 OK
{
"data": {
"CreateDevice": {
"ID": "<generated-uuid>",
"Name": "My Siemens S7-200 Serial Device",
"DriverID": "7D8D63FA-1FFB-4C63-9C42-6E9385A949AC",
"Description": ""
}
}
}
Create Device - Siemens S7-300 Serial (Gen1.3)
POST {{edgeUrl}}/devicehub/v2
Siemens S7-300 Serial (Gen1.3)
| Prerequisites | No |
| Required fields | Communication Port Baud Rate Data Bits Stop Bits Parity Station ID |
| Browse devices supported | No |
| Browse tags supported | No |
| Supported device models | Siemens S7-300 |
Driver ID: 073494B0-B7BD-489F-A40F-2858BFEE6249 Group: Siemens
Required properties:
- stationId SignedInteger — Station id/ slot number of PLC
- deviceFile String — Local Serial connection file path.
- baudRate SignedInteger — Serial communication baudrate parameter.
- dataBits SignedInteger — Serial communication databits parameter.
- stopBits SignedInteger — Serial communication stopbits parameter.
- name String — Device Name that describes your asset.
- parity SignedInteger — Serial communication parity parameter. Options: 0, 1, 2
Optional properties:
- description String — Description of the device or an asset.
Request Body
GraphQL Query
mutation CreateDevice($input: CreateDeviceRequest!) {
CreateDevice(input: $input) {
ID
Name
DriverID
Description
}
}
Variables
{
"input": {
"Name": "My Siemens S7-300 Serial (Gen1.3) Device",
"Description": "",
"DriverID": "073494B0-B7BD-489F-A40F-2858BFEE6249",
"AliasTopics": false,
"Debug": false,
"MetaData": [],
"StoppedState": false,
"StatusRegister": null,
"Properties": [
{
"Key": "description",
"Value": ""
},
{
"Key": "stationId",
"Value": "2"
},
{
"Key": "deviceFile",
"Value": "/dev/ttyS0"
},
{
"Key": "baudRate",
"Value": "9600"
},
{
"Key": "dataBits",
"Value": "8"
},
{
"Key": "stopBits",
"Value": "1"
},
{
"Key": "name",
"Value": "S7-300 PLC"
},
{
"Key": "parity",
"Value": "0"
}
]
}
}
Response
Status: 200 OK
{
"data": {
"CreateDevice": {
"ID": "<generated-uuid>",
"Name": "My Siemens S7-300 Serial (Gen1.3) Device",
"DriverID": "073494B0-B7BD-489F-A40F-2858BFEE6249",
"Description": ""
}
}
}
Create Device - Siemens S7CommPlus
POST {{edgeUrl}}/devicehub/v2
Siemens S7 CommPlus Symbolic Driver
| Required fields: | > Network Address |
| > Network Port | |
| Browse devices supported: | No |
| Browse tags supported: | Yes |
| Supported device models: | Siemes S7 1200 & 1500 Devices (fw >= 2.x) |
| Type Information: | > Byte Order: Big-Endian |
| > sint/int/dint/lint == signed 8/16/32/64 bit integers | |
| > word == uint == unsigned 16 bit integer | |
| Driver Settings: | > Overrides (CPU/FW/TLS): Enable to skip auto-detection |
| > IQMCT Folders: Enable to organize root tags. Warning "(I/Q/M/C/T)Area" could conflict with DB names | |
| > MTU Load Factor: Decrease to fix "MTU Error". Increase to support more tags per request. | |
| Miscellaneous: | > Register Grouping Size: Dynamic by device |
| > Browse required to aquire tag ids | |
| > Symbolic addressing is required for "optimized" blocks | |
| > Nested tags are delimited by . | |
| > Individual tag fields containing . are wrapped by " |
Driver ID: 4EE806F4-EE86-4EFB-B06B-E63908C736A2 Group: Siemens
Required properties:
- networkAddress String — PLC IP Address
- networkPort SignedInteger — PLC Port Number
- name String — A unique, user-defined name for this device. Used to identify the device throughout the edge gateway, including in message broker topics and logs.
Optional properties:
- MTULoadFactor SignedInteger — Specify how much of the maximum transmission unit (MTU) capacity is used per packet as a percentage (20–100). Increase the value if the driver logs show a “parallel polling” message. Decrease the value if the driver logs show a “connection reset by peer” message.
- ReconnectInterval SignedInteger — Specify the amount of time in seconds a session is used before the driver drops and re-establishes connection. Enter 0 to disable.
- Password String — Enter the PLC password if “Enable access control” is selected in TIA Portal. “Override TLS” must be enabled if access control is enabled.
- IQMCTDisplayFolders SignedInteger — Enable this option to request Input, Output, Memory, Counter, and Timer areas during tag browse. Options: 0, 1
- readTimeout SignedInteger — Specify the amount of time in milliseconds the driver will wait for a response from the PLC before considering the request failed.
- InstanceDataBlockSupport SignedInteger — Enable this option to request instance data blocks assigned to function blocks during tag browse. Options: 0, 1
- OverridePLCCPUType SignedInteger — If set to Auto, the driver will attempt to determine the CPU type upon connection. Specify the CPU type if there is a connection issue. Options: 0, 1, 2
- OverridePLCFirmwareVersion SignedInteger — If set to Auto, the driver will attempt to determine the firmware version upon connection. Specify the firmware version if there is a connection issue. Options: 0, 1, 2, 3
- OverrideTLS SignedInteger — If set to Disable, the driver will attempt to determine the best TLS setting upon connection. Specify Enable if the TIA Portal setting “Enable access control” is enabled. Options: 0, 1
- retryCount SignedInteger — Specify the number of times the driver will resend the current message before reporting an error.
- keepAlive SignedInteger — Specify the amount of time in seconds that the driver will wait, while no data is being exchanged with the PLC, before sending a Keep Alive message. Enter 0 to disable.
- description String — Optional free-text notes about this device, such as its physical location or purpose.
Request Body
GraphQL Query
mutation CreateDevice($input: CreateDeviceRequest!) {
CreateDevice(input: $input) {
ID
Name
DriverID
Description
}
}
Variables
{
"input": {
"Name": "My Siemens S7CommPlus Device",
"Description": "",
"DriverID": "4EE806F4-EE86-4EFB-B06B-E63908C736A2",
"AliasTopics": false,
"Debug": false,
"MetaData": [],
"StoppedState": false,
"StatusRegister": null,
"Properties": [
{
"Key": "MTULoadFactor",
"Value": "80"
},
{
"Key": "ReconnectInterval",
"Value": "3600"
},
{
"Key": "Password",
"Value": ""
},
{
"Key": "IQMCTDisplayFolders",
"Value": "1"
},
{
"Key": "readTimeout",
"Value": "3000"
},
{
"Key": "networkAddress",
"Value": "192.168.1.100"
},
{
"Key": "InstanceDataBlockSupport",
"Value": "1"
},
{
"Key": "OverridePLCCPUType",
"Value": "0"
},
{
"Key": "OverridePLCFirmwareVersion",
"Value": "0"
},
{
"Key": "OverrideTLS",
"Value": "0"
},
{
"Key": "retryCount",
"Value": "0"
},
{
"Key": "keepAlive",
"Value": "60"
},
{
"Key": "networkPort",
"Value": "502"
},
{
"Key": "name",
"Value": "siemens-s7commplus_device"
},
{
"Key": "description",
"Value": ""
}
]
}
}
Response
Status: 200 OK
{
"data": {
"CreateDevice": {
"ID": "<generated-uuid>",
"Name": "My Siemens S7CommPlus Device",
"DriverID": "4EE806F4-EE86-4EFB-B06B-E63908C736A2",
"Description": ""
}
}
}
Create Device - Siemens Sinumerik 808D Ethernet
POST {{edgeUrl}}/devicehub/v2
Siemens Sinumerik 808D Ethernet
| Prerequisites | None |
| Required fields | Network address Network Port |
| Browse devices supported | No |
| Browse tags supported | No |
| Supported device models | Siemens Sinumerik |
Driver ID: 1FB80C39-A46B-4FC7-B1A2-EF3CFC146E94 Group: Siemens
Required properties:
- localTSAP String
- remoteTSAP String
- networkAddress String — IP Address of Sinumerik 808D device
- networkPort SignedInteger — TCP/IP port of device
- name String — A unique, user-defined name for this device. Used to identify the device throughout the edge gateway, including in message broker topics and logs.
Optional properties:
- readTimeout SignedInteger
- description String — Optional free-text notes about this device, such as its physical location or purpose.
Request Body
GraphQL Query
mutation CreateDevice($input: CreateDeviceRequest!) {
CreateDevice(input: $input) {
ID
Name
DriverID
Description
}
}
Variables
{
"input": {
"Name": "My Siemens Sinumerik 808D Ethernet Device",
"Description": "",
"DriverID": "1FB80C39-A46B-4FC7-B1A2-EF3CFC146E94",
"AliasTopics": false,
"Debug": false,
"MetaData": [],
"StoppedState": false,
"StatusRegister": null,
"Properties": [
{
"Key": "readTimeout",
"Value": "2000"
},
{
"Key": "localTSAP",
"Value": "0200"
},
{
"Key": "remoteTSAP",
"Value": "0102"
},
{
"Key": "networkAddress",
"Value": "192.168.1.100"
},
{
"Key": "networkPort",
"Value": "502"
},
{
"Key": "name",
"Value": "siemens-sinumerik-808d_device"
},
{
"Key": "description",
"Value": ""
}
]
}
}
Response
Status: 200 OK
{
"data": {
"CreateDevice": {
"ID": "<generated-uuid>",
"Name": "My Siemens Sinumerik 808D Ethernet Device",
"DriverID": "1FB80C39-A46B-4FC7-B1A2-EF3CFC146E94",
"Description": ""
}
}
}
Create Device - Siemens TI505 Ethernet (Gen1.3)
POST {{edgeUrl}}/devicehub/v2
Siemens TI505 Ethernet (Gen1.3)
| Prerequisites | None |
| Required fields | Network address Network Port |
| Browse devices supported | No |
| Browse tags supported | No |
| Supported device models | Siemens Simatic TI505 Series |
Driver ID: 994B2F23-5B0A-4AD0-BD8D-F5999A92F491 Group: Siemens
Required properties:
- name String — Device Name that describes your asset.
- networkAddress String — IP Address of the device.
- networkPort SignedInteger — Network port of the device.
Optional properties:
- description String — Description of the device or an asset.
Request Body
GraphQL Query
mutation CreateDevice($input: CreateDeviceRequest!) {
CreateDevice(input: $input) {
ID
Name
DriverID
Description
}
}
Variables
{
"input": {
"Name": "My Siemens TI505 Ethernet (Gen1.3) Device",
"Description": "",
"DriverID": "994B2F23-5B0A-4AD0-BD8D-F5999A92F491",
"AliasTopics": false,
"Debug": false,
"MetaData": [],
"StoppedState": false,
"StatusRegister": null,
"Properties": [
{
"Key": "name",
"Value": "TI505"
},
{
"Key": "description",
"Value": ""
},
{
"Key": "networkAddress",
"Value": "192.168.1.100"
},
{
"Key": "networkPort",
"Value": "502"
}
]
}
}
Response
Status: 200 OK
{
"data": {
"CreateDevice": {
"ID": "<generated-uuid>",
"Name": "My Siemens TI505 Ethernet (Gen1.3) Device",
"DriverID": "994B2F23-5B0A-4AD0-BD8D-F5999A92F491",
"Description": ""
}
}
}
Create Device - Siemens TI505 Serial (Gen1.3)
POST {{edgeUrl}}/devicehub/v2
Siemens TI505 Serial (Gen1.3)
| Prerequisites | No |
| Required fields | Communication Port Baud Rate Data Bits Stop Bits Parity |
| Browse devices supported | No |
| Browse tags supported | No |
| Supported device models | Siemens Simatic TI505 Series |
Driver ID: 3966466E-68F6-4227-BCAD-49E6433AA4EE Group: Siemens
Required properties:
- name String — Device Name that describes your asset.
- deviceFile String — Local Serial connection file path.
- baudRate SignedInteger — Serial communication baudrate parameter.
- dataBits SignedInteger — Serial communication databits parameter.
- stopBits SignedInteger — Serial communication stopbits parameter.
- parity SignedInteger — Serial communication parity parameter. Options: 0, 1, 2
Optional properties:
- description String — Description of the device or an asset.
Request Body
GraphQL Query
mutation CreateDevice($input: CreateDeviceRequest!) {
CreateDevice(input: $input) {
ID
Name
DriverID
Description
}
}
Variables
{
"input": {
"Name": "My Siemens TI505 Serial (Gen1.3) Device",
"Description": "",
"DriverID": "3966466E-68F6-4227-BCAD-49E6433AA4EE",
"AliasTopics": false,
"Debug": false,
"MetaData": [],
"StoppedState": false,
"StatusRegister": null,
"Properties": [
{
"Key": "name",
"Value": "TI505"
},
{
"Key": "deviceFile",
"Value": "/dev/ttyS0"
},
{
"Key": "baudRate",
"Value": "9600"
},
{
"Key": "dataBits",
"Value": "7"
},
{
"Key": "stopBits",
"Value": "1"
},
{
"Key": "parity",
"Value": "0"
},
{
"Key": "description",
"Value": ""
}
]
}
}
Response
Status: 200 OK
{
"data": {
"CreateDevice": {
"ID": "<generated-uuid>",
"Name": "My Siemens TI505 Serial (Gen1.3) Device",
"DriverID": "3966466E-68F6-4227-BCAD-49E6433AA4EE",
"Description": ""
}
}
}
Create Device - Simulator (Gen1.3)
POST {{edgeUrl}}/devicehub/v2
Simulator Driver
Driver ID: 50E3EDA1-11F9-41D6-9232-778A28665580 Group: Simulator
Required properties:
- name String — Device Name that describes your asset.
Optional properties:
- description String — Description of the device or an asset.
Request Body
GraphQL Query
mutation CreateDevice($input: CreateDeviceRequest!) {
CreateDevice(input: $input) {
ID
Name
DriverID
Description
}
}
Variables
{
"input": {
"Name": "My Simulator (Gen1.3) Device",
"Description": "",
"DriverID": "50E3EDA1-11F9-41D6-9232-778A28665580",
"AliasTopics": false,
"Debug": false,
"MetaData": [],
"StoppedState": false,
"StatusRegister": null,
"Properties": [
{
"Key": "description",
"Value": ""
},
{
"Key": "name",
"Value": "simulator"
}
]
}
}
Response
Status: 200 OK
{
"data": {
"CreateDevice": {
"ID": "<generated-uuid>",
"Name": "My Simulator (Gen1.3) Device",
"DriverID": "50E3EDA1-11F9-41D6-9232-778A28665580",
"Description": ""
}
}
}
Create Device - Sinumerik 808D Serial (Gen1.3)
POST {{edgeUrl}}/devicehub/v2
Sinumerik 808D Serial (Gen1.3)
| Prerequisites | No |
| Required fields | Communication Port Baud Rate Data Bits Stop Bits Parity Station ID |
| Browse devices supported | No |
| Browse tags supported | No |
| Supported device models | Siemens Sinumerik 808D series |
Driver ID: C85F9F51-7FFD-40F7-92AE-991E0FE172CE Group: Siemens
Required properties:
- dataBits SignedInteger — Serial communication databits parameter.
- stopBits SignedInteger — Serial communication stopbits parameter.
- name String — Device Name that describes your asset.
- stationId SignedInteger — Station id/ slot number
- baudRate SignedInteger — Serial communication baudrate parameter.
- parity SignedInteger — serial communication parity parameter. Options: 0, 1, 2
- deviceFile String — Local Serial connection file path.
Optional properties:
- description String — Description of the device or an asset.
Request Body
GraphQL Query
mutation CreateDevice($input: CreateDeviceRequest!) {
CreateDevice(input: $input) {
ID
Name
DriverID
Description
}
}
Variables
{
"input": {
"Name": "My Sinumerik 808D Serial (Gen1.3) Device",
"Description": "",
"DriverID": "C85F9F51-7FFD-40F7-92AE-991E0FE172CE",
"AliasTopics": false,
"Debug": false,
"MetaData": [],
"StoppedState": false,
"StatusRegister": null,
"Properties": [
{
"Key": "dataBits",
"Value": "8"
},
{
"Key": "stopBits",
"Value": "1"
},
{
"Key": "name",
"Value": "Sinumerik PLC"
},
{
"Key": "stationId",
"Value": "2"
},
{
"Key": "baudRate",
"Value": "9600"
},
{
"Key": "parity",
"Value": "0"
},
{
"Key": "description",
"Value": ""
},
{
"Key": "deviceFile",
"Value": "/dev/ttyS0"
}
]
}
}
Response
Status: 200 OK
{
"data": {
"CreateDevice": {
"ID": "<generated-uuid>",
"Name": "My Sinumerik 808D Serial (Gen1.3) Device",
"DriverID": "C85F9F51-7FFD-40F7-92AE-991E0FE172CE",
"Description": ""
}
}
}
Create Device - SNMP Manager
POST {{edgeUrl}}/devicehub/v2
SNMP Manager Driver
| Browse devices supported: | No |
| Browse tags supported: | Yes |
| Driver Settings: | > Address: IP, Hostname or Endpoint (Port setting is ignored if port is included here) |
| > Mib Ftp Path: path of mib files, after /var/lib/customer/ftp-data/devicehub/... | |
| > Request Retries: # retries after failed request, Oid count will be automatically halved for each retry | |
| > Max Oid Count: Total # of Oids allowed per single request | |
| > Browse Order: Sort browse results alphabeticaly (by Mib defined name) or numerically (by Oid) | |
| > Browse Column Threshold: # of consecutive & uniform child oids after which parent is considered a column of the same type | |
| > Browse Column Maximum: Max # of rows in a column which will be displayed in browse results, after which only the final row will be shown | |
| Miscellaneous: | |
| > Consult device documentation to find recommended value for "Max Oid Count" setting | |
| > GetBulk is not used in this driver |
Driver ID: 4E588810-8475-4668-860A-6DA4135E8FD4 Group: Network Utility
Required properties:
- TrapPort SignedInteger — Listener Port
- EncryptionPassword String — SNMP V3 Encryption Password
- Username String — SNMP V3 Username
- AuthenticationPassword String — SNMP V3 Authentication Password
- Address String — Server Address
- Port SignedInteger — Server Port
- Community String — SNMP V1/V2c Community
- TrapInterface String — Listener Interface
- name String — A unique, user-defined name for this device. Used to identify the device throughout the edge gateway, including in message broker topics and logs.
Optional properties:
- RequestTimeout SignedInteger — Request Timeout (ms)
- AuthenticationType SignedInteger — SNMP V3 Authentication Type Options: 0, 1, 2, 3, 4, 5, 6
- MIBPath String — FTP path for MIB files created within 'devicehub/...'
- Transport SignedInteger — Transport Type Options: 0, 1
- ContextName String — SNMP V3 Message Context
- RequestRetries SignedInteger — Request Retries
- MaxOIDCount SignedInteger — Max number of Oids in a single request
- EncryptionType SignedInteger — SNMP V3 Encryption Type Options: 0, 1, 2, 3, 4, 5, 6
- EnableTrapListener SignedInteger — Enable SNMP Trap Listener Options: 0, 1
- TrapTransport SignedInteger — Listener Transport Type Options: 0, 1
- SNMPVersion SignedInteger Options: 0, 1, 2
- description String — Optional free-text notes about this device, such as its physical location or purpose.
Request Body
GraphQL Query
mutation CreateDevice($input: CreateDeviceRequest!) {
CreateDevice(input: $input) {
ID
Name
DriverID
Description
}
}
Variables
{
"input": {
"Name": "My SNMP Manager Device",
"Description": "",
"DriverID": "4E588810-8475-4668-860A-6DA4135E8FD4",
"AliasTopics": false,
"Debug": false,
"MetaData": [],
"StoppedState": false,
"StatusRegister": null,
"Properties": [
{
"Key": "RequestTimeout",
"Value": "2000"
},
{
"Key": "AuthenticationType",
"Value": "0"
},
{
"Key": "TrapPort",
"Value": "162"
},
{
"Key": "MIBPath",
"Value": ""
},
{
"Key": "Transport",
"Value": "1"
},
{
"Key": "ContextName",
"Value": ""
},
{
"Key": "EncryptionPassword",
"Value": "password"
},
{
"Key": "RequestRetries",
"Value": "3"
},
{
"Key": "MaxOIDCount",
"Value": "25"
},
{
"Key": "Username",
"Value": "admin"
},
{
"Key": "AuthenticationPassword",
"Value": "password"
},
{
"Key": "EncryptionType",
"Value": "0"
},
{
"Key": "EnableTrapListener",
"Value": "1"
},
{
"Key": "TrapTransport",
"Value": "1"
},
{
"Key": "Address",
"Value": "192.168.1.100"
},
{
"Key": "Port",
"Value": "161"
},
{
"Key": "SNMPVersion",
"Value": "1"
},
{
"Key": "Community",
"Value": "private"
},
{
"Key": "TrapInterface",
"Value": "0.0.0.0"
},
{
"Key": "name",
"Value": "snmp-manager_device"
},
{
"Key": "description",
"Value": ""
}
]
}
}
Response
Status: 200 OK
{
"data": {
"CreateDevice": {
"ID": "<generated-uuid>",
"Name": "My SNMP Manager Device",
"DriverID": "4E588810-8475-4668-860A-6DA4135E8FD4",
"Description": ""
}
}
}
Create Device - Sparkplug B Client
POST {{edgeUrl}}/devicehub/v2
Sparkplug B Client Driver
| Browse devices supported: | No |
| Browse tags supported: | Yes |
| Driver Settings: | > See |
| > Namespace: Sparkplug namespace (can't be blank, or contain forward-slash) | |
| > Trigger Rebirth: If Broker and PHA allow it, issue NCMDs after connecting to retrieve client BIRTHs | |
| Browse Settings: | > [Group,Node,Device,Metric] Match: String Match (see below) |
| > ID Property: Optional comma-separated list of metric names which, if present, will replace the parent [Node,Device] ID in DeviceHub tag | |
| > Subscribe Wildcard: Subscribe to all NDATA/DDATA topics to collect active messages | |
| > Data Window: Subscription timespan to collect all DATA topics | |
| > Trigger Rebirth: Issue NCMDs on browse (see driver setting) | |
| > Birth Window: Subscription timespan to collect all BIRTH topics, after issuing NCMDs | |
| > JSON Types: Enable to include metric metadata in published value (name, alias, datatype, timestamp, payload.seq) | |
| Supported device models: | Compatible with Brokers >= MQTTv3 |
| > Tested with SparkplugB compliant nodes | |
| Miscellaneous: > Metric name must be appended to MQTT topic when creating register | |
| > Generated certificates are self-signed | |
| > Message receive order is not guaranteed, payload sequence is included in metric json value | |
| > If Client ID is left blank, a random ID will be generated | |
| > When browsing, if metric name is unknown, alias will shown. Theses names are temporary and will be replaced once BIRTHs are received. | |
| > Birth/Death messages must be of type JSON, the entire message payload will be published |
String Matching
Pattern matching string fields
String Match Types: * IsExact ("value") * BeginsWith ("prefix#") * EndsWith ("#suffix") * Contains ("#middle#") * IsAny ("#")
Special Case ("", when used on Group|Node|Device): If an empty string is passed into the str match parameter, it will match any value It will also indicate that the string should be removed when creating DeviceHub tag
Driver ID: B4D6175C-029B-4D27-8D61-84DFACD43461 Group: MQTT
Required properties:
- Address String — Broker IP or Hostname
- Username String
- SecurePort SignedInteger — Broker TLS Port
- ClientCertificate String — Client Certificate (PEM)
- Port SignedInteger — Broker Port
- CertificateAuthority String — CA Chain (PEM)
- Password String
- ClientPrivateKey String — Client Private Key (PEM)
- Namespace String — Sparkplug topic namespace
- name String — A unique, user-defined name for this device. Used to identify the device throughout the edge gateway, including in message broker topics and logs.
Optional properties:
- MinTLSVersion SignedInteger — Minimum TLS Version Options: 0, 1, 2, 3
- TriggerRebirth SignedInteger — Issue 'Node Rebirth' NCMD when connecting to retrieve all client metrics Options: 0, 1
- KeepAlivePeriod SignedInteger — Keep-Alive Period (s)
- ClientID String — MQTT Client ID
- EnableTLS SignedInteger Options: 0, 1
- ClientAuthentication SignedInteger — Authentication Mode Options: 0, 1, 2, 3
- CertificateVerification SignedInteger — Broker Certificate & Hostname Verification Options: 0, 1
- WriteTimeout SignedInteger — Pub/Sub Message Timeout (s)
- ProtocolVersion SignedInteger — MQTT Protocol Version Options: 0, 1, 2
- ConnectTimeout SignedInteger — Connect Timeout (s)
- description String — Optional free-text notes about this device, such as its physical location or purpose.
Request Body
GraphQL Query
mutation CreateDevice($input: CreateDeviceRequest!) {
CreateDevice(input: $input) {
ID
Name
DriverID
Description
}
}
Variables
{
"input": {
"Name": "My Sparkplug B Client Device",
"Description": "",
"DriverID": "B4D6175C-029B-4D27-8D61-84DFACD43461",
"AliasTopics": false,
"Debug": false,
"MetaData": [],
"StoppedState": false,
"StatusRegister": null,
"Properties": [
{
"Key": "Address",
"Value": "192.168.1.100"
},
{
"Key": "Username",
"Value": "admin"
},
{
"Key": "MinTLSVersion",
"Value": "2"
},
{
"Key": "SecurePort",
"Value": "8883"
},
{
"Key": "ClientCertificate",
"Value": "<certificate>"
},
{
"Key": "TriggerRebirth",
"Value": "0"
},
{
"Key": "KeepAlivePeriod",
"Value": "30"
},
{
"Key": "ClientID",
"Value": ""
},
{
"Key": "EnableTLS",
"Value": "1"
},
{
"Key": "Port",
"Value": "1883"
},
{
"Key": "ClientAuthentication",
"Value": "0"
},
{
"Key": "CertificateVerification",
"Value": "0"
},
{
"Key": "WriteTimeout",
"Value": "5"
},
{
"Key": "CertificateAuthority",
"Value": "<certificate>"
},
{
"Key": "Password",
"Value": "password"
},
{
"Key": "ClientPrivateKey",
"Value": "<certificate>"
},
{
"Key": "Namespace",
"Value": "spBv1.0"
},
{
"Key": "ProtocolVersion",
"Value": "1"
},
{
"Key": "ConnectTimeout",
"Value": "30"
},
{
"Key": "name",
"Value": "sparkplug_device"
},
{
"Key": "description",
"Value": ""
}
]
}
}
Response
Status: 200 OK
{
"data": {
"CreateDevice": {
"ID": "<generated-uuid>",
"Name": "My Sparkplug B Client Device",
"DriverID": "B4D6175C-029B-4D27-8D61-84DFACD43461",
"Description": ""
}
}
}
Create Device - Sparkplug B Client (No TLS)
POST {{edgeUrl}}/devicehub/v2
Sparkplug B Client Driver
| Browse devices supported: | No |
| Browse tags supported: | Yes |
| Driver Settings: | > See |
| > Namespace: Sparkplug namespace (can't be blank, or contain forward-slash) | |
| > Trigger Rebirth: If Broker and PHA allow it, issue NCMDs after connecting to retrieve client BIRTHs | |
| Browse Settings: | > [Group,Node,Device,Metric] Match: String Match (see below) |
| > ID Property: Optional comma-separated list of metric names which, if present, will replace the parent [Node,Device] ID in DeviceHub tag | |
| > Subscribe Wildcard: Subscribe to all NDATA/DDATA topics to collect active messages | |
| > Data Window: Subscription timespan to collect all DATA topics | |
| > Trigger Rebirth: Issue NCMDs on browse (see driver setting) | |
| > Birth Window: Subscription timespan to collect all BIRTH topics, after issuing NCMDs | |
| > JSON Types: Enable to include metric metadata in published value (name, alias, datatype, timestamp, payload.seq) | |
| Supported device models: | Compatible with Brokers >= MQTTv3 |
| > Tested with SparkplugB compliant nodes | |
| Miscellaneous: > Metric name must be appended to MQTT topic when creating register | |
| > Generated certificates are self-signed | |
| > Message receive order is not guaranteed, payload sequence is included in metric json value | |
| > If Client ID is left blank, a random ID will be generated | |
| > When browsing, if metric name is unknown, alias will shown. Theses names are temporary and will be replaced once BIRTHs are received. | |
| > Birth/Death messages must be of type JSON, the entire message payload will be published |
String Matching
Pattern matching string fields
String Match Types: * IsExact ("value") * BeginsWith ("prefix#") * EndsWith ("#suffix") * Contains ("#middle#") * IsAny ("#")
Special Case ("", when used on Group|Node|Device): If an empty string is passed into the str match parameter, it will match any value It will also indicate that the string should be removed when creating DeviceHub tag
Driver ID: B4D6175C-029B-4D27-8D61-84DFACD43461 Group: MQTT
Required properties:
- Address String — Broker IP or Hostname
- Username String
- SecurePort SignedInteger — Broker TLS Port
- ClientCertificate String — Client Certificate (PEM)
- Port SignedInteger — Broker Port
- CertificateAuthority String — CA Chain (PEM)
- Password String
- ClientPrivateKey String — Client Private Key (PEM)
- Namespace String — Sparkplug topic namespace
- name String — A unique, user-defined name for this device. Used to identify the device throughout the edge gateway, including in message broker topics and logs.
Optional properties:
- MinTLSVersion SignedInteger — Minimum TLS Version Options: 0, 1, 2, 3
- TriggerRebirth SignedInteger — Issue 'Node Rebirth' NCMD when connecting to retrieve all client metrics Options: 0, 1
- KeepAlivePeriod SignedInteger — Keep-Alive Period (s)
- ClientID String — MQTT Client ID
- EnableTLS SignedInteger Options: 0, 1
- ClientAuthentication SignedInteger — Authentication Mode Options: 0, 1, 2, 3
- CertificateVerification SignedInteger — Broker Certificate & Hostname Verification Options: 0, 1
- WriteTimeout SignedInteger — Pub/Sub Message Timeout (s)
- ProtocolVersion SignedInteger — MQTT Protocol Version Options: 0, 1, 2
- ConnectTimeout SignedInteger — Connect Timeout (s)
- description String — Optional free-text notes about this device, such as its physical location or purpose.
Request Body
GraphQL Query
mutation CreateDevice($input: CreateDeviceRequest!) {
CreateDevice(input: $input) {
ID
Name
DriverID
Description
}
}
Variables
{
"input": {
"Name": "My Sparkplug B Client Device (No TLS)",
"Description": "",
"DriverID": "B4D6175C-029B-4D27-8D61-84DFACD43461",
"AliasTopics": false,
"Debug": false,
"MetaData": [],
"StoppedState": false,
"StatusRegister": null,
"Properties": [
{
"Key": "Address",
"Value": "192.168.1.100"
},
{
"Key": "TriggerRebirth",
"Value": "0"
},
{
"Key": "KeepAlivePeriod",
"Value": "30"
},
{
"Key": "ClientID",
"Value": ""
},
{
"Key": "EnableTLS",
"Value": "1"
},
{
"Key": "Port",
"Value": "1883"
},
{
"Key": "ClientAuthentication",
"Value": "0"
},
{
"Key": "WriteTimeout",
"Value": "5"
},
{
"Key": "Namespace",
"Value": "spBv1.0"
},
{
"Key": "ProtocolVersion",
"Value": "1"
},
{
"Key": "ConnectTimeout",
"Value": "30"
},
{
"Key": "name",
"Value": "sparkplug_device"
},
{
"Key": "description",
"Value": ""
}
]
}
}
Response
Status: 200 OK
{
"data": {
"CreateDevice": {
"ID": "<generated-uuid>",
"Name": "My Sparkplug B Client Device (No TLS)",
"DriverID": "B4D6175C-029B-4D27-8D61-84DFACD43461",
"Description": ""
}
}
}
Create Device - Syslog Server
POST {{edgeUrl}}/devicehub/v2
Syslog Server Driver
| Browse devices supported: | No |
| Browse tags supported: | No |
| Driver Settings: | > LogProtocol: RFC5424-> Current Syslog Protocol, RFC3164 -> Original BSD Syslog Protocol |
| > UDP, TCP, TLS Enpoint configuration (must enable at least 1) | |
| > UDP Max PDU: Must be larger than the largest message to be received | |
| > UDP Timeout: Client connection duration/timeout | |
| > Allow Multi Match: Keep scanning and processing log matches, even after one is found | |
| > Stringify Int Fields: Publish keywords for Facility (0 -> "kern") & Severity (0 -> "emerg") | |
| > Replace Empty Fields: Replaces any empty values within published payload | |
| > Minimum Clients: Controls connection status | |
| > Max Workers: Increases throughput and CPU usage | |
| Tag Settings: | |
| > Severity: Inclusive Limit (at least as severe) | |
| > Facility: Exact match, or "ANY" | |
| > Wildcard: character used to indicate string matching pattern | |
| > Hostname, Appname, MsgID, Message: String matching, described below | |
| > Structured Data: Field matching, described below (rfc5424 only) | |
| > Client Address: Address matching, described below | |
| > Order: Logs processed in specified order (low->high) | |
| > Format: Format derictives to define the published payload, described below | |
| Tag Types: | |
| > STRING: Published payload is string type, using format directives | |
| > JSON: Published payload is json type, using format directives (NOTE: only pre-defined variable characters accepted) | |
| > IGNORE: No publish payload. Always scanned before non-IGNORE tags. Overrides "AllowMultiMatch" setting. Severity limit setting is reversed (atmost as severe). Should only be used to improve performance when most logs can easily be ignored (i.e ignoring all debug level logs) |
String Matching
Pattern matching string fields
- If this wildcard is change from default "*", all string match settings must be updated to reflect active wildcard
- The wildcard cannot be escaped, it must not appear anywhere in the string as a literal character
String Match Types: * IsExact ("value") * BeginsWith ("prefix*") * EndsWith ("*suffix") * Contains ("*middle*") * IsEmpty ("") * IsAny ("*")
Field Matching
Structured Data Matching (2 exact key matches, delimited by Wildcard, followed by a String Match): * IsAny ("*") * IsEmpty ("") * HasField ("key") * HasParam ("key1*key2") * FieldIsEmpty ("key*") * ParamIsEmpty ("key1*key2*")
String Matching applies to the value of a data match ("key1*key2*
Address Matching
Address matching requires a valid CIDR block * 172.22.0.1/16 -> matches client IPs starting with "172.22"
Address matches starting with a wildcard are negated * *172.22.0.1/16 -> matches client IPs which do not start with "172.22"
Note that any unmasked bits in the specified CIDR range have no effect * 172.22.0.1/16 == 172.22.99.99/16
Format Directives
Custom publish payloads
| Symbol | Definition | Type |
|---|---|---|
| $ | A special character which indicates that a variable character will follow. A variable represents some dynamic string value. Supported variables are defined as follows: | - |
| $L | Log (Full) | string (string payloads only) |
| $F | Facility | uint8 (<=23) OR keyword string |
| $S | Severity | uint8 (<=7) OR keyword string |
| $P | Priority (Facility * 8 + Severity) | uint8 (<=191) |
| $T | Timestamp | RFC3339 string |
| $H | Hostname | string |
| $A | Appname | string |
| $X | ProcessID | string |
| $I | MessageID | string |
| $D | Structured Data | string OR json object (string:string:string, rfc5424 only) |
| $M | Message | string |
| $V | Version | uint16 (>=1 && <=999, rfc5424 only) |
| $C | Client | string (IP from connection, not log) |
String Format Directive Notes: * To use a special character in its literal form, enter symbol twice ($$ -> $) Example "$$$H.$A" -> "$hostABC.appXYZ" * A special character must be followed by either itself, or one of the supported characters in the table above. Any other condition will result in an error Example1 "$H.$A$Z" -> error Example2 "$H.$A$" -> error Example3 "$H.$A$#" -> error
Driver ID: E01C515A-4045-4209-A14B-614AF7061499 Group: Network Utility
Required properties:
- UDPPort SignedInteger — UDP Port
- UDPMaxPDU SignedInteger — Max UDP Message Size
- UDPTimeout SignedInteger — UDP Connection Timeout (s)
- TCPInterface String — TCP Interface
- TLSInterface String — TLS Interface
- ServerPrivateKey String — Private Key (PEM)
- LogProtocol SignedInteger — Log Format Definition Options: 0, 1
- UDPInterface String — UDP Interface
- TCPPort SignedInteger — TCP Port
- TLSPort SignedInteger — TLS (TCP) Port
- ServerCertificate String — Certificate (PEM)
- CertificateAuthority String — CA Chain (PEM)
- name String — A unique, user-defined name for this device. Used to identify the device throughout the edge gateway, including in message broker topics and logs.
Optional properties:
- TLSParsing SignedInteger — TLS Stream Parser Options: 0, 1
- ReplaceEmptyFields String — Publish placeholder string for missing fields
- TCPParsing SignedInteger — TCP Stream Parser Options: 0, 1, 2
- MinimumClients SignedInteger — Number of expected clients, below which server will appear "Disconnected"
- EnableUDP SignedInteger — Enable UDP Listener Options: 0, 1
- EnableTCP SignedInteger — Enable TCP Listener Options: 0, 1
- EnableTLS SignedInteger — Enable TLS (TCP) Listener Options: 0, 1
- RequireClientCertificate SignedInteger — Require Client CA (mTLS) Options: 0, 1
- AllowMultiMatch SignedInteger — Publish all matches on each received log Options: 0, 1
- MinTLSVersion SignedInteger — Minimum TLS Version Options: 0, 1, 2, 3
- StringifyIntFields SignedInteger — Publish Facility & Severity as readable text in payload Options: 0, 1
- MaxWorkers SignedInteger — Maximum number of logs that can be processed simultaneously
- description String — Optional free-text notes about this device, such as its physical location or purpose.
Request Body
GraphQL Query
mutation CreateDevice($input: CreateDeviceRequest!) {
CreateDevice(input: $input) {
ID
Name
DriverID
Description
}
}
Variables
{
"input": {
"Name": "My Syslog Server Device",
"Description": "",
"DriverID": "E01C515A-4045-4209-A14B-614AF7061499",
"AliasTopics": false,
"Debug": false,
"MetaData": [],
"StoppedState": false,
"StatusRegister": null,
"Properties": [
{
"Key": "UDPPort",
"Value": "514"
},
{
"Key": "UDPMaxPDU",
"Value": "4096"
},
{
"Key": "UDPTimeout",
"Value": "30"
},
{
"Key": "TCPInterface",
"Value": "0.0.0.0"
},
{
"Key": "TLSInterface",
"Value": "0.0.0.0"
},
{
"Key": "TLSParsing",
"Value": "1"
},
{
"Key": "ServerPrivateKey",
"Value": "<certificate>"
},
{
"Key": "ReplaceEmptyFields",
"Value": ""
},
{
"Key": "LogProtocol",
"Value": "0"
},
{
"Key": "UDPInterface",
"Value": "0.0.0.0"
},
{
"Key": "TCPParsing",
"Value": "0"
},
{
"Key": "MinimumClients",
"Value": "1"
},
{
"Key": "EnableUDP",
"Value": "0"
},
{
"Key": "EnableTCP",
"Value": "1"
},
{
"Key": "TCPPort",
"Value": "6514"
},
{
"Key": "EnableTLS",
"Value": "1"
},
{
"Key": "TLSPort",
"Value": "6514"
},
{
"Key": "RequireClientCertificate",
"Value": "1"
},
{
"Key": "AllowMultiMatch",
"Value": "1"
},
{
"Key": "ServerCertificate",
"Value": "<certificate>"
},
{
"Key": "MinTLSVersion",
"Value": "2"
},
{
"Key": "CertificateAuthority",
"Value": "<certificate>"
},
{
"Key": "StringifyIntFields",
"Value": "1"
},
{
"Key": "MaxWorkers",
"Value": "1"
},
{
"Key": "name",
"Value": "syslog-server_device"
},
{
"Key": "description",
"Value": ""
}
]
}
}
Response
Status: 200 OK
{
"data": {
"CreateDevice": {
"ID": "<generated-uuid>",
"Name": "My Syslog Server Device",
"DriverID": "E01C515A-4045-4209-A14B-614AF7061499",
"Description": ""
}
}
}
Create Device - Toshiba Computer Link Ethernet (Gen1.3)
POST {{edgeUrl}}/devicehub/v2
Toshiba Computer Link Ethernet (Gen1.3)
| Prerequisites | None |
| Required fields | Network address Network Port |
| Browse devices supported | No |
| Browse tags supported | No |
| Supported device models | Toshiba Ethernet devices |
Driver ID: 1437F841-FF5A-462D-AABC-D8C13BB3FBC0 Group: Toshiba
Required properties:
- networkPort SignedInteger — Network port of the device.
- networkAddress String — IP Address of the device.
- name String — Device Name that describes your asset.
Optional properties:
- description String — Description of the device or an asset.
Request Body
GraphQL Query
mutation CreateDevice($input: CreateDeviceRequest!) {
CreateDevice(input: $input) {
ID
Name
DriverID
Description
}
}
Variables
{
"input": {
"Name": "My Toshiba Computer Link Ethernet (Gen1.3) Device",
"Description": "",
"DriverID": "1437F841-FF5A-462D-AABC-D8C13BB3FBC0",
"AliasTopics": false,
"Debug": false,
"MetaData": [],
"StoppedState": false,
"StatusRegister": null,
"Properties": [
{
"Key": "description",
"Value": ""
},
{
"Key": "networkPort",
"Value": "502"
},
{
"Key": "networkAddress",
"Value": "192.168.1.100"
},
{
"Key": "name",
"Value": "toshiba device"
}
]
}
}
Response
Status: 200 OK
{
"data": {
"CreateDevice": {
"ID": "<generated-uuid>",
"Name": "My Toshiba Computer Link Ethernet (Gen1.3) Device",
"DriverID": "1437F841-FF5A-462D-AABC-D8C13BB3FBC0",
"Description": ""
}
}
}
Create Device - Toyopuc CMP-Link Serial
POST {{edgeUrl}}/devicehub/v2
Toyopuc CMP-Link Serial Driver
| Required fields: | > Connection Settings (Serial) |
| Browse devices supported: | No |
| Browse tags supported: | No |
| Supported device models: | JTEKT Toyopuc PC10 |
| Register Settings: |
Driver ID: E21C9A5D-576D-4396-8764-07CD25D3494D Group: Toyopuc
Required properties:
- deviceFile String — The serial port path used to communicate with the device (/dev/ttyS1, /dev/ttyUSB0, …). Must match a port available on the gateway host.
- name String — A unique, user-defined name for this device. Used to identify the device throughout the edge gateway, including in message broker topics and logs.
Optional properties:
- PauseBetweenRetries SignedInteger — Pause between retries, msec
- baudRate SignedInteger — The data transmission speed, in bits per second, used for serial communication. Must match the baud rate configured on the device. Options: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10
- dataBits SignedInteger — The number of data bits in each transmitted character (typically 7 or 8). Must match the device's serial configuration. Options: 0, 1, 2, 3
- parity SignedInteger — The error-checking method used for serial communication (None, Even, or Odd). Must match the device's configured parity setting. Options: 0, 1, 2
- stopBits SignedInteger — The number of stop bits used to signal the end of a character (typically 1 or 2). Must match the device's serial configuration. Options: 0, 1, 2
- ReadTimeout SignedInteger — Request timeout, msec
- MaxRequestSize SignedInteger — Maximum block size retrieved per request (# bytes)
- Transport SignedInteger — Transport Type Options: 0
- RetryCount SignedInteger — Retry request count
- description String — Optional free-text notes about this device, such as its physical location or purpose.
Request Body
GraphQL Query
mutation CreateDevice($input: CreateDeviceRequest!) {
CreateDevice(input: $input) {
ID
Name
DriverID
Description
}
}
Variables
{
"input": {
"Name": "My Toyopuc CMP-Link Serial Device",
"Description": "",
"DriverID": "E21C9A5D-576D-4396-8764-07CD25D3494D",
"AliasTopics": false,
"Debug": false,
"MetaData": [],
"StoppedState": false,
"StatusRegister": null,
"Properties": [
{
"Key": "PauseBetweenRetries",
"Value": "0"
},
{
"Key": "deviceFile",
"Value": "/dev/ttyUSB0"
},
{
"Key": "baudRate",
"Value": "0"
},
{
"Key": "dataBits",
"Value": "0"
},
{
"Key": "parity",
"Value": "0"
},
{
"Key": "stopBits",
"Value": "0"
},
{
"Key": "ReadTimeout",
"Value": "2000"
},
{
"Key": "MaxRequestSize",
"Value": "512"
},
{
"Key": "Transport",
"Value": "0"
},
{
"Key": "RetryCount",
"Value": "0"
},
{
"Key": "name",
"Value": "toyopuc-cmplink-serial_device"
},
{
"Key": "description",
"Value": ""
}
]
}
}
Response
Status: 200 OK
{
"data": {
"CreateDevice": {
"ID": "<generated-uuid>",
"Name": "My Toyopuc CMP-Link Serial Device",
"DriverID": "E21C9A5D-576D-4396-8764-07CD25D3494D",
"Description": ""
}
}
}
Create Device - Toyopuc Ethernet
POST {{edgeUrl}}/devicehub/v2
Toyopuc Ethernet Driver
| Required fields: | > Connection Settings (TCP) |
| Browse devices supported: | No |
| Browse tags supported: | No |
| Supported device models: | JTEKT Toyopuc PC10 |
| Register Settings: | > File Number: Data file/program number |
| > Access Type: Block access will request contiguous registers, Random access can request registers of different areas/types (within the same file) |
Driver ID: 9C027337-2D53-452D-9F9A-9932A39B5B16 Group: Toyopuc
Required properties:
- networkAddress String — IP Address
- networkPort SignedInteger — Port
- name String — A unique, user-defined name for this device. Used to identify the device throughout the edge gateway, including in message broker topics and logs.
Optional properties:
- KeepAlive SignedInteger — TCP Keep-Alive (s) (0 to disable)
- RetryCount SignedInteger — Retry request count
- Transport SignedInteger — Transport Type Options: 0
- LinkNodes String — Multi-layer link nodes
- PauseBetweenRetries SignedInteger — Pause between retries, msec
- ReadTimeout SignedInteger — Request timeout, msec
- MaxRequestSize SignedInteger — Maximum block size retrieved per request (# bytes)
- description String — Optional free-text notes about this device, such as its physical location or purpose.
Request Body
GraphQL Query
mutation CreateDevice($input: CreateDeviceRequest!) {
CreateDevice(input: $input) {
ID
Name
DriverID
Description
}
}
Variables
{
"input": {
"Name": "My Toyopuc Ethernet Device",
"Description": "",
"DriverID": "9C027337-2D53-452D-9F9A-9932A39B5B16",
"AliasTopics": false,
"Debug": false,
"MetaData": [],
"StoppedState": false,
"StatusRegister": null,
"Properties": [
{
"Key": "KeepAlive",
"Value": "60"
},
{
"Key": "RetryCount",
"Value": "0"
},
{
"Key": "Transport",
"Value": "0"
},
{
"Key": "LinkNodes",
"Value": "[]"
},
{
"Key": "networkAddress",
"Value": "192.168.1.100"
},
{
"Key": "networkPort",
"Value": "1025"
},
{
"Key": "PauseBetweenRetries",
"Value": "0"
},
{
"Key": "ReadTimeout",
"Value": "2000"
},
{
"Key": "MaxRequestSize",
"Value": "512"
},
{
"Key": "name",
"Value": "toyopuc-ethernet_device"
},
{
"Key": "description",
"Value": ""
}
]
}
}
Response
Status: 200 OK
{
"data": {
"CreateDevice": {
"ID": "<generated-uuid>",
"Name": "My Toyopuc Ethernet Device",
"DriverID": "9C027337-2D53-452D-9F9A-9932A39B5B16",
"Description": ""
}
}
}
Create Device - Vipa 300s Ethernet (Gen1.3)
POST {{edgeUrl}}/devicehub/v2
Vipa 300s Ethernet (Gen1.3)
| Prerequisites | None |
| Required fields | Network address Network Port Slot Number |
| Browse devices supported | No |
| Browse tags supported | No |
| Supported device models | VIPA 300S |
Driver ID: 3F8D577D-3FB0-4DB3-8FED-85694903E27A Group: Vipa
Required properties:
- name String — Device Name that describes your asset.
- networkAddress String — IP Address of the device.
- networkPort SignedInteger — Network port of the device.
- slotNumber SignedInteger — Slot number of device.
Optional properties:
- description String — Description of the device or an asset.
Request Body
GraphQL Query
mutation CreateDevice($input: CreateDeviceRequest!) {
CreateDevice(input: $input) {
ID
Name
DriverID
Description
}
}
Variables
{
"input": {
"Name": "My Vipa 300s Ethernet (Gen1.3) Device",
"Description": "",
"DriverID": "3F8D577D-3FB0-4DB3-8FED-85694903E27A",
"AliasTopics": false,
"Debug": false,
"MetaData": [],
"StoppedState": false,
"StatusRegister": null,
"Properties": [
{
"Key": "name",
"Value": "Vipa PLC"
},
{
"Key": "description",
"Value": ""
},
{
"Key": "networkAddress",
"Value": "192.168.1.100"
},
{
"Key": "networkPort",
"Value": "502"
},
{
"Key": "slotNumber",
"Value": "1"
}
]
}
}
Response
Status: 200 OK
{
"data": {
"CreateDevice": {
"ID": "<generated-uuid>",
"Name": "My Vipa 300s Ethernet (Gen1.3) Device",
"DriverID": "3F8D577D-3FB0-4DB3-8FED-85694903E27A",
"Description": ""
}
}
}
Create Device - Yaskawa MP2300 Ethernet (Gen1.3)
POST {{edgeUrl}}/devicehub/v2
Yaskawa MP2300 Ethernet (Gen1.3)
| Prerequisites | None |
| Required fields | Network address Network Port Output Input |
| Browse devices supported | No |
| Browse tags supported | No |
| Supported device models | Yaskawa MP2300S iec controllers |
Driver ID: AD2863B5-85F6-4E4B-885B-57AD37328F60 Group: Yaskawa
Required properties:
- input SignedInteger — Assembly number of communication module.
- output SignedInteger — Output assembly number of communication module.
- networkAddress String — IP Address of the device.
- networkPort SignedInteger — Network port of the device.
- name String — Device Name that describes your asset.
Optional properties:
- description String — Description of the device or an asset.
Request Body
GraphQL Query
mutation CreateDevice($input: CreateDeviceRequest!) {
CreateDevice(input: $input) {
ID
Name
DriverID
Description
}
}
Variables
{
"input": {
"Name": "My Yaskawa MP2300 Ethernet (Gen1.3) Device",
"Description": "",
"DriverID": "AD2863B5-85F6-4E4B-885B-57AD37328F60",
"AliasTopics": false,
"Debug": false,
"MetaData": [],
"StoppedState": false,
"StatusRegister": null,
"Properties": [
{
"Key": "description",
"Value": ""
},
{
"Key": "input",
"Value": "101"
},
{
"Key": "output",
"Value": "111"
},
{
"Key": "networkAddress",
"Value": "192.168.1.100"
},
{
"Key": "networkPort",
"Value": "502"
},
{
"Key": "name",
"Value": "Yaskawa Device"
}
]
}
}
Response
Status: 200 OK
{
"data": {
"CreateDevice": {
"ID": "<generated-uuid>",
"Name": "My Yaskawa MP2300 Ethernet (Gen1.3) Device",
"DriverID": "AD2863B5-85F6-4E4B-885B-57AD37328F60",
"Description": ""
}
}
}
Create Device - Yokogawa DX Ethernet
POST {{edgeUrl}}/devicehub/v2
Yokogawa DX Ethernet Driver
| Required fields: | > Connection Settings (TCP) |
| Browse devices supported: | No |
| Browse tags supported: | Yes |
| Supported device models: | DX208, DX230 |
| Register Settings: | > |
Driver ID: E8A37963-13B4-4D30-B8FC-87DA26F17B60 Group: Yokogawa
Required properties:
- Password String
- networkPort SignedInteger — Port
- networkAddress String — IP Address
- Username String
- name String — A unique, user-defined name for this device. Used to identify the device throughout the edge gateway, including in message broker topics and logs.
Optional properties:
- Function String — Monitor - Allows for viewing real-time data on the device.
Setting - Allows for editing of some parameters on the device. This function may not be supported by all models. Options: 0, 1
- ReadTimeout SignedInteger — Request timeout, msec
- Transport SignedInteger — Transport Type Options: 0
- UserID String
- KeepAlive SignedInteger — TCP Keep-Alive (s) (0 to disable)
- RetryCount SignedInteger — Retry request count
- PauseBetweenRetries SignedInteger — Pause between retries, msec
- description String — Optional free-text notes about this device, such as its physical location or purpose.
Request Body
GraphQL Query
mutation CreateDevice($input: CreateDeviceRequest!) {
CreateDevice(input: $input) {
ID
Name
DriverID
Description
}
}
Variables
{
"input": {
"Name": "My Yokogawa DX Ethernet Device",
"Description": "",
"DriverID": "E8A37963-13B4-4D30-B8FC-87DA26F17B60",
"AliasTopics": false,
"Debug": false,
"MetaData": [],
"StoppedState": false,
"StatusRegister": null,
"Properties": [
{
"Key": "Password",
"Value": "0"
},
{
"Key": "Function",
"Value": "0"
},
{
"Key": "ReadTimeout",
"Value": "2000"
},
{
"Key": "Transport",
"Value": "0"
},
{
"Key": "UserID",
"Value": ""
},
{
"Key": "networkPort",
"Value": "34260"
},
{
"Key": "KeepAlive",
"Value": "60"
},
{
"Key": "RetryCount",
"Value": "0"
},
{
"Key": "PauseBetweenRetries",
"Value": "0"
},
{
"Key": "networkAddress",
"Value": "192.168.1.100"
},
{
"Key": "Username",
"Value": "admin"
},
{
"Key": "name",
"Value": "yokogawa-dx-ethernet_device"
},
{
"Key": "description",
"Value": ""
}
]
}
}
Response
Status: 200 OK
{
"data": {
"CreateDevice": {
"ID": "<generated-uuid>",
"Name": "My Yokogawa DX Ethernet Device",
"DriverID": "E8A37963-13B4-4D30-B8FC-87DA26F17B60",
"Description": ""
}
}
}
Create Device - Yokogawa FA-M3 Ethernet (Gen1.3)
POST {{edgeUrl}}/devicehub/v2
Yokogawa FA-M3 Ethernet (Gen1.3)
| Prerequisites | No |
| Required fields | Network Address Port Station ID |
| Browse devices supported | No |
| Browse tags supported | No |
| Supported device models | Yokogawa FA-M3 Series |
Driver ID: 9D130EEC-9EFC-4FA0-A64B-D6DD6E76547B Group: Yokogawa
Required properties:
- stationId SignedInteger — Station id/ slot number
- name String — Device Name that describes your asset.
- networkAddress String — IP Address of the device.
- networkPort SignedInteger — Network port of the device.
Optional properties:
- description String — Description of the device or an asset.
Request Body
GraphQL Query
mutation CreateDevice($input: CreateDeviceRequest!) {
CreateDevice(input: $input) {
ID
Name
DriverID
Description
}
}
Variables
{
"input": {
"Name": "My Yokogawa FA-M3 Ethernet (Gen1.3) Device",
"Description": "",
"DriverID": "9D130EEC-9EFC-4FA0-A64B-D6DD6E76547B",
"AliasTopics": false,
"Debug": false,
"MetaData": [],
"StoppedState": false,
"StatusRegister": null,
"Properties": [
{
"Key": "stationId",
"Value": "1"
},
{
"Key": "name",
"Value": "FA-M3"
},
{
"Key": "description",
"Value": ""
},
{
"Key": "networkAddress",
"Value": "192.168.1.100"
},
{
"Key": "networkPort",
"Value": "502"
}
]
}
}
Response
Status: 200 OK
{
"data": {
"CreateDevice": {
"ID": "<generated-uuid>",
"Name": "My Yokogawa FA-M3 Ethernet (Gen1.3) Device",
"DriverID": "9D130EEC-9EFC-4FA0-A64B-D6DD6E76547B",
"Description": ""
}
}
}
Create Device - Yokogawa MX Ethernet
POST {{edgeUrl}}/devicehub/v2
Yokogawa MX Ethernet
Experimental
| Prerequisites | None |
| Required fields | Network address Network Port |
| Browse devices supported | No |
| Browse tags supported | Yes |
| Supported device models | Yokogawa MX100 |
| Miscellaneous | Currently write is not supported by the driver |
Driver ID: 464335B0-1D0E-4E70-B6DB-2BC54A7DB469 Group: Yokogawa
Required properties:
- networkAddress String — The IP address of the device on the network.
- networkPort SignedInteger — The TCP or UDP port used to communicate with the device, depending on the protocol. Defaults to the standard port for the selected protocol but must match the port configured on the device.
- name String — A unique, user-defined name for this device. Used to identify the device throughout the edge gateway, including in message broker topics and logs.
Optional properties:
- readTimeout SignedInteger — Read Timeout (ms)
- description String — Optional free-text notes about this device, such as its physical location or purpose.
Request Body
GraphQL Query
mutation CreateDevice($input: CreateDeviceRequest!) {
CreateDevice(input: $input) {
ID
Name
DriverID
Description
}
}
Variables
{
"input": {
"Name": "My Yokogawa MX Ethernet Device",
"Description": "",
"DriverID": "464335B0-1D0E-4E70-B6DB-2BC54A7DB469",
"AliasTopics": false,
"Debug": false,
"MetaData": [],
"StoppedState": false,
"StatusRegister": null,
"Properties": [
{
"Key": "networkAddress",
"Value": "192.168.1.100"
},
{
"Key": "networkPort",
"Value": "34316"
},
{
"Key": "readTimeout",
"Value": "3000"
},
{
"Key": "name",
"Value": "yokogawa-mx100-ethernet_device"
},
{
"Key": "description",
"Value": ""
}
]
}
}
Response
Status: 200 OK
{
"data": {
"CreateDevice": {
"ID": "<generated-uuid>",
"Name": "My Yokogawa MX Ethernet Device",
"DriverID": "464335B0-1D0E-4E70-B6DB-2BC54A7DB469",
"Description": ""
}
}
}
Create Device - ABB Totalflow DB2
POST {{edgeUrl}}/devicehub/v2
ABB Totalflow DB2 Driver
| Required fields: | > Connection Settings (TCP) |
| Browse devices supported: | No |
| Browse tags supported: | No |
| Supported device models: | ABB Totalflow devices that support native DB2 protocol. |
| Register Settings: | > Application (T) / Array (F) / Address (D); V_bit appends a 2-digit bit index (00-15) |
Troubleshooting
- Every register array has one element width (1, 2, 4, 6, 8 or 65 bytes) set by the device configuration. The driver learns it with a one-element read the first time an application/array pair is polled or written after connecting, so the first poll of each array costs one extra request. If that read returns the empty reply (register not defined) the tag fails and the width is retried on the next poll.
- A value wider than the array element (for example a float64 in a 4-byte array) spans consecutive register ids; place such tags 2 ids apart. A value narrower than the element reads its first bytes.
- Strings are one 65-byte element each (64 characters plus terminator). A string write reads the element first and writes it back with the new text at the start, so the element tail is preserved. Keep the string length at 64 or below.
- A value wider than the array element (for example a float64 into a 2-byte array) is written across consecutive elements, one request, and the device commits every element.
- Writing a high count into a wide array element can build a request over the per-message byte budget; the write fails locally with an error naming the byte limit instead of being sent. Lower the count or split it across more tags.
- The unit must keep the factory-default station ID "TOTALFLOW"; a renamed unit does not answer.
Driver ID: 8C74147E-ED21-48DF-878A-D400A45C82E5 Group: ABB
Required properties:
- networkPort SignedInteger — Port
- networkAddress String — IP Address
- name String — A unique, user-defined name for this device. Used to identify the device throughout the edge gateway, including in message broker topics and logs.
Optional properties:
- Transport SignedInteger — Transport Type Options: 0
- KeepAlive SignedInteger — TCP Keep-Alive (s) (0 to disable)
- ReadTimeout SignedInteger — Request timeout, msec
- RetryCount SignedInteger — Retry request count
- PauseBetweenRetries SignedInteger — Pause between retries, msec
- description String — Optional free-text notes about this device, such as its physical location or purpose.
Request Body
GraphQL Query
mutation CreateDevice($input: CreateDeviceRequest!) {
CreateDevice(input: $input) {
ID
Name
DriverID
Description
}
}
Variables
{
"input": {
"Name": "My ABB Totalflow DB2 Device",
"Description": "",
"DriverID": "8C74147E-ED21-48DF-878A-D400A45C82E5",
"AliasTopics": false,
"Debug": false,
"MetaData": [],
"StoppedState": false,
"StatusRegister": null,
"Properties": [
{
"Key": "Transport",
"Value": "0"
},
{
"Key": "networkPort",
"Value": "9999"
},
{
"Key": "networkAddress",
"Value": "192.168.1.100"
},
{
"Key": "KeepAlive",
"Value": "60"
},
{
"Key": "ReadTimeout",
"Value": "2000"
},
{
"Key": "RetryCount",
"Value": "0"
},
{
"Key": "PauseBetweenRetries",
"Value": "0"
},
{
"Key": "name",
"Value": "abb-totalflow_device"
},
{
"Key": "description",
"Value": ""
}
]
}
}
Response
Status: 200 OK
{
"data": {
"CreateDevice": {
"ID": "<generated-uuid>",
"Name": "My ABB Totalflow DB2 Device",
"DriverID": "8C74147E-ED21-48DF-878A-D400A45C82E5",
"Description": ""
}
}
}
Create Device - AB ControlLogix Unsolicited
POST {{edgeUrl}}/devicehub/v2
AB ControlLogix Unsolicited
Allen-Bradley / Rockwell EtherNet/IP + CIP driver in server/listener role.
Unlike a normal CIP client, this driver does NOT poll the PLC. It binds a local TCP port (networkPort, default 44818), listens, and accepts inbound connections from a ControlLogix/CompactLogix PLC running CIP Data Table Read/Write MSG instructions pointed at LoopEdge.
- Read returns the last value the PLC pushed via CIP Write Tag (svc 0x4d), cached by tag name.
- Write is deferred: the value is held and served only when the PLC issues a CIP Read Tag (svc 0x4c) for that tag.
Tags are symbolic (FreeTag): the register name is the CIP tag name. Supported value types: BOOL, SINT, INT, DINT, REAL, LINT.
Supports all ControlLogix and CompactLogix series that support the CIP Data Table Read/Write MSG instruction.
Driver ID: 2CFCC731-1C12-44D5-8A12-F720C6C2AD8E Group: Allen Bradley
Required properties:
- networkPort SignedInteger — Local TCP port to listen on for inbound PLC connections.
- name String — A unique, user-defined name for this device. Used to identify the device throughout the edge gateway, including in message broker topics and logs.
Optional properties:
- NetworkInterface String — Network interface (IP) to bind the listener to.
- readTimeout SignedInteger — Per-connection read timeout (ms). A client silent for this long is dropped and its tags set down.
- description String — Optional free-text notes about this device, such as its physical location or purpose.
Request Body
GraphQL Query
mutation CreateDevice($input: CreateDeviceRequest!) {
CreateDevice(input: $input) {
ID
Name
DriverID
Description
}
}
Variables
{
"input": {
"Name": "My AB ControlLogix Unsolicited Device",
"Description": "",
"DriverID": "2CFCC731-1C12-44D5-8A12-F720C6C2AD8E",
"AliasTopics": false,
"Debug": false,
"MetaData": [],
"StoppedState": false,
"StatusRegister": null,
"Properties": [
{
"Key": "NetworkInterface",
"Value": "0.0.0.0"
},
{
"Key": "networkPort",
"Value": "44818"
},
{
"Key": "readTimeout",
"Value": "10000"
},
{
"Key": "name",
"Value": "ab-controllogix-unsolicited_device"
},
{
"Key": "description",
"Value": ""
}
]
}
}
Response
Status: 200 OK
{
"data": {
"CreateDevice": {
"ID": "<generated-uuid>",
"Name": "My AB ControlLogix Unsolicited Device",
"DriverID": "2CFCC731-1C12-44D5-8A12-F720C6C2AD8E",
"Description": ""
}
}
}
Create Device - Delta DVP Ethernet
POST {{edgeUrl}}/devicehub/v2
Delta DVP Ethernet Driver
| Required fields: | > Connection Settings (TCP) |
| Browse devices supported: | No |
| Browse tags supported: | No |
| Supported device models: | Delta DVP Series (ES2/EX2/SS2/SA2/SX2/SE/SV2) |
| Register Settings: |
Driver ID: 9C60FBE6-C6CB-4C55-8C7E-02D1853A002F Group: Delta PLC
Required properties:
- stationId SignedInteger — This is a station no of device.
- networkPort SignedInteger — The TCP or UDP port used to communicate with the device, depending on the protocol. Defaults to the standard port for the selected protocol but must match the port configured on the device.
- networkAddress String — The IP address of the device on the network.
- name String — A unique, user-defined name for this device. Used to identify the device throughout the edge gateway, including in message broker topics and logs.
Optional properties:
- requestTimeoutMs SignedInteger — Response Timeout (ms)
- maxRequestSize SignedInteger — Maximum block size retrieved per request (# bytes)
- description String — Optional free-text notes about this device, such as its physical location or purpose.
Request Body
GraphQL Query
mutation CreateDevice($input: CreateDeviceRequest!) {
CreateDevice(input: $input) {
ID
Name
DriverID
Description
}
}
Variables
{
"input": {
"Name": "My Delta DVP Ethernet Device",
"Description": "",
"DriverID": "9C60FBE6-C6CB-4C55-8C7E-02D1853A002F",
"AliasTopics": false,
"Debug": false,
"MetaData": [],
"StoppedState": false,
"StatusRegister": null,
"Properties": [
{
"Key": "requestTimeoutMs",
"Value": "2000"
},
{
"Key": "maxRequestSize",
"Value": "125"
},
{
"Key": "stationId",
"Value": "0"
},
{
"Key": "networkPort",
"Value": "502"
},
{
"Key": "networkAddress",
"Value": "192.168.1.100"
},
{
"Key": "name",
"Value": "delta-dvp-ethernet_device"
},
{
"Key": "description",
"Value": ""
}
]
}
}
Response
Status: 200 OK
{
"data": {
"CreateDevice": {
"ID": "<generated-uuid>",
"Name": "My Delta DVP Ethernet Device",
"DriverID": "9C60FBE6-C6CB-4C55-8C7E-02D1853A002F",
"Description": ""
}
}
}
Create Device - Excel
POST {{edgeUrl}}/devicehub/v2
Excel
Reads typed cell values from a local .xlsx workbook on each poll. Read-only.
| Prerequisites | Workbook reachable at the configured path (may be FTP-delivered out of band). |
| Required fields | File Path |
| Per-tag fields | Sheet, Start Cell, End Cell |
Settings
| Setting | Description |
|---|---|
| File Path | Absolute path to the .xlsx workbook. Default /ftp-data/devicehub/excel.xlsx. |
| Cell Publishing Option | Value (cached cell value) or Formula (cell formula text; falls back to value when no formula). |
Value types
| Type | Meaning |
|---|---|
| single | One cell at startCell; typed per cell (int / float / string / bool / ISO-8601 date string). endCell ignored. |
| range | Rectangle startCell..endCell; row-major 2-D matrix, per-cell typing preserved. |
Driver ID: 69D2FBA9-D685-47E3-B0D7-F45150F48AA9 Group: Excel
Required properties:
- name String — A unique, user-defined name for this device. Used to identify the device throughout the edge gateway, including in message broker topics and logs.
Optional properties:
- cellPublishingOption SignedInteger — Value: publish the cached cell value. Formula: publish the cell formula text (falls back to value when no formula). Options: 0, 1
- filePath String — Absolute path to the .xlsx workbook. May be delivered out-of-band (e.g. FTP) and absent at config time.
- description String — Optional free-text notes about this device, such as its physical location or purpose.
Request Body
GraphQL Query
mutation CreateDevice($input: CreateDeviceRequest!) {
CreateDevice(input: $input) {
ID
Name
DriverID
Description
}
}
Variables
{
"input": {
"Name": "My Excel Device",
"Description": "",
"DriverID": "69D2FBA9-D685-47E3-B0D7-F45150F48AA9",
"AliasTopics": false,
"Debug": false,
"MetaData": [],
"StoppedState": false,
"StatusRegister": null,
"Properties": [
{
"Key": "cellPublishingOption",
"Value": "0"
},
{
"Key": "filePath",
"Value": "/ftp-data/devicehub/excel.xlsx"
},
{
"Key": "name",
"Value": "excel_device"
},
{
"Key": "description",
"Value": ""
}
]
}
}
Response
Status: 200 OK
{
"data": {
"CreateDevice": {
"ID": "<generated-uuid>",
"Name": "My Excel Device",
"DriverID": "69D2FBA9-D685-47E3-B0D7-F45150F48AA9",
"Description": ""
}
}
}
Create Device - Fuji SPH2000 Ethernet
POST {{edgeUrl}}/devicehub/v2
Fuji SPH2000 Ethernet
Driver for Fuji Electric MICREX-SX / SPH2000 series PLCs over the proprietary loader command protocol (TCP, default port 507).
Driver ID: FEC00CDD-C616-489F-862F-6FEA9F5A9D52 Group: Fuji Devices
Required properties:
- networkAddress String — IP Address
- networkPort SignedInteger — Port
- name String — A unique, user-defined name for this device. Used to identify the device throughout the edge gateway, including in message broker topics and logs.
Optional properties:
- RetryCount SignedInteger — Retry request count
- PauseBetweenRetries SignedInteger — Pause between retries, msec
- Transport SignedInteger — Transport Type Options: 0
- KeepAlive SignedInteger — TCP Keep-Alive (s) (0 to disable)
- ReadTimeout SignedInteger — Request timeout, msec
- description String — Optional free-text notes about this device, such as its physical location or purpose.
Request Body
GraphQL Query
mutation CreateDevice($input: CreateDeviceRequest!) {
CreateDevice(input: $input) {
ID
Name
DriverID
Description
}
}
Variables
{
"input": {
"Name": "My Fuji SPH2000 Ethernet Device",
"Description": "",
"DriverID": "FEC00CDD-C616-489F-862F-6FEA9F5A9D52",
"AliasTopics": false,
"Debug": false,
"MetaData": [],
"StoppedState": false,
"StatusRegister": null,
"Properties": [
{
"Key": "RetryCount",
"Value": "0"
},
{
"Key": "PauseBetweenRetries",
"Value": "0"
},
{
"Key": "Transport",
"Value": "0"
},
{
"Key": "networkAddress",
"Value": "192.168.1.100"
},
{
"Key": "networkPort",
"Value": "507"
},
{
"Key": "KeepAlive",
"Value": "60"
},
{
"Key": "ReadTimeout",
"Value": "2000"
},
{
"Key": "name",
"Value": "fuji-sph2000_device"
},
{
"Key": "description",
"Value": ""
}
]
}
}
Response
Status: 200 OK
{
"data": {
"CreateDevice": {
"ID": "<generated-uuid>",
"Name": "My Fuji SPH2000 Ethernet Device",
"DriverID": "FEC00CDD-C616-489F-862F-6FEA9F5A9D52",
"Description": ""
}
}
}
Create Device - IDEC Serial
POST {{edgeUrl}}/devicehub/v2
IDEC Serial
Experimental
| Prerequisites | None |
| Required fields | Device File Baud Rate Data Bits Stop Bits Parity |
| Browse devices supported | No |
| Browse tags supported | Yes |
| Supported device models | IDEC Micro3 |
| Miscellaneous | You may export tags from the WindLDR programming software as a .txt file and upload them to browse tags |
Driver ID: 08CF3271-B72C-414F-9771-43355869AA99 Group: IDEC
Required properties:
- stationId SignedInteger — PLC station number
- deviceFile String — The serial port path used to communicate with the device (/dev/ttyS1, /dev/ttyUSB0, …). Must match a port available on the gateway host.
- name String — A unique, user-defined name for this device. Used to identify the device throughout the edge gateway, including in message broker topics and logs.
Optional properties:
- tagsTXT String — Name of the exported .txt tag file from WindLDR which was uploaded to /ftp-data/devicehub/
- baudRate SignedInteger — The data transmission speed, in bits per second, used for serial communication. Must match the baud rate configured on the device. Options: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10
- dataBits SignedInteger — The number of data bits in each transmitted character (typically 7 or 8). Must match the device's serial configuration. Options: 0, 1, 2, 3
- parity SignedInteger — The error-checking method used for serial communication (None, Even, or Odd). Must match the device's configured parity setting. Options: 0, 1, 2
- stopBits SignedInteger — The number of stop bits used to signal the end of a character (typically 1 or 2). Must match the device's serial configuration. Options: 0, 1, 2
- readTimeout SignedInteger
- description String — Optional free-text notes about this device, such as its physical location or purpose.
Request Body
GraphQL Query
mutation CreateDevice($input: CreateDeviceRequest!) {
CreateDevice(input: $input) {
ID
Name
DriverID
Description
}
}
Variables
{
"input": {
"Name": "My IDEC Serial Device",
"Description": "",
"DriverID": "08CF3271-B72C-414F-9771-43355869AA99",
"AliasTopics": false,
"Debug": false,
"MetaData": [],
"StoppedState": false,
"StatusRegister": null,
"Properties": [
{
"Key": "stationId",
"Value": "0"
},
{
"Key": "tagsTXT",
"Value": "IDEC Serial.txt"
},
{
"Key": "deviceFile",
"Value": "/dev/ttyUSB0"
},
{
"Key": "baudRate",
"Value": "3"
},
{
"Key": "dataBits",
"Value": "2"
},
{
"Key": "parity",
"Value": "2"
},
{
"Key": "stopBits",
"Value": "0"
},
{
"Key": "readTimeout",
"Value": "1000"
},
{
"Key": "name",
"Value": "idec-serial_device"
},
{
"Key": "description",
"Value": ""
}
]
}
}
Response
Status: 200 OK
{
"data": {
"CreateDevice": {
"ID": "<generated-uuid>",
"Name": "My IDEC Serial Device",
"DriverID": "08CF3271-B72C-414F-9771-43355869AA99",
"Description": ""
}
}
}
Create Device - Koyo Ethernet
POST {{edgeUrl}}/devicehub/v2
Koyo Ethernet Driver
| Required fields: | > Connection Settings (UDP) |
| Browse devices supported: | No |
| Browse tags supported: | No |
| Supported device models: | Koyo DirectLogic PLCs over HAP/UDP/28784 |
Driver ID: 3D99A570-7DB8-448D-9268-D572654C9929 Group: Koyo
Required properties:
- networkAddress String — IP Address
- networkPort SignedInteger — Port
- name String — A unique, user-defined name for this device. Used to identify the device throughout the edge gateway, including in message broker topics and logs.
Optional properties:
- PauseBetweenRetries SignedInteger — Pause between retries, msec
- ReadTimeout SignedInteger — Request timeout, msec
- Transport SignedInteger — Transport Type Options: 0
- StationID SignedInteger — Station ID (informational only; not sent on wire for single-PLC-per-IP)
- RetryCount SignedInteger — Retry request count
- description String — Optional free-text notes about this device, such as its physical location or purpose.
Request Body
GraphQL Query
mutation CreateDevice($input: CreateDeviceRequest!) {
CreateDevice(input: $input) {
ID
Name
DriverID
Description
}
}
Variables
{
"input": {
"Name": "My Koyo Ethernet Device",
"Description": "",
"DriverID": "3D99A570-7DB8-448D-9268-D572654C9929",
"AliasTopics": false,
"Debug": false,
"MetaData": [],
"StoppedState": false,
"StatusRegister": null,
"Properties": [
{
"Key": "PauseBetweenRetries",
"Value": "0"
},
{
"Key": "ReadTimeout",
"Value": "2000"
},
{
"Key": "Transport",
"Value": "0"
},
{
"Key": "StationID",
"Value": "0"
},
{
"Key": "networkAddress",
"Value": "192.168.1.100"
},
{
"Key": "networkPort",
"Value": "28784"
},
{
"Key": "RetryCount",
"Value": "0"
},
{
"Key": "name",
"Value": "koyo-ethernet_device"
},
{
"Key": "description",
"Value": ""
}
]
}
}
Response
Status: 200 OK
{
"data": {
"CreateDevice": {
"ID": "<generated-uuid>",
"Name": "My Koyo Ethernet Device",
"DriverID": "3D99A570-7DB8-448D-9268-D572654C9929",
"Description": ""
}
}
}
Create Device - MTConnect Ethernet
POST {{edgeUrl}}/devicehub/v2
MTConnect Ethernet
Read-only HTTP/XML polling client for an MTConnect Agent. The driver issues GET /current per pollingInterval and serves per-tag reads from the cached response. Tag addressing is symbolic: <componentName>.<dataItemName> (preferring @name, falling back to @componentId/@dataItemId). Browse walks /probe with a /current fallback.
See the MTConnect standard at https://docs.mtconnect.org/ for the protocol reference.
Driver ID: 56645DE6-A9EC-4CA1-8EAB-F8058AA7714F Group: MTConnect
Required properties:
- networkPort SignedInteger — MTConnect Agent HTTP port
- deviceName String — Device name to filter (matches DeviceStream/@name; case-sensitive)
- networkAddress String — MTConnect Agent IP address or hostname
- name String — A unique, user-defined name for this device. Used to identify the device throughout the edge gateway, including in message broker topics and logs.
Optional properties:
- requestTimeout SignedInteger — HTTP request timeout (ms)
- description String — Optional free-text notes about this device, such as its physical location or purpose.
Request Body
GraphQL Query
mutation CreateDevice($input: CreateDeviceRequest!) {
CreateDevice(input: $input) {
ID
Name
DriverID
Description
}
}
Variables
{
"input": {
"Name": "My MTConnect Ethernet Device",
"Description": "",
"DriverID": "56645DE6-A9EC-4CA1-8EAB-F8058AA7714F",
"AliasTopics": false,
"Debug": false,
"MetaData": [],
"StoppedState": false,
"StatusRegister": null,
"Properties": [
{
"Key": "networkPort",
"Value": "5000"
},
{
"Key": "deviceName",
"Value": "device"
},
{
"Key": "requestTimeout",
"Value": "3000"
},
{
"Key": "networkAddress",
"Value": "192.168.1.100"
},
{
"Key": "name",
"Value": "mtconnect-ethernet_device"
},
{
"Key": "description",
"Value": ""
}
]
}
}
Response
Status: 200 OK
{
"data": {
"CreateDevice": {
"ID": "<generated-uuid>",
"Name": "My MTConnect Ethernet Device",
"DriverID": "56645DE6-A9EC-4CA1-8EAB-F8058AA7714F",
"Description": ""
}
}
}
Create Device - Ping
POST {{edgeUrl}}/devicehub/v2
Ping diagnostic driver (ICMP echo + TCP port reachability)
Driver ID: 16CBDA92-78E6-49D0-B44B-6B256BFBD3BE Group: Network Utility
Required properties:
- name String — A unique, user-defined name for this device. Used to identify the device throughout the edge gateway, including in message broker topics and logs.
Optional properties:
- description String — Optional free-text notes about this device, such as its physical location or purpose.
Request Body
GraphQL Query
mutation CreateDevice($input: CreateDeviceRequest!) {
CreateDevice(input: $input) {
ID
Name
DriverID
Description
}
}
Variables
{
"input": {
"Name": "My Ping Device",
"Description": "",
"DriverID": "16CBDA92-78E6-49D0-B44B-6B256BFBD3BE",
"AliasTopics": false,
"Debug": false,
"MetaData": [],
"StoppedState": false,
"StatusRegister": null,
"Properties": [
{
"Key": "name",
"Value": "ping_device"
},
{
"Key": "description",
"Value": ""
}
]
}
}
Response
Status: 200 OK
{
"data": {
"CreateDevice": {
"ID": "<generated-uuid>",
"Name": "My Ping Device",
"DriverID": "16CBDA92-78E6-49D0-B44B-6B256BFBD3BE",
"Description": ""
}
}
}
Create Device - Panasonic FP Ethernet
POST {{edgeUrl}}/devicehub/v2
Panasonic FP Ethernet Driver (MEWTOCOL-COM)
| Prerequisites | FP-family PLC speaking classical MEWTOCOL-COM over TCP. Common variants: - FP2-ET-LAN module (port 8500, default — binary header required) - FP0H built-in LAN configured "Connect with FP2-ET-LAN" (port 60001..) - FP-XH built-in LAN or AFPX-COM5 (port 9094 — disable binary header) - FP0H configured "Not connect" mode (disable binary header) |
| Required fields | Network address Network Port Station ID Binary Header Enabled |
| Browse devices supported | No |
| Browse tags supported | No |
Driver ID: DE5ABFD3-D0C0-473C-B04C-B77C91DCFCF2 Group: Panasonic
Required properties:
- networkPort SignedInteger — Port
- networkAddress String — IP Address
- name String — A unique, user-defined name for this device. Used to identify the device throughout the edge gateway, including in message broker topics and logs.
Optional properties:
- stationId SignedInteger — Station/unit number (1..99)
- binaryHeaderEnabled Boolean — Enable this setting for the FP2 series. Disable this setting for the FP7 series if the Operating mode setting is set to MEWTOCOL-COM
- ReadTimeout SignedInteger — Request timeout, msec
- Transport SignedInteger — Transport Type Options: 0
- KeepAlive SignedInteger — TCP Keep-Alive (s) (0 to disable)
- RetryCount SignedInteger — Retry request count
- PauseBetweenRetries SignedInteger — Pause between retries, msec
- description String — Optional free-text notes about this device, such as its physical location or purpose.
Request Body
GraphQL Query
mutation CreateDevice($input: CreateDeviceRequest!) {
CreateDevice(input: $input) {
ID
Name
DriverID
Description
}
}
Variables
{
"input": {
"Name": "My Panasonic FP Ethernet Device",
"Description": "",
"DriverID": "DE5ABFD3-D0C0-473C-B04C-B77C91DCFCF2",
"AliasTopics": false,
"Debug": false,
"MetaData": [],
"StoppedState": false,
"StatusRegister": null,
"Properties": [
{
"Key": "networkPort",
"Value": "8500"
},
{
"Key": "stationId",
"Value": "1"
},
{
"Key": "binaryHeaderEnabled",
"Value": "false"
},
{
"Key": "ReadTimeout",
"Value": "2000"
},
{
"Key": "Transport",
"Value": "0"
},
{
"Key": "networkAddress",
"Value": "192.168.1.100"
},
{
"Key": "KeepAlive",
"Value": "60"
},
{
"Key": "RetryCount",
"Value": "0"
},
{
"Key": "PauseBetweenRetries",
"Value": "0"
},
{
"Key": "name",
"Value": "panasonic-fp-ethernet_device"
},
{
"Key": "description",
"Value": ""
}
]
}
}
Response
Status: 200 OK
{
"data": {
"CreateDevice": {
"ID": "<generated-uuid>",
"Name": "My Panasonic FP Ethernet Device",
"DriverID": "DE5ABFD3-D0C0-473C-B04C-B77C91DCFCF2",
"Description": ""
}
}
}
Create Device - Panasonic FP7 Ethernet
POST {{edgeUrl}}/devicehub/v2
Panasonic FP7 Ethernet Driver
| Prerequisites | FP7 CPU configured for MEWTOCOL7-COM on Connection 01 (port 32769) |
| Required fields | Network address Network Port Station ID |
| Browse devices supported | No |
| Browse tags supported | No |
Driver ID: 037307F4-6CD3-4744-9AF9-EFF3621C5A2C Group: Panasonic
Required properties:
- networkAddress String — IP Address
- networkPort SignedInteger — Port
- name String — A unique, user-defined name for this device. Used to identify the device throughout the edge gateway, including in message broker topics and logs.
Optional properties:
- stationId SignedInteger — Station ID (1..999; 999 = EEE wildcard)
- KeepAlive SignedInteger — TCP Keep-Alive (s) (0 to disable)
- ReadTimeout SignedInteger — Request timeout, msec
- RetryCount SignedInteger — Retry request count
- PauseBetweenRetries SignedInteger — Pause between retries, msec
- Transport SignedInteger — Transport Type Options: 0
- description String — Optional free-text notes about this device, such as its physical location or purpose.
Request Body
GraphQL Query
mutation CreateDevice($input: CreateDeviceRequest!) {
CreateDevice(input: $input) {
ID
Name
DriverID
Description
}
}
Variables
{
"input": {
"Name": "My Panasonic FP7 Ethernet Device",
"Description": "",
"DriverID": "037307F4-6CD3-4744-9AF9-EFF3621C5A2C",
"AliasTopics": false,
"Debug": false,
"MetaData": [],
"StoppedState": false,
"StatusRegister": null,
"Properties": [
{
"Key": "stationId",
"Value": "1"
},
{
"Key": "KeepAlive",
"Value": "60"
},
{
"Key": "ReadTimeout",
"Value": "2000"
},
{
"Key": "RetryCount",
"Value": "0"
},
{
"Key": "PauseBetweenRetries",
"Value": "0"
},
{
"Key": "Transport",
"Value": "0"
},
{
"Key": "networkAddress",
"Value": "192.168.1.100"
},
{
"Key": "networkPort",
"Value": "32769"
},
{
"Key": "name",
"Value": "panasonic-fp7-ethernet_device"
},
{
"Key": "description",
"Value": ""
}
]
}
}
Response
Status: 200 OK
{
"data": {
"CreateDevice": {
"ID": "<generated-uuid>",
"Name": "My Panasonic FP7 Ethernet Device",
"DriverID": "037307F4-6CD3-4744-9AF9-EFF3621C5A2C",
"Description": ""
}
}
}
Create Device - Parker ACR9000 Ethernet
POST {{edgeUrl}}/devicehub/v2
Parker ACR9000 Ethernet Driver
| Prerequisites | None |
| Required fields | Network address Network Port |
The Parker ACR9000 motion controller driver speaks the ACR interactive terminal command interpreter (AcroBASIC dialect) over raw TCP (default port 5006).
Driver ID: EF9C5BAA-E190-43DC-948D-94FA1B9BA1F4 Group: Parker
Required properties:
- networkAddress String — IP Address
- networkPort SignedInteger — Port
- name String — A unique, user-defined name for this device. Used to identify the device throughout the edge gateway, including in message broker topics and logs.
Optional properties:
- KeepAlive SignedInteger — TCP Keep-Alive (s) (0 to disable)
- ReadTimeout SignedInteger — Request timeout, msec
- RetryCount SignedInteger — Retry request count
- PauseBetweenRetries SignedInteger — Pause between retries, msec
- Transport SignedInteger — Transport Type Options: 0
- description String — Optional free-text notes about this device, such as its physical location or purpose.
Request Body
GraphQL Query
mutation CreateDevice($input: CreateDeviceRequest!) {
CreateDevice(input: $input) {
ID
Name
DriverID
Description
}
}
Variables
{
"input": {
"Name": "My Parker ACR9000 Ethernet Device",
"Description": "",
"DriverID": "EF9C5BAA-E190-43DC-948D-94FA1B9BA1F4",
"AliasTopics": false,
"Debug": false,
"MetaData": [],
"StoppedState": false,
"StatusRegister": null,
"Properties": [
{
"Key": "networkAddress",
"Value": "192.168.1.100"
},
{
"Key": "networkPort",
"Value": "5006"
},
{
"Key": "KeepAlive",
"Value": "60"
},
{
"Key": "ReadTimeout",
"Value": "3000"
},
{
"Key": "RetryCount",
"Value": "0"
},
{
"Key": "PauseBetweenRetries",
"Value": "0"
},
{
"Key": "Transport",
"Value": "0"
},
{
"Key": "name",
"Value": "parker-acr9000_device"
},
{
"Key": "description",
"Value": ""
}
]
}
}
Response
Status: 200 OK
{
"data": {
"CreateDevice": {
"ID": "<generated-uuid>",
"Name": "My Parker ACR9000 Ethernet Device",
"DriverID": "EF9C5BAA-E190-43DC-948D-94FA1B9BA1F4",
"Description": ""
}
}
}
Create Device - Saia S-Bus Ethernet
POST {{edgeUrl}}/devicehub/v2
Saia S-Bus Ethernet Driver
| Required fields: | > Connection Settings (UDP) |
| Browse devices supported: | No |
Saia/SBC Ether-S-Bus driver over UDP (default port 5050).
Driver ID: 21D9355B-E41C-41BE-A29A-7B8ED2D56520 Group: SAIA
Required properties:
- networkAddress String — IP Address
- networkPort SignedInteger — Port
- name String — A unique, user-defined name for this device. Used to identify the device throughout the edge gateway, including in message broker topics and logs.
Optional properties:
- RetryCount SignedInteger — Retry request count
- PauseBetweenRetries SignedInteger — Pause between retries, msec
- StationID SignedInteger — Station Id/Slot Number
- UseFFPFloat Boolean — Decode/encode floats as Saia Motorola FFP instead of IEEE754 (legacy PCD firmware)
- Transport SignedInteger — Transport Type Options: 0
- ReadTimeout SignedInteger — Request timeout, msec
- description String — Optional free-text notes about this device, such as its physical location or purpose.
Request Body
GraphQL Query
mutation CreateDevice($input: CreateDeviceRequest!) {
CreateDevice(input: $input) {
ID
Name
DriverID
Description
}
}
Variables
{
"input": {
"Name": "My Saia S-Bus Ethernet Device",
"Description": "",
"DriverID": "21D9355B-E41C-41BE-A29A-7B8ED2D56520",
"AliasTopics": false,
"Debug": false,
"MetaData": [],
"StoppedState": false,
"StatusRegister": null,
"Properties": [
{
"Key": "RetryCount",
"Value": "0"
},
{
"Key": "PauseBetweenRetries",
"Value": "0"
},
{
"Key": "StationID",
"Value": "0"
},
{
"Key": "UseFFPFloat",
"Value": "false"
},
{
"Key": "Transport",
"Value": "0"
},
{
"Key": "networkAddress",
"Value": "192.168.1.100"
},
{
"Key": "networkPort",
"Value": "5050"
},
{
"Key": "ReadTimeout",
"Value": "2000"
},
{
"Key": "name",
"Value": "saia-sbus-ethernet_device"
},
{
"Key": "description",
"Value": ""
}
]
}
}
Response
Status: 200 OK
{
"data": {
"CreateDevice": {
"ID": "<generated-uuid>",
"Name": "My Saia S-Bus Ethernet Device",
"DriverID": "21D9355B-E41C-41BE-A29A-7B8ED2D56520",
"Description": ""
}
}
}
Create Device - Siemens Logo Ethernet
POST {{edgeUrl}}/devicehub/v2
Siemens Logo Ethernet
| Prerequisites | None |
| Required fields | Network address Network Port Local & Remote TSAP (hex) |
| Browse devices supported | No |
| Browse tags supported | No |
| Supported device models | Siemens LOGO! 0BA7, 0BA8, 8.x |
Driver ID: D5DAA1C4-7883-472F-9257-3D9A46F38A80 Group: Siemens
Required properties:
- networkAddress String — IP Address of LOGO! PLC
- networkPort SignedInteger — TCP/IP port of device
- localTSAP String
- remoteTSAP String
- name String — A unique, user-defined name for this device. Used to identify the device throughout the edge gateway, including in message broker topics and logs.
Optional properties:
- readTimeout SignedInteger
- description String — Optional free-text notes about this device, such as its physical location or purpose.
Request Body
GraphQL Query
mutation CreateDevice($input: CreateDeviceRequest!) {
CreateDevice(input: $input) {
ID
Name
DriverID
Description
}
}
Variables
{
"input": {
"Name": "My Siemens Logo Ethernet Device",
"Description": "",
"DriverID": "D5DAA1C4-7883-472F-9257-3D9A46F38A80",
"AliasTopics": false,
"Debug": false,
"MetaData": [],
"StoppedState": false,
"StatusRegister": null,
"Properties": [
{
"Key": "networkAddress",
"Value": "192.168.1.100"
},
{
"Key": "networkPort",
"Value": "102"
},
{
"Key": "readTimeout",
"Value": "5000"
},
{
"Key": "localTSAP",
"Value": "1000"
},
{
"Key": "remoteTSAP",
"Value": "0200"
},
{
"Key": "name",
"Value": "siemens-logo_device"
},
{
"Key": "description",
"Value": ""
}
]
}
}
Response
Status: 200 OK
{
"data": {
"CreateDevice": {
"ID": "<generated-uuid>",
"Name": "My Siemens Logo Ethernet Device",
"DriverID": "D5DAA1C4-7883-472F-9257-3D9A46F38A80",
"Description": ""
}
}
}
Create Device - CODESYS V2 Ethernet Absolute
POST {{edgeUrl}}/devicehub/v2
CODESYS V2 Ethernet Absolute
CODESYS V2 (3S runtime) direct memory-area read/write over TCP (default port 1200), absolute/block addressing of %I / %Q / %M as word/dword/bit.
- Browse devices: No
- Browse tags: No
Register classes: I / Q / M (uint16, int16, uint32, int32) and I_bit / Q_bit / M_bit (bit). Address is the word index for word/int classes and word*100+bit for bit classes.
Driver ID: 5C1B86CC-A54C-4775-85C5-7A7163A8D60F Group: CodeSys Devices
Required properties:
- networkAddress String — IP Address
- networkPort SignedInteger — Port
- name String — A unique, user-defined name for this device. Used to identify the device throughout the edge gateway, including in message broker topics and logs.
Optional properties:
- RetryCount SignedInteger — Retry request count
- PauseBetweenRetries SignedInteger — Pause between retries, msec
- Transport SignedInteger — Transport Type Options: 0
- KeepAlive SignedInteger — TCP Keep-Alive (s) (0 to disable)
- ReadTimeout SignedInteger — Request timeout, msec
- description String — Optional free-text notes about this device, such as its physical location or purpose.
Request Body
GraphQL Query
mutation CreateDevice($input: CreateDeviceRequest!) {
CreateDevice(input: $input) {
ID
Name
DriverID
Description
}
}
Variables
{
"input": {
"Name": "My CODESYS V2 Ethernet Absolute Device",
"Description": "",
"DriverID": "5C1B86CC-A54C-4775-85C5-7A7163A8D60F",
"AliasTopics": false,
"Debug": false,
"MetaData": [],
"StoppedState": false,
"StatusRegister": null,
"Properties": [
{
"Key": "RetryCount",
"Value": "0"
},
{
"Key": "PauseBetweenRetries",
"Value": "0"
},
{
"Key": "Transport",
"Value": "0"
},
{
"Key": "networkAddress",
"Value": "192.168.1.100"
},
{
"Key": "networkPort",
"Value": "1200"
},
{
"Key": "KeepAlive",
"Value": "5"
},
{
"Key": "ReadTimeout",
"Value": "2000"
},
{
"Key": "name",
"Value": "codesys-absolute_device"
},
{
"Key": "description",
"Value": ""
}
]
}
}
Response
Status: 200 OK
{
"data": {
"CreateDevice": {
"ID": "<generated-uuid>",
"Name": "My CODESYS V2 Ethernet Absolute Device",
"DriverID": "5C1B86CC-A54C-4775-85C5-7A7163A8D60F",
"Description": ""
}
}
}
Create Device - CODESYS V2 Ethernet Symbolic
POST {{edgeUrl}}/devicehub/v2
CODESYS V2 Ethernet Symbolic
Devices support CODESYS V2.3 symbolic addressing (3S gateway "level 7" protocol).
- Transport: TCP, default port 1201 (fallback 1200).
- Addressing: symbolic — configured tag Address is a symbol-name string resolved against a per-device symbol table (.SYM/.SDB, offline file or online download).
- Browse tags: Yes. Browse devices: No.
- Three wire dialects selected by the
protocolsetting: 0=L2 direct, 1=L2 Route (default), 2=L4.
Driver ID: AECF1D4C-3AFB-4A1F-B0B4-9D03B9487FF3 Group: CodeSys Devices
Required properties:
- networkPort SignedInteger — Port
- networkAddress String — IP Address
- name String — A unique, user-defined name for this device. Used to identify the device throughout the edge gateway, including in message broker topics and logs.
Optional properties:
- symbolPath String — Local symbol file path (used only when addressingMode=Offline)
- addressingMode SignedInteger — Symbol source: Offline = parse local symbol file, Online = download SDB from PLC Options: 0, 1
- Transport SignedInteger — Transport Type Options: 0
- ReadTimeout SignedInteger — Request timeout, msec
- byteOrder SignedInteger — Level 7 Motorola byte order (High = big-endian) Options: 0, 1
- protocol SignedInteger — Wire dialect Options: 0, 1, 2
- PauseBetweenRetries SignedInteger — Pause between retries, msec
- KeepAlive SignedInteger — TCP Keep-Alive (s) (0 to disable)
- RetryCount SignedInteger — Retry request count
- description String — Optional free-text notes about this device, such as its physical location or purpose.
Request Body
GraphQL Query
mutation CreateDevice($input: CreateDeviceRequest!) {
CreateDevice(input: $input) {
ID
Name
DriverID
Description
}
}
Variables
{
"input": {
"Name": "My CODESYS V2 Ethernet Symbolic Device",
"Description": "",
"DriverID": "AECF1D4C-3AFB-4A1F-B0B4-9D03B9487FF3",
"AliasTopics": false,
"Debug": false,
"MetaData": [],
"StoppedState": false,
"StatusRegister": null,
"Properties": [
{
"Key": "symbolPath",
"Value": "/example/path"
},
{
"Key": "addressingMode",
"Value": "0"
},
{
"Key": "Transport",
"Value": "0"
},
{
"Key": "networkPort",
"Value": "1201"
},
{
"Key": "ReadTimeout",
"Value": "2000"
},
{
"Key": "byteOrder",
"Value": "1"
},
{
"Key": "protocol",
"Value": "1"
},
{
"Key": "PauseBetweenRetries",
"Value": "0"
},
{
"Key": "networkAddress",
"Value": "192.168.1.100"
},
{
"Key": "KeepAlive",
"Value": "5"
},
{
"Key": "RetryCount",
"Value": "0"
},
{
"Key": "name",
"Value": "codesys-symbolic_device"
},
{
"Key": "description",
"Value": ""
}
]
}
}
Response
Status: 200 OK
{
"data": {
"CreateDevice": {
"ID": "<generated-uuid>",
"Name": "My CODESYS V2 Ethernet Symbolic Device",
"DriverID": "AECF1D4C-3AFB-4A1F-B0B4-9D03B9487FF3",
"Description": ""
}
}
}
Create Device - Fuji NB Serial
POST {{edgeUrl}}/devicehub/v2
Fuji FLEX-PC NB Serial Driver
| Prerequisites: | RS-232 connection to the CPU loader port |
| Required fields: | > Path to Device |
| > Baud Rate (default 19200, 8 data bits, 1 stop bit, Odd parity) | |
| Browse devices supported: | No |
| Browse tags supported: | No |
| Supported device models: | Fuji Electric FLEX-PC N series (NB0/NB1/NB2/NB3/NJ/NS) |
| Miscellaneous: | > Byte Order: Little-Endian |
| > Addresses are entered in hexadecimal, base 0 | |
| > Register Grouping Size: 64 bytes (configurable) |
Driver ID: 622AE68B-DD57-4B5D-9D92-685C254849F3 Group: Fuji Devices
Required properties:
- deviceFile String — The serial port path used to communicate with the device (/dev/ttyS1, /dev/ttyUSB0, …). Must match a port available on the gateway host.
- name String — A unique, user-defined name for this device. Used to identify the device throughout the edge gateway, including in message broker topics and logs.
Optional properties:
- stopBits SignedInteger — The number of stop bits used to signal the end of a character (typically 1 or 2). Must match the device's serial configuration. Options: 0, 1, 2
- PauseBetweenRetries SignedInteger — Pause between retries, msec
- parity SignedInteger — The error-checking method used for serial communication (None, Even, or Odd). Must match the device's configured parity setting. Options: 0, 1, 2
- MaxRequestSize SignedInteger — Maximum block size retrieved per request (# bytes)
- Transport SignedInteger — Transport Type Options: 0
- baudRate SignedInteger — The data transmission speed, in bits per second, used for serial communication. Must match the baud rate configured on the device. Options: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10
- dataBits SignedInteger — The number of data bits in each transmitted character (typically 7 or 8). Must match the device's serial configuration. Options: 0, 1, 2, 3
- ReadTimeout SignedInteger — Request timeout, msec
- RetryCount SignedInteger — Retry request count
- description String — Optional free-text notes about this device, such as its physical location or purpose.
Request Body
GraphQL Query
mutation CreateDevice($input: CreateDeviceRequest!) {
CreateDevice(input: $input) {
ID
Name
DriverID
Description
}
}
Variables
{
"input": {
"Name": "My Fuji NB Serial Device",
"Description": "",
"DriverID": "622AE68B-DD57-4B5D-9D92-685C254849F3",
"AliasTopics": false,
"Debug": false,
"MetaData": [],
"StoppedState": false,
"StatusRegister": null,
"Properties": [
{
"Key": "stopBits",
"Value": "0"
},
{
"Key": "PauseBetweenRetries",
"Value": "0"
},
{
"Key": "deviceFile",
"Value": "/dev/ttyUSB0"
},
{
"Key": "parity",
"Value": "1"
},
{
"Key": "MaxRequestSize",
"Value": "64"
},
{
"Key": "Transport",
"Value": "0"
},
{
"Key": "baudRate",
"Value": "4"
},
{
"Key": "dataBits",
"Value": "3"
},
{
"Key": "ReadTimeout",
"Value": "2000"
},
{
"Key": "RetryCount",
"Value": "0"
},
{
"Key": "name",
"Value": "fuji-nb-serial_device"
},
{
"Key": "description",
"Value": ""
}
]
}
}
Response
Status: 200 OK
{
"data": {
"CreateDevice": {
"ID": "<generated-uuid>",
"Name": "My Fuji NB Serial Device",
"DriverID": "622AE68B-DD57-4B5D-9D92-685C254849F3",
"Description": ""
}
}
}
Create Device - GE Fanuc SNPX Serial
POST {{edgeUrl}}/devicehub/v2
GE Fanuc SNPX
| Prerequisites | None |
| Required fields | Name Baud Rate Device File Data Bits Stop Bits Parity Path |
| Browse devices supported | No |
| Browse tags supported | Yes, with snf file |
| Supported device models | Series GE Micro Series 90-30 311/313, 331/341, 350,360 Series 90-70 731/732, 771/772, 781/782 GE-OPEN Wide range model support |
| Miscellaneous |
Driver ID: 550E8400-E29B-41D4-A716-446655440000 Group: GE Fanuc
Required properties:
- stationId SignedInteger — PLC station number
- deviceFile String — The serial port path used to communicate with the device (/dev/ttyS1, /dev/ttyUSB0, …). Must match a port available on the gateway host.
- name String — A unique, user-defined name for this device. Used to identify the device throughout the edge gateway, including in message broker topics and logs.
Optional properties:
- parity SignedInteger — The error-checking method used for serial communication (None, Even, or Odd). Must match the device's configured parity setting. Options: 0, 1, 2
- stopBits SignedInteger — The number of stop bits used to signal the end of a character (typically 1 or 2). Must match the device's serial configuration. Options: 0, 1, 2
- readTimeout SignedInteger
- globalVariablesCSV String — FTP path to .SNF file
- baudRate SignedInteger — The data transmission speed, in bits per second, used for serial communication. Must match the baud rate configured on the device. Options: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10
- dataBits SignedInteger — The number of data bits in each transmitted character (typically 7 or 8). Must match the device's serial configuration. Options: 0, 1, 2, 3
- description String — Optional free-text notes about this device, such as its physical location or purpose.
Request Body
GraphQL Query
mutation CreateDevice($input: CreateDeviceRequest!) {
CreateDevice(input: $input) {
ID
Name
DriverID
Description
}
}
Variables
{
"input": {
"Name": "My GE Fanuc SNPX Serial Device",
"Description": "",
"DriverID": "550E8400-E29B-41D4-A716-446655440000",
"AliasTopics": false,
"Debug": false,
"MetaData": [],
"StoppedState": false,
"StatusRegister": null,
"Properties": [
{
"Key": "parity",
"Value": "1"
},
{
"Key": "stopBits",
"Value": "0"
},
{
"Key": "readTimeout",
"Value": "2000"
},
{
"Key": "stationId",
"Value": "0"
},
{
"Key": "globalVariablesCSV",
"Value": ""
},
{
"Key": "deviceFile",
"Value": "/dev/ttyUSB0"
},
{
"Key": "baudRate",
"Value": "4"
},
{
"Key": "dataBits",
"Value": "3"
},
{
"Key": "name",
"Value": "ge-snpx-serial_device"
},
{
"Key": "description",
"Value": ""
}
]
}
}
Response
Status: 200 OK
{
"data": {
"CreateDevice": {
"ID": "<generated-uuid>",
"Name": "My GE Fanuc SNPX Serial Device",
"DriverID": "550E8400-E29B-41D4-A716-446655440000",
"Description": ""
}
}
}
Create Device - IEC60870-5-102 Ethernet
POST {{edgeUrl}}/devicehub/v2
IEC60870-5-102 Ethernet
IEC 60870-5-102 (telecontrol companion standard for electricity metering / integrated totals) over an unbalanced FT1.2 link layer, tunneled raw over TCP (default port 2404). Read-only: monitors single-point status (M_SP), integrated totals (M_IT), and command-initiated stream reads (C_SP / C_CI / C_RD / C_TI).
Addressing: address is a plain 1-octet value (0-255). Every 102 ASDU, both directions, carries a record-address octet (RAD) right after the station address (asduAddrSize sizes the station field only). Monitor classes (M_SP_TA_2, M_IT_T2): address = information-object address (IOA); the per-register recordAddress setting (0-255, default 0) selects the ASDU record (RAD). Plain-address command classes (C_CI_NA/NE/NI/NN_2, C_SP): address = RAD. Counter-interrogation range classes (C_CI_NB/NF/NK/NO/NR/NS/NT/NU_2): address = RAD; startAddress / endAddress settings (0-255) bound the interrogated integrated-total range. Time-ranged commands additionally take startDate / endDate (YYYY/MM/DD). Gen1 composite decimal addresses (DDDddd, DDDSSSEEE) are decomposed into these fields on migration.
Driver ID: A7A563A0-A681-439E-ADA2-96259A5C8C6F Group: IEC
Required properties:
- networkAddress String — IP Address
- networkPort SignedInteger — Port
- name String — A unique, user-defined name for this device. Used to identify the device throughout the edge gateway, including in message broker topics and logs.
Optional properties:
- Transport SignedInteger — Transport Type Options: 0
- KeepAlive SignedInteger — TCP Keep-Alive (s) (0 to disable)
- RetryCount SignedInteger — Retry request count
- PauseBetweenRetries SignedInteger — Pause between retries, msec
- asduAddress SignedInteger — Common ASDU address (CA) of the metering device
- ReadTimeout SignedInteger — Request timeout, msec
- asduAddrSize SignedInteger — Common-address (CA) octet count
- linkAddress SignedInteger — FT1.2 link address
- description String — Optional free-text notes about this device, such as its physical location or purpose.
Request Body
GraphQL Query
mutation CreateDevice($input: CreateDeviceRequest!) {
CreateDevice(input: $input) {
ID
Name
DriverID
Description
}
}
Variables
{
"input": {
"Name": "My IEC60870-5-102 Ethernet Device",
"Description": "",
"DriverID": "A7A563A0-A681-439E-ADA2-96259A5C8C6F",
"AliasTopics": false,
"Debug": false,
"MetaData": [],
"StoppedState": false,
"StatusRegister": null,
"Properties": [
{
"Key": "Transport",
"Value": "0"
},
{
"Key": "networkAddress",
"Value": "192.168.1.100"
},
{
"Key": "networkPort",
"Value": "2404"
},
{
"Key": "KeepAlive",
"Value": "5"
},
{
"Key": "RetryCount",
"Value": "0"
},
{
"Key": "PauseBetweenRetries",
"Value": "0"
},
{
"Key": "asduAddress",
"Value": "3"
},
{
"Key": "ReadTimeout",
"Value": "2000"
},
{
"Key": "asduAddrSize",
"Value": "2"
},
{
"Key": "linkAddress",
"Value": "3"
},
{
"Key": "name",
"Value": "iec102-ethernet_device"
},
{
"Key": "description",
"Value": ""
}
]
}
}
Response
Status: 200 OK
{
"data": {
"CreateDevice": {
"ID": "<generated-uuid>",
"Name": "My IEC60870-5-102 Ethernet Device",
"DriverID": "A7A563A0-A681-439E-ADA2-96259A5C8C6F",
"Description": ""
}
}
}
Create Device - Keyence Serial
POST {{edgeUrl}}/devicehub/v2
Keyence Serial Driver
| Required fields: | > Connection Settings (Serial) |
| Browse devices supported: | No |
| Browse tags supported: | No |
| Supported device models: | Keyence KV-series PLCs (Visual KV, KV-700/1000/3000/5000/5500/7000, KV Nano) over the binary CPU programmer port, RS-232 |
| Limitations: | > Point-to-point line, no station ID. Default 115200 8E1; older Visual KV units may need 9600. Integer value types only. Writes carry one register per frame; bit writes are read-modify-write of the whole 16-bit word. T_Bit, C_Bit, CTC_Bit and CTC are read-only. Z11/Z12 are system-reserved on most models: writable here, use with care. |
Driver ID: 8CAD2D46-7B7C-40D2-80DC-6B767C9090D9 Group: Keyence
Required properties:
- deviceFile String — The serial port path used to communicate with the device (/dev/ttyS1, /dev/ttyUSB0, …). Must match a port available on the gateway host.
- name String — A unique, user-defined name for this device. Used to identify the device throughout the edge gateway, including in message broker topics and logs.
Optional properties:
- PauseBetweenRetries SignedInteger — Pause between retries, msec
- dataBits SignedInteger — The number of data bits in each transmitted character (typically 7 or 8). Must match the device's serial configuration. Options: 0, 1, 2, 3
- ReadTimeout SignedInteger — Request timeout, msec
- RetryCount SignedInteger — Retry request count
- Transport SignedInteger — Transport Type Options: 0
- parity SignedInteger — The error-checking method used for serial communication (None, Even, or Odd). Must match the device's configured parity setting. Options: 0, 1, 2
- stopBits SignedInteger — The number of stop bits used to signal the end of a character (typically 1 or 2). Must match the device's serial configuration. Options: 0, 1, 2
- baudRate SignedInteger — The data transmission speed, in bits per second, used for serial communication. Must match the baud rate configured on the device. Options: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10
- description String — Optional free-text notes about this device, such as its physical location or purpose.
Request Body
GraphQL Query
mutation CreateDevice($input: CreateDeviceRequest!) {
CreateDevice(input: $input) {
ID
Name
DriverID
Description
}
}
Variables
{
"input": {
"Name": "My Keyence Serial Device",
"Description": "",
"DriverID": "8CAD2D46-7B7C-40D2-80DC-6B767C9090D9",
"AliasTopics": false,
"Debug": false,
"MetaData": [],
"StoppedState": false,
"StatusRegister": null,
"Properties": [
{
"Key": "PauseBetweenRetries",
"Value": "0"
},
{
"Key": "dataBits",
"Value": "3"
},
{
"Key": "ReadTimeout",
"Value": "2000"
},
{
"Key": "RetryCount",
"Value": "0"
},
{
"Key": "Transport",
"Value": "0"
},
{
"Key": "parity",
"Value": "2"
},
{
"Key": "stopBits",
"Value": "0"
},
{
"Key": "deviceFile",
"Value": "/dev/ttyS0"
},
{
"Key": "baudRate",
"Value": "7"
},
{
"Key": "name",
"Value": "keyence-serial_device"
},
{
"Key": "description",
"Value": ""
}
]
}
}
Response
Status: 200 OK
{
"data": {
"CreateDevice": {
"ID": "<generated-uuid>",
"Name": "My Keyence Serial Device",
"DriverID": "8CAD2D46-7B7C-40D2-80DC-6B767C9090D9",
"Description": ""
}
}
}
Create Device - Koyo Direct Serial
POST {{edgeUrl}}/devicehub/v2
Koyo Direct Serial Driver
| Required fields: | > Connection Settings (Serial) |
| Browse devices supported: | No |
| Browse tags supported: | No |
| Supported device models: | Koyo DirectLogic PLCs over K-sequence (DirectNET) serial |
| Limitations: | > Writes are not atomic beyond one 16-bit word: the K-sequence write frame carries a single word, so a 32-bit or multi-count register is written as one session per word. A concurrent reader can observe a partially updated value. |
Driver ID: AD5EE8C0-BF9A-45B3-8CDA-F5CE609CB05A Group: Koyo
Required properties:
- stationId SignedInteger — DirectNET station ID
- deviceFile String — The serial port path used to communicate with the device (/dev/ttyS1, /dev/ttyUSB0, …). Must match a port available on the gateway host.
- name String — A unique, user-defined name for this device. Used to identify the device throughout the edge gateway, including in message broker topics and logs.
Optional properties:
- Transport SignedInteger — Transport Type Options: 0
- parity SignedInteger — The error-checking method used for serial communication (None, Even, or Odd). Must match the device's configured parity setting. Options: 0, 1, 2
- baudRate SignedInteger — The data transmission speed, in bits per second, used for serial communication. Must match the baud rate configured on the device. Options: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10
- stopBits SignedInteger — The number of stop bits used to signal the end of a character (typically 1 or 2). Must match the device's serial configuration. Options: 0, 1, 2
- dataBits SignedInteger — The number of data bits in each transmitted character (typically 7 or 8). Must match the device's serial configuration. Options: 0, 1, 2, 3
- ReadTimeout SignedInteger — Request timeout, msec
- PauseBetweenRetries SignedInteger — Pause between retries, msec
- RetryCount SignedInteger — Retry request count
- description String — Optional free-text notes about this device, such as its physical location or purpose.
Request Body
GraphQL Query
mutation CreateDevice($input: CreateDeviceRequest!) {
CreateDevice(input: $input) {
ID
Name
DriverID
Description
}
}
Variables
{
"input": {
"Name": "My Koyo Direct Serial Device",
"Description": "",
"DriverID": "AD5EE8C0-BF9A-45B3-8CDA-F5CE609CB05A",
"AliasTopics": false,
"Debug": false,
"MetaData": [],
"StoppedState": false,
"StatusRegister": null,
"Properties": [
{
"Key": "Transport",
"Value": "0"
},
{
"Key": "parity",
"Value": "1"
},
{
"Key": "baudRate",
"Value": "3"
},
{
"Key": "stopBits",
"Value": "0"
},
{
"Key": "stationId",
"Value": "1"
},
{
"Key": "deviceFile",
"Value": "/dev/ttyUSB0"
},
{
"Key": "dataBits",
"Value": "3"
},
{
"Key": "ReadTimeout",
"Value": "2000"
},
{
"Key": "PauseBetweenRetries",
"Value": "0"
},
{
"Key": "RetryCount",
"Value": "0"
},
{
"Key": "name",
"Value": "koyo-direct_device"
},
{
"Key": "description",
"Value": ""
}
]
}
}
Response
Status: 200 OK
{
"data": {
"CreateDevice": {
"ID": "<generated-uuid>",
"Name": "My Koyo Direct Serial Device",
"DriverID": "AD5EE8C0-BF9A-45B3-8CDA-F5CE609CB05A",
"Description": ""
}
}
}
Create Device - Mitsubishi F Ethernet
POST {{edgeUrl}}/devicehub/v2
Mitsubishi F Ethernet Driver
| Required fields: | > Connection Settings (TCP), Encoding (binary/ascii) |
| Browse devices supported: | No |
| Browse tags supported: | No |
| Supported device models: | Mitsubishi FX3G / FX3GE (1E-frame MC over TCP) |
| Protocol: | Mitsubishi 1E frame / A-compatible format-1 |
Driver ID: B78642A9-2107-40BA-9B59-11CDB8D34814 Group: Mitsubishi
Required properties:
- networkPort SignedInteger — Port
- encoding SignedInteger — Wire encoding Options: 0, 1
- networkAddress String — IP Address
- name String — A unique, user-defined name for this device. Used to identify the device throughout the edge gateway, including in message broker topics and logs.
Optional properties:
- KeepAlive SignedInteger — TCP Keep-Alive (s) (0 to disable)
- ReadTimeout SignedInteger — Request timeout, msec
- RetryCount SignedInteger — Retry request count
- PauseBetweenRetries SignedInteger — Pause between retries, msec
- Transport SignedInteger — Transport Type Options: 0
- MaxRequestSize SignedInteger — Maximum block size retrieved per request (# bytes)
- description String — Optional free-text notes about this device, such as its physical location or purpose.
Request Body
GraphQL Query
mutation CreateDevice($input: CreateDeviceRequest!) {
CreateDevice(input: $input) {
ID
Name
DriverID
Description
}
}
Variables
{
"input": {
"Name": "My Mitsubishi F Ethernet Device",
"Description": "",
"DriverID": "B78642A9-2107-40BA-9B59-11CDB8D34814",
"AliasTopics": false,
"Debug": false,
"MetaData": [],
"StoppedState": false,
"StatusRegister": null,
"Properties": [
{
"Key": "networkPort",
"Value": "5001"
},
{
"Key": "KeepAlive",
"Value": "5"
},
{
"Key": "ReadTimeout",
"Value": "2000"
},
{
"Key": "RetryCount",
"Value": "0"
},
{
"Key": "PauseBetweenRetries",
"Value": "0"
},
{
"Key": "Transport",
"Value": "0"
},
{
"Key": "encoding",
"Value": "0"
},
{
"Key": "MaxRequestSize",
"Value": "512"
},
{
"Key": "networkAddress",
"Value": "192.168.1.100"
},
{
"Key": "name",
"Value": "mitsubishi-fx-ethernet_device"
},
{
"Key": "description",
"Value": ""
}
]
}
}
Response
Status: 200 OK
{
"data": {
"CreateDevice": {
"ID": "<generated-uuid>",
"Name": "My Mitsubishi F Ethernet Device",
"DriverID": "B78642A9-2107-40BA-9B59-11CDB8D34814",
"Description": ""
}
}
}
Create Device - SEW Drive Ethernet
POST {{edgeUrl}}/devicehub/v2
SEW-EURODRIVE Ethernet
| Prerequisites | None |
| Required fields | Network address Port |
| Browse devices supported | No. Use DeviceHub > Asset Discovery |
| Browse tags supported | No |
| Miscellaneous | Use this driver to read CIP objects that are addressable by Class, Instance, and Attribute |
Driver ID: A5B596FD-730C-4C86-B671-2E6A5DC31AE3 Group: SEW-EURODRIVE
Required properties:
- subchannel1 UnsignedInteger
- networkAddress String — The IP address of the device on the network.
- networkPort SignedInteger — The TCP or UDP port used to communicate with the device, depending on the protocol. Defaults to the standard port for the selected protocol but must match the port configured on the device.
- subaddress1 UnsignedInteger
- name String — A unique, user-defined name for this device. Used to identify the device throughout the edge gateway, including in message broker topics and logs.
Optional properties:
- serviceType UnsignedInteger Options: 0, 1
- sw1PollInterval0 UnsignedInteger — How often Status Word 1 is sampled when the drive's Output Stage is Disabled. Other tags are read on their own polling intervals.
- sw1PollInterval1 UnsignedInteger — How often Status Word 1 is sampled when the drive's Output Stage is Enabled.
- readTimeout SignedInteger — Read Timeout (ms)
- description String — Optional free-text notes about this device, such as its physical location or purpose.
Request Body
GraphQL Query
mutation CreateDevice($input: CreateDeviceRequest!) {
CreateDevice(input: $input) {
ID
Name
DriverID
Description
}
}
Variables
{
"input": {
"Name": "My SEW Drive Ethernet Device",
"Description": "",
"DriverID": "A5B596FD-730C-4C86-B671-2E6A5DC31AE3",
"AliasTopics": false,
"Debug": false,
"MetaData": [],
"StoppedState": false,
"StatusRegister": null,
"Properties": [
{
"Key": "subchannel1",
"Value": "0"
},
{
"Key": "serviceType",
"Value": "1"
},
{
"Key": "sw1PollInterval0",
"Value": "50"
},
{
"Key": "sw1PollInterval1",
"Value": "500"
},
{
"Key": "networkAddress",
"Value": "192.168.1.100"
},
{
"Key": "networkPort",
"Value": "44818"
},
{
"Key": "readTimeout",
"Value": "3000"
},
{
"Key": "subaddress1",
"Value": "0"
},
{
"Key": "name",
"Value": "sew-drive-ethernet_device"
},
{
"Key": "description",
"Value": ""
}
]
}
}
Response
Status: 200 OK
{
"data": {
"CreateDevice": {
"ID": "<generated-uuid>",
"Name": "My SEW Drive Ethernet Device",
"DriverID": "A5B596FD-730C-4C86-B671-2E6A5DC31AE3",
"Description": ""
}
}
}
Create Device - Siemens TI505 Ethernet
POST {{edgeUrl}}/devicehub/v2
Siemens Simatic TI505 Series Driver
| Prerequisites | None |
| Required fields | Network address Network Port (default 1505) |
| Browse devices supported | No |
| Browse tags supported | No |
Driver ID: 27671971-5C28-401B-9C3E-9584276E577D Group: Siemens
Required properties:
- networkAddress String — IP Address
- networkPort SignedInteger — Port
- name String — A unique, user-defined name for this device. Used to identify the device throughout the edge gateway, including in message broker topics and logs.
Optional properties:
- PauseBetweenRetries SignedInteger — Pause between retries, msec
- Transport SignedInteger — Transport Type Options: 0
- KeepAlive SignedInteger — TCP Keep-Alive (s) (0 to disable)
- ReadTimeout SignedInteger — Request timeout, msec
- RetryCount SignedInteger — Retry request count
- description String — Optional free-text notes about this device, such as its physical location or purpose.
Request Body
GraphQL Query
mutation CreateDevice($input: CreateDeviceRequest!) {
CreateDevice(input: $input) {
ID
Name
DriverID
Description
}
}
Variables
{
"input": {
"Name": "My Siemens TI505 Ethernet Device",
"Description": "",
"DriverID": "27671971-5C28-401B-9C3E-9584276E577D",
"AliasTopics": false,
"Debug": false,
"MetaData": [],
"StoppedState": false,
"StatusRegister": null,
"Properties": [
{
"Key": "PauseBetweenRetries",
"Value": "0"
},
{
"Key": "Transport",
"Value": "0"
},
{
"Key": "networkAddress",
"Value": "192.168.1.100"
},
{
"Key": "networkPort",
"Value": "1505"
},
{
"Key": "KeepAlive",
"Value": "5"
},
{
"Key": "ReadTimeout",
"Value": "5000"
},
{
"Key": "RetryCount",
"Value": "0"
},
{
"Key": "name",
"Value": "siemens-ti505_device"
},
{
"Key": "description",
"Value": ""
}
]
}
}
Response
Status: 200 OK
{
"data": {
"CreateDevice": {
"ID": "<generated-uuid>",
"Name": "My Siemens TI505 Ethernet Device",
"DriverID": "27671971-5C28-401B-9C3E-9584276E577D",
"Description": ""
}
}
}
Create Device - Toshiba Computer Link Ethernet
POST {{edgeUrl}}/devicehub/v2
Toshiba Computer Link Ethernet
Toshiba Computer Link (T-series T2/T3/T3H) ASCII protocol over UDP (default port 1024). Connectionless request/response datagrams framed (A01<DR|DW>...&<CS>)\r.
- Read:
(A01DR<AREA><addr>,<cnt>&<CS>)\r - Write:
(A01DW<AREA><addr>,<cnt>,<word>[,<word>]...&<CS>)\r - Checksum: sum of ASCII bytes from
(through&inclusive, mod 256, 2 hex UPPER. - Station
A01is a hardcoded wire literal (ignored on UDP); not a setting.
Driver ID: 34C147EC-6287-498B-B623-AFE7C7E19221 Group: Toshiba
Required properties:
- networkPort SignedInteger — Port
- networkAddress String — IP Address
- name String — A unique, user-defined name for this device. Used to identify the device throughout the edge gateway, including in message broker topics and logs.
Optional properties:
- RetryCount SignedInteger — Retry request count
- PauseBetweenRetries SignedInteger — Pause between retries, msec
- Transport SignedInteger — Transport Type Options: 0
- UnconnectedUDP SignedInteger — Unconnected UDP (accept responses from any source port) Options: 0, 1
- localPort SignedInteger — Local port to listen for unconnected-udp responses (0 for ephemeral)
- ReadTimeout SignedInteger — Request timeout, msec
- description String — Optional free-text notes about this device, such as its physical location or purpose.
Request Body
GraphQL Query
mutation CreateDevice($input: CreateDeviceRequest!) {
CreateDevice(input: $input) {
ID
Name
DriverID
Description
}
}
Variables
{
"input": {
"Name": "My Toshiba Computer Link Ethernet Device",
"Description": "",
"DriverID": "34C147EC-6287-498B-B623-AFE7C7E19221",
"AliasTopics": false,
"Debug": false,
"MetaData": [],
"StoppedState": false,
"StatusRegister": null,
"Properties": [
{
"Key": "networkPort",
"Value": "1024"
},
{
"Key": "RetryCount",
"Value": "0"
},
{
"Key": "PauseBetweenRetries",
"Value": "0"
},
{
"Key": "Transport",
"Value": "0"
},
{
"Key": "UnconnectedUDP",
"Value": "0"
},
{
"Key": "localPort",
"Value": "0"
},
{
"Key": "ReadTimeout",
"Value": "2000"
},
{
"Key": "networkAddress",
"Value": "192.168.1.100"
},
{
"Key": "name",
"Value": "toshiba-ethernet_device"
},
{
"Key": "description",
"Value": ""
}
]
}
}
Response
Status: 200 OK
{
"data": {
"CreateDevice": {
"ID": "<generated-uuid>",
"Name": "My Toshiba Computer Link Ethernet Device",
"DriverID": "34C147EC-6287-498B-B623-AFE7C7E19221",
"Description": ""
}
}
}
Create Device - VIPA 300S Ethernet
POST {{edgeUrl}}/devicehub/v2
VIPA 300S Ethernet
| Prerequisites | None |
| Required fields | Network address Network Port Slot |
| Browse devices supported | No |
| Browse tags supported | No |
| Supported device models | VIPA 300S SPEED7 (S7-300 compatible) |
Driver ID: 2869B355-8E85-438D-B4FA-B68F5C5E6640 Group: Vipa
Required properties:
- networkAddress String — IP Address of device
- networkPort SignedInteger — TCP/IP port of device
- slotNumber SignedInteger — Slot
- name String — A unique, user-defined name for this device. Used to identify the device throughout the edge gateway, including in message broker topics and logs.
Optional properties:
- maxPDUSize SignedInteger — If the parameter is 0 (default), then the value determined during connection handshake is used.
If the parameter > 0, then the smaller value of this parameter value and a value determined during connection handshake is used.
- description String — Optional free-text notes about this device, such as its physical location or purpose.
Request Body
GraphQL Query
mutation CreateDevice($input: CreateDeviceRequest!) {
CreateDevice(input: $input) {
ID
Name
DriverID
Description
}
}
Variables
{
"input": {
"Name": "My VIPA 300S Ethernet Device",
"Description": "",
"DriverID": "2869B355-8E85-438D-B4FA-B68F5C5E6640",
"AliasTopics": false,
"Debug": false,
"MetaData": [],
"StoppedState": false,
"StatusRegister": null,
"Properties": [
{
"Key": "maxPDUSize",
"Value": "0"
},
{
"Key": "networkAddress",
"Value": "192.168.1.100"
},
{
"Key": "networkPort",
"Value": "102"
},
{
"Key": "slotNumber",
"Value": "1"
},
{
"Key": "name",
"Value": "vipa-300s-ethernet_device"
},
{
"Key": "description",
"Value": ""
}
]
}
}
Response
Status: 200 OK
{
"data": {
"CreateDevice": {
"ID": "<generated-uuid>",
"Name": "My VIPA 300S Ethernet Device",
"DriverID": "2869B355-8E85-438D-B4FA-B68F5C5E6640",
"Description": ""
}
}
}
Create Device - Yaskawa MP2300 Ethernet
POST {{edgeUrl}}/devicehub/v2
Yaskawa MP2300 Ethernet
EtherNet/IP (CIP) Class-1 implicit (cyclic) I/O driver for Yaskawa MP2300 / MP2300S iec controllers.
- TCP:44818 explicit control plane: RegisterSession -> ForwardOpen -> ForwardClose -> UnRegisterSession.
- UDP:2222 cyclic data plane: continuous O->T / T->O I/O assembly datagrams.
- Read = sample latest cached T->O assembly image; write = mutate O->T image, streamed at RPI.
Registers: Input / Output (16-bit words) + Input_bit / Output_bit (bit of word, word*100+bit). Input* read-only.
Driver ID: D294B347-3152-4201-80C0-429FE0577D41 Group: Yaskawa
Required properties:
- networkPort SignedInteger — Port
- networkAddress String — IP Address
- name String — A unique, user-defined name for this device. Used to identify the device throughout the edge gateway, including in message broker topics and logs.
Optional properties:
- RetryCount SignedInteger — Retry request count
- PauseBetweenRetries SignedInteger — Pause between retries, msec
- rpi SignedInteger — Requested Packet Interval (ms)
- input SignedInteger — Input assembly instance (T->O, driver reads)
- output SignedInteger — Output assembly instance (O->T, driver writes)
- Transport SignedInteger — Transport Type Options: 0
- KeepAlive SignedInteger — TCP Keep-Alive (s) (0 to disable)
- ReadTimeout SignedInteger — Request timeout, msec
- description String — Optional free-text notes about this device, such as its physical location or purpose.
Request Body
GraphQL Query
mutation CreateDevice($input: CreateDeviceRequest!) {
CreateDevice(input: $input) {
ID
Name
DriverID
Description
}
}
Variables
{
"input": {
"Name": "My Yaskawa MP2300 Ethernet Device",
"Description": "",
"DriverID": "D294B347-3152-4201-80C0-429FE0577D41",
"AliasTopics": false,
"Debug": false,
"MetaData": [],
"StoppedState": false,
"StatusRegister": null,
"Properties": [
{
"Key": "networkPort",
"Value": "44818"
},
{
"Key": "RetryCount",
"Value": "0"
},
{
"Key": "PauseBetweenRetries",
"Value": "0"
},
{
"Key": "rpi",
"Value": "100"
},
{
"Key": "input",
"Value": "101"
},
{
"Key": "output",
"Value": "111"
},
{
"Key": "Transport",
"Value": "0"
},
{
"Key": "networkAddress",
"Value": "192.168.1.100"
},
{
"Key": "KeepAlive",
"Value": "5"
},
{
"Key": "ReadTimeout",
"Value": "2000"
},
{
"Key": "name",
"Value": "yaskawa-mp2300-ethernet_device"
},
{
"Key": "description",
"Value": ""
}
]
}
}
Response
Status: 200 OK
{
"data": {
"CreateDevice": {
"ID": "<generated-uuid>",
"Name": "My Yaskawa MP2300 Ethernet Device",
"DriverID": "D294B347-3152-4201-80C0-429FE0577D41",
"Description": ""
}
}
}
Create Device - Yokogawa FA-M3 Ethernet
POST {{edgeUrl}}/devicehub/v2
Yokogawa FA-M3 Driver
| Prerequisites | None |
| Required fields | Network address Network Port |
| Browse devices supported | No |
| Browse tags supported | No |
Driver ID: 798A7692-78DA-4ABF-9229-70EC75810AD6 Group: Yokogawa
Required properties:
- stationId SignedInteger — CPU number (1-4)
- networkAddress String — IP Address
- networkPort SignedInteger — Port
- name String — A unique, user-defined name for this device. Used to identify the device throughout the edge gateway, including in message broker topics and logs.
Optional properties:
- RetryCount SignedInteger — Retry request count
- PauseBetweenRetries SignedInteger — Pause between retries, msec
- Transport SignedInteger — Transport Type Options: 0
- KeepAlive SignedInteger — TCP Keep-Alive (s) (0 to disable)
- ReadTimeout SignedInteger — Request timeout, msec
- description String — Optional free-text notes about this device, such as its physical location or purpose.
Request Body
GraphQL Query
mutation CreateDevice($input: CreateDeviceRequest!) {
CreateDevice(input: $input) {
ID
Name
DriverID
Description
}
}
Variables
{
"input": {
"Name": "My Yokogawa FA-M3 Ethernet Device",
"Description": "",
"DriverID": "798A7692-78DA-4ABF-9229-70EC75810AD6",
"AliasTopics": false,
"Debug": false,
"MetaData": [],
"StoppedState": false,
"StatusRegister": null,
"Properties": [
{
"Key": "stationId",
"Value": "1"
},
{
"Key": "RetryCount",
"Value": "0"
},
{
"Key": "PauseBetweenRetries",
"Value": "0"
},
{
"Key": "Transport",
"Value": "0"
},
{
"Key": "networkAddress",
"Value": "192.168.1.100"
},
{
"Key": "networkPort",
"Value": "12289"
},
{
"Key": "KeepAlive",
"Value": "5"
},
{
"Key": "ReadTimeout",
"Value": "2000"
},
{
"Key": "name",
"Value": "yokogawa-fam3_device"
},
{
"Key": "description",
"Value": ""
}
]
}
}
Response
Status: 200 OK
{
"data": {
"CreateDevice": {
"ID": "<generated-uuid>",
"Name": "My Yokogawa FA-M3 Ethernet Device",
"DriverID": "798A7692-78DA-4ABF-9229-70EC75810AD6",
"Description": ""
}
}
}
Create Device - ABB Totalflow DB2 Serial
POST {{edgeUrl}}/devicehub/v2
ABB Totalflow DB2 Serial Driver
| Required fields: | > Connection Settings (Serial) |
| Browse devices supported: | No |
| Browse tags supported: | No |
| Supported device models: | ABB Totalflow devices that support native DB2 protocol over RS-232/RS-485. |
| Register Settings: | > Application (T) / Array (F) / Address (D); V_bit appends a 2-digit bit index (00-15) |
Troubleshooting
- The port must be configured for Totalflow Remote Protocol in PCCU (not Local, Modbus or LevelMaster).
- The default ReadTimeout is 6000 ms. An awake unit answers in about 0.6 s, but the first request after an idle period waits for the port's listen cycle (up to 4 s). Do not lower ReadTimeout below 5000 ms unless the port runs continuous listen.
- A reply that arrives after ReadTimeout is still absorbed for another ReadTimeout (at least 5 s) so it cannot be delivered to the next read. While a lost reply is waited out, polls fail and the device shows as disconnected for up to 2 x ReadTimeout.
- Every reply is checked against its CRC and size complement. A mismatch, an unknown lead-in or bytes trailing a reply closes and reopens the port; the port stays down for about 5 s and polls fail in the meantime. The offending bytes are in the "Connection lost" log line.
- Every register array has one element width (1, 2, 4, 6, 8 or 65 bytes) set by the device configuration. The driver learns it with a one-element read the first time an application/array pair is polled or written after connecting, so the first poll of each array costs one extra request. If that read returns the empty reply (register not defined) the tag fails and the width is retried on the next poll.
- A value wider than the array element (for example a float64 in a 4-byte array) spans consecutive register ids; place such tags 2 ids apart. A value narrower than the element reads its first bytes.
- Strings are one 65-byte element each (64 characters plus terminator). A string write reads the element first and writes it back with the new text at the start, so the element tail is preserved. Keep the string length at 64 or below.
- A value wider than the array element (for example a float64 into a 2-byte array) is written across consecutive elements, one request, and the device commits every element.
- Writing a high count into a wide array element can build a request over the per-message byte budget; the write fails locally with an error naming the byte limit instead of being sent. Lower the count or split it across more tags.
- MaxRequestSize caps only the merging of several registers into one request. A single tag with count > 1 is always sent as one request regardless of the setting, up to the 4096-byte per-message budget.
- At 9600 baud a wide count tag can outrun ReadTimeout; raise ReadTimeout or lower the tag's count. Lowering MaxRequestSize does not split a single wide tag.
- Only one client may use the serial port at a time. A second reader on the same port splits the byte stream and both clients see corrupt frames.
- The unit must keep the factory-default station ID "TOTALFLOW"; a renamed unit does not answer.
Driver ID: 1B7C4A2E-9D53-4F86-A0C1-6E5D38B4F7A9 Group: ABB
Required properties:
- deviceFile String — The serial port path used to communicate with the device (/dev/ttyS1, /dev/ttyUSB0, …). Must match a port available on the gateway host.
- name String — A unique, user-defined name for this device. Used to identify the device throughout the edge gateway, including in message broker topics and logs.
Optional properties:
- dataBits SignedInteger — The number of data bits in each transmitted character (typically 7 or 8). Must match the device's serial configuration. Options: 0, 1, 2, 3
- ReadTimeout SignedInteger — Request timeout, msec
- stopBits SignedInteger — The number of stop bits used to signal the end of a character (typically 1 or 2). Must match the device's serial configuration. Options: 0, 1, 2
- PauseBetweenRetries SignedInteger — Pause between retries, msec
- baudRate SignedInteger — The data transmission speed, in bits per second, used for serial communication. Must match the baud rate configured on the device. Options: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10
- parity SignedInteger — The error-checking method used for serial communication (None, Even, or Odd). Must match the device's configured parity setting. Options: 0, 1, 2
- RetryCount SignedInteger — Retry request count
- MaxRequestSize SignedInteger — Maximum block size when combining registers into one request (# bytes); a single register with count > 1 is always one request, up to 4096 bytes
- Transport SignedInteger — Transport Type Options: 0
- description String — Optional free-text notes about this device, such as its physical location or purpose.
Request Body
GraphQL Query
mutation CreateDevice($input: CreateDeviceRequest!) {
CreateDevice(input: $input) {
ID
Name
DriverID
Description
}
}
Variables
{
"input": {
"Name": "My ABB Totalflow DB2 Serial Device",
"Description": "",
"DriverID": "1B7C4A2E-9D53-4F86-A0C1-6E5D38B4F7A9",
"AliasTopics": false,
"Debug": false,
"MetaData": [],
"StoppedState": true,
"StatusRegister": null,
"Properties": [
{
"Key": "dataBits",
"Value": "3"
},
{
"Key": "ReadTimeout",
"Value": "6000"
},
{
"Key": "stopBits",
"Value": "0"
},
{
"Key": "deviceFile",
"Value": "/dev/ttyUSB0"
},
{
"Key": "PauseBetweenRetries",
"Value": "0"
},
{
"Key": "baudRate",
"Value": "3"
},
{
"Key": "parity",
"Value": "0"
},
{
"Key": "RetryCount",
"Value": "0"
},
{
"Key": "MaxRequestSize",
"Value": "256"
},
{
"Key": "Transport",
"Value": "0"
},
{
"Key": "name",
"Value": "abb-totalflow-serial_device"
},
{
"Key": "description",
"Value": ""
}
]
}
}
Response
Status: 200 OK
{
"data": {
"CreateDevice": {
"ID": "<generated-uuid>",
"Name": "My ABB Totalflow DB2 Serial Device",
"DriverID": "1B7C4A2E-9D53-4F86-A0C1-6E5D38B4F7A9",
"Description": ""
}
}
}
Create Device - Beckhoff TwinCAT2/3 Ethernet Absolute
POST {{edgeUrl}}/devicehub/v2
Beckhoff TwinCAT2/3 Ethernet Absolute
The driver implements a Beckhoff ADS client over AMS/TCP (port 48898) for TwinCAT3 runtimes.
Requirements
- An AMS route for this gateway's
localAmsIdmust exist in the PLC route table. amsIdis the PLC AMS NetId;adsPortselects the PLC runtime (851 = runtime 1).
Features
- Reading and writing PLC variables, batched through ADS sum commands
- Browsing the PLC symbol table, including arrays and structure members
Tags are addressed by memory class plus a 0-based offset, passed to the PLC verbatim. Classes: D Data, M Memory, R Retain, I Input, Q Output. A BOOL tag in M/I/Q reads the bit image, so its address is a BIT offset; every other class and value type takes a BYTE offset.
Driver ID: A3A3B621-8C82-4614-8B57-B7D33B76F2DE Group: Beckhoff
Required properties:
- adsPort SignedInteger — Target AMS port. 851/852/853/854 = TwinCAT3 PLC runtimes 1-4.
- localAmsId String — Source AMS NetId of this gateway. Must match a route configured on the PLC, otherwise the PLC rejects the connection. Convention: networkAddress String — The IP address of the device on the network.
- networkPort SignedInteger — The TCP or UDP port used to communicate with the device, depending on the protocol. Defaults to the standard port for the selected protocol but must match the port configured on the device.
- name String — A unique, user-defined name for this device. Used to identify the device throughout the edge gateway, including in message broker topics and logs.
Optional properties:
- MaxRequestSize SignedInteger — Maximum block size retrieved per request (# bytes)
- ReadTimeout SignedInteger — Request timeout, msec
- amsId String — Target AMS NetId of the PLC, six dotted octets (172.16.17.10.1.1). Left empty it is derived as description String — Optional free-text notes about this device, such as its physical location or purpose.
Request Body
GraphQL Query
mutation CreateDevice($input: CreateDeviceRequest!) {
CreateDevice(input: $input) {
ID
Name
DriverID
Description
}
}
Variables
{
"input": {
"Name": "My Beckhoff TwinCAT2/3 Ethernet Absolute Device",
"Description": "",
"DriverID": "A3A3B621-8C82-4614-8B57-B7D33B76F2DE",
"AliasTopics": false,
"Debug": false,
"MetaData": [],
"StoppedState": true,
"StatusRegister": null,
"Properties": [
{
"Key": "MaxRequestSize",
"Value": "4096"
},
{
"Key": "ReadTimeout",
"Value": "5000"
},
{
"Key": "adsPort",
"Value": "851"
},
{
"Key": "amsId",
"Value": ""
},
{
"Key": "localAmsId",
"Value": "0.0.0.0.1.1"
},
{
"Key": "networkAddress",
"Value": "192.168.1.100"
},
{
"Key": "networkPort",
"Value": "48898"
},
{
"Key": "name",
"Value": "ads_twincat3_absolute_cpp_device"
},
{
"Key": "description",
"Value": ""
}
]
}
}
Response
Status: 200 OK
{
"data": {
"CreateDevice": {
"ID": "<generated-uuid>",
"Name": "My Beckhoff TwinCAT2/3 Ethernet Absolute Device",
"DriverID": "A3A3B621-8C82-4614-8B57-B7D33B76F2DE",
"Description": ""
}
}
}
Create Device - Beckhoff TwinCAT3 Ethernet Symbolic
POST {{edgeUrl}}/devicehub/v2
Beckhoff TwinCAT3 Ethernet Symbolic
The driver implements a Beckhoff ADS client over AMS/TCP (port 48898) for TwinCAT3 runtimes.
Requirements
- An AMS route for this gateway's
localAmsIdmust exist in the PLC route table. amsIdis the PLC AMS NetId;adsPortselects the PLC runtime (851 = runtime 1).
Features
- Reading and writing PLC variables, batched through ADS sum commands
- Browsing the PLC symbol table, including arrays and structure members
Tags are addressed by PLC symbol path (MAIN.counter, GVL.arr[3], MAIN.fb.member). An absolute escape form [<indexGroup>:<indexOffset>] (decimal, colon mandatory) is also accepted.
Driver ID: 7050188B-0246-49A9-B55D-A317C3675323 Group: Beckhoff
Required properties:
- adsPort SignedInteger — Target AMS port. 851/852/853/854 = TwinCAT3 PLC runtimes 1-4.
- localAmsId String — Source AMS NetId of this gateway. Must match a route configured on the PLC, otherwise the PLC rejects the connection. Convention: networkAddress String — The IP address of the device on the network.
- networkPort SignedInteger — The TCP or UDP port used to communicate with the device, depending on the protocol. Defaults to the standard port for the selected protocol but must match the port configured on the device.
- name String — A unique, user-defined name for this device. Used to identify the device throughout the edge gateway, including in message broker topics and logs.
Optional properties:
- MaxRequestSize SignedInteger — Maximum block size retrieved per request (# bytes)
- ReadTimeout SignedInteger — Request timeout, msec
- amsId String — Target AMS NetId of the PLC, six dotted octets (172.16.17.10.1.1). Left empty it is derived as description String — Optional free-text notes about this device, such as its physical location or purpose.
Request Body
GraphQL Query
mutation CreateDevice($input: CreateDeviceRequest!) {
CreateDevice(input: $input) {
ID
Name
DriverID
Description
}
}
Variables
{
"input": {
"Name": "My Beckhoff TwinCAT3 Ethernet Symbolic Device",
"Description": "",
"DriverID": "7050188B-0246-49A9-B55D-A317C3675323",
"AliasTopics": false,
"Debug": false,
"MetaData": [],
"StoppedState": true,
"StatusRegister": null,
"Properties": [
{
"Key": "MaxRequestSize",
"Value": "4096"
},
{
"Key": "ReadTimeout",
"Value": "5000"
},
{
"Key": "adsPort",
"Value": "851"
},
{
"Key": "amsId",
"Value": ""
},
{
"Key": "localAmsId",
"Value": "0.0.0.0.1.1"
},
{
"Key": "networkAddress",
"Value": "192.168.1.100"
},
{
"Key": "networkPort",
"Value": "48898"
},
{
"Key": "name",
"Value": "ads_twincat3_cpp_device"
},
{
"Key": "description",
"Value": ""
}
]
}
}
Response
Status: 200 OK
{
"data": {
"CreateDevice": {
"ID": "<generated-uuid>",
"Name": "My Beckhoff TwinCAT3 Ethernet Symbolic Device",
"DriverID": "7050188B-0246-49A9-B55D-A317C3675323",
"Description": ""
}
}
}
Create Device - Brother Ethernet
POST {{edgeUrl}}/devicehub/v2
Brother Ethernet
Brother Industries, Ltd machining centres - SPEEDIO (C00/D00) and TC (B00) - over the Brother CNC "TC communication device protocol type 2". ASCII request/response directly on TCP; the machine is the server. Replaces the Gen1 Brother Speedio Ethernet and Brother TC Ethernet drivers.
Connection
| Setting | Default | Meaning |
|---|---|---|
networkAddress |
192.168.0.1 |
Machine IP |
networkPort |
10000 |
One port for both the file and PLC services, matching Gen1. Machine parameter 1567 default |
No handshake, no login, no station/unit id. The first bytes on the wire are the first command; one transfer at a time.
Machine parameters that look like driver faults:
| Param | Symptom if wrong |
|---|---|
| TC communication device protocol (unnumbered) | Type 1 cannot act as slave - nothing responds. Must be type 2 |
| 1561 / 1562 (sending data code / end of block) | Defaults ASCII / CR,LF. ISO or LF-only changes the frame footer and every response fails with the "malformed footer - machine params 1561/1562" error |
| 1564 (checksum check) | Default Invalid. Set Valid -> completion code 04 on a checksum mismatch |
| 1567 / 1568 | File service port / PLC data service port. The driver uses one port (networkPort) for both services - if 1568 differs from 1567, PLC tags fail while FILE tags work; set 1568 equal to 1567 on the machine |
| 1504 (remote operation) | Default Off. May refuse PLC writes with completion code 11 |
Register families
PLC family - 32 classes, read + write. Bit classes X Y BX BY M LM_*; word classes BDX BDY D LD_* LT_* LC_*. Addresses are 0-based and raw. X Y BX BY are hex-addressed; every other class is decimal. The protocol has no multi-point read, so each PLC tag costs one request.
Value types: bit on bit classes; uint16 (device semantics) or int16 on word classes.
FILE family - 14 classes, read-only. One %CLOD downloads a whole file; every tag naming the same file shares one download per poll. Value types: string (Gen1 parity - the field publishes verbatim, leading zeros kept, blank stays "") or int64 (strict numeric parse, malformed field = error). At an all-elements address the same pair as arrays: []string or []int64. Migrated Gen1 tags keep string so published values stay byte-identical; switch a tag to int64 to trend it numerically.
| Class | File | Address |
|---|---|---|
WKCNTR_A_*, WKCNTR_B_* |
WKCNTR |
counter element 1..4 |
TOLNM_T_InitialToolLife, TOLNM_T_ToolLife |
TOLNM<bank> |
bank*100 + tool |
ALARM_E_Alarm |
ALARM (SPEEDIO) |
alarm slot 1..36 |
MEM_E_Alarm |
MEM (TC) |
alarm slot 1..18 |
MEM_A_OperationState, MEM_A_Mode |
MEM |
none - single value, no address setting |
Address 0 = all elements. A FILE tag at element 0 returns one value per element and must be configured as an array type ([]string or []int64); any other address must be scalar (string or int64). For TOLNM the element is address % 100, so 0, 100, 200 ... are all-tools reads of their bank.
TOLNM bank 0 addresses device data number 10, not 1. This is the Gen1 mapping, preserved deliberately so existing tags keep reporting the same tool. Bank 1 (address 100-199) is data number 1.
Alarm class is per series, not per device setting. A TC control configured with ALARM_E_Alarm requests a data name it does not have and answers with completion code 08 - a loud, reportable error rather than 18 plausible numbers from the wrong file.
Values
Enums publish raw numbers, not text. MEM_A_OperationState: 0 not operating, 1 operating, 2 pause, 3 block stop. MEM_A_Mode: 0 MANU, 1 MDI, 2 MEM, 3 EDIT, 4 MANU+MDI, 5 MEM+EDIT.
Errors
Every response carries a 2-digit completion code. Gen1 never read it - reads and writes both reported success regardless - so codes 07 / 11 / 16 / 40 / 97 and write refusals become visible for the first time on upgrade. These are pre-existing machine conditions surfacing, not new failures. No completion code drops the connection; each is a per-request verdict.
Driver ID: FD4E15A6-201A-4B6E-AEC8-B70B4566AA6C Group: Brother Industries, Ltd
Required properties:
- networkPort SignedInteger — Port
- networkAddress String — IP Address
- name String — A unique, user-defined name for this device. Used to identify the device throughout the edge gateway, including in message broker topics and logs.
Optional properties:
- KeepAlive SignedInteger — TCP Keep-Alive (s) (0 to disable)
- ReadTimeout SignedInteger — Request timeout, msec
- RetryCount SignedInteger — Retry request count
- PauseBetweenRetries SignedInteger — Pause between retries, msec
- Transport SignedInteger — Transport Type Options: 0
- description String — Optional free-text notes about this device, such as its physical location or purpose.
Request Body
GraphQL Query
mutation CreateDevice($input: CreateDeviceRequest!) {
CreateDevice(input: $input) {
ID
Name
DriverID
Description
}
}
Variables
{
"input": {
"Name": "My Brother Ethernet Device",
"Description": "",
"DriverID": "FD4E15A6-201A-4B6E-AEC8-B70B4566AA6C",
"AliasTopics": false,
"Debug": false,
"MetaData": [],
"StoppedState": true,
"StatusRegister": null,
"Properties": [
{
"Key": "KeepAlive",
"Value": "5"
},
{
"Key": "ReadTimeout",
"Value": "2000"
},
{
"Key": "RetryCount",
"Value": "0"
},
{
"Key": "PauseBetweenRetries",
"Value": "0"
},
{
"Key": "Transport",
"Value": "0"
},
{
"Key": "networkPort",
"Value": "10000"
},
{
"Key": "networkAddress",
"Value": "192.168.1.100"
},
{
"Key": "name",
"Value": "brother-ethernet_device"
},
{
"Key": "description",
"Value": ""
}
]
}
}
Response
Status: 200 OK
{
"data": {
"CreateDevice": {
"ID": "<generated-uuid>",
"Name": "My Brother Ethernet Device",
"DriverID": "FD4E15A6-201A-4B6E-AEC8-B70B4566AA6C",
"Description": ""
}
}
}
Create Device - CAN Raw
POST {{edgeUrl}}/devicehub/v2
CAN Raw
Passive, read-only tap on a CAN bus. The driver never transmits: it listens for CAN 2.0A/2.0B data frames and publishes the payload to every configured tag as each frame arrives. No CANopen, J1939, ISO-TP or DBC decoding is applied - the payload is published as raw bytes.
Tags are event-driven, not polled. A newly added tag publishes nothing until a matching frame arrives on the bus; there is no periodic per-tag staleness check. Every subscribed tag is republished as bad if the source disconnects, the bus goes bus-off, or no frame at all arrives for 10 seconds - a bus gone silent after connecting (cable pulled, other nodes stopped talking) is treated as down even with no bus-off frame and no read error.
Settings
interface- CAN backend:socketcan- a Linux CAN network interface (can0,vcan0, apeak_usborkvaser_usbadapter, ...).slcan- an ASCII serial CAN adapter (Lawicel command set) on a tty.channel- interface name forsocketcan(for examplecan0), or serial port path forslcan(for example/dev/ttyUSB0).bitRate- CAN bus bitrate. On the socketcan leg, the driver attempts to set this bitrate and bring the interface up at connect time via netlink. Best effort only: if the worker lacksCAP_NET_ADMIN, the link is already up, or the interface does not support bit-timing (for examplevcan), the attempt fails silently, is logged as a warning, and the driver still connects. Not applied on the slcan leg.
Registers
One register class, V. The address is the CAN arbitration ID (0 to 536870911).
idType-Any(default),Standard (11-bit)orExtended (29-bit). Standard and extended frames with the same numeric ID are different frames;Anymatches either and publishes whichever arrives.
Three value types are available:
[]bytegives one integer per payload byte.[]stringgives one unpadded hex string per byte (0x0arenders asa).stringgives the whole payload as one zero-padded hex string (0x0arenders as0a, so00 de ad be afrenders as00deadbeaf).
For []byte and []string, list length equals the frame DLC.
slcan limitations
- No kernel receive timestamp; the arrival time is taken when the line is decoded.
- No CAN error frames, so no bus-off detection.
- No CAN FD.
Driver ID: ACB6DE98-1425-492E-867F-214A84720E70 Group: CAN Bus
Required properties:
- interface SignedInteger — CAN backend. socketcan uses a Linux CAN network interface; slcan uses an ASCII serial CAN adapter. Options: 0, 1
- channel String — CAN interface name for socketcan (for example can0), or serial port path for slcan (for example /dev/ttyUSB0).
- bitRate SignedInteger — CAN bus bitrate. Applied to the interface on connect, best effort - requires CAP_NET_ADMIN; has no effect if the link is already up or does not support bittiming (for example vcan).
- name String — A unique, user-defined name for this device. Used to identify the device throughout the edge gateway, including in message broker topics and logs.
Optional properties:
- description String — Optional free-text notes about this device, such as its physical location or purpose.
Request Body
GraphQL Query
mutation CreateDevice($input: CreateDeviceRequest!) {
CreateDevice(input: $input) {
ID
Name
DriverID
Description
}
}
Variables
{
"input": {
"Name": "My CAN Raw Device",
"Description": "",
"DriverID": "ACB6DE98-1425-492E-867F-214A84720E70",
"AliasTopics": false,
"Debug": false,
"MetaData": [],
"StoppedState": true,
"StatusRegister": null,
"Properties": [
{
"Key": "interface",
"Value": "0"
},
{
"Key": "channel",
"Value": "can0"
},
{
"Key": "bitRate",
"Value": "1000000"
},
{
"Key": "name",
"Value": "can-raw_device"
},
{
"Key": "description",
"Value": ""
}
]
}
}
Response
Status: 200 OK
{
"data": {
"CreateDevice": {
"ID": "<generated-uuid>",
"Name": "My CAN Raw Device",
"DriverID": "ACB6DE98-1425-492E-867F-214A84720E70",
"Description": ""
}
}
}
Create Device - Fanuc CNC Ethernet
POST {{edgeUrl}}/devicehub/v2
Fanuc CNC Ethernet
The driver reads and writes FANUC CNC and PMC data over the FOCAS2 Ethernet interface (TCP 8193) using the FANUC fwlib32 library.
Requirements
- The CNC Ethernet board must be configured and reachable on the network.
- Each register maps to one FOCAS function; options not installed on the control report their registers as unsupported.
Features
- CNC informational registers - position, program, status, alarms, offsets, tool life
- PMC memory classes (G F Y X A R T K C D E) by byte address, plus single-bit access
Driver ID: 4FB9C7D9-18F8-4B87-95EC-5C53A0D19A2E Group: Fanuc Corporation
Required properties:
- networkAddress String — The IP address of the device on the network.
- networkPort SignedInteger — The TCP or UDP port used to communicate with the device, depending on the protocol. Defaults to the standard port for the selected protocol but must match the port configured on the device.
- name String — A unique, user-defined name for this device. Used to identify the device throughout the edge gateway, including in message broker topics and logs.
Optional properties:
- ReadTimeout SignedInteger — Request timeout, msec
- description String — Optional free-text notes about this device, such as its physical location or purpose.
Request Body
GraphQL Query
mutation CreateDevice($input: CreateDeviceRequest!) {
CreateDevice(input: $input) {
ID
Name
DriverID
Description
}
}
Variables
{
"input": {
"Name": "My Fanuc CNC Ethernet Device",
"Description": "",
"DriverID": "4FB9C7D9-18F8-4B87-95EC-5C53A0D19A2E",
"AliasTopics": false,
"Debug": false,
"MetaData": [],
"StoppedState": true,
"StatusRegister": null,
"Properties": [
{
"Key": "ReadTimeout",
"Value": "5000"
},
{
"Key": "description",
"Value": ""
},
{
"Key": "networkAddress",
"Value": "192.168.1.100"
},
{
"Key": "networkPort",
"Value": "8193"
},
{
"Key": "name",
"Value": "fanuc_ethernet_cpp_device"
}
]
}
}
Response
Status: 200 OK
{
"data": {
"CreateDevice": {
"ID": "<generated-uuid>",
"Name": "My Fanuc CNC Ethernet Device",
"DriverID": "4FB9C7D9-18F8-4B87-95EC-5C53A0D19A2E",
"Description": ""
}
}
}
Create Device - GE Fanuc 90-30 Ethernet
POST {{edgeUrl}}/devicehub/v2
GE Fanuc 90-30 Ethernet
GE-SRTP (Service Request Transport Protocol) over TCP, default port 18245. Targets the GE Fanuc Series 90-30 family (verified against CPU331 + CPU363).
Binary protocol, fixed 56-byte frame header both directions, little-endian throughout. One outstanding request per connection; requests correlate on the sequence byte the PLC echoes at frame offset 2.
Settings
| Key | Default | Notes |
|---|---|---|
networkAddress |
192.168.0.1 | PLC IP |
networkPort |
18245 | SRTP port |
slotNumber |
1 | CPU slot; stamped into the frame mailbox destination |
Supported areas
Addresses are 1-based, matching the OEM programming software (%R1 is the first register). Discrete areas address individual bits; word areas address 16-bit words.
| Area | Value types | Max address | Access | Description |
|---|---|---|---|---|
| I | bit, uint16 | 32768 | rw | Input |
| Q | bit, uint16 | 32768 | rw | Output |
| M | bit, uint16 | 32768 | rw | Internal |
| G | bit, uint16 | 32768 | rw | Genius Global |
| T | bit, uint16 | 32768 | rw | Temporary |
| SA | bit, uint16 | 65536 | rw | System A |
| SB | bit, uint16 | 65536 | rw | System B |
| SC | bit, uint16 | 65536 | rw | System C |
| S | bit, uint16 | 65536 | r | System |
| R | uint16, int16, float32 | 32768 | rw | Register |
| AQ | uint16, int16, float32 | 32768 | rw | Analog Output |
| AI | uint16, int16, float32 | 32768 | rw | Analog Input |
| W | uint16, int16, float32 | 65536 | rw | Word (RX3i area; a 90-30 rejects it) |
A uint16 register on a discrete area addresses the same flat bit space and reads the 16 bits starting at the containing byte.
Registers are single-element: the count setting is not supported.
Browse
Not supported - the protocol exposes no tag directory.
Driver ID: DB0ED140-7597-4E54-979A-87852259BD1F Group: GE Fanuc
Required properties:
- slotNumber SignedInteger — CPU slot number; stamped into the frame's mailbox destination (byte 36 = 0x10 * slot)
- networkAddress String — IP Address
- networkPort SignedInteger — Port
- name String — A unique, user-defined name for this device. Used to identify the device throughout the edge gateway, including in message broker topics and logs.
Optional properties:
- PauseBetweenRetries SignedInteger — Pause between retries, msec
- Transport SignedInteger — Transport Type Options: 0
- KeepAlive SignedInteger — TCP Keep-Alive (s) (0 to disable)
- ReadTimeout SignedInteger — Request timeout, msec
- RetryCount SignedInteger — Retry request count
- description String — Optional free-text notes about this device, such as its physical location or purpose.
Request Body
GraphQL Query
mutation CreateDevice($input: CreateDeviceRequest!) {
CreateDevice(input: $input) {
ID
Name
DriverID
Description
}
}
Variables
{
"input": {
"Name": "My GE Fanuc 90-30 Ethernet Device",
"Description": "",
"DriverID": "DB0ED140-7597-4E54-979A-87852259BD1F",
"AliasTopics": false,
"Debug": false,
"MetaData": [],
"StoppedState": true,
"StatusRegister": null,
"Properties": [
{
"Key": "PauseBetweenRetries",
"Value": "0"
},
{
"Key": "slotNumber",
"Value": "1"
},
{
"Key": "Transport",
"Value": "0"
},
{
"Key": "networkAddress",
"Value": "192.168.1.100"
},
{
"Key": "networkPort",
"Value": "18245"
},
{
"Key": "KeepAlive",
"Value": "5"
},
{
"Key": "ReadTimeout",
"Value": "2000"
},
{
"Key": "RetryCount",
"Value": "0"
},
{
"Key": "name",
"Value": "ge-fanuc-9030-ethernet_device"
},
{
"Key": "description",
"Value": ""
}
]
}
}
Response
Status: 200 OK
{
"data": {
"CreateDevice": {
"ID": "<generated-uuid>",
"Name": "My GE Fanuc 90-30 Ethernet Device",
"DriverID": "DB0ED140-7597-4E54-979A-87852259BD1F",
"Description": ""
}
}
}
Create Device - GE Fanuc RX3i Serial
POST {{edgeUrl}}/devicehub/v2
GE Fanuc RX3i Serial
Serial driver for Emerson / GE PACSystems RX3i CPUs with an SNP slave port (CPU310, CPU315, CPU320, CPE302, CPE305, CPE310) over RS-232 or RS-485. The link is opened with a serial Long Break followed by an SNP Attach, and the session then carries SRP Read and Write System Memory service requests in SNP mailboxes.
Serial defaults
| Setting | Default |
|---|---|
| Device file | /dev/ttyS0 |
| Baud rate | 19200 |
| Data bits | 8 |
| Parity | Odd |
| Stop bits | 1 |
A blank snpId attaches with the point-to-point wildcard ID, which is also what switches a port left in its stock RTU-Slave mode over to SNP. Set snpId only on a multi-drop line, to the ID configured in the CPU port settings.
MaxRequestSize caps the register payload of a single request (bytes); lower it if a CPU refuses large blocks.
Register classes
| Class | Value type | Address range | Access |
|---|---|---|---|
| I | bit | 1 - 32768 | read |
| Q | bit | 1 - 32768 | read/write |
| M | bit | 1 - 32768 | read/write |
| G | bit | 1 - 32768 | read/write |
| T | bit | 1 - 32768 | read/write |
| SA | bit | 1 - 128 | read/write |
| SB | bit | 1 - 128 | read/write |
| SC | bit | 1 - 128 | read/write |
| S | bit | 1 - 128 | read |
| R | uint16 | 1 - 32768 | read/write |
| AI | uint16 | 1 - 32768 | read |
| AQ | uint16 | 1 - 32768 | read/write |
Ranges are the RX3i family ceiling; a CPU configured with a smaller memory map rejects addresses past its own limit.
Addressing
Addresses are 1-based and match the PLC reference numbers (%R1 is address 1).
Driver ID: 553B2C19-98B9-4A74-AA18-FEC347E77D80 Group: GE Fanuc
Required properties:
- deviceFile String — The serial port path used to communicate with the device (/dev/ttyS1, /dev/ttyUSB0, …). Must match a port available on the gateway host.
- name String — A unique, user-defined name for this device. Used to identify the device throughout the edge gateway, including in message broker topics and logs.
Optional properties:
- Transport SignedInteger — Transport Type Options: 0
- parity SignedInteger — The error-checking method used for serial communication (None, Even, or Odd). Must match the device's configured parity setting. Options: 0, 1, 2
- MaxRequestSize SignedInteger — Maximum register payload retrieved per request (# bytes)
- ReadTimeout SignedInteger — Request timeout, msec
- PauseBetweenRetries SignedInteger — Pause between retries, msec
- snpId String — SNP ID of the target PLC, up to 7 characters (A-Z, 0-9, ); blank selects the point-to-point wildcard
- baudRate _SignedInteger — The data transmission speed, in bits per second, used for serial communication. Must match the baud rate configured on the device. Options: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10
- dataBits SignedInteger — The number of data bits in each transmitted character (typically 7 or 8). Must match the device's serial configuration. Options: 0, 1, 2, 3
- RetryCount SignedInteger — Retry request count
- stopBits SignedInteger — The number of stop bits used to signal the end of a character (typically 1 or 2). Must match the device's serial configuration. Options: 0, 1, 2
- description String — Optional free-text notes about this device, such as its physical location or purpose.
Request Body
GraphQL Query
mutation CreateDevice($input: CreateDeviceRequest!) {
CreateDevice(input: $input) {
ID
Name
DriverID
Description
}
}
Variables
{
"input": {
"Name": "My GE Fanuc RX3i Serial Device",
"Description": "",
"DriverID": "553B2C19-98B9-4A74-AA18-FEC347E77D80",
"AliasTopics": false,
"Debug": false,
"MetaData": [],
"StoppedState": true,
"StatusRegister": null,
"Properties": [
{
"Key": "Transport",
"Value": "0"
},
{
"Key": "parity",
"Value": "1"
},
{
"Key": "MaxRequestSize",
"Value": "200"
},
{
"Key": "deviceFile",
"Value": "/dev/ttyS0"
},
{
"Key": "ReadTimeout",
"Value": "2000"
},
{
"Key": "PauseBetweenRetries",
"Value": "0"
},
{
"Key": "snpId",
"Value": ""
},
{
"Key": "baudRate",
"Value": "4"
},
{
"Key": "dataBits",
"Value": "3"
},
{
"Key": "RetryCount",
"Value": "0"
},
{
"Key": "stopBits",
"Value": "0"
},
{
"Key": "name",
"Value": "ge-fanuc-rx3i-serial_device"
},
{
"Key": "description",
"Value": ""
}
]
}
}
Response
Status: 200 OK
{
"data": {
"CreateDevice": {
"ID": "<generated-uuid>",
"Name": "My GE Fanuc RX3i Serial Device",
"DriverID": "553B2C19-98B9-4A74-AA18-FEC347E77D80",
"Description": ""
}
}
}
Create Device - GE Fanuc SNP Serial
POST {{edgeUrl}}/devicehub/v2
GE Fanuc SNP Serial
Serial driver for GE Fanuc / Emerson PLCs speaking SNP-X over RS-232 or RS-422: Series 90-30, 90-70, 90 Micro and VersaMax, either through the CPU port or a CMM communications module. The link is opened with a serial Long Break followed by an X-Attach, and the session then carries plain X-Read and X-Write exchanges.
Serial defaults
| Setting | Default |
|---|---|
| Device file | /dev/ttyS0 |
| Baud rate | 19200 |
| Data bits | 8 |
| Parity | Odd |
| Stop bits | 1 |
The driver always attaches with the null SNP ID and talks to exactly one PLC per serial line (point-to-point). Multi-drop station addressing is not supported. MaxRequestSize caps the reply data of a single read request (bytes); lower it if a CPU refuses large blocks.
Register classes
| Class | Value type | Address range | Access |
|---|---|---|---|
| I | bit | 1 - 10000 | read |
| Q | bit | 1 - 10000 | read/write |
| M | bit | 1 - 10000 | read/write |
| G | bit | 1 - 7680 | read/write |
| T | bit | 1 - 256 | read/write |
| SA | bit | 1 - 128 | read/write |
| SB | bit | 1 - 128 | read/write |
| SC | bit | 1 - 128 | read/write |
| S | bit | 1 - 128 | read |
| R | uint16 | 1 - 32640 | read/write |
| R_bit | bit | 100 - 3264015 | read/write |
| AI | uint16 | 1 - 10000 | read |
| AQ | uint16 | 1 - 10000 | read/write |
Addressing
Addresses are 1-based and match the PLC reference numbers (%R1 is address 1). R_bit uses the composite form word*100 + bit, bit 00 to 15: address 1005 is bit 5 of %R10.
%R is word-only on the wire, so writing an R_bit register reads the whole word, changes the one bit and writes the word back. The pair is not atomic against another master writing the same %R word at the same moment.
Driver ID: 14C21ED6-EC75-4896-8B05-59CFDFD1C662 Group: GE Fanuc
Required properties:
- deviceFile String — The serial port path used to communicate with the device (/dev/ttyS1, /dev/ttyUSB0, …). Must match a port available on the gateway host.
- name String — A unique, user-defined name for this device. Used to identify the device throughout the edge gateway, including in message broker topics and logs.
Optional properties:
- MaxRequestSize SignedInteger — Maximum block size retrieved per request (# bytes)
- Transport SignedInteger — Transport Type Options: 0
- dataBits SignedInteger — The number of data bits in each transmitted character (typically 7 or 8). Must match the device's serial configuration. Options: 0, 1, 2, 3
- parity SignedInteger — The error-checking method used for serial communication (None, Even, or Odd). Must match the device's configured parity setting. Options: 0, 1, 2
- stopBits SignedInteger — The number of stop bits used to signal the end of a character (typically 1 or 2). Must match the device's serial configuration. Options: 0, 1, 2
- baudRate SignedInteger — The data transmission speed, in bits per second, used for serial communication. Must match the baud rate configured on the device. Options: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10
- RetryCount SignedInteger — Retry request count
- PauseBetweenRetries SignedInteger — Pause between retries, msec
- ReadTimeout SignedInteger — Request timeout, msec
- description String — Optional free-text notes about this device, such as its physical location or purpose.
Request Body
GraphQL Query
mutation CreateDevice($input: CreateDeviceRequest!) {
CreateDevice(input: $input) {
ID
Name
DriverID
Description
}
}
Variables
{
"input": {
"Name": "My GE Fanuc SNP Serial Device",
"Description": "",
"DriverID": "14C21ED6-EC75-4896-8B05-59CFDFD1C662",
"AliasTopics": false,
"Debug": false,
"MetaData": [],
"StoppedState": true,
"StatusRegister": null,
"Properties": [
{
"Key": "MaxRequestSize",
"Value": "1000"
},
{
"Key": "Transport",
"Value": "0"
},
{
"Key": "dataBits",
"Value": "3"
},
{
"Key": "parity",
"Value": "1"
},
{
"Key": "stopBits",
"Value": "0"
},
{
"Key": "deviceFile",
"Value": "/dev/ttyS0"
},
{
"Key": "baudRate",
"Value": "4"
},
{
"Key": "RetryCount",
"Value": "0"
},
{
"Key": "PauseBetweenRetries",
"Value": "0"
},
{
"Key": "ReadTimeout",
"Value": "10000"
},
{
"Key": "name",
"Value": "ge-fanuc-snp-serial_device"
},
{
"Key": "description",
"Value": ""
}
]
}
}
Response
Status: 200 OK
{
"data": {
"CreateDevice": {
"ID": "<generated-uuid>",
"Name": "My GE Fanuc SNP Serial Device",
"DriverID": "14C21ED6-EC75-4896-8B05-59CFDFD1C662",
"Description": ""
}
}
}
Create Device - HID Device
POST {{edgeUrl}}/devicehub/v2
HID Device
Reads USB HID keyboard-wedge devices (barcode scanners, magstripe readers, keyboards) exposing a boot-keyboard input report on /dev/hidrawN. HID-POS and vendor-defined report formats are not decoded.
The driver never writes to the device. It decodes the keystroke reports into text and publishes each completed line as soon as its terminator key arrives.
Tags are event-driven, not polled. A newly added tag publishes nothing until a scan arrives, and an idle device is not an error: between scans the last value stands and the tag stays good, however long the gap. Tags go bad only when the device disconnects or the node cannot be read.
Linux only.
Settings
deviceFile- path of the HID raw device node, for example/dev/hidraw0, or a udev symlink such as/dev/hidraw-scanner. The worker needs read permission on it.terminator- the HID key that ends a scan line:Enter(default),Tab,Keypad Enter, orEnter or Tabfor mixed fleets. The terminator key is consumed and never appears in the published value. A scanner whose configured suffix is not the selected terminator never completes a line: characters accumulate until the 4096 character cap is hit, the buffer is dropped and a warning is logged.
Device node naming
/dev/hidrawN numbering is assignment order, so hidraw0 can become hidraw1 after a replug or a reboot. Point deviceFile at a stable udev symlink instead:
SUBSYSTEM=="hidraw", ATTRS{idVendor}=="xxxx", ATTRS{idProduct}=="yyyy", MODE="0660", GROUP="plugdev", SYMLINK+="hidraw-scanner"
The same rule grants the worker read permission on the node.
The device still types into the host
Opening a hidraw node is not exclusive. The scanner keeps acting as a keyboard for the console and the desktop session unless the operator grabs or unbinds the corresponding input device. That is outside the scope of this driver.
Registers
One register class, Scan, with value type string: the latest complete scan line from the device. It has no address and no settings.
One Scan tag per device is enough. Additional Scan tags on the same device all receive the same value at the same time.
Driver ID: 17CFC93F-D2CA-47CB-8B14-E18CA06EEC40 Group: HID Devices
Required properties:
- deviceFile String — Path of the HID raw device node, for example /dev/hidraw0 or a udev symlink such as /dev/hidraw-scanner. The worker needs read permission on it.
- terminator SignedInteger — HID key that ends a scan line. The key is consumed and never appears in the published value. Options: 0, 1, 2, 3
- name String — A unique, user-defined name for this device. Used to identify the device throughout the edge gateway, including in message broker topics and logs.
Optional properties:
- description String — Optional free-text notes about this device, such as its physical location or purpose.
Request Body
GraphQL Query
mutation CreateDevice($input: CreateDeviceRequest!) {
CreateDevice(input: $input) {
ID
Name
DriverID
Description
}
}
Variables
{
"input": {
"Name": "My HID Device Device",
"Description": "",
"DriverID": "17CFC93F-D2CA-47CB-8B14-E18CA06EEC40",
"AliasTopics": false,
"Debug": false,
"MetaData": [],
"StoppedState": true,
"StatusRegister": null,
"Properties": [
{
"Key": "deviceFile",
"Value": "/dev/hidraw0"
},
{
"Key": "terminator",
"Value": "0"
},
{
"Key": "name",
"Value": "hid-device_device"
},
{
"Key": "description",
"Value": ""
}
]
}
}
Response
Status: 200 OK
{
"data": {
"CreateDevice": {
"ID": "<generated-uuid>",
"Name": "My HID Device Device",
"DriverID": "17CFC93F-D2CA-47CB-8B14-E18CA06EEC40",
"Description": ""
}
}
}
Create Device - Heidenhain 530 Ethernet
POST {{edgeUrl}}/devicehub/v2
Heidenhain iTNC 530 Ethernet
The driver implements a Heidenhain LSV/2 client over TCP port 19000 (ADONTEC SuperCom).
Requirements
- The control must have the LSV/2 (DNC) option enabled and reachable on port 19000.
- One LSV/2 connection is used per device.
Features
- Reading and writing PLC memory by area and byte offset
- Reading control run information, machine parameters, tool table entries and control files as JSON
PLC tags are addressed by memory class plus a 0-based byte offset. Classes: M markers, W word memory, I inputs, O outputs, T timers. The remaining classes are single objects published as JSON; their address is ignored, except IJHTool, whose address is the tool number.
Driver ID: E2B172F1-B0FD-4F19-A594-6452C5AE2A9E Group: Heidenhain
Required properties:
- networkAddress String — The IP address of the device on the network.
- networkPort SignedInteger — The TCP or UDP port used to communicate with the device, depending on the protocol. Defaults to the standard port for the selected protocol but must match the port configured on the device.
- name String — A unique, user-defined name for this device. Used to identify the device throughout the edge gateway, including in message broker topics and logs.
Optional properties:
- ReadTimeout SignedInteger — Request timeout, msec
- description String — Optional free-text notes about this device, such as its physical location or purpose.
Request Body
GraphQL Query
mutation CreateDevice($input: CreateDeviceRequest!) {
CreateDevice(input: $input) {
ID
Name
DriverID
Description
}
}
Variables
{
"input": {
"Name": "My Heidenhain 530 Ethernet Device",
"Description": "",
"DriverID": "E2B172F1-B0FD-4F19-A594-6452C5AE2A9E",
"AliasTopics": false,
"Debug": false,
"MetaData": [],
"StoppedState": true,
"StatusRegister": null,
"Properties": [
{
"Key": "ReadTimeout",
"Value": "2000"
},
{
"Key": "description",
"Value": ""
},
{
"Key": "networkAddress",
"Value": "192.168.1.100"
},
{
"Key": "networkPort",
"Value": "19000"
},
{
"Key": "name",
"Value": "lsv2_530_cpp_device"
}
]
}
}
Response
Status: 200 OK
{
"data": {
"CreateDevice": {
"ID": "<generated-uuid>",
"Name": "My Heidenhain 530 Ethernet Device",
"DriverID": "E2B172F1-B0FD-4F19-A594-6452C5AE2A9E",
"Description": ""
}
}
}
Create Device - Heidenhain 640 Ethernet
POST {{edgeUrl}}/devicehub/v2
Heidenhain TNC 640 Ethernet
The driver implements a Heidenhain LSV/2 client over TCP port 19000 (ADONTEC SuperCom).
Requirements
- The control must have the LSV/2 (DNC) option enabled and reachable on port 19000.
- One LSV/2 connection is used per device.
Features
- Reading and writing PLC memory by area and byte offset
- Reading control run information, machine parameters, tool table entries and control files as JSON
PLC tags are addressed by memory class plus a 0-based byte offset. Classes: M markers, W word memory, I inputs, O outputs, T timers. The remaining classes are single objects published as JSON; their address is ignored, except IJHTool, whose address is the tool number.
Driver ID: D857AB93-1E2D-421F-A12C-FAA65F3063D9 Group: Heidenhain
Required properties:
- networkAddress String — The IP address of the device on the network.
- networkPort SignedInteger — The TCP or UDP port used to communicate with the device, depending on the protocol. Defaults to the standard port for the selected protocol but must match the port configured on the device.
- name String — A unique, user-defined name for this device. Used to identify the device throughout the edge gateway, including in message broker topics and logs.
Optional properties:
- ReadTimeout SignedInteger — Request timeout, msec
- description String — Optional free-text notes about this device, such as its physical location or purpose.
Request Body
GraphQL Query
mutation CreateDevice($input: CreateDeviceRequest!) {
CreateDevice(input: $input) {
ID
Name
DriverID
Description
}
}
Variables
{
"input": {
"Name": "My Heidenhain 640 Ethernet Device",
"Description": "",
"DriverID": "D857AB93-1E2D-421F-A12C-FAA65F3063D9",
"AliasTopics": false,
"Debug": false,
"MetaData": [],
"StoppedState": true,
"StatusRegister": null,
"Properties": [
{
"Key": "ReadTimeout",
"Value": "2000"
},
{
"Key": "description",
"Value": ""
},
{
"Key": "networkAddress",
"Value": "192.168.1.100"
},
{
"Key": "networkPort",
"Value": "19000"
},
{
"Key": "name",
"Value": "lsv2_640_cpp_device"
}
]
}
}
Response
Status: 200 OK
{
"data": {
"CreateDevice": {
"ID": "<generated-uuid>",
"Name": "My Heidenhain 640 Ethernet Device",
"DriverID": "D857AB93-1E2D-421F-A12C-FAA65F3063D9",
"Description": ""
}
}
}
Create Device - Hitachi EH Serial
POST {{edgeUrl}}/devicehub/v2
Hitachi EH Series Serial Driver
| Prerequisites | Dedicated-port DIP switch SW5 ON; WRF037 bit 14 = 0 |
| Required fields | Device file (serial port) |
| Line settings | 19200 7E1 (default); 9600 / 19200 / 38400 supported |
| Browse devices supported | No |
| Browse tags supported | No |
Hitachi H / EH-series task-code protocol, transmission control procedure 1, on the CPU dedicated port or an EH-SIO port. ASCII-hex frames STX ... CR, point-to-point, half-duplex: the host sends a command frame, the CPU answers ACK, the host polls with ENQ and the CPU returns the data frame.
Supported CPUs: EH-150 series (CPU104 / 208 / 308 / 316 / 448 / 548), EHV series, Micro-EH.
Bit classes (bit value type): X, Y, M, T, R, L. Addresses are composite word * 100 + bit, bit part 00..15.
Word classes (uint16, int16): TC, WM, WX, WY, WR, WL. WR covers the WRF diagnostic words from address F000.
X is read only; every other class accepts writes. Writes are single-register; reads are grouped per class, up to 28 words or 240 bits per frame (the CPU port answers with at most 128 bytes per frame).
X / Y / WX / WY addressing is mixed radix (remote / unit / slot / point), so not every address inside the declared range exists on a given CPU and rack. The driver accepts any address in range; one the device does not have reads back as zero rather than erroring.
WRF037 bit 13 (station number) must stay off - station-addressed frames are not supported.
Driver ID: 69932918-6D8B-420C-839E-65A9BE68FE3B Group: Hitachi Devices
Required properties:
- deviceFile String — The serial port path used to communicate with the device (/dev/ttyS1, /dev/ttyUSB0, …). Must match a port available on the gateway host.
- name String — A unique, user-defined name for this device. Used to identify the device throughout the edge gateway, including in message broker topics and logs.
Optional properties:
- dataBits SignedInteger — The number of data bits in each transmitted character (typically 7 or 8). Must match the device's serial configuration. Options: 0, 1, 2, 3
- ReadTimeout SignedInteger — Request timeout, msec
- PauseBetweenRetries SignedInteger — Pause between retries, msec
- baudRate SignedInteger — The data transmission speed, in bits per second, used for serial communication. Must match the baud rate configured on the device. Options: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10
- stopBits SignedInteger — The number of stop bits used to signal the end of a character (typically 1 or 2). Must match the device's serial configuration. Options: 0, 1, 2
- parity SignedInteger — The error-checking method used for serial communication (None, Even, or Odd). Must match the device's configured parity setting. Options: 0, 1, 2
- Transport SignedInteger — Transport Type Options: 0
- RetryCount SignedInteger — Retry request count
- description String — Optional free-text notes about this device, such as its physical location or purpose.
Request Body
GraphQL Query
mutation CreateDevice($input: CreateDeviceRequest!) {
CreateDevice(input: $input) {
ID
Name
DriverID
Description
}
}
Variables
{
"input": {
"Name": "My Hitachi EH Serial Device",
"Description": "",
"DriverID": "69932918-6D8B-420C-839E-65A9BE68FE3B",
"AliasTopics": false,
"Debug": false,
"MetaData": [],
"StoppedState": true,
"StatusRegister": null,
"Properties": [
{
"Key": "dataBits",
"Value": "2"
},
{
"Key": "ReadTimeout",
"Value": "2000"
},
{
"Key": "PauseBetweenRetries",
"Value": "0"
},
{
"Key": "deviceFile",
"Value": "/dev/ttyUSB0"
},
{
"Key": "baudRate",
"Value": "4"
},
{
"Key": "stopBits",
"Value": "0"
},
{
"Key": "parity",
"Value": "2"
},
{
"Key": "Transport",
"Value": "0"
},
{
"Key": "RetryCount",
"Value": "0"
},
{
"Key": "name",
"Value": "hitachi-eh-serial_device"
},
{
"Key": "description",
"Value": ""
}
]
}
}
Response
Status: 200 OK
{
"data": {
"CreateDevice": {
"ID": "<generated-uuid>",
"Name": "My Hitachi EH Serial Device",
"DriverID": "69932918-6D8B-420C-839E-65A9BE68FE3B",
"Description": ""
}
}
}
Create Device - IEC60870-5-104 Ethernet
POST {{edgeUrl}}/devicehub/v2
IEC 60870-5-104 Ethernet
Master/client driver for IEC 60870-5-104 (APCI/APDU over TCP, default port 2404).
Read model is publish: a background RX loop decodes monitor-direction I-frames (periodic, background, spontaneous, return-information and interrogation COTs) and publishes each value to the register with the same TypeID and IOA (or, when there is none, to the register of the other TypeID of the same measurand, e.g. M_SP_NA_1 <-> M_SP_TB_1), with a status derived from the quality bits and, for time-tagged TypeIDs, the CP56Time2a source timestamp. There is no polling: a register only gets a value when the station sends one. On connect the driver sends clock-sync, general interrogation (GI) and counter interrogation (CI), then repeats GI + CI every giSendPeriodSec (default 60 s), holding a round back while the previous GI/CI has not terminated. Writes are direct-execute command I-frames; C_* registers are write-only and never published.
Register class = IEC TypeID mnemonic (M_SP_NA_1, C_SE_NC_1, ...). Address = Information Object Address (IOA), 0-based, 0..16777215. Station id maps to the ASDU Common Address (CoA).
Driver ID: 4CEAF0D8-4BD1-4F4E-AC50-692CB2D18687 Group: IEC
Required properties:
- networkAddress String — IP Address
- networkPort SignedInteger — Port
- name String — A unique, user-defined name for this device. Used to identify the device throughout the edge gateway, including in message broker topics and logs.
Optional properties:
- Transport SignedInteger — Transport Type Options: 0
- KeepAlive SignedInteger — TCP Keep-Alive (s) (0 to disable)
- RetryCount SignedInteger — Retry request count
- originatorAddress SignedInteger — Originator address (COT high byte)
- PauseBetweenRetries SignedInteger — Pause between retries, msec
- ReadTimeout SignedInteger — Request timeout, msec
- stationId SignedInteger — Station id -> ASDU Common Address (2B LE)
- giSendPeriodSec SignedInteger — Period of the repeated general and counter interrogation (seconds)
- description String — Optional free-text notes about this device, such as its physical location or purpose.
Request Body
GraphQL Query
mutation CreateDevice($input: CreateDeviceRequest!) {
CreateDevice(input: $input) {
ID
Name
DriverID
Description
}
}
Variables
{
"input": {
"Name": "My IEC60870-5-104 Ethernet Device",
"Description": "",
"DriverID": "4CEAF0D8-4BD1-4F4E-AC50-692CB2D18687",
"AliasTopics": false,
"Debug": false,
"MetaData": [],
"StoppedState": true,
"StatusRegister": null,
"Properties": [
{
"Key": "Transport",
"Value": "0"
},
{
"Key": "networkAddress",
"Value": "192.168.1.100"
},
{
"Key": "KeepAlive",
"Value": "5"
},
{
"Key": "RetryCount",
"Value": "0"
},
{
"Key": "originatorAddress",
"Value": "0"
},
{
"Key": "networkPort",
"Value": "2404"
},
{
"Key": "PauseBetweenRetries",
"Value": "0"
},
{
"Key": "ReadTimeout",
"Value": "2000"
},
{
"Key": "stationId",
"Value": "1"
},
{
"Key": "giSendPeriodSec",
"Value": "60"
},
{
"Key": "name",
"Value": "iec104-ethernet_device"
},
{
"Key": "description",
"Value": ""
}
]
}
}
Response
Status: 200 OK
{
"data": {
"CreateDevice": {
"ID": "<generated-uuid>",
"Name": "My IEC60870-5-104 Ethernet Device",
"DriverID": "4CEAF0D8-4BD1-4F4E-AC50-692CB2D18687",
"Description": ""
}
}
}
Create Device - Keyence KV-10 Serial
POST {{edgeUrl}}/devicehub/v2
Keyence KV-10 Serial Driver
| Required fields: | > Connection Settings (Serial) |
| Browse devices supported: | No |
| Browse tags supported: | No |
| Supported device models: | Keyence Visual KV series (KV-10, KV-16, KV-24, KV-40, KV-80) over the CPU port host link, RS-232 |
| Limitations: | > Point-to-point line, no station ID. CPU port is fixed at 9600 8E1. Bit and unsigned-word value types only. One register per wire request; DM bit writes are read-modify-write of the whole word and are not atomic. T, T_Curr, C and C_Curr are read-only. |
Driver ID: EA2D2255-3ABD-46B3-876B-541D5CEDF961 Group: Keyence
Required properties:
- deviceFile String — The serial port path used to communicate with the device (/dev/ttyS1, /dev/ttyUSB0, …). Must match a port available on the gateway host.
- name String — A unique, user-defined name for this device. Used to identify the device throughout the edge gateway, including in message broker topics and logs.
Optional properties:
- PauseBetweenRetries SignedInteger — Pause between retries, msec
- Transport SignedInteger — Transport Type Options: 0
- parity SignedInteger — The error-checking method used for serial communication (None, Even, or Odd). Must match the device's configured parity setting. Options: 0, 1, 2
- ReadTimeout SignedInteger — Request timeout, msec
- dataBits SignedInteger — The number of data bits in each transmitted character (typically 7 or 8). Must match the device's serial configuration. Options: 0, 1, 2, 3
- stopBits SignedInteger — The number of stop bits used to signal the end of a character (typically 1 or 2). Must match the device's serial configuration. Options: 0, 1, 2
- baudRate SignedInteger — The data transmission speed, in bits per second, used for serial communication. Must match the baud rate configured on the device. Options: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10
- RetryCount SignedInteger — Retry request count
- description String — Optional free-text notes about this device, such as its physical location or purpose.
Request Body
GraphQL Query
mutation CreateDevice($input: CreateDeviceRequest!) {
CreateDevice(input: $input) {
ID
Name
DriverID
Description
}
}
Variables
{
"input": {
"Name": "My Keyence KV-10 Serial Device",
"Description": "",
"DriverID": "EA2D2255-3ABD-46B3-876B-541D5CEDF961",
"AliasTopics": false,
"Debug": false,
"MetaData": [],
"StoppedState": true,
"StatusRegister": null,
"Properties": [
{
"Key": "PauseBetweenRetries",
"Value": "0"
},
{
"Key": "Transport",
"Value": "0"
},
{
"Key": "parity",
"Value": "2"
},
{
"Key": "ReadTimeout",
"Value": "2000"
},
{
"Key": "dataBits",
"Value": "3"
},
{
"Key": "stopBits",
"Value": "0"
},
{
"Key": "deviceFile",
"Value": "/dev/ttyS0"
},
{
"Key": "baudRate",
"Value": "3"
},
{
"Key": "RetryCount",
"Value": "0"
},
{
"Key": "name",
"Value": "keyence-kv10-serial_device"
},
{
"Key": "description",
"Value": ""
}
]
}
}
Response
Status: 200 OK
{
"data": {
"CreateDevice": {
"ID": "<generated-uuid>",
"Name": "My Keyence KV-10 Serial Device",
"DriverID": "EA2D2255-3ABD-46B3-876B-541D5CEDF961",
"Description": ""
}
}
}
Create Device - Koyo Click Serial
POST {{edgeUrl}}/devicehub/v2
Koyo Click Serial Driver
| Required fields: | > Connection Settings (Serial) |
| Browse devices supported: | No |
| Browse tags supported: | No |
| Supported device models: | Koyo Click PLC Series (CLICK, CLICK PLUS) |
| Protocol: | Modbus RTU over RS-232/RS-485 |
| Register Settings: |
CLICK Port 1 (RJ12 programming port) is fixed at 38400 baud, 8 data bits, Odd parity, 1 stop bit, station id 1. Port 2/Port 3 are user configurable.
Register classes: C, T, CT, SC, DS, DD, DH, DF, XD, XD_bit, YD, YD_bit, TD, CTD, SD, TXT.
Driver ID: E89BF051-556F-4353-83D2-63CADBC6779C Group: Koyo
Required properties:
- deviceFile String — The serial port path used to communicate with the device (/dev/ttyS1, /dev/ttyUSB0, …). Must match a port available on the gateway host.
- stationId SignedInteger — This is a station no of device.
- baudRate SignedInteger — The data transmission speed, in bits per second, used for serial communication. Must match the baud rate configured on the device. Options: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10
- stopBits SignedInteger — The number of stop bits used to signal the end of a character (typically 1 or 2). Must match the device's serial configuration.
- dataBits SignedInteger — The number of data bits in each transmitted character (typically 7 or 8). Must match the device's serial configuration.
- parity SignedInteger — The error-checking method used for serial communication (None, Even, or Odd). Must match the device's configured parity setting. Options: 0, 1, 2
- name String — A unique, user-defined name for this device. Used to identify the device throughout the edge gateway, including in message broker topics and logs.
Optional properties:
- requestTimeoutMs SignedInteger — Response Timeout (ms)
- maxRequestSize SignedInteger — Maximum block size retrieved per request (# bytes)
- description String — Optional free-text notes about this device, such as its physical location or purpose.
Request Body
GraphQL Query
mutation CreateDevice($input: CreateDeviceRequest!) {
CreateDevice(input: $input) {
ID
Name
DriverID
Description
}
}
Variables
{
"input": {
"Name": "My Koyo Click Serial Device",
"Description": "",
"DriverID": "E89BF051-556F-4353-83D2-63CADBC6779C",
"AliasTopics": false,
"Debug": false,
"MetaData": [],
"StoppedState": true,
"StatusRegister": null,
"Properties": [
{
"Key": "deviceFile",
"Value": "/dev/ttyUSB0"
},
{
"Key": "stationId",
"Value": "1"
},
{
"Key": "requestTimeoutMs",
"Value": "1500"
},
{
"Key": "baudRate",
"Value": "5"
},
{
"Key": "stopBits",
"Value": "1"
},
{
"Key": "maxRequestSize",
"Value": "248"
},
{
"Key": "dataBits",
"Value": "8"
},
{
"Key": "parity",
"Value": "2"
},
{
"Key": "name",
"Value": "koyo-click-serial_device"
},
{
"Key": "description",
"Value": ""
}
]
}
}
Response
Status: 200 OK
{
"data": {
"CreateDevice": {
"ID": "<generated-uuid>",
"Name": "My Koyo Click Serial Device",
"DriverID": "E89BF051-556F-4353-83D2-63CADBC6779C",
"Description": ""
}
}
}
Create Device - LS Serial
POST {{edgeUrl}}/devicehub/v2
LS Serial
LS Electric (LSIS) PLCs on a serial line. One driver, three wire protocols, selected by the linkProtocol device setting:
0XGT dedicated (Cnet) - XGT family CPUs (XGB / XBM / XBC / XGK) through a Cnet module (XGL-CH2A / XBL-C21A) or the XBM built-in Cnet channel. RS-232C point-to-point or RS-485 multidrop (up to 32 nodes,stationId0..255).1XGT CPU-Direct - the loader port of an XGB / XBM / XBC / XGK CPU.2Master-K CPU-Direct - the loader port of a Master-K CPU (K7M, K80S, K120S, K200S, K300S, K1000S).
No TCP. linkProtocol must match the port the cable is actually on: the three protocols are mutually unintelligible, and a mismatch shows up as silence or as a rejected frame, not as a helpful error.
Cnet mode has a load-bearing precondition. The XG5000 per-channel operation mode must be XGT server. It is mutually exclusive and persisted in the CPU across power-off, so with the channel left on Modbus RTU server, Modbus ASCII server or Use P2P an XGT dedicated request gets silence, not an error reply. The loader-port modes have no such setting - the loader port is always live and needs no handshake.
There is no autobaud in any mode. baudRate, dataBits, stopBits and parity must match the port exactly. Defaults are 115200 8N1 for both XGT modes and 38400 8N1 for Master-K.
Registers
All addresses are 0-based, one integer per tag.
- Word rows (
PW,MW,LW,KW,FW,SW,DW,UW,NW,ZW,ZRW,TW,CW,TSW,CSW,RW) address a word directly and acceptuint16. _bitrows (PW_bit,MW_bit,LW_bit,KW_bit,FW_bit,DW_bit,UW_bit,RW_bit) address a bit inside a word asword*100 + bit, bit 00..15 (%MW100bit 5 is10005).SXaddresses a step asgroup*100 + step, step 00..99.TX/CXaddress a timer / counter contact by its number.
Value types are uint16 and bit only, one value per tag (no count arrays). There is no 32-bit, float or string support: no source agrees on the word order the XGT protocol uses for multi-word values, and the legacy driver did not expose them.
Rows that do not exist in every mode
The address maxima above are the widest of the three families, so a row can be valid in configuration and still be unavailable on the selected link. Using one returns a configuration error before anything is sent - not silence.
- Not available on
2Master-K:SW,NW,ZW,ZRW,UW,UW_bit,RW,RW_bit,TSW,CSW. - Not available on
0Cnet:ZRW,TSW,CSW.
FW, FW_bit, NW
All three are writable in every mode, matching the legacy drivers. What the device does with the write is another matter and differs per family:
- On both loader modes an
FWword write is accepted and takes only partially - the value is OR-ed into the resident word and sticks. - An
FW_bitwrite is accepted and has no effect at all. - An
NWwrite is rejected by the device and can still perturb the area, so treat it as hazardous rather than merely refused. - In Cnet mode the CPU refuses
FWandNWwrites outright with NAK1132.
Read them freely; write them only deliberately.
Master-K addressing
Master-K memory is one flat byte-addressed space and the loader protocol has no range check, so an out-of-range address silently reads or writes the next area's memory. There is no device error. A read returns a neighbouring area's data as though it were yours; a write corrupts that neighbour.
Two separate limits matter. The programmable extent of an area is what the CPU family documents; the memory-map spacing is where the address crosses into the next area:
| area | documented extent | crosses into | at word |
|---|---|---|---|
PW / PW_bit |
63 | MW |
128 |
MW / MW_bit |
191 | LW |
256 |
LW / LW_bit |
63 | KW |
128 |
KW / KW_bit |
31 | TX |
128 |
FW / FW_bit |
31 | SX step control |
128 |
Confirm the extent of each area for the exact CPU model before configuring an address near a limit. The declared maxima are wide because one register table has to serve all three families; they are not a statement about your CPU.
Driver ID: CD32E261-E51E-450C-BD0D-524FFE4BD83A Group: LS Industrial System
Required properties:
- linkProtocol SignedInteger — Serial link protocol the device speaks Options: 0, 1, 2
- stationId SignedInteger — Cnet station number (requires XG5000 operation mode 'XGT server' on the channel)
- deviceFile String — The serial port path used to communicate with the device (/dev/ttyS1, /dev/ttyUSB0, …). Must match a port available on the gateway host.
- name String — A unique, user-defined name for this device. Used to identify the device throughout the edge gateway, including in message broker topics and logs.
Optional properties:
- parity SignedInteger — The error-checking method used for serial communication (None, Even, or Odd). Must match the device's configured parity setting. Options: 0, 1, 2
- stopBits SignedInteger — The number of stop bits used to signal the end of a character (typically 1 or 2). Must match the device's serial configuration. Options: 0, 1, 2
- dataBits SignedInteger — The number of data bits in each transmitted character (typically 7 or 8). Must match the device's serial configuration. Options: 0, 1, 2, 3
- ReadTimeout SignedInteger — Request timeout, msec
- RetryCount SignedInteger — Retry request count
- Transport SignedInteger — Transport Type Options: 0
- baudRate SignedInteger — The data transmission speed, in bits per second, used for serial communication. Must match the baud rate configured on the device. Options: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10
- PauseBetweenRetries SignedInteger — Pause between retries, msec
- description String — Optional free-text notes about this device, such as its physical location or purpose.
Request Body
GraphQL Query
mutation CreateDevice($input: CreateDeviceRequest!) {
CreateDevice(input: $input) {
ID
Name
DriverID
Description
}
}
Variables
{
"input": {
"Name": "My LS Serial Device",
"Description": "",
"DriverID": "CD32E261-E51E-450C-BD0D-524FFE4BD83A",
"AliasTopics": false,
"Debug": false,
"MetaData": [],
"StoppedState": true,
"StatusRegister": null,
"Properties": [
{
"Key": "parity",
"Value": "0"
},
{
"Key": "stopBits",
"Value": "0"
},
{
"Key": "dataBits",
"Value": "3"
},
{
"Key": "linkProtocol",
"Value": "0"
},
{
"Key": "stationId",
"Value": "1"
},
{
"Key": "ReadTimeout",
"Value": "2000"
},
{
"Key": "RetryCount",
"Value": "0"
},
{
"Key": "Transport",
"Value": "0"
},
{
"Key": "baudRate",
"Value": "7"
},
{
"Key": "PauseBetweenRetries",
"Value": "0"
},
{
"Key": "deviceFile",
"Value": "/dev/ttyS0"
},
{
"Key": "name",
"Value": "ls-serial_device"
},
{
"Key": "description",
"Value": ""
}
]
}
}
Response
Status: 200 OK
{
"data": {
"CreateDevice": {
"ID": "<generated-uuid>",
"Name": "My LS Serial Device",
"DriverID": "CD32E261-E51E-450C-BD0D-524FFE4BD83A",
"Description": ""
}
}
}
Create Device - Mitsubishi F Serial
POST {{edgeUrl}}/devicehub/v2
Mitsubishi F Serial
Reads and writes a Mitsubishi FX2N / FX2NC or FX3U / FX3UC PLC over the FX programming port protocol (commands E0, E1, E7, E8) on a serial line. The programming port runs at 9600 baud, 7 data bits, even parity, 1 stop bit; a direct programming cable or an FX-232AW / FX-485PC-IF converter is required.
The model device setting selects the memory map and must match the PLC: M and S live at different byte addresses on FX2N and FX3U, so a wrong model reads and writes the wrong memory. Bit forcing (E7, E8) addresses the classic FX2N bit map. On FX3U the M and S areas sit outside that map, so the driver writes an M or S bit by reading the containing word (E0) and writing it back with the bit changed (E1), the same way a D_bit is written.
Register classes: X, Y, M, T, C, SM, S, R, SD, D, D_bit, CV, CV2, TV, Z. R and Z exist on FX3U only; an R or Z tag on an FX2N device gets a bad status and no request is sent. R is kept for parity with the previous driver but is not reachable: E0 and E1 ignore the fifth address digit, so an R access lands in other memory and the value read or written is not the R register. The PLC acknowledges the request, so no error is reported. Address ranges are advertised for the largest model. The driver does not check them against the selected model. On FX2N, X and Y end at 255 and a tag above that addresses memory the PLC does not populate; M ends at 3071 and a tag at M3072 or above addresses other classes' memory (Y0 first). Configure only the ranges your PLC has.
Addresses are plain decimal element numbers in every class. SM and SD start at 8000, CV2 at 200.
The FX3G and FX3S memory maps differ from both and are not covered.
The FX2N-10GM/20GM positioning unit is a third model choice with its own protocol, unrelated to the FX programming port. It runs at 9600 baud, 8 data bits, even parity, 1 stop bit. Register classes: X, Y, M, SM, D, SD, V, Z. X, Y, M and SM are individually addressed bits. Z is a 16-bit index register, the same as on FX3U. As with the FX2N/FX3U legs, an out-of-range GM address is not checked against the model: the unit answers with zeros and a good status instead of an error, so an over-range GM tag reports 0 forever. Configure only the ranges your unit has.
X is writable in this driver, the same as on the FX2N/FX3U legs, where forcing an input is a real debugging feature. The FX2N-10GM/20GM unit does not accept a force on X: the write reaches the unit, it replies with a single stray byte and then nothing more, and the write fails with a timeout. X itself is left unchanged. Do not force X on this model.
Y is writable only where the unit has a physical output. On an FX2N-10GM that is Y0 to Y5; a force on Y6 or above is accepted and reported successful by the driver, but the bit does not change, because the Y10 to Y67 block belongs to the larger FX2N-20GM and does not exist on a 10GM. Check which outputs your model provides before writing Y, and do not build logic on a write to an absent output appearing to succeed.
Driver ID: D14B860C-0345-4EBA-B3A4-64D227E0E2D7 Group: Mitsubishi
Required properties:
- deviceFile String — The serial port path used to communicate with the device (/dev/ttyS1, /dev/ttyUSB0, …). Must match a port available on the gateway host.
- model SignedInteger — PLC model Options: 0, 1, 2
- name String — A unique, user-defined name for this device. Used to identify the device throughout the edge gateway, including in message broker topics and logs.
Optional properties:
- RetryCount SignedInteger — Retry request count
- PauseBetweenRetries SignedInteger — Pause between retries, msec
- Transport SignedInteger — Transport Type Options: 0
- baudRate SignedInteger — The data transmission speed, in bits per second, used for serial communication. Must match the baud rate configured on the device. Options: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10
- ReadTimeout SignedInteger — Request timeout, msec
- dataBits SignedInteger — Data bits (FX programming port: 7; 10GM/20GM positioning port: 8) Options: 0, 1, 2, 3
- parity SignedInteger — The error-checking method used for serial communication (None, Even, or Odd). Must match the device's configured parity setting. Options: 0, 1, 2
- stopBits SignedInteger — The number of stop bits used to signal the end of a character (typically 1 or 2). Must match the device's serial configuration. Options: 0, 1, 2
- description String — Optional free-text notes about this device, such as its physical location or purpose.
Request Body
GraphQL Query
mutation CreateDevice($input: CreateDeviceRequest!) {
CreateDevice(input: $input) {
ID
Name
DriverID
Description
}
}
Variables
{
"input": {
"Name": "My Mitsubishi F Serial Device",
"Description": "",
"DriverID": "D14B860C-0345-4EBA-B3A4-64D227E0E2D7",
"AliasTopics": false,
"Debug": false,
"MetaData": [],
"StoppedState": true,
"StatusRegister": null,
"Properties": [
{
"Key": "RetryCount",
"Value": "0"
},
{
"Key": "PauseBetweenRetries",
"Value": "0"
},
{
"Key": "Transport",
"Value": "0"
},
{
"Key": "deviceFile",
"Value": "/dev/ttyUSB0"
},
{
"Key": "baudRate",
"Value": "3"
},
{
"Key": "ReadTimeout",
"Value": "2000"
},
{
"Key": "model",
"Value": "0"
},
{
"Key": "dataBits",
"Value": "2"
},
{
"Key": "parity",
"Value": "2"
},
{
"Key": "stopBits",
"Value": "0"
},
{
"Key": "name",
"Value": "mitsubishi-fx-serial_device"
},
{
"Key": "description",
"Value": ""
}
]
}
}
Response
Status: 200 OK
{
"data": {
"CreateDevice": {
"ID": "<generated-uuid>",
"Name": "My Mitsubishi F Serial Device",
"DriverID": "D14B860C-0345-4EBA-B3A4-64D227E0E2D7",
"Description": ""
}
}
}
Create Device - Mitsubishi Q Serial
POST {{edgeUrl}}/devicehub/v2
Mitsubishi MELSEC Q Serial
Serial driver for MELSEC Q-series CPUs over RS-232. Two different serial protocols are spoken by the Q family, so the driver carries a Model setting that selects one. The protocol is not auto-detected - pick the entry that matches the CPU.
| Model | CPUs | Protocol |
|---|---|---|
Q00 / Q00J / Q01H |
Q00J, Q00, Q01H built-in RS-232; QJ71C24N serial module | MC protocol, QnA-compatible 4C frame, format 5 (binary) |
Q02 / Q02H / Q06H |
Q02, Q02H, Q06H built-in RS-232 | MELSOFT (GX Developer CPU programming port transport) |
Device settings
| Setting | Notes |
|---|---|
| Device File | serial port, e.g. /dev/ttyS0 |
| Baud Rate / Data Bits / Parity / Stop Bits | must match the CPU port parameters; defaults are 9600 8O1 |
| Model | see the table above |
| Read Timeout | advanced setting, default 2000 ms |
One PLC per serial port; multidrop is not supported.
Reads are grouped up to 128 words per request on the Q00 / Q00J / Q01H model and up to 32 words on Q02 / Q02H / Q06H. A full 128-word group measured 404 ms at 9600 baud, so on slower links raise the Read Timeout - below roughly 2400 baud a full group no longer fits the 2000 ms default.
Registers
Bit devices: SM, X, Y, M, L, F, V, B, SB, S, DX, DY, TS, TC, SS, SC, CS, CC.
Word devices: D, SD, R, ZR, W, SW, TN, SN, CN, Z.
D and ZR also expose a _bit variant addressing a single bit inside a word; its address is word x 100 + bit, where bit is 00..15. For example D_bit 12503 is bit 3 of D125. Bit-of-word writes are performed as a read-modify-write of the whole word.
All addresses start at 0. X, Y, B, SB, DX, DY, W, SW, ZR addresses are entered in hexadecimal, matching the GX Developer device display.
R addresses block 0 only; use ZR for file registers above block 0. R and ZR are two views of the same file-register memory, so R n and ZR n are the same cell.
X is refreshed by the CPU scan - a written value is overwritten on the next cycle.
Driver ID: 19D4C84E-CC4A-470C-8605-6C8792D927A0 Group: Mitsubishi
Required properties:
- deviceFile String — The serial port path used to communicate with the device (/dev/ttyS1, /dev/ttyUSB0, …). Must match a port available on the gateway host.
- model SignedInteger — PLC series - selects the serial protocol (MC 4C format 5 or MELSOFT) Options: 0, 1
- name String — A unique, user-defined name for this device. Used to identify the device throughout the edge gateway, including in message broker topics and logs.
Optional properties:
- dataBits SignedInteger — The number of data bits in each transmitted character (typically 7 or 8). Must match the device's serial configuration. Options: 0, 1, 2, 3
- parity SignedInteger — The error-checking method used for serial communication (None, Even, or Odd). Must match the device's configured parity setting. Options: 0, 1, 2
- RetryCount SignedInteger — Retry request count
- PauseBetweenRetries SignedInteger — Pause between retries, msec
- stopBits SignedInteger — The number of stop bits used to signal the end of a character (typically 1 or 2). Must match the device's serial configuration. Options: 0, 1, 2
- ReadTimeout SignedInteger — Request timeout, msec
- Transport SignedInteger — Transport Type Options: 0
- baudRate SignedInteger — The data transmission speed, in bits per second, used for serial communication. Must match the baud rate configured on the device. Options: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10
- description String — Optional free-text notes about this device, such as its physical location or purpose.
Request Body
GraphQL Query
mutation CreateDevice($input: CreateDeviceRequest!) {
CreateDevice(input: $input) {
ID
Name
DriverID
Description
}
}
Variables
{
"input": {
"Name": "My Mitsubishi Q Serial Device",
"Description": "",
"DriverID": "19D4C84E-CC4A-470C-8605-6C8792D927A0",
"AliasTopics": false,
"Debug": false,
"MetaData": [],
"StoppedState": true,
"StatusRegister": null,
"Properties": [
{
"Key": "dataBits",
"Value": "3"
},
{
"Key": "parity",
"Value": "1"
},
{
"Key": "RetryCount",
"Value": "0"
},
{
"Key": "PauseBetweenRetries",
"Value": "0"
},
{
"Key": "deviceFile",
"Value": "/dev/ttyS0"
},
{
"Key": "stopBits",
"Value": "0"
},
{
"Key": "ReadTimeout",
"Value": "2000"
},
{
"Key": "model",
"Value": "0"
},
{
"Key": "Transport",
"Value": "0"
},
{
"Key": "baudRate",
"Value": "3"
},
{
"Key": "name",
"Value": "mitsubishi-q-serial_device"
},
{
"Key": "description",
"Value": ""
}
]
}
}
Response
Status: 200 OK
{
"data": {
"CreateDevice": {
"ID": "<generated-uuid>",
"Name": "My Mitsubishi Q Serial Device",
"DriverID": "19D4C84E-CC4A-470C-8605-6C8792D927A0",
"Description": ""
}
}
}
Create Device - Mitsubishi iQ-F Serial (FX5U)
POST {{edgeUrl}}/devicehub/v2
Mitsubishi iQ-F Serial (FX5U)
MELSEC Communication (MC) protocol, 3C frame, message format 1 (ASCII) with sum check, over RS-232 / RS-485. Covers MELSEC iQ-F CPUs (FX5U, FX5UC, FX5UJ) through the built-in 485 port or an FX5-232-BD / FX5-485-ADP adapter.
PLC setup (GX Works3)
Navigation -> Parameter -> FX5UCPU -> Module Parameter -> 485 Serial Port:
- Communication Protocol Type:
MC Protocol - Message Pattern:
Pattern 1 (X,Y OCT)- X and Y addresses are entered in octal - Sum Check:
Added - Data Format: 8 data bits, no parity, 1 stop bit (matches the driver defaults)
- Baud Rate: 19200 (driver default; any supported rate works if both sides match)
- Station No.: 0 to 15
Write the parameters and power-cycle the CPU. The same page is used for an FX5-232-BD / FX5-485-ADP adapter under its own channel.
Device settings
| Setting | Notes |
|---|---|
| Device File | serial port, e.g. /dev/ttyUSB0 |
| Baud Rate / Data Bits / Parity / Stop Bits | must match the PLC channel parameters |
| Station No. of PLC | 0..31, must match the PLC Station No. |
| Read Timeout | advanced setting, default 2000 ms |
One PLC per serial port; multidrop (several stations on one port) is not supported.
Reads are grouped up to 128 words (256 bytes) per request, about 0.3 s on the wire at 19200 baud. The group size is fixed. Below 4800 baud a full group no longer fits the default 2000 ms Read Timeout (about 2.3 s at 2400 baud, 4.7 s at 1200), so raise Read Timeout on slow links.
Registers
Bit devices: SM, X (read only), Y, M, L, F, B, SB, S, TS, TC, SS, SC, CS, CC.
Word devices: D, SD, R, W, SW, plus TN, SN, CN (current values), Z (index) and LZ (32-bit long index).
D, SD, R, W, SW also expose a _bit variant addressing a single bit inside a word; its address is word x 100 + bit, where bit is 00..15. For example D_bit 12503 is bit 3 of D125.
All addresses start at 0. B, SB, W, SW addresses are entered in hexadecimal and X, Y in octal, matching the GX Works3 device display.
Driver ID: 5765C8B1-01BC-4A7C-B944-F0D3AF8113D6 Group: Mitsubishi
Required properties:
- stationId SignedInteger — Station No. of PLC
- deviceFile String — The serial port path used to communicate with the device (/dev/ttyS1, /dev/ttyUSB0, …). Must match a port available on the gateway host.
- name String — A unique, user-defined name for this device. Used to identify the device throughout the edge gateway, including in message broker topics and logs.
Optional properties:
- baudRate SignedInteger — The data transmission speed, in bits per second, used for serial communication. Must match the baud rate configured on the device. Options: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10
- dataBits SignedInteger — The number of data bits in each transmitted character (typically 7 or 8). Must match the device's serial configuration. Options: 0, 1, 2, 3
- stopBits SignedInteger — The number of stop bits used to signal the end of a character (typically 1 or 2). Must match the device's serial configuration. Options: 0, 1, 2
- ReadTimeout SignedInteger — Request timeout, msec
- PauseBetweenRetries SignedInteger — Pause between retries, msec
- RetryCount SignedInteger — Retry request count
- parity SignedInteger — The error-checking method used for serial communication (None, Even, or Odd). Must match the device's configured parity setting. Options: 0, 1, 2
- Transport SignedInteger — Transport Type Options: 0
- description String — Optional free-text notes about this device, such as its physical location or purpose.
Request Body
GraphQL Query
mutation CreateDevice($input: CreateDeviceRequest!) {
CreateDevice(input: $input) {
ID
Name
DriverID
Description
}
}
Variables
{
"input": {
"Name": "My Mitsubishi iQ-F Serial (FX5U) Device",
"Description": "",
"DriverID": "5765C8B1-01BC-4A7C-B944-F0D3AF8113D6",
"AliasTopics": false,
"Debug": false,
"MetaData": [],
"StoppedState": true,
"StatusRegister": null,
"Properties": [
{
"Key": "baudRate",
"Value": "4"
},
{
"Key": "dataBits",
"Value": "3"
},
{
"Key": "stopBits",
"Value": "0"
},
{
"Key": "stationId",
"Value": "0"
},
{
"Key": "ReadTimeout",
"Value": "2000"
},
{
"Key": "PauseBetweenRetries",
"Value": "0"
},
{
"Key": "RetryCount",
"Value": "0"
},
{
"Key": "parity",
"Value": "0"
},
{
"Key": "Transport",
"Value": "0"
},
{
"Key": "deviceFile",
"Value": "/dev/ttyUSB0"
},
{
"Key": "name",
"Value": "mitsubishi-iqf-serial_device"
},
{
"Key": "description",
"Value": ""
}
]
}
}
Response
Status: 200 OK
{
"data": {
"CreateDevice": {
"ID": "<generated-uuid>",
"Name": "My Mitsubishi iQ-F Serial (FX5U) Device",
"DriverID": "5765C8B1-01BC-4A7C-B944-F0D3AF8113D6",
"Description": ""
}
}
}
Create Device - Opto22 MMIO Protocol Ethernet
POST {{edgeUrl}}/devicehub/v2
Opto22 MMIO Protocol Ethernet
OptoMMP (IEEE-1394 memory-map) Ethernet driver for Opto22 controllers. Binary request/response framing over TCP (default port 2001).
Driver ID: 532CF76E-5A99-44D2-A055-6CF8DE881B7D Group: Opto Devices
Required properties:
- networkAddress String — IP Address
- networkPort SignedInteger — Port
- name String — A unique, user-defined name for this device. Used to identify the device throughout the edge gateway, including in message broker topics and logs.
Optional properties:
- KeepAlive SignedInteger — TCP Keep-Alive (s) (0 to disable)
- ReadTimeout SignedInteger — Request timeout, msec
- RetryCount SignedInteger — Retry request count
- PauseBetweenRetries SignedInteger — Pause between retries, msec
- Transport SignedInteger — Transport Type Options: 0
- description String — Optional free-text notes about this device, such as its physical location or purpose.
Request Body
GraphQL Query
mutation CreateDevice($input: CreateDeviceRequest!) {
CreateDevice(input: $input) {
ID
Name
DriverID
Description
}
}
Variables
{
"input": {
"Name": "My Opto22 MMIO Protocol Ethernet Device",
"Description": "",
"DriverID": "532CF76E-5A99-44D2-A055-6CF8DE881B7D",
"AliasTopics": false,
"Debug": false,
"MetaData": [],
"StoppedState": true,
"StatusRegister": null,
"Properties": [
{
"Key": "KeepAlive",
"Value": "5"
},
{
"Key": "ReadTimeout",
"Value": "2000"
},
{
"Key": "RetryCount",
"Value": "0"
},
{
"Key": "PauseBetweenRetries",
"Value": "0"
},
{
"Key": "Transport",
"Value": "0"
},
{
"Key": "networkAddress",
"Value": "192.168.1.100"
},
{
"Key": "networkPort",
"Value": "2001"
},
{
"Key": "name",
"Value": "opto22-mmio_device"
},
{
"Key": "description",
"Value": ""
}
]
}
}
Response
Status: 200 OK
{
"data": {
"CreateDevice": {
"ID": "<generated-uuid>",
"Name": "My Opto22 MMIO Protocol Ethernet Device",
"DriverID": "532CF76E-5A99-44D2-A055-6CF8DE881B7D",
"Description": ""
}
}
}
Create Device - Panasonic FP Serial
POST {{edgeUrl}}/devicehub/v2
Panasonic FP Serial Driver (MEWTOCOL-COM)
| Prerequisites | FP-family PLC speaking classical MEWTOCOL-COM on a serial COM port (RS-232C / RS-422 / RS-485), in Computer-link mode (FP system register 412). General-purpose / MODBUS-RTU / PLC-link modes leave the port silent to MEWTOCOL. Supported CPUs: FP0 / FP0R / FP0H / FP-X / FP-X0 / FP-XH / FP-Sigma / FP-e / FP2 / FP2SH / FP10SH. One Gen2 device per serial port — RS-485 multidrop with several devices on one /dev/tty* is not supported (no shared-port bus lock yet).No request retries: a failed poll is retried by the next poll cycle. At baud <= 2400 raise ReadTimeout — a full 24-word exchange's line time approaches the default. |
| Required fields | Device file Baud rate Data bits Parity Stop bits Station ID |
| Browse devices supported | No |
| Browse tags supported | No |
Driver ID: 63AA6102-69AA-42E3-A81B-9C7FDA319720 Group: Panasonic
Required properties:
- deviceFile String — The serial port path used to communicate with the device (/dev/ttyS1, /dev/ttyUSB0, …). Must match a port available on the gateway host.
- name String — A unique, user-defined name for this device. Used to identify the device throughout the edge gateway, including in message broker topics and logs.
Optional properties:
- RetryCount SignedInteger — Retry request count
- baudRate SignedInteger — The data transmission speed, in bits per second, used for serial communication. Must match the baud rate configured on the device. Options: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10
- parity SignedInteger — The error-checking method used for serial communication (None, Even, or Odd). Must match the device's configured parity setting. Options: 0, 1, 2
- stopBits SignedInteger — The number of stop bits used to signal the end of a character (typically 1 or 2). Must match the device's serial configuration. Options: 0, 1, 2
- PauseBetweenRetries SignedInteger — Pause between retries, msec
- Transport SignedInteger — Transport Type Options: 0
- dataBits SignedInteger — The number of data bits in each transmitted character (typically 7 or 8). Must match the device's serial configuration. Options: 0, 1, 2, 3
- ReadTimeout SignedInteger — Request timeout, msec
- stationId SignedInteger — Station/unit number (1..99)
- description String — Optional free-text notes about this device, such as its physical location or purpose.
Request Body
GraphQL Query
mutation CreateDevice($input: CreateDeviceRequest!) {
CreateDevice(input: $input) {
ID
Name
DriverID
Description
}
}
Variables
{
"input": {
"Name": "My Panasonic FP Serial Device",
"Description": "",
"DriverID": "63AA6102-69AA-42E3-A81B-9C7FDA319720",
"AliasTopics": false,
"Debug": false,
"MetaData": [],
"StoppedState": true,
"StatusRegister": null,
"Properties": [
{
"Key": "RetryCount",
"Value": "0"
},
{
"Key": "baudRate",
"Value": "4"
},
{
"Key": "parity",
"Value": "1"
},
{
"Key": "stopBits",
"Value": "0"
},
{
"Key": "deviceFile",
"Value": "/dev/ttyUSB0"
},
{
"Key": "PauseBetweenRetries",
"Value": "0"
},
{
"Key": "Transport",
"Value": "0"
},
{
"Key": "dataBits",
"Value": "3"
},
{
"Key": "ReadTimeout",
"Value": "2000"
},
{
"Key": "stationId",
"Value": "1"
},
{
"Key": "name",
"Value": "panasonic-fp-serial_device"
},
{
"Key": "description",
"Value": ""
}
]
}
}
Response
Status: 200 OK
{
"data": {
"CreateDevice": {
"ID": "<generated-uuid>",
"Name": "My Panasonic FP Serial Device",
"DriverID": "63AA6102-69AA-42E3-A81B-9C7FDA319720",
"Description": ""
}
}
}
Create Device - Oemax Serial
POST {{edgeUrl}}/devicehub/v2
Oemax Serial Driver
| Prerequisites: | RS-232C or RS-485 connection to the CPU loader port |
| Required fields: | > Path to Device |
| > Baud Rate (default 9600, 8 data bits, 1 stop bit, no parity) | |
| > Station No. of PLC (default 255, addresses any PLC on the line) | |
| Browse devices supported: | No |
| Browse tags supported: | No |
| Supported device models: | RS Automation / OEMax NX series (NX7, NX70, NX700) |
| Miscellaneous: | > Byte Order: Little-Endian |
| > Addresses are entered in decimal, base 0 | |
| > Sub-bit classes R_bit, L_bit, M_bit, K_bit and F_bit are addressed as word*100 + bit | |
| > TC_Bit is a flat contact index, not a sub-bit | |
| > Register Grouping Size: 128 bytes (configurable) |
Registers
| Name | Types | Address range | Description |
|---|---|---|---|
| R_bit | bit | 0 - 12715 | External I/O relay (sub-bit) |
| R | uint16, int16, uint32, int32 | 0 - 127 | External I/O relay, word view |
| L_bit | bit | 0 - 6315 | Link relay (sub-bit) |
| L | uint16, int16, uint32, int32 | 0 - 63 | Link relay, word view |
| M_bit | bit | 0 - 12715 | Internal relay (sub-bit) |
| M | uint16, int16, uint32, int32 | 0 - 127 | Internal relay, word view |
| K_bit | bit | 0 - 12715 | Keep relay, retentive (sub-bit) |
| K | uint16, int16, uint32, int32 | 0 - 127 | Keep relay, word view |
| F_bit | bit | 0 - 1515 | Special internal relay, system flags (sub-bit) |
| F | uint16, int16, uint32, int32 | 0 - 15 | Special internal relay, word view |
| TC_Bit | bit | 0 - 255 | Timer/counter contact (flat bit) |
| W | uint16, int16, uint32, int32 | 0 - 2047 | Data register (word) |
| SV | uint16, int16, uint32, int32 | 0 - 255 | Timer/counter set value (word) |
| PV | uint16, int16, uint32, int32 | 0 - 255 | Timer/counter present value (word) |
| SR | uint16, int16, uint32, int32 | 0 - 511 | Special/status register (word) |
Driver ID: 4EB68B0D-3870-4DFF-9400-E64E846F0AD8 Group: RS Automation
Required properties:
- stationId SignedInteger — Station No. of PLC (255 addresses any PLC on the line)
- deviceFile String — The serial port path used to communicate with the device (/dev/ttyS1, /dev/ttyUSB0, …). Must match a port available on the gateway host.
- name String — A unique, user-defined name for this device. Used to identify the device throughout the edge gateway, including in message broker topics and logs.
Optional properties:
- parity SignedInteger — The error-checking method used for serial communication (None, Even, or Odd). Must match the device's configured parity setting. Options: 0, 1, 2
- ReadTimeout SignedInteger — Request timeout, msec
- RetryCount SignedInteger — Retry request count
- baudRate SignedInteger — The data transmission speed, in bits per second, used for serial communication. Must match the baud rate configured on the device. Options: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10
- stopBits SignedInteger — The number of stop bits used to signal the end of a character (typically 1 or 2). Must match the device's serial configuration. Options: 0, 1, 2
- dataBits SignedInteger — The number of data bits in each transmitted character (typically 7 or 8). Must match the device's serial configuration. Options: 0, 1, 2, 3
- MaxRequestSize SignedInteger — Maximum block size retrieved per request (# bytes)
- PauseBetweenRetries SignedInteger — Pause between retries, msec
- Transport SignedInteger — Transport Type Options: 0
- description String — Optional free-text notes about this device, such as its physical location or purpose.
Request Body
GraphQL Query
mutation CreateDevice($input: CreateDeviceRequest!) {
CreateDevice(input: $input) {
ID
Name
DriverID
Description
}
}
Variables
{
"input": {
"Name": "My Oemax Serial Device",
"Description": "",
"DriverID": "4EB68B0D-3870-4DFF-9400-E64E846F0AD8",
"AliasTopics": false,
"Debug": false,
"MetaData": [],
"StoppedState": true,
"StatusRegister": null,
"Properties": [
{
"Key": "parity",
"Value": "0"
},
{
"Key": "ReadTimeout",
"Value": "2000"
},
{
"Key": "RetryCount",
"Value": "0"
},
{
"Key": "stationId",
"Value": "255"
},
{
"Key": "deviceFile",
"Value": "/dev/ttyUSB0"
},
{
"Key": "baudRate",
"Value": "3"
},
{
"Key": "stopBits",
"Value": "0"
},
{
"Key": "dataBits",
"Value": "3"
},
{
"Key": "MaxRequestSize",
"Value": "128"
},
{
"Key": "PauseBetweenRetries",
"Value": "0"
},
{
"Key": "Transport",
"Value": "0"
},
{
"Key": "name",
"Value": "oemax-serial_device"
},
{
"Key": "description",
"Value": ""
}
]
}
}
Response
Status: 200 OK
{
"data": {
"CreateDevice": {
"ID": "<generated-uuid>",
"Name": "My Oemax Serial Device",
"DriverID": "4EB68B0D-3870-4DFF-9400-E64E846F0AD8",
"Description": ""
}
}
}
Create Device - SICK Flexi Soft
POST {{edgeUrl}}/devicehub/v2
SICK Flexi Soft
Driver for SICK Flexi Soft safety controllers (FX3-CPU0 to FX3-CPU3) over the CPU's RS-232 service port (port 1). The device speaks the RK512 Register Interface with bare telegrams (no 3964R link layer) at a fixed 115200 8N1, no flow control. Each register class maps to one data block that is always fetched whole.
Settings
| setting | default | notes |
|---|---|---|
| deviceFile | /dev/ttyS0 | serial port on the gateway host |
| baudRate | 115200 | fixed by the device |
| dataBits / stopBits / parity | 8 / 1 / None | fixed by the device |
| ReadTimeout | 3000 ms | not applied to requests; a request may wait up to 5 s for the half-duplex line, then its own deadline of 1000 + (block words + 11) x 8 ms runs from the moment it is sent |
| stationId | Direct (local device) | Direct, or Flexi Link A to D |
| writeRefreshInterval | 30 s | refresh cadence for written data; the device clears it after 60 s without a write. 0 disables |
Registers
| register | value type | addressing | access |
|---|---|---|---|
| I, Q, Logic result | bit | flat bit index 0-799 | read |
| Flexi soft to RS-232_Bit | bit | flat bit index 0-799 | read |
| Flexi soft to RS-232 | uint16 | even byte offset 0-98 | read |
| RS232 to Flexi soft_Bit | bit | flat bit index 0-31 | read/write |
| RS-232 to Flexi soft | uint16 | even byte offset 0-2 | read/write |
| Module Status Bit Array_Bit | bit | flat bit index 0-479 | read |
| Module Status Bit Array | uint16 | even byte offset 0-58 | read |
| Operating Data Block_Bit | bit | flat bit index 0-79 | read |
| Operating Data Block | uint16 | even byte offset 0-8 | read |
| Configuration CRCs_Bit | bit | flat bit index 0-159 | read |
| Configuration CRCs | uint16 | even byte offset 0-18 | read |
| CPU Module Type Key_Bit | bit | flat bit index 0-143 | read |
| CPU Module Type Key | uint16 | even byte offset 0-16 | read |
| Extension Modules Type_Bit | bit | flat bit index 0-2687 | read |
| Extension Modules Type | uint16 | even byte offset 0-334 | read |
Bit addresses are a continuous index over the block image: byte = address / 8, bit = address % 8, bit 0 = least significant. Word addresses are byte offsets and must be even. The I, Q and Logic result classes are aliases of the same block; the actual layout is defined in Flexi Soft Designer.
Limitations
- No browse; the register set is fixed.
- Word byte order is little-endian (confirmed on hardware).
- Data written to RS-232 to Flexi soft is refreshed on a timer; without a periodic write the device zeroes the area after 60 s.
Driver ID: 3F7A1C82-6B94-4D51-9E0A-2C58D7B4E169 Group: Sick Flexi
Required properties:
- stationId SignedInteger — Flexi Soft device address used in the telegram header. Options: 0, 1, 2, 3, 4
- deviceFile String — The serial port path used to communicate with the device (/dev/ttyS1, /dev/ttyUSB0, …). Must match a port available on the gateway host.
- name String — A unique, user-defined name for this device. Used to identify the device throughout the edge gateway, including in message broker topics and logs.
Optional properties:
- PauseBetweenRetries SignedInteger — Pause between retries, msec
- dataBits SignedInteger — The number of data bits in each transmitted character (typically 7 or 8). Must match the device's serial configuration. Options: 0, 1, 2, 3
- stopBits SignedInteger — The number of stop bits used to signal the end of a character (typically 1 or 2). Must match the device's serial configuration. Options: 0, 1, 2
- ReadTimeout SignedInteger — Not applied to requests. A request waits up to 5 s for the line, then its own deadline (1000 + (block words + 11) x 8 ms) runs from when it is sent.
- parity SignedInteger — The error-checking method used for serial communication (None, Even, or Odd). Must match the device's configured parity setting. Options: 0, 1, 2
- writeRefreshInterval SignedInteger — Seconds between refresh writes that keep RS-232 to Flexi Soft data alive; the device clears it after 60 s. 0 disables.
- Transport SignedInteger — Transport Type Options: 0
- baudRate SignedInteger — The data transmission speed, in bits per second, used for serial communication. Must match the baud rate configured on the device. Options: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10
- RetryCount SignedInteger — Retry request count
- description String — Optional free-text notes about this device, such as its physical location or purpose.
Request Body
GraphQL Query
mutation CreateDevice($input: CreateDeviceRequest!) {
CreateDevice(input: $input) {
ID
Name
DriverID
Description
}
}
Variables
{
"input": {
"Name": "My SICK Flexi Soft Device",
"Description": "",
"DriverID": "3F7A1C82-6B94-4D51-9E0A-2C58D7B4E169",
"AliasTopics": false,
"Debug": false,
"MetaData": [],
"StoppedState": true,
"StatusRegister": null,
"Properties": [
{
"Key": "PauseBetweenRetries",
"Value": "0"
},
{
"Key": "dataBits",
"Value": "3"
},
{
"Key": "stopBits",
"Value": "0"
},
{
"Key": "ReadTimeout",
"Value": "3000"
},
{
"Key": "parity",
"Value": "0"
},
{
"Key": "stationId",
"Value": "0"
},
{
"Key": "writeRefreshInterval",
"Value": "30"
},
{
"Key": "Transport",
"Value": "0"
},
{
"Key": "deviceFile",
"Value": "/dev/ttyS0"
},
{
"Key": "baudRate",
"Value": "7"
},
{
"Key": "RetryCount",
"Value": "0"
},
{
"Key": "name",
"Value": "sick-flexi_device"
},
{
"Key": "description",
"Value": ""
}
]
}
}
Response
Status: 200 OK
{
"data": {
"CreateDevice": {
"ID": "<generated-uuid>",
"Name": "My SICK Flexi Soft Device",
"DriverID": "3F7A1C82-6B94-4D51-9E0A-2C58D7B4E169",
"Description": ""
}
}
}
Create Device - Siemens S7-300 Serial
POST {{edgeUrl}}/devicehub/v2
Siemens S7-300 Serial
| Prerequisites | Siemens PC/MPI serial adapter between the host port and the PLC MPI port |
| Required fields | Communication Port Station ID |
| Browse devices supported | No |
| Browse tags supported | No |
| Supported device models | Siemens S7-300 via PC/MPI serial adapter |
Default serial line settings are 19200 baud, 8 data bits, odd parity, 1 stop bit. Station ID is the MPI address of the target PLC on the bus.
Driver ID: 3F9C2A71-58D4-4E0B-9B6A-7C15D8E24F30 Group: Siemens
Required properties:
- stationId SignedInteger — MPI station address of the target PLC
- deviceFile String — The serial port path used to communicate with the device (/dev/ttyS1, /dev/ttyUSB0, …). Must match a port available on the gateway host.
- name String — A unique, user-defined name for this device. Used to identify the device throughout the edge gateway, including in message broker topics and logs.
Optional properties:
- stopBits SignedInteger — The number of stop bits used to signal the end of a character (typically 1 or 2). Must match the device's serial configuration. Options: 0, 1, 2
- baudRate SignedInteger — The data transmission speed, in bits per second, used for serial communication. Must match the baud rate configured on the device. Options: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10
- dataBits SignedInteger — The number of data bits in each transmitted character (typically 7 or 8). Must match the device's serial configuration. Options: 0, 1, 2, 3
- parity SignedInteger — The error-checking method used for serial communication (None, Even, or Odd). Must match the device's configured parity setting. Options: 0, 1, 2
- description String — Optional free-text notes about this device, such as its physical location or purpose.
Request Body
GraphQL Query
mutation CreateDevice($input: CreateDeviceRequest!) {
CreateDevice(input: $input) {
ID
Name
DriverID
Description
}
}
Variables
{
"input": {
"Name": "My Siemens S7-300 Serial Device",
"Description": "",
"DriverID": "3F9C2A71-58D4-4E0B-9B6A-7C15D8E24F30",
"AliasTopics": false,
"Debug": false,
"MetaData": [],
"StoppedState": true,
"StatusRegister": null,
"Properties": [
{
"Key": "stopBits",
"Value": "0"
},
{
"Key": "stationId",
"Value": "2"
},
{
"Key": "deviceFile",
"Value": "/dev/ttyS0"
},
{
"Key": "baudRate",
"Value": "4"
},
{
"Key": "dataBits",
"Value": "3"
},
{
"Key": "parity",
"Value": "1"
},
{
"Key": "name",
"Value": "siemens-s7-300-serial_device"
},
{
"Key": "description",
"Value": ""
}
]
}
}
Response
Status: 200 OK
{
"data": {
"CreateDevice": {
"ID": "<generated-uuid>",
"Name": "My Siemens S7-300 Serial Device",
"DriverID": "3F9C2A71-58D4-4E0B-9B6A-7C15D8E24F30",
"Description": ""
}
}
}
Create Device - Siemens Sinumerik 808D Serial
POST {{edgeUrl}}/devicehub/v2
Siemens Sinumerik 808D Serial
Reads and writes the PLC memory of a Siemens Sinumerik 808D CNC over the PPU RS-232 port, using PPI (PROFIBUS-FDL link layer carrying an S7comm PDU).
| Prerequisites | RS-232 must be activated on the PPU (see below) |
| Required fields | Communication Port |
| Browse devices supported | No |
| Browse tags supported | No |
| Supported device models | Siemens Sinumerik 808D / 808D Advanced (PPU160.2 - the only PPU with an RS-232 port) |
Prerequisite: activate RS-232 on the PPU
On the PPU: PLC -> Step 7 Connect. Nothing on the serial port answers until this is switched on. The setting persists across power cycles.
Settings
| Setting | Default | Notes |
|---|---|---|
| Communication Port | /dev/ttyS0 | Serial port device file |
| Baud Rate | 115200 | |
| Data Bits | 8 | |
| Parity | Even | PPI is 8E1; the PPU does not accept other framings |
| Stop Bits | 1 | |
| Read Timeout (ms) | 1000 | |
| PPI: Delay Before Confirm (ms) | 40 | Gap between the slave short-ack and the poll telegram |
| PPI: Station Id | 2 | PPI address of the PLC (0..126) |
| Max PDU Size (bytes) | 240 | Whole-PDU ceiling, 128..240. Lower it if reads fail with a PDU size error |
Registers
| Register | Value types | Address format | Range |
|---|---|---|---|
| I | uint8 int8 uint16 int16 uint32 int32 float32 | DDDDD | 0..10239 |
| I_bit | bit | DDDDDd | 0..102397 |
| Q | uint8 int8 uint16 int16 uint32 int32 float32 | DDDDD | 0..10239 |
| Q_bit | bit | DDDDDd | 0..102397 |
| M | uint8 int8 uint16 int16 uint32 int32 float32 | DDDDD | 0..10239 |
| M_bit | bit | DDDDDd | 0..102397 |
| S | uint8 int8 uint16 int16 uint32 int32 float32 | DDDDD | 0..10239 |
| S_bit | bit | DDDDDd | 0..102397 |
| SM | uint8 int8 uint16 int16 uint32 int32 float32 | DDDDD | 0..10239 |
| SM_bit | bit | DDDDDd | 0..102397 |
| V | uint8 int8 uint16 int16 uint32 int32 float32 string | DDDDDDDD | 0..99999999 |
| V_bit | bit | DDDDDDDDd | 0..999999997 |
| T | bit uint32 | DDD | 0..255 |
| C | bit uint16 | DDD | 0..255 |
V addressing is composite: four digits of DB number followed by four digits of byte offset. V14000064 is DB1400 byte 64. V_bit appends the bit digit: V140000645 is DB1400 byte 64 bit 5. The bit classes use the same shape - M100 byte 10 bit 0 is M_bit address 100.
Address ranges above are the protocol maxima. The memory a given 808D actually implements is much smaller (typically I0-I8, Q0-Q5, M0-M255, T0-T63, C0-C63); reads outside it return an address error per tag. S and S_bit are S7-200 family classes with no backing area on the 808D - every read fails with an address error. SM implements only SM0.0-SM0.6 on this unit; the wider range in the table is the family range, and bytes past SM0 read back undocumented data.
Useful addresses
| Addresses | Contents |
|---|---|
| V14000000 - V14000127 | DB1400 retentive interface, read/write |
| V45001xxx | DB4500 machine data, MD14510 USER_DATA_INT, read |
| V45003xxx | DB4500 machine data, MD14512 USER_DATA_HEX, read |
| M0 - M255 | PLC bit memory |
| I0 - I8, Q0 - Q5 | Machine inputs / outputs |
DB4500 is sparse - probe before relying on an address. On the unit tested, bytes 1000 and 3000 answered and bytes 0 and 2000 returned an address error; the extent of each served window was not measured, and the window sizes in the 808D manual do not match what that unit served. Treat the V45001xxx / V45003xxx rows as starting points, not as mapped ranges.
Avoid writing to V1600xxxx - DB1600 is the alarm interface and writes there raise CNC alarms.
Driver ID: 40AB6619-9EF1-4EB2-BC61-3C20FC22BDF6 Group: Siemens
Required properties:
- deviceFile String — The serial port path used to communicate with the device (/dev/ttyS1, /dev/ttyUSB0, …). Must match a port available on the gateway host.
- name String — A unique, user-defined name for this device. Used to identify the device throughout the edge gateway, including in message broker topics and logs.
Optional properties:
- stationId SignedInteger
- dataBits SignedInteger — The number of data bits in each transmitted character (typically 7 or 8). Must match the device's serial configuration. Options: 0, 1, 2, 3
- parity SignedInteger — The error-checking method used for serial communication (None, Even, or Odd). Must match the device's configured parity setting. Options: 0, 1, 2
- stopBits SignedInteger — The number of stop bits used to signal the end of a character (typically 1 or 2). Must match the device's serial configuration. Options: 0, 1, 2
- maxPDUSize SignedInteger — Whole S7 PDU ceiling on the PPI link. Lower it if the device rejects requests with a PDU size error.
- baudRate SignedInteger — The data transmission speed, in bits per second, used for serial communication. Must match the baud rate configured on the device. Options: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10
- delayBeforeConfirm SignedInteger
- readTimeout SignedInteger
- description String — Optional free-text notes about this device, such as its physical location or purpose.
Request Body
GraphQL Query
mutation CreateDevice($input: CreateDeviceRequest!) {
CreateDevice(input: $input) {
ID
Name
DriverID
Description
}
}
Variables
{
"input": {
"Name": "My Siemens Sinumerik 808D Serial Device",
"Description": "",
"DriverID": "40AB6619-9EF1-4EB2-BC61-3C20FC22BDF6",
"AliasTopics": false,
"Debug": false,
"MetaData": [],
"StoppedState": true,
"StatusRegister": null,
"Properties": [
{
"Key": "stationId",
"Value": "2"
},
{
"Key": "deviceFile",
"Value": "/dev/ttyS0"
},
{
"Key": "dataBits",
"Value": "3"
},
{
"Key": "parity",
"Value": "2"
},
{
"Key": "stopBits",
"Value": "0"
},
{
"Key": "maxPDUSize",
"Value": "240"
},
{
"Key": "baudRate",
"Value": "7"
},
{
"Key": "delayBeforeConfirm",
"Value": "40"
},
{
"Key": "readTimeout",
"Value": "1000"
},
{
"Key": "name",
"Value": "siemens-sinumerik-808d-serial_device"
},
{
"Key": "description",
"Value": ""
}
]
}
}
Response
Status: 200 OK
{
"data": {
"CreateDevice": {
"ID": "<generated-uuid>",
"Name": "My Siemens Sinumerik 808D Serial Device",
"DriverID": "40AB6619-9EF1-4EB2-BC61-3C20FC22BDF6",
"Description": ""
}
}
}
Create Device - Siemens TI505 Serial
POST {{edgeUrl}}/devicehub/v2
Siemens Simatic TI505 Series Serial Driver
| Prerequisites | None |
| Required fields | Device file (serial port) |
| Line settings | 19200 7O1 (default) |
| Browse devices supported | No |
| Browse tags supported | No |
Raw NITP (Non-Intelligent Terminal Protocol) on the CPU program port: ASCII-hex frames :<len><task><payload><ecc>;, point-to-point, no station address.
Register classes: CR, X, Y (discrete bits), WX, WY, V (words, 16/32-bit), TCC, TCP, STW (16-bit only).
All classes accept writes. X/WX mirror the input image, so a written value holds only until the next I/O scan overwrites it.
Reads are grouped per class within a 16-word block; writes are always single-register.
Driver ID: 0F82FEA5-4775-45C6-AF8D-8FAAB5E50091 Group: Siemens
Required properties:
- deviceFile String — The serial port path used to communicate with the device (/dev/ttyS1, /dev/ttyUSB0, …). Must match a port available on the gateway host.
- name String — A unique, user-defined name for this device. Used to identify the device throughout the edge gateway, including in message broker topics and logs.
Optional properties:
- Transport SignedInteger — Transport Type Options: 0
- parity SignedInteger — The error-checking method used for serial communication (None, Even, or Odd). Must match the device's configured parity setting. Options: 0, 1, 2
- stopBits SignedInteger — The number of stop bits used to signal the end of a character (typically 1 or 2). Must match the device's serial configuration. Options: 0, 1, 2
- baudRate SignedInteger — The data transmission speed, in bits per second, used for serial communication. Must match the baud rate configured on the device. Options: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10
- ReadTimeout SignedInteger — Request timeout, msec
- RetryCount SignedInteger — Retry request count
- PauseBetweenRetries SignedInteger — Pause between retries, msec
- dataBits SignedInteger — The number of data bits in each transmitted character (typically 7 or 8). Must match the device's serial configuration. Options: 0, 1, 2, 3
- description String — Optional free-text notes about this device, such as its physical location or purpose.
Request Body
GraphQL Query
mutation CreateDevice($input: CreateDeviceRequest!) {
CreateDevice(input: $input) {
ID
Name
DriverID
Description
}
}
Variables
{
"input": {
"Name": "My Siemens TI505 Serial Device",
"Description": "",
"DriverID": "0F82FEA5-4775-45C6-AF8D-8FAAB5E50091",
"AliasTopics": false,
"Debug": false,
"MetaData": [],
"StoppedState": true,
"StatusRegister": null,
"Properties": [
{
"Key": "Transport",
"Value": "0"
},
{
"Key": "parity",
"Value": "1"
},
{
"Key": "stopBits",
"Value": "0"
},
{
"Key": "baudRate",
"Value": "4"
},
{
"Key": "ReadTimeout",
"Value": "2000"
},
{
"Key": "RetryCount",
"Value": "0"
},
{
"Key": "PauseBetweenRetries",
"Value": "0"
},
{
"Key": "dataBits",
"Value": "2"
},
{
"Key": "deviceFile",
"Value": "/dev/ttyS0"
},
{
"Key": "name",
"Value": "siemens-ti505-serial_device"
},
{
"Key": "description",
"Value": ""
}
]
}
}
Response
Status: 200 OK
{
"data": {
"CreateDevice": {
"ID": "<generated-uuid>",
"Name": "My Siemens TI505 Serial Device",
"DriverID": "0F82FEA5-4775-45C6-AF8D-8FAAB5E50091",
"Description": ""
}
}
}