ThingsPro Gateway RESTful API reference API Reference
Welcome to the ThingsPro Gateway RESTful API reference. This is a live document of how you can use ThingsPro Gateway APIs. The ThingsPro Gateway API is organized around the
REST methodology, and it uses resource-oriented URLs, and common HTTP response codes to indicate API errors. All requests are authenticated using an mx-api-token
which can be obtained from ThingsPro gateway web.
API Endpoint
https://localhost/api/v1
Response Content-Types: application/json
Schemes: http, https
Version: 2.6.0
Authentication
mx-api-token
ThingsPro RESTful API token, The token should be created on web console.
cellular
Handles the Cellular interfaces
Cellular Interface(s)
The system returns information about the settings of all Cellular interface(s).
An array of Cellular interface(s)
Response Example (200 OK)
[
{
"id": 1,
"name": "wwan1",
"capabilities": {
"sim": [
1,
2
],
"carriers": [
"ATT",
"SPRINT"
]
},
"mode": "lte",
"signal": {
"rat": "lte",
"csq": 14,
"rssi": -76,
"rxqual": 1,
"rscp": -80,
"ecio": -8.5,
"rsrp": -107.3,
"rsrq": -12,
"indicator": "RSRP",
"level": 4
},
"operatorName": "Chunghwa Telecom",
"lac": "11114",
"tac": "",
"nid": "",
"cellId": "1249",
"bid": "",
"iccId": "",
"imsi": "466977502877452",
"imei": "356853050370859",
"esn": "802202F0",
"pinRetryRemain": 3,
"status": "connected",
"mac": "00:00:00:00:00:00",
"ip": "111.70.146.125",
"netmask": "255.255.255.252",
"gateway": "111.70.146.126",
"dns": [
"168.95.1.1",
"168.95.192.1"
],
"usage": {
"txkbyte": 40023,
"rxkbyte": 3493
},
"currentProfileId": 1,
"enable": true,
"keepalive": {
"enable": true,
"targetHost": "8.8.8.8",
"intervalSec": 60,
"reboot": {
"enable": false,
"cycles": 1
}
},
"profileId": 1,
"profileTimeout": 300,
"profiles": [
{
"id": 1,
"pinCode": "0000",
"pdpContext": {
"static": true,
"id": 1,
"apn": "internet",
"type": "ipv4v6",
"auth": {
"protocol": "none",
"username": "",
"password": ""
}
},
"keepalive": {
"enable": false
},
"init": [
"sim:1",
"carrier:ATT"
]
}
]
}
]
GET /network/cellulars/{id}
Get settings of indicated Cellular interface.
(no description)
An Cellular interface settings.
Response Example (200 OK)
{
"id": 1,
"name": "wwan1",
"capabilities": {
"sim": [
1,
2
],
"carriers": [
"ATT",
"SPRINT"
]
},
"mode": "umts",
"signal": {
"rat": "lte",
"csq": 14,
"rssi": -76,
"rxqual": 1,
"rscp": -80,
"ecio": -8.5,
"rsrp": -107.3,
"rsrq": -12,
"indicator": "RSRP",
"level": 4
},
"operatorName": "Chunghwa Telecom",
"lac": "11114",
"tac": "",
"nid": "",
"cellId": "1249",
"bid": "",
"iccId": "",
"imsi": "466977502877452",
"imei": "356853050370859",
"esn": "802202F0",
"pinRetryRemain": 3,
"status": "connected",
"mac": "00:00:00:00:00:00",
"ip": "111.70.146.125",
"netmask": "255.255.255.252",
"gateway": "111.70.146.126",
"dns": [
"168.95.1.1",
"168.95.192.1"
],
"usage": {
"txkbyte": 40023,
"rxkbyte": 3493
},
"currentProfileId": 1,
"enable": true,
"keepalive": {
"enable": true,
"targetHost": "8.8.8.8",
"intervalSec": 60,
"reboot": {
"enable": false,
"cycles": 1
}
},
"profileId": 1,
"profileTimeout": 300,
"profiles": [
{
"id": 1,
"pinCode": "0000",
"pdpContext": {
"static": true,
"id": 1,
"apn": "internet",
"type": "ipv4v6",
"auth": {
"protocol": "none",
"username": "",
"password": ""
}
},
"keepalive": {
"enable": false
},
"init": [
"sim:1",
"carrier:ATT"
]
}
]
}
Cellular Interface
Update an Cellular interface settings.
(no description)
Request Example
{
"id": 1,
"enable": true,
"keepalive": {
"enable": true,
"targetHost": "8.8.8.8",
"intervalSec": 60,
"reboot": {
"enable": false,
"cycles": 1
}
},
"profileId": 1,
"profileTimeout": 300,
"profiles": [
{
"id": 1,
"pinCode": "0000",
"pdpContext": {
"static": true,
"id": 1,
"apn": "internet",
"type": "ipv4v6",
"auth": {
"protocol": "none",
"username": "",
"password": ""
}
},
"keepalive": {
"enable": false
},
"init": [
"sim:1",
"carrier:ATT"
]
},
{
"id": 2,
"pdpContext": {
"id": 3,
"static": false,
"apn": "",
"type": "ipv4",
"auth": {
"protocol": "none",
"username": "",
"password": ""
}
},
"keepalive": {
"targetHost": "1.2.3.4"
},
"init": [
"carrier:VZW"
]
}
]
}
OK
Response Example (200 OK)
{
"id": 1,
"enable": true,
"keepalive": {
"enable": true,
"targetHost": "8.8.8.8",
"intervalSec": 60,
"reboot": {
"enable": false,
"cycles": 1
}
},
"profileId": 1,
"profileTimeout": 300,
"profiles": [
{
"id": 1,
"pinCode": "0000",
"pdpContext": {
"static": true,
"id": 1,
"apn": "internet",
"type": "ipv4v6",
"auth": {
"protocol": "none",
"username": "",
"password": ""
}
},
"keepalive": {
"enable": false
},
"init": [
"sim:1",
"carrier:ATT"
]
},
{
"id": 2,
"pdpContext": {
"id": 3,
"static": false,
"apn": "",
"type": "ipv4",
"auth": {
"protocol": "none",
"username": "",
"password": ""
}
},
"keepalive": {
"targetHost": "1.2.3.4"
},
"init": [
"carrier:VZW"
]
}
]
}
GET /network/cellulars/{id}/carrier
Get carrier information of indicated Cellular interface.
(no description)
carrier information of indicated Cellular interface.
Response Example (200 OK)
{
"switchable": true,
"current": "ATT",
"preferred": "ATT",
"available": [
"ATT",
"VZW"
]
}
PUT /network/cellulars/{id}/carrier
Set preferred carrier
- carrier: string (up to 32 chars)
-
Carrier name
(no description)
Request Example
{
"carrier": "VZW"
}
OK
Response Example (200 OK)
{
"carrier": "VZW"
}
GET /network/cellulars/{id}/firmware
Get firmware information of indicated Cellular interface.
(no description)
firmware information of indicated Cellular interface.
Response Example (200 OK)
{
"switchable": true,
"current": {
"fwver": "05.05.58.01",
"config": "ATT_005.029_001",
"carrier": "ATT"
},
"preferred": {
"fwver": "05.05.58.01",
"config": "ATT_005.029_001",
"carrier": "ATT"
},
"available": [
{
"fwver": "05.05.58.01",
"config": "ATT_005.029_001",
"carrier": "ATT"
},
{
"fwver": "05.05.58.02",
"config": "VZW_005.029_002",
"carrier": "VZW"
}
]
}
PUT /network/cellulars/{id}/firmware
Set preferred firmware
- fwver: string (up to 32 chars)
-
Firmware version
- config: string (up to 32 chars)
-
Config name
- carrier: string (up to 32 chars)
-
Carrier name
(no description)
Request Example
{
"fwver": "05.05.58.01",
"config": "ATT_005.029_001",
"carrier": "ATT"
}
OK
Response Example (200 OK)
{
"fwver": "05.05.58.01",
"config": "ATT_005.029_001",
"carrier": "ATT"
}
custom-equipment
Manages customized equipment tags
GET /mxc/custom/equipments
Get custom equipment list
success
Response Example (200 OK)
[
{
"id": 1,
"equipmentName": "Promgram-1",
"equipmentTags": [
{
"name": "cpu",
"dataType": "float32",
"access": "ro",
"size": 4,
"description": "all about cpu"
},
{
"name": "mem",
"dataType": "float32",
"access": "ro",
"size": 4,
"description": "all about memory"
},
{
"name": "disk",
"dataType": "uint32",
"access": "ro",
"size": 4,
"description": "all about disk"
}
]
},
{
"id": 2,
"equipmentName": "Promgram-2",
"equipmentTags": [
{
"name": "abc",
"dataType": "string",
"access": "ro",
"size": 4,
"description": "description of abc"
},
{
"name": "def",
"dataType": "string",
"access": "ro",
"size": 4,
"description": "description of def"
},
{
"name": "xyz",
"dataType": "string",
"access": "ro",
"size": 4,
"description": "description of xyz"
}
]
}
]
POST /mxc/custom/equipments
Create a new Custom Equipment with tags
Custom Equipment object
Custom Equipment object
- id: integer
-
ID of equipment
- equipmentName: string
-
Name of custom equipment
- equipmentTags: object[]
-
Tag List of custom equipment
-
object Equipment's tag entry
- name: string (1 to 255 chars)
-
Name of tag
- dataType: string boolean, uint16, uint32, uint64, int16, int32, int64, float32, float64, string, bytearray
-
Data type of tag
- access: string ro, wo, rw
-
Access type of tag
- size: integer
-
Size of tag in byte
- description: string (up to 65535 chars)
-
Description of tag
Request Example
{
"equipmentName": "string",
"equipmentTags": [
{
"name": "string",
"dataType": "string",
"access": "string",
"size": "integer",
"description": "string"
}
]
}
success
Response Example (200 OK)
{
"id": "integer",
"equipmentName": "string",
"equipmentTags": [
{
"name": "string",
"dataType": "string",
"access": "string",
"size": "integer",
"description": "string"
}
]
}
DELETE /mxc/custom/equipments
Delete a Custom Equipment with assigned IDs
Request Example
[
"integer"
]
success
DELETE /mxc/custom/equipments/{id}
Delete a Custom Equipment with assigned ID
(no description)
success
PUT /mxc/custom/equipments/{id}
Update a Custom Equipment with assigned ID
Custom Equipment object
Custom Equipment object
- id: integer
-
ID of equipment
- equipmentName: string
-
Name of custom equipment
- equipmentTags: object[]
-
Tag List of custom equipment
-
object Equipment's tag entry
- name: string (1 to 255 chars)
-
Name of tag
- dataType: string boolean, uint16, uint32, uint64, int16, int32, int64, float32, float64, string, bytearray
-
Data type of tag
- access: string ro, wo, rw
-
Access type of tag
- size: integer
-
Size of tag in byte
- description: string (up to 65535 chars)
-
Description of tag
(no description)
Request Example
{
"equipmentName": "string",
"equipmentTags": [
{
"name": "string",
"dataType": "string",
"access": "string",
"size": "integer",
"description": "string"
}
]
}
success
Response Example (200 OK)
{
"id": "integer",
"equipmentName": "string",
"equipmentTags": [
{
"name": "string",
"dataType": "string",
"access": "string",
"size": "integer",
"description": "string"
}
]
}
logprofile
Handles log profile configuration
GET /mxc/logprofile
Get Log Profile collection
(no description)
success
Get logprofile save destination options
Response Example (200 OK)
[
{
"id": 1,
"name": "log-profile-1",
"enable": true,
"archiver": {
"destination": "Internal",
"thresholdBytePerFile": 5242800,
"directorySizeLimitByte": 10240000,
"archivesToKeep": 24
},
"uploader": {
"httpPost": {
"url": "http://host/post",
"enableAuth": false,
"authentication": {
"username": "uploader",
"password": "password"
},
"headerList": [
{
"name": "Content-Type",
"value": "application/json"
},
{
"name": "User-Agent",
"value": "Mozilla/5.0"
}
],
"bypassSsl": true,
"cronExpr": "0 * * * *",
"format": "json",
"compress": "gzip",
"enableCompress": true,
"retryCount": 3,
"retryPeriodSec": 3
}
},
"equipmentList": [
{
"equipmentName": "My-ioLogik-E2242",
"equipmentTags": [
{
"name": "di0",
"logOnChange": false
},
{
"name": "di1",
"logOnChange": false
},
{
"name": "ai0",
"logOnChange": false
}
]
},
{
"equipmentName": "My-other-ioLogik-E2242",
"equipmentTags": [
{
"name": "di0",
"logOnChange": false
},
{
"name": "di1",
"logOnChange": false
},
{
"name": "ai0",
"logOnChange": false
}
]
}
]
},
{
"id": 2,
"enable": false,
"name": "log-profile-2",
"archiver": {
"destination": "Internal",
"thresholdBytePerFile": 5242800,
"directorySizeLimitByte": 10240000,
"archivesToKeep": 24
},
"uploader": {
"httpPost": {
"url": "http://host/post",
"enableAuth": true,
"authentication": {
"username": "uploader",
"password": "password"
},
"headerList": [
{
"name": "Content-Type",
"value": "application/json"
},
{
"name": "User-Agent",
"value": "Mozilla/5.0"
}
],
"bypassSsl": true,
"cronExpr": "0 * * * *",
"format": "json",
"compress": "gzip",
"enableCompress": false,
"retryCount": 3,
"retryPeriodSec": 3
}
},
"equipmentList": [
{
"equipmentName": "My-ioLogik-E2242",
"equipmentTags": [
{
"name": "di0",
"logOnChange": true
},
{
"name": "di1",
"logOnChange": false
},
{
"name": "ai0",
"logOnChange": true
}
]
},
{
"equipmentName": "My-other-ioLogik-E2242",
"equipmentTags": [
{
"name": "di0",
"logOnChange": true
},
{
"name": "di1",
"logOnChange": true
},
{
"name": "ai0",
"logOnChange": true
}
]
}
]
}
]
Response Example (x-query-destinations )
[
{
"name": "Internal",
"directory": "/var/mxlogariver"
},
{
"name": "SD",
"directory": "/media"
}
]
POST /mxc/logprofile
Create a Log Profile
Request Example
{
"id": 1,
"name": "log-profile-1",
"enable": true,
"archiver": {
"destination": "Internal",
"thresholdBytePerFile": 5242800,
"directorySizeLimitByte": 10240000,
"archivesToKeep": 24
},
"uploader": {
"httpPost": {
"url": "http://host/post",
"enableAuth": false,
"authentication": {
"username": "uploader",
"password": "password"
},
"headerList": [
{
"name": "Content-Type",
"value": "application/json"
},
{
"name": "User-Agent",
"value": "Mozilla/5.0"
}
],
"bypassSsl": true,
"cronExpr": "0 * * * *",
"format": "json",
"compress": "gzip",
"enableCompress": true,
"retryCount": 3,
"retryPeriodSec": 3
}
},
"equipmentList": [
{
"equipmentName": "My-ioLogik-E2242",
"equipmentTags": [
{
"name": "di0",
"logOnChange": false
},
{
"name": "di1",
"logOnChange": false
},
{
"name": "ai0",
"logOnChange": false
}
]
},
{
"equipmentName": "My-other-ioLogik-E2242",
"equipmentTags": [
{
"name": "di0",
"logOnChange": false
},
{
"name": "di1",
"logOnChange": false
},
{
"name": "ai0",
"logOnChange": false
}
]
}
]
}
success
Response Example (200 OK)
{
"id": 1,
"name": "log-profile-1",
"enable": true,
"archiver": {
"destination": "Internal",
"thresholdBytePerFile": 5242800,
"directorySizeLimitByte": 10240000,
"archivesToKeep": 24
},
"uploader": {
"httpPost": {
"url": "http://host/post",
"enableAuth": false,
"authentication": {
"username": "uploader",
"password": "password"
},
"headerList": [
{
"name": "Content-Type",
"value": "application/json"
},
{
"name": "User-Agent",
"value": "Mozilla/5.0"
}
],
"bypassSsl": true,
"cronExpr": "0 * * * *",
"format": "json",
"compress": "gzip",
"enableCompress": true,
"retryCount": 3,
"retryPeriodSec": 3
}
},
"equipmentList": [
{
"equipmentName": "My-ioLogik-E2242",
"equipmentTags": [
{
"name": "di0",
"logOnChange": false
},
{
"name": "di1",
"logOnChange": false
},
{
"name": "ai0",
"logOnChange": false
}
]
},
{
"equipmentName": "My-other-ioLogik-E2242",
"equipmentTags": [
{
"name": "di0",
"logOnChange": false
},
{
"name": "di1",
"logOnChange": false
},
{
"name": "ai0",
"logOnChange": false
}
]
}
]
}
DELETE /mxc/logprofile/{id}
Delete a Log Profile with assigned ID
(no description)
success
PUT /mxc/logprofile/{id}
Update a Log Profile with assigned ID
(no description)
Request Example
{
"id": 1,
"name": "log-profile-1",
"enable": true,
"archiver": {
"destination": "Internal",
"thresholdBytePerFile": 5242800,
"directorySizeLimitByte": 10240000,
"archivesToKeep": 24
},
"uploader": {
"httpPost": {
"url": "http://host/post",
"enableAuth": false,
"authentication": {
"username": "uploader",
"password": "password"
},
"headerList": [
{
"name": "Content-Type",
"value": "application/json"
},
{
"name": "User-Agent",
"value": "Mozilla/5.0"
}
],
"bypassSsl": true,
"cronExpr": "0 * * * *",
"format": "json",
"compress": "gzip",
"enableCompress": true,
"retryCount": 3,
"retryPeriodSec": 3
}
},
"equipmentList": [
{
"equipmentName": "My-ioLogik-E2242",
"equipmentTags": [
{
"name": "di0",
"logOnChange": false
},
{
"name": "di1",
"logOnChange": false
},
{
"name": "ai0",
"logOnChange": false
}
]
},
{
"equipmentName": "My-other-ioLogik-E2242",
"equipmentTags": [
{
"name": "di0",
"logOnChange": false
},
{
"name": "di1",
"logOnChange": false
},
{
"name": "ai0",
"logOnChange": false
}
]
}
]
}
success
Response Example (200 OK)
{
"id": 1,
"name": "log-profile-1",
"enable": true,
"archiver": {
"destination": "Internal",
"thresholdBytePerFile": 5242800,
"directorySizeLimitByte": 10240000,
"archivesToKeep": 24
},
"uploader": {
"httpPost": {
"url": "http://host/post",
"enableAuth": false,
"authentication": {
"username": "uploader",
"password": "password"
},
"headerList": [
{
"name": "Content-Type",
"value": "application/json"
},
{
"name": "User-Agent",
"value": "Mozilla/5.0"
}
],
"bypassSsl": true,
"cronExpr": "0 * * * *",
"format": "json",
"compress": "gzip",
"enableCompress": true,
"retryCount": 3,
"retryPeriodSec": 3
}
},
"equipmentList": [
{
"equipmentName": "My-ioLogik-E2242",
"equipmentTags": [
{
"name": "di0",
"logOnChange": false
},
{
"name": "di1",
"logOnChange": false
},
{
"name": "ai0",
"logOnChange": false
}
]
},
{
"equipmentName": "My-other-ioLogik-E2242",
"equipmentTags": [
{
"name": "di0",
"logOnChange": false
},
{
"name": "di1",
"logOnChange": false
},
{
"name": "ai0",
"logOnChange": false
}
]
}
]
}
GET /mxc/equipments
Get all equipment tags. If equipment name conflicts, it will merged into one tag and concat description with ";"
success
Response Example (200 OK)
[
{
"equipmentType": "modbus",
"equipmentName": "My-other-ioLogik-E2242",
"equipmentTags": [
{
"name": "di0",
"dataType": "boolean",
"access": "ro",
"size": 1,
"description": "di0",
"function": "read-discrete-inputs",
"address": 0,
"quantity": 1
},
{
"name": "di1",
"dataType": "boolean",
"access": "ro",
"size": 1,
"description": "di1",
"function": "read-discrete-inputs",
"address": 1,
"quantity": 1
},
{
"name": "ai0",
"dataType": "uint16",
"access": "ro",
"size": 2,
"description": "ai0",
"function": "read-holding-registers",
"address": 0,
"quantity": 1
}
]
},
{
"equipmentType": "user",
"equipmentName": "program-1",
"equipmentTags": [
{
"name": "cpu",
"dataType": "float32",
"access": "ro",
"size": 4,
"description": "CPU Usage (%)"
},
{
"name": "memory",
"dataType": "float32",
"access": "ro",
"size": 4,
"description": "Memory Usage (%)"
},
{
"name": "abc",
"dataType": "string",
"access": "ro",
"size": 4,
"description": "def"
}
]
}
]
modbus
Handles Modbus framework configuration
dhcpd
Handles the DHCP Server configuration
GET /network/dhcpd
Get Overview of DHCP Server information
success
Response Example (200 OK)
{
"status": true,
"collection": [
{
"id": 1,
"name": "eth0",
"available": false,
"enable": false,
"subnet": "192.168.3.0",
"netmask": "255.255.255.0",
"startIp": "192.168.3.100",
"endIp": "192.168.3.150",
"domainNameServers": [
"8.8.8.8",
"1.1.1.1",
"2.2.2.2"
],
"domainName": "cloud5566",
"leaseTime": "3600"
}
]
}
GET /network/dhcpd/{id}
Get a dhcp server configuration
(no description)
success
Response Example (200 OK)
{
"id": 1,
"name": "eth0",
"available": false,
"enable": false,
"subnet": "192.168.3.0",
"netmask": "255.255.255.0",
"startIp": "192.168.3.100",
"endIp": "192.168.3.150",
"domainNameServers": [
"8.8.8.8",
"1.1.1.1",
"2.2.2.2"
],
"domainName": "cloud5566",
"leaseTime": "3600"
}
PUT /network/dhcpd/{id}
Update a dhcp server configuration
DHCP Server configuration
DHCP Server configuration
- available: boolean
-
DHCP server is available or not (the interface must be "static IP" and/or worked as a WiFi AP), default should be false.
- name: string (1 to 255 chars)
-
Name of dhcp server
- enable: boolean
-
Enable dhcp server
- netmask: string (7 to 15 chars)
-
Netmask of dhcp server
- startIp: string (7 to 15 chars)
-
Range IP start
- endIp: string (7 to 15 chars)
-
Range IP end
- domainNameServers: string[]
-
Domain name servers
-
string (7 to 15 chars) - domainName: string (up to 255 chars)
-
Domain name
- leaseTime: integer 60 ≤ x ≤ 65535
-
Lease time of dhcp pool
(no description)
Request Example
{
"id": 1,
"name": "eth0",
"available": false,
"enable": false,
"subnet": "192.168.3.0",
"netmask": "255.255.255.0",
"startIp": "192.168.3.100",
"endIp": "192.168.3.150",
"domainNameServers": [
"8.8.8.8",
"1.1.1.1",
"2.2.2.2"
],
"domainName": "cloud5566",
"leaseTime": "3600"
}
success
Response Example (200 OK)
{
"id": 1,
"name": "eth0",
"available": false,
"enable": false,
"subnet": "192.168.3.0",
"netmask": "255.255.255.0",
"startIp": "192.168.3.100",
"endIp": "192.168.3.150",
"domainNameServers": [
"8.8.8.8",
"1.1.1.1",
"2.2.2.2"
],
"domainName": "cloud5566",
"leaseTime": "3600"
}
dns
Handles the system DNS settings
Information of Current DNS settings
List all current DNS and DNS source.
DNS
Response Example (200 OK)
{
"enableFixed": false,
"fixedDns": [],
"source": "eth0",
"dns": [
"8.8.8.8",
"8.8.4.4"
]
}
Update DNS settings
Update DNS settings by interface or using fixed DNS.
Request Example
{
"enableFixed": false,
"fixedDns": [],
"source": "eth0",
"dns": [
"8.8.8.8",
"8.8.4.4"
]
}
OK
Response Example (200 OK)
{
"enableFixed": false,
"fixedDns": [],
"source": "eth0",
"dns": [
"8.8.8.8",
"8.8.4.4"
]
}
ethernet
Handles the Ethernet interfaces
Ethernet Interface(s)
The system returns information about the settings of all Ethernet interface(s).
An array of Ethernet interface(s)
Response Example (200 OK)
[
{
"id": 1,
"wan": true,
"name": "eth0",
"ip": "192.168.3.127",
"mac": "FF:FF:FF:FF:FF:FF",
"netmask": "255.255.255.0",
"subnet": "192.168.3.0",
"gateway": "192.168.3.254",
"dns": [
"8.8.8.8",
"8.8.4.4"
],
"status": true,
"enable": true,
"enableDhcp": false
},
{
"id": 2,
"wan": false,
"name": "eth1",
"ip": "192.168.100.127",
"mac": "FF:FF:FF:FF:FF:FF",
"netmask": "255.255.255.0",
"subnet": "192.168.100.0",
"gateway": "192.168.100.254",
"dns": [
"8.8.8.8",
"8.8.4.4"
],
"status": true,
"enable": true,
"enableDhcp": false,
"restart": true
}
]
Ethernet Interface(s)
Update a list of Ethernet interface(s) settings.
OK
Response Example (200 OK)
[
{
"id": 1,
"wan": true,
"name": "eth0",
"ip": "192.168.3.127",
"mac": "FF:FF:FF:FF:FF:FF",
"netmask": "255.255.255.0",
"subnet": "192.168.3.0",
"gateway": "192.168.3.254",
"dns": [
"8.8.8.8",
"8.8.4.4"
],
"status": true,
"enable": true,
"enableDhcp": false
}
]
GET /network/ethernets/{id}
Get settings of indicated Ethernet interface.
(no description)
An Ethernet interface settings.
Response Example (200 OK)
{
"id": 1,
"wan": true,
"name": "eth0",
"ip": "192.168.3.127",
"mac": "FF:FF:FF:FF:FF:FF",
"netmask": "255.255.255.0",
"subnet": "192.168.3.0",
"gateway": "192.168.3.254",
"dns": [
"8.8.8.8",
"8.8.4.4"
],
"status": true,
"enable": true,
"enableDhcp": false
}
Ethernet Interface
Update an Ethernet interface settings.
(no description)
Request Example
{
"id": 1,
"wan": true,
"name": "eth0",
"ip": "192.168.3.127",
"mac": "FF:FF:FF:FF:FF:FF",
"netmask": "255.255.255.0",
"subnet": "192.168.3.0",
"gateway": "192.168.3.254",
"dns": [
"8.8.8.8",
"8.8.4.4"
],
"status": true,
"enable": true,
"enableDhcp": false
}
OK
Response Example (200 OK)
{
"id": 1,
"wan": true,
"name": "eth0",
"ip": "192.168.3.127",
"mac": "FF:FF:FF:FF:FF:FF",
"netmask": "255.255.255.0",
"subnet": "192.168.3.0",
"gateway": "192.168.3.254",
"dns": [
"8.8.8.8",
"8.8.4.4"
],
"status": true,
"enable": true,
"enableDhcp": false
}
import-export
Manages the import/export of configuration files
PUT /system/import
Put a download url with headers and import settings. For more information, please check out tutorial documents about API Endpoint with files.
Import information
Import information
- file: object
-
Url information
-
- url: string (1 to 4096 chars)
-
Url address
- headers: object
-
Headers
- scopes: string[]
-
Import scopes (only selected scopes' configuration will be imported)
-
string modbus, time, dns, ethernet, cellular, openvpn, dhcpd, serial, portforwarding, program, applications, system
Request Example
{
"file": {
"url": "https://server/upload",
"headers": {
"accessToken": "MOXAMOXA-TEST-SYSTEM"
}
},
"scopes": [
"string"
]
}
success
POST /system/export
Post a target url with headers, bundle would upload to target url and return download url. Target upload server should response in this json format:
{ "fieldname": "file", "url": "/api/v1/files/download/61256ff7db8b7b40e254b940ae639b8e" }ThingsPro has a built-in simple upload server which is already used by web. In general cases, using the built-in server is highly recommended. Request export to simple upload server with url:
https://localhost/api/v1/files/upload
For more information, please check out tutorial documents about API Endpoint with files.
Url information
Url information
- url: string (1 to 4096 chars)
-
Url address
- headers: object
-
Headers
Request Example
{
"url": "https://server/upload",
"headers": {
"accessToken": "MOXAMOXA-TEST-SYSTEM"
}
}
sucess
Response Example (200 OK)
{
"url": "https://server/upload",
"headers": {
"accessToken": "MOXAMOXA-TEST-SYSTEM"
}
}
modbusslave
Handles Modbus Slave configuration
GET /mxc/modbusslave
Get Modbus Slave Configuration
success
Response Example (200 OK)
{
"enable": true,
"host": "0.0.0.0",
"port": 502,
"unitId": 255,
"ignoreUnitId": false,
"anyHost": true
}
PUT /mxc/modbusslave
Update Modbus Slave Configuration
Request Example
{
"enable": true,
"host": "0.0.0.0",
"port": 502,
"unitId": 255,
"ignoreUnitId": false,
"anyHost": true
}
success
Response Example (200 OK)
{
"enable": true,
"host": "0.0.0.0",
"port": 502,
"unitId": 255,
"ignoreUnitId": false,
"anyHost": true
}
GET /mxc/modbusslave/mappings
Get Modbus Slave Mapping Table
success
Response Example (200 OK)
[
{
"id": 1,
"reference": "0x40000",
"quantity": 1,
"equipmentName": "My_ioLogik-E2242",
"equipmentType": "modbus",
"tagName": "ai0"
}
]
POST /mxc/modbusslave/mappings
Create a Mapping Entry
Request Example
{
"id": 1,
"reference": "0x40000",
"quantity": 1,
"equipmentName": "My_ioLogik-E2242",
"equipmentType": "modbus",
"tagName": "ai0"
}
success
Response Example (200 OK)
{
"id": 1,
"reference": "0x40000",
"quantity": 1,
"equipmentName": "My_ioLogik-E2242",
"equipmentType": "modbus",
"tagName": "ai0"
}
PUT /mxc/modbusslave/mappings
Update Modbus Slave Mapping Table
- id: integer
-
Identity for MappingEntry
- reference: string
-
Modbus access address (or offset)
- quantity: integer
-
Modbus access quantity
- equipmentName: string (3 to 255 chars)
-
Equipment Name of Tag
- equipmentType: string
-
Type of Tag
- tagName: string (2 to 255 chars)
-
Tag Name of Tag
Request Example
[
{
"id": 1,
"reference": "0x40000",
"quantity": 1,
"equipmentName": "My_ioLogik-E2242",
"equipmentType": "modbus",
"tagName": "ai0"
}
]
success
Response Example (200 OK)
[
{
"id": 1,
"reference": "0x40000",
"quantity": 1,
"equipmentName": "My_ioLogik-E2242",
"equipmentType": "modbus",
"tagName": "ai0"
}
]
DELETE /mxc/modbusslave/mappings
Delete a list of MappingEntry with assigned ID
Request Example
[
"integer"
]
success
GET /mxc/mxmodbusslave/mappings/{id}
Get a MappingEntry with assigned ID
(no description)
success
Response Example (200 OK)
{
"id": 1,
"reference": "0x40000",
"quantity": 1,
"equipmentName": "My_ioLogik-E2242",
"equipmentType": "modbus",
"tagName": "ai0"
}
DELETE /mxc/mxmodbusslave/mappings/{id}
Delete a MappingEntry with assigned ID
(no description)
success
PUT /mxc/mxmodbusslave/mappings/{id}
Update a MappingEntry with assigned ID
(no description)
Request Example
{
"id": 1,
"reference": "0x40000",
"quantity": 1,
"equipmentName": "My_ioLogik-E2242",
"equipmentType": "modbus",
"tagName": "ai0"
}
success
Response Example (200 OK)
{
"id": 1,
"reference": "0x40000",
"quantity": 1,
"equipmentName": "My_ioLogik-E2242",
"equipmentType": "modbus",
"tagName": "ai0"
}
equipment-template
Modbus Management for Data Acquisition
GET /mxc/modbus/equipment-templates
Get all equipment templates
success
Response Example (200 OK)
[
{
"id": 1,
"name": "ioLogik-E1210",
"tagList": [
{
"name": "di0",
"function": "read-discrete-inputs",
"address": 0,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "di1",
"function": "read-discrete-inputs",
"address": 1,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "di2",
"function": "read-discrete-inputs",
"address": 2,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "di3",
"function": "read-discrete-inputs",
"address": 3,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "di4",
"function": "read-discrete-inputs",
"address": 4,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "di5",
"function": "read-discrete-inputs",
"address": 5,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "di6",
"function": "read-discrete-inputs",
"address": 6,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "di7",
"function": "read-discrete-inputs",
"address": 7,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "di8",
"function": "read-discrete-inputs",
"address": 8,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "di9",
"function": "read-discrete-inputs",
"address": 9,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "di10",
"function": "read-discrete-inputs",
"address": 10,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "di11",
"function": "read-discrete-inputs",
"address": 11,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "di12",
"function": "read-discrete-inputs",
"address": 12,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "di13",
"function": "read-discrete-inputs",
"address": 13,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "di14",
"function": "read-discrete-inputs",
"address": 14,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "di15",
"function": "read-discrete-inputs",
"address": 15,
"quantity": 1,
"dataType": "boolean",
"description": ""
}
]
},
{
"id": 2,
"name": "ioLogik-E1211",
"tagList": [
{
"name": "do0",
"function": "read-coils",
"address": 0,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "do1",
"function": "read-coils",
"address": 1,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "do2",
"function": "read-coils",
"address": 2,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "do3",
"function": "read-coils",
"address": 3,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "do4",
"function": "read-coils",
"address": 4,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "do5",
"function": "read-coils",
"address": 5,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "do6",
"function": "read-coils",
"address": 6,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "do7",
"function": "read-coils",
"address": 7,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "do8",
"function": "read-coils",
"address": 8,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "do9",
"function": "read-coils",
"address": 9,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "do10",
"function": "read-coils",
"address": 10,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "do11",
"function": "read-coils",
"address": 11,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "do12",
"function": "read-coils",
"address": 12,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "do13",
"function": "read-coils",
"address": 13,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "do14",
"function": "read-coils",
"address": 14,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "do15",
"function": "read-coils",
"address": 15,
"quantity": 1,
"dataType": "boolean",
"description": ""
}
]
},
{
"id": 3,
"name": "ioLogik-E1212",
"tagList": [
{
"name": "di0",
"function": "read-discrete-inputs",
"address": 0,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "di1",
"function": "read-discrete-inputs",
"address": 1,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "di2",
"function": "read-discrete-inputs",
"address": 2,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "di3",
"function": "read-discrete-inputs",
"address": 3,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "di4",
"function": "read-discrete-inputs",
"address": 4,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "di5",
"function": "read-discrete-inputs",
"address": 5,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "di6",
"function": "read-discrete-inputs",
"address": 6,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "di7",
"function": "read-discrete-inputs",
"address": 7,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "di8",
"function": "read-discrete-inputs",
"address": 8,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "di9",
"function": "read-discrete-inputs",
"address": 9,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "di10",
"function": "read-discrete-inputs",
"address": 10,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "di11",
"function": "read-discrete-inputs",
"address": 11,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "di12",
"function": "read-discrete-inputs",
"address": 12,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "di13",
"function": "read-discrete-inputs",
"address": 13,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "di14",
"function": "read-discrete-inputs",
"address": 14,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "di15",
"function": "read-discrete-inputs",
"address": 15,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "do0",
"function": "read-coils",
"address": 0,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "do1",
"function": "read-coils",
"address": 1,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "do2",
"function": "read-coils",
"address": 2,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "do3",
"function": "read-coils",
"address": 3,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "do4",
"function": "read-coils",
"address": 4,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "do5",
"function": "read-coils",
"address": 5,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "do6",
"function": "read-coils",
"address": 6,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "do7",
"function": "read-coils",
"address": 7,
"quantity": 1,
"dataType": "boolean",
"description": ""
}
]
},
{
"id": 4,
"name": "ioLogik-E1213",
"tagList": [
{
"name": "di0",
"function": "read-discrete-inputs",
"address": 0,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "di1",
"function": "read-discrete-inputs",
"address": 1,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "di2",
"function": "read-discrete-inputs",
"address": 2,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "di3",
"function": "read-discrete-inputs",
"address": 3,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "di4",
"function": "read-discrete-inputs",
"address": 4,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "di5",
"function": "read-discrete-inputs",
"address": 5,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "di6",
"function": "read-discrete-inputs",
"address": 6,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "di7",
"function": "read-discrete-inputs",
"address": 7,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "di8",
"function": "read-discrete-inputs",
"address": 8,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "di9",
"function": "read-discrete-inputs",
"address": 9,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "di10",
"function": "read-discrete-inputs",
"address": 10,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "di11",
"function": "read-discrete-inputs",
"address": 11,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "do0",
"function": "read-coils",
"address": 0,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "do1",
"function": "read-coils",
"address": 1,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "do2",
"function": "read-coils",
"address": 2,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "do3",
"function": "read-coils",
"address": 3,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "do4",
"function": "read-coils",
"address": 4,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "do5",
"function": "read-coils",
"address": 5,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "do6",
"function": "read-coils",
"address": 6,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "do7",
"function": "read-coils",
"address": 7,
"quantity": 1,
"dataType": "boolean",
"description": ""
}
]
},
{
"id": 5,
"name": "ioLogik-E1214",
"tagList": [
{
"name": "di0",
"function": "read-discrete-inputs",
"address": 0,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "di1",
"function": "read-discrete-inputs",
"address": 1,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "di2",
"function": "read-discrete-inputs",
"address": 2,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "di3",
"function": "read-discrete-inputs",
"address": 3,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "di4",
"function": "read-discrete-inputs",
"address": 4,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "di5",
"function": "read-discrete-inputs",
"address": 5,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "ro0",
"function": "read-coils",
"address": 0,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "ro1",
"function": "read-coils",
"address": 1,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "ro2",
"function": "read-coils",
"address": 2,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "ro3",
"function": "read-coils",
"address": 3,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "ro4",
"function": "read-coils",
"address": 4,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "ro5",
"function": "read-coils",
"address": 5,
"quantity": 1,
"dataType": "boolean",
"description": ""
}
]
},
{
"id": 6,
"name": "ioLogik-E1240",
"tagList": [
{
"name": "ai0",
"function": "read-input-registers",
"address": 0,
"quantity": 1,
"dataType": "uint16",
"description": ""
},
{
"name": "ai1",
"function": "read-input-registers",
"address": 1,
"quantity": 1,
"dataType": "uint16",
"description": ""
},
{
"name": "ai2",
"function": "read-input-registers",
"address": 2,
"quantity": 1,
"dataType": "uint16",
"description": ""
},
{
"name": "ai3",
"function": "read-input-registers",
"address": 3,
"quantity": 1,
"dataType": "uint16",
"description": ""
},
{
"name": "ai4",
"function": "read-input-registers",
"address": 4,
"quantity": 1,
"dataType": "uint16",
"description": ""
},
{
"name": "ai5",
"function": "read-input-registers",
"address": 5,
"quantity": 1,
"dataType": "uint16",
"description": ""
},
{
"name": "ai6",
"function": "read-input-registers",
"address": 6,
"quantity": 1,
"dataType": "uint16",
"description": ""
},
{
"name": "ai7",
"function": "read-input-registers",
"address": 7,
"quantity": 1,
"dataType": "uint16",
"description": ""
}
]
},
{
"id": 7,
"name": "ioLogik-E1241",
"tagList": [
{
"name": "ao0",
"function": "read-holding-registers",
"address": 1024,
"quantity": 1,
"dataType": "uint16",
"description": ""
},
{
"name": "ao1",
"function": "read-holding-registers",
"address": 1025,
"quantity": 1,
"dataType": "uint16",
"description": ""
},
{
"name": "ao2",
"function": "read-holding-registers",
"address": 1026,
"quantity": 1,
"dataType": "uint16",
"description": ""
},
{
"name": "ao3",
"function": "read-holding-registers",
"address": 1027,
"quantity": 1,
"dataType": "uint16",
"description": ""
}
]
},
{
"id": 8,
"name": "ioLogik-E1242",
"tagList": [
{
"name": "di0",
"function": "read-discrete-inputs",
"address": 0,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "di1",
"function": "read-discrete-inputs",
"address": 1,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "di2",
"function": "read-discrete-inputs",
"address": 2,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "di3",
"function": "read-discrete-inputs",
"address": 3,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "di4",
"function": "read-discrete-inputs",
"address": 4,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "di5",
"function": "read-discrete-inputs",
"address": 5,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "di6",
"function": "read-discrete-inputs",
"address": 6,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "di7",
"function": "read-discrete-inputs",
"address": 7,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "do0",
"function": "read-coils",
"address": 0,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "do1",
"function": "read-coils",
"address": 1,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "do2",
"function": "read-coils",
"address": 2,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "do3",
"function": "read-coils",
"address": 3,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "ai0",
"function": "read-input-registers",
"address": 512,
"quantity": 1,
"dataType": "uint16",
"description": ""
},
{
"name": "ai1",
"function": "read-input-registers",
"address": 513,
"quantity": 1,
"dataType": "uint16",
"description": ""
},
{
"name": "ai2",
"function": "read-input-registers",
"address": 514,
"quantity": 1,
"dataType": "uint16",
"description": ""
},
{
"name": "ai3",
"function": "read-input-registers",
"address": 515,
"quantity": 1,
"dataType": "uint16",
"description": ""
}
]
},
{
"id": 9,
"name": "ioLogik-E1260",
"tagList": [
{
"name": "rtdi0",
"function": "read-input-registers",
"address": 1536,
"quantity": 1,
"dataType": "uint16",
"enableAutoScaling": 1,
"autoScalingMode": "intercept",
"autoScaling": {
"slope": 0.1,
"offset": 0
},
"description": ""
},
{
"name": "rtdi1",
"function": "read-input-registers",
"address": 1537,
"quantity": 1,
"dataType": "uint16",
"enableAutoScaling": 1,
"autoScalingMode": "intercept",
"autoScaling": {
"slope": 0.1,
"offset": 0
},
"description": ""
},
{
"name": "rtdi2",
"function": "read-input-registers",
"address": 1538,
"quantity": 1,
"dataType": "uint16",
"enableAutoScaling": 1,
"autoScalingMode": "intercept",
"autoScaling": {
"slope": 0.1,
"offset": 0
},
"description": ""
},
{
"name": "rtdi3",
"function": "read-input-registers",
"address": 1539,
"quantity": 1,
"dataType": "uint16",
"enableAutoScaling": 1,
"autoScalingMode": "intercept",
"autoScaling": {
"slope": 0.1,
"offset": 0
},
"description": ""
},
{
"name": "rtdi4",
"function": "read-input-registers",
"address": 1540,
"quantity": 1,
"dataType": "uint16",
"enableAutoScaling": 1,
"autoScalingMode": "intercept",
"autoScaling": {
"slope": 0.1,
"offset": 0
},
"description": ""
},
{
"name": "rtdi5",
"function": "read-input-registers",
"address": 1541,
"quantity": 1,
"dataType": "uint16",
"enableAutoScaling": 1,
"autoScalingMode": "intercept",
"autoScaling": {
"slope": 0.1,
"offset": 0
},
"description": ""
}
]
},
{
"id": 10,
"name": "ioLogik-E1261H-T",
"tagList": [
{
"name": "do0",
"function": "read-coils",
"address": 0,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "do1",
"function": "read-coils",
"address": 1,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "do2",
"function": "read-coils",
"address": 2,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "do3",
"function": "read-coils",
"address": 3,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "do4",
"function": "read-coils",
"address": 4,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "do5",
"function": "read-coils",
"address": 5,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "do6",
"function": "read-coils",
"address": 6,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "do7",
"function": "read-coils",
"address": 7,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "do8",
"function": "read-coils",
"address": 8,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "do9",
"function": "read-coils",
"address": 9,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "do10",
"function": "read-coils",
"address": 10,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "do11",
"function": "read-coils",
"address": 11,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "di0",
"function": "read-discrete-inputs",
"address": 0,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "di1",
"function": "read-discrete-inputs",
"address": 1,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "di2",
"function": "read-discrete-inputs",
"address": 2,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "di3",
"function": "read-discrete-inputs",
"address": 3,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "di4",
"function": "read-discrete-inputs",
"address": 4,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "di5",
"function": "read-discrete-inputs",
"address": 5,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "di6",
"function": "read-discrete-inputs",
"address": 6,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "di7",
"function": "read-discrete-inputs",
"address": 7,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "di8",
"function": "read-discrete-inputs",
"address": 8,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "di9",
"function": "read-discrete-inputs",
"address": 9,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "di10",
"function": "read-discrete-inputs",
"address": 10,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "di11",
"function": "read-discrete-inputs",
"address": 11,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "ai0",
"function": "read-input-registers",
"address": 512,
"quantity": 1,
"dataType": "uint16",
"description": ""
},
{
"name": "ai1",
"function": "read-input-registers",
"address": 513,
"quantity": 1,
"dataType": "uint16",
"description": ""
},
{
"name": "ai2",
"function": "read-input-registers",
"address": 514,
"quantity": 1,
"dataType": "uint16",
"description": ""
},
{
"name": "ai3",
"function": "read-input-registers",
"address": 515,
"quantity": 1,
"dataType": "uint16",
"description": ""
},
{
"name": "ai4",
"function": "read-input-registers",
"address": 516,
"quantity": 1,
"dataType": "uint16",
"description": ""
},
{
"name": "rtdi0",
"function": "read-input-registers",
"address": 1536,
"quantity": 1,
"dataType": "uint16",
"enableAutoScaling": 1,
"autoScalingMode": "intercept",
"autoScaling": {
"slope": 0.1,
"offset": 0
},
"description": ""
},
{
"name": "rtdi1",
"function": "read-input-registers",
"address": 1537,
"quantity": 1,
"dataType": "uint16",
"enableAutoScaling": 1,
"autoScalingMode": "intercept",
"autoScaling": {
"slope": 0.1,
"offset": 0
},
"description": ""
},
{
"name": "rtdi2",
"function": "read-input-registers",
"address": 1538,
"quantity": 1,
"dataType": "uint16",
"enableAutoScaling": 1,
"autoScalingMode": "intercept",
"autoScaling": {
"slope": 0.1,
"offset": 0
},
"description": ""
}
]
},
{
"id": 11,
"name": "ioLogik-E1261W-T",
"tagList": [
{
"name": "do0",
"function": "read-coils",
"address": 0,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "do1",
"function": "read-coils",
"address": 1,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "do2",
"function": "read-coils",
"address": 2,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "do3",
"function": "read-coils",
"address": 3,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "do4",
"function": "read-coils",
"address": 4,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "do5",
"function": "read-coils",
"address": 5,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "do6",
"function": "read-coils",
"address": 6,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "do7",
"function": "read-coils",
"address": 7,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "do8",
"function": "read-coils",
"address": 8,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "do9",
"function": "read-coils",
"address": 9,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "do10",
"function": "read-coils",
"address": 10,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "do11",
"function": "read-coils",
"address": 11,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "di0",
"function": "read-discrete-inputs",
"address": 0,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "di1",
"function": "read-discrete-inputs",
"address": 1,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "di2",
"function": "read-discrete-inputs",
"address": 2,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "di3",
"function": "read-discrete-inputs",
"address": 3,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "di4",
"function": "read-discrete-inputs",
"address": 4,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "di5",
"function": "read-discrete-inputs",
"address": 5,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "di6",
"function": "read-discrete-inputs",
"address": 6,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "di7",
"function": "read-discrete-inputs",
"address": 7,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "di8",
"function": "read-discrete-inputs",
"address": 8,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "di9",
"function": "read-discrete-inputs",
"address": 9,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "di10",
"function": "read-discrete-inputs",
"address": 10,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "di11",
"function": "read-discrete-inputs",
"address": 11,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "ai0",
"function": "read-input-registers",
"address": 512,
"quantity": 1,
"dataType": "uint16",
"description": ""
},
{
"name": "ai1",
"function": "read-input-registers",
"address": 513,
"quantity": 1,
"dataType": "uint16",
"description": ""
},
{
"name": "ai2",
"function": "read-input-registers",
"address": 514,
"quantity": 1,
"dataType": "uint16",
"description": ""
},
{
"name": "ai3",
"function": "read-input-registers",
"address": 515,
"quantity": 1,
"dataType": "uint16",
"description": ""
},
{
"name": "ai4",
"function": "read-input-registers",
"address": 516,
"quantity": 1,
"dataType": "uint16",
"description": ""
},
{
"name": "rtdi0",
"function": "read-input-registers",
"address": 1536,
"quantity": 1,
"dataType": "uint16",
"enableAutoScaling": 1,
"autoScalingMode": "intercept",
"autoScaling": {
"slope": 0.1,
"offset": 0
},
"description": ""
},
{
"name": "rtdi1",
"function": "read-input-registers",
"address": 1537,
"quantity": 1,
"dataType": "uint16",
"enableAutoScaling": 1,
"autoScalingMode": "intercept",
"autoScaling": {
"slope": 0.1,
"offset": 0
},
"description": ""
},
{
"name": "rtdi2",
"function": "read-input-registers",
"address": 1538,
"quantity": 1,
"dataType": "uint16",
"enableAutoScaling": 1,
"autoScalingMode": "intercept",
"autoScaling": {
"slope": 0.1,
"offset": 0
},
"description": ""
}
]
},
{
"id": 12,
"name": "ioLogik-E1262",
"tagList": [
{
"name": "tci0",
"function": "read-input-registers",
"address": 2048,
"quantity": 2,
"dataType": "uint32",
"enableAutoScaling": 1,
"autoScalingMode": "intercept",
"autoScaling": {
"slope": 0.1,
"offset": 0
},
"description": ""
},
{
"name": "tci1",
"function": "read-input-registers",
"address": 2050,
"quantity": 2,
"dataType": "uint32",
"enableAutoScaling": 1,
"autoScalingMode": "intercept",
"autoScaling": {
"slope": 0.1,
"offset": 0
},
"description": ""
},
{
"name": "tci2",
"function": "read-input-registers",
"address": 2052,
"quantity": 2,
"dataType": "uint32",
"enableAutoScaling": 1,
"autoScalingMode": "intercept",
"autoScaling": {
"slope": 0.1,
"offset": 0
},
"description": ""
},
{
"name": "tci3",
"function": "read-input-registers",
"address": 2054,
"quantity": 2,
"dataType": "uint32",
"enableAutoScaling": 1,
"autoScalingMode": "intercept",
"autoScaling": {
"slope": 0.1,
"offset": 0
},
"description": ""
},
{
"name": "tci4",
"function": "read-input-registers",
"address": 2056,
"quantity": 2,
"dataType": "uint32",
"enableAutoScaling": 1,
"autoScalingMode": "intercept",
"autoScaling": {
"slope": 0.1,
"offset": 0
},
"description": ""
},
{
"name": "tci5",
"function": "read-input-registers",
"address": 2058,
"quantity": 2,
"dataType": "uint32",
"enableAutoScaling": 1,
"autoScalingMode": "intercept",
"autoScaling": {
"slope": 0.1,
"offset": 0
},
"description": ""
},
{
"name": "tci6",
"function": "read-input-registers",
"address": 2060,
"quantity": 2,
"dataType": "uint32",
"enableAutoScaling": 1,
"autoScalingMode": "intercept",
"autoScaling": {
"slope": 0.1,
"offset": 0
},
"description": ""
},
{
"name": "tci7",
"function": "read-input-registers",
"address": 2062,
"quantity": 2,
"dataType": "uint32",
"enableAutoScaling": 1,
"autoScalingMode": "intercept",
"autoScaling": {
"slope": 0.1,
"offset": 0
},
"description": ""
}
]
},
{
"id": 13,
"name": "ioLogik-E1263H-T",
"tagList": [
{
"name": "do0",
"function": "read-coils",
"address": 0,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "do1",
"function": "read-coils",
"address": 1,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "do2",
"function": "read-coils",
"address": 2,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "do3",
"function": "read-coils",
"address": 3,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "do4",
"function": "read-coils",
"address": 4,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "do5",
"function": "read-coils",
"address": 5,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "do6",
"function": "read-coils",
"address": 6,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "do7",
"function": "read-coils",
"address": 7,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "do8",
"function": "read-coils",
"address": 8,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "do9",
"function": "read-coils",
"address": 9,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "do10",
"function": "read-coils",
"address": 10,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "do11",
"function": "read-coils",
"address": 11,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "do12",
"function": "read-coils",
"address": 12,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "do13",
"function": "read-coils",
"address": 13,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "do14",
"function": "read-coils",
"address": 14,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "do15",
"function": "read-coils",
"address": 15,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "do16",
"function": "read-coils",
"address": 16,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "do17",
"function": "read-coils",
"address": 17,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "do18",
"function": "read-coils",
"address": 18,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "do19",
"function": "read-coils",
"address": 19,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "do20",
"function": "read-coils",
"address": 20,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "do21",
"function": "read-coils",
"address": 21,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "do22",
"function": "read-coils",
"address": 22,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "do23",
"function": "read-coils",
"address": 23,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "di0",
"function": "read-discrete-inputs",
"address": 0,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "di1",
"function": "read-discrete-inputs",
"address": 1,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "di2",
"function": "read-discrete-inputs",
"address": 2,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "di3",
"function": "read-discrete-inputs",
"address": 3,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "di4",
"function": "read-discrete-inputs",
"address": 4,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "di5",
"function": "read-discrete-inputs",
"address": 5,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "di6",
"function": "read-discrete-inputs",
"address": 6,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "di7",
"function": "read-discrete-inputs",
"address": 7,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "di8",
"function": "read-discrete-inputs",
"address": 8,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "di9",
"function": "read-discrete-inputs",
"address": 9,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "di10",
"function": "read-discrete-inputs",
"address": 10,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "di11",
"function": "read-discrete-inputs",
"address": 11,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "di12",
"function": "read-discrete-inputs",
"address": 12,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "di13",
"function": "read-discrete-inputs",
"address": 13,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "di14",
"function": "read-discrete-inputs",
"address": 14,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "di15",
"function": "read-discrete-inputs",
"address": 15,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "di16",
"function": "read-discrete-inputs",
"address": 16,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "di17",
"function": "read-discrete-inputs",
"address": 17,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "di18",
"function": "read-discrete-inputs",
"address": 18,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "di19",
"function": "read-discrete-inputs",
"address": 19,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "di20",
"function": "read-discrete-inputs",
"address": 20,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "di21",
"function": "read-discrete-inputs",
"address": 21,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "di22",
"function": "read-discrete-inputs",
"address": 22,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "di23",
"function": "read-discrete-inputs",
"address": 23,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "ai0",
"function": "read-input-registers",
"address": 512,
"quantity": 1,
"dataType": "uint16",
"description": ""
},
{
"name": "ai1",
"function": "read-input-registers",
"address": 513,
"quantity": 1,
"dataType": "uint16",
"description": ""
},
{
"name": "ai2",
"function": "read-input-registers",
"address": 514,
"quantity": 1,
"dataType": "uint16",
"description": ""
},
{
"name": "ai3",
"function": "read-input-registers",
"address": 515,
"quantity": 1,
"dataType": "uint16",
"description": ""
},
{
"name": "ai4",
"function": "read-input-registers",
"address": 516,
"quantity": 1,
"dataType": "uint16",
"description": ""
},
{
"name": "ai5",
"function": "read-input-registers",
"address": 517,
"quantity": 1,
"dataType": "uint16",
"description": ""
},
{
"name": "ai6",
"function": "read-input-registers",
"address": 518,
"quantity": 1,
"dataType": "uint16",
"description": ""
},
{
"name": "ai7",
"function": "read-input-registers",
"address": 519,
"quantity": 1,
"dataType": "uint16",
"description": ""
},
{
"name": "ai8",
"function": "read-input-registers",
"address": 520,
"quantity": 1,
"dataType": "uint16",
"description": ""
},
{
"name": "ai9",
"function": "read-input-registers",
"address": 521,
"quantity": 1,
"dataType": "uint16",
"description": ""
},
{
"name": "rtdi0",
"function": "read-input-registers",
"address": 1536,
"quantity": 1,
"dataType": "uint16",
"enableAutoScaling": 1,
"autoScalingMode": "intercept",
"autoScaling": {
"slope": 0.1,
"offset": 0
},
"description": ""
},
{
"name": "rtdi1",
"function": "read-input-registers",
"address": 1537,
"quantity": 1,
"dataType": "uint16",
"enableAutoScaling": 1,
"autoScalingMode": "intercept",
"autoScaling": {
"slope": 0.1,
"offset": 0
},
"description": ""
},
{
"name": "rtdi2",
"function": "read-input-registers",
"address": 1538,
"quantity": 1,
"dataType": "uint16",
"enableAutoScaling": 1,
"autoScalingMode": "intercept",
"autoScaling": {
"slope": 0.1,
"offset": 0
},
"description": ""
}
]
},
{
"id": 14,
"name": "ioLogik-R1210",
"tagList": [
{
"name": "di0",
"function": "read-input-registers",
"address": 0,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "di1",
"function": "read-input-registers",
"address": 1,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "di2",
"function": "read-input-registers",
"address": 2,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "di3",
"function": "read-input-registers",
"address": 3,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "di4",
"function": "read-input-registers",
"address": 4,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "di5",
"function": "read-input-registers",
"address": 5,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "di6",
"function": "read-input-registers",
"address": 6,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "di7",
"function": "read-input-registers",
"address": 7,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "di8",
"function": "read-input-registers",
"address": 8,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "di9",
"function": "read-input-registers",
"address": 9,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "di10",
"function": "read-input-registers",
"address": 10,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "di11",
"function": "read-input-registers",
"address": 11,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "di12",
"function": "read-input-registers",
"address": 12,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "di13",
"function": "read-input-registers",
"address": 13,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "di14",
"function": "read-input-registers",
"address": 14,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "di15",
"function": "read-input-registers",
"address": 15,
"quantity": 1,
"dataType": "boolean",
"description": ""
}
]
},
{
"id": 15,
"name": "ioLogik-R1212",
"tagList": [
{
"name": "di0",
"function": "read-input-registers",
"address": 0,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "di1",
"function": "read-input-registers",
"address": 1,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "di2",
"function": "read-input-registers",
"address": 2,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "di3",
"function": "read-input-registers",
"address": 3,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "di4",
"function": "read-input-registers",
"address": 4,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "di5",
"function": "read-input-registers",
"address": 5,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "di6",
"function": "read-input-registers",
"address": 6,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "di7",
"function": "read-input-registers",
"address": 7,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "di8",
"function": "read-input-registers",
"address": 8,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "di9",
"function": "read-input-registers",
"address": 9,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "di10",
"function": "read-input-registers",
"address": 10,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "di11",
"function": "read-input-registers",
"address": 11,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "di12",
"function": "read-input-registers",
"address": 12,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "di13",
"function": "read-input-registers",
"address": 13,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "di14",
"function": "read-input-registers",
"address": 14,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "di15",
"function": "read-input-registers",
"address": 15,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "do0",
"function": "read-holding-registers",
"address": 320,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "do1",
"function": "read-holding-registers",
"address": 321,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "do2",
"function": "read-holding-registers",
"address": 322,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "do3",
"function": "read-holding-registers",
"address": 323,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "do4",
"function": "read-holding-registers",
"address": 324,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "do5",
"function": "read-holding-registers",
"address": 325,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "do6",
"function": "read-holding-registers",
"address": 326,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "do7",
"function": "read-holding-registers",
"address": 327,
"quantity": 1,
"dataType": "boolean",
"description": ""
}
]
},
{
"id": 16,
"name": "ioLogik-R1214",
"tagList": [
{
"name": "di0",
"function": "read-input-registers",
"address": 0,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "di1",
"function": "read-input-registers",
"address": 1,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "di2",
"function": "read-input-registers",
"address": 2,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "di3",
"function": "read-input-registers",
"address": 3,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "di4",
"function": "read-input-registers",
"address": 4,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "di5",
"function": "read-input-registers",
"address": 5,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "ro0",
"function": "read-holding-registers",
"address": 320,
"quantity": 1,
"dataType": "uint16",
"description": ""
},
{
"name": "ro1",
"function": "read-holding-registers",
"address": 321,
"quantity": 1,
"dataType": "uint16",
"description": ""
},
{
"name": "ro2",
"function": "read-holding-registers",
"address": 322,
"quantity": 1,
"dataType": "uint16",
"description": ""
},
{
"name": "ro3",
"function": "read-holding-registers",
"address": 323,
"quantity": 1,
"dataType": "uint16",
"description": ""
},
{
"name": "ro4",
"function": "read-holding-registers",
"address": 324,
"quantity": 1,
"dataType": "uint16",
"description": ""
},
{
"name": "ro5",
"function": "read-holding-registers",
"address": 325,
"quantity": 1,
"dataType": "uint16",
"description": ""
}
]
},
{
"id": 17,
"name": "ioLogik-R1240",
"tagList": [
{
"name": "ai0",
"function": "read-input-registers",
"address": 704,
"quantity": 1,
"dataType": "uint16",
"description": ""
},
{
"name": "ai1",
"function": "read-input-registers",
"address": 705,
"quantity": 1,
"dataType": "uint16",
"description": ""
},
{
"name": "ai2",
"function": "read-input-registers",
"address": 706,
"quantity": 1,
"dataType": "uint16",
"description": ""
},
{
"name": "ai3",
"function": "read-input-registers",
"address": 707,
"quantity": 1,
"dataType": "uint16",
"description": ""
},
{
"name": "ai4",
"function": "read-input-registers",
"address": 708,
"quantity": 1,
"dataType": "uint16",
"description": ""
},
{
"name": "ai5",
"function": "read-input-registers",
"address": 709,
"quantity": 1,
"dataType": "uint16",
"description": ""
},
{
"name": "ai6",
"function": "read-input-registers",
"address": 710,
"quantity": 1,
"dataType": "uint16",
"description": ""
},
{
"name": "ai7",
"function": "read-input-registers",
"address": 711,
"quantity": 1,
"dataType": "uint16",
"description": ""
}
]
},
{
"id": 18,
"name": "ioLogik-R1241",
"tagList": [
{
"name": "ao0",
"function": "read-holding-registers",
"address": 1184,
"quantity": 1,
"dataType": "uint16",
"description": ""
},
{
"name": "ao1",
"function": "read-holding-registers",
"address": 1185,
"quantity": 1,
"dataType": "uint16",
"description": ""
},
{
"name": "ao2",
"function": "read-holding-registers",
"address": 1186,
"quantity": 1,
"dataType": "uint16",
"description": ""
},
{
"name": "ao3",
"function": "read-holding-registers",
"address": 1187,
"quantity": 1,
"dataType": "uint16",
"description": ""
}
]
}
]
POST /mxc/modbus/equipment-templates
Create a new equipment template
- id: integer
-
ID of equipment template
- name: string (3 to 255 chars)
-
Name of equipment template
- tagList: object[]
-
Tag list of equipment template
-
object - name: string (2 to 255 chars)
-
Name of tag
- unit: string (up to 255 chars)
-
Unit of tag
- function: string read-coils, read-input-registers, read-discrete-inputs, read-holding-registers, write-single-coil, write-single-register, write-multiple-coils, write-multiple-registers
-
Function to retrieve the tag value
- address: integer 0 ≤ x ≤ 655350
-
Address of the tag 0x0000(0) <= value <= 0xFFFF(65535)
- quantity: integer 1 ≤ x ≤ 655350
-
Quantity of tag
- dataType: string uint16, uint32, uint64, int16, int32, int64, float32, float64, string, boolean, bytearray
-
Data type of tag
- enableByteOrder: boolean
-
Enable byte order function
- byteOrder: string BA, CDAB, DCBA, GHEFCDAB, HGFEDCBA
-
Switch input byte order
- enableInvalidValue: boolean
-
Enable invalid value function
- invalidValue: integer[]
-
Array size is equals to quantity (if input == INVALID_VALUE, assume the value is not valid)
-
integer - description: string (up to 65535 chars)
-
User edited description of tag
- enableAutoScaling: boolean
-
Enable auto scaling function
- autoScalingMode: string intercept, point
-
Mode of auto scaling function
- autoScaling: object
-
V = input * S + O output = ((input-sourceMin) * (targetMax-targetMin) / (sourceMax-sourceMin)) + targetMin
-
- slope: number
- offset: number
- sourceMin: number
- sourceMax: number
- targetMin: number
- targetMax: number
- access: string ro, wo, wr
-
Access type of tag
- size: integer
-
Size of tag in byte
- optimizeGrouping: boolean true
-
enable auto group tag polling optimization
Request Example
{
"id": 9,
"name": "ioLogik-E1260",
"tagList": [
{
"name": "rtdi0",
"function": "read-input-registers",
"address": 1536,
"quantity": 1,
"dataType": "uint16",
"enableAutoScaling": 1,
"autoScalingMode": "intercept",
"autoScaling": {
"slope": 0.1,
"offset": 0
},
"description": ""
},
{
"name": "rtdi1",
"function": "read-input-registers",
"address": 1537,
"quantity": 1,
"dataType": "uint16",
"enableAutoScaling": 1,
"autoScalingMode": "intercept",
"autoScaling": {
"slope": 0.1,
"offset": 0
},
"description": ""
},
{
"name": "rtdi2",
"function": "read-input-registers",
"address": 1538,
"quantity": 1,
"dataType": "uint16",
"enableAutoScaling": 1,
"autoScalingMode": "intercept",
"autoScaling": {
"slope": 0.1,
"offset": 0
},
"description": ""
},
{
"name": "rtdi3",
"function": "read-input-registers",
"address": 1539,
"quantity": 1,
"dataType": "uint16",
"enableAutoScaling": 1,
"autoScalingMode": "intercept",
"autoScaling": {
"slope": 0.1,
"offset": 0
},
"description": ""
},
{
"name": "rtdi4",
"function": "read-input-registers",
"address": 1540,
"quantity": 1,
"dataType": "uint16",
"enableAutoScaling": 1,
"autoScalingMode": "intercept",
"autoScaling": {
"slope": 0.1,
"offset": 0
},
"description": ""
},
{
"name": "rtdi5",
"function": "read-input-registers",
"address": 1541,
"quantity": 1,
"dataType": "uint16",
"enableAutoScaling": 1,
"autoScalingMode": "intercept",
"autoScaling": {
"slope": 0.1,
"offset": 0
},
"description": ""
}
]
}
success
Response Example (200 OK)
{
"id": 9,
"name": "ioLogik-E1260",
"tagList": [
{
"name": "rtdi0",
"function": "read-input-registers",
"address": 1536,
"quantity": 1,
"dataType": "uint16",
"enableAutoScaling": 1,
"autoScalingMode": "intercept",
"autoScaling": {
"slope": 0.1,
"offset": 0
},
"description": ""
},
{
"name": "rtdi1",
"function": "read-input-registers",
"address": 1537,
"quantity": 1,
"dataType": "uint16",
"enableAutoScaling": 1,
"autoScalingMode": "intercept",
"autoScaling": {
"slope": 0.1,
"offset": 0
},
"description": ""
},
{
"name": "rtdi2",
"function": "read-input-registers",
"address": 1538,
"quantity": 1,
"dataType": "uint16",
"enableAutoScaling": 1,
"autoScalingMode": "intercept",
"autoScaling": {
"slope": 0.1,
"offset": 0
},
"description": ""
},
{
"name": "rtdi3",
"function": "read-input-registers",
"address": 1539,
"quantity": 1,
"dataType": "uint16",
"enableAutoScaling": 1,
"autoScalingMode": "intercept",
"autoScaling": {
"slope": 0.1,
"offset": 0
},
"description": ""
},
{
"name": "rtdi4",
"function": "read-input-registers",
"address": 1540,
"quantity": 1,
"dataType": "uint16",
"enableAutoScaling": 1,
"autoScalingMode": "intercept",
"autoScaling": {
"slope": 0.1,
"offset": 0
},
"description": ""
},
{
"name": "rtdi5",
"function": "read-input-registers",
"address": 1541,
"quantity": 1,
"dataType": "uint16",
"enableAutoScaling": 1,
"autoScalingMode": "intercept",
"autoScaling": {
"slope": 0.1,
"offset": 0
},
"description": ""
}
],
"application/json": {
"id": 9,
"name": "ioLogik-E1260",
"tagList": [
{
"name": "rtdi0",
"function": "read-input-registers",
"address": 1536,
"quantity": 1,
"dataType": "uint16",
"enableAutoScaling": 1,
"autoScalingMode": "intercept",
"autoScaling": {
"slope": 0.1,
"offset": 0
},
"description": ""
},
{
"name": "rtdi1",
"function": "read-input-registers",
"address": 1537,
"quantity": 1,
"dataType": "uint16",
"enableAutoScaling": 1,
"autoScalingMode": "intercept",
"autoScaling": {
"slope": 0.1,
"offset": 0
},
"description": ""
},
{
"name": "rtdi2",
"function": "read-input-registers",
"address": 1538,
"quantity": 1,
"dataType": "uint16",
"enableAutoScaling": 1,
"autoScalingMode": "intercept",
"autoScaling": {
"slope": 0.1,
"offset": 0
},
"description": ""
},
{
"name": "rtdi3",
"function": "read-input-registers",
"address": 1539,
"quantity": 1,
"dataType": "uint16",
"enableAutoScaling": 1,
"autoScalingMode": "intercept",
"autoScaling": {
"slope": 0.1,
"offset": 0
},
"description": ""
},
{
"name": "rtdi4",
"function": "read-input-registers",
"address": 1540,
"quantity": 1,
"dataType": "uint16",
"enableAutoScaling": 1,
"autoScalingMode": "intercept",
"autoScaling": {
"slope": 0.1,
"offset": 0
},
"description": ""
},
{
"name": "rtdi5",
"function": "read-input-registers",
"address": 1541,
"quantity": 1,
"dataType": "uint16",
"enableAutoScaling": 1,
"autoScalingMode": "intercept",
"autoScaling": {
"slope": 0.1,
"offset": 0
},
"description": ""
}
]
}
}
DELETE /mxc/modbus/equipment-templates
Delete multiple equipment templates
success
Response Example (200 OK)
[
{
"id": 1,
"name": "ioLogik-E1210",
"tagList": [
{
"name": "di0",
"function": "read-discrete-inputs",
"address": 0,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "di1",
"function": "read-discrete-inputs",
"address": 1,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "di2",
"function": "read-discrete-inputs",
"address": 2,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "di3",
"function": "read-discrete-inputs",
"address": 3,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "di4",
"function": "read-discrete-inputs",
"address": 4,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "di5",
"function": "read-discrete-inputs",
"address": 5,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "di6",
"function": "read-discrete-inputs",
"address": 6,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "di7",
"function": "read-discrete-inputs",
"address": 7,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "di8",
"function": "read-discrete-inputs",
"address": 8,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "di9",
"function": "read-discrete-inputs",
"address": 9,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "di10",
"function": "read-discrete-inputs",
"address": 10,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "di11",
"function": "read-discrete-inputs",
"address": 11,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "di12",
"function": "read-discrete-inputs",
"address": 12,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "di13",
"function": "read-discrete-inputs",
"address": 13,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "di14",
"function": "read-discrete-inputs",
"address": 14,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "di15",
"function": "read-discrete-inputs",
"address": 15,
"quantity": 1,
"dataType": "boolean",
"description": ""
}
]
},
{
"id": 2,
"name": "ioLogik-E1211",
"tagList": [
{
"name": "do0",
"function": "read-coils",
"address": 0,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "do1",
"function": "read-coils",
"address": 1,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "do2",
"function": "read-coils",
"address": 2,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "do3",
"function": "read-coils",
"address": 3,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "do4",
"function": "read-coils",
"address": 4,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "do5",
"function": "read-coils",
"address": 5,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "do6",
"function": "read-coils",
"address": 6,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "do7",
"function": "read-coils",
"address": 7,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "do8",
"function": "read-coils",
"address": 8,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "do9",
"function": "read-coils",
"address": 9,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "do10",
"function": "read-coils",
"address": 10,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "do11",
"function": "read-coils",
"address": 11,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "do12",
"function": "read-coils",
"address": 12,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "do13",
"function": "read-coils",
"address": 13,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "do14",
"function": "read-coils",
"address": 14,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "do15",
"function": "read-coils",
"address": 15,
"quantity": 1,
"dataType": "boolean",
"description": ""
}
]
},
{
"id": 3,
"name": "ioLogik-E1212",
"tagList": [
{
"name": "di0",
"function": "read-discrete-inputs",
"address": 0,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "di1",
"function": "read-discrete-inputs",
"address": 1,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "di2",
"function": "read-discrete-inputs",
"address": 2,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "di3",
"function": "read-discrete-inputs",
"address": 3,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "di4",
"function": "read-discrete-inputs",
"address": 4,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "di5",
"function": "read-discrete-inputs",
"address": 5,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "di6",
"function": "read-discrete-inputs",
"address": 6,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "di7",
"function": "read-discrete-inputs",
"address": 7,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "di8",
"function": "read-discrete-inputs",
"address": 8,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "di9",
"function": "read-discrete-inputs",
"address": 9,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "di10",
"function": "read-discrete-inputs",
"address": 10,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "di11",
"function": "read-discrete-inputs",
"address": 11,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "di12",
"function": "read-discrete-inputs",
"address": 12,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "di13",
"function": "read-discrete-inputs",
"address": 13,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "di14",
"function": "read-discrete-inputs",
"address": 14,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "di15",
"function": "read-discrete-inputs",
"address": 15,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "do0",
"function": "read-coils",
"address": 0,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "do1",
"function": "read-coils",
"address": 1,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "do2",
"function": "read-coils",
"address": 2,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "do3",
"function": "read-coils",
"address": 3,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "do4",
"function": "read-coils",
"address": 4,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "do5",
"function": "read-coils",
"address": 5,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "do6",
"function": "read-coils",
"address": 6,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "do7",
"function": "read-coils",
"address": 7,
"quantity": 1,
"dataType": "boolean",
"description": ""
}
]
},
{
"id": 4,
"name": "ioLogik-E1213",
"tagList": [
{
"name": "di0",
"function": "read-discrete-inputs",
"address": 0,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "di1",
"function": "read-discrete-inputs",
"address": 1,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "di2",
"function": "read-discrete-inputs",
"address": 2,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "di3",
"function": "read-discrete-inputs",
"address": 3,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "di4",
"function": "read-discrete-inputs",
"address": 4,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "di5",
"function": "read-discrete-inputs",
"address": 5,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "di6",
"function": "read-discrete-inputs",
"address": 6,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "di7",
"function": "read-discrete-inputs",
"address": 7,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "di8",
"function": "read-discrete-inputs",
"address": 8,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "di9",
"function": "read-discrete-inputs",
"address": 9,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "di10",
"function": "read-discrete-inputs",
"address": 10,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "di11",
"function": "read-discrete-inputs",
"address": 11,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "do0",
"function": "read-coils",
"address": 0,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "do1",
"function": "read-coils",
"address": 1,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "do2",
"function": "read-coils",
"address": 2,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "do3",
"function": "read-coils",
"address": 3,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "do4",
"function": "read-coils",
"address": 4,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "do5",
"function": "read-coils",
"address": 5,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "do6",
"function": "read-coils",
"address": 6,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "do7",
"function": "read-coils",
"address": 7,
"quantity": 1,
"dataType": "boolean",
"description": ""
}
]
},
{
"id": 5,
"name": "ioLogik-E1214",
"tagList": [
{
"name": "di0",
"function": "read-discrete-inputs",
"address": 0,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "di1",
"function": "read-discrete-inputs",
"address": 1,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "di2",
"function": "read-discrete-inputs",
"address": 2,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "di3",
"function": "read-discrete-inputs",
"address": 3,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "di4",
"function": "read-discrete-inputs",
"address": 4,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "di5",
"function": "read-discrete-inputs",
"address": 5,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "ro0",
"function": "read-coils",
"address": 0,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "ro1",
"function": "read-coils",
"address": 1,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "ro2",
"function": "read-coils",
"address": 2,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "ro3",
"function": "read-coils",
"address": 3,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "ro4",
"function": "read-coils",
"address": 4,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "ro5",
"function": "read-coils",
"address": 5,
"quantity": 1,
"dataType": "boolean",
"description": ""
}
]
},
{
"id": 6,
"name": "ioLogik-E1240",
"tagList": [
{
"name": "ai0",
"function": "read-input-registers",
"address": 0,
"quantity": 1,
"dataType": "uint16",
"description": ""
},
{
"name": "ai1",
"function": "read-input-registers",
"address": 1,
"quantity": 1,
"dataType": "uint16",
"description": ""
},
{
"name": "ai2",
"function": "read-input-registers",
"address": 2,
"quantity": 1,
"dataType": "uint16",
"description": ""
},
{
"name": "ai3",
"function": "read-input-registers",
"address": 3,
"quantity": 1,
"dataType": "uint16",
"description": ""
},
{
"name": "ai4",
"function": "read-input-registers",
"address": 4,
"quantity": 1,
"dataType": "uint16",
"description": ""
},
{
"name": "ai5",
"function": "read-input-registers",
"address": 5,
"quantity": 1,
"dataType": "uint16",
"description": ""
},
{
"name": "ai6",
"function": "read-input-registers",
"address": 6,
"quantity": 1,
"dataType": "uint16",
"description": ""
},
{
"name": "ai7",
"function": "read-input-registers",
"address": 7,
"quantity": 1,
"dataType": "uint16",
"description": ""
}
]
},
{
"id": 7,
"name": "ioLogik-E1241",
"tagList": [
{
"name": "ao0",
"function": "read-holding-registers",
"address": 1024,
"quantity": 1,
"dataType": "uint16",
"description": ""
},
{
"name": "ao1",
"function": "read-holding-registers",
"address": 1025,
"quantity": 1,
"dataType": "uint16",
"description": ""
},
{
"name": "ao2",
"function": "read-holding-registers",
"address": 1026,
"quantity": 1,
"dataType": "uint16",
"description": ""
},
{
"name": "ao3",
"function": "read-holding-registers",
"address": 1027,
"quantity": 1,
"dataType": "uint16",
"description": ""
}
]
},
{
"id": 8,
"name": "ioLogik-E1242",
"tagList": [
{
"name": "di0",
"function": "read-discrete-inputs",
"address": 0,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "di1",
"function": "read-discrete-inputs",
"address": 1,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "di2",
"function": "read-discrete-inputs",
"address": 2,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "di3",
"function": "read-discrete-inputs",
"address": 3,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "di4",
"function": "read-discrete-inputs",
"address": 4,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "di5",
"function": "read-discrete-inputs",
"address": 5,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "di6",
"function": "read-discrete-inputs",
"address": 6,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "di7",
"function": "read-discrete-inputs",
"address": 7,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "do0",
"function": "read-coils",
"address": 0,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "do1",
"function": "read-coils",
"address": 1,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "do2",
"function": "read-coils",
"address": 2,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "do3",
"function": "read-coils",
"address": 3,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "ai0",
"function": "read-input-registers",
"address": 512,
"quantity": 1,
"dataType": "uint16",
"description": ""
},
{
"name": "ai1",
"function": "read-input-registers",
"address": 513,
"quantity": 1,
"dataType": "uint16",
"description": ""
},
{
"name": "ai2",
"function": "read-input-registers",
"address": 514,
"quantity": 1,
"dataType": "uint16",
"description": ""
},
{
"name": "ai3",
"function": "read-input-registers",
"address": 515,
"quantity": 1,
"dataType": "uint16",
"description": ""
}
]
},
{
"id": 9,
"name": "ioLogik-E1260",
"tagList": [
{
"name": "rtdi0",
"function": "read-input-registers",
"address": 1536,
"quantity": 1,
"dataType": "uint16",
"enableAutoScaling": 1,
"autoScalingMode": "intercept",
"autoScaling": {
"slope": 0.1,
"offset": 0
},
"description": ""
},
{
"name": "rtdi1",
"function": "read-input-registers",
"address": 1537,
"quantity": 1,
"dataType": "uint16",
"enableAutoScaling": 1,
"autoScalingMode": "intercept",
"autoScaling": {
"slope": 0.1,
"offset": 0
},
"description": ""
},
{
"name": "rtdi2",
"function": "read-input-registers",
"address": 1538,
"quantity": 1,
"dataType": "uint16",
"enableAutoScaling": 1,
"autoScalingMode": "intercept",
"autoScaling": {
"slope": 0.1,
"offset": 0
},
"description": ""
},
{
"name": "rtdi3",
"function": "read-input-registers",
"address": 1539,
"quantity": 1,
"dataType": "uint16",
"enableAutoScaling": 1,
"autoScalingMode": "intercept",
"autoScaling": {
"slope": 0.1,
"offset": 0
},
"description": ""
},
{
"name": "rtdi4",
"function": "read-input-registers",
"address": 1540,
"quantity": 1,
"dataType": "uint16",
"enableAutoScaling": 1,
"autoScalingMode": "intercept",
"autoScaling": {
"slope": 0.1,
"offset": 0
},
"description": ""
},
{
"name": "rtdi5",
"function": "read-input-registers",
"address": 1541,
"quantity": 1,
"dataType": "uint16",
"enableAutoScaling": 1,
"autoScalingMode": "intercept",
"autoScaling": {
"slope": 0.1,
"offset": 0
},
"description": ""
}
]
},
{
"id": 10,
"name": "ioLogik-E1261H-T",
"tagList": [
{
"name": "do0",
"function": "read-coils",
"address": 0,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "do1",
"function": "read-coils",
"address": 1,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "do2",
"function": "read-coils",
"address": 2,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "do3",
"function": "read-coils",
"address": 3,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "do4",
"function": "read-coils",
"address": 4,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "do5",
"function": "read-coils",
"address": 5,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "do6",
"function": "read-coils",
"address": 6,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "do7",
"function": "read-coils",
"address": 7,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "do8",
"function": "read-coils",
"address": 8,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "do9",
"function": "read-coils",
"address": 9,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "do10",
"function": "read-coils",
"address": 10,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "do11",
"function": "read-coils",
"address": 11,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "di0",
"function": "read-discrete-inputs",
"address": 0,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "di1",
"function": "read-discrete-inputs",
"address": 1,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "di2",
"function": "read-discrete-inputs",
"address": 2,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "di3",
"function": "read-discrete-inputs",
"address": 3,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "di4",
"function": "read-discrete-inputs",
"address": 4,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "di5",
"function": "read-discrete-inputs",
"address": 5,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "di6",
"function": "read-discrete-inputs",
"address": 6,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "di7",
"function": "read-discrete-inputs",
"address": 7,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "di8",
"function": "read-discrete-inputs",
"address": 8,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "di9",
"function": "read-discrete-inputs",
"address": 9,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "di10",
"function": "read-discrete-inputs",
"address": 10,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "di11",
"function": "read-discrete-inputs",
"address": 11,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "ai0",
"function": "read-input-registers",
"address": 512,
"quantity": 1,
"dataType": "uint16",
"description": ""
},
{
"name": "ai1",
"function": "read-input-registers",
"address": 513,
"quantity": 1,
"dataType": "uint16",
"description": ""
},
{
"name": "ai2",
"function": "read-input-registers",
"address": 514,
"quantity": 1,
"dataType": "uint16",
"description": ""
},
{
"name": "ai3",
"function": "read-input-registers",
"address": 515,
"quantity": 1,
"dataType": "uint16",
"description": ""
},
{
"name": "ai4",
"function": "read-input-registers",
"address": 516,
"quantity": 1,
"dataType": "uint16",
"description": ""
},
{
"name": "rtdi0",
"function": "read-input-registers",
"address": 1536,
"quantity": 1,
"dataType": "uint16",
"enableAutoScaling": 1,
"autoScalingMode": "intercept",
"autoScaling": {
"slope": 0.1,
"offset": 0
},
"description": ""
},
{
"name": "rtdi1",
"function": "read-input-registers",
"address": 1537,
"quantity": 1,
"dataType": "uint16",
"enableAutoScaling": 1,
"autoScalingMode": "intercept",
"autoScaling": {
"slope": 0.1,
"offset": 0
},
"description": ""
},
{
"name": "rtdi2",
"function": "read-input-registers",
"address": 1538,
"quantity": 1,
"dataType": "uint16",
"enableAutoScaling": 1,
"autoScalingMode": "intercept",
"autoScaling": {
"slope": 0.1,
"offset": 0
},
"description": ""
}
]
},
{
"id": 11,
"name": "ioLogik-E1261W-T",
"tagList": [
{
"name": "do0",
"function": "read-coils",
"address": 0,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "do1",
"function": "read-coils",
"address": 1,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "do2",
"function": "read-coils",
"address": 2,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "do3",
"function": "read-coils",
"address": 3,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "do4",
"function": "read-coils",
"address": 4,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "do5",
"function": "read-coils",
"address": 5,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "do6",
"function": "read-coils",
"address": 6,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "do7",
"function": "read-coils",
"address": 7,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "do8",
"function": "read-coils",
"address": 8,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "do9",
"function": "read-coils",
"address": 9,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "do10",
"function": "read-coils",
"address": 10,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "do11",
"function": "read-coils",
"address": 11,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "di0",
"function": "read-discrete-inputs",
"address": 0,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "di1",
"function": "read-discrete-inputs",
"address": 1,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "di2",
"function": "read-discrete-inputs",
"address": 2,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "di3",
"function": "read-discrete-inputs",
"address": 3,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "di4",
"function": "read-discrete-inputs",
"address": 4,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "di5",
"function": "read-discrete-inputs",
"address": 5,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "di6",
"function": "read-discrete-inputs",
"address": 6,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "di7",
"function": "read-discrete-inputs",
"address": 7,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "di8",
"function": "read-discrete-inputs",
"address": 8,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "di9",
"function": "read-discrete-inputs",
"address": 9,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "di10",
"function": "read-discrete-inputs",
"address": 10,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "di11",
"function": "read-discrete-inputs",
"address": 11,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "ai0",
"function": "read-input-registers",
"address": 512,
"quantity": 1,
"dataType": "uint16",
"description": ""
},
{
"name": "ai1",
"function": "read-input-registers",
"address": 513,
"quantity": 1,
"dataType": "uint16",
"description": ""
},
{
"name": "ai2",
"function": "read-input-registers",
"address": 514,
"quantity": 1,
"dataType": "uint16",
"description": ""
},
{
"name": "ai3",
"function": "read-input-registers",
"address": 515,
"quantity": 1,
"dataType": "uint16",
"description": ""
},
{
"name": "ai4",
"function": "read-input-registers",
"address": 516,
"quantity": 1,
"dataType": "uint16",
"description": ""
},
{
"name": "rtdi0",
"function": "read-input-registers",
"address": 1536,
"quantity": 1,
"dataType": "uint16",
"enableAutoScaling": 1,
"autoScalingMode": "intercept",
"autoScaling": {
"slope": 0.1,
"offset": 0
},
"description": ""
},
{
"name": "rtdi1",
"function": "read-input-registers",
"address": 1537,
"quantity": 1,
"dataType": "uint16",
"enableAutoScaling": 1,
"autoScalingMode": "intercept",
"autoScaling": {
"slope": 0.1,
"offset": 0
},
"description": ""
},
{
"name": "rtdi2",
"function": "read-input-registers",
"address": 1538,
"quantity": 1,
"dataType": "uint16",
"enableAutoScaling": 1,
"autoScalingMode": "intercept",
"autoScaling": {
"slope": 0.1,
"offset": 0
},
"description": ""
}
]
},
{
"id": 12,
"name": "ioLogik-E1262",
"tagList": [
{
"name": "tci0",
"function": "read-input-registers",
"address": 2048,
"quantity": 2,
"dataType": "uint32",
"enableAutoScaling": 1,
"autoScalingMode": "intercept",
"autoScaling": {
"slope": 0.1,
"offset": 0
},
"description": ""
},
{
"name": "tci1",
"function": "read-input-registers",
"address": 2050,
"quantity": 2,
"dataType": "uint32",
"enableAutoScaling": 1,
"autoScalingMode": "intercept",
"autoScaling": {
"slope": 0.1,
"offset": 0
},
"description": ""
},
{
"name": "tci2",
"function": "read-input-registers",
"address": 2052,
"quantity": 2,
"dataType": "uint32",
"enableAutoScaling": 1,
"autoScalingMode": "intercept",
"autoScaling": {
"slope": 0.1,
"offset": 0
},
"description": ""
},
{
"name": "tci3",
"function": "read-input-registers",
"address": 2054,
"quantity": 2,
"dataType": "uint32",
"enableAutoScaling": 1,
"autoScalingMode": "intercept",
"autoScaling": {
"slope": 0.1,
"offset": 0
},
"description": ""
},
{
"name": "tci4",
"function": "read-input-registers",
"address": 2056,
"quantity": 2,
"dataType": "uint32",
"enableAutoScaling": 1,
"autoScalingMode": "intercept",
"autoScaling": {
"slope": 0.1,
"offset": 0
},
"description": ""
},
{
"name": "tci5",
"function": "read-input-registers",
"address": 2058,
"quantity": 2,
"dataType": "uint32",
"enableAutoScaling": 1,
"autoScalingMode": "intercept",
"autoScaling": {
"slope": 0.1,
"offset": 0
},
"description": ""
},
{
"name": "tci6",
"function": "read-input-registers",
"address": 2060,
"quantity": 2,
"dataType": "uint32",
"enableAutoScaling": 1,
"autoScalingMode": "intercept",
"autoScaling": {
"slope": 0.1,
"offset": 0
},
"description": ""
},
{
"name": "tci7",
"function": "read-input-registers",
"address": 2062,
"quantity": 2,
"dataType": "uint32",
"enableAutoScaling": 1,
"autoScalingMode": "intercept",
"autoScaling": {
"slope": 0.1,
"offset": 0
},
"description": ""
}
]
},
{
"id": 13,
"name": "ioLogik-E1263H-T",
"tagList": [
{
"name": "do0",
"function": "read-coils",
"address": 0,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "do1",
"function": "read-coils",
"address": 1,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "do2",
"function": "read-coils",
"address": 2,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "do3",
"function": "read-coils",
"address": 3,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "do4",
"function": "read-coils",
"address": 4,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "do5",
"function": "read-coils",
"address": 5,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "do6",
"function": "read-coils",
"address": 6,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "do7",
"function": "read-coils",
"address": 7,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "do8",
"function": "read-coils",
"address": 8,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "do9",
"function": "read-coils",
"address": 9,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "do10",
"function": "read-coils",
"address": 10,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "do11",
"function": "read-coils",
"address": 11,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "do12",
"function": "read-coils",
"address": 12,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "do13",
"function": "read-coils",
"address": 13,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "do14",
"function": "read-coils",
"address": 14,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "do15",
"function": "read-coils",
"address": 15,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "do16",
"function": "read-coils",
"address": 16,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "do17",
"function": "read-coils",
"address": 17,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "do18",
"function": "read-coils",
"address": 18,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "do19",
"function": "read-coils",
"address": 19,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "do20",
"function": "read-coils",
"address": 20,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "do21",
"function": "read-coils",
"address": 21,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "do22",
"function": "read-coils",
"address": 22,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "do23",
"function": "read-coils",
"address": 23,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "di0",
"function": "read-discrete-inputs",
"address": 0,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "di1",
"function": "read-discrete-inputs",
"address": 1,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "di2",
"function": "read-discrete-inputs",
"address": 2,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "di3",
"function": "read-discrete-inputs",
"address": 3,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "di4",
"function": "read-discrete-inputs",
"address": 4,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "di5",
"function": "read-discrete-inputs",
"address": 5,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "di6",
"function": "read-discrete-inputs",
"address": 6,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "di7",
"function": "read-discrete-inputs",
"address": 7,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "di8",
"function": "read-discrete-inputs",
"address": 8,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "di9",
"function": "read-discrete-inputs",
"address": 9,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "di10",
"function": "read-discrete-inputs",
"address": 10,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "di11",
"function": "read-discrete-inputs",
"address": 11,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "di12",
"function": "read-discrete-inputs",
"address": 12,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "di13",
"function": "read-discrete-inputs",
"address": 13,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "di14",
"function": "read-discrete-inputs",
"address": 14,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "di15",
"function": "read-discrete-inputs",
"address": 15,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "di16",
"function": "read-discrete-inputs",
"address": 16,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "di17",
"function": "read-discrete-inputs",
"address": 17,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "di18",
"function": "read-discrete-inputs",
"address": 18,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "di19",
"function": "read-discrete-inputs",
"address": 19,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "di20",
"function": "read-discrete-inputs",
"address": 20,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "di21",
"function": "read-discrete-inputs",
"address": 21,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "di22",
"function": "read-discrete-inputs",
"address": 22,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "di23",
"function": "read-discrete-inputs",
"address": 23,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "ai0",
"function": "read-input-registers",
"address": 512,
"quantity": 1,
"dataType": "uint16",
"description": ""
},
{
"name": "ai1",
"function": "read-input-registers",
"address": 513,
"quantity": 1,
"dataType": "uint16",
"description": ""
},
{
"name": "ai2",
"function": "read-input-registers",
"address": 514,
"quantity": 1,
"dataType": "uint16",
"description": ""
},
{
"name": "ai3",
"function": "read-input-registers",
"address": 515,
"quantity": 1,
"dataType": "uint16",
"description": ""
},
{
"name": "ai4",
"function": "read-input-registers",
"address": 516,
"quantity": 1,
"dataType": "uint16",
"description": ""
},
{
"name": "ai5",
"function": "read-input-registers",
"address": 517,
"quantity": 1,
"dataType": "uint16",
"description": ""
},
{
"name": "ai6",
"function": "read-input-registers",
"address": 518,
"quantity": 1,
"dataType": "uint16",
"description": ""
},
{
"name": "ai7",
"function": "read-input-registers",
"address": 519,
"quantity": 1,
"dataType": "uint16",
"description": ""
},
{
"name": "ai8",
"function": "read-input-registers",
"address": 520,
"quantity": 1,
"dataType": "uint16",
"description": ""
},
{
"name": "ai9",
"function": "read-input-registers",
"address": 521,
"quantity": 1,
"dataType": "uint16",
"description": ""
},
{
"name": "rtdi0",
"function": "read-input-registers",
"address": 1536,
"quantity": 1,
"dataType": "uint16",
"enableAutoScaling": 1,
"autoScalingMode": "intercept",
"autoScaling": {
"slope": 0.1,
"offset": 0
},
"description": ""
},
{
"name": "rtdi1",
"function": "read-input-registers",
"address": 1537,
"quantity": 1,
"dataType": "uint16",
"enableAutoScaling": 1,
"autoScalingMode": "intercept",
"autoScaling": {
"slope": 0.1,
"offset": 0
},
"description": ""
},
{
"name": "rtdi2",
"function": "read-input-registers",
"address": 1538,
"quantity": 1,
"dataType": "uint16",
"enableAutoScaling": 1,
"autoScalingMode": "intercept",
"autoScaling": {
"slope": 0.1,
"offset": 0
},
"description": ""
}
]
},
{
"id": 14,
"name": "ioLogik-R1210",
"tagList": [
{
"name": "di0",
"function": "read-input-registers",
"address": 0,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "di1",
"function": "read-input-registers",
"address": 1,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "di2",
"function": "read-input-registers",
"address": 2,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "di3",
"function": "read-input-registers",
"address": 3,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "di4",
"function": "read-input-registers",
"address": 4,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "di5",
"function": "read-input-registers",
"address": 5,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "di6",
"function": "read-input-registers",
"address": 6,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "di7",
"function": "read-input-registers",
"address": 7,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "di8",
"function": "read-input-registers",
"address": 8,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "di9",
"function": "read-input-registers",
"address": 9,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "di10",
"function": "read-input-registers",
"address": 10,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "di11",
"function": "read-input-registers",
"address": 11,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "di12",
"function": "read-input-registers",
"address": 12,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "di13",
"function": "read-input-registers",
"address": 13,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "di14",
"function": "read-input-registers",
"address": 14,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "di15",
"function": "read-input-registers",
"address": 15,
"quantity": 1,
"dataType": "boolean",
"description": ""
}
]
},
{
"id": 15,
"name": "ioLogik-R1212",
"tagList": [
{
"name": "di0",
"function": "read-input-registers",
"address": 0,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "di1",
"function": "read-input-registers",
"address": 1,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "di2",
"function": "read-input-registers",
"address": 2,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "di3",
"function": "read-input-registers",
"address": 3,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "di4",
"function": "read-input-registers",
"address": 4,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "di5",
"function": "read-input-registers",
"address": 5,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "di6",
"function": "read-input-registers",
"address": 6,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "di7",
"function": "read-input-registers",
"address": 7,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "di8",
"function": "read-input-registers",
"address": 8,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "di9",
"function": "read-input-registers",
"address": 9,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "di10",
"function": "read-input-registers",
"address": 10,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "di11",
"function": "read-input-registers",
"address": 11,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "di12",
"function": "read-input-registers",
"address": 12,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "di13",
"function": "read-input-registers",
"address": 13,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "di14",
"function": "read-input-registers",
"address": 14,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "di15",
"function": "read-input-registers",
"address": 15,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "do0",
"function": "read-holding-registers",
"address": 320,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "do1",
"function": "read-holding-registers",
"address": 321,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "do2",
"function": "read-holding-registers",
"address": 322,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "do3",
"function": "read-holding-registers",
"address": 323,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "do4",
"function": "read-holding-registers",
"address": 324,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "do5",
"function": "read-holding-registers",
"address": 325,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "do6",
"function": "read-holding-registers",
"address": 326,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "do7",
"function": "read-holding-registers",
"address": 327,
"quantity": 1,
"dataType": "boolean",
"description": ""
}
]
},
{
"id": 16,
"name": "ioLogik-R1214",
"tagList": [
{
"name": "di0",
"function": "read-input-registers",
"address": 0,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "di1",
"function": "read-input-registers",
"address": 1,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "di2",
"function": "read-input-registers",
"address": 2,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "di3",
"function": "read-input-registers",
"address": 3,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "di4",
"function": "read-input-registers",
"address": 4,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "di5",
"function": "read-input-registers",
"address": 5,
"quantity": 1,
"dataType": "boolean",
"description": ""
},
{
"name": "ro0",
"function": "read-holding-registers",
"address": 320,
"quantity": 1,
"dataType": "uint16",
"description": ""
},
{
"name": "ro1",
"function": "read-holding-registers",
"address": 321,
"quantity": 1,
"dataType": "uint16",
"description": ""
},
{
"name": "ro2",
"function": "read-holding-registers",
"address": 322,
"quantity": 1,
"dataType": "uint16",
"description": ""
},
{
"name": "ro3",
"function": "read-holding-registers",
"address": 323,
"quantity": 1,
"dataType": "uint16",
"description": ""
},
{
"name": "ro4",
"function": "read-holding-registers",
"address": 324,
"quantity": 1,
"dataType": "uint16",
"description": ""
},
{
"name": "ro5",
"function": "read-holding-registers",
"address": 325,
"quantity": 1,
"dataType": "uint16",
"description": ""
}
]
},
{
"id": 17,
"name": "ioLogik-R1240",
"tagList": [
{
"name": "ai0",
"function": "read-input-registers",
"address": 704,
"quantity": 1,
"dataType": "uint16",
"description": ""
},
{
"name": "ai1",
"function": "read-input-registers",
"address": 705,
"quantity": 1,
"dataType": "uint16",
"description": ""
},
{
"name": "ai2",
"function": "read-input-registers",
"address": 706,
"quantity": 1,
"dataType": "uint16",
"description": ""
},
{
"name": "ai3",
"function": "read-input-registers",
"address": 707,
"quantity": 1,
"dataType": "uint16",
"description": ""
},
{
"name": "ai4",
"function": "read-input-registers",
"address": 708,
"quantity": 1,
"dataType": "uint16",
"description": ""
},
{
"name": "ai5",
"function": "read-input-registers",
"address": 709,
"quantity": 1,
"dataType": "uint16",
"description": ""
},
{
"name": "ai6",
"function": "read-input-registers",
"address": 710,
"quantity": 1,
"dataType": "uint16",
"description": ""
},
{
"name": "ai7",
"function": "read-input-registers",
"address": 711,
"quantity": 1,
"dataType": "uint16",
"description": ""
}
]
},
{
"id": 18,
"name": "ioLogik-R1241",
"tagList": [
{
"name": "ao0",
"function": "read-holding-registers",
"address": 1184,
"quantity": 1,
"dataType": "uint16",
"description": ""
},
{
"name": "ao1",
"function": "read-holding-registers",
"address": 1185,
"quantity": 1,
"dataType": "uint16",
"description": ""
},
{
"name": "ao2",
"function": "read-holding-registers",
"address": 1186,
"quantity": 1,
"dataType": "uint16",
"description": ""
},
{
"name": "ao3",
"function": "read-holding-registers",
"address": 1187,
"quantity": 1,
"dataType": "uint16",
"description": ""
}
]
}
]
GET /mxc/modbus/equipment-templates/{id}
Get equipment templates by ID
(no description)
success
Response Example (200 OK)
{
"id": 9,
"name": "ioLogik-E1260",
"tagList": [
{
"name": "rtdi0",
"function": "read-input-registers",
"address": 1536,
"quantity": 1,
"dataType": "uint16",
"enableAutoScaling": 1,
"autoScalingMode": "intercept",
"autoScaling": {
"slope": 0.1,
"offset": 0
},
"description": ""
},
{
"name": "rtdi1",
"function": "read-input-registers",
"address": 1537,
"quantity": 1,
"dataType": "uint16",
"enableAutoScaling": 1,
"autoScalingMode": "intercept",
"autoScaling": {
"slope": 0.1,
"offset": 0
},
"description": ""
},
{
"name": "rtdi2",
"function": "read-input-registers",
"address": 1538,
"quantity": 1,
"dataType": "uint16",
"enableAutoScaling": 1,
"autoScalingMode": "intercept",
"autoScaling": {
"slope": 0.1,
"offset": 0
},
"description": ""
},
{
"name": "rtdi3",
"function": "read-input-registers",
"address": 1539,
"quantity": 1,
"dataType": "uint16",
"enableAutoScaling": 1,
"autoScalingMode": "intercept",
"autoScaling": {
"slope": 0.1,
"offset": 0
},
"description": ""
},
{
"name": "rtdi4",
"function": "read-input-registers",
"address": 1540,
"quantity": 1,
"dataType": "uint16",
"enableAutoScaling": 1,
"autoScalingMode": "intercept",
"autoScaling": {
"slope": 0.1,
"offset": 0
},
"description": ""
},
{
"name": "rtdi5",
"function": "read-input-registers",
"address": 1541,
"quantity": 1,
"dataType": "uint16",
"enableAutoScaling": 1,
"autoScalingMode": "intercept",
"autoScaling": {
"slope": 0.1,
"offset": 0
},
"description": ""
}
],
"application/json": {
"id": 9,
"name": "ioLogik-E1260",
"tagList": [
{
"name": "rtdi0",
"function": "read-input-registers",
"address": 1536,
"quantity": 1,
"dataType": "uint16",
"enableAutoScaling": 1,
"autoScalingMode": "intercept",
"autoScaling": {
"slope": 0.1,
"offset": 0
},
"description": ""
},
{
"name": "rtdi1",
"function": "read-input-registers",
"address": 1537,
"quantity": 1,
"dataType": "uint16",
"enableAutoScaling": 1,
"autoScalingMode": "intercept",
"autoScaling": {
"slope": 0.1,
"offset": 0
},
"description": ""
},
{
"name": "rtdi2",
"function": "read-input-registers",
"address": 1538,
"quantity": 1,
"dataType": "uint16",
"enableAutoScaling": 1,
"autoScalingMode": "intercept",
"autoScaling": {
"slope": 0.1,
"offset": 0
},
"description": ""
},
{
"name": "rtdi3",
"function": "read-input-registers",
"address": 1539,
"quantity": 1,
"dataType": "uint16",
"enableAutoScaling": 1,
"autoScalingMode": "intercept",
"autoScaling": {
"slope": 0.1,
"offset": 0
},
"description": ""
},
{
"name": "rtdi4",
"function": "read-input-registers",
"address": 1540,
"quantity": 1,
"dataType": "uint16",
"enableAutoScaling": 1,
"autoScalingMode": "intercept",
"autoScaling": {
"slope": 0.1,
"offset": 0
},
"description": ""
},
{
"name": "rtdi5",
"function": "read-input-registers",
"address": 1541,
"quantity": 1,
"dataType": "uint16",
"enableAutoScaling": 1,
"autoScalingMode": "intercept",
"autoScaling": {
"slope": 0.1,
"offset": 0
},
"description": ""
}
]
}
}
PUT /mxc/modbus/equipment-templates/{id}
Update an equipment template by ID
- id: integer
-
ID of equipment template
- name: string (3 to 255 chars)
-
Name of equipment template
- tagList: object[]
-
Tag list of equipment template
-
object - name: string (2 to 255 chars)
-
Name of tag
- unit: string (up to 255 chars)
-
Unit of tag
- function: string read-coils, read-input-registers, read-discrete-inputs, read-holding-registers, write-single-coil, write-single-register, write-multiple-coils, write-multiple-registers
-
Function to retrieve the tag value
- address: integer 0 ≤ x ≤ 655350
-
Address of the tag 0x0000(0) <= value <= 0xFFFF(65535)
- quantity: integer 1 ≤ x ≤ 655350
-
Quantity of tag
- dataType: string uint16, uint32, uint64, int16, int32, int64, float32, float64, string, boolean, bytearray
-
Data type of tag
- enableByteOrder: boolean
-
Enable byte order function
- byteOrder: string BA, CDAB, DCBA, GHEFCDAB, HGFEDCBA
-
Switch input byte order
- enableInvalidValue: boolean
-
Enable invalid value function
- invalidValue: integer[]
-
Array size is equals to quantity (if input == INVALID_VALUE, assume the value is not valid)
-
integer - description: string (up to 65535 chars)
-
User edited description of tag
- enableAutoScaling: boolean
-
Enable auto scaling function
- autoScalingMode: string intercept, point
-
Mode of auto scaling function
- autoScaling: object
-
V = input * S + O output = ((input-sourceMin) * (targetMax-targetMin) / (sourceMax-sourceMin)) + targetMin
-
- slope: number
- offset: number
- sourceMin: number
- sourceMax: number
- targetMin: number
- targetMax: number
- access: string ro, wo, wr
-
Access type of tag
- size: integer
-
Size of tag in byte
- optimizeGrouping: boolean true
-
enable auto group tag polling optimization
(no description)
Request Example
{
"id": 9,
"name": "ioLogik-E1260",
"tagList": [
{
"name": "rtdi0",
"function": "read-input-registers",
"address": 1536,
"quantity": 1,
"dataType": "uint16",
"enableAutoScaling": 1,
"autoScalingMode": "intercept",
"autoScaling": {
"slope": 0.1,
"offset": 0
},
"description": ""
},
{
"name": "rtdi1",
"function": "read-input-registers",
"address": 1537,
"quantity": 1,
"dataType": "uint16",
"enableAutoScaling": 1,
"autoScalingMode": "intercept",
"autoScaling": {
"slope": 0.1,
"offset": 0
},
"description": ""
},
{
"name": "rtdi2",
"function": "read-input-registers",
"address": 1538,
"quantity": 1,
"dataType": "uint16",
"enableAutoScaling": 1,
"autoScalingMode": "intercept",
"autoScaling": {
"slope": 0.1,
"offset": 0
},
"description": ""
},
{
"name": "rtdi3",
"function": "read-input-registers",
"address": 1539,
"quantity": 1,
"dataType": "uint16",
"enableAutoScaling": 1,
"autoScalingMode": "intercept",
"autoScaling": {
"slope": 0.1,
"offset": 0
},
"description": ""
},
{
"name": "rtdi4",
"function": "read-input-registers",
"address": 1540,
"quantity": 1,
"dataType": "uint16",
"enableAutoScaling": 1,
"autoScalingMode": "intercept",
"autoScaling": {
"slope": 0.1,
"offset": 0
},
"description": ""
},
{
"name": "rtdi5",
"function": "read-input-registers",
"address": 1541,
"quantity": 1,
"dataType": "uint16",
"enableAutoScaling": 1,
"autoScalingMode": "intercept",
"autoScaling": {
"slope": 0.1,
"offset": 0
},
"description": ""
}
]
}
success
Response Example (200 OK)
{
"id": 9,
"name": "ioLogik-E1260",
"tagList": [
{
"name": "rtdi0",
"function": "read-input-registers",
"address": 1536,
"quantity": 1,
"dataType": "uint16",
"enableAutoScaling": 1,
"autoScalingMode": "intercept",
"autoScaling": {
"slope": 0.1,
"offset": 0
},
"description": ""
},
{
"name": "rtdi1",
"function": "read-input-registers",
"address": 1537,
"quantity": 1,
"dataType": "uint16",
"enableAutoScaling": 1,
"autoScalingMode": "intercept",
"autoScaling": {
"slope": 0.1,
"offset": 0
},
"description": ""
},
{
"name": "rtdi2",
"function": "read-input-registers",
"address": 1538,
"quantity": 1,
"dataType": "uint16",
"enableAutoScaling": 1,
"autoScalingMode": "intercept",
"autoScaling": {
"slope": 0.1,
"offset": 0
},
"description": ""
},
{
"name": "rtdi3",
"function": "read-input-registers",
"address": 1539,
"quantity": 1,
"dataType": "uint16",
"enableAutoScaling": 1,
"autoScalingMode": "intercept",
"autoScaling": {
"slope": 0.1,
"offset": 0
},
"description": ""
},
{
"name": "rtdi4",
"function": "read-input-registers",
"address": 1540,
"quantity": 1,
"dataType": "uint16",
"enableAutoScaling": 1,
"autoScalingMode": "intercept",
"autoScaling": {
"slope": 0.1,
"offset": 0
},
"description": ""
},
{
"name": "rtdi5",
"function": "read-input-registers",
"address": 1541,
"quantity": 1,
"dataType": "uint16",
"enableAutoScaling": 1,
"autoScalingMode": "intercept",
"autoScaling": {
"slope": 0.1,
"offset": 0
},
"description": ""
}
],
"application/json": {
"id": 9,
"name": "ioLogik-E1260",
"tagList": [
{
"name": "rtdi0",
"function": "read-input-registers",
"address": 1536,
"quantity": 1,
"dataType": "uint16",
"enableAutoScaling": 1,
"autoScalingMode": "intercept",
"autoScaling": {
"slope": 0.1,
"offset": 0
},
"description": ""
},
{
"name": "rtdi1",
"function": "read-input-registers",
"address": 1537,
"quantity": 1,
"dataType": "uint16",
"enableAutoScaling": 1,
"autoScalingMode": "intercept",
"autoScaling": {
"slope": 0.1,
"offset": 0
},
"description": ""
},
{
"name": "rtdi2",
"function": "read-input-registers",
"address": 1538,
"quantity": 1,
"dataType": "uint16",
"enableAutoScaling": 1,
"autoScalingMode": "intercept",
"autoScaling": {
"slope": 0.1,
"offset": 0
},
"description": ""
},
{
"name": "rtdi3",
"function": "read-input-registers",
"address": 1539,
"quantity": 1,
"dataType": "uint16",
"enableAutoScaling": 1,
"autoScalingMode": "intercept",
"autoScaling": {
"slope": 0.1,
"offset": 0
},
"description": ""
},
{
"name": "rtdi4",
"function": "read-input-registers",
"address": 1540,
"quantity": 1,
"dataType": "uint16",
"enableAutoScaling": 1,
"autoScalingMode": "intercept",
"autoScaling": {
"slope": 0.1,
"offset": 0
},
"description": ""
},
{
"name": "rtdi5",
"function": "read-input-registers",
"address": 1541,
"quantity": 1,
"dataType": "uint16",
"enableAutoScaling": 1,
"autoScalingMode": "intercept",
"autoScaling": {
"slope": 0.1,
"offset": 0
},
"description": ""
}
]
}
}
DELETE /mxc/modbus/equipment-templates/{id}
Delete an equipment templates by ID
(no description)
success
interface
Modbus Management for Data acquisition
GET /mxc/modbus/interfaces
Get all interfaces
success
Response Example (200 OK)
[
{
"id": 1,
"name": "Modbus_Gateway_1",
"type": "modbus-rtu",
"config": {
"dev": "/dev/ttyM0",
"devDisplayName": "PORT 1",
"baudRate": 115200,
"parity": "none",
"stopBits": 1,
"intercharTimeoutMs": 100,
"interframeDelayMs": 0
},
"requestTimeoutMs": 500,
"pollingPeriodMs": 5000,
"deviceList": []
},
{
"id": 2,
"name": "Modbus_Gateway_2",
"type": "modbus-rtu",
"config": {
"dev": "/dev/ttyM1",
"devDisplayName": "PORT 2",
"baudRate": 115200,
"parity": "none",
"stopBits": 1,
"intercharTimeoutMs": 100,
"interframeDelayMs": 0
},
"requestTimeoutMs": 500,
"pollingPeriodMs": 5000,
"deviceList": []
}
]
POST /mxc/modbus/interfaces
Create a TCP interface (RTU interfaces are already built-in and can't be deleted)
Interface which connects to modbus devices
Interface which connects to modbus devices
- id: integer
-
ID of interface
- name: string (2 to 255 chars)
-
Name of interface
- type: string modbus-rtu, modbus-tcp
-
Type of modbus device
- pollingPeriodMs: integer 100 ≤ x ≤ 86400000
-
Polling period for this interface (ms)
- requestTimeoutMs: integer 100 ≤ x ≤ 60000
-
Request timeout for each devices (ms)
- deviceList: object[]
-
object Modbus device profile
- deviceId: integer 0 ≤ x ≤ 255
-
ID of device
- equipmentTemplate: string (2 to 255 chars)
-
Name of modbus template
- equipmentName: string (3 to 255 chars)
-
Name of device
- status: DeviceStatus
- config: ModbusTCPConfig , ModbusRTUConfig
Request Example
{
"id": 1,
"name": "Modbus_Gateway_1",
"type": "modbus-rtu",
"config": {
"dev": "/dev/ttyM0",
"devDisplayName": "PORT 1",
"baudRate": 115200,
"parity": "none",
"stopBits": 1,
"intercharTimeoutMs": 100,
"interframeDelayMs": 0
},
"requestTimeoutMs": 500,
"pollingPeriodMs": 5000,
"deviceList": []
}
sucess
Response Example (200 OK)
{
"id": 1,
"name": "Modbus_Gateway_1",
"type": "modbus-rtu",
"config": {
"host": "192.168.1.1",
"port": 32556
},
"requestTimeoutMs": 500,
"pollingPeriodMs": 5000,
"deviceList": [],
"application/json": {
"id": 1,
"name": "Modbus_Gateway_1",
"type": "modbus-rtu",
"config": {
"host": "192.168.1.1",
"port": 32556
},
"requestTimeoutMs": 500,
"pollingPeriodMs": 5000,
"deviceList": []
}
}
GET /mxc/modbus/interfaces/{id}
Get an interface by given ID
(no description)
success
Response Example (200 OK)
{
"id": 1,
"name": "Modbus_Gateway_1",
"type": "modbus-rtu",
"config": {
"dev": "/dev/ttyM0",
"devDisplayName": "PORT 1",
"baudRate": 115200,
"parity": "none",
"stopBits": 1,
"intercharTimeoutMs": 100,
"interframeDelayMs": 0
},
"requestTimeoutMs": 500,
"pollingPeriodMs": 5000,
"deviceList": [],
"application/json": {
"id": 1,
"name": "Modbus_Gateway_1",
"type": "modbus-rtu",
"config": {
"dev": "/dev/ttyM0",
"devDisplayName": "PORT 1",
"baudRate": 115200,
"parity": "none",
"stopBits": 1,
"intercharTimeoutMs": 100,
"interframeDelayMs": 0
},
"requestTimeoutMs": 500,
"pollingPeriodMs": 5000,
"deviceList": []
}
}
PUT /mxc/modbus/interfaces/{id}
Update an interface by given ID
Interface which connects to modbus devices
Interface which connects to modbus devices
- id: integer
-
ID of interface
- name: string (2 to 255 chars)
-
Name of interface
- type: string modbus-rtu, modbus-tcp
-
Type of modbus device
- pollingPeriodMs: integer 100 ≤ x ≤ 86400000
-
Polling period for this interface (ms)
- requestTimeoutMs: integer 100 ≤ x ≤ 60000
-
Request timeout for each devices (ms)
- deviceList: object[]
-
object Modbus device profile
- deviceId: integer 0 ≤ x ≤ 255
-
ID of device
- equipmentTemplate: string (2 to 255 chars)
-
Name of modbus template
- equipmentName: string (3 to 255 chars)
-
Name of device
- status: DeviceStatus
- config: ModbusTCPConfig , ModbusRTUConfig
(no description)
Request Example
{
"id": 1,
"name": "Modbus_Gateway_1",
"type": "modbus-rtu",
"config": {
"dev": "/dev/ttyM0",
"devDisplayName": "PORT 1",
"baudRate": 115200,
"parity": "none",
"stopBits": 1,
"intercharTimeoutMs": 100,
"interframeDelayMs": 0
},
"requestTimeoutMs": 500,
"pollingPeriodMs": 5000,
"deviceList": []
}
success
Response Example (200 OK)
{
"id": 1,
"name": "Modbus_Gateway_1",
"type": "modbus-rtu",
"config": {
"dev": "/dev/ttyM0",
"devDisplayName": "PORT 1",
"baudRate": 115200,
"parity": "none",
"stopBits": 1,
"intercharTimeoutMs": 100,
"interframeDelayMs": 0
},
"requestTimeoutMs": 500,
"pollingPeriodMs": 5000,
"deviceList": [],
"application/json": {
"id": 1,
"name": "Modbus_Gateway_1",
"type": "modbus-rtu",
"config": {
"dev": "/dev/ttyM0",
"devDisplayName": "PORT 1",
"baudRate": 115200,
"parity": "none",
"stopBits": 1,
"intercharTimeoutMs": 100,
"interframeDelayMs": 0
},
"requestTimeoutMs": 500,
"pollingPeriodMs": 5000,
"deviceList": []
}
}
DELETE /mxc/modbus/interfaces/{id}
Delete an interface by Given ID (Can't delete built-in RTU interfaces)
(no description)
success
GET /mxc/modbus/equipments
Get all modbus equipments for Log Profile
success
Response Example (200 OK)
[
{
"equipmentName": "LIGHT",
"equipmentTags": [
{
"name": "di0",
"function": "read-discrete-inputs",
"address": 0,
"quantity": 1,
"type": "boolean",
"description": ""
},
{
"name": "di1",
"function": "read-discrete-inputs",
"address": 1,
"quantity": 1,
"type": "boolean",
"description": ""
},
{
"name": "di2",
"function": "read-discrete-inputs",
"address": 2,
"quantity": 1,
"type": "boolean",
"description": ""
},
{
"name": "di3",
"function": "read-discrete-inputs",
"address": 3,
"quantity": 1,
"type": "boolean",
"description": ""
},
{
"name": "di4",
"function": "read-discrete-inputs",
"address": 4,
"quantity": 1,
"type": "boolean",
"description": ""
},
{
"name": "di5",
"function": "read-discrete-inputs",
"address": 5,
"quantity": 1,
"type": "boolean",
"description": ""
},
{
"name": "di6",
"function": "read-discrete-inputs",
"address": 6,
"quantity": 1,
"type": "boolean",
"description": ""
},
{
"name": "di7",
"function": "read-discrete-inputs",
"address": 7,
"quantity": 1,
"type": "boolean",
"description": ""
}
]
}
]
access
Modbus Tag Access for Data Acquisition
GET /mxc/modbus/access/{equipment}/{tag}
Read Modbus Tag of (Equipent,Tag)
equipment name of tags
tag name of tags
success
Response Example (200 OK)
{
"application/json": {
"equipmentName": "ioLogik-E1210",
"tagName": "di0",
"valueType": "bool",
"value": true
}
}
PUT /mxc/modbus/access/{equipment}/{tag}
Write Modbus Tag of (Equipment,Tag)
Modbus Write Request of (Equipment,Tag)
- valueType: string
- value: object
equipment name of tags
tag name of tags
Request Example
[
{
"valueType": "string",
"value": "object"
}
]
success
Response Example (200 OK)
{
"application/json": {
"equipmentName": "ioLogik-E1210",
"tagName": "di0"
}
}
openvpn
Handles the configuration of the OpenVPN client service
GET /network/openvpn
Get OpenVPN service setting.
Get OpenVPN setting success.
Response Example (200 OK)
{
"enable": true,
"ovpnFileExist": true,
"connection": true,
"vpnRemoteIp": "10.9.8.1",
"vpnLocalIp": "10.9.8.2"
}
PUT /network/openvpn
Update OpenVPN service setting.
Request Example
{
"enable": true,
"ovpnFileExist": true,
"connection": true,
"vpnRemoteIp": "10.9.8.1",
"vpnLocalIp": "10.9.8.2"
}
Update OpenVPN setting success.
Response Example (200 OK)
{
"enable": true,
"ovpnFileExist": true,
"connection": true,
"vpnRemoteIp": "10.9.8.1",
"vpnLocalIp": "10.9.8.2"
}
POST /network/openvpn/config
Upload OpenVPN configuration file to File server.
Request Example
{
"url": "http://192.168.31.113:18080/url",
"headers": {
"X-Mx-AccessToken": "MOXAMOXA-TEST-SYSTEM"
}
}
Upload success.
Response Example (200 OK)
{
"url": "http://192.168.31.113:18080/url"
}
PUT /network/openvpn/config
Provide OpenVPN configuration file path to bundle.
Request Example
{
"file": {
"url": "http://192.168.31.113:18080/url",
"headers": {
"X-Mx-AccessToken": "MOXAMOXA-TEST-SYSTEM"
}
}
}
Provide success.
program
Provides the user program service
GET /system/programs
Get all custom programs
success
Response Example (200 OK)
{
"id": 1,
"name": "my-user-program",
"enable": true,
"startMode": "period",
"args": "--url http://localhost",
"period": 10,
"timeout": 1,
"lastExcutedTime": "2017-01-09T06:46:01.181Z",
"fileExist": true,
"logsExist": true,
"file": {
"url": "http://remote-download-url/file.tar.gz",
"headers": {
"authorization": "xxxxxxx"
}
}
}
POST /system/programs
Create a new Program
Request Example
{
"file": {
"url": "http://remote-download-url/file.tar.gz",
"headers": {
"authorization": "xxxxxxx"
}
},
"id": 1,
"name": "my-user-program",
"enable": true,
"startMode": "period",
"args": "--url http://localhost",
"period": 10,
"timeout": 1,
"lastExcutedTime": "2017-01-09T06:46:01.181Z",
"fileExist": true,
"logsExist": true
}
OK
Response Example (200 OK)
{
"id": 1,
"name": "my-user-program",
"enable": true,
"startMode": "period",
"args": "--url http://localhost",
"period": 10,
"timeout": 1,
"lastExcutedTime": "2017-01-09T06:46:01.181Z",
"fileExist": true,
"logsExist": true,
"file": {
"url": "http://remote-download-url/file.tar.gz",
"headers": {
"authorization": "xxxxxxx"
}
}
}
DELETE /system/programs
Delete Programs
IDs
Request Example
[
"number"
]
OK
Response Example (200 OK)
{
"count": 1
}
GET /system/programs/{id}
Get program by given id
(no description)
success
Response Example (200 OK)
{
"id": 1,
"name": "my-user-program",
"enable": true,
"startMode": "period",
"args": "--url http://localhost",
"period": 10,
"timeout": 1,
"lastExcutedTime": "2017-01-09T06:46:01.181Z",
"fileExist": true,
"logsExist": true,
"file": {
"url": "http://remote-download-url/file.tar.gz",
"headers": {
"authorization": "xxxxxxx"
}
}
}
PUT /system/programs/{id}
Update program settings by given id
(no description)
Request Example
{
"file": {
"url": "http://remote-download-url/file.tar.gz",
"headers": {
"authorization": "xxxxxxx"
}
},
"id": 1,
"name": "my-user-program",
"enable": true,
"startMode": "period",
"args": "--url http://localhost",
"period": 10,
"timeout": 1,
"lastExcutedTime": "2017-01-09T06:46:01.181Z",
"fileExist": true,
"logsExist": true
}
OK
Response Example (200 OK)
{
"id": 1,
"name": "my-user-program",
"enable": true,
"startMode": "period",
"args": "--url http://localhost",
"period": 10,
"timeout": 1,
"lastExcutedTime": "2017-01-09T06:46:01.181Z",
"fileExist": true,
"logsExist": true,
"file": {
"url": "http://remote-download-url/file.tar.gz",
"headers": {
"authorization": "xxxxxxx"
}
}
}
POST /system/programs/{id}/file
Download program by given id
(no description)
success
Response Example (200 OK)
{
"url": "http://download/file"
}
POST /system/programs/{id}/logs
Download logs by given id
(no description)
success
route
Handles the routing table
Current Default Route and priority list
The system returns the current default route information and default route priority list.
Default Route
Response Example (200 OK)
{
"interface": "eth0",
"gateway": "192.168.3.254",
"priorityList": [
"wwan0",
"eth0"
]
}
Update Default Route Setting
Update the default route list.
Request Example
{
"interface": "eth0",
"gateway": "192.168.3.254",
"priorityList": [
"wwan0",
"eth0"
]
}
OK
Response Example (200 OK)
{
"interface": "eth0",
"gateway": "192.168.3.254",
"priorityList": [
"wwan0",
"eth0"
]
}
iptables
Manages iptables rules
Port Mapping Rule(s)
List all port mapping rules.
An array of port mapping rule(s)
Response Example (200 OK)
[
{
"id": 1,
"enable": true,
"service": "http",
"extPort": {
"start": 8080,
"end": 8080
},
"intPort": {
"start": 80,
"end": 80
},
"intIp": "192.168.5.123",
"protocol": "tcp"
},
{
"id": 2,
"enable": false,
"service": "test",
"extPort": {
"start": 10080,
"end": 10083
},
"intPort": {
"start": 8080,
"end": 8083
},
"intIp": "192.168.5.123",
"protocol": "both"
}
]
Create a Port Mapping Rule
Append a port mapping rule in the table.
Request Example
{
"id": 1,
"enable": true,
"service": "http",
"extPort": {
"start": 8080,
"end": 8080
},
"intPort": {
"start": 80,
"end": 80
},
"intIp": "192.168.5.123",
"protocol": "tcp"
}
OK
Response Example (200 OK)
{
"id": 1,
"enable": true,
"service": "http",
"extPort": {
"start": 8080,
"end": 8080
},
"intPort": {
"start": 80,
"end": 80
},
"intIp": "192.168.5.123",
"protocol": "tcp"
}
DELETE /network/portmapping
Delete multiple rules
Target rule ID
Request Example
[
"integer"
]
success
GET /network/portmapping/{id}
Get a port mapping rule by ID
(no description)
success
Response Example (200 OK)
{
"id": 1,
"enable": true,
"service": "http",
"extPort": {
"start": 8080,
"end": 8080
},
"intPort": {
"start": 80,
"end": 80
},
"intIp": "192.168.5.123",
"protocol": "tcp"
}
Update a Port Mapping Rule
Update a port mapping rule in the table.
(no description)
Request Example
{
"id": 1,
"enable": true,
"service": "http",
"extPort": {
"start": 8080,
"end": 8080
},
"intPort": {
"start": 80,
"end": 80
},
"intIp": "192.168.5.123",
"protocol": "tcp"
}
OK
Response Example (200 OK)
{
"id": 1,
"enable": true,
"service": "http",
"extPort": {
"start": 8080,
"end": 8080
},
"intPort": {
"start": 80,
"end": 80
},
"intIp": "192.168.5.123",
"protocol": "tcp"
}
DELETE /network/portmapping/{id}
Delete port mapping rule by ID
(no description)
success
Simple SNAT Rule(s)
List all simple source NAT rules.
An array of simple SNAT rule(s)
Response Example (200 OK)
[
{
"id": 1,
"enable": true,
"priority": 0,
"service": "http",
"protocol": "both",
"intIp": "192.168.5.123",
"portStart": 80,
"portEnd": 80,
"outInterface": "wan"
},
{
"id": 2,
"enable": false,
"priority": 1,
"service": "https",
"protocol": "both",
"intIp": "192.168.5.123",
"portStart": 443,
"portEnd": 443,
"outInterface": "wan"
}
]
Create a Simple SNAT Rule
Create a simple source NAT rule in the table, only internal IP, source port, and internal IP is provided.
Request Example
{
"id": 1,
"enable": true,
"priority": 0,
"service": "http",
"protocol": "both",
"intIp": "192.168.5.123",
"portStart": 80,
"portEnd": 80,
"outInterface": "wan"
}
OK
Response Example (200 OK)
{
"id": 1,
"enable": true,
"priority": 0,
"service": "http",
"protocol": "both",
"intIp": "192.168.5.123",
"portStart": 80,
"portEnd": 80,
"outInterface": "wan"
}
DELETE /network/ssnat
Delete multiple rules
Target rule ID
Request Example
[
"integer"
]
success
GET /network/ssnat/{id}
Get a simple source NAT rule by ID
(no description)
success
Response Example (200 OK)
{
"id": 1,
"enable": true,
"priority": 0,
"service": "http",
"protocol": "both",
"intIp": "192.168.5.123",
"portStart": 80,
"portEnd": 80,
"outInterface": "wan"
}
Update a Simple SNAT Rule
Update a simple source NAT rule in the table.
(no description)
Request Example
{
"id": 1,
"enable": true,
"priority": 0,
"service": "http",
"protocol": "both",
"intIp": "192.168.5.123",
"portStart": 80,
"portEnd": 80,
"outInterface": "wan"
}
OK
Response Example (200 OK)
{
"id": 1,
"enable": true,
"priority": 0,
"service": "http",
"protocol": "both",
"intIp": "192.168.5.123",
"portStart": 80,
"portEnd": 80,
"outInterface": "wan"
}
DELETE /network/ssnat/{id}
Delete simple source NAT rule by ID
(no description)
success
GET /network/firewall/wan/https
Get the firewall status for HTTPS on WAN
status
Response Example (200 OK)
{
"enable": false
}
PUT /network/firewall/wan/https
Update the firewall status for HTTPS on WAN
Request Example
{
"enable": false
}
OK
Response Example (200 OK)
{
"enable": false
}
serial
Provides the utility to set the serial mode
GET /system/serial
Get all of serial interfaces settings
success
Response Example (200 OK)
[
{
"id": 1,
"dev": "/dev/ttyM0",
"devDisplayName": "PORT-1",
"mode": "rs232"
},
{
"id": 2,
"dev": "/dev/ttyM1",
"devDisplayName": "PORT-2",
"mode": "rs485-2w"
},
{
"id": 3,
"dev": "/dev/ttyM2",
"devDisplayName": "PORT 3",
"mode": "rs422/rs485-4w"
}
]
GET /system/serial/{id}
Get a serial interface configuration
(no description)
success
Response Example (200 OK)
{
"id": 1,
"dev": "/dev/ttyM0",
"devDisplayName": "PORT-1",
"mode": "rs232"
}
PUT /system/serial/{id}
Update a dhcp server configuration
Serial interface configuration
Serial interface configuration
- id: integer
-
ID of serial interface
- dev: string (1 to 1024 chars)
-
Serial interface physical path
- devDisplayName: string
-
Display name of serial interface
- mode: string rs232, rs485-2w, rs422/rs485-4w
-
Mode of serial interface
(no description)
Request Example
{
"id": 1,
"dev": "/dev/ttyM0",
"devDisplayName": "PORT-1",
"mode": "rs232"
}
success
Response Example (200 OK)
{
"id": 1,
"dev": "/dev/ttyM0",
"devDisplayName": "PORT-1",
"mode": "rs232"
}
service
Manages the system service configuration
GET /system/services
Get system services status
success
Response Example (200 OK)
[
{
"id": 1,
"enable": true,
"name": "ssh",
"status": true
},
{
"id": 2,
"enable": true,
"name": "rsyslog",
"status": true
}
]
PUT /system/services/{name}
Update service settings
Service status / configuration
Service status / configuration
- id: integer
-
Service ID
- enable: boolean
-
Enable/Disable service
- name: string
-
Name of service
- status: string
-
Current status of service
(no description)
Request Example
{
"id": 1,
"enable": true,
"name": "ssh",
"status": true
}
success
Response Example (200 OK)
{
"id": 1,
"enable": true,
"name": "ssh",
"status": true
}
GET /system/services/{name}
Get specific service status
(no description)
success
Response Example (200 OK)
{
"id": 1,
"enable": true,
"name": "ssh",
"status": true
}
status
Provides system status information
GET /system/status
Get system status
Only get selected fields. Using comma as separator (?fields=cpuUsage,uptimeSec,version)
success
Response Example (200 OK)
{
"hostname": "Moxa",
"version": "1.1.0-1",
"uptimeSec": 312956,
"cpuUsage": 5.7,
"memoryUsage": 63.8,
"memory": 257286144,
"disks": [
{
"name": "system",
"mount": "/",
"device": "rootfs",
"usage": {
"total": 770695168,
"used": 497655808,
"free": 217038848,
"percent": 64.6
}
},
{
"name": "sd1",
"mount": "/media/sd-mmcblk1p1",
"device": "/dev/mmcblk1p1",
"usage": {
"total": 770695168,
"used": 497655808,
"free": 217038848,
"percent": 64.6
}
}
]
}
PUT /system/status
Update hostname
System status
System status
- hostname: string (1 to 63 chars)
-
Hostname
- version: string
-
Version of system
- uptimeSec: string
-
System uptime (unit: seconds)
- cpuUsage: number
-
CPU usage (in percentage)
- memoryUsage: number
-
System memory usage (in percentage)
- memory: integer
-
System total memory (unit: byte)
- disks: object[]
-
object Disk information
- name: string
-
Disk alias
- mount: string
-
Mount point
- device: string
-
Physical device node path
- usage: object
-
Usage of this disk
-
- total: integer
-
Total size (unit: byte)
- used: integer
-
Used size (unit: byte)
- free: integer
-
Free size (unit: byte)
- percent: number
-
Percent of used size
Request Example
{
"hostname": "Moxa",
"version": "1.1.0-1",
"uptimeSec": 312956,
"cpuUsage": 5.7,
"memoryUsage": 63.8,
"memory": 257286144,
"disks": [
{
"name": "system",
"mount": "/",
"device": "rootfs",
"usage": {
"total": 770695168,
"used": 497655808,
"free": 217038848,
"percent": 64.6
}
},
{
"name": "sd1",
"mount": "/media/sd-mmcblk1p1",
"device": "/dev/mmcblk1p1",
"usage": {
"total": 770695168,
"used": 497655808,
"free": 217038848,
"percent": 64.6
}
}
]
}
success
Response Example (200 OK)
{
"hostname": "Moxa",
"version": "1.1.0-1",
"uptimeSec": 312956,
"cpuUsage": 5.7,
"memoryUsage": 63.8,
"memory": 257286144,
"disks": [
{
"name": "system",
"mount": "/",
"device": "rootfs",
"usage": {
"total": 770695168,
"used": 497655808,
"free": 217038848,
"percent": 64.6
}
},
{
"name": "sd1",
"mount": "/media/sd-mmcblk1p1",
"device": "/dev/mmcblk1p1",
"usage": {
"total": 770695168,
"used": 497655808,
"free": 217038848,
"percent": 64.6
}
}
]
}
POST /system/syslog
Uplaod system logs to remote server
Request Example
"object"
GET /network/interfaces
Get network interfaces
success
Response Example (200 OK)
[
"tunl0",
"eth0",
"eth1"
]
PUT /system/password
Update OS password
System Password
System Password
- password: string (4 to 255 chars)
-
password
Request Example
{
"passowrd": "thisisyourpassword"
}
success
GET /system/properties
Get system properties
success
Response Example (200 OK)
{
"gps": {
"lat": 121.123,
"lng": 22.456
},
"aliasName": "my iot gateway"
}
PUT /system/customProperties
User custom defined properties
Request payload for updating custom property
Request payload for updating custom property
Request Example
{
"myKey": "myValue"
}
success
Response Example (200 OK)
{
"myKey": "myValue"
}
GET /system/properties/{key}
Get specific system property
(no description)
success
Response Example (200 OK)
{
"application/json": {
"lat": 121.123,
"lng": 22.456
}
}
PUT /system/properties/{key}
Update specific system property
Request payload for updating system property
Request payload for updating system property
- data:
(no description)
Request Example
{
"data": {
"lat": 121.123,
"lng": 22.456
}
}
success
Response Example (200 OK)
{
"lat": 121.123,
"lng": 22.456
}
GET /mxc/system/equipments
Get system tag information
success
Response Example (200 OK)
[
{
"equipmentName": "SYSTEM",
"equipmentTags": [
{
"name": "cpu_usage",
"dataType": "float64",
"access": "ro",
"size": 8,
"description": "CPU Usage"
},
{
"name": "memory_usage",
"dataType": "float64",
"access": "ro",
"size": 8,
"description": "Memory Usage"
},
{
"name": "disk_usage",
"dataType": "float64",
"access": "ro",
"size": 8,
"description": "Disk Usage"
}
]
}
]
time
Provides the system-time management function
GET /system/time
Get current time settings
success
Response Example (200 OK)
{
"time": "2015-03-26T16:27:48.611441Z",
"timezone": "Asia/Taipei",
"ntp": {
"enable": true,
"server": "pool.ntp.org",
"interval": 86400
}
}
PUT /system/time
Update time settings
Time configuration
Time configuration
- time: string
-
Current system time (format: iso 8601)
- timezone: string
-
Current timezone
- ntp: object
-
NTP configuration
-
- enable: boolean
-
Enable NTP client
- server: string (1 to 2048 chars)
-
Target NTP server
- interval: integer 60 ≤ x ≤ 2592000
-
Time sync interval in seconds (at least: 60 seconds.)
Request Example
{
"time": "2015-03-26T16:27:48.611441Z",
"timezone": "Asia/Taipei",
"ntp": {
"enable": true,
"server": "pool.ntp.org",
"interval": 86400
}
}
success
Response Example (200 OK)
{
"time": "2015-03-26T16:27:48.611441Z",
"timezone": "Asia/Taipei",
"ntp": {
"enable": true,
"server": "pool.ntp.org",
"interval": 86400
}
}
GET /system/zoneinfo
Get current timezone information
success
Response Example (200 OK)
{
"zone": [
{
"cca2": "AD",
"name": "Europe/Andorra",
"offset": "+0100"
},
{
"cca2": "AE",
"name": "Asia/Dubai",
"offset": "+0400"
},
{
"cca2": "AF",
"name": "Asia/Kabul",
"offset": "+0430"
}
],
"iso3166": [
{
"cca2": "AD",
"name": "Andorra"
},
{
"cca2": "AE",
"name": "United Arab Emirates"
},
{
"cca2": "AF",
"name": "Afghanistan"
}
]
}
firmware
Manages the firmware upgrade function
POST /system/firmware
Upgrade firmware by given url
Firmware Info
Firmware Info
- delay: integer
-
Delay time in seconds before execute the upgrading process
- file: object
-
Remote firmware meta data
-
- url: string (1 to 4096 chars)
-
URL for downloading firmware
- physicalPath: string (1 to 4096 chars)
-
File's physical path on machine
- headers: object
-
Headers for downloading firmware if necessary
Request Example
{
"delay": 3,
"file": {
"url": "http://192.168.31.81:5000/api/v1/download/1234",
"headers": {
"accessToken": "MOXAMOXA-TEST-SYSTEM"
}
}
}
success
wifi
Provides the WiFi network(s) configuration interface
WiFi Interface(s)
The system returns information about the settings of all WiFi interface(s).
An array of WiFi interface(s)
Response Example (200 OK)
[
{
"id": 1,
"name": "wlan0",
"product": "WPEQ-353ACNI",
"capabilities": [
"client",
"ap"
],
"mode": "client",
"enable": true,
"status": true,
"client": {
"enableDhcp": true,
"networks": [
{
"ssid": "test-none",
"security": "none"
},
{
"ssid": "test-wpa",
"security": "wpa",
"password": "12345678",
"priority": 5
},
{
"ssid": "test-eap",
"security": "eap",
"username": "moxa",
"password": "moxa",
"priority": 10
},
{
"ssid": "test-wep",
"security": "wep",
"password": "12345",
"priority": 1
}
],
"signal": 100,
"ip": "111.70.146.125",
"netmask": "255.255.255.252",
"gateway": "111.70.146.126",
"dns": [
"168.95.1.1",
"168.95.192.1"
],
"usage": {
"txkbyte": 40023,
"rxkbyte": 3493
},
"checkalive": {
"enable": true,
"targetHost": "8.8.8.8",
"intervalSec": 60
}
},
"ap": {
"mode": "bg",
"ssid": "moxa-test",
"channel": 11,
"security": {
"mode": "none"
}
}
}
]
GET /network/wifi/{id}
Get settings of indicated WiFi interface.
(no description)
An WiFi interface settings.
Response Example (200 OK)
{
"id": 1,
"name": "wlan0",
"product": "WPEQ-353ACNI",
"capabilities": [
"client",
"ap"
],
"mode": "client",
"enable": true,
"status": true,
"client": {
"enableDhcp": true,
"networks": [
{
"ssid": "test-none",
"security": "none"
},
{
"ssid": "test-wpa",
"security": "wpa",
"password": "12345678",
"priority": 5
},
{
"ssid": "test-eap",
"security": "eap",
"username": "moxa",
"password": "moxa",
"priority": 10
},
{
"ssid": "test-wep",
"security": "wep",
"password": "12345",
"priority": 1
}
],
"signal": 100,
"ip": "111.70.146.125",
"netmask": "255.255.255.252",
"gateway": "111.70.146.126",
"dns": [
"168.95.1.1",
"168.95.192.1"
],
"usage": {
"txkbyte": 40023,
"rxkbyte": 3493
},
"checkalive": {
"enable": true,
"targetHost": "8.8.8.8",
"intervalSec": 60
}
},
"ap": {
"mode": "bg",
"ssid": "moxa-test",
"channel": 11,
"security": {
"mode": "none"
}
}
}
WiFi Interface
Update an WiFi interface settings.
(no description)
Request Example
{
"id": 1,
"name": "wlan0",
"product": "WPEQ-353ACNI",
"capabilities": [
"client",
"ap"
],
"mode": "client",
"enable": true,
"status": true,
"client": {
"enableDhcp": true,
"networks": [
{
"ssid": "test-none",
"security": "none"
},
{
"ssid": "test-wpa",
"security": "wpa",
"password": "12345678",
"priority": 5
},
{
"ssid": "test-eap",
"security": "eap",
"username": "moxa",
"password": "moxa",
"priority": 10
},
{
"ssid": "test-wep",
"security": "wep",
"password": "12345",
"priority": 1
}
],
"signal": 100,
"ip": "111.70.146.125",
"netmask": "255.255.255.252",
"gateway": "111.70.146.126",
"dns": [
"168.95.1.1",
"168.95.192.1"
],
"usage": {
"txkbyte": 40023,
"rxkbyte": 3493
},
"checkalive": {
"enable": true,
"targetHost": "8.8.8.8",
"intervalSec": 60
}
},
"ap": {
"mode": "bg",
"ssid": "moxa-test",
"channel": 11,
"security": {
"mode": "none"
}
}
}
OK
Response Example (200 OK)
{
"id": 1,
"name": "wlan0",
"product": "WPEQ-353ACNI",
"capabilities": [
"client",
"ap"
],
"mode": "client",
"enable": true,
"status": true,
"client": {
"enableDhcp": true,
"networks": [
{
"ssid": "test-none",
"security": "none"
},
{
"ssid": "test-wpa",
"security": "wpa",
"password": "12345678",
"priority": 5
},
{
"ssid": "test-eap",
"security": "eap",
"username": "moxa",
"password": "moxa",
"priority": 10
},
{
"ssid": "test-wep",
"security": "wep",
"password": "12345",
"priority": 1
}
],
"signal": 100,
"ip": "111.70.146.125",
"netmask": "255.255.255.252",
"gateway": "111.70.146.126",
"dns": [
"168.95.1.1",
"168.95.192.1"
],
"usage": {
"txkbyte": 40023,
"rxkbyte": 3493
},
"checkalive": {
"enable": true,
"targetHost": "8.8.8.8",
"intervalSec": 60
}
},
"ap": {
"mode": "bg",
"ssid": "moxa-test",
"channel": 11,
"security": {
"mode": "none"
}
}
}
POST /network/wifi/{id}/blacklist
Add a MAC into blacklist of an indicated WiFi interface.
(no description)
Request Example
{
"id": 1,
"mac": "01:23:45:67:89:0a",
"description": "test1"
}
OK
Response Example (200 OK)
{
"id": 1,
"mac": "01:23:45:67:89:0a",
"description": "test1"
}
GET /network/wifi/{id}/blacklist
Get blacklist of an indicated WiFi AP interface.
(no description)
A blacklist of an indicated WiFi AP interface.
Response Example (200 OK)
[
{
"id": 1,
"mac": "01:23:45:67:89:0a",
"description": "test1"
}
]
WiFi Blacklist for AP
Update blacklist of an indicated WiFi AP interface.
- id: integer
-
Identifier for an WiFi AP blacklist MAC.
- mac: string
-
A MAC address.
- description: string
-
Description of the MAC address.
(no description)
Request Example
[
{
"id": 1,
"mac": "01:23:45:67:89:0a",
"description": "test1"
}
]
OK
Response Example (200 OK)
[
{
"id": 1,
"mac": "01:23:45:67:89:0a",
"description": "test1"
}
]
DELETE /network/wifi/{id}/blacklist
Delete multiple MACs
MAC ID of a blacklist
(no description)
Request Example
[
"integer"
]
success
GET /network/wifi/{id}/blacklist/{mac_id}
Get a MAC item from blacklist of an indicated WiFi AP interface.
A WiFi interface ID
A MAC ID in a blacklist of the WiFi AP interface
A MAC item in a blacklist of an indicated WiFi AP interface.
Response Example (200 OK)
{
"id": 1,
"mac": "01:23:45:67:89:0a",
"description": "test1"
}
WiFi Blacklist item for AP
Update a MAC item in blacklist of an indicated WiFi AP interface.
A WiFi interface ID
A MAC ID in a blacklist of the WiFi AP interface
Request Example
{
"id": 1,
"mac": "01:23:45:67:89:0a",
"description": "test1"
}
OK
Response Example (200 OK)
{
"id": 1,
"mac": "01:23:45:67:89:0a",
"description": "test1"
}
DELETE /network/wifi/{id}/blacklist/{mac_id}
Delete a MACs
MAC ID of a blacklist
MAC ID of a blacklist
A WiFi interface ID
A MAC ID in a blacklist of the WiFi AP interface
Request Example
"integer"
success
GET /network/wifi/{id}/scan-networks
Get a list of WiFi stations arounded.
A WiFi interface ID
A list of WiFi stations.
Response Example (200 OK)
[
{
"ssid": "test",
"bssid": "01:23:45:67:89:0a",
"signal": -43,
"frequency": 2462,
"security": "wpa2"
}
]
POST /network/wifi/{id}/scan-networks
Scan WiFi stations arounded.
A WiFi interface ID
success
GET /network/wifi/{id}/list-networks
Get a list of WiFi stations arounded.
A WiFi interface ID
A list of WiFi stations.
Response Example (200 OK)
[
{
"ssid": "test",
"bssid": "01:23:45:67:89:0a",
"signal": -43,
"frequency": 2462,
"security": "wpa2"
}
]
Schema Definitions
CellularAll:
- enable: boolean
-
Enable Cellular Networking.
- id: integer
-
Identifier for an Cellular interface.
- profileId: integer
-
Specify profile to connect, 0 for connect and retry automatically.
- profileTimeout: integer 60 ≤ x ≤ 86399
-
Retry timeout in seconds for static APN to switch primary to secondary settings.
- profiles: object[]
-
Profiles for redundency
-
object - id: integer
-
Identifier for an Cellular interface.
- name: string (up to 100 chars)
-
Alias name for the profile.
- pdpContext: object
-
PDP context data for dialing up to Cellular Network.
-
- static: boolean
-
Use static APN or dynamic.
- id: integer 1 ≤ x ≤ 16
-
Specifies PDP context id.
- apn: string
-
Edit APN of the specified PDP context.
- type: string ipv4, ipv6, ipv4v6
-
Indicate the PDP type to use.
- auth: object
-
The negotiated authentication.
-
- protocol: string none, chap, pap, both
-
The negotiated authentication protocol.
- username: string (up to 255 chars)
-
Username for PAP and/or CHAP.
- password: string (up to 255 chars)
-
Password for PAP and/or CHAP.
- pinCode: string
-
PIN code of SIM card. Takes no effect when SIM card PIN weren't not set.
- init: string[]
-
Initialize process before executing the profile.
-
sim:<sim-slot>
-
carrier:<carrier>
-
-
string
- keepalive: object
-
- enable: boolean
-
Enable/disable Cellular connection keep-alive by ping.
- targetHost: string
-
IP address to ping.
- intervalSec: integer 60 ≤ x ≤ 86399
-
Check alive interval.
- reboot: object
-
Reboot system while check alive failed after a defined cycle(s).
-
- enable: boolean
-
Enable/disable reboot policy for check alive failed.
- cycles: integer 1 ≤ x ≤ 48
-
Define cycles to check if reboot is required; a cycle is a global value defined by system, default should be 20 minutes.
- name: string
-
Interface name.
- capabilities: object
-
- sim: integer[]
-
integer - carriers: string[]
-
string
- currentProfileId: integer
-
Current used profile Id.
- mode: string
-
Given cellular connection mode. Could be one of
"umts"
,"lte"
. - signal: object
-
Cellular RF signal strength, include RSSI and EcIo.
-
- rat: string
-
Given cellular connection mode. Could be one of
umts
,lte
,m1
,nb1
,none
. - csq: integer
-
Signal quality, Only shows the first part of the response, RSSI (Received signal strength indicator).
- rssi: integer
-
Cellular RF signal strength, in
dBm
. Value-999
indicates no signal. - rxqual: integer
-
RxQual is used in GSM and is a part of the Network Measurement Reports (NMR). This is an integer value which can be between 0 and 7 and reflects the quality of voice. 0 is the best quality, 7 is the worst.
- rscp: integer
-
In the UMTS cellular communication system, received signal code power (RSCP, in
dBm
) denotes the power measured by a receiver on a particular physical communication channel. - ecio: integer
-
The ratio of the received energy per chip (= code bit) and the interference level, given in
dBm
. - rsrp: integer
-
Reference Signal Received Power is an RSSI type of measurement. It is the power of the LTE Reference Signals spread over the full bandwidth and narrowband, given in
dBm
. - rsrq: integer
-
Reference Signal Received Quality, Quality considering also RSSI and the number of used Resource Blocks (N) RSRQ = (N * RSRP) / RSSI measured over the same bandwidth. RSRQ is a C/I type of measurement and it indicates the quality of the received reference signal, given in
dB
. - indicator: string
-
The indicator is either
RSSI
for 2G/3G orRSRP
for 4G andnone
if no signal. - level: integer
-
Signal levels defined in 6 degrees 0 ~ 5. The mapping is
no signal
,very poor
,poor
,fair
,good
, andexcellent
.
- operatorName: string
-
Indicate current operator name if exist.
- lac: string
-
Location area code.
- tac: string
-
Tracking area code (LTE).
- nid: string
-
Network ID (CDMA).
- cellId: string
-
Cell ID.
- bid: string
-
Base station ID (CDMA).
- iccId: string
-
ICC ID of SIM card.
- imsi: string
-
IMSI of SIM card.
- imei: string
-
IMEI of cellular module.
- esn: string
-
ESN of cellular module.
- pinRetryRemain: integer
-
PIN Retry remaining.
- status: string initializing, nosim, pin, puk, ready, connecting, connect_failure, connected, power_cycle, service_searching, service_attached, pin_error, switching_carrier
-
Indicate current status of cellular connection.
-
initializing: get module and SIM card info, unlock SIM card if necessary
-
nosim: no SIM card or unknown error with SIM card status
-
pin: SIM card is locked with a PIN code
-
ready: SIM card is ready for connect (unlocked or lock is disabled)
-
connecting: during connect state
-
connect_failure: connect failed or keepalive failed (if keepalive enabled)
-
connected: connect success with keepalive success or success with keepalive disabled
-
power_cycle: power cycle the module to recover issues
-
service_searching: roaming
-
service_attached: attached with a base station
-
pin_error: PIN code error
-
switching_carrier: module is switching carrier
-
- mac: string
-
The identical MAC address.
- ip: string
-
IP address.
""
when not connected. - netmask: string
-
Subnet mask.
""
when not connected. - gateway: string
-
Gateway IP address.
""
when not connected. - dns: string[]
-
A list of DNS IP addresses.
[]
when not connected. -
string - usage: object
-
Data usage.
-
- txkbyte: integer
-
Amount of data transmitted, in Kbytes.
- rxkbyte: integer
-
Amount of data received, in Kbytes.
Example
{
"id": 1,
"name": "wwan1",
"capabilities": {
"sim": [
1,
2
],
"carriers": [
"ATT",
"SPRINT"
]
},
"mode": "umts",
"signal": {
"rat": "lte",
"csq": 14,
"rssi": -76,
"rxqual": 1,
"rscp": -80,
"ecio": -8.5,
"rsrp": -107.3,
"rsrq": -12,
"indicator": "RSRP",
"level": 4
},
"operatorName": "Chunghwa Telecom",
"lac": "11114",
"tac": "",
"nid": "",
"cellId": "1249",
"bid": "",
"iccId": "",
"imsi": "466977502877452",
"imei": "356853050370859",
"esn": "802202F0",
"pinRetryRemain": 3,
"status": "connected",
"mac": "00:00:00:00:00:00",
"ip": "111.70.146.125",
"netmask": "255.255.255.252",
"gateway": "111.70.146.126",
"dns": [
"168.95.1.1",
"168.95.192.1"
],
"usage": {
"txkbyte": 40023,
"rxkbyte": 3493
},
"currentProfileId": 1,
"enable": true,
"keepalive": {
"enable": true,
"targetHost": "8.8.8.8",
"intervalSec": 60,
"reboot": {
"enable": false,
"cycles": 1
}
},
"profileId": 1,
"profileTimeout": 300,
"profiles": [
{
"id": 1,
"pinCode": "0000",
"pdpContext": {
"static": true,
"id": 1,
"apn": "internet",
"type": "ipv4v6",
"auth": {
"protocol": "none",
"username": "",
"password": ""
}
},
"keepalive": {
"enable": false
},
"init": [
"sim:1",
"carrier:ATT"
]
}
]
}
CellularCapabilities:
- sim: integer[]
-
integer - carriers: string[]
-
string
Example
{
"sim": [
1,
2
],
"carriers": [
"ATT",
"SPRINT"
]
}
CellularStatus: object
- name: string
-
Interface name.
- capabilities: object
-
- sim: integer[]
-
integer - carriers: string[]
-
string
- currentProfileId: integer
-
Current used profile Id.
- mode: string
-
Given cellular connection mode. Could be one of
"umts"
,"lte"
. - signal: object
-
Cellular RF signal strength, include RSSI and EcIo.
-
- rat: string
-
Given cellular connection mode. Could be one of
umts
,lte
,m1
,nb1
,none
. - csq: integer
-
Signal quality, Only shows the first part of the response, RSSI (Received signal strength indicator).
- rssi: integer
-
Cellular RF signal strength, in
dBm
. Value-999
indicates no signal. - rxqual: integer
-
RxQual is used in GSM and is a part of the Network Measurement Reports (NMR). This is an integer value which can be between 0 and 7 and reflects the quality of voice. 0 is the best quality, 7 is the worst.
- rscp: integer
-
In the UMTS cellular communication system, received signal code power (RSCP, in
dBm
) denotes the power measured by a receiver on a particular physical communication channel. - ecio: integer
-
The ratio of the received energy per chip (= code bit) and the interference level, given in
dBm
. - rsrp: integer
-
Reference Signal Received Power is an RSSI type of measurement. It is the power of the LTE Reference Signals spread over the full bandwidth and narrowband, given in
dBm
. - rsrq: integer
-
Reference Signal Received Quality, Quality considering also RSSI and the number of used Resource Blocks (N) RSRQ = (N * RSRP) / RSSI measured over the same bandwidth. RSRQ is a C/I type of measurement and it indicates the quality of the received reference signal, given in
dB
. - indicator: string
-
The indicator is either
RSSI
for 2G/3G orRSRP
for 4G andnone
if no signal. - level: integer
-
Signal levels defined in 6 degrees 0 ~ 5. The mapping is
no signal
,very poor
,poor
,fair
,good
, andexcellent
.
- operatorName: string
-
Indicate current operator name if exist.
- lac: string
-
Location area code.
- tac: string
-
Tracking area code (LTE).
- nid: string
-
Network ID (CDMA).
- cellId: string
-
Cell ID.
- bid: string
-
Base station ID (CDMA).
- iccId: string
-
ICC ID of SIM card.
- imsi: string
-
IMSI of SIM card.
- imei: string
-
IMEI of cellular module.
- esn: string
-
ESN of cellular module.
- pinRetryRemain: integer
-
PIN Retry remaining.
- status: string initializing, nosim, pin, puk, ready, connecting, connect_failure, connected, power_cycle, service_searching, service_attached, pin_error, switching_carrier
-
Indicate current status of cellular connection.
-
initializing: get module and SIM card info, unlock SIM card if necessary
-
nosim: no SIM card or unknown error with SIM card status
-
pin: SIM card is locked with a PIN code
-
ready: SIM card is ready for connect (unlocked or lock is disabled)
-
connecting: during connect state
-
connect_failure: connect failed or keepalive failed (if keepalive enabled)
-
connected: connect success with keepalive success or success with keepalive disabled
-
power_cycle: power cycle the module to recover issues
-
service_searching: roaming
-
service_attached: attached with a base station
-
pin_error: PIN code error
-
switching_carrier: module is switching carrier
-
- mac: string
-
The identical MAC address.
- ip: string
-
IP address.
""
when not connected. - netmask: string
-
Subnet mask.
""
when not connected. - gateway: string
-
Gateway IP address.
""
when not connected. - dns: string[]
-
A list of DNS IP addresses.
[]
when not connected. -
string - usage: object
-
Data usage.
-
- txkbyte: integer
-
Amount of data transmitted, in Kbytes.
- rxkbyte: integer
-
Amount of data received, in Kbytes.
Example
{
"name": "string",
"capabilities": {
"sim": [
1,
2
],
"carriers": [
"ATT",
"SPRINT"
]
},
"currentProfileId": "integer",
"mode": "string",
"signal": {
"rat": "string",
"csq": "integer",
"rssi": "integer",
"rxqual": "integer",
"rscp": "integer",
"ecio": "integer",
"rsrp": "integer",
"rsrq": "integer",
"indicator": "string",
"level": "integer"
},
"operatorName": "string",
"lac": "string",
"tac": "string",
"nid": "string",
"cellId": "string",
"bid": "string",
"iccId": "string",
"imsi": "string",
"imei": "string",
"esn": "string",
"pinRetryRemain": "integer",
"status": "string",
"mac": "string",
"ip": "string",
"netmask": "string",
"gateway": "string",
"dns": [
"string"
],
"usage": {
"txkbyte": 40023,
"rxkbyte": 3493
}
}
CellularSettings:
- enable: boolean
-
Enable Cellular Networking.
- id: integer
-
Identifier for an Cellular interface.
- profileId: integer
-
Specify profile to connect, 0 for connect and retry automatically.
- profileTimeout: integer 60 ≤ x ≤ 86399
-
Retry timeout in seconds for static APN to switch primary to secondary settings.
- profiles: object[]
-
Profiles for redundency
-
object - id: integer
-
Identifier for an Cellular interface.
- name: string (up to 100 chars)
-
Alias name for the profile.
- pdpContext: object
-
PDP context data for dialing up to Cellular Network.
-
- static: boolean
-
Use static APN or dynamic.
- id: integer 1 ≤ x ≤ 16
-
Specifies PDP context id.
- apn: string
-
Edit APN of the specified PDP context.
- type: string ipv4, ipv6, ipv4v6
-
Indicate the PDP type to use.
- auth: object
-
The negotiated authentication.
-
- protocol: string none, chap, pap, both
-
The negotiated authentication protocol.
- username: string (up to 255 chars)
-
Username for PAP and/or CHAP.
- password: string (up to 255 chars)
-
Password for PAP and/or CHAP.
- pinCode: string
-
PIN code of SIM card. Takes no effect when SIM card PIN weren't not set.
- init: string[]
-
Initialize process before executing the profile.
-
sim:<sim-slot>
-
carrier:<carrier>
-
-
string
- keepalive: object
-
- enable: boolean
-
Enable/disable Cellular connection keep-alive by ping.
- targetHost: string
-
IP address to ping.
- intervalSec: integer 60 ≤ x ≤ 86399
-
Check alive interval.
- reboot: object
-
Reboot system while check alive failed after a defined cycle(s).
-
- enable: boolean
-
Enable/disable reboot policy for check alive failed.
- cycles: integer 1 ≤ x ≤ 48
-
Define cycles to check if reboot is required; a cycle is a global value defined by system, default should be 20 minutes.
Example
{
"id": 1,
"enable": true,
"keepalive": {
"enable": true,
"targetHost": "8.8.8.8",
"intervalSec": 60,
"reboot": {
"enable": false,
"cycles": 1
}
},
"profileId": 1,
"profileTimeout": 300,
"profiles": [
{
"id": 1,
"pinCode": "0000",
"pdpContext": {
"static": true,
"id": 1,
"apn": "internet",
"type": "ipv4v6",
"auth": {
"protocol": "none",
"username": "",
"password": ""
}
},
"keepalive": {
"enable": false
},
"init": [
"sim:1",
"carrier:ATT"
]
},
{
"id": 2,
"pdpContext": {
"id": 3,
"static": false,
"apn": "",
"type": "ipv4",
"auth": {
"protocol": "none",
"username": "",
"password": ""
}
},
"keepalive": {
"targetHost": "1.2.3.4"
},
"init": [
"carrier:VZW"
]
}
]
}
Usage: object
Data usage.
- txkbyte: integer
-
Amount of data transmitted, in Kbytes.
- rxkbyte: integer
-
Amount of data received, in Kbytes.
Example
{
"txkbyte": 40023,
"rxkbyte": 3493
}
Keepalive: object
- enable: boolean
-
Enable/disable Cellular connection keep-alive by ping.
- targetHost: string
-
IP address to ping.
- intervalSec: integer 60 ≤ x ≤ 86399
-
Check alive interval.
- reboot: object
-
Reboot system while check alive failed after a defined cycle(s).
-
- enable: boolean
-
Enable/disable reboot policy for check alive failed.
- cycles: integer 1 ≤ x ≤ 48
-
Define cycles to check if reboot is required; a cycle is a global value defined by system, default should be 20 minutes.
Example
{
"enable": true,
"targetHost": "8.8.8.8",
"intervalSec": 60,
"reboot": {
"enable": false,
"cycles": 1
}
}
KeepaliveReboot: object
Reboot system while check alive failed after a defined cycle(s).
- enable: boolean
-
Enable/disable reboot policy for check alive failed.
- cycles: integer 1 ≤ x ≤ 48
-
Define cycles to check if reboot is required; a cycle is a global value defined by system, default should be 20 minutes.
Example
{
"enable": true,
"targetHost": "8.8.8.8",
"intervalSec": 60,
"reboot": {
"enable": false,
"cycles": 1
}
}
CellularProfile: object
- id: integer
-
Identifier for an Cellular interface.
- name: string (up to 100 chars)
-
Alias name for the profile.
- pdpContext: object
-
PDP context data for dialing up to Cellular Network.
-
- static: boolean
-
Use static APN or dynamic.
- id: integer 1 ≤ x ≤ 16
-
Specifies PDP context id.
- apn: string
-
Edit APN of the specified PDP context.
- type: string ipv4, ipv6, ipv4v6
-
Indicate the PDP type to use.
- auth: object
-
The negotiated authentication.
-
- protocol: string none, chap, pap, both
-
The negotiated authentication protocol.
- username: string (up to 255 chars)
-
Username for PAP and/or CHAP.
- password: string (up to 255 chars)
-
Password for PAP and/or CHAP.
- pinCode: string
-
PIN code of SIM card. Takes no effect when SIM card PIN weren't not set.
- init: string[]
-
Initialize process before executing the profile.
-
sim:<sim-slot>
-
carrier:<carrier>
-
-
string
Example
{
"id": 1,
"pinCode": "0000",
"pdpContext": {
"static": true,
"id": 1,
"apn": "internet",
"type": "ipv4v6",
"auth": {
"protocol": "none",
"username": "",
"password": ""
}
},
"keepalive": {
"enable": false
},
"init": [
"sim:1",
"carrier:ATT"
]
}
CellularCarrierInfo: object
Display current, preferred, available carrier properties, if current carrier is not equal to preferred carrier irmware, you should check your configuration. (fwver, config, carrier mismatch?).
- switchable: boolean
-
Cellular carrier could be switched or not.
- current: string (up to 32 chars)
-
Carrier name
- preferred: string (up to 32 chars)
-
Carrier name
- available: string[]
-
string (up to 32 chars) Carrier name
Example
{
"switchable": true,
"current": "ATT",
"preferred": "ATT",
"available": [
"ATT",
"VZW"
]
}
CellularFirmwareInfo: object
Display current, preferred, available firmware properties, if current firmware is not equal to preferred firmware, you should check your configuration. (fwver, config, carrier mismatch?).
- switchable: boolean
-
Cellular firmware could be switched or not.
- current: object
-
- fwver: string (up to 32 chars)
-
Firmware version
- config: string (up to 32 chars)
-
Config name
- carrier: string (up to 32 chars)
-
Carrier name
- preferred: object
-
- fwver: string (up to 32 chars)
-
Firmware version
- config: string (up to 32 chars)
-
Config name
- carrier: string (up to 32 chars)
-
Carrier name
- available: object[]
-
object - fwver: string (up to 32 chars)
-
Firmware version
- config: string (up to 32 chars)
-
Config name
- carrier: string (up to 32 chars)
-
Carrier name
Example
{
"switchable": true,
"current": {
"fwver": "05.05.58.01",
"config": "ATT_005.029_001",
"carrier": "ATT"
},
"preferred": {
"fwver": "05.05.58.01",
"config": "ATT_005.029_001",
"carrier": "ATT"
},
"available": [
{
"fwver": "05.05.58.01",
"config": "ATT_005.029_001",
"carrier": "ATT"
},
{
"fwver": "05.05.58.02",
"config": "VZW_005.029_002",
"carrier": "VZW"
}
]
}
CellularCarrierEntry: object
- carrier: string (up to 32 chars)
-
Carrier name
Example
{
"carrier": "VZW"
}
CellularFirmwareEntry: object
- fwver: string (up to 32 chars)
-
Firmware version
- config: string (up to 32 chars)
-
Config name
- carrier: string (up to 32 chars)
-
Carrier name
Example
{
"fwver": "05.05.58.01",
"config": "ATT_005.029_001",
"carrier": "ATT"
}
CellularStatus_signal:
Cellular RF signal strength, include RSSI and EcIo.
- rat: string
-
Given cellular connection mode. Could be one of
umts
,lte
,m1
,nb1
,none
. - csq: integer
-
Signal quality, Only shows the first part of the response, RSSI (Received signal strength indicator).
- rssi: integer
-
Cellular RF signal strength, in
dBm
. Value-999
indicates no signal. - rxqual: integer
-
RxQual is used in GSM and is a part of the Network Measurement Reports (NMR). This is an integer value which can be between 0 and 7 and reflects the quality of voice. 0 is the best quality, 7 is the worst.
- rscp: integer
-
In the UMTS cellular communication system, received signal code power (RSCP, in
dBm
) denotes the power measured by a receiver on a particular physical communication channel. - ecio: integer
-
The ratio of the received energy per chip (= code bit) and the interference level, given in
dBm
. - rsrp: integer
-
Reference Signal Received Power is an RSSI type of measurement. It is the power of the LTE Reference Signals spread over the full bandwidth and narrowband, given in
dBm
. - rsrq: integer
-
Reference Signal Received Quality, Quality considering also RSSI and the number of used Resource Blocks (N) RSRQ = (N * RSRP) / RSSI measured over the same bandwidth. RSRQ is a C/I type of measurement and it indicates the quality of the received reference signal, given in
dB
. - indicator: string
-
The indicator is either
RSSI
for 2G/3G orRSRP
for 4G andnone
if no signal. - level: integer
-
Signal levels defined in 6 degrees 0 ~ 5. The mapping is
no signal
,very poor
,poor
,fair
,good
, andexcellent
.
Example
{
"rat": "string",
"csq": "integer",
"rssi": "integer",
"rxqual": "integer",
"rscp": "integer",
"ecio": "integer",
"rsrp": "integer",
"rsrq": "integer",
"indicator": "string",
"level": "integer"
}
CellularProfile_pdpContext_auth:
The negotiated authentication.
- protocol: string none, chap, pap, both
-
The negotiated authentication protocol.
- username: string (up to 255 chars)
-
Username for PAP and/or CHAP.
- password: string (up to 255 chars)
-
Password for PAP and/or CHAP.
Example
{
"protocol": "string",
"username": "string",
"password": "string"
}
CellularProfile_pdpContext:
PDP context data for dialing up to Cellular Network.
- static: boolean
-
Use static APN or dynamic.
- id: integer 1 ≤ x ≤ 16
-
Specifies PDP context id.
- apn: string
-
Edit APN of the specified PDP context.
- type: string ipv4, ipv6, ipv4v6
-
Indicate the PDP type to use.
- auth: object
-
The negotiated authentication.
-
- protocol: string none, chap, pap, both
-
The negotiated authentication protocol.
- username: string (up to 255 chars)
-
Username for PAP and/or CHAP.
- password: string (up to 255 chars)
-
Password for PAP and/or CHAP.
Example
{
"static": "boolean",
"id": "integer",
"apn": "string",
"type": "string",
"auth": {
"protocol": "string",
"username": "string",
"password": "string"
}
}
CustomEquipment: object
Custom Equipment object
- id: integer
-
ID of equipment
- equipmentName: string
-
Name of custom equipment
- equipmentTags: object[]
-
Tag List of custom equipment
-
object Equipment's tag entry
- name: string (1 to 255 chars)
-
Name of tag
- dataType: string boolean, uint16, uint32, uint64, int16, int32, int64, float32, float64, string, bytearray
-
Data type of tag
- access: string ro, wo, rw
-
Access type of tag
- size: integer
-
Size of tag in byte
- description: string (up to 65535 chars)
-
Description of tag
Example
{
"id": "integer",
"equipmentName": "string",
"equipmentTags": [
{
"name": "string",
"dataType": "string",
"access": "string",
"size": "integer",
"description": "string"
}
]
}
CustomEquipmentTag: object
Equipment's tag entry
- name: string (1 to 255 chars)
-
Name of tag
- dataType: string boolean, uint16, uint32, uint64, int16, int32, int64, float32, float64, string, bytearray
-
Data type of tag
- access: string ro, wo, rw
-
Access type of tag
- size: integer
-
Size of tag in byte
- description: string (up to 65535 chars)
-
Description of tag
Example
{
"name": "string",
"dataType": "string",
"access": "string",
"size": "integer",
"description": "string"
}
LogProfile:
- id: integer
- enable: boolean true
-
Enable Log Profile
- name: string (2 to 255 chars)
-
Name of Log Profile
- archiver: object
-
Archiver Options for Log Profile
-
- destination: string
-
Archive files' place, refer to "/mxc/logprofile/destination:name"
- thresholdBytePerFile: integer x ≥ 1048576
-
Maximum size of an archive file (byte)
- directorySizeLimitByte: integer x ≥ 10240
-
Maximum archive folder size (byte)
- archivesToKeep: integer 1 ≤ x ≤ 1000
-
Maximum count of archive files
- uploader: object
-
Uploader Options for Log Profile
-
- httpPost: object
-
- url: string
-
Upload url
- enableAuth: boolean
-
Enable HTTP Basic Authication
- authentication: object
-
- username: string
-
Username for HTTP Basic Authication
- password: string
-
Password of HTTP Basic Authication
- headerList: object[]
-
HTTP/HTTPS headers list
-
object - name: string
-
Name of headers
- value: string
-
Value of headers
- bypassSsl: boolean
-
Bypass SSL certificate
- cronExpr: string
-
Schedule upload (use cron format)
- format: string json, csv, xml
-
Type of upload file format (supports: json, csv, xml)
- compress: string gzip
-
Compress Algorithm (supports: gzip)
- enableCompress: boolean
-
Enable compress
- retryCount: integer
-
Upload retry count
- retryPeriodSec: integer
-
Upload retry period (seconds)
- equipmentList: object[]
-
Collection of equipments using current Log Profile
-
object Device Tags Options for Log Profile
- equipmentName: string
-
Name of equipment
- equipmentTags: object[]
-
Equipment Tags List
-
object - name: string
-
Name of tag
- logOnChange: boolean
-
Enable log on change
Example
{
"id": 1,
"name": "log-profile-1",
"enable": true,
"archiver": {
"destination": "Internal",
"thresholdBytePerFile": 5242800,
"directorySizeLimitByte": 10240000,
"archivesToKeep": 24
},
"uploader": {
"httpPost": {
"url": "http://host/post",
"enableAuth": false,
"authentication": {
"username": "uploader",
"password": "password"
},
"headerList": [
{
"name": "Content-Type",
"value": "application/json"
},
{
"name": "User-Agent",
"value": "Mozilla/5.0"
}
],
"bypassSsl": true,
"cronExpr": "0 * * * *",
"format": "json",
"compress": "gzip",
"enableCompress": true,
"retryCount": 3,
"retryPeriodSec": 3
}
},
"equipmentList": [
{
"equipmentName": "My-ioLogik-E2242",
"equipmentTags": [
{
"name": "di0",
"logOnChange": false
},
{
"name": "di1",
"logOnChange": false
},
{
"name": "ai0",
"logOnChange": false
}
]
},
{
"equipmentName": "My-other-ioLogik-E2242",
"equipmentTags": [
{
"name": "di0",
"logOnChange": false
},
{
"name": "di1",
"logOnChange": false
},
{
"name": "ai0",
"logOnChange": false
}
]
}
]
}
Archiver: object
Archiver Options for Log Profile
- destination: string
-
Archive files' place, refer to "/mxc/logprofile/destination:name"
- thresholdBytePerFile: integer x ≥ 1048576
-
Maximum size of an archive file (byte)
- directorySizeLimitByte: integer x ≥ 10240
-
Maximum archive folder size (byte)
- archivesToKeep: integer 1 ≤ x ≤ 1000
-
Maximum count of archive files
Example
{
"destination": "string",
"thresholdBytePerFile": "integer",
"directorySizeLimitByte": "integer",
"archivesToKeep": "integer"
}
DestinationEntry: object
Archive files' place could be set to
- name: string
-
destination name
- directory: string
-
Archive files' path
Example
{
"name": "string",
"directory": "string"
}
Uploader: object
Uploader Options for Log Profile
- httpPost: object
-
- url: string
-
Upload url
- enableAuth: boolean
-
Enable HTTP Basic Authication
- authentication: object
-
- username: string
-
Username for HTTP Basic Authication
- password: string
-
Password of HTTP Basic Authication
- headerList: object[]
-
HTTP/HTTPS headers list
-
object - name: string
-
Name of headers
- value: string
-
Value of headers
- bypassSsl: boolean
-
Bypass SSL certificate
- cronExpr: string
-
Schedule upload (use cron format)
- format: string json, csv, xml
-
Type of upload file format (supports: json, csv, xml)
- compress: string gzip
-
Compress Algorithm (supports: gzip)
- enableCompress: boolean
-
Enable compress
- retryCount: integer
-
Upload retry count
- retryPeriodSec: integer
-
Upload retry period (seconds)
Example
{
"httpPost": {
"url": "string",
"enableAuth": "boolean",
"authentication": {
"username": "string",
"password": "string"
},
"headerList": [
{
"name": "string",
"value": "string"
}
],
"bypassSsl": "boolean",
"cronExpr": "string",
"format": "string",
"compress": "string",
"enableCompress": "boolean",
"retryCount": "integer",
"retryPeriodSec": "integer"
}
}
LogEquipmentEntry: object
Device Tags Options for Log Profile
- equipmentName: string
-
Name of equipment
- equipmentTags: object[]
-
Equipment Tags List
-
object - name: string
-
Name of tag
- logOnChange: boolean
-
Enable log on change
Example
{
"equipmentName": "string",
"equipmentTags": [
{
"name": "string",
"logOnChange": "boolean"
}
]
}
LogListEquipment: object
Equipment object
- equipmentType: string modbus, user, system
-
Type of equipment
- equipmentName: string (1 to 255 chars)
-
Name of equipment
- equipmentTags: object[]
-
Tag List of equipment
-
object Equipment's tag entry
- name: string (1 to 255 chars)
-
Name of tag
- dataType: string boolean, uint16, uint32, uint64, int16, int32, int64, float32, float64, string, bytearray
-
Data type of tag
- access: string ro, wo, rw
-
Access type of tag
- size: integer
-
Size of tag in byte
- description: string (up to 4096 chars)
-
Description of tag
Example
{
"equipmentType": "string",
"equipmentName": "string",
"equipmentTags": [
{
"name": "string",
"dataType": "string",
"access": "string",
"size": "integer",
"description": "string"
}
]
}
LogListEquipmentTag: object
Equipment's tag entry
- name: string (1 to 255 chars)
-
Name of tag
- dataType: string boolean, uint16, uint32, uint64, int16, int32, int64, float32, float64, string, bytearray
-
Data type of tag
- access: string ro, wo, rw
-
Access type of tag
- size: integer
-
Size of tag in byte
- description: string (up to 4096 chars)
-
Description of tag
Example
{
"name": "string",
"dataType": "string",
"access": "string",
"size": "integer",
"description": "string"
}
EquipmentTemplate: object
- id: integer
-
ID of equipment template
- name: string (3 to 255 chars)
-
Name of equipment template
- tagList: object[]
-
Tag list of equipment template
-
object - name: string (2 to 255 chars)
-
Name of tag
- unit: string (up to 255 chars)
-
Unit of tag
- function: string read-coils, read-input-registers, read-discrete-inputs, read-holding-registers, write-single-coil, write-single-register, write-multiple-coils, write-multiple-registers
-
Function to retrieve the tag value
- address: integer 0 ≤ x ≤ 655350
-
Address of the tag 0x0000(0) <= value <= 0xFFFF(65535)
- quantity: integer 1 ≤ x ≤ 655350
-
Quantity of tag
- dataType: string uint16, uint32, uint64, int16, int32, int64, float32, float64, string, boolean, bytearray
-
Data type of tag
- enableByteOrder: boolean
-
Enable byte order function
- byteOrder: string BA, CDAB, DCBA, GHEFCDAB, HGFEDCBA
-
Switch input byte order
- enableInvalidValue: boolean
-
Enable invalid value function
- invalidValue: integer[]
-
Array size is equals to quantity (if input == INVALID_VALUE, assume the value is not valid)
-
integer - description: string (up to 65535 chars)
-
User edited description of tag
- enableAutoScaling: boolean
-
Enable auto scaling function
- autoScalingMode: string intercept, point
-
Mode of auto scaling function
- autoScaling: object
-
V = input * S + O output = ((input-sourceMin) * (targetMax-targetMin) / (sourceMax-sourceMin)) + targetMin
-
- slope: number
- offset: number
- sourceMin: number
- sourceMax: number
- targetMin: number
- targetMax: number
- access: string ro, wo, wr
-
Access type of tag
- size: integer
-
Size of tag in byte
- optimizeGrouping: boolean true
-
enable auto group tag polling optimization
Example
{
"id": 9,
"name": "ioLogik-E1260",
"tagList": [
{
"name": "rtdi0",
"function": "read-input-registers",
"address": 1536,
"quantity": 1,
"dataType": "uint16",
"enableAutoScaling": 1,
"autoScalingMode": "intercept",
"autoScaling": {
"slope": 0.1,
"offset": 0
},
"description": ""
},
{
"name": "rtdi1",
"function": "read-input-registers",
"address": 1537,
"quantity": 1,
"dataType": "uint16",
"enableAutoScaling": 1,
"autoScalingMode": "intercept",
"autoScaling": {
"slope": 0.1,
"offset": 0
},
"description": ""
},
{
"name": "rtdi2",
"function": "read-input-registers",
"address": 1538,
"quantity": 1,
"dataType": "uint16",
"enableAutoScaling": 1,
"autoScalingMode": "intercept",
"autoScaling": {
"slope": 0.1,
"offset": 0
},
"description": ""
},
{
"name": "rtdi3",
"function": "read-input-registers",
"address": 1539,
"quantity": 1,
"dataType": "uint16",
"enableAutoScaling": 1,
"autoScalingMode": "intercept",
"autoScaling": {
"slope": 0.1,
"offset": 0
},
"description": ""
},
{
"name": "rtdi4",
"function": "read-input-registers",
"address": 1540,
"quantity": 1,
"dataType": "uint16",
"enableAutoScaling": 1,
"autoScalingMode": "intercept",
"autoScaling": {
"slope": 0.1,
"offset": 0
},
"description": ""
},
{
"name": "rtdi5",
"function": "read-input-registers",
"address": 1541,
"quantity": 1,
"dataType": "uint16",
"enableAutoScaling": 1,
"autoScalingMode": "intercept",
"autoScaling": {
"slope": 0.1,
"offset": 0
},
"description": ""
}
]
}
EquipmentTag: object
- name: string (2 to 255 chars)
-
Name of tag
- unit: string (up to 255 chars)
-
Unit of tag
- function: string read-coils, read-input-registers, read-discrete-inputs, read-holding-registers, write-single-coil, write-single-register, write-multiple-coils, write-multiple-registers
-
Function to retrieve the tag value
- address: integer 0 ≤ x ≤ 655350
-
Address of the tag 0x0000(0) <= value <= 0xFFFF(65535)
- quantity: integer 1 ≤ x ≤ 655350
-
Quantity of tag
- dataType: string uint16, uint32, uint64, int16, int32, int64, float32, float64, string, boolean, bytearray
-
Data type of tag
- enableByteOrder: boolean
-
Enable byte order function
- byteOrder: string BA, CDAB, DCBA, GHEFCDAB, HGFEDCBA
-
Switch input byte order
- enableInvalidValue: boolean
-
Enable invalid value function
- invalidValue: integer[]
-
Array size is equals to quantity (if input == INVALID_VALUE, assume the value is not valid)
-
integer - description: string (up to 65535 chars)
-
User edited description of tag
- enableAutoScaling: boolean
-
Enable auto scaling function
- autoScalingMode: string intercept, point
-
Mode of auto scaling function
- autoScaling: object
-
V = input * S + O output = ((input-sourceMin) * (targetMax-targetMin) / (sourceMax-sourceMin)) + targetMin
-
- slope: number
- offset: number
- sourceMin: number
- sourceMax: number
- targetMin: number
- targetMax: number
- access: string ro, wo, wr
-
Access type of tag
- size: integer
-
Size of tag in byte
Example
{
"name": "string",
"unit": "string",
"function": "string",
"address": "integer",
"quantity": "integer",
"dataType": "string",
"enableByteOrder": "boolean",
"byteOrder": "string",
"enableInvalidValue": "boolean",
"invalidValue": [
"integer"
],
"description": "string",
"enableAutoScaling": "boolean",
"autoScalingMode": "string",
"autoScaling": {
"slope": "number",
"offset": "number",
"sourceMin": "number",
"sourceMax": "number",
"targetMin": "number",
"targetMax": "number"
},
"access": "string",
"size": "integer"
}
Interface: object
Interface which connects to modbus devices
- id: integer
-
ID of interface
- name: string (2 to 255 chars)
-
Name of interface
- type: string modbus-rtu, modbus-tcp
-
Type of modbus device
- pollingPeriodMs: integer 100 ≤ x ≤ 86400000
-
Polling period for this interface (ms)
- requestTimeoutMs: integer 100 ≤ x ≤ 60000
-
Request timeout for each devices (ms)
- deviceList: object[]
-
object Modbus device profile
- deviceId: integer 0 ≤ x ≤ 255
-
ID of device
- equipmentTemplate: string (2 to 255 chars)
-
Name of modbus template
- equipmentName: string (3 to 255 chars)
-
Name of device
- status: object
-
Device current status
-
- connection: boolean
-
Connection status. If all tag request success, return true, others return false
- totalRequestCount: integer
-
Total number of request count
- totalRequestSuccess: integer
-
Total numver of success request count
- totalReadingCount: integer
-
Total number of reading count
- lastPoll: object
-
Last pulling status
-
- at: string
-
Pulling Timestamp
- elapsedMs: integer
-
Pulling costs how many milliseconds
- requestCount: integer
-
Number of requests in this pulling
- requestSuccess: integer
-
Number of success requests in this pulling
- readingCount: integer
-
Number of reading in this pulling
- config: [object Object], [object Object]
Example
{
"id": 1,
"name": "Modbus_Gateway_1",
"type": "modbus-rtu",
"config": {
"dev": "/dev/ttyM0",
"devDisplayName": "PORT 1",
"baudRate": 115200,
"parity": "none",
"stopBits": 1,
"intercharTimeoutMs": 100,
"interframeDelayMs": 0
},
"requestTimeoutMs": 500,
"pollingPeriodMs": 5000,
"deviceList": []
}
ModbusConfig: object
Example
{
"dev": "string",
"devDisplayName": "string",
"baudRate": "integer",
"parity": "string",
"stopBits": "integer",
"intercharTimeoutMs": "integer",
"host": "string",
"port": "integer"
}
ModbusTCPConfig: object
Modbus TCP interface config
- host: string
-
HOST of TCP modbus device
- port: integer
-
PORT of TCP modbus device
- requestDelayMs: integer 0 ≤ x ≤ 60000 0
-
request delay (ms)
Example
{
"host": "string",
"port": "integer",
"requestDelayMs": "integer"
}
ModbusRTUConfig: object
Modbus RTU interface config
- dev: string (1 to 255 chars)
-
Physical path of modbus rtu device
- devDisplayName: string
-
Display name of modbus rtu device
- baudRate: integer 115200, 57600, 38400, 19200, 9600, 4800, 2400, 1200
-
Baudrate of modbus rtu device
- parity: string odd, even, none
-
Partiy of modbus rtu device
- stopBits: integer 0, 1, 2
-
Stop bits of modbus rtu device
- intercharTimeoutMs: integer 0 ≤ x ≤ 60000
-
Inter char timeout (ms)
- interframeDelayMs: integer 0 ≤ x ≤ 60000 0
-
Inter frame timeout (ms)
Example
{
"dev": "string",
"devDisplayName": "string",
"baudRate": "integer",
"parity": "string",
"stopBits": "integer",
"intercharTimeoutMs": "integer",
"interframeDelayMs": "integer"
}
DeviceStatus: object
Device current status
- connection: boolean
-
Connection status. If all tag request success, return true, others return false
- totalRequestCount: integer
-
Total number of request count
- totalRequestSuccess: integer
-
Total numver of success request count
- totalReadingCount: integer
-
Total number of reading count
- lastPoll: object
-
Last pulling status
-
- at: string
-
Pulling Timestamp
- elapsedMs: integer
-
Pulling costs how many milliseconds
- requestCount: integer
-
Number of requests in this pulling
- requestSuccess: integer
-
Number of success requests in this pulling
- readingCount: integer
-
Number of reading in this pulling
Example
{
"connection": "boolean",
"totalRequestCount": "integer",
"totalRequestSuccess": "integer",
"totalReadingCount": "integer",
"lastPoll": {
"at": "string",
"elapsedMs": "integer",
"requestCount": "integer",
"requestSuccess": "integer",
"readingCount": "integer"
}
}
Device: object
Modbus device profile
- deviceId: integer 0 ≤ x ≤ 255
-
ID of device
- equipmentTemplate: string (2 to 255 chars)
-
Name of modbus template
- equipmentName: string (3 to 255 chars)
-
Name of device
- status: object
-
Device current status
-
- connection: boolean
-
Connection status. If all tag request success, return true, others return false
- totalRequestCount: integer
-
Total number of request count
- totalRequestSuccess: integer
-
Total numver of success request count
- totalReadingCount: integer
-
Total number of reading count
- lastPoll: object
-
Last pulling status
-
- at: string
-
Pulling Timestamp
- elapsedMs: integer
-
Pulling costs how many milliseconds
- requestCount: integer
-
Number of requests in this pulling
- requestSuccess: integer
-
Number of success requests in this pulling
- readingCount: integer
-
Number of reading in this pulling
Example
{
"deviceId": "integer",
"equipmentTemplate": "string",
"equipmentName": "string",
"status": {
"connection": "boolean",
"totalRequestCount": "integer",
"totalRequestSuccess": "integer",
"totalReadingCount": "integer",
"lastPoll": {
"at": "string",
"elapsedMs": "integer",
"requestCount": "integer",
"requestSuccess": "integer",
"readingCount": "integer"
}
}
}
ModbusListEquipment: object
Modbus equipment object
- equipmentName: string (1 to 255 chars)
-
Name of equipment
- equipmentTags: object[]
-
Tag List of equipment
-
object Equipment's tag entry
- name: string (2 to 255 chars)
-
Name of tag
- unit: string
-
Unit of tag
- function: string read-coils, read-input-registers, read-discrete-inputs, read-holding-registers, write-single-coil, write-single-register, write-multiple-coils, write-multiple-registers
-
Function to retrieve the tag value
- address: integer 0 ≤ x ≤ 655350
-
Address of the tag 0x0000(0) <= value <= 0xFFFF(65535)
- quantity: integer 1 ≤ x ≤ 655350
-
Quantity of tag
- type: string uint16, uint32, uint64, int16, int32, int64, float32, float64, string, boolean
-
Data type of tag
- enableByteOrder: boolean
-
Enable byte order function
- byteOrder: string BA, CDAB, DCBA, GHEFCDAB, HGFEDCBA
-
Switch input byte order
- enableInvalidValue: boolean
-
Enable invalid value function
- invalidValue: integer[]
-
Array size is equals to quantity (if input == INVALID_VALUE, assume the value is not valid)
-
integer - description: string (up to 65535 chars)
-
User edited description of tag
- enableAutoScaling: boolean
-
Enable auto scaling function
- autoScalingMode: string intercept, point
-
Mode of auto scaling function
- autoScaling: object
-
V = input * S + O output = ((input-sourceMin) * (targetMax-targetMin) / (sourceMax-sourceMin)) + targetMin
-
- slope: number
- offset: number
- sourceMin: number
- sourceMax: number
- targetMin: number
- targetMax: number
Example
{
"equipmentName": "string",
"equipmentTags": [
{
"name": "string",
"unit": "string",
"function": "string",
"address": "integer",
"quantity": "integer",
"type": "string",
"enableByteOrder": "boolean",
"byteOrder": "string",
"enableInvalidValue": "boolean",
"invalidValue": [
"integer"
],
"description": "string",
"enableAutoScaling": "boolean",
"autoScalingMode": "string",
"autoScaling": {
"slope": "number",
"offset": "number",
"sourceMin": "number",
"sourceMax": "number",
"targetMin": "number",
"targetMax": "number"
}
}
]
}
ModbusListEquipmentTag: object
Equipment's tag entry
- name: string (2 to 255 chars)
-
Name of tag
- unit: string
-
Unit of tag
- function: string read-coils, read-input-registers, read-discrete-inputs, read-holding-registers, write-single-coil, write-single-register, write-multiple-coils, write-multiple-registers
-
Function to retrieve the tag value
- address: integer 0 ≤ x ≤ 655350
-
Address of the tag 0x0000(0) <= value <= 0xFFFF(65535)
- quantity: integer 1 ≤ x ≤ 655350
-
Quantity of tag
- type: string uint16, uint32, uint64, int16, int32, int64, float32, float64, string, boolean
-
Data type of tag
- enableByteOrder: boolean
-
Enable byte order function
- byteOrder: string BA, CDAB, DCBA, GHEFCDAB, HGFEDCBA
-
Switch input byte order
- enableInvalidValue: boolean
-
Enable invalid value function
- invalidValue: integer[]
-
Array size is equals to quantity (if input == INVALID_VALUE, assume the value is not valid)
-
integer - description: string (up to 65535 chars)
-
User edited description of tag
- enableAutoScaling: boolean
-
Enable auto scaling function
- autoScalingMode: string intercept, point
-
Mode of auto scaling function
- autoScaling: object
-
V = input * S + O output = ((input-sourceMin) * (targetMax-targetMin) / (sourceMax-sourceMin)) + targetMin
-
- slope: number
- offset: number
- sourceMin: number
- sourceMax: number
- targetMin: number
- targetMax: number
Example
{
"name": "string",
"unit": "string",
"function": "string",
"address": "integer",
"quantity": "integer",
"type": "string",
"enableByteOrder": "boolean",
"byteOrder": "string",
"enableInvalidValue": "boolean",
"invalidValue": [
"integer"
],
"description": "string",
"enableAutoScaling": "boolean",
"autoScalingMode": "string",
"autoScaling": {
"slope": "number",
"offset": "number",
"sourceMin": "number",
"sourceMax": "number",
"targetMin": "number",
"targetMax": "number"
}
}
DHCPServer: object
DHCP Server configuration
- available: boolean
-
DHCP server is available or not (the interface must be "static IP" and/or worked as a WiFi AP), default should be false.
- name: string (1 to 255 chars)
-
Name of dhcp server
- enable: boolean
-
Enable dhcp server
- netmask: string (7 to 15 chars)
-
Netmask of dhcp server
- startIp: string (7 to 15 chars)
-
Range IP start
- endIp: string (7 to 15 chars)
-
Range IP end
- domainNameServers: string[]
-
Domain name servers
-
string (7 to 15 chars) - domainName: string (up to 255 chars)
-
Domain name
- leaseTime: integer 60 ≤ x ≤ 65535
-
Lease time of dhcp pool
Example
{
"id": 1,
"name": "eth0",
"available": false,
"enable": false,
"subnet": "192.168.3.0",
"netmask": "255.255.255.0",
"startIp": "192.168.3.100",
"endIp": "192.168.3.150",
"domainNameServers": [
"8.8.8.8",
"1.1.1.1",
"2.2.2.2"
],
"domainName": "cloud5566",
"leaseTime": "3600"
}
DHCPServerCollection: object
Collection of DHCP Servers and overview status
- status: boolean
-
DHCP Server is enable or not
- collection: object[]
-
All of dhcp server instance config
-
object DHCP Server configuration
- available: boolean
-
DHCP server is available or not (the interface must be "static IP" and/or worked as a WiFi AP), default should be false.
- name: string (1 to 255 chars)
-
Name of dhcp server
- enable: boolean
-
Enable dhcp server
- netmask: string (7 to 15 chars)
-
Netmask of dhcp server
- startIp: string (7 to 15 chars)
-
Range IP start
- endIp: string (7 to 15 chars)
-
Range IP end
- domainNameServers: string[]
-
Domain name servers
-
string (7 to 15 chars) - domainName: string (up to 255 chars)
-
Domain name
- leaseTime: integer 60 ≤ x ≤ 65535
-
Lease time of dhcp pool
Example
{
"status": true,
"collection": [
{
"id": 1,
"name": "eth0",
"available": false,
"enable": false,
"subnet": "192.168.3.0",
"netmask": "255.255.255.0",
"startIp": "192.168.3.100",
"endIp": "192.168.3.150",
"domainNameServers": [
"8.8.8.8",
"1.1.1.1",
"2.2.2.2"
],
"domainName": "cloud5566",
"leaseTime": "3600"
}
]
}
DNS:
- source: string
-
The current dns corresponging source, may be a network interface or
fixed
for fixed DNS (readonly) - dns: string[]
-
Current DNS setting(s) (readonly).
-
string - enableFixed: boolean
-
Using fixed DNS (true) or by interface (false), false if not given.
- fixedDns: string[]
-
DNS settings if enableFixed is
true
. -
string
Example
{
"enableFixed": false,
"fixedDns": [],
"source": "eth0",
"dns": [
"8.8.8.8",
"8.8.4.4"
]
}
Ethernet:
- id: integer
-
Identifier of an Ethernet interface.
- enable: boolean
-
Set interface UP.
- wan: boolean
-
Define the interface type is WAN (
true
) or LAN (false
) - name: string
-
Indicate the interface name.
- enableDhcp: boolean
-
Enable (
true
) the dhcp client or using the static IP (false
). - ip: string
-
IP address for the Ethernet interface.
- mac: string
-
The identical MAC address.
- netmask: string
-
Subnet mask for the Ethernet interface.
- subnet: string
-
A subnet (short for "subnetwork") is an identifiably separate part of an organization's network.
- broadcast: string
-
A broadcast address is a logical address at which all devices connected to a multiple-access communications network are enabled to receive datagrams.
- gateway: string
-
Gateway is a router or a proxy server that routes between networks.
- dns: string[]
-
The Domain Name System (DNS) is a hierarchical distributed naming system for computers, services, or any resource connected to the Internet or a private network.
-
string - status: boolean
-
Current status for the Ethernet interface,
false
for down andtrue
for up. - restart: boolean
-
true
means that view must be restarted after receiving the response.
Example
{
"id": 1,
"wan": true,
"name": "eth0",
"ip": "192.168.3.127",
"mac": "FF:FF:FF:FF:FF:FF",
"netmask": "255.255.255.0",
"subnet": "192.168.3.0",
"gateway": "192.168.3.254",
"dns": [
"8.8.8.8",
"8.8.4.4"
],
"status": true,
"enable": true,
"enableDhcp": false
}
UrlInfo: object
Url information
- url: string (1 to 4096 chars)
-
Url address
- headers: object
-
Headers
Example
{
"url": "https://server/upload",
"headers": {
"accessToken": "MOXAMOXA-TEST-SYSTEM"
}
}
ImportInfo: object
Import information
- file: object
-
Url information
-
- url: string (1 to 4096 chars)
-
Url address
- headers: object
-
Headers
- scopes: string[]
-
Import scopes (only selected scopes' configuration will be imported)
-
string modbus, time, dns, ethernet, cellular, openvpn, dhcpd, serial, portforwarding, program, applications, system
Example
{
"file": {
"url": "https://server/upload",
"headers": {
"accessToken": "MOXAMOXA-TEST-SYSTEM"
}
},
"scopes": [
"string"
]
}
ModbusSlave:
- enable: boolean
-
Enable/Disable ModbusSlave function
- host: string
-
IP or Hostname of Modbus Slave
- port: integer
-
Port number of Modbus Slave
- unitId: integer
-
Modbus Device ID (default 0xFF for Modbus-TCP)
- ignoreUnitId: boolean
-
Ignore Unit ID
- anyHost: boolean
-
Bind Modbus Slave at any network interface
Example
{
"enable": true,
"host": "0.0.0.0",
"port": 502,
"unitId": 255,
"ignoreUnitId": false,
"anyHost": true
}
MappingEntry:
- id: integer
-
Identity for MappingEntry
- reference: string
-
Modbus access address (or offset)
- quantity: integer
-
Modbus access quantity
- equipmentName: string (3 to 255 chars)
-
Equipment Name of Tag
- equipmentType: string
-
Type of Tag
- tagName: string (2 to 255 chars)
-
Tag Name of Tag
Example
{
"id": 1,
"reference": "0x40000",
"quantity": 1,
"equipmentName": "My_ioLogik-E2242",
"equipmentType": "modbus",
"tagName": "ai0"
}
ModbusWriteEquTagReq: object
Modbus Write Request of (Equipment,Tag)
- valueType: string
- value: object
Example
{
"valueType": "string",
"value": "object"
}
ModbusReadRsp: object
Modbus Read Response
- equipmentName: string
- tagName: string
- valueType: string
- value: object
Example
{
"equipmentName": "string",
"tagName": "string",
"valueType": "string",
"value": "object"
}
ModbusWriteRsp: object
Modbus Write Response
- equipmentName: string
- tagName: string
Example
{
"equipmentName": "string",
"tagName": "string"
}
OpenVPN:
- enable: boolean
-
Enable OpenVPN service.
- ovpnFileExist: boolean
-
When OpenVPN configuration file is uploaded, set true.
- connection: boolean
-
When OpenVPN client is connected to server, set true.
- vpnRemoteIp: string
-
IP of OpenVPN server.
- vpnLocalIp: string
-
IP of OpenVPN client.
Example
{
"enable": true,
"ovpnFileExist": true,
"connection": true,
"vpnRemoteIp": "10.9.8.1",
"vpnLocalIp": "10.9.8.2"
}
OpenVPNConfig:
- file: object
-
- url: string
- headers: object
Example
{
"file": {
"url": "http://192.168.31.113:18080/url",
"headers": {
"X-Mx-AccessToken": "MOXAMOXA-TEST-SYSTEM"
}
}
}
OpenVPNPostConfig:
- url: string
- headers: object
Example
{
"url": "http://192.168.31.113:18080/url",
"headers": {
"X-Mx-AccessToken": "MOXAMOXA-TEST-SYSTEM"
}
}
Programs: array
- id: number
-
ID of this program
- name: string (2 to 255 chars)
-
Program name
- enable: boolean
-
Enable program
- startMode: string boot, period
-
Program start mode
- args: string (up to 2048 chars)
-
arguments
- period: number 0 ≤ x ≤ 65535
-
Period execution time (unit minutes)
- timeout: number 0 ≤ x ≤ 65535
-
execution timeout (in seconds, 0 means no timeout)
- lastExcutedTime: string (date-time)
-
Last program has been excuted time (iso 8601)
- fileExist: boolean
-
User program uploaded or not
- logsExist: boolean
-
Logs avaliable for download or not
Example
{
"id": 1,
"name": "my-user-program",
"enable": true,
"startMode": "period",
"args": "--url http://localhost",
"period": 10,
"timeout": 1,
"lastExcutedTime": "2017-01-09T06:46:01.181Z",
"fileExist": true,
"logsExist": true,
"file": {
"url": "http://remote-download-url/file.tar.gz",
"headers": {
"authorization": "xxxxxxx"
}
}
}
Program: object
- id: number
-
ID of this program
- name: string (2 to 255 chars)
-
Program name
- enable: boolean
-
Enable program
- startMode: string boot, period
-
Program start mode
- args: string (up to 2048 chars)
-
arguments
- period: number 0 ≤ x ≤ 65535
-
Period execution time (unit minutes)
- timeout: number 0 ≤ x ≤ 65535
-
execution timeout (in seconds, 0 means no timeout)
- lastExcutedTime: string (date-time)
-
Last program has been excuted time (iso 8601)
- fileExist: boolean
-
User program uploaded or not
- logsExist: boolean
-
Logs avaliable for download or not
Example
{
"id": 1,
"name": "my-user-program",
"enable": true,
"startMode": "period",
"args": "--url http://localhost",
"period": 10,
"timeout": 1,
"lastExcutedTime": "2017-01-09T06:46:01.181Z",
"fileExist": true,
"logsExist": true,
"file": {
"url": "http://remote-download-url/file.tar.gz",
"headers": {
"authorization": "xxxxxxx"
}
}
}
UpdateProgram:
- id: number
-
ID of this program
- name: string (2 to 255 chars)
-
Program name
- enable: boolean
-
Enable program
- startMode: string boot, period
-
Program start mode
- args: string (up to 2048 chars)
-
arguments
- period: number 0 ≤ x ≤ 65535
-
Period execution time (unit minutes)
- timeout: number 0 ≤ x ≤ 65535
-
execution timeout (in seconds, 0 means no timeout)
- lastExcutedTime: string (date-time)
-
Last program has been excuted time (iso 8601)
- fileExist: boolean
-
User program uploaded or not
- logsExist: boolean
-
Logs avaliable for download or not
- file: object
-
- url: string
-
Download link
- header: object
-
Headers for download link
Example
{
"file": {
"url": "http://remote-download-url/file.tar.gz",
"headers": {
"authorization": "xxxxxxx"
}
},
"id": 1,
"name": "my-user-program",
"enable": true,
"startMode": "period",
"args": "--url http://localhost",
"period": 10,
"timeout": 1,
"lastExcutedTime": "2017-01-09T06:46:01.181Z",
"fileExist": true,
"logsExist": true
}
Upload: object
- file: object
-
- url: string
-
Download link
- header: object
-
Headers for download link
Example
{
"file": {
"url": "string",
"header": "object"
}
}
DefaultRoute:
- interface: string
-
Indicate the interface name (readonly).
- gateway: string
-
Gateway is a router or a proxy server that routes between networks (readonly).
- priorityList: string[]
-
string (2 to 255 chars) interface for default route
Example
{
"interface": "eth0",
"gateway": "192.168.3.254",
"priorityList": [
"wwan0",
"eth0"
]
}
PortMapping:
- id: integer
-
Identifier for a Port Mapping rule.
- enable: boolean
-
Indicate to enable (true) or disable (false) the rule.
- service: string (up to 255 chars)
-
The service name for Port Mapping.
- extPort: object
-
External port(s) of the rule.
-
- start: integer 1 ≤ x ≤ 65535
-
Start port of the rule.
- end: integer 1 ≤ x ≤ 65535
-
End port of the rule.
- intPort: object
-
Internal port(s) of the rule.
-
- start: integer 1 ≤ x ≤ 65535
-
Start port of the rule.
- end: integer 1 ≤ x ≤ 65535
-
End port of the rule.
- intIp: string
-
Destination IP address for the rule.
- protocol: string tcp, udp, both
-
Specify the protocol for the rule.
Example
{
"id": 1,
"enable": true,
"service": "http",
"extPort": {
"start": 8080,
"end": 8080
},
"intPort": {
"start": 80,
"end": 80
},
"intIp": "192.168.5.123",
"protocol": "tcp"
}
SSNAT:
- id: integer
-
Identifier for a simple SNAT rule.
- enable: boolean
-
Indicate to enable (true) or disable (false) the rule.
- service: string (up to 255 chars)
-
The service name for simple SNAT. Default to
0
. - priority: integer 0 ≤ x ≤ 999
-
Rule priority, larger number has the higher priority.
- portStart: integer 1 ≤ x ≤ 65535
-
Start port of the rule.
- portEnd: integer 1 ≤ x ≤ 65535
-
End port of the rule.
- intIp: string
-
Internal (source) IP address for the source NAT.
- protocol: string tcp, udp, both
-
Specify the protocol for the rule.
- outInterface: string (2 to 255 chars)
-
Could be the interface name or "wan" to indicate a WAN interface.
Example
{
"id": 1,
"enable": true,
"priority": 0,
"service": "http",
"protocol": "both",
"intIp": "192.168.5.123",
"portStart": 80,
"portEnd": 80,
"outInterface": "wan"
}
FirewallWanHttps:
- enable: boolean
-
Indicate to enable (true) or disable (false) the rule.
Example
{
"enable": false
}
Serial: object
Serial interface configuration
- id: integer
-
ID of serial interface
- dev: string (1 to 1024 chars)
-
Serial interface physical path
- devDisplayName: string
-
Display name of serial interface
- mode: string rs232, rs485-2w, rs422/rs485-4w
-
Mode of serial interface
Example
{
"id": 1,
"dev": "/dev/ttyM0",
"devDisplayName": "PORT-1",
"mode": "rs232"
}
Serials: array
Collection of serial interfaces
Serial interface configuration
- id: integer
-
ID of serial interface
- dev: string (1 to 1024 chars)
-
Serial interface physical path
- devDisplayName: string
-
Display name of serial interface
- mode: string rs232, rs485-2w, rs422/rs485-4w
-
Mode of serial interface
Example
[
{
"id": 1,
"dev": "/dev/ttyM0",
"devDisplayName": "PORT-1",
"mode": "rs232"
},
{
"id": 2,
"dev": "/dev/ttyM1",
"devDisplayName": "PORT-2",
"mode": "rs485-2w"
},
{
"id": 3,
"dev": "/dev/ttyM2",
"devDisplayName": "PORT 3",
"mode": "rs422/rs485-4w"
}
]
Service: object
Service status / configuration
- id: integer
-
Service ID
- enable: boolean
-
Enable/Disable service
- name: string
-
Name of service
- status: string
-
Current status of service
Example
{
"id": 1,
"enable": true,
"name": "ssh",
"status": true
}
SystemStatus: object
System status
- hostname: string (1 to 63 chars)
-
Hostname
- version: string
-
Version of system
- uptimeSec: string
-
System uptime (unit: seconds)
- cpuUsage: number
-
CPU usage (in percentage)
- memoryUsage: number
-
System memory usage (in percentage)
- memory: integer
-
System total memory (unit: byte)
- disks: object[]
-
object Disk information
- name: string
-
Disk alias
- mount: string
-
Mount point
- device: string
-
Physical device node path
- usage: object
-
Usage of this disk
-
- total: integer
-
Total size (unit: byte)
- used: integer
-
Used size (unit: byte)
- free: integer
-
Free size (unit: byte)
- percent: number
-
Percent of used size
Example
{
"hostname": "Moxa",
"version": "1.1.0-1",
"uptimeSec": 312956,
"cpuUsage": 5.7,
"memoryUsage": 63.8,
"memory": 257286144,
"disks": [
{
"name": "system",
"mount": "/",
"device": "rootfs",
"usage": {
"total": 770695168,
"used": 497655808,
"free": 217038848,
"percent": 64.6
}
},
{
"name": "sd1",
"mount": "/media/sd-mmcblk1p1",
"device": "/dev/mmcblk1p1",
"usage": {
"total": 770695168,
"used": 497655808,
"free": 217038848,
"percent": 64.6
}
}
]
}
Disk: object
Disk information
- name: string
-
Disk alias
- mount: string
-
Mount point
- device: string
-
Physical device node path
- usage: object
-
Usage of this disk
-
- total: integer
-
Total size (unit: byte)
- used: integer
-
Used size (unit: byte)
- free: integer
-
Free size (unit: byte)
- percent: number
-
Percent of used size
Example
{
"name": "string",
"mount": "string",
"device": "string",
"usage": {
"total": "integer",
"used": "integer",
"free": "integer",
"percent": "number"
}
}
NetworkInterfaces: array
Network Interfaces
Example
{
"url": "https://server/upload",
"headers": {
"accessToken": "MOXAMOXA-TEST-SYSTEM"
}
}
SystemPassword: object
System Password
- password: string (4 to 255 chars)
-
password
Example
{
"passowrd": "thisisyourpassword"
}
SystemProperties: object
System Properties
- aliasName: string MOXA IoT Gateway (up to 255 chars)
-
Alias name of this device
- gps: object
-
GPS location information
-
- lat: number (float) 0
-
latitude
- lng: number (float) 0
-
longitude
Example
{
"gps": {
"lat": 121.123,
"lng": 22.456
},
"aliasName": "my iot gateway"
}
CustomPropertiesUpdate: object
Request payload for updating custom property
Example
{
"myKey": "myValue"
}
SystemPropertiesUpdate: object
Request payload for updating system property
- data:
Example
{
"data": {
"lat": 121.123,
"lng": 22.456
}
}
Equipments: array
system tags
- equipmentName: string (3 to 255 chars)
-
equipment name of tags
- equipmentTags: object[]
-
list of tags
-
object - name: string (1 to 255 chars)
-
Name of tag
- dataType: string boolean, uint16, uint32, uint64, int16, int32, int64, float32, float64, string, bytearray
-
Data type of tag
- access: string ro, wo, rw
-
Access type of tag
- size: integer
-
Size of tag in byte
- description: string (up to 4096 chars)
-
Description of tag
Example
[
{
"equipmentName": "string",
"equipmentTags": [
{
"name": "string",
"dataType": "string",
"access": "string",
"size": "integer",
"description": "string"
}
]
}
]
Time: object
Time configuration
- time: string
-
Current system time (format: iso 8601)
- timezone: string
-
Current timezone
- ntp: object
-
NTP configuration
-
- enable: boolean
-
Enable NTP client
- server: string (1 to 2048 chars)
-
Target NTP server
- interval: integer 60 ≤ x ≤ 2592000
-
Time sync interval in seconds (at least: 60 seconds.)
Example
{
"time": "2015-03-26T16:27:48.611441Z",
"timezone": "Asia/Taipei",
"ntp": {
"enable": true,
"server": "pool.ntp.org",
"interval": 86400
}
}
NTP: object
NTP configuration
- enable: boolean
-
Enable NTP client
- server: string (1 to 2048 chars)
-
Target NTP server
- interval: integer 60 ≤ x ≤ 2592000
-
Time sync interval in seconds (at least: 60 seconds.)
Example
{
"enable": false,
"server": "pool.ntp.org",
"interval": 86400
}
Timezone: object
Timezone information
- zone: object[]
-
TZ zone list with cca2 and TZ
-
object ISO 3166 alpha-2 country code and zone name
- cca2: string
-
ISO 3166 alpha-2 country code
- name: string
-
zone name
- offset: string
-
zone offset (format should be "+0800", etc)
- iso3166: object[]
-
ISO 3166 alpha-2 country codes
-
object ISO 3166 alpha-2 country code and country name
- cca2: string
-
ISO 3166 alpha-2 country code
- name: string
-
The usual English name for the coded region
Example
{
"zone": [
{
"cca2": "AD",
"name": "Europe/Andorra",
"offset": "+0100"
},
{
"cca2": "AE",
"name": "Asia/Dubai",
"offset": "+0400"
},
{
"cca2": "AF",
"name": "Asia/Kabul",
"offset": "+0430"
}
],
"iso3166": [
{
"cca2": "AD",
"name": "Andorra"
},
{
"cca2": "AE",
"name": "United Arab Emirates"
},
{
"cca2": "AF",
"name": "Afghanistan"
}
]
}
TimezoneZone: object
ISO 3166 alpha-2 country code and zone name
- cca2: string
-
ISO 3166 alpha-2 country code
- name: string
-
zone name
- offset: string
-
zone offset (format should be "+0800", etc)
Example
{
"cca2": "string",
"name": "string",
"offset": "string"
}
TimezoneIso3166: object
ISO 3166 alpha-2 country code and country name
- cca2: string
-
ISO 3166 alpha-2 country code
- name: string
-
The usual English name for the coded region
Example
{
"cca2": "string",
"name": "string"
}
FirmwareInfo: object
Firmware Info
- delay: integer
-
Delay time in seconds before execute the upgrading process
- file: object
-
Remote firmware meta data
-
- url: string (1 to 4096 chars)
-
URL for downloading firmware
- physicalPath: string (1 to 4096 chars)
-
File's physical path on machine
- headers: object
-
Headers for downloading firmware if necessary
Example
{
"delay": 3,
"file": {
"url": "http://192.168.31.81:5000/api/v1/download/1234",
"headers": {
"accessToken": "MOXAMOXA-TEST-SYSTEM"
}
}
}
WiFiIface:
- id: integer
-
Identifier for an WiFi interface.
- name: string
-
Interface name.
- product: string
-
Product model of the WiFi module.
- mode: string
-
Given WiFi interface mode. Could be one of
"ap"
,"client"
. - capabilities: string[]
-
Indicate current capability that module supports.
-
string ap, client - enable: boolean
-
Enable WiFi Networking.
- ap: object
-
Configuration of WiFi AP mode.
-
- enableBlacklist: boolean
-
Using blacklist or not.
- mode: string bg, bgn, ac
- ssid: string
-
SSID of a WiFi AP.
- channel: integer
- security: object
-
- mode: string none, wpa, wpa2, wpa/wpa2, eap
- encryption: string tkip, aes, tkip/aes
- password: string
-
ASCII passphrase (8 ~ 63) or HEX pre-shared key (64) for WPA-Personal, or password for Radius.
- radiusServerIp: string
- radiusServerPort: integer 1 ≤ x ≤ 65535
- radiusSharedSecret: string
- broadcastSsid: boolean
- shortPreamble: boolean
- beacon: integer
- ip: string
-
IP address.
- netmask: string
-
Subnet mask.
- client: object
-
Configuration of WiFi client mode
-
- enableDhcp: boolean
-
Enable (
true
) the dhcp client or using the static IP (false
). - networks: object[]
-
List of networks for WiFi client to connect.
-
object A WiFi AP configuration.
- priority: integer
-
This field can be used to give higher priority for credentials (and similarly in struct wpa_ssid for network blocks) to change the Interworking automatic networking selection behavior. Default is
0
. - ssid: string
-
SSID of a WiFi AP.
- bssid: string
-
BSSID (MAC) of a WiFi AP.
- security: string none, wep, wpa, wpa2, wpa/wpa2, eap
-
Security of the WiFi AP.
- password: string
-
Password of access point, Could be one of 1. WEP key. Length 5, 13, 16, 29 for ASCII keys or 10, 26, 32, 58 for HEX keys. 2. WPA-PSK key. ASCII passphrase (8 ~ 63) or HEX pre-shared key (64). 3. EAP key. Max length 64
- username: string (up to 64 chars)
-
Username for EAP (Enterprise Access Point).
- ip: string
-
IP address.
""
when not connected. - netmask: string
-
Subnet mask.
""
when not connected. - gateway: string
-
Gateway IP address.
""
when not connected. - dns: string[]
-
A list of DNS IP addresses.
[]
when not connected. -
string - usage: object
-
Data usage.
-
- txkbyte: integer
-
Amount of data transmitted, in Kbytes.
- rxkbyte: integer
-
Amount of data received, in Kbytes.
- checkalive: object
-
Keep-alive configuration.
-
- enable: boolean
-
Enable/disable WiFi connection keep-alive by ping.
- targetHost: string
-
IP address to ping.
- intervalSec: integer
-
Check alive interval.
Example
{
"id": 1,
"name": "wlan0",
"product": "WPEQ-353ACNI",
"capabilities": [
"client",
"ap"
],
"mode": "client",
"enable": true,
"status": true,
"client": {
"enableDhcp": true,
"networks": [
{
"ssid": "test-none",
"security": "none"
},
{
"ssid": "test-wpa",
"security": "wpa",
"password": "12345678",
"priority": 5
},
{
"ssid": "test-eap",
"security": "eap",
"username": "moxa",
"password": "moxa",
"priority": 10
},
{
"ssid": "test-wep",
"security": "wep",
"password": "12345",
"priority": 1
}
],
"signal": 100,
"ip": "111.70.146.125",
"netmask": "255.255.255.252",
"gateway": "111.70.146.126",
"dns": [
"168.95.1.1",
"168.95.192.1"
],
"usage": {
"txkbyte": 40023,
"rxkbyte": 3493
},
"checkalive": {
"enable": true,
"targetHost": "8.8.8.8",
"intervalSec": 60
}
},
"ap": {
"mode": "bg",
"ssid": "moxa-test",
"channel": 11,
"security": {
"mode": "none"
}
}
}
WiFiIfaceBlacklist:
- id: integer
-
Identifier for an WiFi AP blacklist MAC.
- mac: string
-
A MAC address.
- description: string
-
Description of the MAC address.
Example
{
"id": 1,
"mac": "01:23:45:67:89:0a",
"description": "test1"
}
WiFiAP:
- bssid: string
-
BSSID (MAC) of a WiFi AP
- ssid: string
-
SSID of a WiFi AP.
- frequency: string
-
Frequency of a WiFi AP.
- signal: integer
-
Signal of a WiFi AP (in dBm).
- security: integer none, wpa, wpa2, wpa/wpa2, eap
-
Security mode of a WiFi AP (in dBm).
Example
{
"bssid": "string",
"ssid": "string",
"frequency": "string",
"signal": "integer",
"security": "integer"
}