Attention:
- This developer portal is now deprecated. You can continue to use it, as per usual, until its retirement in September 2023, when it will not any more accessible.
- Please check the climatixic.com release notes for the portal migration.
1.
General Rules
Every API need the
Application key, submitted with the request header “Ocp-Apim-Subscription-Key” as string.
For all requests which will
return a list (e.g. list of plants) is a paging
implemented which can be defined over Query Parameters. In case that they are
missing, only the first n entities will be delivered.
All responses and POST
parameter will only support application/json output
format.
After the authentication via
OAuth 2 (“Authentication”) is done, all requests have to contain the OAuth2 token
as string request header “Authorization”.
1.1
Addressing and View Nodes
It is important to know,
that the query over the structure has to use the ViewNodes resource.
Each resource has a system
wide unique identifier. The ID is NOT representing any logical structure or
navigation guide. To identify the location of the resource the ViewNodes resource has to be used.
A view node is a graph of objects to navigate through. There will be no back
links available, only forward references.
Currently are only fixed structure
supported (TenantàPlantàPages (future real view nodes)àDataPoints), but
this will change in the future, therefore it is important to use from the beginning
the view nodes instead of assuming a fixed structure.
In case that a resource will
be placed under another resource the corresponding id has to be used.
Every view node is a
composition of items and other view nodes. Currently are the following types of
view nodes supported:
Type |
Description |
Tenant |
The representation of the organizational structure tenant, which
represents a tenant (main tenant and sub tenant). |
Site |
The representation of the organizational structure site, which
represents a site. For future implementation. |
Plant |
The representation of the organizational structure Plant, which
represents a plant. |
ViewNode |
The ViewNode itself, currently only
created from the plant (device) |
With the view node Type, the
client can decide over the best representation and also use this to access the
corresponding Resource for additional information (e.g.
Type: Tenant à /Tenants).
1.1.1
Relationship Climatix Watch pages
to View nodes
View nodes are the cloud representation of a hierarchical structure.
The same is available for the Climatix controller, which will be generated out
of the Watch pages in SCOPE. Mean every Watch page in SCOPE is represented
inside the controller as a View node object (aoViewNode).
The same will be done if the GenericCloud.csv mapping file from
SCOPE is used. Then for every watch page where the cloud mapping is enabled will
be one View node for the cloud generated, bellow the controller (plant) view
node.
The Climatix controller supports a multi hierarchy level of View nodes,
the cloud supports only a flat hierarchy level. The sorting is according the Watch page number and can be influenced inside
SCOPE over the Page properties -> Advanced -> HMI page or view node id.
Example for Climatix Watch page engineering:
DeviceRoot (ID=1) ->
Page1 (ID=6) -> Page2 (ID=2) -> Page3 (ID=5)
+> Page4 (ID=3) -> Page5 (ID=4)
Inside the controller the same structure is modelled with view nodes
according the hierarchy:
DeviceRoot (ID=1) ->
Page1 (ID=6) -> Page2 (ID=2) -> Page3 (ID=5) +> Page4 (ID=3) -> Page5 (ID=4)
For the cloud the following View Nodes are generated according the ID and appear in this order:
Plant View Node
(<PID1>) -> DeviceRoot (ID=1)
+> Page2 (ID=2)
+> Page4 (ID=3)
+> Page5 (ID=4)
+> Page3
(ID=5)
+> Page1 (ID=6)
1.2
Request Header and Query
Parameter
Standard Request Header
Request
Header |
Data
Type |
|
Description |
Ocp-Apim-Subscription-Key |
String |
Required |
Amount of entries for this property |
Authorization |
String |
Required |
OAuth 2.0 access token
obtained from API “Authentication”. |
Standard Query Parameter:
Request
Header |
Data
Type |
Feature |
Description |
skip |
Integer |
P |
The amount
of entities to skip. |
take |
Integer |
P |
The amount
of entities to return. Depending on the request the max value can be different. Mean for some request the
amount can be bigger than for other requests. This is needed to avoid to huge
calls. |
sortBy |
JSON Array of Objects |
P |
The sort key and the sort direction, depends
on the request if sorting is supported or not. The result will be sorted according the order inside the array. To support a stable
sort order, the default would be the primary key (id). e.g. &sortBy=[{“ParentName”:”asc”},{“Name”,”desc”}]
delivers all Tenants sorted by their father name (Main Tenant name) and then
sorted (descending) by the tenant name (Sub Tenant name). The stable sort is
guaranteed, because TenantId is unique and the primary
key. |
parentId |
JSON parent object |
|
Some requests need a parent
ID (like tenant ID), to assign the resource to a concrete view node. To identify the resource,
the resource type and the unique ID is needed, Currently
is only one parent possible, in the future maybe also more than one parent,
therefore a array is used: Assign one plant to a
tenant: &parentId=[{“Tenant”:”{id}”}] |
filterId |
JSON objects |
F |
Contains the IDs (view
node or data points ids) which are requested if filtering is needed. The IDs
will be entered as JSON array: In the following example will
be two data points from different plants requested: &filterId=[{“DataPoints“:”07cf5899-e5f2-4b6d-a669-3e0a51578793/1!6WHH6I0EOMMGMC”},
{“DataPoints“:”13a3d393-cf1d-43fe-8e80-8cc1e06bebd3/1!6WHH6I0EOMMGMC”}] |
tenantId |
String |
|
Some Resources needs the
tenant ID for administrative users (e.g. Tenant
Administrators). This parameter is only need for such users, which like to
access plants without be assigned as a plant user. The Administrative user
can then access the plants for the given tenant ID and all sub tenants of this
ID. |
2.
Error Handling
In case that an API call
fails, a meaning full result will be delivered back (body). In case that an
unhandled exception occurred, the error code contains a GUID.
This unhandled exception
will be written to a diagnostic table.
Entity
columns |
Data
Type |
Description |
PartitionKey |
Edm.String |
The UTC time with date,
but without time, Mean with one request we get all
errors for one day. |
RowKey |
Edm.String |
The generated Guid of the exception as string. This Guid
is delivered to the API caller. The support can then search for the Guid (PartionKey can be empty). |
APIcall |
Edm.String |
The API call with all
parameters |
TImeStamp |
Edm.DateTime |
The exact data and time |
Exception |
Edm.String |
The exception string |
AdditionalInfo |
Edm.String |
Optional additional
information if available |
3.
URI
All resources can be accessed
via the API, where the Resource name is the first part of the URI. Inside a resource
every entity has an own unique ID. The format of the {id} depends on the
resource itself and can be changed in the future.
The {id} is a string and can
contain any character like a GUID (e.g.: “0a6fe8c0-9c97-4040-83d0-a4fe75b29af8”)
or a combination of GUID and names
(e.g.: “0a6fe8c0-9c97-4040-83d0-a4fe75b29af8 /1!6WHH6I0EOMMGMC”).
Query schema:
URI |
|
/<Resource> |
Delivers the list the
addressed resource. |
/<Resource>/{id} |
Address a single resource element. |
/<Resource>/{id}/<SubResource> |
Delivers the list of
subordinated resources (e.g. History values). |
Possible requests:
URI |
Intention |
Implementation
Status |
/Tenants |
All accessible tenants will
be addressed. |
available |
/Tenants/{id} |
The Tenant detail Info |
available |
/Plants |
All accessible plants will
be delivered |
available |
/Plants/{id} |
Info over dedicated plant |
available |
/Plants /{id}/ActiveAlarms |
The active alarm list of
the Plant/Device. |
available |
/Plants /{id}/HistoryAlarms |
The alarm history of the
Plant/Device. |
available |
/Plants/{id}/Notifications |
Creates a new plant notification |
available |
/Plants/{id}/Upgrade/Status |
Report the current status of the device |
available |
/Plants/{id}/Upgrade/Commands |
Controls the manual upgrade commands of the device |
available |
/Plants/{id}/Upgrade/Automated |
Controls the automated upgrade of the device |
available |
/ViewNodes |
Delivers the list of accessible view nodes. Returned will be a
list of root view node Ids, with the view node type. |
available |
/ViewNodes/{id} |
All Sub view nodes of the
addressed view node. The response can also contain data points. |
available |
/ViewNodes/{id}/Values |
Delivers only the current
values of the data points of a view node. |
available |
/DataPoints/ |
Address all accessible Data
Points. |
available |
/DataPoints/Values |
Delivers only the current
values of the data points. Also, it allows an update of the current value for a virtual cloud
item. |
available |
/DataPoints/{id} |
Address a dedicated Data Point |
available |
/DataPoints/{id}/History |
The historical values of a dedicated data point |
available |
/DataPoints/{id}/EnumerateHistory |
Enumerate through the historical values of a dedicated data point. |
available |
/UserRoles |
All accessible user roles
will be addressed |
available |
/UserRoles/{id} |
Address a dedicated user role. |
available |
/Users |
All accessible users will
be addressed |
available |
/Users/{id} |
Address a dedicated user. |
available |
/Account/SignUp |
User registration (self sign on) |
available |
/Account/RequestPasswordReset |
Request a password reset |
available |
/Account/ResetPassword |
Perform a password change |
available |
/Account/EnforcePasswordChange |
Enforce changing of the
password for given users |
available |
/ApplicationSets |
All accessible application
sets will be addressed |
available |
/ApplicationSets/{id} |
Address a dedicated
application set |
available |
/Files |
All accessible files will
be addressed |
available |
/Files/{id} |
Address a dedicated file |
available |
/Files/{id}/Content |
Address the file content |
available |
/KPIs |
All accessible key performance
indicators will be addressed |
Later planned |
/KPIs/{id} |
Address a dedicated key
performance indicator |
Later planned |
/AlarmNotifications |
All accessible alarm notifications
will be addressed |
available |
/AlarmNotifications/{id} |
Address a dedicated Alarm notification |
available |
/Devices |
Manage all accessible
virtual devices |
available |
/Devices/{id}/Alarms |
Mange the alarms for a virtual device |
available |
/ReportNotifications |
All accessible report notifications will be returned |
available |
/ReportNotifications/{id} |
Address a specific report notification |
available |
/Analytics/Tenants |
Gets all tenants for analytics |
available |
/Analytics/Plants |
Gets all plants of the given tenant for analytics |
available |
/Analytics/DataPoints |
Gets all cloud items of the given plant for analytics |
Available |
/Analytics/DataPoints/{id} |
Gets info of the cloud item incl. history items for analytics in
the given timestamp. |
Available |
/Analytics/PlantMetadata |
Adds/Deleted definition for the plant metadata info to the
specified tenant. |
Available |
/Analytics/PlantMetadata/{id} |
Gets information for tenant's plant metadata items. |
Available |
4.
Best practices and performance
hints
- Fetching data point
history items: The best approach to fetch datapoint
history items for a given time interval is to use the high performing analytics
endpoint. The endpoint GET /Analytics/DataPoints/{id} does not include any pagination
parameters, therefore the server delivers all history items with a single
request. The clients must not deal with different requests their responses
containing only 100 items each.
If the client can’t use the analytics endpoint for some reason, consider using the GET /DataPoints/{id}/EnumerateHistory endpoint. It delivers all available history items from a start point of time until no data are available or a maximum of 1000 items is reached. The second request from the client must then only adjust the start date to fetch the next available items, if any.
If the mentioned endpoints does not fit into the client requirements, then the slowest, poorly performing endpoint must be used. The endpoint GET /DataPoints/{id}/History uses too many resources to fetch only a single portion of history items, currently up to 1000. For example, if the client sends a request to fetch history items for 1 month, the server fetches all the data for this month from the storage and delivers only the first 1000 back to the client, the client must wait all the time for the server to finish retrieving the data for one month. After that the client adjusts the skip-parameter and send a new request to fetch the next items, the server goes again and fetch all the data for one month from the storage to deliver only 1000 items. To avoid waiting too long for the server, the client must specify small time intervals. How to define the best time intervals is hard and there is no general rule for that. It all depends on how often a data point is sending item updates. For example, a data point is sending 500 updates (COVs) per minute, so the best interval to set for the start- and end-parameters will be 2 minutes, to fetch exactly 1000 items with one request. But if the data point is sending only 1 item update per minute, using a time interval of 1 day is suitable.
5.
Operations
The following request operations
are supported, but not every resource will support all requests, in case that a
not supported operation is performed, an error is returned.
Example:
Resource |
POST |
GET |
PUT |
DELETE |
/Plants |
Create a new plant view
node Code = 201 |
All accessible plants will be delivered Code = 200 |
Error 501 |
Error 501 |
/Plants/{id} |
Error |
Details over the Plant (Code = 200) or Error if not exists (Code =
|
Update the plant settings
(e.g. address) |
Delete the plant and set
the assigned device in unassigned state |
5.1
GET
GET to retrieve a copy of the resource
at the specified URI. The body of the response message contains the details of
the requested resource.
If the request is successful,
the web server should respond with a message code with HTTP status code 200 and
the response body contains the data.
5.2
POST
POST to create a new resource at the specified
URI. The body of the request message provides the details of the new resource.
Note that POST can also be used to trigger operations that don't actually create resources.
If the request is
successful, the web server should respond with a message code with HTTP status
code 201 (Created). The Location header should contain the URI of the newly
created resource, and the body of the response should contain a copy of the new
resource; the Content-Type header specifies the format of this data:
HTTP/1.1 201 Created
...
Content-Type: application/json;
charset=utf-8
Location: /Plants/b67eae1a-8481-4844-8292-4f7031baf219
...
Date: Fri, 10 Mar 2017 07:48:38
GMT
Content-Length: ...
{
"Id": "a4e11b3c-55a4-44c6-9480-01c14e5a4976",
"ActivationKey": "UBB2CA-OJY7Y-UJGLK-BH3PK-45VWM",
"Address": "Berliner Ring
23",
"AlarmStatus": 0,
"ApplicationSetDescription": null,
"ApplicationSetName": null,
"Asn": "POL687",
"Assigned": true,
"City": "Rastatt",
"Country": "DE",
"Description": "1406-POL687",
"EnergyIndicator": 0,
"IsOnline": true,
"Name": "DEV12",
"Phone": "",
"SerialNumber": "1406",
"State":
"Baden-Württemberg",
"TaskStatus": 0,
"Tenant": "Siemens Rastatt",
"Timezone": "W. Europe Standard
Time",
"ZipCode":
"76437"
}
5.3
PUT
PUT to replace or update the resource at
the specified URI. The body of the request message specifies the resource to be
modified and the values to be applied. If the resource did not exist, an error
is returned. Partially updates are in a first step also supported (for example
only the street of a plant setting can be updated and all
other fields are not touched).
If the modification is successful,
it should ideally respond with an HTTP 204 status code, indicating that the
process has been successfully handled, but that the response body contains no
further information. The Location header in the response contains the URI of the
newly updated resource:
HTTP/1.1 204 No Content
...
Location: /Plants/
b67eae1a-8481-4844-8292-4f7031baf219
...
Date: Fri, 10 Mar 2017 07:48:38
GMT
5.4
DELETE
DELETE to remove the resource at the
specified URI.
To remove a resource, an
HTTP DELETE request simply provides the URI of the resource to be deleted.
If the delete operation is
successful, the web server should respond with HTTP status code 204, indicating
that the process has been successfully handled, but that the response body
contains no further information (this is the same response returned by a successful
PUT operation, but without a Location header as the resource no longer exists.)
It is also possible for a DELETE request to return HTTP status code 200 (OK) or
202 (Accepted) if the deletion is performed asynchronously.
HTTP/1.1 204 No Content
...
Date: Fri, 10 Mar 2017
07:48:38 GMT
6.
API usage
CORS is supported from the
Climatix API, any domain will be accepted (*).
Hint for correct API usage:
- Add
to your APP the subscription key via the header Ocp-Apim-Subscription-Key,
- Call
the /Token API to get the corresponding
Bearer token, add this token to the header Authorization:
Bearer <token>
- Use
for all following calls the header Ocp-Apim-Subscription-Key
and Authorization must be used.
7.
API -List
The chapter of the API named
the API, and inside the chapter are the operations defined. The details of parameter,
behavior and functionality can be found direct via the API management portal.
The feature defines the request
possibilities:
+ à Supported
– à Not supported (Error code 501)
P à Paginating
F à Filtering
Pr à Parameter parentId
required
Po à Parameter perentId optional, for easier
query.
7.1
Token
This interface is important
to get the OAuth2 token, which is needed for all requests to the Climatix IC
API. This API must be used to get the OAuth2 token which is needed for all
other APIs. Pass in a body in the form grant_type=password&username={username}&password={password}&expire_minutes={minutes}
to retrieve the authentication token. The password must be URL encoded (e.g: replace + with %2B). The parameter expire_minutes is optional, the maximal value is
20160 minutes (2 weeks), the default is 2880 minutes (2 days).
Request: /Token
Request |
Features |
Result |
GET |
- |
|
POST |
+ |
Create a new OAuth2 token,
which must be submitted for all future calls over the Authorization request
header. This token will be active
for a given time period. |
PUT |
- |
|
DELETE |
- |
|
7.2
Tenants
Request: /Tenants
Request |
Features |
Remark |
GET |
+,P,F,Po |
All accessible tenants
with the provided user credentials will be returned. All available information
over this tenant will be delivered. Parameter parentId can contain: -
the parent tenants Id. |
POST |
+,Pr |
Create a new tenant bellow
the addressed tenant. Main Tenants cannot be created, only Subtenants. Parameter parentId must contain: -
the parent tenants Id |
PUT |
- |
|
DELETE |
- |
|
Request: /Tenants/{id}
Request |
Features |
Result |
GET |
+ |
The detailed information of
a tenant will be returned, includes all known properties |
POST |
- |
|
PUT |
+ |
Update only the delivered properties
of the addressed tenant. |
DELETE |
+ |
The tenant will be
deleted. |
Request: /Tenants/{id}/Billing/UsageHistory
Request |
Features |
Result |
GET |
+ |
The usage history of the
last 3 years will be aggregated to include only 36 entries (1 entry per
month). |
POST |
- |
|
PUT |
- |
|
DELETE |
- |
|
Request: /Tenants/{id}/M2MDevices
Request |
Features |
Result |
GET |
+ |
Gets a list of M2M devices
for the given tenant. |
POST |
- |
|
PUT |
- |
|
DELETE |
- |
|
Request: /Tenants/{id}/M2MDevices/{deviceId}
Request |
Features |
Result |
GET |
+ |
Gets details of the given
M2M device. |
POST |
- |
|
PUT |
- |
|
DELETE |
- |
|
Request: /Tenants/{id}/ActivationId/{activationId}/Validate
Request |
Features |
Result |
GET |
+ |
Gets information about a
redeemable activation id. |
POST |
- |
|
PUT |
- |
|
DELETE |
- |
|
Request: /Tenants/{id}/ActivationId/{activationId}/Redeem
Request |
Features |
Result |
GET |
- |
|
POST |
+ |
Redeems an activation id. |
PUT |
- |
|
DELETE |
- |
|
Request: /Tenants/{id}/AlarmWebhook
Request |
Features |
Result |
GET |
+,P,F |
The information for all
tenant’s alarm webhooks. |
POST |
+ |
Creates a webhook for the
given tenant, the following information should be sent in the request body:
|
PUT |
- |
|
DELETE |
- |
|
Request: /Tenants/{id}/AlarmWebhook/{webhookId}
Request |
Features |
Result |
GET |
+ |
The detailed information
for a tenant’s alarm webhook. |
POST |
- |
|
PUT |
+ |
Updates the information
for alarm webhook, only those supplied in the request (See POST method for
the available properties). |
DELETE |
+ |
Deletes the alarm webhook
for the given tenant. |
Request: /Tenants/{id}/DataPointValuesWebhook
Request |
Features |
Result |
GET |
+,P,F |
The information for all
tenant’s datapoint values webhooks. |
POST |
+ |
Creates a webhook for the
given tenant, the following information should be sent in the request body:
|
PUT |
- |
|
DELETE |
- |
|
Request: /Tenants/{id}/DataPointValuesWebhook/{webhookId}
Request |
Features |
Result |
GET |
+ |
The detailed information
for a tenant’s datapoint values webhook. |
POST |
- |
|
PUT |
+ |
Updates the information
for datapoint values webhook, only those supplied in the request (See POST
method for the available properties). |
DELETE |
+ |
Deletes the datapoint
values webhook for the given tenant. |
Request: /Tenants/{id}/VirtualCloudItemWriteWebhook
Request |
Features |
Result |
GET |
+ |
The detailed information
for a tenant’s virtual cloud item write webhook. |
POST |
+ |
Creates a webhook for the
given tenant, the following information should be sent in the request body:
|
PUT |
+ |
Updates the information
for the virtual cloud item write webhook, only those supplied in the request (See
POST method for the available properties). |
DELETE |
+ |
Deletes the virtual cloud
item write webhook for the given tenant. |
7.3
Plants
Request: /Plants
Request |
Features |
Result |
GET |
+,P,F,Po |
All accessible plants with
the provided user credentials will be returned. All available information over
this plant will be delivered. Parameter parentId can contain: -
the parent tenants Id. |
POST |
+,Pr |
Create a new plant. Parameter parentId must contain: -
the parent tenants Id |
PUT |
- |
|
DELETE |
- |
|
Request: /Plants/{id}
Request |
Features |
Result |
GET |
+ |
The detailed information of
a plant will be returned, includes all known properties |
POST |
- |
|
PUT |
+ |
Update only the delivered
properties of the addressed plant. |
DELETE |
+ |
The plant will be deleted
including all sub view nodes and data points. |
Request: Plants/{id}/ActiveAlarms
Request |
Features |
Result |
GET |
+,P,F |
All active alarms will be
returned. |
POST |
+ |
Adds one or more virtual
alarm events for the device. The request should contain appearing alarms with
a unique ID. Only acknowledged alarms are supported. |
PUT |
+ |
Add an alarm event to the
plant. |
DELETE |
+ |
Removes an alarm event for
the device |
Request: Plants/{id}/HistoryAlarms
Request |
Features |
Result |
GET |
+,P,F |
The alarm history of the
plant will be returned. |
POST |
- |
|
PUT |
- |
|
DELETE |
- |
|
Request: Plants/{id}/Notifications
Request |
Features |
Result |
GET |
- |
|
POST |
- |
|
PUT |
+ |
This request creates a new
plant notification. The following Parameters are needed from the Alarm Object
(9.2.1.1):
|
DELETE |
- |
|
Request: Plants/{id}/Upgrade/Info
Request |
Features |
Result |
GET |
+ |
Delivers the current upgrade status of the plant with the
information which are available in the Upgrade view: |
POST |
- |
|
PUT |
- |
|
DELETE |
- |
|
Request: Plants/{id}/Upgrade/Commands
Request |
Features |
Result |
||||||||||||||||||||||||||||||||||||
GET |
+,P |
Gets
a list of Upgrade commands. |
||||||||||||||||||||||||||||||||||||
POST |
+ |
Create
a new Upgrade command. The request delivers back a unique id to query
afterwards for the status of this command.
This request will come back immeadatly and trigger only the command
inside the cloud. Create
a new Upgrade command. The request delivers back a unique id to query afterwards
for the status of this command. This
request will come back immeadatly and trigger only the command inside the
cloud. The
following commands are possible:
|
||||||||||||||||||||||||||||||||||||
PUT |
- |
|
||||||||||||||||||||||||||||||||||||
DELETE |
- |
|
Request: Plants/{id}/Upgrade/Commands/{commandId}
Request |
Features |
Result |
GET |
+ |
Gets
the Upgrade command result 1
= active 2
= successful 3
= failed Additional
two strings are delivered with additional information, regarding the request
and the result. |
POST |
- |
|
PUT |
- |
|
DELETE |
- |
|
Request: Plants/{id}/Upgrade/Automated
Request |
Features |
Result |
|||||||||||||||||||||||||||
GET |
+,P |
Gets
a list of automated upgrade requests |
|||||||||||||||||||||||||||
POST |
+ |
Create
a new automated upgrade request. The request delivers back a unique id to
query afterwards for the status of this automated upgrade process. This request will come back immeadatly and
trigger only the upgrade process inside the cloud. The
body has to contain the following values:
|
|||||||||||||||||||||||||||
PUT |
- |
|
|||||||||||||||||||||||||||
DELETE |
- |
|
Request: Plants/{id}/Upgrade/Automated/{automatedUpgradeId}
Request |
Features |
Result |
|||||||||||||||||||||||||||||||||||||||
GET |
+ |
Gets
the upgrade information back:
|
|||||||||||||||||||||||||||||||||||||||
POST |
- |
|
|||||||||||||||||||||||||||||||||||||||
PUT |
+ |
Abort the automated
upgrade process. |
|||||||||||||||||||||||||||||||||||||||
DELETE |
- |
|
Request: Plants/Licenses
Request |
Features |
Result |
GET |
+,P |
Gets a list of plant licenses
available for the user. |
POST |
+ |
Add a plant license for
the given activation key. |
PUT |
- |
|
DELETE |
- |
|
Request: Plants/Licenses/{activationKey}
Request |
Features |
Result |
GET |
+ |
Gets info for a specific
plant license. |
POST |
+ |
Validates and purchase
license features with the given activation id. |
PUT |
- |
|
DELETE |
- |
|
Request: Plants/Licenses/{activationKey}/LicenseFile
Request |
Features |
Result |
GET |
+ |
Get the feature file for a
plant license. |
POST |
- |
|
PUT |
- |
|
DELETE |
- |
|
Request: Plants/Licenses/{activationKey}/Validate
Request |
Features |
Result |
GET |
+ |
Gets info for a specific
activation id. |
POST |
- |
|
PUT |
- |
|
DELETE |
- |
|
7.4
ViewNodes
Request: /ViewNodes
Request |
Features |
Result |
GET |
+,P,F,Po |
Delivers the list of
accessible view nodes. Returned will be a list of root view node Ids, with their
view node type. Currently will this be the
Tenants view nodes. Parameter parentId can contain: -
Parent plant Id -
Parent tenant Id (future). -
Parent view node Id (future) |
POST |
+,Pr (>=D13) |
Creates new view nodes,
under the addressed view node (currently only plant id is supported). Parameter parentId must contain: -
Parent tenants
id (future) -
Parent plants id -
View node id (future) |
PUT |
- |
|
DELETE |
- |
|
Request: /ViewNodes/{id}
Request |
Features |
Result |
GET |
+ |
The detailed information
of a view node will be returned, includes all known properties |
POST |
- |
|
PUT |
+ (>=D13) |
Update the delivered properties
of the addressed view node. Currently supports: -
plant id for referencing
virtual pages -
(virtual) pages for referencing
virtual cloud items -
virtual pages for updating
names |
DELETE |
+ (>=D13) |
The view node will be deleted.
The referenced cloud items (Data points) will be not touched. All underlaying
view nodes will be also deleted (future, because currently only flat list is supported).
|
Request: /ViewNodes /{id}/Values
Request |
Features |
Result |
GET |
+ |
Delivers only the actual
values of the referenced view node. |
POST |
- |
|
PUT |
- |
|
DELETE |
- |
|
7.5
DataPoints
Request: /DataPoints
Request |
Features |
Result |
GET |
+,P,F,Po |
Delivers the list of
accessible data points. This request delivers the verbose information. If
only the current values are needed then the request /DataPoints/Values must be called. To restrict the amount of
delivered points, the parentId or filterId must be used. Parameter parentId can contain: -
Parent plant Id |
POST |
+,Pr (>=D13) |
Create a new cloud item. Parameter parentId must contain: -
Parent plant id |
PUT |
+ |
Update of a given set of
datapoints, currently only webhooks enable/disable is supported. |
DELETE |
- |
|
Request: /DataPoints/Values
Request |
Features |
Result |
GET |
+,P,F,Po |
Delivers the list of accessible
data points. This request delivers only the current values. For verbose
information the request /DataPoints must be
called. To restrict the amount of
delivered points, the parentId or filterId must be used. Parameter parentId can contain: -
Parent plant Id |
POST |
- |
|
PUT |
+,Pr (>=D13) |
Update the current value for
virtual cloud items. The parentId must be used. Parameter parentId can contain: -
Parent plant Id |
DELETE |
- |
|
Request: /DataPoints/{id}
Request |
Features |
Result |
GET |
+ |
The detailed information
of a data point will be returned, includes all known properties |
POST |
- |
|
PUT |
+ + (>=D13) |
Write the new value to the
data point. In the future also other properties can be updated. The following
information should be sent in the request body:
OR Update the definition of
the virtual cloud item. Parameter parentId must contain: Parent plant id |
DELETE |
+ (>=D13) |
The cloud item (data point)
will be deleted, historical values are still available like for normal controller
cloud items. |
Request: /DataPoints/{id}/History (deprecated: use GET /Analytics/DataPoints/{id}
instead)
Request |
Features |
Result |
GET |
+,P,F |
The historical values of the
data point are returned. |
POST |
- |
|
PUT |
- |
|
DELETE |
- |
|
Request: /DataPoints/{id}/EnumerateHistory
Request |
Features |
Result |
GET |
+ |
The historical values of
the data point are returned (max 1000 cloud items). |
POST |
- |
|
PUT |
+,Pr (>=D13) |
Update the historical value
for virtual cloud items. The parentId must be used. Parameter parentId can contain: Parent plant Id |
DELETE |
- |
|
7.6
UserRoles
Request: /UserRoles
Request |
Features |
Result |
GET |
+,P,F,Po |
Delivers the list of
accessible user roles with all details. Parameter parentId can contain: -
Parent tenant Id |
POST |
+,Pr |
Create a new user role. Parameter parentId must contain: -
Parent tenant id |
PUT |
- |
|
DELETE |
- |
|
Request: /UserRoles/{id}
Request |
Features |
Result |
GET |
+ |
The detailed information
of a data point will be returned, includes all known properties |
POST |
- |
|
PUT |
+ |
Update the user role |
DELETE |
+ |
The user role will be
deleted and all reference from users to this role will be also deleted. |
7.7
Users
In the current implementation,
can only users accessed which are plant related, the administrative users can not be accessed.
Request: /Users
Request |
Features |
Result |
GET |
+,P,F,Po |
Delivers the list of
accessible users with all details. Parameter parentId can contain: -
Parent tenant Id -
Parent plant Id |
POST |
+,Pr |
Create a new user. Parameter parentId must contain: -
Parent plant Id |
PUT |
- |
|
DELETE |
- |
|
Request: /Users/{id}
Request |
Features |
Result |
GET |
+ |
The detailed information
of a user will be returned, includes all known properties |
POST |
- |
|
PUT |
+ |
Update the user |
DELETE |
+ |
The user role will be
deleted and all reference from users will be also deleted. |
Request: /Users/{id}/Assign
Request |
Features |
Result |
GET |
- |
|
POST |
- |
|
PUT |
+,Pr |
Adds a user to the specified
resource, e.g. to a plant. |
DELETE |
+,Pr |
Removes a user from the
specified resource. |
Request: /Users/Info
Request |
Features |
Result |
GET |
+,F |
Gets a list of users
defined in plants or systems. All users defined in any plant or system and
accessible to the caller will be delivered. Not accessible plants or systems
will be ignored and not included in the list. |
POST |
- |
|
PUT |
- |
|
DELETE |
- |
|
7.8
Application sets
Request: /ApplicationSets
Request |
Features |
Result |
GET |
+,P,F,Pr |
Delivers the list of accessible
application sets with all details. Parameter parentId must contain: -
Parent tenant Id |
POST |
+,Pr |
Create a new application
set. Parameter parentId must contain: -
Parent tenant Id |
PUT |
- |
|
DELETE |
- |
|
Request: /ApplicationSets/{id}
Request |
Features |
Result |
GET |
+ |
The detailed information
of an application set will be returned, includes all known properties including
the files id. |
POST |
- |
|
PUT |
+ |
Update the application set
properties, the files cannot be modified, therefore /Files has
to be used. |
DELETE |
+ |
The application set will
be deleted, and all references to the assigned plants, including all files. |
7.9
Files
Request to Files address
only the file metadata, to access the content /Files/{id}/Content has to be used.
Request: /Files
Request |
Features |
Result |
GET |
+,P,F,Pr |
Delivers the list of accessible
files with all details. Parameter parentId must contain: -
Parent application set Id -
Parent plants id |
POST |
+,Pr |
Create a new file. Parameter parentId must contain: -
Parent application set Id -
Parent plant id |
PUT |
- |
|
DELETE |
- |
|
Request: /Files/{id}
Request |
Features |
Result |
GET |
+ |
The detailed information
of a file will be returned, includes all known properties. |
POST |
- |
|
PUT |
+ |
Update the file
properties. |
DELETE |
+ |
The file will be deleted,
and all references to the assigned application sets. |
Request: /Files/{id}/Content
Request |
Features |
Result |
GET |
+ |
The http download will
start. |
POST |
- |
|
PUT |
+ |
Http upload of the file
content. |
DELETE |
+ |
Delete the file content. |
7.10
KPIs
Request: /KPIs
Request |
Features |
Result |
GET |
+,P,F,Po |
Delivers the list of key
performance indicators with all details. Parameter parentId can contain: -
Parent tenant Id |
POST |
+,Pr |
Create a new key performance
indicator. Parameter parentId must contain: -
Parent tenant Id |
PUT |
- |
|
DELETE |
- |
|
Request: /KPIs/{id}
Request |
Features |
Result |
GET |
+ |
The detailed information of
the key performance indicator will be returned, includes all known properties. |
POST |
- |
|
PUT |
+ |
Modify the key performance
indicator. |
DELETE |
+ |
Delete the key performance
indicator. |
7.11
AlarmNotifications
Request: /AlarmNotifications
Request |
Features |
Result |
GET |
+,P,F,Pr |
All accessible alarm
notifications will be returned. Parameter parentId can contain: -
Parent plant Id -
Parent tenant Id |
POST |
+ |
|
PUT |
- |
|
DELETE |
- |
|
Request: /AlarmNotifications/{id}
Request |
Features |
Result |
GET |
+ |
The detailed information
of the alarm notification will be returned, includes all known properties. |
POST |
- |
|
PUT |
+ |
Modify the alarm notification. |
DELETE |
+ |
Delete the alarm notification. |
7.12
Devices
Request: /Devices
Request |
Features |
Result |
GET |
- |
|
POST |
+,Pr |
Create a virtual device
and the corresponding plant. Parameter parentId must contain: -
Parent tenant Id The body has to contain the same information like for a plant creation. The response has to contain the virtual device user. This user has a
virtual email address and a fixed automatically created password. This user
credentials are then needed to access the APIs. This user is a normal plant user,
and if the password is known also the Web UI will work. The plant will get a new
entry in assignedResources to identify the {id} for Devices like: “VirtualDevices”:["52249740-258D-48BA-81FC-966B341D8DAB"]. |
PUT |
- |
|
DELETE |
- |
|
Request: /Devices/{id}
Request |
Features |
Result |
GET |
- |
|
POST |
- |
|
PUT |
+ |
Allow only the
modification of the Online Property. This must be called from the gateway to
confirm that the gateway has received the user from type VirtualDevicePlantRole. Also the gateway has to use this call to tell the cloud that the Gateway
is online. |
DELETE |
- |
|
Request: /Devices/{id}/Alarms
Request |
Features |
Result |
GET |
- |
|
POST |
- |
|
PUT |
+ |
This request creates a new
plant alarm via the virtual device. The following JSON object must be proviced which is similar to the
Alarm Report (9.2.1.1): { "alarms":[ "string":"Value Fault: noSensor", "eventState":3, "string":"Value Fault: OK", "eventState":0, actState (required): The actual site Alarm status.
Enumeration: -
0: no active alarm (no alarm
bell in site overview) -
1: new alarm (alarm bell shaking
in site overview) -
2: confirmed alarm (alarm
bell static in site overview) The alarms array contains the following values:
ENUMERATED {
|
DELETE |
- |
|
Request: /Devices/ActivationKey
Request |
Features |
Result |
GET |
+ |
Retrieve a newly generated
activation key (example: 2T5F4U-6DN7U-EBPGE-YS6FA-SKET4). |
POST |
- |
|
PUT |
- |
|
DELETE |
- |
|
7.13
Account
Request: /Account/RequestPasswordReset
Request |
Features |
Result |
GET |
- |
|
POST |
+ |
Requests an expiring token
for resetting the password of the given user (by email address). A mail will
be sent to the user with the token. This token must then be sent to the ResetPassword action along with a new password to
change the user's password. |
PUT |
- |
|
DELETE |
- |
|
Request: /Account/ResetPassword
Request |
Features |
Result |
GET |
- |
|
POST |
+ |
Specifies a new password
to set for the given user. |
PUT |
- |
|
DELETE |
- |