SDS P4 API

<back to all web services

UsageReading

Get usagereading

The following routes are available for this service:
GET/api/v5/meteringpoints/{Ean}/usagereading/{Aggregation}/{DateFrom}Get usage/reading of a single asset with the selected aggregation starting from DateFrom
GET/api/v5/meteringpoints/{Ean}/usagereading/{Aggregation}/{DateFrom}/{DateTo}Get usage/reading of a single asset with the selected aggregation and period
import java.math.*;
import java.util.*;
import net.servicestack.client.*;

public class dtos
{

    /**
    * Get usagereading
    */
    @Api(Description="Get usagereading")
    public static class UsageReading extends Generic
    {
        /**
        * Request of details of specific meteringpoint with Ean
        */
        @ApiMember(DataType="EAN (18 numbers)", Description="Request of details of specific meteringpoint with Ean", Name="Ean")
        public String Ean = null;

        /**
        * Aggregation level. The None-'level' will give the most detailed level available for the requested asset. If a level is requested that is not available or can be calculate, no data is returned. Enum options: None, Hour
        */
        @ApiMember(DataType="Enum", Description="Aggregation level. The None-'level' will give the most detailed level available for the requested asset. If a level is requested that is not available or can be calculate, no data is returned. Enum options: None, Hour", IsRequired=true, Name="Aggregation")
        public AggregationForAPI Aggregation = null;

        /**
        * Start date the usages are requested for
        */
        @ApiMember(DataType="Date: yyyy-mm-dd", Description="Start date the usages are requested for", IsRequired=true, Name="DateFrom")
        public Date DateFrom = null;

        /**
        * End date the usages are requested for (this is included in the response). If no date is provided the DateTo will seven days from the DateFrom. 
        */
        @ApiMember(DataType="Date: yyyy-mm-dd", Description="End date the usages are requested for (this is included in the response). If no date is provided the DateTo will seven days from the DateFrom. ", Name="DateTo")
        public Date DateTo = null;

        /**
        * The output can be generated in a few formats. UsageReturnCombined: return values will be subtracted from the usage, UsageReturn: separate columns form usage and return (if available) and UsageReturnAndTariff: for both usage and return a column for tariff1 and tariff2. Default value: UsageReturnCombined
        */
        @ApiMember(DataType="Enum", Description="The output can be generated in a few formats. UsageReturnCombined: return values will be subtracted from the usage, UsageReturn: separate columns form usage and return (if available) and UsageReturnAndTariff: for both usage and return a column for tariff1 and tariff2. Default value: UsageReturnCombined", Name="PayloadFormat")
        public PayloadFormat PayloadFormat = null;

        /**
        * See filter. Usages are available from the Detail channel. Default value: Detail
        */
        @ApiMember(DataType="Enum", Description="See filter. Usages are available from the Detail 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 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;

        /**
        * 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;

        /**
        * Gridoperator doesn't provided tariff information for the detail channel, but this can be calculated (Default: false)
        */
        @ApiMember(DataType="Boolean", Description="Gridoperator doesn't provided tariff information for the detail channel, but this can be calculated (Default: false)", Name="CalculateDetailTariff")
        public Boolean CalculateDetailTariff = null;

        /**
        * If want to get the reading as well with the usages
        */
        @ApiMember(DataType="Boolean", Description="If want to get the reading as well with the usages", Name="AlsoReading")
        public Boolean AlsoReading = null;

        /**
        * CacheKey used for Internal logic
        */
        @ApiMember(Description="CacheKey used for Internal logic", Name="CacheKey")
        public String CacheKey = null;
        
        public String getEan() { return Ean; }
        public UsageReading setEan(String value) { this.Ean = value; return this; }
        public AggregationForAPI getAggregation() { return Aggregation; }
        public UsageReading setAggregation(AggregationForAPI value) { this.Aggregation = value; return this; }
        public Date getDateFrom() { return DateFrom; }
        public UsageReading setDateFrom(Date value) { this.DateFrom = value; return this; }
        public Date getDateTo() { return DateTo; }
        public UsageReading setDateTo(Date value) { this.DateTo = value; return this; }
        public PayloadFormat getPayloadFormat() { return PayloadFormat; }
        public UsageReading setPayloadFormat(PayloadFormat value) { this.PayloadFormat = value; return this; }
        public MeasurementSource getSource() { return Source; }
        public UsageReading setSource(MeasurementSource value) { this.Source = value; return this; }
        public Boolean isAddDateNL() { return AddDateNL; }
        public UsageReading setAddDateNL(Boolean value) { this.AddDateNL = value; return this; }
        public Boolean isAddTimestamps() { return AddTimestamps; }
        public UsageReading setAddTimestamps(Boolean value) { this.AddTimestamps = value; return this; }
        public Boolean isAddEan() { return AddEan; }
        public UsageReading setAddEan(Boolean value) { this.AddEan = value; return this; }
        public Boolean isRegistersInRows() { return RegistersInRows; }
        public UsageReading setRegistersInRows(Boolean value) { this.RegistersInRows = value; return this; }
        public Boolean isCalculateDetailTariff() { return CalculateDetailTariff; }
        public UsageReading setCalculateDetailTariff(Boolean value) { this.CalculateDetailTariff = value; return this; }
        public Boolean isAlsoReading() { return AlsoReading; }
        public UsageReading setAlsoReading(Boolean value) { this.AlsoReading = value; return this; }
        public String getCacheKey() { return CacheKey; }
        public UsageReading setCacheKey(String value) { this.CacheKey = 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 AggregationForAPI
    {
        None,
        Hour,
        Day,
        Week,
        Month,
        Year;
    }

    public static enum PayloadFormat
    {
        UsageReturnCombined,
        UsageReturn,
        UsageReturnAndTariff;
    }

    public static enum MeasurementSource
    {
        Detail,
        Day,
        Month,
        Unknown;
    }

}

Java UsageReading DTOs

To override the Content-type in your clients, use the HTTP Accept Header, append the .csv suffix or ?format=csv

HTTP + CSV

The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.

GET /api/v5/meteringpoints/{Ean}/usagereading/{Aggregation}/{DateFrom} HTTP/1.1 
Host: p4v8.smartdatasolutions.nl 
Accept: text/csv