Server

<back to all web services

AddNutzeinheit

Requires Authentication
The following routes are available for this service:
POST/App/{UserId}/Nutzeinheit
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


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class AddNutzeinheitResponse:
    response_status: Optional[ResponseStatus] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class Address:
    guid: Optional[str] = None
    street: Optional[str] = None
    street2: Optional[str] = None
    street_number: Optional[str] = None
    zipcode: Optional[str] = None
    city: Optional[str] = None
    mailbox: Optional[str] = None
    additional: Optional[str] = None
    latitude: float = 0.0
    longitude: float = 0.0


class UnitKind(str, Enum):
    L = 'L'
    KG = 'Kg'
    CBM = 'CBM'
    STCK = 'Stck'
    KWH = 'KWH'
    MWH = 'MWH'
    GWH = 'GWH'
    T = 'T'
    RM = 'RM'
    EINHEIT = 'Einheit'
    QM = 'Qm'
    GJ = 'GJ'
    MJ = 'MJ'
    NULL = 'Null'


class EstimationKind(str, Enum):
    NULL = 'Null'
    S1 = 'S1'
    S2 = 'S2'
    S3 = 'S3'
    S4 = 'S4'
    S5 = 'S5'
    N1 = 'N1'
    N2 = 'N2'


class DeviceConsumptionState(str, Enum):
    NULL = 'Null'
    RM_IN_ORDNUNG = 'RMInOrdnung'
    RM_FEHLER = 'RMFehler'
    RM_NICHT_GEPR = 'RMNichtGepr'
    RM_FEHLER_TAUSCH = 'RMFehlerTausch'
    KEIN_WOHNUNGSZUTRITT = 'KeinWohnungszutritt'
    DEFEKT = 'Defekt'
    FALSCH_LAUFEND = 'FalschLaufend'
    _ÜBERLAUF = 'Überlauf'
    EICHUNG_BEACHTEN = 'EichungBeachten'
    PROBE_ENTNOMMEN = 'ProbeEntnommen'
    PROBE_ZUM_LABOR = 'ProbeZumLabor'
    PROBE_POSITIV = 'ProbePositiv'
    PROBE_NEGATIV = 'ProbeNegativ'


class DeviceConsumptionOrigin(str, Enum):
    UNBEKANNT = 'Unbekannt'
    MANUAL = 'Manual'
    EMR = 'Emr'
    WALKBY = 'Walkby'
    DELETED = 'Deleted'


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class DeviceConsumption:
    guid: Optional[str] = None
    last_modified: Optional[datetime.datetime] = None
    reading_date: Optional[datetime.datetime] = None
    factor: float = 0.0
    reading: Optional[float] = None
    consumption: Optional[float] = None
    change_date: Optional[datetime.datetime] = None
    estimation: Optional[EstimationKind] = None
    state: Optional[DeviceConsumptionState] = None
    note: Optional[str] = None
    is_reconstructed: bool = False
    manual: Optional[float] = None
    origin: Optional[DeviceConsumptionOrigin] = None
    air_temperature: Optional[Decimal] = None
    radiator_temperature: Optional[Decimal] = None
    last_error_date: Optional[datetime.datetime] = None
    error: Optional[str] = None
    ampoule_colour: Optional[str] = None
    readind_kind_guid: Optional[str] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class Photo:
    guid: Optional[str] = None
    recorded_date: datetime.datetime = datetime.datetime(1, 1, 1)


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class DeviceAdditionalArticle:
    additional_article_guid: Optional[str] = None
    quantity: Optional[Decimal] = None
    last_modified: Optional[datetime.datetime] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class Device:
    guid: Optional[str] = None
    last_modified: Optional[datetime.datetime] = None
    number: Optional[str] = None
    label: Optional[str] = None
    description: Optional[str] = None
    installation_date: datetime.datetime = datetime.datetime(1, 1, 1)
    deinstallation_date: Optional[datetime.datetime] = None
    calibration_date: Optional[datetime.datetime] = None
    unit: Optional[UnitKind] = None
    note: Optional[str] = None
    subtraction: bool = False
    group_identifier: Optional[str] = None
    estimation: Optional[EstimationKind] = None
    first_activation: Optional[datetime.datetime] = None
    firmware_version: Optional[str] = None
    room_guid: Optional[str] = None
    ongoing_number: Optional[str] = None
    is_leased: bool = False
    is_maintained: bool = False
    device_catalog_guid: Optional[str] = None
    device_consumptions: Optional[IList[DeviceConsumption]] = None
    photos: Optional[IList[Photo]] = None
    device_additional_articles: Optional[IList[DeviceAdditionalArticle]] = None


class NutzerKind(str, Enum):
    LEERSTAND = 'Leerstand'
    GEWERBLICH = 'Gewerblich'
    PRIVAT = 'Privat'
    ALLGEMEINE_NUTZUNG = 'AllgemeineNutzung'


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class NutzerCommunication:
    guid: Optional[str] = None
    last_modified: Optional[datetime.datetime] = None
    address: Optional[str] = None
    note: Optional[str] = None
    communication_feature_guid: Optional[str] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class NutzerPersonen:
    guid: Optional[str] = None
    last_modified: Optional[datetime.datetime] = None
    number_of_people: Optional[int] = None
    range_from: datetime.datetime = datetime.datetime(1, 1, 1)
    range_to: Optional[datetime.datetime] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class NutzerCoOwnership:
    guid: Optional[str] = None
    last_modified: Optional[datetime.datetime] = None
    share_value: Optional[Decimal] = None
    range_from: datetime.datetime = datetime.datetime(1, 1, 1)
    range_to: Optional[datetime.datetime] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class NutzerQuadratmeter:
    guid: Optional[str] = None
    last_modified: Optional[datetime.datetime] = None
    square_meters__hzg: Optional[Decimal] = None
    square_meters__ww: Optional[Decimal] = None
    square_meters__nk: Optional[Decimal] = None
    range_from: datetime.datetime = datetime.datetime(1, 1, 1)
    range_to: Optional[datetime.datetime] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class Nutzer:
    guid: Optional[str] = None
    last_modified: Optional[datetime.datetime] = None
    kind: Optional[NutzerKind] = None
    move_in_date: Optional[datetime.datetime] = None
    move_out_date: Optional[datetime.datetime] = None
    name1: Optional[str] = None
    name2: Optional[str] = None
    name3: Optional[str] = None
    name4: Optional[str] = None
    note: Optional[str] = None
    next_appointment_date: Optional[datetime.datetime] = None
    salutation: Optional[str] = None
    title: Optional[str] = None
    nutzer_communications: Optional[List[NutzerCommunication]] = None
    nutzer_personen: Optional[List[NutzerPersonen]] = None
    nutzer_co_ownership: Optional[List[NutzerCoOwnership]] = None
    nutzer_quadratmeter: Optional[List[NutzerQuadratmeter]] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class Nutzeinheit:
    guid: Optional[str] = None
    last_modified: Optional[datetime.datetime] = None
    number: Optional[str] = None
    location: Optional[str] = None
    walk_sequence: Optional[str] = None
    note: Optional[str] = None
    abrechnungseinheit_guid: Optional[str] = None
    address: Optional[Address] = None
    devices: Optional[IList[Device]] = None
    nutzer: Optional[IList[Nutzer]] = None
    photos: Optional[IList[Photo]] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class AddNutzeinheit:
    nutzeinheit: Optional[Nutzeinheit] = None

Python AddNutzeinheit DTOs

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

HTTP + XML

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

POST /App/{UserId}/Nutzeinheit HTTP/1.1 
Host: calotec-portal-servamw.eras-online.de 
Accept: application/xml
Content-Type: application/xml
Content-Length: length

<AddNutzeinheit xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/Eras2Amw.Service.Server.ServiceModel.Eras2App.Add">
  <UserId xmlns="http://schemas.datacontract.org/2004/07/Eras2Amw.Service.Server.ServiceModel.Eras2App">00000000-0000-0000-0000-000000000000</UserId>
  <Nutzeinheit xmlns:d2p1="http://schemas.datacontract.org/2004/07/Eras2Amw.Service.Server.ServiceModel.Common">
    <d2p1:AbrechnungseinheitGuid>00000000-0000-0000-0000-000000000000</d2p1:AbrechnungseinheitGuid>
    <d2p1:Address>
      <d2p1:Adresszusatz>String</d2p1:Adresszusatz>
      <d2p1:Breitengrad>0</d2p1:Breitengrad>
      <d2p1:Guid>00000000-0000-0000-0000-000000000000</d2p1:Guid>
      <d2p1:Hausnummer>String</d2p1:Hausnummer>
      <d2p1:Laengengrad>0</d2p1:Laengengrad>
      <d2p1:Ort>String</d2p1:Ort>
      <d2p1:Postfach>String</d2p1:Postfach>
      <d2p1:Postleitzahl>String</d2p1:Postleitzahl>
      <d2p1:Straße>String</d2p1:Straße>
      <d2p1:Straße2>String</d2p1:Straße2>
    </d2p1:Address>
    <d2p1:Devices i:nil="true" />
    <d2p1:Guid>00000000-0000-0000-0000-000000000000</d2p1:Guid>
    <d2p1:LastModified>0001-01-01T00:00:00</d2p1:LastModified>
    <d2p1:Location>String</d2p1:Location>
    <d2p1:Note>String</d2p1:Note>
    <d2p1:Number>String</d2p1:Number>
    <d2p1:Nutzer i:nil="true" />
    <d2p1:Photos i:nil="true" />
    <d2p1:WalkSequence>String</d2p1:WalkSequence>
  </Nutzeinheit>
</AddNutzeinheit>
HTTP/1.1 200 OK
Content-Type: application/xml
Content-Length: length

<AddNutzeinheitResponse xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/Eras2Amw.Service.Server.ServiceModel.Eras2App.Add">
  <Nutzeinheit xmlns:d2p1="http://schemas.datacontract.org/2004/07/Eras2Amw.Service.Server.ServiceModel.Common">
    <d2p1:AbrechnungseinheitGuid>00000000-0000-0000-0000-000000000000</d2p1:AbrechnungseinheitGuid>
    <d2p1:Address>
      <d2p1:Adresszusatz>String</d2p1:Adresszusatz>
      <d2p1:Breitengrad>0</d2p1:Breitengrad>
      <d2p1:Guid>00000000-0000-0000-0000-000000000000</d2p1:Guid>
      <d2p1:Hausnummer>String</d2p1:Hausnummer>
      <d2p1:Laengengrad>0</d2p1:Laengengrad>
      <d2p1:Ort>String</d2p1:Ort>
      <d2p1:Postfach>String</d2p1:Postfach>
      <d2p1:Postleitzahl>String</d2p1:Postleitzahl>
      <d2p1:Straße>String</d2p1:Straße>
      <d2p1:Straße2>String</d2p1:Straße2>
    </d2p1:Address>
    <d2p1:Devices i:nil="true" />
    <d2p1:Guid>00000000-0000-0000-0000-000000000000</d2p1:Guid>
    <d2p1:LastModified>0001-01-01T00:00:00</d2p1:LastModified>
    <d2p1:Location>String</d2p1:Location>
    <d2p1:Note>String</d2p1:Note>
    <d2p1:Number>String</d2p1:Number>
    <d2p1:Nutzer i:nil="true" />
    <d2p1:Photos i:nil="true" />
    <d2p1:WalkSequence>String</d2p1:WalkSequence>
  </Nutzeinheit>
  <ResponseStatus xmlns:d2p1="http://schemas.servicestack.net/types">
    <d2p1:ErrorCode>String</d2p1:ErrorCode>
    <d2p1:Message>String</d2p1:Message>
    <d2p1:StackTrace>String</d2p1:StackTrace>
    <d2p1:Errors>
      <d2p1:ResponseError>
        <d2p1:ErrorCode>String</d2p1:ErrorCode>
        <d2p1:FieldName>String</d2p1:FieldName>
        <d2p1:Message>String</d2p1:Message>
        <d2p1:Meta xmlns:d5p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
          <d5p1:KeyValueOfstringstring>
            <d5p1:Key>String</d5p1:Key>
            <d5p1:Value>String</d5p1:Value>
          </d5p1:KeyValueOfstringstring>
        </d2p1:Meta>
      </d2p1:ResponseError>
    </d2p1:Errors>
    <d2p1:Meta xmlns:d3p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
      <d3p1:KeyValueOfstringstring>
        <d3p1:Key>String</d3p1:Key>
        <d3p1:Value>String</d3p1:Value>
      </d3p1:KeyValueOfstringstring>
    </d2p1:Meta>
  </ResponseStatus>
</AddNutzeinheitResponse>