LitmusEdge 4.0.x API Documentation/DeviceHub/Drivers - LE, LEM, LUNS API Docs
List of Drivers by DriverID and GroupID
POST {{edgeUrl}}/devicehub/v2
List of Drivers by DriverID and GroupID
Returns every driver installed on the device, grouped by Driver Group. This is the small, cheap projection -- it includes only the IDs and names needed to build a navigation tree or a driver picker. Use this when you need to map a DriverID to a GroupID (or vice versa), or to render a "choose a driver" UI.
For the full per-driver schema (properties, registers, capabilities), use Get Driver Template by DriverID. For all drivers with full schema in one call, use List all Details of Drivers -- but read its warning first.
Endpoint
POST {{edgeUrl}}/devicehub/v2
Content-Type: application/json
```
## Authentication
HTTP Basic Auth. **Username** is your API token, **password** is empty. The same token is valid across `/devicehub/v2`, `/analytics/v2`, `/cc`, `/opcua`, and the other LE services.
## Request body (GraphQL)
``` graphql
query ListDriverGroups {
ListDriverGroups(input: { IDs: null }) {
ID
Name
Drivers {
ID
DriverGroupID
Name
}
}
}
```
### Arguments
| Argument | GraphQL type | Required | Description |
| --- | --- | --- | --- |
| `input.IDs` | `[ID!]` | No | Optional list of **driver group** IDs to filter on. Pass `null` (or omit) to return every group. |
## Response
`200 OK` -- `application/json`
| Field | Type | Description |
| --- | --- | --- |
| `data.ListDriverGroups` | `[DriverGroup!]!` | All driver groups installed on this device. |
| `data.ListDriverGroups[].ID` | `ID` | Driver group UUID. Use as the `GroupID` for `GetDrivers`. |
| `data.ListDriverGroups[].Name` | `String` | Display name of the group (e.g. `IEC`, `Modbus`, `OPC UA`). |
| `data.ListDriverGroups[].Drivers` | `[Driver!]!` | Drivers contained in this group. |
| `data.ListDriverGroups[].Drivers[].ID` | `ID` | Driver UUID. Use as `DriverID` for `Create New Device` and `GetDriver`. |
| `data.ListDriverGroups[].Drivers[].DriverGroupID` | `ID` | Echo of the parent group's ID (denormalized for client convenience). |
| `data.ListDriverGroups[].Drivers[].Name` | `String` | Display name of the driver (e.g. `Modbus TCP`, `IEC60870-5-102 Ethernet (Gen1)`). |
### Example response
``` json
{
"data": {
"ListDriverGroups": [
{
"ID": "49DBE624-5792-4313-8C79-550E5B930932",
"Name": "IEC",
"Drivers": [
{
"ID": "94290D6F-4197-4DBF-9847-1848F9840F63",
"DriverGroupID": "49DBE624-5792-4313-8C79-550E5B930932",
"Name": "IEC60870-5-102 Ethernet (Gen1)"
}
]
},
{
"ID": "65AF2873-9024-4148-A8F4-41DBE8192E46",
"Name": "Cutler-Hammer",
"Drivers": [ ... ]
}
]
}
}
```
## Errors
GraphQL endpoints return `200 OK` even on logical errors. Inspect the `errors` array in the response body:
``` json
{ "errors": [ { "message": "...", "path": ["..."], "extensions": { "code": "..." } } ] }
```
| `extensions.code` | Meaning |
| --- | --- |
| `UNAUTHENTICATED` | Missing or invalid API token. |
| `FORBIDDEN` | Token lacks read access to DeviceHub. |
| `BAD_USER_INPUT` | Invalid argument (unknown `ID`/`GroupID`, malformed UUID, etc.). |
| `NOT_FOUND` | The driver or driver group does not exist on this device. |
| `INTERNAL_SERVER_ERROR` | DeviceHub fault. Retry, then escalate via `System > Support`. |
A non-`200` HTTP response means DeviceHub itself is unreachable. See `Dashboard > DeviceHub Status`.
> **TLS note**: edge devices use a self-signed certificate by default. Either install the device CA in your client trust store or disable certificate verification when calling this endpoint directly.
### Request Body
**GraphQL Query**
```graphql
query ListDriverGroups {
ListDriverGroups(input: {IDs: null}) {
ID
Name
Drivers {
ID
DriverGroupID
Name
}
}
}
Response
Status: 200 OK
{
"data": {
"ListDriverGroups": [
{
"ID": "49DBE624-5792-4313-8C79-550E5B930932",
"Name": "IEC",
"Drivers": [
{
"ID": "94290D6F-4197-4DBF-9847-1848F9840F63",
"DriverGroupID": "49DBE624-5792-4313-8C79-550E5B930932",
"Name": "IEC60870-5-102 Ethernet (Gen1)"
}
]
},
{
"ID": "65AF2873-9024-4148-A8F4-41DBE8192E46",
"Name": "Cutler-Hammer",
"Drivers": [
{
"ID": "E48B9CBE-DBBB-420C-BDF0-8BAED607DFE0",
"DriverGroupID": "65AF2873-9024-4148-A8F4-41DBE8192E46",
"Name": "ELC Serial (Gen1)"
}
]
},
{
"ID": "7C43C6FC-3363-4ECB-8995-3010B6A40A58",
"Name": "Ping",
"Drivers": [
{
"ID": "F1710513-3E9B-455C-A41F-E54A6F376B39",
"DriverGroupID": "7C43C6FC-3363-4ECB-8995-3010B6A40A58",
"Name": "Ping (Gen1)"
}
]
},
{
"ID": "BEA85799-FEC4-45F3-8C4A-A9348B0A8D43",
"Name": "Mitsubishi",
"Drivers": [
{
"ID": "FDBEDC47-F974-4614-A4C1-90C1D31A2F6B",
"DriverGroupID": "BEA85799-FEC4-45F3-8C4A-A9348B0A8D43",
"Name": "Mitsubishi FX5U-Ethernet-ASCII (Gen1)"
},
{
"ID": "2ACE9A64-3CA9-4756-8D11-5F1C14A36605",
"DriverGroupID": "BEA85799-FEC4-45F3-8C4A-A9348B0A8D43",
"Name": "Mitsubishi Melsec Q-ASCII (Gen1)"
},
{
"ID": "547F2D33-0081-424A-978D-0CE3C6676410",
"DriverGroupID": "BEA85799-FEC4-45F3-8C4A-A9348B0A8D43",
"Name": "Mitsubishi FX2N-10GM/20GM Serial (Gen1)"
},
{
"ID": "9A1E258D-CDE5-4241-99C2-855028BC4001",
"DriverGroupID": "BEA85799-FEC4-45F3-8C4A-A9348B0A8D43",
"Name": "Mitsubishi Melsec-Q-Binary (Gen1)"
},
{
"ID": "7DA81F7B-CAF9-4E23-BE23-4D8B78B94E5F",
"DriverGroupID": "BEA85799-FEC4-45F3-8C4A-A9348B0A8D43",
"Name": "Mitsubishi FX5U Serial (Gen1)"
},
{
"ID": "E1F528E4-5623-4CB4-966E-75D9FA7FCCDF",
"DriverGroupID": "BEA85799-FEC4-45F3-8C4A-A9348B0A8D43",
"Name": "Mitsubishi A2SH serial (Gen1)"
},
{
"ID": "C3B4FA87-8AD5-49BA-BE2E-5CB47F1C6B24",
"DriverGroupID": "BEA85799-FEC4-45F3-8C4A-A9348B0A8D43",
"Name": "Mitsubishi A2N serial (Gen1)"
},
{
"ID": "EDB59BDF-3459-48C2-9E8E-6F5CAAA3E343",
"DriverGroupID": "BEA85799-FEC4-45F3-8C4A-A9348B0A8D43",
"Name": "Mitsubishi A Series Serial"
},
{
"ID": "793F3159-4523-4DCB-80A2-24B0F9432D0C",
"DriverGroupID": "BEA85799-FEC4-45F3-8C4A-A9348B0A8D43",
"Name": "Mitsubishi FX3G Binary Ethernet (Gen1)"
},
{
"ID": "5E339CD5-2C29-4E7E-AF1A-6A022B97211D",
"DriverGroupID": "BEA85799-FEC4-45F3-8C4A-A9348B0A8D43",
"Name": "Mitsubishi_Q00_01H_serial (Gen1)"
},
{
"ID": "EAA09420-76AB-41E9-B8D4-00778BE65B8D",
"DriverGroupID": "BEA85799-FEC4-45F3-8C4A-A9348B0A8D43",
"Name": "Mitsubishi_Q02_02H_serial (Gen1)"
},
{
"ID": "13BC4C47-36FE-4BC2-B5FE-1F47ABA21308",
"DriverGroupID": "BEA85799-FEC4-45F3-8C4A-A9348B0A8D43",
"Name": "Mitsubishi Melsec-L(Ascii) (Gen1)"
},
{
"ID": "AB084A0D-92A7-47C7-B4BC-825863223ABD",
"DriverGroupID": "BEA85799-FEC4-45F3-8C4A-A9348B0A8D43",
"Name": "Mitsubishi FX3U Serial (Gen1)"
},
{
"ID": "D0FC9A79-6339-46DC-A3DE-E5BFAAF1FF58",
"DriverGroupID": "BEA85799-FEC4-45F3-8C4A-A9348B0A8D43",
"Name": "Mitsubishi FX5U-Ethernet-Binary (Gen1)"
},
{
"ID": "1696AFB7-4AF7-42FB-AB9E-37A8DE909D26",
"DriverGroupID": "BEA85799-FEC4-45F3-8C4A-A9348B0A8D43",
"Name": "Mitsubishi A2USH serial (Gen1)"
},
{
"ID": "C35CD544-F1D7-4911-B38A-AD21AABE9744",
"DriverGroupID": "BEA85799-FEC4-45F3-8C4A-A9348B0A8D43",
"Name": "Mitsubishi QJ71E71"
},
{
"ID": "0D25A6F3-55DE-41CF-89CE-7BBA69A5A34D",
"DriverGroupID": "BEA85799-FEC4-45F3-8C4A-A9348B0A8D43",
"Name": "Mitsubishi FX3G ASCII Ethernet (Gen1)"
},
{
"ID": "66042B77-7B8F-486C-B8A6-E045A94D8D49",
"DriverGroupID": "BEA85799-FEC4-45F3-8C4A-A9348B0A8D43",
"Name": "Mitsubishi Q06 Serial (Gen1)"
},
{
"ID": "C51D9B26-5783-46B7-ACE6-F38B11952F96",
"DriverGroupID": "BEA85799-FEC4-45F3-8C4A-A9348B0A8D43",
"Name": "Mitsubishi SLMP (Gen1)"
},
{
"ID": "155BB25E-6DB0-4314-81E2-92335AE8A5F3",
"DriverGroupID": "BEA85799-FEC4-45F3-8C4A-A9348B0A8D43",
"Name": "Mitsubishi R04-Ethernet-Binary (Gen1)"
},
{
"ID": "341C7310-967F-4BAC-9C80-2C93BB9B068B",
"DriverGroupID": "BEA85799-FEC4-45F3-8C4A-A9348B0A8D43",
"Name": "Mitsubishi Q/L Ethernet"
},
{
"ID": "1AED6791-3AE4-4642-BF16-47AE5C71EEC6",
"DriverGroupID": "BEA85799-FEC4-45F3-8C4A-A9348B0A8D43",
"Name": "Mitsubishi FX2N serial (Gen1)"
},
{
"ID": "421854C7-C83E-411B-94DD-FC24C4E49B11",
"DriverGroupID": "BEA85799-FEC4-45F3-8C4A-A9348B0A8D43",
"Name": "Mitsubishi Melsec-L(Binary) (Gen1)"
}
]
},
{
"ID": "716AD223-3F68-4EC6-96E9-5B7FE18074EE",
"Name": "Keyence",
"Drivers": [
{
"ID": "29530297-998F-4E0A-9137-ABEDA478AF2D",
"DriverGroupID": "716AD223-3F68-4EC6-96E9-5B7FE18074EE",
"Name": "Keyence KV10 Serial (Gen1)"
},
{
"ID": "E2875F18-40FA-408A-8CE2-F40E022E3DED",
"DriverGroupID": "716AD223-3F68-4EC6-96E9-5B7FE18074EE",
"Name": "Keyence Serial (Gen1)"
},
{
"ID": "F43FC385-C0CC-4E0D-AABF-C1686F3AA6E3",
"DriverGroupID": "716AD223-3F68-4EC6-96E9-5B7FE18074EE",
"Name": "Keyence Nano Ethernet (Gen1)"
}
]
},
{
"ID": "0B430166-C7EF-4817-9251-83F8EDBC9ECC",
"Name": "HPE",
"Drivers": [
{
"ID": "5D9BFBAC-4735-41F8-89A5-C938CA6D2298",
"DriverGroupID": "0B430166-C7EF-4817-9251-83F8EDBC9ECC",
"Name": "HPE CAN Raw (Gen1)"
}
]
},
{
"ID": "D4895871-6CD2-4549-8D20-7975863B22D9",
"Name": "MQTT",
"Drivers": [
{
"ID": "236E3A53-E133-48D6-96F4-D95E61C7592A",
"DriverGroupID": "D4895871-6CD2-4549-8D20-7975863B22D9",
"Name": "MQTT Client"
},
{
"ID": "A206D802-2E0B-4C14-A38A-353F666FCF0C",
"DriverGroupID": "D4895871-6CD2-4549-8D20-7975863B22D9",
"Name": "Industrial OT Server"
}
]
},
{
"ID": "A3B0BB66-106B-4F08-874D-9F71C7040735",
"Name": "Danfoss",
"Drivers": [
{
"ID": "28B130B3-530E-4644-99EF-4FDC06C758DF",
"DriverGroupID": "A3B0BB66-106B-4F08-874D-9F71C7040735",
"Name": "Danfoss FC/TSC"
}
]
},
{
"ID": "61202EF9-57D1-4B1A-B58A-B135010DE19C",
"Name": "Opto Devices",
"Drivers": [
{
"ID": "9293C0E5-8EB9-45BF-A022-73E6F8BE0DE8",
"DriverGroupID": "61202EF9-57D1-4B1A-B58A-B135010DE19C",
"Name": "Opto22 MMIO Protocol Ethernet (Gen1)"
}
]
},
{
"ID": "13C8F72A-4AD6-4150-BDA9-B7991C1CF22E",
"Name": "Modbus",
"Drivers": [
{
"ID": "49D60576-FC85-43F7-A7F0-CAE4ECE7B854",
"DriverGroupID": "13C8F72A-4AD6-4150-BDA9-B7991C1CF22E",
"Name": "Modbus RTU Advanced"
},
{
"ID": "885F6EEB-F99A-4B32-9424-C550E7F56BAD",
"DriverGroupID": "13C8F72A-4AD6-4150-BDA9-B7991C1CF22E",
"Name": "Modbus UDP (Gen1)"
},
{
"ID": "6FDA2622-D5BF-4F8B-ADC3-5E791438525B",
"DriverGroupID": "13C8F72A-4AD6-4150-BDA9-B7991C1CF22E",
"Name": "Modbus ASCII (Gen1)"
},
{
"ID": "4DFD2D6A-F192-44F9-875A-DC0C51993C79",
"DriverGroupID": "13C8F72A-4AD6-4150-BDA9-B7991C1CF22E",
"Name": "Modbus RTU(Offset) (Gen1)"
},
{
"ID": "FAB8D777-BBD3-43FC-90E2-C69C41062660",
"DriverGroupID": "13C8F72A-4AD6-4150-BDA9-B7991C1CF22E",
"Name": "Modbus RTU over TCP"
},
{
"ID": "7E0EB9A6-D638-11E9-BB65-2A2AE2DBCCE4",
"DriverGroupID": "13C8F72A-4AD6-4150-BDA9-B7991C1CF22E",
"Name": "Modbus ASCII"
},
{
"ID": "F3FD7C20-D637-11E9-BB65-2A2AE2DBCCE4",
"DriverGroupID": "13C8F72A-4AD6-4150-BDA9-B7991C1CF22E",
"Name": "Modbus UDP"
},
{
"ID": "5E0CFCEA-9AF0-4BE5-A8C2-C811A254D452",
"DriverGroupID": "13C8F72A-4AD6-4150-BDA9-B7991C1CF22E",
"Name": "Modbus ASCII Advanced"
},
{
"ID": "879E0ED7-4F58-49F2-8947-AB12C87F50E9",
"DriverGroupID": "13C8F72A-4AD6-4150-BDA9-B7991C1CF22E",
"Name": "Modbus TCP(Offset) (Gen1)"
},
{
"ID": "546457FA-D638-11E9-BB65-2A2AE2DBCCE4",
"DriverGroupID": "13C8F72A-4AD6-4150-BDA9-B7991C1CF22E",
"Name": "Modbus RTU"
},
{
"ID": "169561E4-7D40-4B16-809A-24609C96D7AC",
"DriverGroupID": "13C8F72A-4AD6-4150-BDA9-B7991C1CF22E",
"Name": "Modbus RTU (Gen1)"
},
{
"ID": "2AF1FA08-D638-11E9-BB65-2A2AE2DBCCE4",
"DriverGroupID": "13C8F72A-4AD6-4150-BDA9-B7991C1CF22E",
"Name": "Modbus TCP"
},
{
"ID": "F4805625-AAC2-4F2D-A673-52E5A287B98E",
"DriverGroupID": "13C8F72A-4AD6-4150-BDA9-B7991C1CF22E",
"Name": "Modbus TCP (Gen1)"
}
]
},
{
"ID": "977B786A-226E-4C80-8B78-AC8C85EC7955",
"Name": "Toshiba",
"Drivers": [
{
"ID": "1437F841-FF5A-462D-AABC-D8C13BB3FBC0",
"DriverGroupID": "977B786A-226E-4C80-8B78-AC8C85EC7955",
"Name": "Toshiba Computer Link Ethernet (Gen1)"
}
]
},
{
"ID": "03417431-91D1-402C-8A21-B7FE636F3CE9",
"Name": "Brother Industries, Ltd",
"Drivers": [
{
"ID": "99C745DC-4BB3-4408-B966-58805E56FECC",
"DriverGroupID": "03417431-91D1-402C-8A21-B7FE636F3CE9",
"Name": "Brother Speedio Ethernet (Gen1)"
},
{
"ID": "5CAE67E3-C73D-4465-A515-AC65CFC91AAE",
"DriverGroupID": "03417431-91D1-402C-8A21-B7FE636F3CE9",
"Name": "Brother TC Ethernet (Gen1)"
}
]
},
{
"ID": "E72FA8EC-4838-469E-861F-767FF89208CE",
"Name": "ABB",
"Drivers": [
{
"ID": "EFE0CCA0-E2C0-4BAC-A535-766ECE45F66D",
"DriverGroupID": "E72FA8EC-4838-469E-861F-767FF89208CE",
"Name": "ABB Totalflow DB2 (Gen1)"
}
]
},
{
"ID": "A9CBAD14-15B5-4EEF-A522-82A7E047B9C5",
"Name": "Lumberg Automation",
"Drivers": [
{
"ID": "D5E201DC-35DE-44AD-B9DB-EB6AD70432C0",
"DriverGroupID": "A9CBAD14-15B5-4EEF-A522-82A7E047B9C5",
"Name": "LioN-X"
}
]
},
{
"ID": "12880F11-8970-4F9D-B27B-20E04F6E163E",
"Name": "Panasonic",
"Drivers": [
{
"ID": "B70AE188-67B0-4EAF-8116-69573AC45756",
"DriverGroupID": "12880F11-8970-4F9D-B27B-20E04F6E163E",
"Name": "Panasonic Mewtocol Ethernet (Gen1)"
},
{
"ID": "4982A1BF-B08E-40C9-BC93-809855DC6986",
"DriverGroupID": "12880F11-8970-4F9D-B27B-20E04F6E163E",
"Name": "Panasonic FP Serial (Gen1)"
},
{
"ID": "C86A893E-4AA8-4635-B43F-AED922AA80BC",
"DriverGroupID": "12880F11-8970-4F9D-B27B-20E04F6E163E",
"Name": "Panasonic FP7 Ethernet (Gen1)"
},
{
"ID": "0FCEB17A-2176-40DD-ACB7-EF5E5C6BDA2D",
"DriverGroupID": "12880F11-8970-4F9D-B27B-20E04F6E163E",
"Name": "Panasonic FP Ethernet (Gen1)"
}
]
},
{
"ID": "C6C2DB3D-0FC6-4C78-8201-5F721BEB4E81",
"Name": "HID Devices",
"Drivers": [
{
"ID": "A06BEA40-76CD-4EFE-9E52-E56A6F2AE434",
"DriverGroupID": "C6C2DB3D-0FC6-4C78-8201-5F721BEB4E81",
"Name": "HID Device (Gen1)"
}
]
},
{
"ID": "07FEFE68-C871-4864-9553-07763735F120",
"Name": "Siemens",
"Drivers": [
{
"ID": "E2578DAA-F1F8-4600-9445-C7BC6332E858",
"DriverGroupID": "07FEFE68-C871-4864-9553-07763735F120",
"Name": "Siemens Sinumerik Ethernet (Gen1)"
},
{
"ID": "8A3B12FC-8F69-4126-8556-1F9B66CA0D7A",
"DriverGroupID": "07FEFE68-C871-4864-9553-07763735F120",
"Name": "Siemens ISO-on-TCP"
},
{
"ID": "C76084F2-9CFC-4FF8-B588-D8217E9C88F4",
"DriverGroupID": "07FEFE68-C871-4864-9553-07763735F120",
"Name": "Siemens Logo Ethernet (Gen1)"
},
{
"ID": "4A37C40B-FD62-4B5C-B2AA-4BBBFB209BC3",
"DriverGroupID": "07FEFE68-C871-4864-9553-07763735F120",
"Name": "Siemens S7-200 Serial (Gen1)"
},
{
"ID": "01E8B6CE-1D26-4215-8E4A-B5807F389E71",
"DriverGroupID": "07FEFE68-C871-4864-9553-07763735F120",
"Name": "Siemens S7"
},
{
"ID": "C85F9F51-7FFD-40F7-92AE-991E0FE172CE",
"DriverGroupID": "07FEFE68-C871-4864-9553-07763735F120",
"Name": "Sinumerik 808D Serial (Gen1)"
},
{
"ID": "073494B0-B7BD-489F-A40F-2858BFEE6249",
"DriverGroupID": "07FEFE68-C871-4864-9553-07763735F120",
"Name": "Siemens S7-300 Serial (Gen1)"
},
{
"ID": "2A9E7F95-5A26-4EA8-AAF6-C3628DAE2CCD",
"DriverGroupID": "07FEFE68-C871-4864-9553-07763735F120",
"Name": "Siemens S7-200 Ethernet (Gen1)"
},
{
"ID": "B9BF9B1A-876D-4715-97E8-B455F01929AE",
"DriverGroupID": "07FEFE68-C871-4864-9553-07763735F120",
"Name": "Siemens S7-400 (Gen1)"
},
{
"ID": "994B2F23-5B0A-4AD0-BD8D-F5999A92F491",
"DriverGroupID": "07FEFE68-C871-4864-9553-07763735F120",
"Name": "Siemens TI505 Ethernet (Gen1)"
},
{
"ID": "96D9600E-985A-4C88-8F16-D33EABBB53DF",
"DriverGroupID": "07FEFE68-C871-4864-9553-07763735F120",
"Name": "Siemens S5 Ethernet (Gen1)"
},
{
"ID": "DAC6BE95-296E-4251-85C2-2189F4D5CFFB",
"DriverGroupID": "07FEFE68-C871-4864-9553-07763735F120",
"Name": "Siemens S7-Advanced (Gen1)"
},
{
"ID": "3966466E-68F6-4227-BCAD-49E6433AA4EE",
"DriverGroupID": "07FEFE68-C871-4864-9553-07763735F120",
"Name": "Siemens TI505 Serial (Gen1)"
}
]
},
{
"ID": "CB6DBA96-CCD5-4226-A367-CAD971C74700",
"Name": "Omron",
"Drivers": [
{
"ID": "6DE715E1-0246-4C13-8B3A-6978F41104C4",
"DriverGroupID": "CB6DBA96-CCD5-4226-A367-CAD971C74700",
"Name": "Omron Fins Ethernet (Gen1)"
},
{
"ID": "0591180A-997A-4512-884C-4A3DCDA6AE09",
"DriverGroupID": "CB6DBA96-CCD5-4226-A367-CAD971C74700",
"Name": "Omron-Peripheral (Gen1)"
},
{
"ID": "A0A7E240-0318-4094-BC96-D6980608D3B8",
"DriverGroupID": "CB6DBA96-CCD5-4226-A367-CAD971C74700",
"Name": "Omron-Hostlink (Gen1)"
},
{
"ID": "90C9F160-69CD-11ED-B37D-032E0F6C0B5E",
"DriverGroupID": "CB6DBA96-CCD5-4226-A367-CAD971C74700",
"Name": "Omron Fins Ethernet"
},
{
"ID": "3BAD3A48-3921-4D65-8805-C0F0879965BB",
"DriverGroupID": "CB6DBA96-CCD5-4226-A367-CAD971C74700",
"Name": "Omron-NJ-Ethernet (Gen1)"
}
]
},
{
"ID": "6A8C56FA-5571-40D4-9D35-0D493299240D",
"Name": "Delta PLC",
"Drivers": [
{
"ID": "9F48C353-AEA4-4CE3-AE15-686A557CEFB5",
"DriverGroupID": "6A8C56FA-5571-40D4-9D35-0D493299240D",
"Name": "Delta DVP Ethernet (Gen1)"
}
]
},
{
"ID": "40A6EAE7-45BC-448B-9CDC-84962902B735",
"Name": "Vipa",
"Drivers": [
{
"ID": "3F8D577D-3FB0-4DB3-8FED-85694903E27A",
"DriverGroupID": "40A6EAE7-45BC-448B-9CDC-84962902B735",
"Name": "Vipa 300s Ethernet (Gen1)"
}
]
},
{
"ID": "76D79908-4C56-48D6-BDCA-BAA416ED9BCA",
"Name": "SAIA",
"Drivers": [
{
"ID": "CF709836-53C7-4F49-9179-5DFC294C47A8",
"DriverGroupID": "76D79908-4C56-48D6-BDCA-BAA416ED9BCA",
"Name": "Saia Ethernet (Gen1)"
}
]
},
{
"ID": "8BF0B8E9-FFE3-4523-9E15-C3EC4EBD0C95",
"Name": "Allen Bradley",
"Drivers": [
{
"ID": "CB58D9A6-554E-4CD7-8D59-7E38D58F3FD4",
"DriverGroupID": "8BF0B8E9-FFE3-4523-9E15-C3EC4EBD0C95",
"Name": "AB Flex Serial (Gen1)"
},
{
"ID": "A3A953C4-A838-429A-8B5A-6D4EA49B8F61",
"DriverGroupID": "8BF0B8E9-FFE3-4523-9E15-C3EC4EBD0C95",
"Name": "SLC Gateway (Gen1)"
},
{
"ID": "2FB8D1F6-5675-11EB-AE93-0242AC130002",
"DriverGroupID": "8BF0B8E9-FFE3-4523-9E15-C3EC4EBD0C95",
"Name": "AB CompactLogix Ethernet FreeTag"
},
{
"ID": "132B1CC3-0301-4907-A9E5-1E2A6889084A",
"DriverGroupID": "8BF0B8E9-FFE3-4523-9E15-C3EC4EBD0C95",
"Name": "AB PLC5 (Gen1)"
},
{
"ID": "5799958C-1B2C-4696-AE16-28B363EA2B1B",
"DriverGroupID": "8BF0B8E9-FFE3-4523-9E15-C3EC4EBD0C95",
"Name": "AB PLC5 Ethernet (Gen1)"
},
{
"ID": "9479F114-86F0-4E77-8118-9A721340EC3C",
"DriverGroupID": "8BF0B8E9-FFE3-4523-9E15-C3EC4EBD0C95",
"Name": "AB ControlLogix Unsolicited (Gen1)"
},
{
"ID": "86933B9C-37D5-4926-9C6B-EDF94E5F6DC5",
"DriverGroupID": "8BF0B8E9-FFE3-4523-9E15-C3EC4EBD0C95",
"Name": "AB CompactLogix Ethernet Advanced"
},
{
"ID": "2FB8D1F6-5675-11EB-AE93-0242AC130003",
"DriverGroupID": "8BF0B8E9-FFE3-4523-9E15-C3EC4EBD0C95",
"Name": "AB EthernetIP Ethernet"
},
{
"ID": "D8C325DA-F7BC-4F9D-97C9-2F06357151A6",
"DriverGroupID": "8BF0B8E9-FFE3-4523-9E15-C3EC4EBD0C95",
"Name": "AB Micro850 FreeTag (Gen1)"
},
{
"ID": "ACC567EB-5CEF-41D2-8176-158D659A1105",
"DriverGroupID": "8BF0B8E9-FFE3-4523-9E15-C3EC4EBD0C95",
"Name": "AB ControlLogix FreeTag (Gen1)"
},
{
"ID": "1C47E56C-FFD6-4D8C-98AB-81BD13D38C4F",
"DriverGroupID": "8BF0B8E9-FFE3-4523-9E15-C3EC4EBD0C95",
"Name": "AB DF1 (Gen1)"
},
{
"ID": "D3D9A295-403F-4F92-A675-B3DBD0972ECE",
"DriverGroupID": "8BF0B8E9-FFE3-4523-9E15-C3EC4EBD0C95",
"Name": "AB CompactLogix FreeTag (Gen1)"
},
{
"ID": "DDB534E5-0473-4AE9-8825-9483D551BB85",
"DriverGroupID": "8BF0B8E9-FFE3-4523-9E15-C3EC4EBD0C95",
"Name": "AB Micro850 (Gen1)"
},
{
"ID": "BC24D3BC-4CF6-4E3F-8A9B-756718645525",
"DriverGroupID": "8BF0B8E9-FFE3-4523-9E15-C3EC4EBD0C95",
"Name": "AB FlexLogix (Gen1)"
}
]
},
{
"ID": "5F7D38A3-6F05-48D6-AA1F-A4B8EF2907D8",
"Name": "Hitachi Devices",
"Drivers": [
{
"ID": "FAE5C1D8-A774-4D9A-A186-5ADAEDA0B31D",
"DriverGroupID": "5F7D38A3-6F05-48D6-AA1F-A4B8EF2907D8",
"Name": "Hitachi serial (Gen1)"
}
]
},
{
"ID": "742AED41-707F-4114-BFA8-B8257E31964F",
"Name": "LS Industrial System",
"Drivers": [
{
"ID": "111BCF84-25D5-4C53-9588-D22CFF50F6C5",
"DriverGroupID": "742AED41-707F-4114-BFA8-B8257E31964F",
"Name": "LS XBM Serial (Gen1)"
},
{
"ID": "9F2C6E7B-363A-4933-8B14-3FDBE3348276",
"DriverGroupID": "742AED41-707F-4114-BFA8-B8257E31964F",
"Name": "LS XBM Cnet Serial (Gen1)"
},
{
"ID": "CAC8E388-0230-4EA3-99D0-9B4FE42F9328",
"DriverGroupID": "742AED41-707F-4114-BFA8-B8257E31964F",
"Name": "LS Master-K CPU Direct Serial (Gen1)"
}
]
},
{
"ID": "4EDA2D28-87A4-4B42-ABEF-9B169C056B74",
"Name": "Yokogawa",
"Drivers": [
{
"ID": "9D130EEC-9EFC-4FA0-A64B-D6DD6E76547B",
"DriverGroupID": "4EDA2D28-87A4-4B42-ABEF-9B169C056B74",
"Name": "Yokogawa FA-M3 Ethernet (Gen1)"
}
]
},
{
"ID": "6952C87C-05F0-4750-84BE-6CA50FC9F04E",
"Name": "Koyo",
"Drivers": [
{
"ID": "C79B4800-D638-11E9-BB65-2A2AE2DBCCE4",
"DriverGroupID": "6952C87C-05F0-4750-84BE-6CA50FC9F04E",
"Name": "Koyo Ethernet"
},
{
"ID": "27522C78-CBE8-4BF0-BD26-43DAD7E02F0C",
"DriverGroupID": "6952C87C-05F0-4750-84BE-6CA50FC9F04E",
"Name": "Koyo Click Serial (Gen1)"
},
{
"ID": "DEABEBA3-7E58-4774-A475-39F81ECF486B",
"DriverGroupID": "6952C87C-05F0-4750-84BE-6CA50FC9F04E",
"Name": "Koyo Direct Serial (Gen1)"
}
]
},
{
"ID": "8043605E-5FA7-49C0-94A3-E2D736D93306",
"Name": "Sick Flexi",
"Drivers": [
{
"ID": "27C6423C-B925-460F-9915-82CCDB79CC36",
"DriverGroupID": "8043605E-5FA7-49C0-94A3-E2D736D93306",
"Name": "Sick Flexi Serial (Gen1)"
}
]
},
{
"ID": "C07F341F-78AB-4C49-B770-E571E2AA6F99",
"Name": "Fuji Devices",
"Drivers": [
{
"ID": "2BB297DF-B51E-4E0B-ABE9-52267DFBDAFB",
"DriverGroupID": "C07F341F-78AB-4C49-B770-E571E2AA6F99",
"Name": "Fuji SPH2000 Ethernet (Gen1)"
},
{
"ID": "E9DA2966-C794-4282-854C-F624F84DCB75",
"DriverGroupID": "C07F341F-78AB-4C49-B770-E571E2AA6F99",
"Name": "Fuji NB serial (Gen1)"
}
]
},
{
"ID": "AFC9E184-1C91-40CD-9811-DC94C436BDD6",
"Name": "Simulator",
"Drivers": [
{
"ID": "5BC98836-CFD4-11E9-BB65-2A2AE2DBCCE4",
"DriverGroupID": "AFC9E184-1C91-40CD-9811-DC94C436BDD6",
"Name": "Generator"
},
{
"ID": "50E3EDA1-11F9-41D6-9232-778A28665580",
"DriverGroupID": "AFC9E184-1C91-40CD-9811-DC94C436BDD6",
"Name": "Simulator (Gen1)"
}
]
},
{
"ID": "97A200EE-BD12-464C-8FA9-1E39D5A5794B",
"Name": "OSI",
"Drivers": [
{
"ID": "41EFEEDE-E2C6-4D34-AD6C-2442A8D9B2B1",
"DriverGroupID": "97A200EE-BD12-464C-8FA9-1E39D5A5794B",
"Name": "OSI Agent"
}
]
},
{
"ID": "0B430167-C8EF-4717-9271-83F77DBC9EC1",
"Name": "CAN Bus",
"Drivers": [
{
"ID": "6A849294-D48A-4CE7-977F-96B1B6499A19",
"DriverGroupID": "0B430167-C8EF-4717-9271-83F77DBC9EC1",
"Name": "CAN Raw (Gen1)"
}
]
},
{
"ID": "F35A3E1A-15DB-4E98-8EB1-97605F3E8260",
"Name": "Emerson",
"Drivers": [
{
"ID": "96B7A2BE-1EA8-4DC0-8809-EBF867ADFFFF",
"DriverGroupID": "F35A3E1A-15DB-4E98-8EB1-97605F3E8260",
"Name": "DNP3 Ethernet"
},
{
"ID": "96B7A2BE-1EA8-4DC0-8809-EBF867ADFB60",
"DriverGroupID": "F35A3E1A-15DB-4E98-8EB1-97605F3E8260",
"Name": "ROC800 Ethernet"
}
]
},
{
"ID": "BC57018C-415B-4EAB-B732-EF86409B4AFE",
"Name": "Atlas Copco",
"Drivers": [
{
"ID": "8AD19C24-57B8-4B53-A40D-B864BB706EB6",
"DriverGroupID": "BC57018C-415B-4EAB-B732-EF86409B4AFE",
"Name": "Torque Tool Ethernet (Gen1)"
}
]
},
{
"ID": "6DDD4AB9-4A54-4F57-9434-EFC74BFF3722",
"Name": "Excel",
"Drivers": [
{
"ID": "7AC52EDC-EBA9-4669-82CF-8EA99323E697",
"DriverGroupID": "6DDD4AB9-4A54-4F57-9434-EFC74BFF3722",
"Name": "Excel (Gen1)"
}
]
},
{
"ID": "5411BFB1-70EB-4ADE-9C91-4E6D600F34AA",
"Name": "GPIO",
"Drivers": [
{
"ID": "F2B30AEE-10E9-4832-86BD-8212088D93EE",
"DriverGroupID": "5411BFB1-70EB-4ADE-9C91-4E6D600F34AA",
"Name": "HPE GPIO (Gen1)"
}
]
},
{
"ID": "68508DEB-B18D-4BA4-915C-4FDB9E479ACB",
"Name": "Fanuc Corporation",
"Drivers": [
{
"ID": "588C8307-33D1-4526-85BD-FECC82C82C2E",
"DriverGroupID": "68508DEB-B18D-4BA4-915C-4FDB9E479ACB",
"Name": "Fanuc CNC Ethernet (Gen1)"
}
]
},
{
"ID": "A28C4E24-AAE7-4FC4-BB5F-D0B98DDDB794",
"Name": "Beckhoff",
"Drivers": [
{
"ID": "CBB394D8-42AB-42AC-84CD-480458835DAE",
"DriverGroupID": "A28C4E24-AAE7-4FC4-BB5F-D0B98DDDB794",
"Name": "Beckhoff ADS/AMS Ethernet (Gen1)"
},
{
"ID": "9AA30E17-BE0A-4B7E-BFB8-CE09D4188021",
"DriverGroupID": "A28C4E24-AAE7-4FC4-BB5F-D0B98DDDB794",
"Name": "Beckhoff TwinCAT3 Ethernet (Gen1)"
}
]
},
{
"ID": "A438B85F-5876-4F0A-81F3-90FF8B8A5268",
"Name": "ODVA",
"Drivers": [
{
"ID": "BFE326ED-FEEB-4D57-B02A-2B0B7BFB8223",
"DriverGroupID": "A438B85F-5876-4F0A-81F3-90FF8B8A5268",
"Name": "CIP Explicit (Gen1)"
}
]
},
{
"ID": "764966FF-3E62-4C62-8A78-CBB9C28BBED8",
"Name": "GE Fanuc",
"Drivers": [
{
"ID": "5F7ED114-AFBE-45DE-B86A-035DE603A82B",
"DriverGroupID": "764966FF-3E62-4C62-8A78-CBB9C28BBED8",
"Name": "GE Fanuc CMM Serial (Gen1)"
},
{
"ID": "A72B91B9-6666-41E8-9C3F-8B3B96A76ECE",
"DriverGroupID": "764966FF-3E62-4C62-8A78-CBB9C28BBED8",
"Name": "GE Fanuc SNP Serial (Gen1)"
},
{
"ID": "4C9B19DF-60AA-4667-A1A3-62CBA2F1B2CF",
"DriverGroupID": "764966FF-3E62-4C62-8A78-CBB9C28BBED8",
"Name": "GE Fanuc 90-30 Ethernet (Gen1)"
},
{
"ID": "F2AEC18F-3D63-4661-9E84-83E6FCB087AE",
"DriverGroupID": "764966FF-3E62-4C62-8A78-CBB9C28BBED8",
"Name": "GE Fanuc RX3i Serial (Gen1)"
},
{
"ID": "85F8517C-0453-4B78-8B0C-74ED738A9EC3",
"DriverGroupID": "764966FF-3E62-4C62-8A78-CBB9C28BBED8",
"Name": "GE Fanuc RX3i Ethernet (Gen1)"
}
]
},
{
"ID": "324F3DC4-08FB-41C7-ABC6-9ED65156E3FF",
"Name": "Yaskawa",
"Drivers": [
{
"ID": "AD2863B5-85F6-4E4B-885B-57AD37328F60",
"DriverGroupID": "324F3DC4-08FB-41C7-ABC6-9ED65156E3FF",
"Name": "Yaskawa MP2300 Ethernet (Gen1)"
}
]
},
{
"ID": "DF33D17A-150E-4030-B08D-5C447C59DDB8",
"Name": "JTEKT Toyopuc",
"Drivers": [
{
"ID": "5C8E41C3-6DF1-47B5-AD2E-9C5FD0FF803C",
"DriverGroupID": "DF33D17A-150E-4030-B08D-5C447C59DDB8",
"Name": "JTEKT Toyopuc CMP-Link Ethernet (Gen1)"
},
{
"ID": "97FB16B4-6330-43CA-B6EC-669319897C66",
"DriverGroupID": "DF33D17A-150E-4030-B08D-5C447C59DDB8",
"Name": "JTEKT Toyopuc serial (Gen1)"
}
]
},
{
"ID": "C7EFE87F-9F64-4ABD-B33A-D0DDA717A035",
"Name": "Euromap63",
"Drivers": [
{
"ID": "C4A266EC-B41D-4AEB-9920-5044FFD5BF1D",
"DriverGroupID": "C7EFE87F-9F64-4ABD-B33A-D0DDA717A035",
"Name": "Euromap63 (Gen1)"
}
]
},
{
"ID": "832253B5-ED0E-4F63-A6BD-79346A5CF69F",
"Name": "BACnet",
"Drivers": [
{
"ID": "83935618-A9BB-11EB-BCBC-0242AC130002",
"DriverGroupID": "832253B5-ED0E-4F63-A6BD-79346A5CF69F",
"Name": "BacnetIP"
}
]
},
{
"ID": "1A41D17E-41C1-4817-8681-0DBA0486770E",
"Name": "MTConnect",
"Drivers": [
{
"ID": "A1203823-578D-48C4-832A-34670D6F0DF7",
"DriverGroupID": "1A41D17E-41C1-4817-8681-0DBA0486770E",
"Name": "MTConnect Ethernet (Gen1)"
}
]
},
{
"ID": "68508DEB-B18D-4BA4-915C-4FDB9E479AAA",
"Name": "Heidenhain",
"Drivers": [
{
"ID": "BC328283-3630-479E-A503-0EC999898B3E",
"DriverGroupID": "68508DEB-B18D-4BA4-915C-4FDB9E479AAA",
"Name": "Heidenhain 530 Advanced Ethernet (Gen1)"
},
{
"ID": "479A3869-9394-4F8B-869D-EB19454146AD",
"DriverGroupID": "68508DEB-B18D-4BA4-915C-4FDB9E479AAA",
"Name": "Heidenhain 640 Ethernet (Gen1)"
},
{
"ID": "41C357C7-505A-4D7F-9D80-CDD120517935",
"DriverGroupID": "68508DEB-B18D-4BA4-915C-4FDB9E479AAA",
"Name": "Heidenhain 530 Ethernet (Gen1)"
}
]
},
{
"ID": "4092699F-397B-4B57-8442-55A4F81B1ECA",
"Name": "RS Automation",
"Drivers": [
{
"ID": "1F64A3F7-8AB4-4030-A773-4D7F428F2354",
"DriverGroupID": "4092699F-397B-4B57-8442-55A4F81B1ECA",
"Name": "Oemax Serial (Gen1)"
}
]
},
{
"ID": "C6144625-7AAE-48E2-8412-46D0392033C5",
"Name": "Parker",
"Drivers": [
{
"ID": "1D7CBE1A-1C53-41E4-B5BF-C4515C965880",
"DriverGroupID": "C6144625-7AAE-48E2-8412-46D0392033C5",
"Name": "Parker ACR9000 Ethernet (Gen1)"
}
]
},
{
"ID": "C68EEB3B-3994-4342-8A3B-9B5C11FBC511",
"Name": "Profinet",
"Drivers": [
{
"ID": "28B130B3-530E-4644-99EF-4FDC06C758DE",
"DriverGroupID": "C68EEB3B-3994-4342-8A3B-9B5C11FBC511",
"Name": "Profinet Acyclic"
}
]
},
{
"ID": "46D632B9-23E3-444B-BC84-FD670E521D9F",
"Name": "OPCUA",
"Drivers": [
{
"ID": "3FCB9EF2-D638-11E9-BB65-2A2AE2DBCCE4",
"DriverGroupID": "46D632B9-23E3-444B-BC84-FD670E521D9F",
"Name": "OPCUA client"
},
{
"ID": "6C3031AE-E667-4849-A302-6D074FE5DFD3",
"DriverGroupID": "46D632B9-23E3-444B-BC84-FD670E521D9F",
"Name": "DeviceHub Agent"
},
{
"ID": "2372E68F-BA1B-46E9-BC07-E92CA006B377",
"DriverGroupID": "46D632B9-23E3-444B-BC84-FD670E521D9F",
"Name": "OPC UA Client Advanced"
},
{
"ID": "914FBF10-616F-11EB-AE93-0242AC130002",
"DriverGroupID": "46D632B9-23E3-444B-BC84-FD670E521D9F",
"Name": "OPCUA client Poll"
}
]
},
{
"ID": "F607BFD8-1F3B-4C37-BB07-B86F1120F691",
"Name": "CodeSys Devices",
"Drivers": [
{
"ID": "05FA3FB9-7FB1-45FB-8160-B2606F5DABFC",
"DriverGroupID": "F607BFD8-1F3B-4C37-BB07-B86F1120F691",
"Name": "CodeSys Ethernet (Gen1)"
}
]
}
]
}
}
Get Driver Template by GroupID
POST {{edgeUrl}}/devicehub/v2
Get Driver Template by GroupID
Returns every driver in a single Driver Group along with metadata (Description, DriverGeneration). This is the right call when you have a GroupID (e.g. from the navigation tree) and want a slightly richer view than the catalog -- but still without the full property/register schema.
For the full schema of a single driver, use Get Driver Template by DriverID.
Endpoint
POST {{edgeUrl}}/devicehub/v2
Content-Type: application/json
Authentication
HTTP Basic Auth. Username is your API token, password is empty. The same token is valid across /devicehub/v2, /analytics/v2, /cc, /opcua, and the other LE services.
Request body (GraphQL)
query GetDrivers {
GetDrivers(input: { GroupID: "AFC9E184-1C91-40CD-9811-DC94C436BDD6" }) {
ID
DriverGroupID
Name
Description
DriverGeneration
}
}
Arguments
| Argument | GraphQL type | Required | Description |
|---|---|---|---|
input.GroupID |
ID |
Yes | UUID of the driver group. Obtain via List of Drivers by DriverID and GroupID. |
To get all drivers regardless of group, prefer List of Drivers by DriverID and GroupID (no GroupID argument) or List all Details of Drivers if you need full schema.
Response
200 OK -- application/json
| Field | Type | Description |
|---|---|---|
data.GetDrivers |
[Driver!]! |
Drivers in the requested group. |
data.GetDrivers[].ID |
ID |
Driver UUID. |
data.GetDrivers[].DriverGroupID |
ID |
UUID of the parent group (echo of the argument). |
data.GetDrivers[].Name |
String |
Display name of the driver. |
data.GetDrivers[].Description |
String |
Operator-facing description shown in the LE UI's driver picker. |
data.GetDrivers[].DriverGeneration |
String |
Gen1 (legacy runtime) or Gen2 (modern runtime). New deployments should prefer Gen2 where available. |
Example response
{
"data": {
"GetDrivers": [
{
"ID": "5BC98836-CFD4-11E9-BB65-2A2AE2DBCCE4",
"DriverGroupID": "AFC9E184-1C91-40CD-9811-DC94C436BDD6",
"Name": "Generator",
"Description": "Generator driver",
"DriverGeneration": "Gen2"
},
{
"ID": "50E3EDA1-11F9-41D6-9232-778A28665580",
"DriverGroupID": "AFC9E184-1C91-40CD-9811-DC94C436BDD6",
"Name": "Simulator (Gen1)",
"Description": "Simulator Driver",
"DriverGeneration": "Gen1"
}
]
}
}
Errors
GraphQL endpoints return 200 OK even on logical errors. Inspect the errors array in the response body:
{ "errors": [ { "message": "...", "path": ["..."], "extensions": { "code": "..." } } ] }
extensions.code |
Meaning |
|---|---|
UNAUTHENTICATED |
Missing or invalid API token. |
FORBIDDEN |
Token lacks read access to DeviceHub. |
BAD_USER_INPUT |
Invalid argument (unknown ID/GroupID, malformed UUID, etc.). |
NOT_FOUND |
The driver or driver group does not exist on this device. |
INTERNAL_SERVER_ERROR |
DeviceHub fault. Retry, then escalate via System > Support. |
A non-200 HTTP response means DeviceHub itself is unreachable. See Dashboard > DeviceHub Status.
TLS note: edge devices use a self-signed certificate by default. Either install the device CA in your client trust store or disable certificate verification when calling this endpoint directly.
Request Body
GraphQL Query
query GetDrivers{
GetDrivers(input: {GroupID: "AFC9E184-1C91-40CD-9811-DC94C436BDD6"}) {
ID
DriverGroupID
Name
Description
DriverGeneration
}
}
Response
Status: 200 OK
{
"data": {
"GetDrivers": [
{
"ID": "5BC98836-CFD4-11E9-BB65-2A2AE2DBCCE4",
"DriverGroupID": "AFC9E184-1C91-40CD-9811-DC94C436BDD6",
"Name": "Generator",
"Description": "Generator driver",
"DriverGeneration": "Gen2"
},
{
"ID": "50E3EDA1-11F9-41D6-9232-778A28665580",
"DriverGroupID": "AFC9E184-1C91-40CD-9811-DC94C436BDD6",
"Name": "Simulator (Gen1)",
"Description": "Simulator Driver",
"DriverGeneration": "Gen1"
}
]
}
}
Get Driver Template by DriverID
POST {{edgeUrl}}/devicehub/v2
Get Driver Template by DriverID
Returns the full schema of a single driver: every device property (used to render a Create New Device form), every supported register type (used to render a tag editor), discovery properties, and capability flags.
This is the primary endpoint for building dynamic UIs on top of DeviceHub. The schema is sufficient to render a complete create-device form with correct types, validation, conditional fields, and default values.
Endpoint
POST {{edgeUrl}}/devicehub/v2
Content-Type: application/json
Authentication
HTTP Basic Auth. Username is your API token, password is empty. The same token is valid across /devicehub/v2, /analytics/v2, /cc, /opcua, and the other LE services.
Request body (GraphQL)
query GetDriver {
GetDriver(input: { ID: "{driverID}" }) {
ID
DriverGroupID
Name
Description
DriverGeneration
DeviceProperties {
Tab Position NewLine
Name Description StringFormat
DefaultValue ValueType NumberMin NumberMax
LinkedFieldName LinkedValues
Required Optional
MetaType
ListValues { Name Value Description Type }
}
SupportedRegisters {
Name Description ReadOnly
RegisterProperties {
Tab Position NewLine
Name Description StringFormat
DefaultValue ValueType NumberMin NumberMax
LinkedFieldName LinkedValues
Required Optional
MetaType
}
}
Meta {
BrowseSupported
DynamicBrowseSupported
StreamBrowseSupported
Version
DriverValuesInterface
DriverConnectionType
DiscoverySupported
FreeTag
DriverState
}
DiscoveryProperties {
Tab Position NewLine
Name Description StringFormat
DefaultValue ValueType NumberMin NumberMax
LinkedFieldName LinkedValues
Required Optional
MetaType
}
DriverGroup { ID Name Logo }
}
}
Arguments
| Argument | GraphQL type | Required | Description |
|---|---|---|---|
input.ID |
ID |
Yes | Driver UUID. Obtain via List of Drivers by DriverID and GroupID. |
The selection set above is the LE UI's full projection. Trim it to what you need -- the response can be ~20 KB for drivers with large register catalogs.
Response
200 OK -- application/json
Top-level Driver fields
| Field | Type | Description |
|---|---|---|
ID |
ID |
Driver UUID. |
DriverGroupID |
ID |
Parent group UUID. |
Name |
String |
Display name. |
Description |
String |
Operator-facing description. |
DriverGeneration |
String |
Gen1 or Gen2. |
DeviceProperties |
[InputProperty!]! |
Properties the operator must / may set when creating a device with this driver. |
SupportedRegisters |
[RegisterTemplate!]! |
Register types this driver knows how to read/write. |
Meta |
Meta! |
Capability flags and runtime metadata (see below). |
DiscoveryProperties |
[InputProperty!]! |
Properties accepted by Device Discovery Tool for this driver. Empty if Meta.DiscoverySupported is false. |
DriverGroup |
DriverGroup! |
Embedded group metadata (ID, Name, Logo - base64 PNG/SVG). |
InputProperty fields (used by DeviceProperties, RegisterProperties, DiscoveryProperties)
| Field | Type | Description |
|---|---|---|
Name |
String |
Property key. Used as Key in Create New Device > Properties. |
Description |
String |
Operator-facing help text. |
StringFormat |
String |
Hint for value formatting (url, regex, etc.). null if no specific format. |
DefaultValue |
String |
Suggested default. Drivers like Modbus use this for low-risk fields (e.g. polling interval). |
ValueType |
String |
string, int, uint, float, bool, plus a few driver-specific kinds (certificate, password). |
NumberMin / NumberMax |
Int |
Validation bounds for numeric value types. |
LinkedFieldName |
String |
Conditional rendering: only show this property when the property named here takes one of LinkedValues. |
LinkedValues |
[String] |
The values of LinkedFieldName that activate this property. |
Required |
Boolean |
If true, the property must be in Create New Device > Properties. |
Optional |
Boolean |
Mirror of Required -- mutually exclusive. |
MetaType |
String |
Hidden category for UI (password masks input, certificate enables file picker, etc.). |
Tab / Position / NewLine |
mixed | UI layout hints. Safe to ignore in headless clients. |
ListValues |
[Item!] |
Non-empty for enums. Each item: Name (label), Value (raw), Description, Type. |
RegisterTemplate fields
| Field | Type | Description |
|---|---|---|
Name |
String |
Register kind (e.g. Holding Register, Coil, OPC UA Node). |
Description |
String |
Operator-facing description. |
ReadOnly |
Boolean |
true if writes to registers of this kind are not supported. |
RegisterProperties |
[InputProperty!]! |
Properties an operator must set when creating a tag of this register kind. |
Meta fields
| Field | Type | Description |
|---|---|---|
BrowseSupported |
Boolean |
true if the driver supports the DeviceHub > Browse flow for enumerating tags. |
DynamicBrowseSupported |
Boolean |
true if browse results update as the upstream system changes (rather than a snapshot). |
StreamBrowseSupported |
Boolean |
true if the driver supports server-pushed register updates rather than client-pulled polls. |
Version |
String |
Driver implementation version. |
DriverValuesInterface |
String |
Internal: which value-marshalling interface this driver uses. |
DriverConnectionType |
String |
Internal: socket/serial/in-process. |
DiscoverySupported |
Boolean |
true if the driver supports Device Discovery Tool. |
FreeTag |
Boolean |
true if tags can be created ad-hoc (free-form addresses) rather than only from a fixed list. |
DriverState |
String |
Lifecycle state of the driver implementation (Stable, Beta, Deprecated, ...). |
Example response (excerpt)
{
"data": {
"GetDriver": {
"ID": "94290D6F-4197-4DBF-9847-1848F9840F63",
"DriverGroupID": "49DBE624-5792-4313-8C79-550E5B930932",
"Name": "IEC60870-5-102 Ethernet (Gen1)",
"Description": "IEC60870-5-102 Ethernet",
"DriverGeneration": "Gen1",
"DeviceProperties": [
{
"Tab": null,
"Position": 0,
"NewLine": false,
"Name": "name",
"Description": "Device Name that describes your asset.",
"StringFormat": null,
"DefaultValue": null,
"ValueType": "string",
"Required": true,
"Optional": false,
"MetaType": null,
"ListValues": []
}
]
}
}
}
Errors
GraphQL endpoints return 200 OK even on logical errors. Inspect the errors array in the response body:
{ "errors": [ { "message": "...", "path": ["..."], "extensions": { "code": "..." } } ] }
extensions.code |
Meaning |
|---|---|
UNAUTHENTICATED |
Missing or invalid API token. |
FORBIDDEN |
Token lacks read access to DeviceHub. |
BAD_USER_INPUT |
Invalid argument (unknown ID/GroupID, malformed UUID, etc.). |
NOT_FOUND |
The driver or driver group does not exist on this device. |
INTERNAL_SERVER_ERROR |
DeviceHub fault. Retry, then escalate via System > Support. |
A non-200 HTTP response means DeviceHub itself is unreachable. See Dashboard > DeviceHub Status.
TLS note: edge devices use a self-signed certificate by default. Either install the device CA in your client trust store or disable certificate verification when calling this endpoint directly.
Request Body
GraphQL Query
query GetDriver {
GetDriver(input: {ID: "{driverID}"}) {
ID
DriverGroupID
Name
Description
DriverGeneration
DeviceProperties {
Tab
Position
NewLine
Name
Description
StringFormat
DefaultValue
ValueType
NumberMin
NumberMax
LinkedFieldName
LinkedValues
Required
Optional
MetaType
ListValues {
Name
Value
Description
Type
}
}
SupportedRegisters {
Name
Description
ReadOnly
RegisterProperties {
Tab
Position
NewLine
Name
Description
StringFormat
DefaultValue
ValueType
NumberMin
NumberMax
LinkedFieldName
LinkedValues
Required
Optional
MetaType
}
}
Meta {
BrowseSupported
DynamicBrowseSupported
StreamBrowseSupported
Version
DriverValuesInterface
DriverConnectionType
DiscoverySupported
FreeTag
DriverState
}
DiscoveryProperties {
Tab
Position
NewLine
Name
Description
StringFormat
DefaultValue
ValueType
NumberMin
NumberMax
LinkedFieldName
LinkedValues
Required
Optional
MetaType
}
DriverGroup {
ID
Name
Logo
}
}
}
Response
Status: 200 OK
{
"data": {
"GetDriver": {
"ID": "94290D6F-4197-4DBF-9847-1848F9840F63",
"DriverGroupID": "49DBE624-5792-4313-8C79-550E5B930932",
"Name": "IEC60870-5-102 Ethernet (Gen1)",
"Description": "IEC60870-5-102 Ethernet",
"DriverGeneration": "Gen1",
"DeviceProperties": [
{
"Tab": null,
"Position": 0,
"NewLine": false,
"Name": "name",
"Description": "Device Name that describes your asset.",
"StringFormat": "",
"DefaultValue": "IEC Device",
"ValueType": "String",
"NumberMin": null,
"NumberMax": null,
"LinkedFieldName": null,
"LinkedValues": null,
"Required": true,
"Optional": false,
"MetaType": null,
"ListValues": null
},
{
"Tab": null,
"Position": 0,
"NewLine": false,
"Name": "description",
"Description": "Description of the device or an asset.",
"StringFormat": "",
"DefaultValue": "IEC Device",
"ValueType": "String",
"NumberMin": null,
"NumberMax": null,
"LinkedFieldName": null,
"LinkedValues": null,
"Required": false,
"Optional": false,
"MetaType": null,
"ListValues": null
},
{
"Tab": null,
"Position": 0,
"NewLine": false,
"Name": "networkAddress",
"Description": "IP Address of the device.",
"StringFormat": "",
"DefaultValue": "192.168.0.1",
"ValueType": "String",
"NumberMin": null,
"NumberMax": null,
"LinkedFieldName": null,
"LinkedValues": null,
"Required": true,
"Optional": false,
"MetaType": null,
"ListValues": null
},
{
"Tab": null,
"Position": 0,
"NewLine": false,
"Name": "networkPort",
"Description": "Network port of the device.",
"StringFormat": "",
"DefaultValue": "2404",
"ValueType": "SignedInteger",
"NumberMin": null,
"NumberMax": null,
"LinkedFieldName": null,
"LinkedValues": null,
"Required": true,
"Optional": false,
"MetaType": null,
"ListValues": null
},
{
"Tab": null,
"Position": 0,
"NewLine": false,
"Name": "linkAddress",
"Description": "Link Address.",
"StringFormat": "",
"DefaultValue": "3",
"ValueType": "SignedInteger",
"NumberMin": null,
"NumberMax": null,
"LinkedFieldName": null,
"LinkedValues": null,
"Required": true,
"Optional": false,
"MetaType": null,
"ListValues": null
},
{
"Tab": null,
"Position": 0,
"NewLine": false,
"Name": "asduAddrSize",
"Description": "Size of ASDU Address.",
"StringFormat": "",
"DefaultValue": "2",
"ValueType": "SignedInteger",
"NumberMin": null,
"NumberMax": null,
"LinkedFieldName": null,
"LinkedValues": null,
"Required": true,
"Optional": false,
"MetaType": null,
"ListValues": null
}
],
"SupportedRegisters": [
{
"Name": "M_SP_TA_2",
"Description": "Single point information",
"ReadOnly": false,
"RegisterProperties": [
{
"Tab": null,
"Position": null,
"NewLine": null,
"Name": "valueType",
"Description": "Register value type",
"StringFormat": "",
"DefaultValue": null,
"ValueType": "String",
"NumberMin": null,
"NumberMax": null,
"LinkedFieldName": null,
"LinkedValues": null,
"Required": true,
"Optional": false,
"MetaType": null
},
{
"Tab": null,
"Position": 98,
"NewLine": null,
"Name": "address",
"Description": "",
"StringFormat": "DDDddd",
"DefaultValue": "0",
"ValueType": "SignedInteger",
"NumberMin": 0,
"NumberMax": 255999,
"LinkedFieldName": null,
"LinkedValues": null,
"Required": true,
"Optional": false,
"MetaType": null
},
{
"Tab": null,
"Position": 0,
"NewLine": null,
"Name": "startDate",
"Description": "YYYY/MM/DD",
"StringFormat": "",
"DefaultValue": "",
"ValueType": "String",
"NumberMin": null,
"NumberMax": null,
"LinkedFieldName": null,
"LinkedValues": null,
"Required": false,
"Optional": false,
"MetaType": null
},
{
"Tab": null,
"Position": 0,
"NewLine": null,
"Name": "endDate",
"Description": "YYYY/MM/DD",
"StringFormat": "",
"DefaultValue": "",
"ValueType": "String",
"NumberMin": null,
"NumberMax": null,
"LinkedFieldName": null,
"LinkedValues": null,
"Required": false,
"Optional": false,
"MetaType": null
},
{
"Tab": null,
"Position": 100,
"NewLine": null,
"Name": "pollingInterval",
"Description": "How often poll driver for value. 0 mean auto polling disabled.",
"StringFormat": "",
"DefaultValue": "1000",
"ValueType": "SignedInteger",
"NumberMin": 0,
"NumberMax": null,
"LinkedFieldName": null,
"LinkedValues": null,
"Required": true,
"Optional": false,
"MetaType": null
}
]
},
{
"Name": "M_IT_TA_2",
"Description": "Accounting integrated totals, four octets each",
"ReadOnly": false,
"RegisterProperties": [
{
"Tab": null,
"Position": null,
"NewLine": null,
"Name": "valueType",
"Description": "Register value type",
"StringFormat": "",
"DefaultValue": null,
"ValueType": "String",
"NumberMin": null,
"NumberMax": null,
"LinkedFieldName": null,
"LinkedValues": null,
"Required": true,
"Optional": false,
"MetaType": null
},
{
"Tab": null,
"Position": 98,
"NewLine": null,
"Name": "address",
"Description": "",
"StringFormat": "DDDddd",
"DefaultValue": "0",
"ValueType": "SignedInteger",
"NumberMin": 0,
"NumberMax": 255999,
"LinkedFieldName": null,
"LinkedValues": null,
"Required": true,
"Optional": false,
"MetaType": null
},
{
"Tab": null,
"Position": 0,
"NewLine": null,
"Name": "startDate",
"Description": "YYYY/MM/DD",
"StringFormat": "",
"DefaultValue": "",
"ValueType": "String",
"NumberMin": null,
"NumberMax": null,
"LinkedFieldName": null,
"LinkedValues": null,
"Required": false,
"Optional": false,
"MetaType": null
},
{
"Tab": null,
"Position": 0,
"NewLine": null,
"Name": "endDate",
"Description": "YYYY/MM/DD",
"StringFormat": "",
"DefaultValue": "",
"ValueType": "String",
"NumberMin": null,
"NumberMax": null,
"LinkedFieldName": null,
"LinkedValues": null,
"Required": false,
"Optional": false,
"MetaType": null
},
{
"Tab": null,
"Position": 100,
"NewLine": null,
"Name": "pollingInterval",
"Description": "How often poll driver for value. 0 mean auto polling disabled.",
"StringFormat": "",
"DefaultValue": "1000",
"ValueType": "SignedInteger",
"NumberMin": 0,
"NumberMax": null,
"LinkedFieldName": null,
"LinkedValues": null,
"Required": true,
"Optional": false,
"MetaType": null
}
]
},
{
"Name": "M_IT_TB_2",
"Description": "Accounting integrated totals, three octets each",
"ReadOnly": false,
"RegisterProperties": [
{
"Tab": null,
"Position": null,
"NewLine": null,
"Name": "valueType",
"Description": "Register value type",
"StringFormat": "",
"DefaultValue": null,
"ValueType": "String",
"NumberMin": null,
"NumberMax": null,
"LinkedFieldName": null,
"LinkedValues": null,
"Required": true,
"Optional": false,
"MetaType": null
},
{
"Tab": null,
"Position": 98,
"NewLine": null,
"Name": "address",
"Description": "",
"StringFormat": "DDDddd",
"DefaultValue": "0",
"ValueType": "SignedInteger",
"NumberMin": 0,
"NumberMax": 255999,
"LinkedFieldName": null,
"LinkedValues": null,
"Required": true,
"Optional": false,
"MetaType": null
},
{
"Tab": null,
"Position": 0,
"NewLine": null,
"Name": "startDate",
"Description": "YYYY/MM/DD",
"StringFormat": "",
"DefaultValue": "",
"ValueType": "String",
"NumberMin": null,
"NumberMax": null,
"LinkedFieldName": null,
"LinkedValues": null,
"Required": false,
"Optional": false,
"MetaType": null
},
{
"Tab": null,
"Position": 0,
"NewLine": null,
"Name": "endDate",
"Description": "YYYY/MM/DD",
"StringFormat": "",
"DefaultValue": "",
"ValueType": "String",
"NumberMin": null,
"NumberMax": null,
"LinkedFieldName": null,
"LinkedValues": null,
"Required": false,
"Optional": false,
"MetaType": null
},
{
"Tab": null,
"Position": 100,
"NewLine": null,
"Name": "pollingInterval",
"Description": "How often poll driver for value. 0 mean auto polling disabled.",
"StringFormat": "",
"DefaultValue": "1000",
"ValueType": "SignedInteger",
"NumberMin": 0,
"NumberMax": null,
"LinkedFieldName": null,
"LinkedValues": null,
"Required": true,
"Optional": false,
"MetaType": null
}
]
},
{
"Name": "M_IT_TC_2",
"Description": "Accounting integrated totals, two octets each",
"ReadOnly": false,
"RegisterProperties": [
{
"Tab": null,
"Position": null,
"NewLine": null,
"Name": "valueType",
"Description": "Register value type",
"StringFormat": "",
"DefaultValue": null,
"ValueType": "String",
"NumberMin": null,
"NumberMax": null,
"LinkedFieldName": null,
"LinkedValues": null,
"Required": true,
"Optional": false,
"MetaType": null
},
{
"Tab": null,
"Position": 98,
"NewLine": null,
"Name": "address",
"Description": "",
"StringFormat": "DDDddd",
"DefaultValue": "0",
"ValueType": "SignedInteger",
"NumberMin": 0,
"NumberMax": 255999,
"LinkedFieldName": null,
"LinkedValues": null,
"Required": true,
"Optional": false,
"MetaType": null
},
{
"Tab": null,
"Position": 0,
"NewLine": null,
"Name": "startDate",
"Description": "YYYY/MM/DD",
"StringFormat": "",
"DefaultValue": "",
"ValueType": "String",
"NumberMin": null,
"NumberMax": null,
"LinkedFieldName": null,
"LinkedValues": null,
"Required": false,
"Optional": false,
"MetaType": null
},
{
"Tab": null,
"Position": 0,
"NewLine": null,
"Name": "endDate",
"Description": "YYYY/MM/DD",
"StringFormat": "",
"DefaultValue": "",
"ValueType": "String",
"NumberMin": null,
"NumberMax": null,
"LinkedFieldName": null,
"LinkedValues": null,
"Required": false,
"Optional": false,
"MetaType": null
},
{
"Tab": null,
"Position": 100,
"NewLine": null,
"Name": "pollingInterval",
"Description": "How often poll driver for value. 0 mean auto polling disabled.",
"StringFormat": "",
"DefaultValue": "1000",
"ValueType": "SignedInteger",
"NumberMin": 0,
"NumberMax": null,
"LinkedFieldName": null,
"LinkedValues": null,
"Required": true,
"Optional": false,
"MetaType": null
}
]
},
{
"Name": "M_IT_TD_2",
"Description": "Periodically Reset Accounting integrated totals, four octets each",
"ReadOnly": false,
"RegisterProperties": [
{
"Tab": null,
"Position": null,
"NewLine": null,
"Name": "valueType",
"Description": "Register value type",
"StringFormat": "",
"DefaultValue": null,
"ValueType": "String",
"NumberMin": null,
"NumberMax": null,
"LinkedFieldName": null,
"LinkedValues": null,
"Required": true,
"Optional": false,
"MetaType": null
},
{
"Tab": null,
"Position": 98,
"NewLine": null,
"Name": "address",
"Description": "",
"StringFormat": "DDDddd",
"DefaultValue": "0",
"ValueType": "SignedInteger",
"NumberMin": 0,
"NumberMax": 255999,
"LinkedFieldName": null,
"LinkedValues": null,
"Required": true,
"Optional": false,
"MetaType": null
},
{
"Tab": null,
"Position": 0,
"NewLine": null,
"Name": "startDate",
"Description": "YYYY/MM/DD",
"StringFormat": "",
"DefaultValue": "",
"ValueType": "String",
"NumberMin": null,
"NumberMax": null,
"LinkedFieldName": null,
"LinkedValues": null,
"Required": false,
"Optional": false,
"MetaType": null
},
{
"Tab": null,
"Position": 0,
"NewLine": null,
"Name": "endDate",
"Description": "YYYY/MM/DD",
"StringFormat": "",
"DefaultValue": "",
"ValueType": "String",
"NumberMin": null,
"NumberMax": null,
"LinkedFieldName": null,
"LinkedValues": null,
"Required": false,
"Optional": false,
"MetaType": null
},
{
"Tab": null,
"Position": 100,
"NewLine": null,
"Name": "pollingInterval",
"Description": "How often poll driver for value. 0 mean auto polling disabled.",
"StringFormat": "",
"DefaultValue": "1000",
"ValueType": "SignedInteger",
"NumberMin": 0,
"NumberMax": null,
"LinkedFieldName": null,
"LinkedValues": null,
"Required": true,
"Optional": false,
"MetaType": null
}
]
},
{
"Name": "M_IT_TE_2",
"Description": "Periodically Reset Accounting integrated totals, three octets each",
"ReadOnly": false,
"RegisterProperties": [
{
"Tab": null,
"Position": null,
"NewLine": null,
"Name": "valueType",
"Description": "Register value type",
"StringFormat": "",
"DefaultValue": null,
"ValueType": "String",
"NumberMin": null,
"NumberMax": null,
"LinkedFieldName": null,
"LinkedValues": null,
"Required": true,
"Optional": false,
"MetaType": null
},
{
"Tab": null,
"Position": 98,
"NewLine": null,
"Name": "address",
"Description": "",
"StringFormat": "DDDddd",
"DefaultValue": "0",
"ValueType": "SignedInteger",
"NumberMin": 0,
"NumberMax": 255999,
"LinkedFieldName": null,
"LinkedValues": null,
"Required": true,
"Optional": false,
"MetaType": null
},
{
"Tab": null,
"Position": 0,
"NewLine": null,
"Name": "startDate",
"Description": "YYYY/MM/DD",
"StringFormat": "",
"DefaultValue": "",
"ValueType": "String",
"NumberMin": null,
"NumberMax": null,
"LinkedFieldName": null,
"LinkedValues": null,
"Required": false,
"Optional": false,
"MetaType": null
},
{
"Tab": null,
"Position": 0,
"NewLine": null,
"Name": "endDate",
"Description": "YYYY/MM/DD",
"StringFormat": "",
"DefaultValue": "",
"ValueType": "String",
"NumberMin": null,
"NumberMax": null,
"LinkedFieldName": null,
"LinkedValues": null,
"Required": false,
"Optional": false,
"MetaType": null
},
{
"Tab": null,
"Position": 100,
"NewLine": null,
"Name": "pollingInterval",
"Description": "How often poll driver for value. 0 mean auto polling disabled.",
"StringFormat": "",
"DefaultValue": "1000",
"ValueType": "SignedInteger",
"NumberMin": 0,
"NumberMax": null,
"LinkedFieldName": null,
"LinkedValues": null,
"Required": true,
"Optional": false,
"MetaType": null
}
]
},
{
"Name": "M_IT_TF_2",
"Description": "Periodically Reset Accounting integrated totals, two octets each",
"ReadOnly": false,
"RegisterProperties": [
{
"Tab": null,
"Position": null,
"NewLine": null,
"Name": "valueType",
"Description": "Register value type",
"StringFormat": "",
"DefaultValue": null,
"ValueType": "String",
"NumberMin": null,
"NumberMax": null,
"LinkedFieldName": null,
"LinkedValues": null,
"Required": true,
"Optional": false,
"MetaType": null
},
{
"Tab": null,
"Position": 98,
"NewLine": null,
"Name": "address",
"Description": "",
"StringFormat": "DDDddd",
"DefaultValue": "0",
"ValueType": "SignedInteger",
"NumberMin": 0,
"NumberMax": 255999,
"LinkedFieldName": null,
"LinkedValues": null,
"Required": true,
"Optional": false,
"MetaType": null
},
{
"Tab": null,
"Position": 0,
"NewLine": null,
"Name": "startDate",
"Description": "YYYY/MM/DD",
"StringFormat": "",
"DefaultValue": "",
"ValueType": "String",
"NumberMin": null,
"NumberMax": null,
"LinkedFieldName": null,
"LinkedValues": null,
"Required": false,
"Optional": false,
"MetaType": null
},
{
"Tab": null,
"Position": 0,
"NewLine": null,
"Name": "endDate",
"Description": "YYYY/MM/DD",
"StringFormat": "",
"DefaultValue": "",
"ValueType": "String",
"NumberMin": null,
"NumberMax": null,
"LinkedFieldName": null,
"LinkedValues": null,
"Required": false,
"Optional": false,
"MetaType": null
},
{
"Tab": null,
"Position": 100,
"NewLine": null,
"Name": "pollingInterval",
"Description": "How often poll driver for value. 0 mean auto polling disabled.",
"StringFormat": "",
"DefaultValue": "1000",
"ValueType": "SignedInteger",
"NumberMin": 0,
"NumberMax": null,
"LinkedFieldName": null,
"LinkedValues": null,
"Required": true,
"Optional": false,
"MetaType": null
}
]
},
{
"Name": "M_IT_TG_2",
"Description": "Operational integrated totals, four octets each",
"ReadOnly": false,
"RegisterProperties": [
{
"Tab": null,
"Position": null,
"NewLine": null,
"Name": "valueType",
"Description": "Register value type",
"StringFormat": "",
"DefaultValue": null,
"ValueType": "String",
"NumberMin": null,
"NumberMax": null,
"LinkedFieldName": null,
"LinkedValues": null,
"Required": true,
"Optional": false,
"MetaType": null
},
{
"Tab": null,
"Position": 98,
"NewLine": null,
"Name": "address",
"Description": "",
"StringFormat": "DDDddd",
"DefaultValue": "0",
"ValueType": "SignedInteger",
"NumberMin": 0,
"NumberMax": 255999,
"LinkedFieldName": null,
"LinkedValues": null,
"Required": true,
"Optional": false,
"MetaType": null
},
{
"Tab": null,
"Position": 0,
"NewLine": null,
"Name": "startDate",
"Description": "YYYY/MM/DD",
"StringFormat": "",
"DefaultValue": "",
"ValueType": "String",
"NumberMin": null,
"NumberMax": null,
"LinkedFieldName": null,
"LinkedValues": null,
"Required": false,
"Optional": false,
"MetaType": null
},
{
"Tab": null,
"Position": 0,
"NewLine": null,
"Name": "endDate",
"Description": "YYYY/MM/DD",
"StringFormat": "",
"DefaultValue": "",
"ValueType": "String",
"NumberMin": null,
"NumberMax": null,
"LinkedFieldName": null,
"LinkedValues": null,
"Required": false,
"Optional": false,
"MetaType": null
},
{
"Tab": null,
"Position": 100,
"NewLine": null,
"Name": "pollingInterval",
"Description": "How often poll driver for value. 0 mean auto polling disabled.",
"StringFormat": "",
"DefaultValue": "1000",
"ValueType": "SignedInteger",
"NumberMin": 0,
"NumberMax": null,
"LinkedFieldName": null,
"LinkedValues": null,
"Required": true,
"Optional": false,
"MetaType": null
}
]
},
{
"Name": "M_IT_TH_2",
"Description": "Operational integrated totals, three octets each",
"ReadOnly": false,
"RegisterProperties": [
{
"Tab": null,
"Position": null,
"NewLine": null,
"Name": "valueType",
"Description": "Register value type",
"StringFormat": "",
"DefaultValue": null,
"ValueType": "String",
"NumberMin": null,
"NumberMax": null,
"LinkedFieldName": null,
"LinkedValues": null,
"Required": true,
"Optional": false,
"MetaType": null
},
{
"Tab": null,
"Position": 98,
"NewLine": null,
"Name": "address",
"Description": "",
"StringFormat": "DDDddd",
"DefaultValue": "0",
"ValueType": "SignedInteger",
"NumberMin": 0,
"NumberMax": 255999,
"LinkedFieldName": null,
"LinkedValues": null,
"Required": true,
"Optional": false,
"MetaType": null
},
{
"Tab": null,
"Position": 0,
"NewLine": null,
"Name": "startDate",
"Description": "YYYY/MM/DD",
"StringFormat": "",
"DefaultValue": "",
"ValueType": "String",
"NumberMin": null,
"NumberMax": null,
"LinkedFieldName": null,
"LinkedValues": null,
"Required": false,
"Optional": false,
"MetaType": null
},
{
"Tab": null,
"Position": 0,
"NewLine": null,
"Name": "endDate",
"Description": "YYYY/MM/DD",
"StringFormat": "",
"DefaultValue": "",
"ValueType": "String",
"NumberMin": null,
"NumberMax": null,
"LinkedFieldName": null,
"LinkedValues": null,
"Required": false,
"Optional": false,
"MetaType": null
},
{
"Tab": null,
"Position": 100,
"NewLine": null,
"Name": "pollingInterval",
"Description": "How often poll driver for value. 0 mean auto polling disabled.",
"StringFormat": "",
"DefaultValue": "1000",
"ValueType": "SignedInteger",
"NumberMin": 0,
"NumberMax": null,
"LinkedFieldName": null,
"LinkedValues": null,
"Required": true,
"Optional": false,
"MetaType": null
}
]
},
{
"Name": "M_IT_TI_2",
"Description": "Operational integrated totals, two octets each",
"ReadOnly": false,
"RegisterProperties": [
{
"Tab": null,
"Position": null,
"NewLine": null,
"Name": "valueType",
"Description": "Register value type",
"StringFormat": "",
"DefaultValue": null,
"ValueType": "String",
"NumberMin": null,
"NumberMax": null,
"LinkedFieldName": null,
"LinkedValues": null,
"Required": true,
"Optional": false,
"MetaType": null
},
{
"Tab": null,
"Position": 98,
"NewLine": null,
"Name": "address",
"Description": "",
"StringFormat": "DDDddd",
"DefaultValue": "0",
"ValueType": "SignedInteger",
"NumberMin": 0,
"NumberMax": 255999,
"LinkedFieldName": null,
"LinkedValues": null,
"Required": true,
"Optional": false,
"MetaType": null
},
{
"Tab": null,
"Position": 0,
"NewLine": null,
"Name": "startDate",
"Description": "YYYY/MM/DD",
"StringFormat": "",
"DefaultValue": "",
"ValueType": "String",
"NumberMin": null,
"NumberMax": null,
"LinkedFieldName": null,
"LinkedValues": null,
"Required": false,
"Optional": false,
"MetaType": null
},
{
"Tab": null,
"Position": 0,
"NewLine": null,
"Name": "endDate",
"Description": "YYYY/MM/DD",
"StringFormat": "",
"DefaultValue": "",
"ValueType": "String",
"NumberMin": null,
"NumberMax": null,
"LinkedFieldName": null,
"LinkedValues": null,
"Required": false,
"Optional": false,
"MetaType": null
},
{
"Tab": null,
"Position": 100,
"NewLine": null,
"Name": "pollingInterval",
"Description": "How often poll driver for value. 0 mean auto polling disabled.",
"StringFormat": "",
"DefaultValue": "1000",
"ValueType": "SignedInteger",
"NumberMin": 0,
"NumberMax": null,
"LinkedFieldName": null,
"LinkedValues": null,
"Required": true,
"Optional": false,
"MetaType": null
}
]
},
{
"Name": "M_IT_TK_2",
"Description": "Periodically Reset Operational integrated totals, four octets each",
"ReadOnly": false,
"RegisterProperties": [
{
"Tab": null,
"Position": null,
"NewLine": null,
"Name": "valueType",
"Description": "Register value type",
"StringFormat": "",
"DefaultValue": null,
"ValueType": "String",
"NumberMin": null,
"NumberMax": null,
"LinkedFieldName": null,
"LinkedValues": null,
"Required": true,
"Optional": false,
"MetaType": null
},
{
"Tab": null,
"Position": 98,
"NewLine": null,
"Name": "address",
"Description": "",
"StringFormat": "DDDddd",
"DefaultValue": "0",
"ValueType": "SignedInteger",
"NumberMin": 0,
"NumberMax": 255999,
"LinkedFieldName": null,
"LinkedValues": null,
"Required": true,
"Optional": false,
"MetaType": null
},
{
"Tab": null,
"Position": 0,
"NewLine": null,
"Name": "startDate",
"Description": "YYYY/MM/DD",
"StringFormat": "",
"DefaultValue": "",
"ValueType": "String",
"NumberMin": null,
"NumberMax": null,
"LinkedFieldName": null,
"LinkedValues": null,
"Required": false,
"Optional": false,
"MetaType": null
},
{
"Tab": null,
"Position": 0,
"NewLine": null,
"Name": "endDate",
"Description": "YYYY/MM/DD",
"StringFormat": "",
"DefaultValue": "",
"ValueType": "String",
"NumberMin": null,
"NumberMax": null,
"LinkedFieldName": null,
"LinkedValues": null,
"Required": false,
"Optional": false,
"MetaType": null
},
{
"Tab": null,
"Position": 100,
"NewLine": null,
"Name": "pollingInterval",
"Description": "How often poll driver for value. 0 mean auto polling disabled.",
"StringFormat": "",
"DefaultValue": "1000",
"ValueType": "SignedInteger",
"NumberMin": 0,
"NumberMax": null,
"LinkedFieldName": null,
"LinkedValues": null,
"Required": true,
"Optional": false,
"MetaType": null
}
]
},
{
"Name": "M_IT_TL_2",
"Description": "Periodically Reset Operational integrated totals, three octets each",
"ReadOnly": false,
"RegisterProperties": [
{
"Tab": null,
"Position": null,
"NewLine": null,
"Name": "valueType",
"Description": "Register value type",
"StringFormat": "",
"DefaultValue": null,
"ValueType": "String",
"NumberMin": null,
"NumberMax": null,
"LinkedFieldName": null,
"LinkedValues": null,
"Required": true,
"Optional": false,
"MetaType": null
},
{
"Tab": null,
"Position": 98,
"NewLine": null,
"Name": "address",
"Description": "",
"StringFormat": "DDDddd",
"DefaultValue": "0",
"ValueType": "SignedInteger",
"NumberMin": 0,
"NumberMax": 255999,
"LinkedFieldName": null,
"LinkedValues": null,
"Required": true,
"Optional": false,
"MetaType": null
},
{
"Tab": null,
"Position": 0,
"NewLine": null,
"Name": "startDate",
"Description": "YYYY/MM/DD",
"StringFormat": "",
"DefaultValue": "",
"ValueType": "String",
"NumberMin": null,
"NumberMax": null,
"LinkedFieldName": null,
"LinkedValues": null,
"Required": false,
"Optional": false,
"MetaType": null
},
{
"Tab": null,
"Position": 0,
"NewLine": null,
"Name": "endDate",
"Description": "YYYY/MM/DD",
"StringFormat": "",
"DefaultValue": "",
"ValueType": "String",
"NumberMin": null,
"NumberMax": null,
"LinkedFieldName": null,
"LinkedValues": null,
"Required": false,
"Optional": false,
"MetaType": null
},
{
"Tab": null,
"Position": 100,
"NewLine": null,
"Name": "pollingInterval",
"Description": "How often poll driver for value. 0 mean auto polling disabled.",
"StringFormat": "",
"DefaultValue": "1000",
"ValueType": "SignedInteger",
"NumberMin": 0,
"NumberMax": null,
"LinkedFieldName": null,
"LinkedValues": null,
"Required": true,
"Optional": false,
"MetaType": null
}
]
},
{
"Name": "M_IT_TM_2",
"Description": "Periodically Reset Operational integrated totals, two octets each",
"ReadOnly": false,
"RegisterProperties": [
{
"Tab": null,
"Position": null,
"NewLine": null,
"Name": "valueType",
"Description": "Register value type",
"StringFormat": "",
"DefaultValue": null,
"ValueType": "String",
"NumberMin": null,
"NumberMax": null,
"LinkedFieldName": null,
"LinkedValues": null,
"Required": true,
"Optional": false,
"MetaType": null
},
{
"Tab": null,
"Position": 98,
"NewLine": null,
"Name": "address",
"Description": "",
"StringFormat": "DDDddd",
"DefaultValue": "0",
"ValueType": "SignedInteger",
"NumberMin": 0,
"NumberMax": 255999,
"LinkedFieldName": null,
"LinkedValues": null,
"Required": true,
"Optional": false,
"MetaType": null
},
{
"Tab": null,
"Position": 0,
"NewLine": null,
"Name": "startDate",
"Description": "YYYY/MM/DD",
"StringFormat": "",
"DefaultValue": "",
"ValueType": "String",
"NumberMin": null,
"NumberMax": null,
"LinkedFieldName": null,
"LinkedValues": null,
"Required": false,
"Optional": false,
"MetaType": null
},
{
"Tab": null,
"Position": 0,
"NewLine": null,
"Name": "endDate",
"Description": "YYYY/MM/DD",
"StringFormat": "",
"DefaultValue": "",
"ValueType": "String",
"NumberMin": null,
"NumberMax": null,
"LinkedFieldName": null,
"LinkedValues": null,
"Required": false,
"Optional": false,
"MetaType": null
},
{
"Tab": null,
"Position": 100,
"NewLine": null,
"Name": "pollingInterval",
"Description": "How often poll driver for value. 0 mean auto polling disabled.",
"StringFormat": "",
"DefaultValue": "1000",
"ValueType": "SignedInteger",
"NumberMin": 0,
"NumberMax": null,
"LinkedFieldName": null,
"LinkedValues": null,
"Required": true,
"Optional": false,
"MetaType": null
}
]
},
{
"Name": "C_RD_NA_2",
"Description": "Read manufacture and product specification",
"ReadOnly": false,
"RegisterProperties": [
{
"Tab": null,
"Position": null,
"NewLine": null,
"Name": "valueType",
"Description": "Register value type",
"StringFormat": "",
"DefaultValue": null,
"ValueType": "String",
"NumberMin": null,
"NumberMax": null,
"LinkedFieldName": null,
"LinkedValues": null,
"Required": true,
"Optional": false,
"MetaType": null
},
{
"Tab": null,
"Position": 98,
"NewLine": null,
"Name": "address",
"Description": "",
"StringFormat": "D",
"DefaultValue": "0",
"ValueType": "SignedInteger",
"NumberMin": 1,
"NumberMax": 1,
"LinkedFieldName": null,
"LinkedValues": null,
"Required": true,
"Optional": false,
"MetaType": null
},
{
"Tab": null,
"Position": 0,
"NewLine": null,
"Name": "startDate",
"Description": "YYYY/MM/DD",
"StringFormat": "",
"DefaultValue": "",
"ValueType": "String",
"NumberMin": null,
"NumberMax": null,
"LinkedFieldName": null,
"LinkedValues": null,
"Required": false,
"Optional": false,
"MetaType": null
},
{
"Tab": null,
"Position": 0,
"NewLine": null,
"Name": "endDate",
"Description": "YYYY/MM/DD",
"StringFormat": "",
"DefaultValue": "",
"ValueType": "String",
"NumberMin": null,
"NumberMax": null,
"LinkedFieldName": null,
"LinkedValues": null,
"Required": false,
"Optional": false,
"MetaType": null
},
{
"Tab": null,
"Position": 100,
"NewLine": null,
"Name": "pollingInterval",
"Description": "How often poll driver for value. 0 mean auto polling disabled.",
"StringFormat": "",
"DefaultValue": "1000",
"ValueType": "SignedInteger",
"NumberMin": 0,
"NumberMax": null,
"LinkedFieldName": null,
"LinkedValues": null,
"Required": true,
"Optional": false,
"MetaType": null
}
]
},
{
"Name": "C_TI_NA_2",
"Description": "Read current system time of integrated total DTE",
"ReadOnly": false,
"RegisterProperties": [
{
"Tab": null,
"Position": null,
"NewLine": null,
"Name": "valueType",
"Description": "Register value type",
"StringFormat": "",
"DefaultValue": null,
"ValueType": "String",
"NumberMin": null,
"NumberMax": null,
"LinkedFieldName": null,
"LinkedValues": null,
"Required": true,
"Optional": false,
"MetaType": null
},
{
"Tab": null,
"Position": 98,
"NewLine": null,
"Name": "address",
"Description": "",
"StringFormat": "D",
"DefaultValue": "0",
"ValueType": "SignedInteger",
"NumberMin": 1,
"NumberMax": 1,
"LinkedFieldName": null,
"LinkedValues": null,
"Required": true,
"Optional": false,
"MetaType": null
},
{
"Tab": null,
"Position": 0,
"NewLine": null,
"Name": "startDate",
"Description": "YYYY/MM/DD",
"StringFormat": "",
"DefaultValue": "",
"ValueType": "String",
"NumberMin": null,
"NumberMax": null,
"LinkedFieldName": null,
"LinkedValues": null,
"Required": false,
"Optional": false,
"MetaType": null
},
{
"Tab": null,
"Position": 0,
"NewLine": null,
"Name": "endDate",
"Description": "YYYY/MM/DD",
"StringFormat": "",
"DefaultValue": "",
"ValueType": "String",
"NumberMin": null,
"NumberMax": null,
"LinkedFieldName": null,
"LinkedValues": null,
"Required": false,
"Optional": false,
"MetaType": null
},
{
"Tab": null,
"Position": 100,
"NewLine": null,
"Name": "pollingInterval",
"Description": "How often poll driver for value. 0 mean auto polling disabled.",
"StringFormat": "",
"DefaultValue": "1000",
"ValueType": "SignedInteger",
"NumberMin": 0,
"NumberMax": null,
"LinkedFieldName": null,
"LinkedValues": null,
"Required": true,
"Optional": false,
"MetaType": null
}
]
},
{
"Name": "C_SP_NA_2",
"Description": "Read record of single-point information with time tag",
"ReadOnly": false,
"RegisterProperties": [
{
"Tab": null,
"Position": null,
"NewLine": null,
"Name": "valueType",
"Description": "Register value type",
"StringFormat": "",
"DefaultValue": null,
"ValueType": "String",
"NumberMin": null,
"NumberMax": null,
"LinkedFieldName": null,
"LinkedValues": null,
"Required": true,
"Optional": false,
"MetaType": null
},
{
"Tab": null,
"Position": 98,
"NewLine": null,
"Name": "address",
"Description": "",
"StringFormat": "DDD",
"DefaultValue": "0",
"ValueType": "SignedInteger",
"NumberMin": 0,
"NumberMax": 255,
"LinkedFieldName": null,
"LinkedValues": null,
"Required": true,
"Optional": false,
"MetaType": null
},
{
"Tab": null,
"Position": 0,
"NewLine": null,
"Name": "startDate",
"Description": "YYYY/MM/DD",
"StringFormat": "",
"DefaultValue": "",
"ValueType": "String",
"NumberMin": null,
"NumberMax": null,
"LinkedFieldName": null,
"LinkedValues": null,
"Required": false,
"Optional": false,
"MetaType": null
},
{
"Tab": null,
"Position": 0,
"NewLine": null,
"Name": "endDate",
"Description": "YYYY/MM/DD",
"StringFormat": "",
"DefaultValue": "",
"ValueType": "String",
"NumberMin": null,
"NumberMax": null,
"LinkedFieldName": null,
"LinkedValues": null,
"Required": false,
"Optional": false,
"MetaType": null
},
{
"Tab": null,
"Position": 100,
"NewLine": null,
"Name": "pollingInterval",
"Description": "How often poll driver for value. 0 mean auto polling disabled.",
"StringFormat": "",
"DefaultValue": "1000",
"ValueType": "SignedInteger",
"NumberMin": 0,
"NumberMax": null,
"LinkedFieldName": null,
"LinkedValues": null,
"Required": true,
"Optional": false,
"MetaType": null
}
]
},
{
"Name": "C_SP_NB_2",
"Description": "Read record of single-point information with time tag of a selected time range",
"ReadOnly": false,
"RegisterProperties": [
{
"Tab": null,
"Position": null,
"NewLine": null,
"Name": "valueType",
"Description": "Register value type",
"StringFormat": "",
"DefaultValue": null,
"ValueType": "String",
"NumberMin": null,
"NumberMax": null,
"LinkedFieldName": null,
"LinkedValues": null,
"Required": true,
"Optional": false,
"MetaType": null
},
{
"Tab": null,
"Position": 98,
"NewLine": null,
"Name": "address",
"Description": "",
"StringFormat": "DDD",
"DefaultValue": "0",
"ValueType": "SignedInteger",
"NumberMin": 0,
"NumberMax": 255,
"LinkedFieldName": null,
"LinkedValues": null,
"Required": true,
"Optional": false,
"MetaType": null
},
{
"Tab": null,
"Position": 0,
"NewLine": null,
"Name": "startDate",
"Description": "YYYY/MM/DD",
"StringFormat": "",
"DefaultValue": "",
"ValueType": "String",
"NumberMin": null,
"NumberMax": null,
"LinkedFieldName": null,
"LinkedValues": null,
"Required": false,
"Optional": false,
"MetaType": null
},
{
"Tab": null,
"Position": 0,
"NewLine": null,
"Name": "endDate",
"Description": "YYYY/MM/DD",
"StringFormat": "",
"DefaultValue": "",
"ValueType": "String",
"NumberMin": null,
"NumberMax": null,
"LinkedFieldName": null,
"LinkedValues": null,
"Required": false,
"Optional": false,
"MetaType": null
},
{
"Tab": null,
"Position": 100,
"NewLine": null,
"Name": "pollingInterval",
"Description": "How often poll driver for value. 0 mean auto polling disabled.",
"StringFormat": "",
"DefaultValue": "1000",
"ValueType": "SignedInteger",
"NumberMin": 0,
"NumberMax": null,
"LinkedFieldName": null,
"LinkedValues": null,
"Required": true,
"Optional": false,
"MetaType": null
}
]
},
{
"Name": "C_CI_NA_2",
"Description": "Read accounting integrated totals of the oldest integration period",
"ReadOnly": false,
"RegisterProperties": [
{
"Tab": null,
"Position": null,
"NewLine": null,
"Name": "valueType",
"Description": "Register value type",
"StringFormat": "",
"DefaultValue": null,
"ValueType": "String",
"NumberMin": null,
"NumberMax": null,
"LinkedFieldName": null,
"LinkedValues": null,
"Required": true,
"Optional": false,
"MetaType": null
},
{
"Tab": null,
"Position": 98,
"NewLine": null,
"Name": "address",
"Description": "",
"StringFormat": "DDD",
"DefaultValue": "0",
"ValueType": "SignedInteger",
"NumberMin": 0,
"NumberMax": 255,
"LinkedFieldName": null,
"LinkedValues": null,
"Required": true,
"Optional": false,
"MetaType": null
},
{
"Tab": null,
"Position": 0,
"NewLine": null,
"Name": "startDate",
"Description": "YYYY/MM/DD",
"StringFormat": "",
"DefaultValue": "",
"ValueType": "String",
"NumberMin": null,
"NumberMax": null,
"LinkedFieldName": null,
"LinkedValues": null,
"Required": false,
"Optional": false,
"MetaType": null
},
{
"Tab": null,
"Position": 0,
"NewLine": null,
"Name": "endDate",
"Description": "YYYY/MM/DD",
"StringFormat": "",
"DefaultValue": "",
"ValueType": "String",
"NumberMin": null,
"NumberMax": null,
"LinkedFieldName": null,
"LinkedValues": null,
"Required": false,
"Optional": false,
"MetaType": null
},
{
"Tab": null,
"Position": 100,
"NewLine": null,
"Name": "pollingInterval",
"Description": "How often poll driver for value. 0 mean auto polling disabled.",
"StringFormat": "",
"DefaultValue": "1000",
"ValueType": "SignedInteger",
"NumberMin": 0,
"NumberMax": null,
"LinkedFieldName": null,
"LinkedValues": null,
"Required": true,
"Optional": false,
"MetaType": null
}
]
},
{
"Name": "C_CI_NE_2",
"Description": "Read periodically reset accounting integrated totals of the oldest integration period",
"ReadOnly": false,
"RegisterProperties": [
{
"Tab": null,
"Position": null,
"NewLine": null,
"Name": "valueType",
"Description": "Register value type",
"StringFormat": "",
"DefaultValue": null,
"ValueType": "String",
"NumberMin": null,
"NumberMax": null,
"LinkedFieldName": null,
"LinkedValues": null,
"Required": true,
"Optional": false,
"MetaType": null
},
{
"Tab": null,
"Position": 98,
"NewLine": null,
"Name": "address",
"Description": "",
"StringFormat": "DDD",
"DefaultValue": "0",
"ValueType": "SignedInteger",
"NumberMin": 0,
"NumberMax": 255,
"LinkedFieldName": null,
"LinkedValues": null,
"Required": true,
"Optional": false,
"MetaType": null
},
{
"Tab": null,
"Position": 0,
"NewLine": null,
"Name": "startDate",
"Description": "YYYY/MM/DD",
"StringFormat": "",
"DefaultValue": "",
"ValueType": "String",
"NumberMin": null,
"NumberMax": null,
"LinkedFieldName": null,
"LinkedValues": null,
"Required": false,
"Optional": false,
"MetaType": null
},
{
"Tab": null,
"Position": 0,
"NewLine": null,
"Name": "endDate",
"Description": "YYYY/MM/DD",
"StringFormat": "",
"DefaultValue": "",
"ValueType": "String",
"NumberMin": null,
"NumberMax": null,
"LinkedFieldName": null,
"LinkedValues": null,
"Required": false,
"Optional": false,
"MetaType": null
},
{
"Tab": null,
"Position": 100,
"NewLine": null,
"Name": "pollingInterval",
"Description": "How often poll driver for value. 0 mean auto polling disabled.",
"StringFormat": "",
"DefaultValue": "1000",
"ValueType": "SignedInteger",
"NumberMin": 0,
"NumberMax": null,
"LinkedFieldName": null,
"LinkedValues": null,
"Required": true,
"Optional": false,
"MetaType": null
}
]
},
{
"Name": "C_CI_NI_2",
"Description": "Read operational integrated totals of the oldest integration period",
"ReadOnly": false,
"RegisterProperties": [
{
"Tab": null,
"Position": null,
"NewLine": null,
"Name": "valueType",
"Description": "Register value type",
"StringFormat": "",
"DefaultValue": null,
"ValueType": "String",
"NumberMin": null,
"NumberMax": null,
"LinkedFieldName": null,
"LinkedValues": null,
"Required": true,
"Optional": false,
"MetaType": null
},
{
"Tab": null,
"Position": 98,
"NewLine": null,
"Name": "address",
"Description": "",
"StringFormat": "DDD",
"DefaultValue": "0",
"ValueType": "SignedInteger",
"NumberMin": 0,
"NumberMax": 255,
"LinkedFieldName": null,
"LinkedValues": null,
"Required": true,
"Optional": false,
"MetaType": null
},
{
"Tab": null,
"Position": 0,
"NewLine": null,
"Name": "startDate",
"Description": "YYYY/MM/DD",
"StringFormat": "",
"DefaultValue": "",
"ValueType": "String",
"NumberMin": null,
"NumberMax": null,
"LinkedFieldName": null,
"LinkedValues": null,
"Required": false,
"Optional": false,
"MetaType": null
},
{
"Tab": null,
"Position": 0,
"NewLine": null,
"Name": "endDate",
"Description": "YYYY/MM/DD",
"StringFormat": "",
"DefaultValue": "",
"ValueType": "String",
"NumberMin": null,
"NumberMax": null,
"LinkedFieldName": null,
"LinkedValues": null,
"Required": false,
"Optional": false,
"MetaType": null
},
{
"Tab": null,
"Position": 100,
"NewLine": null,
"Name": "pollingInterval",
"Description": "How often poll driver for value. 0 mean auto polling disabled.",
"StringFormat": "",
"DefaultValue": "1000",
"ValueType": "SignedInteger",
"NumberMin": 0,
"NumberMax": null,
"LinkedFieldName": null,
"LinkedValues": null,
"Required": true,
"Optional": false,
"MetaType": null
}
]
},
{
"Name": "C_CI_NN_2",
"Description": "Read periodically reset operational integrated totals of the oldest integration period",
"ReadOnly": false,
"RegisterProperties": [
{
"Tab": null,
"Position": null,
"NewLine": null,
"Name": "valueType",
"Description": "Register value type",
"StringFormat": "",
"DefaultValue": null,
"ValueType": "String",
"NumberMin": null,
"NumberMax": null,
"LinkedFieldName": null,
"LinkedValues": null,
"Required": true,
"Optional": false,
"MetaType": null
},
{
"Tab": null,
"Position": 98,
"NewLine": null,
"Name": "address",
"Description": "",
"StringFormat": "DDD",
"DefaultValue": "0",
"ValueType": "SignedInteger",
"NumberMin": 0,
"NumberMax": 255,
"LinkedFieldName": null,
"LinkedValues": null,
"Required": true,
"Optional": false,
"MetaType": null
},
{
"Tab": null,
"Position": 0,
"NewLine": null,
"Name": "startDate",
"Description": "YYYY/MM/DD",
"StringFormat": "",
"DefaultValue": "",
"ValueType": "String",
"NumberMin": null,
"NumberMax": null,
"LinkedFieldName": null,
"LinkedValues": null,
"Required": false,
"Optional": false,
"MetaType": null
},
{
"Tab": null,
"Position": 0,
"NewLine": null,
"Name": "endDate",
"Description": "YYYY/MM/DD",
"StringFormat": "",
"DefaultValue": "",
"ValueType": "String",
"NumberMin": null,
"NumberMax": null,
"LinkedFieldName": null,
"LinkedValues": null,
"Required": false,
"Optional": false,
"MetaType": null
},
{
"Tab": null,
"Position": 100,
"NewLine": null,
"Name": "pollingInterval",
"Description": "How often poll driver for value. 0 mean auto polling disabled.",
"StringFormat": "",
"DefaultValue": "1000",
"ValueType": "SignedInteger",
"NumberMin": 0,
"NumberMax": null,
"LinkedFieldName": null,
"LinkedValues": null,
"Required": true,
"Optional": false,
"MetaType": null
}
]
},
{
"Name": "C_CI_NB_2",
"Description": "Read accounting integrated totals of the oldest integration period and of a selected range of addresses",
"ReadOnly": false,
"RegisterProperties": [
{
"Tab": null,
"Position": null,
"NewLine": null,
"Name": "valueType",
"Description": "Register value type",
"StringFormat": "",
"DefaultValue": null,
"ValueType": "String",
"NumberMin": null,
"NumberMax": null,
"LinkedFieldName": null,
"LinkedValues": null,
"Required": true,
"Optional": false,
"MetaType": null
},
{
"Tab": null,
"Position": 98,
"NewLine": null,
"Name": "address",
"Description": "",
"StringFormat": "DDDSSSEEE",
"DefaultValue": "0",
"ValueType": "SignedInteger",
"NumberMin": 0,
"NumberMax": 255255255,
"LinkedFieldName": null,
"LinkedValues": null,
"Required": true,
"Optional": false,
"MetaType": null
},
{
"Tab": null,
"Position": 0,
"NewLine": null,
"Name": "startDate",
"Description": "YYYY/MM/DD",
"StringFormat": "",
"DefaultValue": "",
"ValueType": "String",
"NumberMin": null,
"NumberMax": null,
"LinkedFieldName": null,
"LinkedValues": null,
"Required": false,
"Optional": false,
"MetaType": null
},
{
"Tab": null,
"Position": 0,
"NewLine": null,
"Name": "endDate",
"Description": "YYYY/MM/DD",
"StringFormat": "",
"DefaultValue": "",
"ValueType": "String",
"NumberMin": null,
"NumberMax": null,
"LinkedFieldName": null,
"LinkedValues": null,
"Required": false,
"Optional": false,
"MetaType": null
},
{
"Tab": null,
"Position": 100,
"NewLine": null,
"Name": "pollingInterval",
"Description": "How often poll driver for value. 0 mean auto polling disabled.",
"StringFormat": "",
"DefaultValue": "1000",
"ValueType": "SignedInteger",
"NumberMin": 0,
"NumberMax": null,
"LinkedFieldName": null,
"LinkedValues": null,
"Required": true,
"Optional": false,
"MetaType": null
}
]
},
{
"Name": "C_CI_NF_2",
"Description": "Read periodically reset accounting integrated totals of the oldest integration period and of a selected range of addresses",
"ReadOnly": false,
"RegisterProperties": [
{
"Tab": null,
"Position": null,
"NewLine": null,
"Name": "valueType",
"Description": "Register value type",
"StringFormat": "",
"DefaultValue": null,
"ValueType": "String",
"NumberMin": null,
"NumberMax": null,
"LinkedFieldName": null,
"LinkedValues": null,
"Required": true,
"Optional": false,
"MetaType": null
},
{
"Tab": null,
"Position": 98,
"NewLine": null,
"Name": "address",
"Description": "",
"StringFormat": "DDDSSSEEE",
"DefaultValue": "0",
"ValueType": "SignedInteger",
"NumberMin": 0,
"NumberMax": 255255255,
"LinkedFieldName": null,
"LinkedValues": null,
"Required": true,
"Optional": false,
"MetaType": null
},
{
"Tab": null,
"Position": 0,
"NewLine": null,
"Name": "startDate",
"Description": "YYYY/MM/DD",
"StringFormat": "",
"DefaultValue": "",
"ValueType": "String",
"NumberMin": null,
"NumberMax": null,
"LinkedFieldName": null,
"LinkedValues": null,
"Required": false,
"Optional": false,
"MetaType": null
},
{
"Tab": null,
"Position": 0,
"NewLine": null,
"Name": "endDate",
"Description": "YYYY/MM/DD",
"StringFormat": "",
"DefaultValue": "",
"ValueType": "String",
"NumberMin": null,
"NumberMax": null,
"LinkedFieldName": null,
"LinkedValues": null,
"Required": false,
"Optional": false,
"MetaType": null
},
{
"Tab": null,
"Position": 100,
"NewLine": null,
"Name": "pollingInterval",
"Description": "How often poll driver for value. 0 mean auto polling disabled.",
"StringFormat": "",
"DefaultValue": "1000",
"ValueType": "SignedInteger",
"NumberMin": 0,
"NumberMax": null,
"LinkedFieldName": null,
"LinkedValues": null,
"Required": true,
"Optional": false,
"MetaType": null
}
]
},
{
"Name": "C_CI_NK_2",
"Description": "Read operational integrated totals of the oldest integration period and of a selected range of addresses",
"ReadOnly": false,
"RegisterProperties": [
{
"Tab": null,
"Position": null,
"NewLine": null,
"Name": "valueType",
"Description": "Register value type",
"StringFormat": "",
"DefaultValue": null,
"ValueType": "String",
"NumberMin": null,
"NumberMax": null,
"LinkedFieldName": null,
"LinkedValues": null,
"Required": true,
"Optional": false,
"MetaType": null
},
{
"Tab": null,
"Position": 98,
"NewLine": null,
"Name": "address",
"Description": "",
"StringFormat": "DDDSSSEEE",
"DefaultValue": "0",
"ValueType": "SignedInteger",
"NumberMin": 0,
"NumberMax": 255255255,
"LinkedFieldName": null,
"LinkedValues": null,
"Required": true,
"Optional": false,
"MetaType": null
},
{
"Tab": null,
"Position": 0,
"NewLine": null,
"Name": "startDate",
"Description": "YYYY/MM/DD",
"StringFormat": "",
"DefaultValue": "",
"ValueType": "String",
"NumberMin": null,
"NumberMax": null,
"LinkedFieldName": null,
"LinkedValues": null,
"Required": false,
"Optional": false,
"MetaType": null
},
{
"Tab": null,
"Position": 0,
"NewLine": null,
"Name": "endDate",
"Description": "YYYY/MM/DD",
"StringFormat": "",
"DefaultValue": "",
"ValueType": "String",
"NumberMin": null,
"NumberMax": null,
"LinkedFieldName": null,
"LinkedValues": null,
"Required": false,
"Optional": false,
"MetaType": null
},
{
"Tab": null,
"Position": 100,
"NewLine": null,
"Name": "pollingInterval",
"Description": "How often poll driver for value. 0 mean auto polling disabled.",
"StringFormat": "",
"DefaultValue": "1000",
"ValueType": "SignedInteger",
"NumberMin": 0,
"NumberMax": null,
"LinkedFieldName": null,
"LinkedValues": null,
"Required": true,
"Optional": false,
"MetaType": null
}
]
},
{
"Name": "C_CI_NO_2",
"Description": "Read periodically reset operational integrated totals of the oldest integration period and of a selected range of addresses",
"ReadOnly": false,
"RegisterProperties": [
{
"Tab": null,
"Position": null,
"NewLine": null,
"Name": "valueType",
"Description": "Register value type",
"StringFormat": "",
"DefaultValue": null,
"ValueType": "String",
"NumberMin": null,
"NumberMax": null,
"LinkedFieldName": null,
"LinkedValues": null,
"Required": true,
"Optional": false,
"MetaType": null
},
{
"Tab": null,
"Position": 98,
"NewLine": null,
"Name": "address",
"Description": "",
"StringFormat": "DDDSSSEEE",
"DefaultValue": "0",
"ValueType": "SignedInteger",
"NumberMin": 0,
"NumberMax": 255255255,
"LinkedFieldName": null,
"LinkedValues": null,
"Required": true,
"Optional": false,
"MetaType": null
},
{
"Tab": null,
"Position": 0,
"NewLine": null,
"Name": "startDate",
"Description": "YYYY/MM/DD",
"StringFormat": "",
"DefaultValue": "",
"ValueType": "String",
"NumberMin": null,
"NumberMax": null,
"LinkedFieldName": null,
"LinkedValues": null,
"Required": false,
"Optional": false,
"MetaType": null
},
{
"Tab": null,
"Position": 0,
"NewLine": null,
"Name": "endDate",
"Description": "YYYY/MM/DD",
"StringFormat": "",
"DefaultValue": "",
"ValueType": "String",
"NumberMin": null,
"NumberMax": null,
"LinkedFieldName": null,
"LinkedValues": null,
"Required": false,
"Optional": false,
"MetaType": null
},
{
"Tab": null,
"Position": 100,
"NewLine": null,
"Name": "pollingInterval",
"Description": "How often poll driver for value. 0 mean auto polling disabled.",
"StringFormat": "",
"DefaultValue": "1000",
"ValueType": "SignedInteger",
"NumberMin": 0,
"NumberMax": null,
"LinkedFieldName": null,
"LinkedValues": null,
"Required": true,
"Optional": false,
"MetaType": null
}
]
},
{
"Name": "C_CI_NR_2",
"Description": "Read accounting integrated totals of a selected time range and of a selected range of addresses",
"ReadOnly": false,
"RegisterProperties": [
{
"Tab": null,
"Position": null,
"NewLine": null,
"Name": "valueType",
"Description": "Register value type",
"StringFormat": "",
"DefaultValue": null,
"ValueType": "String",
"NumberMin": null,
"NumberMax": null,
"LinkedFieldName": null,
"LinkedValues": null,
"Required": true,
"Optional": false,
"MetaType": null
},
{
"Tab": null,
"Position": 98,
"NewLine": null,
"Name": "address",
"Description": "",
"StringFormat": "DDDSSSEEE",
"DefaultValue": "0",
"ValueType": "SignedInteger",
"NumberMin": 0,
"NumberMax": 255255255,
"LinkedFieldName": null,
"LinkedValues": null,
"Required": true,
"Optional": false,
"MetaType": null
},
{
"Tab": null,
"Position": 0,
"NewLine": null,
"Name": "startDate",
"Description": "YYYY/MM/DD",
"StringFormat": "",
"DefaultValue": "",
"ValueType": "String",
"NumberMin": null,
"NumberMax": null,
"LinkedFieldName": null,
"LinkedValues": null,
"Required": false,
"Optional": false,
"MetaType": null
},
{
"Tab": null,
"Position": 0,
"NewLine": null,
"Name": "endDate",
"Description": "YYYY/MM/DD",
"StringFormat": "",
"DefaultValue": "",
"ValueType": "String",
"NumberMin": null,
"NumberMax": null,
"LinkedFieldName": null,
"LinkedValues": null,
"Required": false,
"Optional": false,
"MetaType": null
},
{
"Tab": null,
"Position": 100,
"NewLine": null,
"Name": "pollingInterval",
"Description": "How often poll driver for value. 0 mean auto polling disabled.",
"StringFormat": "",
"DefaultValue": "1000",
"ValueType": "SignedInteger",
"NumberMin": 0,
"NumberMax": null,
"LinkedFieldName": null,
"LinkedValues": null,
"Required": true,
"Optional": false,
"MetaType": null
}
]
},
{
"Name": "C_CI_NS_2",
"Description": "Read periodically reset accounting integrated totals of a selected time range and of a selected range of addresses",
"ReadOnly": false,
"RegisterProperties": [
{
"Tab": null,
"Position": null,
"NewLine": null,
"Name": "valueType",
"Description": "Register value type",
"StringFormat": "",
"DefaultValue": null,
"ValueType": "String",
"NumberMin": null,
"NumberMax": null,
"LinkedFieldName": null,
"LinkedValues": null,
"Required": true,
"Optional": false,
"MetaType": null
},
{
"Tab": null,
"Position": 98,
"NewLine": null,
"Name": "address",
"Description": "",
"StringFormat": "DDDSSSEEE",
"DefaultValue": "0",
"ValueType": "SignedInteger",
"NumberMin": 0,
"NumberMax": 255255255,
"LinkedFieldName": null,
"LinkedValues": null,
"Required": true,
"Optional": false,
"MetaType": null
},
{
"Tab": null,
"Position": 0,
"NewLine": null,
"Name": "startDate",
"Description": "YYYY/MM/DD",
"StringFormat": "",
"DefaultValue": "",
"ValueType": "String",
"NumberMin": null,
"NumberMax": null,
"LinkedFieldName": null,
"LinkedValues": null,
"Required": false,
"Optional": false,
"MetaType": null
},
{
"Tab": null,
"Position": 0,
"NewLine": null,
"Name": "endDate",
"Description": "YYYY/MM/DD",
"StringFormat": "",
"DefaultValue": "",
"ValueType": "String",
"NumberMin": null,
"NumberMax": null,
"LinkedFieldName": null,
"LinkedValues": null,
"Required": false,
"Optional": false,
"MetaType": null
},
{
"Tab": null,
"Position": 100,
"NewLine": null,
"Name": "pollingInterval",
"Description": "How often poll driver for value. 0 mean auto polling disabled.",
"StringFormat": "",
"DefaultValue": "1000",
"ValueType": "SignedInteger",
"NumberMin": 0,
"NumberMax": null,
"LinkedFieldName": null,
"LinkedValues": null,
"Required": true,
"Optional": false,
"MetaType": null
}
]
},
{
"Name": "C_CI_NT_2",
"Description": "Read operational integrated totals of a selected time range and of a selected range of addresses",
"ReadOnly": false,
"RegisterProperties": [
{
"Tab": null,
"Position": null,
"NewLine": null,
"Name": "valueType",
"Description": "Register value type",
"StringFormat": "",
"DefaultValue": null,
"ValueType": "String",
"NumberMin": null,
"NumberMax": null,
"LinkedFieldName": null,
"LinkedValues": null,
"Required": true,
"Optional": false,
"MetaType": null
},
{
"Tab": null,
"Position": 98,
"NewLine": null,
"Name": "address",
"Description": "",
"StringFormat": "DDDSSSEEE",
"DefaultValue": "0",
"ValueType": "SignedInteger",
"NumberMin": 0,
"NumberMax": 255255255,
"LinkedFieldName": null,
"LinkedValues": null,
"Required": true,
"Optional": false,
"MetaType": null
},
{
"Tab": null,
"Position": 0,
"NewLine": null,
"Name": "startDate",
"Description": "YYYY/MM/DD",
"StringFormat": "",
"DefaultValue": "",
"ValueType": "String",
"NumberMin": null,
"NumberMax": null,
"LinkedFieldName": null,
"LinkedValues": null,
"Required": false,
"Optional": false,
"MetaType": null
},
{
"Tab": null,
"Position": 0,
"NewLine": null,
"Name": "endDate",
"Description": "YYYY/MM/DD",
"StringFormat": "",
"DefaultValue": "",
"ValueType": "String",
"NumberMin": null,
"NumberMax": null,
"LinkedFieldName": null,
"LinkedValues": null,
"Required": false,
"Optional": false,
"MetaType": null
},
{
"Tab": null,
"Position": 100,
"NewLine": null,
"Name": "pollingInterval",
"Description": "How often poll driver for value. 0 mean auto polling disabled.",
"StringFormat": "",
"DefaultValue": "1000",
"ValueType": "SignedInteger",
"NumberMin": 0,
"NumberMax": null,
"LinkedFieldName": null,
"LinkedValues": null,
"Required": true,
"Optional": false,
"MetaType": null
}
]
},
{
"Name": "C_CI_NU_2",
"Description": "Read periodically reset operational integrated totals of a selected time range and of a selected range of addresses",
"ReadOnly": false,
"RegisterProperties": [
{
"Tab": null,
"Position": null,
"NewLine": null,
"Name": "valueType",
"Description": "Register value type",
"StringFormat": "",
"DefaultValue": null,
"ValueType": "String",
"NumberMin": null,
"NumberMax": null,
"LinkedFieldName": null,
"LinkedValues": null,
"Required": true,
"Optional": false,
"MetaType": null
},
{
"Tab": null,
"Position": 98,
"NewLine": null,
"Name": "address",
"Description": "",
"StringFormat": "DDDSSSEEE",
"DefaultValue": "0",
"ValueType": "SignedInteger",
"NumberMin": 0,
"NumberMax": 255255255,
"LinkedFieldName": null,
"LinkedValues": null,
"Required": true,
"Optional": false,
"MetaType": null
},
{
"Tab": null,
"Position": 0,
"NewLine": null,
"Name": "startDate",
"Description": "YYYY/MM/DD",
"StringFormat": "",
"DefaultValue": "",
"ValueType": "String",
"NumberMin": null,
"NumberMax": null,
"LinkedFieldName": null,
"LinkedValues": null,
"Required": false,
"Optional": false,
"MetaType": null
},
{
"Tab": null,
"Position": 0,
"NewLine": null,
"Name": "endDate",
"Description": "YYYY/MM/DD",
"StringFormat": "",
"DefaultValue": "",
"ValueType": "String",
"NumberMin": null,
"NumberMax": null,
"LinkedFieldName": null,
"LinkedValues": null,
"Required": false,
"Optional": false,
"MetaType": null
},
{
"Tab": null,
"Position": 100,
"NewLine": null,
"Name": "pollingInterval",
"Description": "How often poll driver for value. 0 mean auto polling disabled.",
"StringFormat": "",
"DefaultValue": "1000",
"ValueType": "SignedInteger",
"NumberMin": 0,
"NumberMax": null,
"LinkedFieldName": null,
"LinkedValues": null,
"Required": true,
"Optional": false,
"MetaType": null
}
]
}
],
"Meta": {
"BrowseSupported": false,
"DynamicBrowseSupported": false,
"StreamBrowseSupported": false,
"Version": "1.0",
"DriverValuesInterface": "Polling",
"DriverConnectionType": "Ethernet",
"DiscoverySupported": false,
"FreeTag": false,
"DriverState": "Actual"
},
"DiscoveryProperties": [],
"DriverGroup": {
"ID": "49DBE624-5792-4313-8C79-550E5B930932",
"Name": "IEC",
"Logo": "iVBORw0KGgoAAAANSUhEUgAABAAAAAQACAYAAAB/HSuDAAAABmJLR0QA/wD/AP+gvaeTAAAgAElEQVR4nOzdZ5RV5f334d80ZuhNmoB0FUSk2BALgo3Ye4uJ3VhTNEYTTWLLX00xpphYokaNLSYaS1TsHbugoCAoRaQ36WVmnhfxyVIjMAwzc585+7rWcrkW0TnfrJBhzufce+8IAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgpxSkHvD1Kgti6CWtU68AAACADbK4bHW8ecGi1DO+TnHqAV9rp0vaxKrCWalnAAAAwAYpXfVCROyaesbXKUw9AAAAAKh9AgAAAABkgAAAAAAAGSAAAAAAQAYIAAAAAJABAgAAAABkgAAAAAAAGSAAAAAAQAYIAAAAAJABAgAAAABkgAAAAAAAGSAAAAAAQAYIAAAAAJABAgAAAABkgAAAAAAAGSAAAAAAQAYIAAAAAJABAgAAAABkgAAAAAAAGSAAAAAAQAYIAAAAAJABAgAAAABkgAAAAAAAGSAAAAAAQAYIAAAAAJABAgAAAABkgAAAAAAAGSAAAAAAQAYIAAAAAJABAgAAAABkgAAAAAAAGSAAAAAAQAYIAAAAAJABAgAAAABkgAAAAAAAGSAAAAAAQAYIAAAAAJABAgAAAABkgAAAAAAAGSAAAAAAQAYIAAAAAJABAgAAAABkgAAAAAAAGSAAAAAAQAYIAAAAAJABAgAAAABkgAAAAAAAGSAAAAAAQAYIAAAAAJABAgAAAABkgAAAAAAAGSAAAAAAQAYIAAAAAJABAgAAAABkgAAAAAAAGSAAAAAAQAYIAAAAAJABAgAAAABkgAAAAAAAGSAAAAAAQAYIAAAAAJABAgAAAABkgAAAAAAAGSAAAAAAQAYIAAAAAJABAgAAAABkgAAAAAAAGSAAAAAAQAYIAAAAAJABAgAAAABkgAAAAAAAGSAAAAAAQAYIAAAAAJABAgAAAABkgAAAAAAAGSAAAAAAQAYIAAAAAJABAgAAAABkgAAAAAAAGSAAAAAAQAYIAAAAAJABAgAAAABkgAAAAAAAGSAAAAAAQAYIAAAAAJABAgAAAABkgAAAAAAAGSAAAAAAQAYIAAAAAJABAgAAAABkgAAAAAAAGSAAAAAAQAYIAAAAAJABAgAAAABkgAAAAAAAGSAAAAAAQAYIAAAAAJABAgAAAABkgAAAAAAAGSAAAAAAQAYIAAAAAJABAgAAAABkgAAAAAAAGSAAAAAAQAYIAAAAAJABAgAAAABkgAAAAAAAGSAAAAAAQAYIAAAAAJABAgAAAABkgAAAAAAAGSAAAAAAQAYIAAAAAJABAgAAAABkgAAAAAAAGSAAAAAAQAYIAAAAAJABAgAAAABkgAAAAAAAGSAAAAAAQAYIAAAAAJABAgAAAABkgAAAAAAAGSAAAAAAQAYIAAAAAJABAgAAAABkgAAAAAAAGSAAAAAAQAYIAAAAAJABAgAAAABkgAAAAAAAGSAAAAAAQAYIAAAAAJABAgAAAABkgAAAAAAAGSAAAAAAQAYIAAAAAJABAgAAAABkgAAAAAAAGSAAAAAAQAYIAAAAAJABAgAAAABkgAAAAAAAGSAAAAAAQAYIAAAAAJABAgAAAABkgAAAAAAAGSAAAAAAQAYIAAAAAJABAgAAAABkgAAAAAAAGSAAAAAAQAYIAAAAAJABAgAAAABkgAAAAAAAGSAAAAAAQAYIAAAAAJABAgAAAABkgAAAAAAAGSAAAAAAQAYIAAAAAJABAgAAAABkgAAAAAAAGSAAAAAAQAYIAAAAAJABAgAAAABkgAAAAAAAGSAAAAAAQAYIAAAAAJABAgAAAABkgAAAAAAAGSAAAAAAQAYIAAAAAJABAgAAAABkgAAAAAAAGSAAAAAAQAYIAAAAAJABAgAAAABkgAAAAAAAGSAAAAAAQAYIAAAAAJABAgAAAABkgAAAAAAAGSAAAAAAQAYIAAAAAJABAgAAAABkgAAAAAAAGSAAAAAAQAYIAAAAAJABAgAAAABkgAAAAAAAGSAAAAAAQAYIAAAAAJABAgAAAABkgAAAAAAAGSAAAAAAQAYIAAAAAJABAgAAAABkgAAAAAAAGSAAAAAAQAYIAAAAAJABAgAAAABkgAAAAAAAGSAAAAAAQAYIAAAAAJABAgAAAABkgAAAAAAAGSAAAAAAQAYIAAAAAJABAgAAAABkgAAAAAAAGSAAAAAAQAYUpx4A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"
}
}
}
}
List all Details of Drivers
POST {{edgeUrl}}/devicehub/v2
List all Details of Drivers
Returns every driver group, every driver, and the full schema of every driver -- in one call. This is the catalog dump used by tools that need an offline snapshot of what the device supports (e.g. CSV generators, documentation pipelines, the gen_drivers.py migration tooling).
Computationally expensive. This response can exceed a megabyte on devices with the full driver pack installed. The query runs through every driver's schema, which is non-trivial server-side. Cache the result rather than re-issuing the query, and prefer the per-driver
Get Driver Template by DriverIDfor UI use cases.
Endpoint
POST {{edgeUrl}}/devicehub/v2
Content-Type: application/json
Authentication
HTTP Basic Auth. Username is your API token, password is empty. The same token is valid across /devicehub/v2, /analytics/v2, /cc, /opcua, and the other LE services.
Request body (GraphQL)
query ListDriverGroups {
ListDriverGroups(input: { IDs: null }) {
ID
Name
Drivers {
ID
DriverGroupID
Name
Description
DriverGeneration
DeviceProperties {
Tab Position NewLine
Name Description StringFormat
DefaultValue ValueType NumberMin NumberMax
LinkedFieldName LinkedValues
Required Optional MetaType
ListValues { Name Value Description Type }
TableColumns { Name Description DisplayName Default ValueType }
LinkedFields { FieldName FieldValues Criteria GroupNumber }
}
SupportedRegisters {
Name Description ReadOnly
RegisterProperties {
Tab Position NewLine
Name Description StringFormat
DefaultValue ValueType NumberMin NumberMax
LinkedFieldName LinkedValues
Required Optional MetaType
ListValues { Name Value Description Type }
}
}
DiscoveryProperties {
Tab Position NewLine
Name Description StringFormat
DefaultValue ValueType NumberMin NumberMax
LinkedFieldName LinkedValues
Required Optional MetaType
}
DriverGroup { ID Name Logo }
Meta {
BrowseSupported
DynamicBrowseSupported
StreamBrowseSupported
Version
DriverValuesInterface
DriverConnectionType
DiscoverySupported
FreeTag
DriverState
}
}
}
}
Arguments
| Argument | GraphQL type | Required | Description |
|---|---|---|---|
input.IDs |
[ID!] |
No | Optional list of driver group IDs to filter on. Pass null (or omit) to return every group. |
To narrow the cost when only a subset of groups matters, pass input.IDs with the driver-group UUIDs you actually care about. The schema returned per driver is identical -- only the iteration is bounded.
Response
200 OK -- application/json. Same shape as List of Drivers by DriverID and GroupID, plus the full per-driver schema described under Get Driver Template by DriverID.
Extra DeviceProperties fields surfaced here (not in GetDriver)
| Field | Type | Description |
|---|---|---|
DeviceProperties[].TableColumns |
[Column!] |
Column definitions for properties that are edited as a table (CSV-style register tables, etc.). Each column has Name, Description, DisplayName, Default, ValueType. |
DeviceProperties[].LinkedFields |
[LinkedField!] |
Richer conditional-rendering descriptor than LinkedFieldName/LinkedValues. Each item has FieldName, FieldValues, Criteria (e.g. equals, notEquals), and GroupNumber. |
For all other field-level details (response shape, Meta, InputProperty, RegisterTemplate), see Get Driver Template by DriverID.
Errors
GraphQL endpoints return 200 OK even on logical errors. Inspect the errors array in the response body:
{ "errors": [ { "message": "...", "path": ["..."], "extensions": { "code": "..." } } ] }
extensions.code |
Meaning |
|---|---|
UNAUTHENTICATED |
Missing or invalid API token. |
FORBIDDEN |
Token lacks read access to DeviceHub. |
BAD_USER_INPUT |
Invalid argument (unknown ID/GroupID, malformed UUID, etc.). |
NOT_FOUND |
The driver or driver group does not exist on this device. |
INTERNAL_SERVER_ERROR |
DeviceHub fault. Retry, then escalate via System > Support. |
A non-200 HTTP response means DeviceHub itself is unreachable. See Dashboard > DeviceHub Status.
Cost-aware alternatives
| Use case | Prefer this endpoint |
|---|---|
| Just need names/IDs for a picker | List of Drivers by DriverID and GroupID |
| Render a create-device form | Get Driver Template by DriverID |
| One group's drivers + meta | Get Driver Template by GroupID |
| Offline catalog snapshot | This endpoint, but cache the result. |
TLS note: edge devices use a self-signed certificate by default. Either install the device CA in your client trust store or disable certificate verification when calling this endpoint directly.
Request Body
GraphQL Query
query ListDriverGroups {
ListDriverGroups(input: {IDs: null}) {
ID
Name
Drivers {
ID
DriverGroupID
Name
Description
DriverGeneration
DeviceProperties {
Tab
Position
NewLine
Name
Description
StringFormat
DefaultValue
ValueType
NumberMin
NumberMax
LinkedFieldName
LinkedValues
Required
Optional
MetaType
ListValues {
Name
Value
Description
Type
}
TableColumns {
Name
Description
DisplayName
Default
ValueType
}
LinkedFields {
FieldName
FieldValues
Criteria
GroupNumber
}
}
SupportedRegisters {
Name
Description
ReadOnly
RegisterProperties {
Tab
Position
NewLine
Name
Description
StringFormat
DefaultValue
ValueType
NumberMin
NumberMax
LinkedFieldName
LinkedValues
Required
Optional
MetaType
ListValues {
Name
Value
Description
Type
}
}
}
DiscoveryProperties {
Tab
Position
NewLine
Name
Description
StringFormat
DefaultValue
ValueType
NumberMin
NumberMax
LinkedFieldName
LinkedValues
Required
Optional
MetaType
}
DriverGroup {
ID
Name
Logo
}
Meta {
BrowseSupported
DynamicBrowseSupported
StreamBrowseSupported
Version
DriverValuesInterface
DriverConnectionType
DiscoverySupported
FreeTag
DriverState
}
}
}
}
Response
Status: 0