Thanks to visit codestin.com
Credit goes to www.scribd.com

0% found this document useful (0 votes)
4 views55 pages

VNode REST API Server v1.4

Uploaded by

Alex Jimenez
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
4 views55 pages

VNode REST API Server v1.4

Uploaded by

Alex Jimenez
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 55

I

Reference Manual
vNode REST API Server
v 1.4

www.vnodeautomation.com
I
2

Index
Introduction .................................................................................................................................................... 3
Creating Module Instances .....................................................................................................................4
Configuration.................................................................................................................................................. 6
vNode REST API calls................................................................................................................................ 15
Alarm ...................................................................................................................................................... 15
Backup .................................................................................................................................................. 18
Certificate ........................................................................................................................................... 24
Module ................................................................................................................................................. 27
Link......................................................................................................................................................... 35
License ................................................................................................................................................. 36
Redundancy ......................................................................................................................................40
System ................................................................................................................................................... 41
Tag .......................................................................................................................................................... 43
Appendix: Postman Collection .......................................................................................................... 54

www.vnodeautomation.com
I
3

Introduction

vNode REST API Server module is a component of the IIoT platform that enables seamless
access to the node, facilitating data retrieval and command transmission via REST calls.
With this interface, users effortlessly can navigate Data Models programmatically.

The API Server acts as an API gateway for industrial data residing in OT systems by offering
a streamlined abstraction layer over diverse protocols —OPC UA, MQTT, Sparkplug,
Modbus, DNP3, DLMS, IEC 102, IEC 104, etc.— eliminating the need for domain expertise in
underlying systems. Any application or service with an HTTP client can securely request
OT data in raw or modeled form directly from vNode

The main features of vNode REST API Server are:


• User authentication based on user/password or access token.
• High performance to support unlimited remote clients and connections.
• Secure HTTPS connections.
• Data encryption using self-signed or CA signed certificates.
• Compatible with Automated Certificate Management systems.
• Permits to read and write real time values of tags.
• Permits to retrieve and acknowledge alarms.
• Permits to retrieve raw and aggregated historical data of several tags in the same
request.
• Permits to retrieve and control the status of the system, modules, licenses, links and
backups.
• Permits to change the configuration without having to access the WebUI.
• Complete control over the access and permissions of each user.

The REST server uses by default port 3003 for HTTP requests and port 3443 for HTTPS
requests, both ports are configurable.

To create a REST request, a URL is built containing the IP address, service HTTP or HTTPS port,
and all other information the server needs in order to complete the desired task. Data is
returned in JSON format.

www.vnodeautomation.com
I
4

Creating Module Instances

The first step when using REST API Server after vNode installation is to create a REST API
Server module:
• Open vNode and navigate to the “Config” menu.
• Click on “Modules”, then create a new module. This instance can be given any name
(except names with special characters like ‘.’, ‘/’, etc.), although users are recommended
to name instances in a similar way to the name of the module being created for easy
identification. In this example, it has been named RestApiServer.

Figure 1: Creating new module instances

By setting the module type to RestApiServer, the created instance will automatically become
a RestApiServer instance. Once saved, RestApiServer should appear in bold in the module list
because there are still some unsaved changes.

Figure 2: Setting the instance type

www.vnodeautomation.com
I
5

Each instance can also be configured with the following options:


● Pause links while unavailable: When set to Enabled and when this module is receiving
data from other vNode nodes, all links will be paused whilst the module is offline to
avoid data loss. During the pause, data is stored in the remote nodes providing they
have the Store&Forward mechanism enabled. If Disabled, this module will have no
effect on links when offline.

Warning: Active this feature only when S&F is enabled in the remote
nodes. It does not make sense to activate this option if the Module can't
handle time-stamped data, e. g. Modbus Server.

● Auto-start: This section controls how the module behaves when the vNode service is
started (which also includes service restarts).
o Enabled: If true, the module will automatically start when the vNode service
starts. Otherwise, the module must be started manually.
o Start delay: When auto-start is enabled, this setting is used to control how much
delay there should be between starting the vNode service and starting the
module. This value is displayed in milliseconds.
● Auto-restart: This section is used to monitor the status of each module, as well as to
enable automatic restart if the module goes offline.
o Enable: If True, the module will automatically restart whenever the module goes
offline (except when manually stopped by the user).
o Restart delay: Determines the delay before restarting the module after it has
gone offline.

Note: Each module has a Logger section that will need to be configured
separately. The default settings will be sufficient for this, but users will
need to actively open the Logger configuration settings and save the
default values to fully apply the settings. Click here for more information
about Logger Configuration.

www.vnodeautomation.com
I
6

Configuration

Module Configuration

By selecting REST API Server in the explorer tree menu, users can configure how the module
will accept connections. The following screenshot shows the different available options for REST
API Server Configuration:

Figure 3: RestApiServer module parameters

Parameters:
Mode: Specifies what protocols will be accepted by the REST API Server. Available options
are “HTTP”, “HTTPS” and “Both (HTTP & HTTPS)”.

HTTP:
● TCP port: Specifies the HTTP port number for connecting to REST API Server. The
default port number is 3003. The valid range is 1 to 65535. This port may not be used by
any other application in the same machine.
● Network interface: Specifies the interface through which the REST API Server will be
accessible via HTTP. You can either select the network interface by clicking the browse
button or enter the IP address manually.

www.vnodeautomation.com
I
7

www.vnodeautomation.com
I
8

HTTPS:
• TCP port: Specifies the HTTPS port number for connecting to the REST API Server. The
default port number is 3443. Valid range is 1 to 65535. This port may not be used by any
other application in the same machine.
• Network interface: Specifies the interface for accessing the REST API Server via HTTPS.
You can either select the network interface by clicking the browse button or enter the
IP address manually.
• Certificate type: Specifies the server HTTPS certificate. The following options are
available:
o Self-signed: The server will create and sign a certificate automatically using an
internal certification authority that can be downloaded in the Self-signed certificate
menu (as shown in the image below). This certification authority is valid for all the
REST API Server instances and must be imported into each system/web client that
will access the REST API Server via HTTPS. When selecting the “Self-signed” option,
the following section will appear:
▪ Self-signed certificate parameters:
– Certified hosts: Comma-separated host list (domains/host names
and/or IPs) that will be included in the auto-generated SSL
certificate. It is important to include all the hosts where the REST
API Server will be accessed so the web client doesn't show any
errors. Hosts 127.0.0.1, localhost and system hostname will be
automatically added to the certificate.

www.vnodeautomation.com
I
9

Figure 4: download button of the certification authority

o Embedded: The provided certificates will be embedded in the configuration file.


When selecting the “Embedded” option, the following section will appear:
▪ Custom certificate parameters:
– Key: Certificate key in PEM format.
– CA bundle/chain: Optional. CA bundle in PEM format.
– Certificate: Certificate in PEM format.
o File path: File path where the certificate files are located, with a hot-reload
option. The path is relative to the data/<instance name>/cert/ folder. When
selecting “File path” option, the following section will appear:
▪ File path certificate parameters:
– Key path: Certificate key in PEM format. The path is relative to the
data/<instance name>/cert/ folder.
– CA bundle/chain: Optional. Certificate CA bundle in PEM format. The
path is relative to the data/<instance name>/cert/ folder. The file will
not be reloaded, so it is necessary to restart the module if the file is
modified while the module is running.
– Certificate path: Certificate in PEM format. The path is relative to the
data/<instance name>/cert/ folder.
– Reload interval: Expressed in seconds, specifies the interval to
reload certificates if file changes were detected. Set to 0 to disable.

www.vnodeautomation.com
I
10

Access Configuration

The REST API Server uses authorization to ensure secure data access. This includes
authenticating the sender and verifying their permission to access or manipulate data.

Currently, two types of authorization are supported: Role authentication, which involves
sending a verified username and password, and Token authentication, which uses an API
key.

Role Authentication
Selecting this option, permissions will be assigned to the Roles previously created in the
Roles section.

www.vnodeautomation.com
I
11

Parameters:
• Enabled: Specifies whether or not any authentication attempt will be blocked.
• API Access: vNode REST API calls use the GET and POST methods and can be
categorized into the following groups:
o Alarm: Access to tag alarms namespace.
o Backup: Access to the node backup system.
o Certificate: Access to the node certificate system.
o License: Access to the node licensing system.
o Link: Access node link system.
o Module: Access modules system.
o System: Access node system namespace.
o Tag: Access tag namespace.
• Tag access:
o Tag Filter: Define and configure the filter for tags to be included in the
message.

Note: It is a mandatory to add a filter even when the whole model


is going to be published.

▪ Mode: Specifies whether the filter must include or exclude tags.

Note: Include filters are applied first and exclude filters are applied
to the include filters' results.

www.vnodeautomation.com
I
12

▪ Path: Specifies the path of the tag or group of tags to be filtered.

▪ Regex Pattern: This is a regular expression for filtering which tags will
be included. By default, it is set to .*, meaning no filter is applied.
Readers can find further information about regular expressions
at RegExr.

Note: Each group has the following permissions available:

• GET: Allow read operations.


• GET/POST: Allow read and write operations.

Token Authentication
This option enables requests to authenticate using an access key. The token is a text string,
included either in the request header or passed as a parameter.

www.vnodeautomation.com
I
13

Parameters:

• Enabled: Specifies whether or not any authentication attempt will be blocked.


• Token: API key value autogenerated by clicking on the button on the right side.
Authentication can be made using two methods: GET parameter and HTTP header.
o An example, being the token 123ABC:
• GET parameter: Adding the bearer token in a token URL parameter.
Example:
https://<address>:<port>/module?cmd=details&token=123ABC.
• HTTP header: Adding the bearer token to the HTTP Authorization header.
Example: Authorization: Bearer 123ABC.

• API Access: vNode REST API calls use the GET and POST methods and can be
categorized into the following groups:
o Alarm: Access to tag alarms namespace.
o Backup: Access to the node backup system.
o Certificate: Access to the node certificate system.
o License: Access to the node licensing system.
o Link: Access node link system.
o Module: Access modules system.
o System: Access node system namespace.
o Tag: Access tag namespace.

• Tag access:
o Tag Filter: Define and configure the filter for tags to be included in the message.

www.vnodeautomation.com
I
14

Note: It is a mandatory to add a filter even when the whole model


is going to be published.

o Mode: Specifies whether the filter must include or exclude tags.

Note: Include filters are applied first and exclude filters are applied
to the include filters' results.

• Path: Specifies the path of the tag or group of tags to be filtered.


• Regex Pattern: This is a regular expression for filtering which tags will be
included. By default, it is set to .*, meaning no filter is applied. Readers can find
further information about regular expressions at RegExr.

Note: Each group has the following permissions available:


GET: Allow read operations.
GET/POST: Allow read and write operations.

www.vnodeautomation.com
I
15

vNode REST API calls

How to use this API

In order to execute the desired command, API calls should start with
http://<IP_address>:<HTTP_port> followed by tge corresponding 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:
o path: Path to browse for alarms. (Optional parameter)
o 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.fi
lter.path=/000_PLANT/040_ZONE/040_MTR/COM.active

www.vnodeautomation.com
I
16

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:

o path: Path to browse for alarms (optional parameter)


o options:
▪ recurrent: Include subgroups.
▪ filter: Filter include 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://127.0.0.1: 3003/alarm?cmd=count&path=/000_PLANT/040_ZONE/040_MTR/

Response example:

www.vnodeautomation.com
I
17

Get alarm history

Retrieves historical data of a specific alarm.

GET /alarm?cmd=history&path=<path>&start=<start_date>&end=<end_date>

• parameters:
o path: Alarm path (mandatory parameter)
o start: Start date. Must be an ISO string or a Unix epoch timestamp (mandatory
parameter)
o end: End date. Must be an ISO string or a Unix epoch timestamp (mandatory
parameter)
o 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": []
}

www.vnodeautomation.com
I
18

Acknowledges alarm
Acknowledges alarms

POST /alarm?cmd=ack

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

• Request example:

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

JSON:

{
"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

www.vnodeautomation.com
I
19

• 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:
o name: name of the backup file (Mandatory parameter)

• Request example:

http://127.0.0.1:3003/backup?cmd=export&name=20240304_RestApiServer_01

• Response example:
The answer is a ZIP file Base64 encoded

www.vnodeautomation.com
I
20

Create a backup
Creates a configuration backup of the target node.

POST /backup?cmd=create

• parameters:
o path: Name of the backup file (Mandatory parameter)
o metadata:
▪ description: description of the backup file (Optional parameter)

• Request example:

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

JSON

{
"name": "TestImport"
}

• Response example:

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

Rename a backup

Renames a configuration backup.

GET /backup?cmd=rename

• parameters:
o name: Name of the backup file (Mandatory parameter)
o rename: New name of the backup file (Mandatory parameter)

www.vnodeautomation.com
I
21

• Request example:
http://127.0.0.1:3003/backup?cmd=rename

• JSON

{
"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:
o name: Name of the backup file (Mandatory parameter)

• Request example:

http://127.0.0.1:3003/backup?cmd=delete

JSON

{
"name": "EDGE01-PV-PROD"
}

• Response example:

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

www.vnodeautomation.com
I
22

Import a backup

Imports a previously exported configuration backup encoded in Base64.

POST /backup?cmd=import

• parameters:
o name: Name of the backup file (Mandatory parameter)
o data: Backup file data, encoded in Base64 (Mandatory parameter)

• Request example:

http://127.0.0.1:3003/backup?cmd=import

JSON:

{
"name": "Test Import",
"data":
"UEsDBAoAAAAAAJhipFIAAAAAAAAAAAAAAAAKAAAASGlzdG9yaWFuL1BLAwQKAAgACACYYqRSAAAAA
AAAAAAAAAAAEQAAAEhpc3Rvcmlhbi9hcGkubjNjTU5LCsIwEL3LrLNIKsbSnRdQcStdtOYJo2kjaVK
Ekrs7KgVX83nfhWbEicNIzUJDxzKNIjhOIcpaFEVM2SdqLnTbQc5L+yuQ1pM8vw3Xp3qOhlMz/X9CT
qk1EXEhVxld3Yh6+g/I4juPwqlO493Ovvysx6+6Gsn9uiSKVu22pK0wexfJT3msR6MIck4L/uxwZe+
OOSTWNtgqDyGufIxRdFkLN6T7ct4NNDAa+WPHcYJWr6NLuiNJ56QVzQZtPonqsZYADENaxyiqHDmyZ
svjm+41eknLACxIUlCjkA4AuJtRlPsvBq2MI1zxPwYkTX6v8PhBX5uNcwmYRYqS9AlJw57b0L8Ikgo
4FoQ7UdJSmd0lqZRxA/i7QWoB7Sbh05lXyydzIWbbJA0FaQW0n4BmP8/J2z2kOL6oSlQLwjrGKB6

ipFIAAAAAAAAAAAAAAAAUAAAAYm9vdHN0cmFwL2xvZ2dlci5uM2N1T8sKwjAQ/Jc5B6FqW9ujH6AHj
6WHtNlKJE0gTYsS8u9uQBAPsod9zs5MxEZ+0c6ijZil5lwIkNLBeS6TgKdlNQFth+vwoDFARIzOLs7
Q75CsHAwptMGvJGBoI4MWwcuRkHqBSf+FdDg7figtREbz8Qfe4Ra8tncIaDs58EbJ15KZL+s8kIeo+
8TxFR1Bz0BW8RFbcmrNrNiBvXCnJ501FmVzaqqm3FfH+pDSG1BLBwgaUmq1rQAAAAcBAABQSwMECgA
IAAgAmGKkUgAAAAAAAAAAAAAAABUAAABib290c3RyYXAvbW9kdWxlcy5uM2PVU8FKQzEQ/Jc9B8nTW
qE39aKXCj7Eg/SQZ7aogIjEuMi4xLTIwMDQwMS4yMjA4IiwKICAgICJGbGVldE1hbmFnZXJDbGllbn
QiOiAiMS4wLjAtMjEwNDE2LjExMDItYmV0YSIKICB9Cn0="
}

• Response example:

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

www.vnodeautomation.com
I
23

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://127.0.0.1:3003/backup?cmd=load

JSON:
{
"name": "BackupName"
}

• Response example:

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

www.vnodeautomation.com
I
24

Certificate

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

List certificates
Retrieves the list of certificates

GET /certificate?cmd=get&options.moduleName=<moduleName>&options.type=<type>

• parameters:
o options:
▪ moduleName: Name of the module. Defaults to bootstrap
▪ type: Type of certificate (links_inbound, links_outbound, inbound,
outbound).

• Request example:

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

JSON:
[
{
"id": "own/EDGE01 vNode LinkOut",
"sn": "EDGE01:vNode:LinkOut",
"c": "US",
"o": "vNode Automation",
"dn": "edge01",
"from": 1686132404000,
"to": 2316852404000,
"type": "outbound",
"status": "own"
},
{
"id":
"trusted/AWS_CENTRAL_LinkManager[493875AFD372CFFA520BDDA55C77FCE733A5F5E3]",
"sn": "AWS_CENTRAL:LinkManager",
"c": "US",
"o": "vNode Automation",
"dn": "ip-192.168.0.1",
"from": 1686066957000,
"to": 2316786957000,
"type": "outbound",
"status": "trusted"
}
]

www.vnodeautomation.com
I
25

Export certificate
Retrieves the content of a specific certificate

GET /certificate?cmd=export&options.type=<type>&options.id=<id>

• parameters:
o 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_LinkManager[493875AFD372CFFA520BDDA55C77FCE733A5F5E3]

• Response example
The answer is a Base64 formatted file.

Set certificate
Modifies a certificate from vNode

POST /certificate?cmd=set

• parameters:
o options:
▪ moduleName: Name of the module. Defaults to bootstrap
▪ type: Type of certificate (links_inbound, links_outbound, inbound,
outbound).
▪ id: The certificate unique ID
▪ action: Action to apply to the certificate (trust, untrust)

www.vnodeautomation.com
I
26

• Request example:
http://localhost:3003/certificate?cmd=set

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

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

Remove certificate
Removes a certificate in vNode

POST /certificate?cmd=remove

• parameters:
o 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

www.vnodeautomation.com
I
27

JSON:

{
"options": {
"type": "outbound",
"id":
"pending/NODE_001_vNodeLinkManager[3A585E14D732ACE06DFAB2F7E34ED385DC78741D]",
"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

www.vnodeautomation.com
I
28

• 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",
"requisites": {
"bootstrapVersion": {
"min": "1.38.0"
},
"exeVersion": {
"min": "1.21.0"
}
},
"name": "WebUI"
},

www.vnodeautomation.com
I
29

"stats": {
"tx": {
"ok": 678,
"error": 0
},
"rx": {
"ok": 643,
"error": 0
}
}
}
}
}
}

List of installed modules


Retrieves the list of installed modules.

GET /module?cmd=getInstalled

• Request example:

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

• Response example:
[
"AbbVipClient",
"AuditTrail",
"BacnetClient",
"CustomClient",
"DataDiode",
"DataExporter",
"DataImporter",
"DerivedTags",
"DnpClient",
"DnpServer",
]

List module instances


Retrieves a list of instanced modules in the target node.

GET /module?cmd=getInstances

www.vnodeautomation.com
I
30

• parameters:
o filter: Module names. 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:
o 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"
}
}

www.vnodeautomation.com
I
31

Check configuration exists


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

GET /module?cmd=getConfigPresent&moduleName=<module_name>

• parameters:
o moduleName: Module instance name (Optional parameter)

• Request example:

http://127.0.0.1:3003/module?cmd=getConfigPresent&moduleName=Siemens

• 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:
o moduleName: Module instance name (Optional parameter)
o configName: Configuration name (Mandatory parameter)

• Request example:

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

www.vnodeautomation.com
I
32

• 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://192.168.1.0:4840\"],\"endpointMustExist\":
[\"Boolean\",false],\"securityMode\":[\"String\",\"NONE\"],\"securityPolicy\":
[\"String\",\"None\"],\"requestedSessionTimeout\":
[\"Number\",3600000],\"reconnectionDelay\":[\"Number\",5000]}],\"auth\":[\"Obj
ect\",
{\"enabled\":[\"Boolean\",true],\"user\":[\"String\",\"Plant01\"],\"password\"
:[\"SecuredString\",\"Z4/rlgqL6bHsb/2J1VHkIkKLpejOXGnvWvadb8euXutzlaH6Rpi9zClD
EXvW4qleL
HVlW+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:
o moduleName: module instance name (Mandatory parameter)

• Request example:

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

JSON:

{
"moduleName": "Historian"
}

• Response example

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

www.vnodeautomation.com
I
33

Stop module
Stops a module.

POST /module?cmd=stop

• parameters:
o moduleName: module instance name (Mandatory parameter)

• Request example:

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

JSON:

{
"moduleName": "Historian"
}

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

Restart command
Restarts a module.

POST /module?cmd=restart

• parameters:
o moduleName: module instance name (Mandatory parameter)

• Request example:

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

www.vnodeautomation.com
I
34

JSON:

{
"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:
o moduleName: Module instance name (Mandatory parameter)
o configName: Configuration name (for example: logger, API, users, tags, views,
links, etc.) (Mandatory parameter)
o data: Configuration file in JSON format (Mandatory parameter)
o options:
▪ restart: Restart module after saving new configuration (Optional
parameter)
▪ deleteData: Only applicable to module configuration file. List of deleted
module instances to clean their data. Can be a single instance, a comma-
separated list or a JSON array (Optional parameter).

• Request example
http://localhost:3003/module?cmd=setConfigData

JSON

{
"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.

www.vnodeautomation.com
I
35

Link

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

www.vnodeautomation.com
I
36

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

www.vnodeautomation.com
I
37

• Response example

[
{
"path": "C:\\Program Files\\vNode\\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:
o name: Name of the license file (Mandatory parameter)

www.vnodeautomation.com
I
38

• Request example:

http://127.0.0.1:3003/license?cmd=read&name=DataServer01-20210216.143244.n3l

• Response example

"{\"version\":\"1\",
\"created\":\"2023-03-16T14:22:01.991Z\",
\"signature\":\"20027e37c184cb21420bddb6e8ca5a893a982837f22351fe697
bf521635c75f62d1e85b04527d9a21ede3cdbb8beb35f8341ee1e8b5e108d97601bfbdd4e8332d
ffd353e20f72ebca8605559387337ef17cc6c2b6abf95290d9d2b661bc82b43394cfdfca2de8fd
4c9a866d8478bf74df8f1fdcf763ac3b0dea80636691d953f1a2ed448195a5b1128b98b92cca50
db5e9ab70027eb534aabaa19d0a2ec2c900eccbe01455986e900706acb56645005c3c55f8b6be4
028284d5a1e41a0410c5584a6669467c3045aac8950b0f6018efd72eaeeedb6febc631ea67a844
989dc2472d712f4fba8e346afdbd3f635b20c3e839a5fdf90518973615dc58afd64e82d\",
\"licenses\":[{\"version\":\"1.1\",\"host\":\"edge01\",\"uid\":\"3cbd33383ef80
d7faff3bf0be1262c9f\",
\"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\":\"CustomClient\",\"tagAccess\":\"local\",\"count\":1},
{\"type\":\"DataDiode\",\"tagAccess\":\"local\",\"count\":1},
{\"type\":\"DataExporter\",\"tagAccess\":\"local\",\"count\":1},
{\"type\":\"DerivedTags\",\"tagAccess\":\"local\",\"count\":1},
{\"type\":\"DnpClient\",\"tagAccess\":\"local\",\"count\":1},
{\"type\":\"Historian\",\"tagAccess\":\"local\",\"count\":1},
{\"type\":\"Iec102Client\",\"tagAccess\":\"local\",\"count\":1}
]}]}"

Add license
Adds a license to the target node.

POST /license?cmd=add

• parameters:
o data: Data of the license file in JSON format (Mandatory parameter)

• Request example:

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

www.vnodeautomation.com
I
39

JSON

"data": "{\"version\":\"1\",\"created\":\"2021-01-
05T14:43:16.652Z\",\"signature\":\"5ce1ff1b7a9f911b49f653aa291bd375d8b
2c53a0d57b0958ffe5f2341d",\"count\":1},{\"type\":\"SiemensClient\",\"t
agAccess\":\"local\",\"count\":1},{\"type\":\"SmaClient\",\"tagAccess\
":\"local\",\"count\:1},{\"type\":\"SqlClient\",\"tagAccess\":\"remote
\",\"count\":1},{\"type\":\"UflExporter\",\"tagAccess\":\"remote\",\"c
ount\":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:
o name: Name of the license file (Mandatory parameter)

• Request example:

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

JSON:

{
"name": "edge01-20230607.095435.n3l"
}

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

www.vnodeautomation.com
I
40

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"

www.vnodeautomation.com
I
41

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

{
"node01": {
"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
],

www.vnodeautomation.com
I
42

"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

Restart Service
Restarts vNode service.

POST /system?cmd=restartService

www.vnodeautomation.com
I
43

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

• Request example:

• 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:
o path: Path to browse for tags (Optional parameter)
o 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)
▪ hideGroups: Do not receive groups (Optional parameter)

• Request example:

http://localhost:3003/tag?cmd=browse&path=/PLANT01/BLUELAKE/PVG001/&options.filt
er=POWER*

www.vnodeautomation.com
I
44

• Response example

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

Read tag
Retrieves values of tags present in the defined path.

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

• Request example:

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

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

• Response example

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

www.vnodeautomation.com
I
45

"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:
o path: Path to read tag (Mandatory parameter)
o 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=/PLANT01/BLUELAKE/PVG001/PST001/INV00
1/*&options.recurrent=true

www.vnodeautomation.com
I
46

• Response example

{
"description": "",
"_templates": ["Derived PVInverter"],
"tags": {
"ACTIVE_POWER": {
"id": 44,
"fullPath": "/PLANT01/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],
www.vnodeautomation.com
"interpolation": "linear",
"defaultMethod": "avg",
"rate": [0, 0]
}
I
47

"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:
o path: Tag path. (Mandatory parameter)
o start: Start date. Must be an ISO string or a Unix epoch timestamp (Mandatory
parameter)
o end: End date. Must be an ISO string or a Unix epoch timestamp (Mandatory
parameter)
o 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)

www.vnodeautomation.com
I
48

▪ 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=/PLANT01/BLUELAKE/PVG001/PST001/INV00
1/ACTIVE_POWER&start=1685365215&end=2023-05-29T15:10:51.174Z

• Response example

{
"request": {
"tag": "/PLANT01/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
]
]
}

www.vnodeautomation.com
I
49

Get history for many tags


Retrieves historical data of tags.

GET /tag?cmd=historyMany&path=<path>&start=<start_date>&end=<end_date>

• parameters:
o paths: Tag path list. Can be a single tag, a comma-separated list or a JSON array
(Mandatory parameter)
o start: Start date. Must be an ISO string or a Unix epoch timestamp (Mandatory
parameter)
o end: End date. Must be an ISO string or a Unix epoch timestamp (Mandatory
parameter)
o 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=historyMany&paths=/PLANT01/BLUELAKE/PVG001/PST001/
INV001/ACTIVE_POWER,/PLANT01/BLUELAKE/PVG001/PST001/INV001/VOLTAGE&start=1619707
394591&end=2021-04-29T15:10:51.174Z

www.vnodeautomation.com
I
50

• Response example

{
"/PLANT01/BLUELAKE/PVG001/PST001/INV001/ACTIVE_POWER": {
"request": {
"tag": "/PLANT01/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.fil
ter=<tag_path>

• parameters:
o paths: Tag path list. Can be a single tag, a comma-separated list or a JSON array
(Mandatory parameter)
o start: Start date. Must be an ISO string or a Unix epoch timestamp (Mandatory
parameter)
o end: End date. Must be an ISO string or a Unix epoch timestamp (Mandatory
parameter)
o options:
▪ filter: Full tag path Regex filter (Optional parameter)

www.vnodeautomation.com
I
51

▪ 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 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=/PLANT01/BLUELAKE/PVG001/PST001
/INV001/&start=1619707394591&end=2021-04-
29T15:10:51.174Z&options.filter=POWER&end=2021-04-29T15:10:51.174Z

• Response example

{
"/PLANT01/BLUELAKE/PVG001/PST001/INV001/ACTIVE_POWER": {
"request": {
"tag": "/PLANT01/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]]
}
}

www.vnodeautomation.com
I
52

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:
o path: Tag path (Mandatory parameter)
o 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

JSON

{
"path": "/ExampleTag",
"value": 555
}

www.vnodeautomation.com
I
53

• Response example

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

www.vnodeautomation.com
I
54

Appendix: Postman Collection

Use of Postman collection


Postman is a platform for API development that allows for testing API requests, among
other things. vNode provides a Postman Collection, which is strongly recommended for
testing REST API Server requests before implementing them in a production
environment. This collection includes all of vNode’s REST API Server module requests,
ready to use with minimal adjustments.

To use the collection, proceed as follows:

• Step 1: Open Postman, Click on Collections, Click on Import.

• Step 2: Download the file vNode RestApi Server.postman_collection.json and load it


on Postman.

• Step 3: Use the IP_address variable to enter the name or IP address of the server as
well as the port.

www.vnodeautomation.com
I
55

• Step 5: Choose the type of Authorization according to your Server Access


Configuration.

• Step 6: Start sending requests.

www.vnodeautomation.com

You might also like