COMPONENT TECHNICAL SPECIFICATION - DTE INFORMATION LEVEL VPP4IPLATFORM NAME Digital Twin DESCRIPTION Pluggable API that executes the environment Modelling and the System Modelling, returning the execution output and manages the data traffic. TECHNOLOGY C#, Python, PowerApps OWNER IDEA WP / TASK WP3 / T3.1, T3.2, T3.3, T3.4 SECURITY Short description of security constraints as for AAA (E.g., SAPL / OAUTH / etc.) Security Technology: NOTE: all Components should be compliant with SAPL Authentication: ? Authorization: ?? Accounting: DEPLOYMENT Cloud environment NOTES Flexible to the needs of the platform Model Execution (Electrical Grid) FUNCTIONALITY ID TITLE / NAME DESCRIPTION INPUT 1 Execute Electrical Grid Module Endpoint that starts an execution of the electrical grid module Needs to include the timestamps in which the dynamic information will be read. Needs to identify the Electrical Grid (Island) to run the model. INPUT.MODEL The Content-Type value of the header is JSON, the body has the following schema INPUT FORMAT { "$schema": "http://json-schema.org/draft-04/schema#", "type": "object", "properties": { "dtStart": { "type": "string" }, "dtEnd": { "type": "string" }, "step": { "type": "integer" }, "islandId": { "type": "string" }, "addiccionalInformation": { "type": "object" "properties": "{" "node": "string" } }, } ] } }, "required": [ " islandId ", ] } INPUT.FROM OUTPUT OUTPUT.MODEL OUTPUT.FORMAT Platform, SKB The execution ID Execution ID { "$schema": "http://json-schema.org/draft-04/schema#", "type": "object", "properties": { "executionId": { "type": "integer" } }, "required": [ "executionId" ] } OUTPUT.TO SKB, Platform CONSTRAINTS INTERFACE RESTAPI: http://20.13.26.39:5001/DTE/executeModel/model_name NOTES FUNCTIONALITY ID TITLE / NAME DESCRIPTION INPUT INPUT.MODEL INPUT FORMAT INPUT.FROM OUTPUT 2 Retrive Electrical Grid exdecution state Endpoint that retrives the output of an execution of the electrical grid module The execution which state is wanted. The header of the request needs to include the execution id Header: execID = execution_id (int) Platform, SKB The execution state. In case it is finished, it retrieves the execution output. If there has been any error, it responds with the log information OUTPUT.MODEL The response CODE is 200 (execution finished), 201 (execution ongoing), 202 (execution not found/error running the execution). OUTPUT.FORMAT {"$schema": "http://json-schema.org/draft-04/schema#", "type": "object", "properties": { "results": { "type": "array", "items": [ { "type": "object", "properties": { "date_and_time": {"type": "string"}, "power_plants": { "type": "array", "items": [ { "type": "object", "properties": { "ID": {"type": "string"}, "frequency": {"type": "number”}, "generation": {"type": "number"} }, } ] }, "lines": { "type": "array", "items": [ { "type": "object", "properties": { "power_flow": {"type": "number"}, "stress": {"type": "number"} }, } ] }, "external_lines": { "type": "array", "items": [ { "type": "object", "properties": { "power_flow": {"type": "number"}, "stress": {"type": "number"} }, "required": [ "power_flow", "stress" ] } ] } }, } ] } }, } OUTPUT.TO SKB, Platform CONSTRAINTS INTERFACE RESTAPI: http://20.13.26.39:5001/DTE/executeModel/model_name NOTES Model Execution (PV Solar) FUNCTIONALITY ID TITLE / NAME DESCRIPTION INPUT 3 Execute PV Solar Module Endpoint that starts an execution of the PV Solar module Needs to include the timestamps in which the dynamic information will be read. Needs to identify the Electrical Grid (Island) to run the model. INPUT.MODEL The Content-Type value of the header is JSON, the body has the following schema INPUT FORMAT { "$schema": "http://json-schema.org/draft-04/schema#", "type": "object", "properties": { "dtStart": { "type": "string" }, "dtEnd": { "type": "string" }, "step": { "type": "integer" }, "islandId": { "type": "string" }, "addiccionalInformation": { "type": "object" "properties": "{" "node": "string" } }, } ] } }, "required": [ " islandId ", ] } INPUT.FROM OUTPUT OUTPUT.MODEL OUTPUT.FORMAT Platform, SKB The execution ID Execution ID { "$schema": "http://json-schema.org/draft-04/schema#", "type": "object", "properties": { "executionId": { "type": "integer" } }, "required": [ "executionId" ] } OUTPUT.TO SKB, Platform CONSTRAINTS INTERFACE RESTAPI: http://20.13.26.39:5001/DTE/executeModel/model_name NOTES FUNCTIONALITY ID TITLE / NAME DESCRIPTION INPUT INPUT.MODEL INPUT FORMAT INPUT.FROM OUTPUT 4 Retrive PV Solar execution state Endpoint that retrives the output of an execution of the PV Solar module The execution which state is wanted. The header of the request needs to include the execution id Header: execID = execution_id (int) Platform, SKB The execution state. In case it is finished, it retrieves the execution output. If there has been any error, it responds with the log information OUTPUT.MODEL The response CODE is 200 (execution finished), 201 (execution ongoing), 202 (execution not found/error running the execution). OUTPUT.FORMAT { "$schema": "http://json-schema.org/draft-04/schema#", "type": "object", "properties": { "dispatch 1": { "type": "object", "properties": { "timestamp": { "type": "string" }, "I": { "type": "number" }, "V": { "type": "number" }, "P": { "type": "number" }, "irr_mod": { "type": "number" } }, "required": [ "timestamp", "I", "V", "P", "irr_mod" ] } }, "required": [ "dispatch 1" ] } OUTPUT.TO SKB, Platform CONSTRAINTS INTERFACE RESTAPI: http://20.13.26.39:5001/DTE/executeModel/model_name NOTES Model Execution (Wind Turbine) FUNCTIONALITY ID TITLE / NAME DESCRIPTION INPUT 5 Execute Wind Turbine Module Endpoint that starts an execution of the PV Solar module Needs to include the timestamps in which the dynamic information will be read. Needs to identify the Electrical Grid (Island) to run the model. INPUT.MODEL The Content-Type value of the header is JSON, the body has the following schema INPUT FORMAT { "$schema": "http://json-schema.org/draft-04/schema#", "type": "object", "properties": { "dtStart": { "type": "string" }, "dtEnd": { "type": "string" }, "step": { "type": "integer" }, "islandId": { "type": "string" }, "addiccionalInformation": { "type": "object" "properties": "{" "node": "string" } }, } ] } }, "required": [ " islandId ", ] } INPUT.FROM OUTPUT OUTPUT.MODEL OUTPUT.FORMAT Platform, SKB The execution ID Execution ID { "$schema": "http://json-schema.org/draft-04/schema#", "type": "object", "properties": { "executionId": { "type": "integer" } }, "required": [ "executionId" ] } OUTPUT.TO SKB, Platform CONSTRAINTS INTERFACE RESTAPI: http://20.13.26.39:5001/DTE/executeModel/model_name NOTES FUNCTIONALITY ID TITLE / NAME DESCRIPTION INPUT INPUT.MODEL INPUT FORMAT INPUT.FROM OUTPUT 6 Retrive Wind Turbine execution state Endpoint that retrives the output of an execution of the Wind Turbine module The execution which state is wanted. The header of the request needs to include the execution id Header: execID = execution_id (int) Platform, SKB The execution state. In case it is finished, it retrieves the execution output. If there has been any error, it responds with the log information OUTPUT.MODEL The response CODE is 200 (execution finished), 201 (execution ongoing), 202 (execution not found/error running the execution). OUTPUT.FORMAT { "$schema": "http://json-schema.org/draft-04/schema#", "type": "object", "properties": { "dispatch 1": { "type": "object", "properties": { "timestamp": { "type": "string" }, "P": { "type": "number" }, "cp": { "type": "number" }, "mod_V": { "type": "number" } }, "required": [ "timestamp", "P", "cp", "mod_V" ] } }, "required": [ "dispatch 1" ] } OUTPUT.TO SKB, Platform CONSTRAINTS INTERFACE RESTAPI: http://20.13.26.39:5001/DTE/executeModel/model_name NOTES Model Execution (Lithium Battery) FUNCTIONALITY ID TITLE / NAME DESCRIPTION INPUT 7 Execute Lithuim Battery Module Endpoint that starts an execution of the Lithuim Battery module Needs to include the timestamps in which the dynamic information will be read. Needs to identify the Electrical Grid (Island) to run the model. INPUT.MODEL The Content-Type value of the header is JSON, the body has the following schema INPUT FORMAT { "$schema": "http://json-schema.org/draft-04/schema#", "type": "object", "properties": { "dtStart": { "type": "string" }, "dtEnd": { "type": "string" }, "step": { "type": "integer" }, "islandId": { "type": "string" }, "addiccionalInformation": { "type": "object" "properties": "{" "node": "string" } }, } ] } }, "required": [ " islandId ", ] } INPUT.FROM OUTPUT OUTPUT.MODEL OUTPUT.FORMAT Platform, SKB The execution ID Execution ID { "$schema": "http://json-schema.org/draft-04/schema#", "type": "object", "properties": { "executionId": { "type": "integer" } }, "required": [ "executionId" ] } OUTPUT.TO SKB, Platform CONSTRAINTS INTERFACE RESTAPI: http://20.13.26.39:5001/DTE/executeModel/model_name NOTES FUNCTIONALITY ID TITLE / NAME DESCRIPTION INPUT INPUT.MODEL INPUT FORMAT INPUT.FROM OUTPUT 8 Retrive Lithium Battery execution state Endpoint that retrives the output of an execution of the Lithuim Battery module The execution which state is wanted. The header of the request needs to include the execution id Header: execID = execution_id (int) Platform, SKB The execution state. In case it is finished, it retrieves the execution output. If there has been any error, it responds with the log information OUTPUT.MODEL The response CODE is 200 (execution finished), 201 (execution ongoing), 202 (execution not found/error running the execution). OUTPUT.FORMAT { "$schema": "http://json-schema.org/draft-04/schema#", "type": "object", "properties": { "dispatch 1": { "type": "object", "properties": { "timestamp": { "type": "string" }, "V": { "type": "number" }, "I": { "type": "number" }, "P": { "type": "number" }, "SOC": { "type": "number" }, "It": { "type": "number" }, "SOH": { "type": "number" } }, "required": [ "timestamp", "V", "I", "P", "SOC", "It", "SOH" ] } }, "required": [ "dispatch 1" ] } OUTPUT.TO SKB, Platform CONSTRAINTS INTERFACE RESTAPI: http://20.13.26.39:5001/DTE/executeModel/model_name NOTES Model Execution (Regenerative Hydrogen - PEM Electrolyzers) FUNCTIONALITY ID TITLE / NAME DESCRIPTION INPUT 9 Execute PEM Electrolyzers Module Endpoint that starts an execution of the PEM Electrolyzers module Needs to include the timestamps in which the dynamic information will be read. Needs to identify the Electrical Grid (Island) to run the model. INPUT.MODEL The Content-Type value of the header is JSON, the body has the following schema INPUT FORMAT { "$schema": "http://json-schema.org/draft-04/schema#", "type": "object", "properties": { "dtStart": { "type": "string" }, "dtEnd": { "type": "string" }, "step": { "type": "integer" }, "islandId": { "type": "string" }, "addiccionalInformation": { "type": "object" "properties": "{" "node": "string" } }, } ] } }, "required": [ " islandId ", ] } INPUT.FROM OUTPUT OUTPUT.MODEL OUTPUT.FORMAT Platform, SKB The execution ID Execution ID { "$schema": "http://json-schema.org/draft-04/schema#", "type": "object", "properties": { "executionId": { "type": "integer" } }, "required": [ "executionId" ] } OUTPUT.TO SKB, Platform CONSTRAINTS INTERFACE RESTAPI: http://20.13.26.39:5001/DTE/executeModel/model_name NOTES FUNCTIONALITY ID 10 TITLE / NAME DESCRIPTION INPUT INPUT.MODEL INPUT FORMAT INPUT.FROM OUTPUT Retrive PEM Electrolyzers execution state Endpoint that retrives the output of an execution of the electrical grid module The execution which state is wanted. The header of the request needs to include the execution id Header: execID = execution_id (int) Platform, SKB The execution state. In case it is finished, it retrieves the execution output. If there has been any error, it responds with the log information OUTPUT.MODEL The response CODE is 200 (execution finished), 201 (execution ongoing), 202 (execution not found/error running the execution). OUTPUT.FORMAT { "$schema": "http://json-schema.org/draft-04/schema#", "type": "object", "properties": { "dispatch 1": { "type": "object", "properties": { "timestamp": {"type": "string"}, "fuel_cell": { "type": "object", "properties": { "V": {"type": "number"}, "I": {"type": "number”}, "power": {"type": "integer"} }, "required": [ "V", "I", "power" ] }, "storage": { "type": "object", "properties": { "flow_rate": { "type": "number" }, "pressure": { "type": "number" }, "SOC": { "type": "number" }, "kWh_remaining": { "type": "number" } }, "required": [ "flow_rate", "pressure", "SOC", "kWh_remaining" ] } }, "required": [ "timestamp", "fuel_cell", "storage" ] } }, "required": [ "dispatch 1" ] OUTPUT.TO SKB, Platform CONSTRAINTS INTERFACE RESTAPI: http://20.13.26.39:5001/DTE/executeModel/model_name NOTES TESTING AND VALIDATION TOOL FUNCTIONALITY ID TITLE / NAME DESCRIPTION INPUT INPUT.MODEL INPUT FORMAT INPUT.FROM OUTPUT OUTPUT.MODEL OUTPUT.FORMAT OUTPUT.TO CONSTRAINTS INTERFACE NOTES 11 Testing and Validation Tool App that allows to temporarly change the static information to run a new scenario. The user needs to change the static parameters in the GUI designed for it. This creates a new scenario and runs an execution. The user can see the result of the simulation as a graph SKB, Platform PowerApps Needs to be integrated as an app in the User Interface COMPONENT TECHNICAL SPECIFICATION - SKB INFORMATION LEVEL NAME DESCRIPTION TECHNOLOGY OWNER WP / TASK SECURITY VPP4IPLATFORM SKB Shared Knowledge Base. SQL Database hosted on the DT infrastructure. SQL Server Short description of security constraints as for AAA (E.g., SAPL / OAUTH / etc.) Security Technology: NOTE: all Components should be compliant with SAPL Authentication: ? Authorization: ?? Accounting: DEPLOYMENT Cloud environment NOTES Flexible to the needs of the platform Data Manager FUNCTIONALITY ID TITLE / NAME DESCRIPTION INPUT INPUT.MODEL INPUT FORMAT INPUT.FROM OUTPUT OUTPUT.MODEL OUTPUT.FORMAT OUTPUT.TO CONSTRAINTS INTERFACE NOTES 1 Data Manager API API that allows the data exange with the SKB Pending. Needs to include the information to be loaded on the database . The Content-Type value of the header is JSON Platform, Node Code 200 in case the load was succesfull. JSON Platform, Node RESTAPI