Documentation to use the Elia Infeed web services



Similar documents
Data Mailbox. support.ewon.biz. Reference Guide

Webapps Vulnerability Report

IoT-Ticket.com. Your Ticket to the Internet of Things and beyond. IoT API

Manual. Netumo NETUMO HELP MANUAL Copyright Netumo 2014 All Rights Reserved

ODBC Client Driver Help Kepware, Inc.

Mobility Information Series

Qlik REST Connector Installation and User Guide

XML Processing and Web Services. Chapter 17

Technical documentation

Programming Autodesk PLM 360 Using REST. Doug Redmond Software Engineer, Autodesk

Fairsail REST API: Guide for Developers

Export of audit trail events from Salto software. Version 2.0

Core Components Data Type Catalogue Version October 2011

[MS-SPACSOM]: Intellectual Property Rights Notice for Open Specifications Documentation

Microsoft Dynamics NAV

BS1000 command and backlog protocol

Remote Access API 2.0

No Trade Secrets. Microsoft does not claim any trade secret rights in this documentation.

DeltaPAY v2 Merchant Integration Specifications (HTML - v1.9)

Mini-Guide for Using MyBRD Net

LATITUDE Patient Management System

Advanced HTTP API Documentation

Cleaning Encrypted Traffic

Reading an sent with Voltage Secur . Using the Voltage Secur Zero Download Messenger (ZDM)

API documentation - 1 -

Time Synchronization & Timekeeping

Specific API Usage Limitations... 7 Daily Limitation... 7 Concurrency Limitation... 7 Bulk Use API Description... 8 Site Data API...

API Guide v /11/2013

Online signature API. Terms used in this document. The API in brief. Version 0.20,

QIWI Wallet Pull Payments API

DEVELOPING CONTRACT - DRIVEN WEB SERVICES USING JDEVELOPER. The purpose of this tutorial is to develop a java web service using a top-down approach.

Cabot Consulting Oracle Solutions. The Benefits of this Approach. Infrastructure Requirements

OASIS Bill Pay Service

Users Guide. FTP/400 File Transfer API and Remote Command Server Version By RJS Software Systems, Inc.

ipayment Gateway API (IPG API)

Sentinel EMS v7.1 Web Services Guide

BlackBerry Business Cloud Services. Administration Guide

Data Transfer Management with esync 1.5

INTEGRATING MICROSOFT DYNAMICS CRM WITH SIMEGO DS3

Advanced Install & Configuration Guide

Term Paper. P r o f. D r. E d u a r d H e i n d l. H o c h s c h u l e F u r t w a n g e n U n i v e r s i t y. P r e s e n t e d T o :

Inteset Secure Lockdown ver. 2.0

LabVIEW Internet Toolkit User Guide

Aras Innovator Internet Explorer Client Configuration

DOMUSBOX. User guide. Index

REST Webservices API Reference Manual

User manual BS1000 LAN base station

Real-Time Connectivity Specifications For. 270/271 and 276/277 Inquiry Transactions. United Concordia Dental (UCD)

Alpha e-pay v2 Merchant Integration Specifications (HTML - v1.9)

Previewing & Publishing

KC Data Integration Web Service Developer Guide

Audit Management Reference

Revisiting SQL Injection Will we ever get it right? Michael Sutton, Security Evangelist

[MS-ASMS]: Exchange ActiveSync: Short Message Service (SMS) Protocol

SNMP Web Management. User s Manual For SNMP Web Card/Box

TMS Phone Books Troubleshoot Guide

Contents. 2 Alfresco API Version 1.0

Novell Sentinel Log Manager 1.2 Release Notes. 1 What s New. 1.1 Enhancements to Licenses. Novell. February 2011

Release Notes: J-Web Application Package Release 15.1A1 for Juniper Networks EX Series Ethernet Switches

Selenium WebDriver. Gianluca Carbone. Selenium WebDriver 1

Sophos Mobile Control Installation guide. Product version: 3

INTRODUCING AZURE SEARCH

Cloud Elements! Marketing Hub Provisioning and Usage Guide!

Sage CRM 7.3 SP2. Release Notes. Revision: SYS-REA-ENG-7.3SP2-1.0 Updated: April 2016

HireDesk API V1.0 Developer s Guide

IP addresses. IP addresses: IPv4: 32 bits:

Final Report - HydrometDB Belize s Climatic Database Management System. Executive Summary

Ethernet. Customer Provided Equipment Configuring the Ethernet port.

JAVASCRIPT AND COOKIES

Sage CRM Connector Tool White Paper

COMMERCIAL - IN CONFIDENCE

Performance Testing for Ajax Applications

Detailed Specifications

Government of Saskatchewan Executive Council. Oracle Sourcing isupplier User Guide

Grandstream XML Application Guide Three XML Applications

ResPAK Internet Module

IBM Information Server

Windows Server Update Services 3.0 SP2 Step By Step Guide

NEMSIS v3 Web Services Guide

Our server platform consists of Microsoft Windows 2008 servers with SQL Server 2005 which are under 24/24 monitoring.

BMC Track-It! Web. Web Services API Guide. Version 11.3

Safeguard Ecommerce Integration / API

The presentation explains how to create and access the web services using the user interface. WebServices.ppt. Page 1 of 14

E-payment. Service description

Step-by-Step Guide to Active Directory Bulk Import and Export

The full setup includes the server itself, the server control panel, Firebird Database Server, and three sample applications with source code.

Performance Testing Web 2.0

DTD Tutorial. About the tutorial. Tutorial

Grandstream Networks, Inc.

Deltek Touch Time & Expense for Vision 1.3. Release Notes

Passcreator API Documentation

API Reference Guide. API Version 1. Copyright Platfora 2016

Jobs Guide Identity Manager February 10, 2012

RoomWizard Synchronization Software Manual Installation Instructions

Enterprise Asset Management System

Transcription:

Documentation to use the Elia Infeed web services Elia Version 1.0 2013-10-03 Printed on 3/10/13 10:22 Page 1 of 20

Table of Contents Chapter 1. Introduction... 4 1.1. Elia Infeed web page... 4 1.2. Elia Infeed web services... 4 1.3. Availability of web services... 4 Chapter 2. Glossary... 5 Chapter 3. HTTP Communication... 6 3.1. Connecting to the Elia Infeed web services... 6 3.2. HTTP communication through the Web browser... 7 3.3. HTTP communication through VB Script... 9 Chapter 4. Messages specifications... 10 4.1. Methods answers... 10 4.1.1. Method GetList answer... 10 4.1.2. Method GetLastValuesXml answer... 10 4.1.3. Method GetCurrentDayValues answer... 10 4.2. XML reply format... 10 4.2.1. Field InfeedInjectionListDataResponse and InfeedInjectionDataResponse... 10 4.2.2. Field InfeedInjectionValuesData... 11 4.2.3. Field ErrorMessage... 11 4.2.4. Field InjectionData... 11 4.2.5. Field Injection... 11 4.2.6. Field InfeedInjectionData... 11 4.2.7. Field InfeedLastValuesDetail... 12 4.2.8. Field InfeedHistoricalValue... 13 4.2.9. Field LastValue... 13 4.3. Method GetLastvalues... 14 4.3.1. Field Lastvalues... 15 4.4. Data types... 15 Chapter 5. JSON date format... 17 5.1. JSON date format... 17 Chapter 6. Annex examples of replies... 18 6.1.1. Example of GetLastValues answer... 18 6.1.2. Example of GetLastValuesXml answer... 18 6.1.3. Example of GetList answer... 19 Printed on 3/10/13 10:22 Page 2 of 20

6.1.4. Example of GetCurrentDayvalues answer... 20 6.2. XSDs of the Submitted XML messages... 20 Printed on 3/10/13 10:22 Page 3 of 20

Chapter 1. Introduction 1.1. Elia Infeed web page A new web page is available on the Elia web site : The Elia Infeed web page. It can be reached using the address http://www.elia.be/en/grid-data/balancing/infeed. This web page displays only the last values available for the injection stations. 1.2. Elia Infeed web services Elia supposes that some person or company interested in these values will develop an IT application to handle these values. To facilitate the development of these applications, Elia puts at disposal a list of web services that returns last values and daily values. The historical values from previous months are available under CSV files format on the Elia Infeed web page but not under the web service. No APIs are provided and thus it is up to the interested person to implement the call and the decomposition of the response. 1.3. Availability of web services Currently, the calls to the Elia web services are anonymous, free and do not require any certificate or confidentiality data as user id password nor any pre-registration. However Elia may, at any time and without any notice restrict the usage of these web services for security reasons. Printed on 3/10/13 10:22 Page 4 of 20

Chapter 2. Glossary Term ARP DSO Injection Station JSON REST VB VB Script Description Access Responsible Party. The ARP is responsible for the energy balance of the injections and off takes he manages. An ARP is the only party that can exchange, import and export energy. To do so, he has to submit nominations. The ARP is therefore the company that uses Elia Infeed web services. Note that the call is open to any person. No user id or password is required Distribution System Operator The post on the Elia Grid where some electricity is send to some DSO electrical grid JavaScript Object Notation, is a text-based open standard designed for human-readable data interchange Representational State Transfer Visual Basic Visual Basic Scripting Edition Printed on 3/10/13 10:22 Page 5 of 20

Chapter 3. HTTP Communication This section describes how to use the Elia Infeed web services by calling some methods and receiving an answer in following formats: - XML - JSON 3.1. Connecting to the Elia Infeed web services The web services root URL is : http://publications.elia.be/publications/publications/infeed.v1.svc All the examples of call in this document refer to this publication web site. Structure of the web site The Elia Infeed web services consists of following methods using the REST protocol: GetLastvalues is used to get the last 2 minutes values of all Injection stations: the result is a JSON message. GetLastvaluesXML is used to get the last 2 minutes values of all Injection stations: the result is an XML message. GetList is used to get the list of all injections stations with their characteristics and last values: It is an XMLmessage. GetCurrentDayvalues is used to all the values for all 2 minutes and all injections stations for the current day. The following table indicates which message types are expected and returned by the different pages: Page Input messa ge Output message Format GetLastvalues None JSON list JSON GetLastvaluesXml None InfeedInjectionValuesData XML GetList None InfeedInjectionListDataResponse See Method GetList answer GetCurrentDayvalues None InfeedInjectionListDataResponse Method GetCurrentDayValues answer XML XML Printed on 3/10/13 10:22 Page 6 of 20

Handling the connection To establish an Internet connection with the Elia Infeed web services, the following rules must be observed: HTTP must be used. No user id or password is required. Request must be sent by HTTP GET method. The content type should be "text/xml" and character set charset="iso-8859-1" (except if your system does not support it). Error handling In case of an error (invalid request, internal error or else), each page return. an Error message or an HTTP status of 510, 400, 401, etc. instead of their normal output. 3.2. HTTP communication through the Web browser For the facility of the developer, the Elia web services may be called also from a web browser. Here is an example of how to communicate with the Elia Infeed web services with your browser: When typing the web service complete URL address on the URL of the web browser, the answer appears as a XML page: Following tests are made using Internet Explorer 10. Example of call http://publications.elia.be/publications/publications/infeed.v1.svc/getlist Printed on 3/10/13 10:22 Page 7 of 20

Following browsers are also supported: - Chrome - Opera - Mozilla - FireFox Printed on 3/10/13 10:22 Page 8 of 20

3.3. HTTP communication through VB Script Here is an example of how to communicate with the Elia Infeed web services with a VB Script code. This method is compatible with Windows 7. Note that the Microsoft XML Parser (MSXML) needs to be installed on the computers that will execute the script. 'This script calls the GetList method of Elia Infeed Web service baseurl = "http://publications.elia.be/publications/publications/infeed.v1.svc» Set o = CreateObject("Msxml2.ServerXMLHTTP") o.open "GET", baseurl & "/GetList" o.setrequestheader "Content-type","text/xml;charset=""ISO-8859-1""" o.setrequestheader "Content-length",len(getData) o.send getdata WScript.Echo "HTTP STATUS : " & ostatus & " text " & o.statustext WScript.Echo o.responsetext Each main command is described here below: Set o = CreateObject("Msxml2.ServerXMLHTTP") We create an instance of the ServerXMLHTTP object that serves to establish HTTP connection to the Elia Infeed web services. o.open "GET", baseurl & "/GetList" Initialize an XMLHTTP request and specify the method, URL of the information for the request. In this case we call the GET method of the GetList page in synchronous mode o.setrequestheader "Content-type","text/xml;charset=""ISO-8859-1""" o.setrequestheader "Content-length",len(getData) We specify that the type of the request is XML, the length of the data we will transmit to the called page and the encoding must be ISO-8859-1 o.send getdata We send the HTTP request to the Elia Infeed web services and wait for the response. 2 following lines allow to display on the screen the result of the request and the status of this result: WScript.Echo "HTTP STATUS : " & ostatus & " text " & o.statustext WScript.Echo o.responsetext Printed on 3/10/13 10:22 Page 9 of 20

Chapter 4. Messages specifications This chapter explains in an object approach the context of the messages. 4.1. Methods answers 4.1.1. Method GetList answer This request allows to know all injection stations from the Elia Grid to the DSO This request has no input parameter Output parameters InfeedInjectionListDataResponse An example of reply can be found at this paragraph : Example of GetList answer 4.1.2. Method GetLastValuesXml answer This request allows to know all injection stations from the Elia Grid to the DSO This request has no input parameter Output parameters InfeedInjectionListDataResponse An example of reply can be found at this paragraph : Example of GetLastValuesXml answer 4.1.3. Method GetCurrentDayValues answer This method allow to retrieve all the values from all the injection stations from the beginning of the current day until the last values Output parameters InfeedInjectionValuesData An example of reply can be found at this paragraph : Example of GetCurrentDayvalues answer 4.2. XML reply format The XSD for InfeedInjectionListDataResponse, InfeedInjectionValuesData and InfeedInjectionListDataResponse are referenced in XSDs of the Submitted XML messages 4.2.1. Field InfeedInjectionListDataResponse and InfeedInjectionDataResponse These 2 fields use the same structure in a slightly different way Field InfeedInjectionListDataResponse InfeedInjectionDataResponse Content: Use the field LastValue HistoricalValues ErrorMessage mandatory String Possible error InjectionData mandatory int Interval period Printed on 3/10/13 10:22 Page 10 of 20

LastTime Mandatory in InfeedInjectionLi stdataresponse datetime Date and Time of the last Time 4.2.2. Field InfeedInjectionValuesData ErrorMessage mandatory String Possible error InjectionData mandatory int Interval period LastTime Mandatory in InfeedInjectionLi stdataresponse LastValuesDetails mandatory datetime List of InfeedLastValues Detail Date and Time of the last Time Information about each last value 4.2.3. Field ErrorMessage Cardinality Data type The field is always present. But is empty if the result is OK String 4.2.4. Field InjectionData Cardinality Data type 4.2.5. Field Injection Cardinality Data type Optional : this field is not used if there is an error The list of Injection stations with their last values : field Injection Mandatory The list of Injection stations with their last values : field InfeedInjectionData 4.2.6. Field InfeedInjectionData This field represents an Injection Station with all its features and the related values Dso mandatory String The list of DSO associated with this Injection station: separated by / EanCode mandatory String String of 18 digits representing the EAN code (defined by Elia) of the Injection station Printed on 3/10/13 10:22 Page 11 of 20

HistoricalValues Optional List of InfeedHistoricalValue List of historical values of this day used in InfeedInjectionDataResponse Present but with no value in InfeedInjectionListDataResponse InjectionStation mandatory String Name of the injection station LastValue mandatory LastValue Information about the last value used in InfeedInjectionListDataResponse Location mandatory City name Present but with no value in InfeedInjectionDataResponse Region mandatory List of Belgian region The list of Regions associated with this Injection station: separated by / VoltageLevel mandatory The injection station voltage 4.2.7. Field InfeedLastValuesDetail Possible values: - Brussels - Flanders - Wallonia Any number between 1 and 380. The current values are: - 10-11 - 12-13 - 15-30 EanCode mandatory String String of 18 digits representing the EAN code (defined by Elia) of the Injection station Flag mandatory Enumerated Valid : information is valid Invalid : the information is invalid LastValue mandatory LastValue Information about the last value used in InfeedInjectionListDataResponse Printed on 3/10/13 10:22 Page 12 of 20

4.2.8. Field InfeedHistoricalValue Present but with no value in InfeedInjectionDataResponse This field is always present but have no information if no data is available Remark: if an historical value is not available, then related field InfeedHistoricalValue is not present Time mandatory Date Date in the format Value mandatory Double Double: 4.2.9. Field LastValue Example: 2013-08-13T00:01:00 From 9999.999 to 9999.999 Maximum 3 decimals This fieldis always present but has no information if no data is available EanCode mandatory String String of 18 digits representing the EAN code (defined by Elia) of the Injection station Same value as the EANCode indicated above : it allow to treat only these elements Flag mandatory Enumerated Valid : information is valid Invalid : the information is invalid InjectionStation mandatory String Name of the injection station LastValue mandatory Double Double: From 9999.999 to 9999.999 Maximum 3 decimals Printed on 3/10/13 10:22 Page 13 of 20

4.3. Method GetLastvalues The method GetLastvalues returns a JSON format. Please note: - This method returns only the last values within a compacted message This is why Elia has chosen this format and recommend to use it in a running application for performance purpose - Please note that GetList and GetLastvaluesXml return also the last values within an Xml format - Using Internet Explorer, it impose to save the content within a file - Elia reserves the right to limit the call frequency responses for security purpose Example on http://publications.elia.be/publications/publications/infeed.v1.svc/getlastvalues An example of reply can be found at this paragraph : Example of GetLastValues answer LastTime mandatory Date and Time The date and time of the last values in the JSO format (See JSON date format ) LastValuesDetails mandatory List of Lastvalues List of last values for each Injection Printed on 3/10/13 10:22 Page 14 of 20

4.3.1. Field Lastvalues station EanCode mandatory String String of 18 digits representing the EAN code (defined by Elia) of the Injection station Same value as the EANCode indicated above : it allow to treat only these elements Flag mandatory Enumerated Valid : information is valid LastValue mandatory Double Double: 4.4. Data types Invalid : the information is invalid From 9999.999 to 9999.999 Maximum 3 decimals The following table describes all the data types allowed in XML data structure specifications: Data type Typical XML representation Lexical pattern Comments string.* The following constraints can be expressed: minimum length, maximum length, pattern, choice of valid values. decimal -1.23, 12678967.543233, +100000.00, 210 [-+]?[0-9]+(\.[0-9]+)? boolean 1, 0, true, false 1 0 true false The following constraints can be expressed: minimum value, maximum value. Values must have at most 28 digits Printed on 3/10/13 10:22 Page 15 of 20

Data type Typical XML representation Lexical pattern Comments datetime Date and time in local time To indicate 1:20 pm on May the 31st, 1999 in Brussels, one would write: 1999-05-31T13:20:00 [0-9]{4}-[0-9]{2}- [0-9]{2}T[0-9]{2}(:[0-9]{2}(:[0-9]{2})?)?([+-][0-9]{2}(:[0-9]{2})?)? time 13:20:00+02:00 [0-9]{2}(:[0-9]{2}(:[0-9]{2}?)?([+-][0-9]{2}(:[0-9]{2})?)? Represents a time instant. If the time zone offset is not indicated, UTC is assumed. See also the example below for daylight saving time handling. Represents a time instant in the day. If the time zone offset is not indicated, UTC is assumed. See also the example below for daylight saving time handling. Printed on 3/10/13 10:22 Page 16 of 20

Chapter 5. JSON date format JSON is becoming very popular format to exchange data between client and server in Web 2.0 applications. 5.1. JSON date format Everything works very smooth apart from date in JSON. Date format in JSON is something like \/Date(-606769200000+0200)\/ where -606769200000 is number of milliseconds from January 1, 1970 and +0200 is time offset (Belgian summer time). The web has many routines to transform this date and time Here below the way to do in C# (.NET) string jsondate = "1376404020000+0200"; string datepart = jsondate.substring(0, jsondate.indexof('+')); string offset = jsondate.substring(jsondate.indexof('+'), 3); DateTime dt = new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc).AddMilliseconds(Int64.Parse(datePart)); DateTimeOffset dto = new DateTimeOffset(dt.ToLocalTime(), TimeSpan.FromHours(Double.Parse(offset))); Or an example in VBA Const test = "1376400180000+0200" Dim datestr As String: dt = Left$(test, 13) Dim Houroffset As String: off = Mid$(test, 14) Dim d As Date: d = DateAdd("s", CCur(dt) / 1000, "01/01/1970") Printed on 3/10/13 10:22 Page 17 of 20

Chapter 6. Annex examples of replies 6.1.1. Example of GetLastValues answer { "LastTime":"\/Date(1376406180000+0200)\/", "LastValuesDetails": [ {"EanCode":"541453151537722340","Flag":0,"LastValue":-1.620}, {"EanCode":"541453162133425474","Flag":0,"LastValue":-7.005}, [other Injection station values] } {"EanCode":"541453139472597834","Flag":0,"LastValue":36.930}, ] 6.1.2. Example of GetLastValuesXml answer <InfeedInjectionValuesData xmlns="http://schemas.datacontract.org/2004/07/elia.publicationservice.domaininterface.infeed.v1" xmlns:i="http://www.w3.org/2001/xmlschema-instance"> <LastTime>2013-09-04T13:15:00+02:00</LastTime> <LastValuesDetails> <InfeedLastValuesDetail> <EanCode>541453105015200370</EanCode> <Flag>Valid</Flag> <LastValue>154.618</LastValue> </InfeedLastValuesDetail> [other Injection station values] <InfeedLastValuesDetail> <EanCode>541453151537722340</EanCode> <Flag>Valid</Flag> <LastValue>-2.120</LastValue> </InfeedLastValuesDetail> </InfeedLastValuesDetail> </LastValuesDetails> </InfeedInjectionValuesData> Printed on 3/10/13 10:22 Page 18 of 20

6.1.3. Example of GetList answer <InfeedInjectionListDataResponse xmlns="http://schemas.datacontract.org/2004/07/elia.publicationservice.domaininterface.infeed.v1" xmlns:i="http://www.w3.org/2001/xmlschema-instance"> <ErrorMessage/> <InjectionData> <Injections> <InfeedInjectionData> <Dso>TECTEO</Dso> <EanCode>541453113100397584</EanCode> <HistoricalValues i:nil="true"/> <InjectionStation>HANNU 15</InjectionStation> <LastValue> <EanCode>541453113100397584</EanCode> <Flag>Valid</Flag> <LastValue>3.000</LastValue> </LastValue> <Location>RDHANNU</Location> <Region>Wallonia</Region> <VoltageLevel>15</VoltageLevel> </InfeedInjectionData> [list of injection stations] </Injections> <LastTime>2013-08-13T15:23:00+02:00</LastTime> </InjectionData> </InfeedInjectionListDataResponse> Printed on 3/10/13 10:22 Page 19 of 20

6.1.4. Example of GetCurrentDayvalues answer <InfeedInjectionDataResponse xmlns="http://schemas.datacontract.org/2004/07/elia.publicationservice.domaininterface.infeed.v1" xmlns:i="http://www.w3.org/2001/xmlschema-instance"> <ErrorMessage/> <InjectionData> <InfeedInjectionData> <Dso>TECTEO</Dso> <EanCode>541453113100397584</EanCode> <HistoricalValues> <InfeedHistoricalValue> <Time>2013-08-13T00:01:00</Time> <Value>-0.10</Value> </InfeedHistoricalValue> [list of Infeed stations with there characteristics] </HistoricalValues> <InjectionStation>test</InjectionStation> <LastValue i:nil="true"/> <Location></Location> <Region>Flanders/Wallonia</Region> <VoltageLevel>30</VoltageLevel> </InfeedInjectionData> </InjectionData> </InfeedInjectionDataResponse> 6.2. XSDs of the Submitted XML messages In addition to the original message specifications, a XSD (XML Schema), exist for all the creation messages at the following addresses: http://nedi1.elia.be/namespaces/public/scheduling/infeed.xsd Printed on 3/10/13 10:22 Page 20 of 20