| 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 datetime
import decimal
from marshmallow.fields import *
from servicestack import *
from typing import *
from dataclasses import dataclass, field
from dataclasses_json import dataclass_json, LetterCase, Undefined, config
from enum import Enum, IntEnum
class DateTimeFormat(str, Enum):
IS_O8601 = 'ISO8601'
UTC = 'UTC'
NL = 'NL'
NL_OFFSET = 'NLOffset'
IN_ = 'IN'
IN_OFFSET = 'INOffset'
UNIX = 'Unix'
UNIX_MILLIS = 'UnixMillis'
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class Generic:
# @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")
api_key: Optional[str] = None
"""
Api-key. Used to provide credentials to the api. Can also be provided through the request headers with key: X-API-KEY
"""
# @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")
only_payload: bool = False
"""
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="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")
show_request: bool = False
"""
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="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")
date_time_format: Optional[DateTimeFormat] = None
"""
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
"""
class AggregationForAPI(str, Enum):
NONE = 'None'
HOUR = 'Hour'
DAY = 'Day'
WEEK = 'Week'
MONTH = 'Month'
YEAR = 'Year'
class PayloadFormat(str, Enum):
USAGE_RETURN_COMBINED = 'UsageReturnCombined'
USAGE_RETURN = 'UsageReturn'
USAGE_RETURN_AND_TARIFF = 'UsageReturnAndTariff'
class MeasurementSource(str, Enum):
DETAIL = 'Detail'
DAY = 'Day'
MONTH = 'Month'
UNKNOWN = 'Unknown'
# @Api(Description="Get usagereading")
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class UsageReading(Generic):
"""
Get usagereading
"""
# @ApiMember(DataType="EAN (18 numbers)", Description="Request of details of specific meteringpoint with Ean", Name="Ean")
ean: Optional[str] = None
"""
Request of details of specific meteringpoint with Ean
"""
# @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")
aggregation: Optional[AggregationForAPI] = None
"""
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="Date: yyyy-mm-dd", Description="Start date the usages are requested for", IsRequired=true, Name="DateFrom")
date_from: datetime.datetime = datetime.datetime(1, 1, 1)
"""
Start date the usages are requested for
"""
# @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")
date_to: Optional[datetime.datetime] = None
"""
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="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")
payload_format: Optional[PayloadFormat] = None
"""
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="See filter. Usages are available from the Detail channel. Default value: Detail", Name="Source")
source: Optional[MeasurementSource] = None
"""
See filter. Usages are available from the Detail channel. Default value: Detail
"""
# @ApiMember(DataType="Boolean", Description="Add column with Dutch day (Default: false)", Name="AddDateNL")
add_date_n_l: bool = False
"""
Add column with Dutch day (Default: false)
"""
# @ApiMember(DataType="Boolean", Description="Add columns with CreatedOn and LastUpdated (Default: false)", Name="AddTimestamps")
add_timestamps: bool = False
"""
Add columns with CreatedOn and LastUpdated (Default: false)
"""
# @ApiMember(DataType="Boolean", Description="Add column with ean (Default: false)", Name="AddEan")
add_ean: bool = False
"""
Add column with ean (Default: false)
"""
# @ApiMember(DataType="Boolean", Description="Create a row for each register instead of a column/field for each register (Default: false)", Name="RegistersInRows")
registers_in_rows: bool = False
"""
Create a row for each register instead of a column/field for each register (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")
calculate_detail_tariff: bool = False
"""
Gridoperator doesn't provided tariff information for the detail channel, but this can be calculated (Default: false)
"""
# @ApiMember(DataType="Boolean", Description="If want to get the reading as well with the usages", Name="AlsoReading")
also_reading: bool = False
"""
If want to get the reading as well with the usages
"""
# @ApiMember(Description="CacheKey used for Internal logic", Name="CacheKey")
cache_key: Optional[str] = None
"""
CacheKey used for Internal logic
"""
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}/usagereading/{Aggregation}/{DateFrom} HTTP/1.1
Host: p4v8.smartdatasolutions.nl
Accept: text/jsv