| GET | /api/v5/meteringpoints/{Ean}/readings/{Filter}/{DateFrom} | Shows all readings available after DateFrom | |
|---|---|---|---|
| GET | /api/v5/meteringpoints/{Ean}/readings/{Filter}/{DateFrom}/{DateTo} | Shows readings for period |
import java.math.*;
import java.util.*;
import net.servicestack.client.*;
public class dtos
{
/**
* Get readings of a metering point
*/
@Api(Description="Get readings of a metering point")
public static class Reading extends Generic
{
/**
* Request of details of specific metering point with Ean
*/
@ApiMember(DataType="EAN (18 numbers)", Description="Request of details of specific metering point with Ean", Name="Ean")
public String Ean = null;
/**
* Detail gives hourly readings for gas and 15 minutes readings for electricity. Only register 1.8.0 (G&E) and 2.8.0 (E) are available. The Day and Month filter are by default also based on the detail readings. Optional it is possible to get the values from the day channels. Advantage: readings are the readings visible as on the smart meter and for electricity the High/Low distinction is available. Downside: for some of the older smart meter models, no decimals are available. Registers starting with 1 are usage, starting with 2 are return. Registers ending on 1 are normal/high tariff, ending on 2 are low/night/weekend tariff. For gas only register 1.8.0 is available. For electricity 1.8.1/1.8.2/2.8.1/2.8.2 are available
*/
@ApiMember(DataType="Enum: none/hour/day/month/year", Description="Detail gives hourly readings for gas and 15 minutes readings for electricity. Only register 1.8.0 (G&E) and 2.8.0 (E) are available. The Day and Month filter are by default also based on the detail readings. Optional it is possible to get the values from the day channels. Advantage: readings are the readings visible as on the smart meter and for electricity the High/Low distinction is available. Downside: for some of the older smart meter models, no decimals are available. Registers starting with 1 are usage, starting with 2 are return. Registers ending on 1 are normal/high tariff, ending on 2 are low/night/weekend tariff. For gas only register 1.8.0 is available. For electricity 1.8.1/1.8.2/2.8.1/2.8.2 are available", IsRequired=true, Name="Filter")
public Filter Filter = null;
/**
* Start date the readings are requested for
*/
@ApiMember(DataType="Date: yyyy-mm-dd", Description="Start date the readings are requested for", IsRequired=true, Name="DateFrom")
public Date DateFrom = null;
/**
* End date the readings are requested for (this date is included in the response). If no date is provided the DateTo will be seven days from DateFrom.
*/
@ApiMember(DataType="Date: yyyy-mm-dd", Description="End date the readings are requested for (this date is included in the response). If no date is provided the DateTo will be seven days from DateFrom.", Name="DateTo")
public Date DateTo = null;
/**
* See filter. Readings are available from the Detail or Day channel. Default value: Detail
*/
@ApiMember(DataType="Enum: detail/day", Description="See filter. Readings are available from the Detail or Day channel. Default value: Detail", Name="Source")
public MeasurementSource Source = null;
/**
* Add column with Dutch day (Default: false)
*/
@ApiMember(DataType="Boolean", Description="Add column with Dutch day (Default: false)", Name="AddDateNL")
public Boolean AddDateNL = null;
/**
* Add the first reading of the next day if available. Only available/relevant if no aggregation / source is detail (Default: true)
*/
@ApiMember(DataType="Boolean", Description="Add the first reading of the next day if available. Only available/relevant if no aggregation / source is detail (Default: true)", Name="AddFirstReadingNextDay")
public Boolean AddFirstReadingNextDay = null;
/**
* Add columns with CreatedOn and LastUpdated (Default: false)
*/
@ApiMember(DataType="Boolean", Description="Add columns with CreatedOn and LastUpdated (Default: false)", Name="AddTimestamps")
public Boolean AddTimestamps = null;
/**
* Add column with ean (Default: false)
*/
@ApiMember(DataType="Boolean", Description="Add column with ean (Default: false)", Name="AddEan")
public Boolean AddEan = null;
/**
* Add column with the meter serial number (Default: false)
*/
@ApiMember(DataType="Boolean", Description="Add column with the meter serial number (Default: false)", Name="AddMeterId")
public Boolean AddMeterId = null;
/**
* Create a row for each register instead of a column/field for each register (Default: false)
*/
@ApiMember(DataType="Boolean", Description="Create a row for each register instead of a column/field for each register (Default: false)", Name="RegistersInRows")
public Boolean RegistersInRows = null;
public String getEan() { return Ean; }
public Reading setEan(String value) { this.Ean = value; return this; }
public Filter getFilter() { return Filter; }
public Reading setFilter(Filter value) { this.Filter = value; return this; }
public Date getDateFrom() { return DateFrom; }
public Reading setDateFrom(Date value) { this.DateFrom = value; return this; }
public Date getDateTo() { return DateTo; }
public Reading setDateTo(Date value) { this.DateTo = value; return this; }
public MeasurementSource getSource() { return Source; }
public Reading setSource(MeasurementSource value) { this.Source = value; return this; }
public Boolean isAddDateNL() { return AddDateNL; }
public Reading setAddDateNL(Boolean value) { this.AddDateNL = value; return this; }
public Boolean isAddFirstReadingNextDay() { return AddFirstReadingNextDay; }
public Reading setAddFirstReadingNextDay(Boolean value) { this.AddFirstReadingNextDay = value; return this; }
public Boolean isAddTimestamps() { return AddTimestamps; }
public Reading setAddTimestamps(Boolean value) { this.AddTimestamps = value; return this; }
public Boolean isAddEan() { return AddEan; }
public Reading setAddEan(Boolean value) { this.AddEan = value; return this; }
public Boolean isAddMeterId() { return AddMeterId; }
public Reading setAddMeterId(Boolean value) { this.AddMeterId = value; return this; }
public Boolean isRegistersInRows() { return RegistersInRows; }
public Reading setRegistersInRows(Boolean value) { this.RegistersInRows = value; return this; }
}
public static class Generic
{
/**
* Api-key. Used to provide credentials to the api. Can also be provided through the request headers with key: X-API-KEY
*/
@ApiMember(DataType="String", Description="Api-key. Used to provide credentials to the api. Can also be provided through the request headers with key: X-API-KEY", IsRequired=true, Name="ApiKey")
public String ApiKey = null;
/**
* Normally the result of the request is put inside a resultobject with some status information about the request. If you want the output as csv this outer object can be irritating. Default value: FALSE
*/
@ApiMember(DataType="Boolean", Description="Normally the result of the request is put inside a resultobject with some status information about the request. If you want the output as csv this outer object can be irritating. Default value: FALSE ", Name="OnlyPayload")
public Boolean OnlyPayload = null;
/**
* Show the request as interpreted by the api. Useful to see how filters / dates are parsed. If no value us provided, the default value is: FALSE
*/
@ApiMember(DataType="Boolean", Description="Show the request as interpreted by the api. Useful to see how filters / dates are parsed. If no value us provided, the default value is: FALSE ", Name="ShowRequest")
public Boolean ShowRequest = null;
/**
* Format all DateTime in the response object. If used in browser, sometimes ISO8601 is not correctly transformed. Enum options: ISO8601 (DEFAULT), UTC, NL, NLOffset, Unix, UnixMillis
*/
@ApiMember(DataType="Enum", Description="Format all DateTime in the response object. If used in browser, sometimes ISO8601 is not correctly transformed. Enum options: ISO8601 (DEFAULT), UTC, NL, NLOffset, Unix, UnixMillis", Name="DateTimeFormat")
public DateTimeFormat DateTimeFormat = null;
public String getApiKey() { return ApiKey; }
public Generic setApiKey(String value) { this.ApiKey = value; return this; }
public Boolean isOnlyPayload() { return OnlyPayload; }
public Generic setOnlyPayload(Boolean value) { this.OnlyPayload = value; return this; }
public Boolean isShowRequest() { return ShowRequest; }
public Generic setShowRequest(Boolean value) { this.ShowRequest = value; return this; }
public DateTimeFormat getDateTimeFormat() { return DateTimeFormat; }
public Generic setDateTimeFormat(DateTimeFormat value) { this.DateTimeFormat = value; return this; }
}
public static enum DateTimeFormat
{
IsO8601,
Utc,
Nl,
NlOffset,
In,
InOffset,
Unix,
UnixMillis;
}
public static enum Filter
{
None,
Hour,
Day,
Month,
Year;
}
public static enum MeasurementSource
{
Detail,
Day,
Month,
Unknown;
}
}
To override the Content-type in your clients, use the HTTP Accept Header, append the .jsv suffix or ?format=jsv
The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.
GET /api/v5/meteringpoints/{Ean}/readings/{Filter}/{DateFrom} HTTP/1.1
Host: p4v8.smartdatasolutions.nl
Accept: text/jsv