N3uron REST API calls
  • 24 Apr 2024
  • 13 Minutes to read
  • PDF

N3uron REST API calls

  • PDF

Article Summary

How to use this API

In order to execute the desired command, API calls should start with http://<IP_address>:<HTTP_port or https://<IP_address>:<HTTPS_port>, followed by the corresponding request path. <IP_address> must be replaced by the server's IP address and <HTTP_port> and <HTTPS_port> must be replaced by the port assigned to the REST API Server (3003 by default for HTTP requests and 3443 by default for HTTPS requests).

The character '&' should be used to separate each parameter in a GET request.

In a  POST request, the parameters are set as a JSON object in the request body.

Alarm

The Alarm API provides information about the status and monitoring of alarms, and operations that can be made on alarms. 

List alarms

Retrieves the list of alarms in the target node.

GET /alarm?cmd=get&path=<path>&options.filter.path=<path_filter>
  • parameters:
    • path: Path to browse for alarms. (Optional parameter)
    • options:
      • recurrent: Include subgroups. (Optional parameter)
      • filter: Filter parameters include :
        • path: Full alarm path regex filter (Optional parameter)
        • status: Status to filter, from 0 to 3 (0: Cleared and acked, 1: Active and acked 2: Cleared and unacked 3: Active and unacked). (Optional parameter)
        • priority: Minimum priority (1: Low, 2: Medium, 3: High, 4: Critical). (Optional parameter)

Request example:

http://localhost:3003/alarm?cmd=get&path=/000_PLANT/040_ZONE/040_MTR/&options.filter.path=/000_PLANT/040_ZONE/040_MTR/COM.active

Response example:

[
  {
    "path": "/000_PLANT/040_ZONE/040_MTR/COM.active",
    "description": "Zone 04 - Main Meter: Communications Failure",
    "priority": 3,
    "remote": null,
    "online": 1,
    "status": 2,
    "ts": 1686639660000,
    "value": false,
    "format": "%s",
    "type": "boolean",
    "ackInfo": null
  }
]

Get alarm count

Retrieves the number of alarms.

GET /alarm?cmd=count
  • parameters:
    • path: Path to browse for alarms (optional parameter)
    • options:
      • recurrent: Include subgroups.
      • filter: Filter includes parameters:
        • path: Full alarm path regex filter (optional parameter)
        • status: Status to filter, from 0 to 3 (0: Cleared and acked, 1: Active and acked 2: Cleared and unacked 3: Active and unacked) (optional parameter)
        • priority: Minimum priority (1: Low, 2: Medium, 3: High, 4: Critical) (optional parameter)

Request example:

http://localhost:3003/alarm?cmd=count&path=/000_PLANT/040_ZONE/040_MTR/

Response example:

1

Get alarm history

Retrieves historical data of a specific alarm.

GET /alarm?cmd=history&path=<path>&start=<start_date>&end=<end_date>
  • parameters:
    • path: Alarm path (mandatory parameter)
    • start: Start date. Must be an ISO string or a Unix epoch timestamp (mandatory parameter)
    • end: End date. Must be an ISO string or a Unix epoch timestamp (mandatory parameter)
    • options:
      • recurrent: Include subgroups.
      • filter: Filter parameters include:
        • path: Full alarm path regex filter (Optional parameter)
        • status: Status to filter, from 0 to 3 (0: Cleared and acked, 1: Active and acked 2: Cleared and unacked 3: Active and unacked) (Optional parameter)
        • priority: Minimum priority (1: Low, 2: Medium, 3: High, 4: Critical). (Optional parameter)

Request example:

http://localhost:3003/alarm?cmd=history&path=/000_PLANT/040_ZONE/040_MTR/COM.active&start=2023-05-07T00:00Z&end=2023-06-07T00:00

Response example:

{
  "request": {
    "path": "/000_PLANT/040_ZONE/040_MTR/COM.active",
    "start": 1683417600000,
    "end": 1686088800000,
    "options": {
      "recurrent": false,
      "filter": {
        "path": "(((?=(^.*?(?:))).*))",
        "status": null,
        "minPriority": null,
        "maxPriority": null
      }
    }
  },
  "data": []
}

Acknowledge alarm

Acknowledges alarms.

POST /alarm?cmd=ack

  • parameters:
    • paths: Alarm paths. It can be a single alarm, a comma-separated list, or a JSON array (Mandatory parameter)
    • msg: Message to append to this acknowledgement (Optional parameter)

Request example:

http://localhost:3003/alarm?cmd=ack

{
    "paths": "/000_PLANT/040_ZONE/040_MTR/COM.active"
}

Response example:

The response is empty. An HTTP 200 status code indicates a successful request.

Backup

The Backup API provides information about the status of configuration backups, and operations that can be made on backups.

List backups

Retrieves the list of configuration backups in the target node.

GET /backup?cmd=get

Request example:

http://localhost:3003/backup?cmd=get

Response example:

{
  "17_5_2023": {
    "description": "",
    "user": "admin",
    "node": "EDGE01@edge01",
    "ts": "2023-05-17T09:17:55.317Z",
    "versions": {
      "exe": "1.21.4-230221.0833",
      "bootstrap": "1.38.5-230512.0645-beta",
      ...
    }
  },
  "29_03_2023": {
    "description": "",
    "user": "admin",
    "node": "EDGE01@edge01",
    "ts": "2023-03-29T09:26:28.719Z",
    "versions": {
      "exe": "1.21.4-230221.0833",
      "bootstrap": "1.38.4-230221.0859",
      ...
    }
  }
}

Export a backup

Retrieves configuration backup in ZIP format encoded in Base64.

GET /backup?cmd=export&name=<backup_name>

  • parameter:
    • name: Name of the backup file (Mandatory parameter)

Request example:

http://localhost:3003/backup?cmd=export&name=17_5_2023

Response example:

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

Create a backup

Creates a configuration backup of the target node.

POST /backup?cmd=create
  • parameters:
    • path: Name of the backup file (Mandatory parameter)
    • metadata:
      • description: Description of the backup file (Optional parameter)

Request example:

http://localhost:3003/backup?cmd=create

{
    "name": "Test"
}

Response example:

The response is empty. An HTTP 200 status code indicates a successful request.

Rename a backup

Renames a configuration backup.

POST /backup?cmd=rename
  • parameters:
    • name: Name of the backup file (Mandatory parameter)
    • rename: New name of the backup file (Mandatory parameter)

Request example:

http://localhost:3003/backup?cmd=rename
{
    "name": "TestImport",
    "rename": "EDGE01-PV-PROD"
}

Response example:

The response is empty. An HTTP 200 status code indicates a successful request.

Delete a backup

Deletes a configuration backup.

POST /backup?cmd=delete
  • parameters:
    • name: Name of the backup file (Mandatory parameter)

Request example:

http://localhost:3003/backup?cmd=delete
{
    "name": "EDGE01-PV-PROD"
}

Response example:

The response is empty. An HTTP 200 status code indicates a successful request.

Import a backup

Imports a previously exported configuration backup encoded in Base64.

POST /backup?cmd=import
  • parameters:
    • name: Name of the backup file (Mandatory parameter)
    • data: Backup file data, encoded in Base64 (Mandatory parameter)

Request example:

http://localhost:3003/backup?cmd=import
{
    "name": "TestImport",
    "data": "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LTIwMDcwNy4xNTAyIiwKICAgICJNYXJjaGVzaW5pQ2xpZW50IjogIjEuMS4xLTE4MDgwOC4xMzU3IiwKICAgICJNZXR0bGVyVG9sZWRvQ2xpZW50IjogIjEuMi4wLTIwMDQwMS4yMjAxIiwKICAgICJNb2RidXNDbGllbnQiOiAiMS4yMC4wLTIwMDkyNS4wNjUyIiwKICAgICJNb2RidXNHYXRld2F5IjogIjEuNi41LTIwMDUzMS4xMDA5IiwKICAgICJNb2RidXNTZXJ2ZXIiOiAiMS4xLjEtMjAwNzA3LjE1MDAiLAogICAgIk1xdHRDbGllbnQiOiAiMS41LjMtMjAwNzE3LjA5MTUiLAogICAgIk9wY1VhQ2xpZW50IjogIjEuMTIuMi0yMDA5MjIuMDg0OCIsCiAgICAiT3BjVWFTZXJ2ZXIiOiAiMS4xMC4wLTIwMDkwMi4xODM1IiwKICAgICJPcGNYbWxDbGllbnQiOiAiMS4wLjAtMjAwMzIzLjExNTYiLAogICAgIlJlc3RBcGlDbGllbnQiOiAiMS42LjAtMjAxMDIxLjA5NDYiLAogICAgIlJlc3RBcGlTZXJ2ZXIiOiAiMS4zLjAtMjEwNDMwLjEyMjEtYmV0YSIsCiAgICAiU2NyaXB0aW5nIjogIjEuMy4yLTIwMDcwNy4wODI2IiwKICAgICJTaWVtZW5zQ2xpZW50IjogIjEuMy4wLTE5MDkwNi4wODEzIiwKICAgICJTbWFDbGllbnQiOiAiMS4wLjEtMjAwNDAxLjIyMDYiLAogICAgIlNxbENsaWVudCI6ICIxLjIuMC0yMDEwMjEuMTAxMSIsCiAgICAiVWZsRXhwb3J0ZXIiOiAiMS41LjUtMjAwNzIzLjExMDIiLAogICAgIlZkbWFYbWxDbGllbnQiOiAiMS4yLjAtMjAxMDIwLjE2NTIiLAogICAgIldlYlVJIjogIjEuMTUuOC0yMDEwMjYuMTQ0NCIsCiAgICAiV2ViVmlzaW9uIjogIjEuMS4xLTIwMTAxNC4xMzU5IiwKICAgICJYYW50cmV4Q2xpZW50IjogIjEuMi4xLTIwMDQwMS4yMjA4IiwKICAgICJGbGVldE1hbmFnZXJDbGllbnQiOiAiMS4wLjAtMjEwNDE2LjExMDItYmV0YSIKICB9Cn0="
}

Response example:

The response is empty. An HTTP 200 status code indicates a successful request.

Load a backup

Applies a configuration backup to the current node.

POST /backup?cmd=load
  • parameters:
    • name: Name of the backup file (Mandatory parameter)

Request example:

http://localhost:3003/backup?cmd=load
{
    "name": "BackupName"
}

Response example:

{
  "completed": true,
  "completedRollback": false,
  "rollbackSaved": "",
  "rollbackSaveFailed": false,
  "rollbackHasWarnings": false,
  "warnings": [],
  "updatedModules": []
}

Certificate

The Certificate API provides operations and information about the certificates managed by N3uron.

List certificates

Retrieves the list of certificates.

GET /certificate?cmd=get&options.moduleName=<moduleName>&options.type=<type>
  • parameters:
    • options:
      • moduleName: Name of the module. Defaults to bootstrap.
      • type: Type of certificate (links_inbound, links_outbound, inbound, outbound).

Request example:

http://localhost:3003/certificate?cmd=get&options.moduleName=bootstrap&options.type=links_outbound

Request example:

[
  {
    "id": "own/EDGE01__N3uron__LinkOut",
    "sn": "EDGE01:N3uron:LinkOut",
    "c": "US",
    "o": "N3uron Connectivity Systems",
    "dn": "edge01",
    "from": 1686132404000,
    "to": 2316852404000,
    "type": "outbound",
    "status": "own"
  },
  {
    "id": "trusted/AWS_CENTRAL__N3uron__LinkManager[493875AFD372CFFA520BDDA55C77FCE733A5F5E3]",
    "sn": "AWS_CENTRAL:N3uron:LinkManager",
    "c": "US",
    "o": "N3uron Connectivity Systems",
    "dn": "ip-172-31-41-148",
    "from": 1686066957000,
    "to": 2316786957000,
    "type": "outbound",
    "status": "trusted"
  }
]

Export certificate

Retrieves the content of a specific certificate.

GET /certificate?cmd=export&options.type=<type>&options.id=<id>
  • parameters:
    • options:
      • moduleName: Name of the module. Defaults to bootstrap.
      • type: Type of certificate (links_inbound, links_outbound, inbound, outbound). 
      • id: The certificate unique ID

Request example:

http://localhost:3003/certificate?cmd=export&options.type=outbound&options.id=trusted/AWS_CENTRAL__N3uron__LinkManager[493875AFD372CFFA520BDDA55C77FCE733A5F5E3]

Request example:

"LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUZHRENDQkFDZ0F3SUJBZ0lzUVZkVFgwTkZUbFJTUVV3NlRqTjFjbTl1T2t4cGJtdE5ZVzVoWjJWeU9qRTIKT0RZd05qWTVOVGN6Tmprd0RRWUpLb1pJaHZjTkFRRUxCUUF3ZmpFbk1DVUdBMVVFQXhNZVFWZFRYME5GVGxSUwpRVXc2VGpOMWNtOXVPa3hwYm10TllXNWhaMlZ5TVFzd0NRWURWUVFHRXdKVlV6RWtNQ0lHQTFVRUNoTWJUak4xCmNtOXVJRU52Ym01bFkzUnBkbWwwZVNCVGVYTjBaVzF6TVNBd0hnWUtDWkltaVpQeUxHUUJHUk1RYVhBdE1UY3kKTFRNeExUUXhMVEUwT0RBZUZ3MHlNekEyTURZeE5UVTFOVGRhRncwME16QTJNREV4TlRVMU5UZGFNSDR4SnpBbApCZ05WQkFNVEhrRlhVMTlEUlU1VVVrRk1PazR6ZFhKdmJqcE1hVzVyVFdGdVlXZGxjakVMTUFrR0ExVUVCaE1DClZWTXhKREFpQmdOVkJBb1RHMDR6ZFhKdmJpQkRiMjV1WldOMGFYWnBkSGtnVTNsemRHVnRjekVnTUI0R0NnbVMKSm9tVDhpeGtBUmtURUdsd0xURTNNaTB6TVMwME1TMHhORGd3Z2dFaU1BMEdDU3FHU0liM0RRRUJBUVVBQTRJQgpEd0F3Z2dFS0FvSUJBUUNrd2VTalJqNllxSjRMdzdQbFZZNTcwMTNHbDRMRkl0S2pDNUhiSmRHMUFmeVhSRWZ0Cmx4OGU1NXVURGpPbmYveUlxTXBXd3VDZ0M5ZzZwVUFiUU9rZ3lHMVNsS01lOEd4cXRteWdEdlFLZ1NydXFQUmkKb1JrcTF2amQwRnd6SWFKakNLUTJGVG9BaFF5SWsya0l1SGJFY043dXVYVkNvRkhNUnBXNlBuYTJDa3RZS2MwSQp2UkxUenBRcEFQcDRONTlTZVlZaEhtamVzUFdsYVQrQ0MybWdnZ0J5SXFPRy9WZEgwQ2w1L1FzdFZrTEs3M3Z5CjNEQU1MVVN1NklBbVFMNmZ3K0JLMmwySEFwZWdwZ2tWamoydld2ZzlVMDFuNnlLdGJWMGhBbnU2T3kveU9jb1kKbTNqUEIxYklCWWw3L1htNWFLS011YVlQbERxbWtHU20xOFhCQWdNQkFBR2pnZ0YwTUlJQmNEQUpCZ05WSFJNRQpBakFBTUFzR0ExVWREd1FFQXdJQzlEQWRCZ05WSFNVRUZqQVVCZ2dyQmdFRkJRY0RBUVlJS3dZQkJRVUhBd2d3CkVRWUpZSVpJQVliNFFnRUJCQVFEQWdaQU1DMEdBMVVkRVFRbU1DU0dJblZ5YmpwQlYxTmZRMFZPVkZKQlREcE8KTTNWeWIyNDZUR2x1YTAxaGJtRm5aWEl3SFFZRFZSME9CQllFRk5mMFBRWXJZVWZzekZHeHBJanREMFhqK000SgpNSUhWQmdOVkhTTUVnYzB3Z2NxQUZOZjBQUVlyWVVmc3pGR3hwSWp0RDBYaitNNEpvWUdEcElHQU1INHhKekFsCkJnTlZCQU1USGtGWFUxOURSVTVVVWtGTU9rNHpkWEp2YmpwTWFXNXJUV0Z1WVdkbGNqRUxNQWtHQTFVRUJoTUMKVlZNeEpEQWlCZ05WQkFvVEcwNHpkWEp2YmlCRGIyNXVaV04wYVhacGRIa2dVM2x6ZEdWdGN6RWdNQjRHQ2dtUwpKb21UOGl4a0FSa1RFR2x3TFRFM01pMHpNUzAwTVMweE5EaUNMRUZYVTE5RFJVNVVVa0ZNT2s0emRYSnZianBNCmFXNXJUV0Z1WVdkbGNqb3hOamcyTURZMk9UVTNNelk1TUEwR0NTcUdTSWIzRFFFQkN3VUFBNElCQVFCWmFoVjgKUTJ3NVhydEt4eFVGTndsUWRDNER5STNRQ3U2dlF2ZmlnOUZPN3ZOTXgzaEY2UUY1OHFxdlFxdzl2eUxET1lWdQpKd2YyZ1dBeWdNZWdZUml5VXNQQWtjWXdpa2h4VzRPS1IrTkdoV1dNUitpSldEc2ZuTU9xWjJXMWlGSjIzdFJLCnRmY1JFWVV4RElkb3k1RlRUWFNGT2E5WUUycDUvUWh4WTBteFI2V3hPSGE1Lzl4NEF5b0lSeWtDWHl6TTJLZnIKQy9GbDcxRkVyRG5HQlRKeVUxdjZnRXkxQmVXZjdzTTlOVWNLK01IL0FnUEE2SW4ycDN5NWFZR0I1ZlBhd29ybgpSQW1ScHdWbUp2eWFSMGRYVkNZcGpBdXhwVTVnS3pEQ002V1dycGkzVVNxTFBZeTVwT0RkRWlxWmxYZmVidjUzCjRBa3JRdWNJeGUwTm81d3MKLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQo="

Set certificate

Modifies a certificate from N3uron.

POST /certificate?cmd=set
  • parameters:
    • options:
      • moduleName: Name of the module. Defaults to bootstrap.
      • type: Type of certificate (links_inbound, links_outbound, inbound, outbound). 
      • id: The certificate's unique ID.
      • action: Action to apply to the certificate (trust, untrust)

Request example:

http://localhost:3003/certificate?cmd=set

{
    "options": {
        "type": "outbound",
        "id": "pending/NODE_001__N3uron__LinkManager[3A585E14D732ACE06DFAB2F7E34ED385DC78741D]",
        "action": "trust"
    }
}

Response example:
The response is empty. An HTTP 200 status code indicates a successful request.

Remove certificate

Removes a certificate from N3uron.

POST /certificate?cmd=remove
  • parameters:
    • options:
      • moduleName: Name of the module. Defaults to bootstrap.
      • type: Type of certificate (links_inbound, links_outbound, inbound, outbound). 
      • id: The certificate's unique ID.

Request example:

http://localhost:3003/certificate?cmd=remove
{
    "options": {
        "type": "outbound",
        "id": "pending/GATEWAY01__N3uron__LinkManager[0FC9F102C7B9E3688B5EEFD3209CEEBCFBD2A830]",
        "action": "trust"
    }
}

Response example:

The response is empty. An HTTP 200 status code indicates a successful request.

Module

The Module API provides information about the status and monitoring of each module and operations that can be made on modules.

Get module details

Retrieves full details of instanced modules.

GET /module?cmd=details

Request example:

http://localhost:3003/module?cmd=details

Response example:

{
  "ts": "2023-06-07T09:38:25.210Z",
  "running": true,
  "uptime": "307052.11s",
  "pid": 5904,
  "memoryUsage": {
    "rss": "43.16Mb",
    "heapTotal": "26.48Mb",
    "heapUsed": "19.71Mb",
    "external": "8.51Mb",
    "arrayBuffers": "7.03Mb"
  },
  "modules": {
    "WebUI": {
      "config": {
        "type": "WebUI",
        "required": false,
        "start": {
          "enabled": true,
          "delay": 0
        },
        "monitor": {
          "enabled": true,
          "delay": 5000
        }
      },
      "license": {
        "acquired": true,
        "period": 0,
        "mode": "production",
        "tagAccess": "remote"
      },
      "running": true,
      "mode": null,
      "lastStart": "2023-06-06T11:25:59.894Z",
      "lastStop": "2023-06-06T11:25:57.501Z",
      "pid": 20340,
      "api": {
        "online": true,
        "info": {
          "type": "WebUI",
          "category": [],
          "version": "1.16.5",
          "releaseType": "beta",
          "fileversion": "1.16.5-230531.0734-beta",
          "requisites": {
            "bootstrapVersion": {
              "min": "1.38.0"
            },
            "exeVersion": {
              "min": "1.21.0"
            }
          },
          "name": "WebUI"
        },
        "stats": {
          "tx": {
            "ok": 678,
            "error": 0
          },
          "rx": {
            "ok": 643,
            "error": 0
          }
        }
      }
    }
  }
}


List installed modules

Retrieves the list of installed modules.

GET /module?cmd=getInstalled

Request example:

http://localhost:3003/module?cmd=getInstalled

Response example:

[
  "AbbVipClient",
  "AcquisuiteXmlCollector",
  "AuditTrail",
  "AuroraClient",
  "BacnetClient",
  "CaisoAdsClient",
  "CustomClient",
  "DataDiode",
  "DataExporter",
  "DataImporter",
  "DerivedTags",
  "DnpClient",
  "DnpServer",
  ...
]

List module instances

Retrieves a list of instanced modules in the target node.

GET /module?cmd=getInstances

  • parameters:
    • filter: Module names. It can be a single filter, a comma-separated list, or a JSON array (Optional parameter)

Request example:

http://localhost:3003/module?cmd=getInstances

Response example:

[
  "Historian",
  "OpcUaClient",
  "RestApiServer",
  "WebUI"
]

List module configurations

Retrieves a list of configuration files for every type of module.

GET /module?cmd=getConfigList&moduleType=<module_type>

  • parameters:
    • moduleType: Module type (Optional parameter)

Request example:

http://localhost:3003/module?cmd=getConfigList&moduleType=Historian

Response example:

{
  "default": {
    "text": "Config",
    "icon": "database fa-regular"
  },
  "logger": {
    "text": "Logger",
    "icon": "book fa-regular"
  }
}

Check configuration exists

Indicates whether or not the configuration files for a specific module instance exist.

GET /module?cmd=getConfigPresent&moduleName=<module_name>
  • parameters:
    • moduleName: Module instance name (Optional parameter)

Request example:

http://localhost:3003/module?cmd=getConfigPresent&moduleName=Historian

Response example:

{
  "default": true,
  "logger": true
}

Get module configuration

Retrieves configuration file content for a specific module instance.

GET /module?cmd=getConfigData&moduleName=<module_name>&configName=<config_name>

  • parameters:
    • moduleName: Module instance name (Optional parameter)
    • configName: Configuration name (Mandatory parameter)

Request example:

http://localhost:3003/module?cmd=getConfigData&moduleName=OpcUaClient&configName=default

Response example:

"{\"version\":{\"main\":1,\"editor\":2},\"result\":[\"Object\",{\"DataSim\":[\"Object\",{\"enabled\":[\"Boolean\",true],\"addItemRate\":[\"Number\",5000],\"addItemRateDelay\":[\"Number\",0],\"overrideTs\":[\"Boolean\",false],\"connection\":[\"Object\",{\"endpointUrl\":[\"String\",\"opc.tcp://89.117.59.81:4840\"],\"endpointMustExist\":[\"Boolean\",false],\"securityMode\":[\"String\",\"NONE\"],\"securityPolicy\":[\"String\",\"None\"],\"requestedSessionTimeout\":[\"Number\",3600000],\"reconnectionDelay\":[\"Number\",5000]}],\"auth\":[\"Object\",{\"enabled\":[\"Boolean\",true],\"user\":[\"String\",\"sunn3rgy\"],\"password\":[\"SecuredString\",\"Z4/rlgqL6bHsb/2J1VHkIkKLpejOXGnvWvadb8euXutzlaH6Rpi9zClDEXvW4qleLHVlW+1ldXru/4rrq+5FU0iqGRqPd0f+iknwli4k\"]}],\"subscription\":[\"Object\",{\"requestedPublishingInterval\":[\"Number\",1000],\"requestedLifetimeCount\":[\"Number\",60],\"requestedMaxKeepAliveCount\":[\"Number\",10],\"maxNotificationsPerPublish\":[\"Number\",10000],\"priority\":0}]}]}],\"editor\":{\"extends\":{\"module\":null},\"modified\":1684388224829,\"library\":{}}}"

Start module

Starts a specific module.

POST /module?cmd=start
  • parameters:
    • moduleName: Module instance name (Mandatory parameter)

Request example:

http://localhost:3003/module?cmd=start
{
    "moduleName": "Historian"
}

Response example:

The response is empty. An HTTP 200 status code indicates a successful request.

Stop module

Stops a module.

POST /module?cmd=stop
  • parameters:
    • moduleName: Module instance name (Mandatory parameter)

Request example:

http://localhost:3003/module?cmd=stop

{
    "moduleName": "Historian"
}

Response example:

The response is empty. An HTTP 200 status code indicates a successful request.

Restart module

Restarts a module.

POST /module?cmd=restart

  • parameters:
    • moduleName: Module instance name (Mandatory parameter)

Request example:

http://localhost:3003/module?cmd=restart

{
    "moduleName": "Historian"
}

Response example:

The response is empty. An HTTP 200 status code indicates a successful request.

Set module configuration

Sets a configuration file for a specific module instance.

POST /module?cmd=setConfigData
  • parameters:
    • moduleName: Module instance name (Mandatory parameter)
    • configName: Configuration name (for example logger, API, users, tags, views, links, etc.) (Mandatory parameter)
    • data: Configuration file in JSON format (Mandatory parameter)
    • options:
      • restart: Restart the module after saving the new configuration (Optional parameter)
      • deleteData: Only applicable to the module configuration files. List of deleted module instances to clean their data. It can be a single instance, a comma-separated list, or a JSON array (Optional parameter).

Request example:

http://localhost:3003/module?cmd=setConfigData
{
    "moduleName": "Historian",
    "configName": "logger",
    "data": "{\"version\":{\"main\":1,\"editor\":1},\"result\":[\"Object\",{\"console\":[\"Object\",{\"enabled\":true,\"level\":\"debug\"}],\"file\":[\"Object\",{\"enabled\":[\"Boolean\",true],\"level\":[\"String\",\"info\"],\"days\":[\"Number\",7]}]}],\"editor\":{\"extends\":{\"module\":null},\"modified\":1582974868907}}"
}

Response example:

The response is empty. An HTTP 200 status code indicates a successful request.

The Link API provides operations and information about the status of the links in the target node.

List links

Retrieves current links.

GET /link?cmd=get

Request example:

http://localhost:3003/link?cmd=get

Response example:

{
  "nodeInfo": {
    "name": "PROD-PV-01"
  },
  "links": {
    "CENTRAL": {
      "name": "CENTRAL",
      "type": "out",
      "online": true,
      "local": {
        "subscription": "",
        "gzip": true,
        "view": {
          "name": "",
          "ro": false,
          "ae": true,
          "ack": true
        },
        "sf": {
          "enabled": true,
          "paused": false
        },
        "tagCount": 1
      },
      "remote": {
        "subscription": "/",
        "view": {
          "name": "",
          "ro": false,
          "ae": true,
          "ack": true
        },
        "sf": {
          "enabled": true,
          "paused": false
        },
        "tagCount": 0,
        "endpoint": "3.3.3.3:3001"
      }
    }
  }
}

License

The License API provides operations and information about the status of licenses in the target node.

Get node UID

Retrieves current node UID.

GET /license?cmd=getUid

Request example:

http://localhost:3003/license?cmd=getUid

Response example:

{
  "host": "edge01",
  "uid": "3cbd33383ef80d7faff3bf0be1262c9f"
}

List licenses

Retrieves a list of licenses of this node.

GET /license?cmd=get

Request example:

http://localhost:3003/license?cmd=get

Response example:

[
  {
    "path": "C:\\Program Files\\N3uron\\licenses\\edge01-20230316.163525.n3l",
    "name": "edge01-20230316.163525.n3l",
    "error": "",
    "id": "cfedfefa70c4cf0067ac64192592f8d539d9b24bea3eb45d8db5020b33884fa6",
    "host": "edge01",
    "uid": "3cbd33383ef80d7faff3bf0be1262c9f",
    "unlicensed": false,
    "nonce": 1678976521343,
    "licenses": [
      {
        "version": "1.1",
        "host": "edge01",
        "uid": "3cbd33383ef80d7faff3bf0be1262c9f",
        "expires": "2023-04-16T23:59:59.000Z",
        "type": "production",
        "supportExpires": 1681689599000,
        "nonce": 1678976521343,
        "id": "cfedfefa70c4cf0067ac64192592f8d539d9b24bea3eb45d8db5020b33884fa6",
        "modules": [
          {
            "type": "Historian",
            "tagAccess": "local",
            "count": 1,
            "used": 0
          },
          {
            "type": "SnmpClient",
            "tagAccess": "local",
            "count": 1,
            "used": 0
          }
        ],
        "error": "Invalid license: Expired"
      }
    ]
  }
]

Get license details

Retrieves details of a specific license.

GET /license?cmd=read&name=<license_name>
  • parameters:
    • name: Name of the license file (Mandatory parameter)

Request example:

http://localhost:3003/license?cmd=read&name=edge01-20230316.163525.n3l

Response example:

"{\"version\":\"1\",\"created\":\"2023-03-16T14:22:01.991Z\",\"signature\":\"20027e37c184cb21420bddb6e8ca5a893a982837f22351fe697bf521635c75f62d1e85b04527d9a21ede3cdbb8beb35f8341ee1e8b5e108d97601bfbdd4e8332dffd353e20f72ebca8605559387337ef17cc6c2b6abf95290d9d2b661bc82b43394cfdfca2de8fd4c9a866d8478bf74df8f1fdcf763ac3b0dea80636691d953f1a2ed448195a5b1128b98b92cca50db5e9ab70027eb534aabaa19d0a2ec2c900eccbe01455986e900706acb56645005c3c55f8b6be4028284d5a1e41a0410c5584a6669467c3045aac8950b0f6018efd72eaeeedb6febc631ea67a844989dc2472d712f4fba8e346afdbd3f635b20c3e839a5fdf90518973615dc58afd64e82d\",\"licenses\":[{\"version\":\"1.1\",\"host\":\"edge01\",\"uid\":\"3cbd33383ef80d7faff3bf0be1262c9f\",\"expires\":\"2023-04-16T23:59:59.000Z\",\"type\":\"production\",\"supportExpires\":\"2023-04-16T23:59:59.000Z\",\"nonce\":1678976521343,\"id\":\"cfedfefa70c4cf0067ac64192592f8d539d9b24bea3eb45d8db5020b33884fa6\",\"modules\":[{\"type\":\"AcquisuiteXmlCollector\",\"tagAccess\":\"local\",\"count\":1},{\"type\":\"AuroraClient\",\"tagAccess\":\"local\",\"count\":1},{\"type\":\"CustomClient\",\"tagAccess\":\"local\",\"count\":1},{\"type\":\"DataDiode\",\"tagAccess\":\"local\",\"count\":1},{\"type\":\"DataExporter\",\"tagAccess\":\"local\",\"count\":1},{\"type\":\"DataImporter\",\"tagAccess\":\"local\",\"count\":1},{\"type\":\"DerivedTags\",\"tagAccess\":\"local\",\"count\":1},{\"type\":\"DnpClient\",\"tagAccess\":\"local\",\"count\":1},{\"type\":\"DnpServer\",\"tagAccess\":\"local\",\"count\":1},{\"type\":\"DominoClient\",\"tagAccess\":\"local\",\"count\":1},{\"type\":\"Historian\",\"tagAccess\":\"local\",\"count\":1},{\"type\":\"Iec102Client\",\"tagAccess\":\"local\",\"count\":1},{\"type\":\"LinkedTags\",\"tagAccess\":\"local\",\"count\":1},{\"type\":\"MettlerToledoClient\",\"tagAccess\":\"local\",\"count\":1},{\"type\":\"ModbusClient\",\"tagAccess\":\"local\",\"count\":1},{\"type\":\"ModbusServer\",\"tagAccess\":\"local\",\"count\":1},{\"type\":\"MqttClient\",\"tagAccess\":\"local\",\"count\":1},{\"type\":\"OpcDaClient\",\"tagAccess\":\"local\",\"count\":1},{\"type\":\"OpcUaClient\",\"tagAccess\":\"local\",\"count\":1},{\"type\":\"OpcUaServer\",\"tagAccess\":\"local\",\"count\":1},{\"type\":\"OpcXmlClient\",\"tagAccess\":\"local\",\"count\":1},{\"type\":\"RestApiClient\",\"tagAccess\":\"local\",\"count\":1},{\"type\":\"RestApiServer\",\"tagAccess\":\"local\",\"count\":1},{\"type\":\"Scripting\",\"tagAccess\":\"local\",\"count\":1},{\"type\":\"SiemensClient\",\"tagAccess\":\"local\",\"count\":1},{\"type\":\"SmaClient\",\"tagAccess\":\"local\",\"count\":1},{\"type\":\"SqlClient\",\"tagAccess\":\"local\",\"count\":1},{\"type\":\"UflExporter\",\"tagAccess\":\"local\",\"count\":1},{\"type\":\"VdmaXmlClient\",\"tagAccess\":\"local\",\"count\":1},{\"type\":\"WebVision\",\"tagAccess\":\"local\",\"count\":1},{\"type\":\"XantrexClient\",\"tagAccess\":\"local\",\"count\":1},{\"type\":\"CaisoAdsClient\",\"tagAccess\":\"local\",\"count\":1},{\"type\":\"Notifier\",\"tagAccess\":\"local\",\"count\":1},{\"type\":\"AbbVipClient\",\"tagAccess\":\"local\",\"count\":1},{\"type\":\"FarellClient\",\"tagAccess\":\"local\",\"count\":1},{\"type\":\"RedundancyAgent\",\"tagAccess\":\"local\",\"count\":1},{\"type\":\"SparkplugClient\",\"tagAccess\":\"local\",\"count\":1},{\"type\":\"SolarmaxClient\",\"tagAccess\":\"local\",\"count\":1},{\"type\":\"AuditTrail\",\"tagAccess\":\"local\",\"count\":1},{\"type\":\"BacnetClient\",\"tagAccess\":\"local\",\"count\":1},{\"type\":\"SnmpClient\",\"tagAccess\":\"local\",\"count\":1}]}]}"

Add license 

Adds a license to the target node.

POST /license?cmd=add
  •  parameters:
    • data: Data of the license file in JSON format (Mandatory parameter)

Request example:

http://localhost:3003/license?cmd=add

{
    "data": "{\"version\":\"1\",\"created\":\"2021-01-05T14:43:16.652Z\",\"signature\":\"5ce1ff1b7a9f911b49f653aa291bd375d8b2c53a0d57b0958ffe5f2341d572e6d4afe9214a187fb84175ec51623c339d41257e8094dcdc74105a21478a8758432912537fc40b12a3f4c644a134844289c1c63ef7a4f6a9277d064f9d6f58863fa5116a3874d1092a17453b179ae8a448b548335368afd6da13c3715991e7cff487fccb5c364caf1792095c75cc4673523b423fe8029a7d9b5101bec65fa105467ffe59bcdbfb5f372749de86fc113f5e54f87507be93df7bbd00f6deec2e5974b8cc7448da0f5fd934267d49c77e604b7c9193fcf9bd5ee5da2eac26a4c45f2bf6373373027723211d9adeec27917d50ca8def6b6f247bf8f1d687bc59361207\",\"licenses\":[{\"host\":\"N3-Development\",\"uid\":\"*\",\"expires\":\"2022-01-01T00:00:00Z\",\"type\":\"production\",\"modules\":[{\"type\":\"AcquisuiteXmlCollector\",\"tagAccess\":\"local\",\"count\":1},{\"type\":\"AuroraClient\",\"tagAccess\":\"local\",\"count\":1},{\"type\":\"CustomClient\",\"tagAccess\":\"local\",\"count\":1},{\"type\":\"DataDiode\",\"tagAccess\":\"remote\",\"count\":1},{\"type\":\"DataExporter\",\"tagAccess\":\"remote\",\"count\":1},{\"type\":\"DataImporter\",\"tagAccess\":\"local\",\"count\":1},{\"type\":\"DbInjector\",\"tagAccess\":\"remote\",\"count\":1},{\"type\":\"DerivedTags\",\"tagAccess\":\"remote\",\"count\":1},{\"type\":\"DnpClient\",\"tagAccess\":\"local\",\"count\":1},{\"type\":\"DnpServer\",\"tagAccess\":\"remote\",\"count\":1},{\"type\":\"DominoClient\",\"tagAccess\":\"local\",\"count\":1},{\"type\":\"FleetManagerClient\",\"tagAccess\":\"local\",\"count\":1},{\"type\":\"Historian\",\"tagAccess\":\"remote\",\"count\":1},{\"type\":\"Iec102Client\",\"tagAccess\":\"local\",\"count\":1},{\"type\":\"LaetusWtClient\",\"tagAccess\":\"local\",\"count\":1},{\"type\":\"LinkedTags\",\"tagAccess\":\"remote\",\"count\":1},{\"type\":\"MarchesiniClient\",\"tagAccess\":\"local\",\"count\":1},{\"type\":\"MettlerToledoClient\",\"tagAccess\":\"local\",\"count\":1},{\"type\":\"ModbusClient\",\"tagAccess\":\"local\",\"count\":1},{\"type\":\"ModbusGateway\",\"tagAccess\":\"local\",\"count\":1},{\"type\":\"ModbusServer\",\"tagAccess\":\"remote\",\"count\":1},{\"type\":\"MqttClient\",\"tagAccess\":\"remote\",\"count\":1},{\"type\":\"OpcDaClient\",\"tagAccess\":\"local\",\"count\":1},{\"type\":\"OpcUaClient\",\"tagAccess\":\"local\",\"count\":1},{\"type\":\"OpcUaServer\",\"tagAccess\":\"remote\",\"count\":1},{\"type\":\"OpcXmlClient\",\"tagAccess\":\"local\",\"count\":1},{\"type\":\"RestApiClient\",\"tagAccess\":\"remote\",\"count\":1},{\"type\":\"RestApiServer\",\"tagAccess\":\"remote\",\"count\":1},{\"type\":\"Scripting\",\"tagAccess\":\"remote\",\"count\":1},{\"type\":\"SiemensClient\",\"tagAccess\":\"local\",\"count\":1},{\"type\":\"SmaClient\",\"tagAccess\":\"local\",\"count\":1},{\"type\":\"SqlClient\",\"tagAccess\":\"remote\",\"count\":1},{\"type\":\"UflExporter\",\"tagAccess\":\"remote\",\"count\":1},{\"type\":\"WebVision\",\"tagAccess\":\"remote\",\"count\":1},{\"type\":\"XantrexClient\",\"tagAccess\":\"local\",\"count\":1}]}]}"
}

Response example:

The response is empty. An HTTP 200 status code indicates a successful request.

Delete license

Deletes a license in the target node.

POST /license?cmd=remove
  • parameters:
    • name: Name of the license file (Mandatory parameter)

Request example:

http://localhost:3003/license?cmd=remove
{
    "name": "edge01-20230607.095435.n3l"
}

Response example:

The response is empty. An HTTP 200 status code indicates a successful request.

Redundancy

The Redundancy API provides information about the status of the redundancy mode.

Get redundancy status

Retrieves information regarding the status of the redundancy mode.

GET /redundancy?cmd=status

Request example:

http://localhost:3003/redundancy?cmd=status

Response example:

{
  "enabled": false,
  "standby": false,
  "mode": "primary"
}

System

The System API provides operations and information about the status and monitoring of the target node.

Get system status

Retrieves information regarding the status of the host system, current hardware, hostname, uptime, etc.

GET /system?cmd=status

Request example:

http://localhost:3003/system?cmd=status

Response example:

{
  "n3": {
    "pid": 5904,
    "up": 314775983,
    "versions": [
      "1.21.5-230529.1438",
      "1.39.0-230529.1135-beta"
    ],
    "node": "EDGE01",
    "tags": {
      "total": 1,
      "local": 1,
      "remote": 0
    },
    "errors": []
  },
  "sys": {
    "standby": false,
    "hostname": "edge01",
    "ts": 1686138429061,
    "up": 314788000,
    "cpu": [
      "12th Gen Intel(R) Core(TM) i7-1260P",
      2496,
      16
    ],
    "usage": {
      "cpu": [
        253,
        10000
      ],
      "ram": [
        9040551936,
        16882249728
      ],
      "disk": [
        185310793728,
        511218061312
      ]
    }
  }
}


Get error count

Retrieves the number of errors in the current node. If there are no errors, 0 is returned, otherwise, it returns the number of errors (these can be caused by invalid tag configuration, invalid link configuration, etc...). 

GET /system?cmd=errorCount

Request example:

http://localhost:3003/system?cmd=errorCount

Response example:

0

Restart service

Restarts the N3uron service.

POST /system?cmd=restartService

Request example:

http://localhost:3003/system?cmd=restartService

Response example:

The response is empty. An HTTP 200 status code indicates a successful request.

Tag

The Tag API provides read-and-write operations and information about the status and monitoring of tags in the target node.

List tags

Retrieves a list of tags present in the defined path.

GET /tag?cmd=browse&path=<path>
  • parameters:
    • path: Path to browse for tags (Optional parameter)
    • options:
      • filter: Full tag path regex (Optional parameter)
      • flat: Receive an array instead of an object (Optional parameter)
      • recurrent: Include subgroups (Optional parameter)
      • hideTags: Do not receive tags (Optional parameter)
      • hideGroupsDo not receive groups (Optional parameter)

Request example:

http://localhost:3003/tag?cmd=browse&path=/SUNN3RGY/BLUELAKE/PVG001/&options.filter=POWER*

Response example:

{
  "groups": {
    "INV001": {},
    "INV002": {},
    "WST001": {},
    "KPI": {}
  }
}

Read tag

Retrieves values of tags present in the defined path.

GET /tag?cmd=read&path=<path>

  • parameters:
    • path: Path to read tag (Optional parameter)
    • options:
      • filter: Path to read tags. Entire groups can read using a wildcard * (Optional parameter)
      • recurrent: Include subgroups (Optional parameter)

Request example:

http://localhost:3003/tag?cmd=read&path=/SUNN3RGY/BLUELAKE/PVG001/PST001/INV001/*

Response example:

{
  "tags": {
    "PERFORMANCE_RATIO": {
      "status": {
        "value": 1,
        "ts": 1693558129319
      },
      "data": {
        "value": 1.3232478329655442,
        "quality": 192,
        "ts": 1694002805012
      }
    },
    "POA_IRRADIANCE_5MIN_AVG": {
      "status": {
        "value": 1,
        "ts": 1693558129319
      },
      "data": {
        "value": 655.7069053519514,
        "quality": 192,
        "ts": 1694002805011
      }
    }
  }
}

Get tag details

Retrieves full details of tags present in the defined path.

GET /tag?cmd=details&path=<path>
  • parameters:
    • path: Path to read tag (Mandatory parameter)
    • options:
      • filter: Path to read tags. Entire groups can read using a wildcard * (Optional parameter)
      • recurrent: Include subgroups (Optional parameter)

Request example:

http://localhost:3003/tag?cmd=details&path=/SUNN3RGY/BLUELAKE/PVG001/PST001/*&options.recurrent=true

Response example:

{
  "description": "",
  "_templates": ["Derived PVInverter"],
  "tags": {
    "ACTIVE_POWER": {
      "id": 44,
      "fullPath": "/SUNN3RGY/BLUELAKE/PVG001/PST001/INV001/ACTIVE_POWER",
      "remote": null,
      "status": {
        "value": 1,
        "ts": 1687688676853
      },
      "data": {
        "value": 280.6139831542969,
        "quality": 192,
        "ts": 1687763588626
      },
      "config": {
        "description": "Active Power",
        "type": "number",
        "format": "%.1f",
        "deadband": "0.0u",
        "clientAccess": "R",
        "engUnits": "kW",
        "default": null,
        "simulation": {
          "enabled": false
        },
        "persistency": 0,
        "views": [],
        "security": {},
        "extensions": {
          "scaling": {
            "enabled": false,
            "raw": [0, 1000],
            "eu": [0, 1000],
            "clamp": [false, false]
          },
          "source": {
            "enabled": true,
            "type": "DerivedTags",
            "module": "DerivedTags",
            "config": {
              "mode": "alias",
              "options": {
                "source": "/Plant/A0_IC0H/Meter INV01/Power AC"
              }
            }
          },
          "history": {
            "enabled": true,
            "module": "Historian, CENTRAL/Historian",
            "config": {
              "mode": "change",
              "deadband": "0.0u",
              "rangeY": [0, 600],
              "interpolation": "linear",
              "defaultMethod": "avg",
              "rate": [0, 0]
            }
          },
          "ae": {
            "alarms": {}
          }
        }
      }
    }
  }
}

Get tag history

Retrieves historical data of a specific tag.

GET /tag?cmd=history&path=<path>&start=<start_date>&end=<end_date>
  • parameters:
    • path: Tag path. (Mandatory parameter)
    • start: Start date. Must be an ISO string or a Unix epoch timestamp (Mandatory parameter)
    • end: End date. Must be an ISO string or a Unix epoch timestamp (Mandatory parameter)
    • options:
      • mode: Historical data modes. Can be raw, filter, delta or aggregated. default setting: delta (Optional parameter)
      • method: Aggregation method when using aggregated mode. Can be first, last, min, max. and avg. Set to an empty value to get default method in the tag configuration (Optional parameter)
      • interval: Aggregation interval when using aggregated mode, in milliseconds (Optional parameter)
      • deadband: deadband when using filter or delta mode (Optional parameter)
      • invalidAsNull: Convert non-good quality values to null when using raw mode. (Optional parameter, by default it's enabled).
      • limit: Maximum number of samples to return when using raw mode. (Optional parameter).

Request example:

http://localhost:3003/tag?cmd=history&path=/SUNN3RGY/BLUELAKE/PVG001/PST001/INV001/ACTIVE_POWER&start=1685365215&end=2023-05-29T15:10:51.174Z

Response example:

{
  "request": {
    "tag": "/SUNN3RGY/BLUELAKE/PVG001/PST001/INV001/ACTIVE_POWER",
    "start": 1685365215,
    "end": 1685373051174,
    "options": {
      "mode": "delta",
      "method": null,
      "interval": null,
      "deadband": null,
      "invalidAsNull": true,
      "limit": null
    },
    "data": null
  },
  "data": [
    [
      1685365215,
      null,
      0,
      3
    ]
  ]
}

Get history for many tags

Retrieves historical data of tags.

GET /tag?cmd=historyMany&paths=<path>&start=<start_date>&end=<end_date>
  • parameters:
    • paths: Tag path list. It can be a single tag, a comma-separated list, or a JSON array (Mandatory parameter)
    • start: Start date. Must be an ISO string or a Unix epoch timestamp (Mandatory parameter)
    • end: End date. Must be an ISO string or a Unix epoch timestamp (Mandatory parameter)
    • options:
      • mode: Historical data modes. Can be raw, filter, delta, or aggregated. default setting: delta (Optional parameter)
      • method: Aggregation method when using aggregated mode. Can be first, last, min, max, and avg. Set to an empty value to get the default method in the tag configuration (Optional parameter)
      • interval: Aggregation interval when using aggregated mode, in milliseconds (Optional parameter)
      • deadband: Deadband when using filter or delta mode (Optional parameter)
      • invalidAsNull: Convert non-good quality values to null when using raw mode. (Optional parameter, by default it's enabled).
      • limit: Maximum number of samples to return when using raw mode. (Optional parameter).

Request example:

http://localhost:3003/tag?cmd=historyMany&paths=/SUNN3RGY/BLUELAKE/PVG001/PST001/INV001/ACTIVE_POWER,/SUNN3RGY/BLUELAKE/PVG001/PST001/INV001/VOLTAGE&start=1619707394591&end=2021-04-29T15:10:51.174Z

Response example:

{
    "/SUNN3RGY/BLUELAKE/PVG001/PST001/INV001/ACTIVE_POWER": {
      "request": {
        "tag": "/SUNN3RGY/BLUELAKE/PVG001/PST001/INV001/ACTIVE_POWER",
        "start": 1619707394591,
        "end": 1619709051174,
        "options": {
          "mode": "delta",
          "method": null,
          "interval": null,
          "deadband": null,
          "invalidAsNull": true,
          "limit": null
        },
        "data": null
      },
      "data": [
        [
          1619707394591,
          null,
          0,
          3
        ]
      ]
    }
  }

Get tag filtered history

Retrieves historical data of tags (with regex filter).

GET /tag?cmd=historyFilter&path=<path>&start=<start_date>&end=<end_date>&options.filter=<tag_path>
  • parameters:
    • paths: Tag path list. It can be a single tag, a comma-separated list, or a JSON array (Mandatory parameter)
    • start: Start date. Must be an ISO string or a Unix epoch timestamp (Mandatory parameter)
    • end: End date. Must be an ISO string or a Unix epoch timestamp (Mandatory parameter)
    • options:
      • filter: Full tag path Regex filter (Optional parameter)
      • recurrent: Include subgroups (Optional parameter)
      • mode: Historical data modes. Can be raw, filter, delta or aggregated. default setting: delta (Optional parameter)
      • method: Aggregation method when using aggregated mode. Can be first, last, min, max and avg. Set to an empty value to get the default method in the tag configuration (Optional parameter)
      • interval: Aggregation interval when using aggregated mode, in milliseconds (Optional parameter)
      • deadband: Deadband when using filter or delta mode (Optional parameter)
      • invalidAsNull: Convert non-good quality values to null when using raw mode. (Optional parameter, by default it's enabled).
      • limit: Maximum number of samples to return when using raw mode. (Optional parameter).

Request example:

http://localhost:3003/tag?cmd=historyFilter&path=/SUNN3RGY/BLUELAKE/PVG001/PST001/INV001/&start=1619707394591&end=2021-04-29T15:10:51.174Z&options.filter=POWER

Response example:

{
  "/SUNN3RGY/BLUELAKE/PVG001/PST001/INV001/ACTIVE_POWER": {
    "request": {
      "tag": "/SUNN3RGY/BLUELAKE/PVG001/PST001/INV001/ACTIVE_POWER",
      "start": 1619707394591,
      "end": 1619709051174,
      "options": {
        "recurrent": false,
        "mode": "delta",
        "method": null,
        "interval": null,
        "deadband": null,
        "invalidAsNull": true,
        "limit": null
      },
      "data": null
    },
    "data": [[1619707394591, null, 0, 3]]
  }
}

Get tag views

Retrieves tag views.

GET /tag?cmd=getViews

Request example:

http://localhost:3003/tag?cmd=getViews

Response example:

[
  "ExampleView"
]

Write tag

Writes a specific tag value.

POST /tag?cmd=write
  • parameters
    • path: Tag path (Mandatory parameter)
    • value: Value to write. The type must be the same as the configuration (number, Boolean or string) (Mandatory parameter)

Request example:

http://localhost:3003/tag?cmd=write
{
"path": "/ExampleTag",
"value": 555
}

Response example:

The response is empty. An HTTP 200 status code indicates a successful request.

REST API Server Full Product Details


Was this article helpful?