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:

If Logical mode is selected, choose a Project Changes behavior. If a project change option is selected, it may reduce the driver’s performance.

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:

If Logical mode is selected, choose a Project Changes behavior. If a project change option is selected, it may reduce the driver’s performance.

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:

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: ..."\"... -> ..."1234"...
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: ..."\"... -> ..."1234"...
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:

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)

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:

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:

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: ..."\"... -> ..."1234"...
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: ..."\"... -> ..."1234"...
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

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*") * ValueIsExact ("key1*key2*value") * ValueBeginsWith ("key1*key2*prefix*") * ValueEndsWith ("key1*key2**suffix") * ValueContains ("key1*key2**middle*") * ValueIsEmpty ("key1*key2*") * ValueIsAny ("key1*key2**") <- equivalent to HasParam

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

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.

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.

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).

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.

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.

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

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

Features

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: .1.1. - 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 .1.1, which is only correct when the PLC NetId follows its IP 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 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

Features

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: .1.1. - 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 .1.1, which is only correct when the PLC NetId follows its IP 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 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

Registers

One register class, V. The address is the CAN arbitration ID (0 to 536870911).

Three value types are available:

For []byte and []string, list length equals the frame DLC.

slcan limitations

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

Features

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

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

Features

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

Features

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:

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.

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.

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:

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:

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

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": ""
        }
    }
}

View this page as Markdown