openapi: 3.2.0 info: title: Gridx Ai Asset API version: 2.0.0 contact: name: gridX url: https://www.gridx.ai/module/api email: developer-community@gridx.de license: name: All rights reserved. url: https://www.gridx.ai/ x-api-id: ba9d6a25-ae1a-4ac8-af7a-70b76db17021 x-audience: public-external description: 'Operations tagged Asset across 2 of this provider''s published API definitions: gridx-api.json, gridx-ai-openapi.yml. Each path carries the servers of the definition it was published in.' servers: - url: https://api.gridx.de description: Production tags: - name: Asset x-displayName: Asset paths: /systems/{systemID}/assets: get: operationId: listSystemAsset summary: List System's Assets description: Lists assets that belong to the given system. tags: - Asset x-badges: - label: draft color: red parameters: - name: systemID description: 'Unique identifier used to access a system. ' in: path required: true schema: type: string format: uuid example: aa3e5a93-bb38-4b15-b7f2-af40daf3a1dc - name: include deprecated: true description: 'This query param allows to set certain fields only when needed. This makes the request faster as it requires to load only necessary data. If this param is unset, only the core asset fields are included. Deprecated: The `gateway` field is now always included in the response. Use `gatewayType` from the appliance response for the gateway type. ' in: query explode: false schema: type: array items: type: string enum: - gateway responses: '200': description: The list of assets belonging to a system. content: application/vnd.gridx.v2+json: schema: type: object description: A list of assets. properties: assets: type: array items: title: Asset description: 'Asset represents a monitor-/controllable device such as Inverters, Meters and Heat Pumps. ' readOnly: true oneOf: - title: Inverter description: 'Inverter represents a monitor-/controllable inverter. It can be of kind: - `PV`/`PV_EXTERNAL`: used as photovoltaic only. - `BATTERY`: used as battery only. - `HYBRID`: used as both photovoltaic and battery. - `UNKNOWN`: default, when the inverter kind is not determined. ' allOf: - title: Base Asset description: 'BaseAsset contains fields that all assets have in common. Specific asset types extend this schema and add new fields. ' type: object required: - id - createdAt - updatedAt - connectionStatus - type - gatewayType properties: id: type: string format: uuid description: 'Uniquely identifies the asset. ' example: ec4d0c89-a604-49ac-82f0-427f9cb42204 createdAt: type: string format: date-time description: 'Specifies when the asset was created. ' updatedAt: type: string format: date-time description: 'Specifies when the asset was updated the last time. ' connectionStatus: title: Asset connection status type: object readOnly: true required: - status properties: status: type: string description: "Indicates the connection status of an asset.\n \nThe connection status of an asset is determined by the gateway. The gateway regularly\nsends the connection status of all connected assets.\n\nIt is one of:\n- `AVAILABLE`: Asset was reported as available by the gateway.\n- `UNAVAILABLE`: Asset was reported as unavailable by the gateway.\n- `UNKNOWN`: The gateway didn't report a status for the asset.\n\nIn case the connection status of the gateway this asset belongs to is `TEMPORARILY_UNAVAILABLE` or `UNAVAILABLE`\nthe status is always `UNAVAILABLE`.\nFor cloud-connected assets, the connection status will always be `AVAILABLE`: they have no gateway heartbeat\nand are reached through a cloud integration, so they are assumed to be reachable.\n" x-extensible-enum: - AVAILABLE - UNAVAILABLE - UNKNOWN x-readme-ref-name: AssetConnectionStatus type: type: string description: 'Describes the ''physical'' type of the asset. See `kind` for further distinction of the type in terms of the asset''s purpose/role, e.g. asset with type=INVERTER and kind=BATTERY represents a battery inverter. ' example: INVERTER gatewayType: type: string x-extensible-enum: - GRIDBOX - CLOUD description: 'Type of the gateway used to communicate with this asset: GRIDBOX → The asset is physically connected to a gridbox, through which it sends measurements and can be controlled. CLOUD → The asset is connected via a cloud-to-cloud integration, through which we receive measurements and can send commands. ' parent: type: string format: uuid description: 'Specifies the ID of the parent asset, for an asset which is the child of another. ' manufacturer: type: string description: 'Manufacturer of the asset. ' example: TQ Systems name: type: string description: 'Name of the asset. ' serialnumber: type: string description: 'Serial number of the asset. ' example: GD3Y3VMATKBY79142 model: type: string description: 'Model of the asset. ' example: Sunny Boy Storage 2.5 gateway: type: object deprecated: true description: 'Gateway used to communicate with the asset. Excluded by default, can be optionally included in the repsonse using the `include` query parameter. Deprecated: Use `gatewayType` field instead. For the gateway UUID of gridbox-connected assets, retrieve the system''s gateway via the system API (`GET /systems/{systemID}?include=gateways` or `GET /systems/list?include=gateways`). ' required: - uuid - type properties: uuid: type: string format: uuid description: Uniquely identifies the gateway. type: type: string x-extensible-enum: - GRIDBOX - CLOUD description: 'Type of the gateway: GRIDBOX → The asset is physically connected to a gridbox, through which it send measurements and be controlled. CLOUD → The asset is connected via a cloud-to-cloud integration, through which we receive measurements and can send commands. ' x-readme-ref-name: BaseAsset - required: - kind properties: type: type: string enum: - INVERTER kind: type: string description: 'Indicates the role of the inverter. Setting the kind impacts the system measurements. So it''s best to set it up correctly as early as possible in accordance to the actual installation in order for the measurement calculation to be correct (best during commissioning). ' x-extensible-enum: - UNKNOWN - PV - PV_EXTERNAL - BATTERY - HYBRID firmware: type: string description: 'Firmware version of the inverter. ' example: 2.4.23.R maxActivePowerOutput: type: integer description: 'Maximum active power output of the inverter in mW; set manually. Zero if not set. ' nominalPowerLimit: type: integer description: 'Designed maximal power output of the inverter in mW. ' hybridCalcMode: type: integer description: 'The calculation mode for inverters of `HYBRID` kind. ' x-extensible-enum: - 0 - 1 - 2 hardwareStatus: title: Hardware Status type: object description: "HardwareStatus provides information about the condition of the inverter and in case of issues, \npossible follow-up actions the user/installer can perform to resolve them.\n" properties: state: type: string description: State of the inverter. x-extensible-enum: - UNKNOWN - OK - WARNING - ERROR action: type: string description: Recommended action to resolve ERROR/WARNING state. x-extensible-enum: - CONSULT_DEVICE_READOUT - CONTACT_INSTALLER - CONTACT_MANUFACTURER - CONTACT_GRID_OPERATOR errorCode: type: string description: Inverter manufacturer/model dependent error code formatted as it would be shown on display. description: type: string description: Contains details about the inverter ERROR and WARNING states. x-extensible-enum: - OTHER - GRID_FAULT - INSULATION_FAILURE - INTERFERENCE_DEVICE - FAN_FAULT - WAIT_FOR_UPDATE - SOFTWARE_FAULT - HARDWARE_FAULT - PARAMETER_FAULT - HIGH_TEMPERATURE - HIGH_DC_VOLTAGE - LOW_DC_POWER - DC_OVERCURRENT - INSTALLATION_FAULT - COMMUNICATION_FAULT - BATTERY_FAULT measuredAt: type: string format: date-time example: '2018-04-15T00:00:00Z' x-readme-ref-name: AssetHardwareStatus battery: title: Battery type: object description: The battery-specific information for inverters of BATTERY and HYBRID kind. required: - controllable properties: maxCharge: type: integer format: int64 description: Battery's maximum charge in mW minimum: 0 maxDischarge: type: integer format: int64 description: Battery's maximum discharge in mW minimum: 0 controllable: type: boolean description: Controllable is true if the battery charging/discharging can be controlled. dischargeLimit: type: integer description: DischargeLimit is the minimum state of charge in % from 0-100 to discharge to. rechargeLimit: type: integer description: "RechargeLimit is the state of charge in % from 0-100 to which the battery needs to \nrecharge before allowing discharging again.\n" controlSettings: type: object description: Indicates the currently desired control settings for the battery. required: - value - command properties: value: type: integer description: Represents the charge/discharge power in mW. command: type: string description: Represents the current control command. x-extensible-enum: - none - charge - discharge x-readme-ref-name: BatteryAsset x-readme-ref-name: InverterAsset - title: Meter description: 'Meter represents a monitor-/controllable meter. ' allOf: - title: Base Asset description: 'BaseAsset contains fields that all assets have in common. Specific asset types extend this schema and add new fields. ' type: object required: - id - createdAt - updatedAt - connectionStatus - type - gatewayType properties: id: type: string format: uuid description: 'Uniquely identifies the asset. ' example: ec4d0c89-a604-49ac-82f0-427f9cb42204 createdAt: type: string format: date-time description: 'Specifies when the asset was created. ' updatedAt: type: string format: date-time description: 'Specifies when the asset was updated the last time. ' connectionStatus: title: Asset connection status type: object readOnly: true required: - status properties: status: type: string description: "Indicates the connection status of an asset.\n \nThe connection status of an asset is determined by the gateway. The gateway regularly\nsends the connection status of all connected assets.\n\nIt is one of:\n- `AVAILABLE`: Asset was reported as available by the gateway.\n- `UNAVAILABLE`: Asset was reported as unavailable by the gateway.\n- `UNKNOWN`: The gateway didn't report a status for the asset.\n\nIn case the connection status of the gateway this asset belongs to is `TEMPORARILY_UNAVAILABLE` or `UNAVAILABLE`\nthe status is always `UNAVAILABLE`.\nFor cloud-connected assets, the connection status will always be `AVAILABLE`: they have no gateway heartbeat\nand are reached through a cloud integration, so they are assumed to be reachable.\n" x-extensible-enum: - AVAILABLE - UNAVAILABLE - UNKNOWN x-readme-ref-name: AssetConnectionStatus type: type: string description: 'Describes the ''physical'' type of the asset. See `kind` for further distinction of the type in terms of the asset''s purpose/role, e.g. asset with type=INVERTER and kind=BATTERY represents a battery inverter. ' example: INVERTER gatewayType: type: string x-extensible-enum: - GRIDBOX - CLOUD description: 'Type of the gateway used to communicate with this asset: GRIDBOX → The asset is physically connected to a gridbox, through which it sends measurements and can be controlled. CLOUD → The asset is connected via a cloud-to-cloud integration, through which we receive measurements and can send commands. ' parent: type: string format: uuid description: 'Specifies the ID of the parent asset, for an asset which is the child of another. ' manufacturer: type: string description: 'Manufacturer of the asset. ' example: TQ Systems name: type: string description: 'Name of the asset. ' serialnumber: type: string description: 'Serial number of the asset. ' example: GD3Y3VMATKBY79142 model: type: string description: 'Model of the asset. ' example: Sunny Boy Storage 2.5 gateway: type: object deprecated: true description: 'Gateway used to communicate with the asset. Excluded by default, can be optionally included in the repsonse using the `include` query parameter. Deprecated: Use `gatewayType` field instead. For the gateway UUID of gridbox-connected assets, retrieve the system''s gateway via the system API (`GET /systems/{systemID}?include=gateways` or `GET /systems/list?include=gateways`). ' required: - uuid - type properties: uuid: type: string format: uuid description: Uniquely identifies the gateway. type: type: string x-extensible-enum: - GRIDBOX - CLOUD description: 'Type of the gateway: GRIDBOX → The asset is physically connected to a gridbox, through which it send measurements and be controlled. CLOUD → The asset is connected via a cloud-to-cloud integration, through which we receive measurements and can send commands. ' x-readme-ref-name: BaseAsset - required: - kind - location properties: type: type: string enum: - METER kind: type: string description: 'Indicates what the meter measures. Setting the kind impacts the system measurements. So it''s best to set it up correctly as early as possible in accordance to the actual installation in order for the measurement calculation to be correct (best during commissioning). ' x-extensible-enum: - UNKNOWN - PV - GRID - BATTERY - HEAT_PUMP - FUEL_CELL - HEAT_PUMP_EXTERNAL - EVSTATION - PV_EXTERNAL - BTTP - HEATING - MISC - CLUSTER - WIND_TURBINE - AIR_CONDITIONER firmware: type: string description: 'Firmware version of the meter. ' example: '2.03' location: type: string description: 'Indicates that the meter is in front of given location for measuring the consumption and production. ' x-extensible-enum: - UNKNOWN - PV - GRID - BATTERY - HEAT_PUMP - FUEL_CELL - HEAT_PUMP_EXTERNAL - EVSTATION - PV_EXTERNAL - BTTP - HEATING - MISC - CLUSTER - WIND_TURBINE - AIR_CONDITIONER modbusAddress: type: integer x-readme-ref-name: MeterAsset - title: Heat Pump type: object description: Heat Pump represents a monitor-/controllable heat pump. allOf: - title: Base Asset description: 'BaseAsset contains fields that all assets have in common. Specific asset types extend this schema and add new fields. ' type: object required: - id - createdAt - updatedAt - connectionStatus - type - gatewayType properties: id: type: string format: uuid description: 'Uniquely identifies the asset. ' example: ec4d0c89-a604-49ac-82f0-427f9cb42204 createdAt: type: string format: date-time description: 'Specifies when the asset was created. ' updatedAt: type: string format: date-time description: 'Specifies when the asset was updated the last time. ' connectionStatus: title: Asset connection status type: object readOnly: true required: - status properties: status: type: string description: "Indicates the connection status of an asset.\n \nThe connection status of an asset is determined by the gateway. The gateway regularly\nsends the connection status of all connected assets.\n\nIt is one of:\n- `AVAILABLE`: Asset was reported as available by the gateway.\n- `UNAVAILABLE`: Asset was reported as unavailable by the gateway.\n- `UNKNOWN`: The gateway didn't report a status for the asset.\n\nIn case the connection status of the gateway this asset belongs to is `TEMPORARILY_UNAVAILABLE` or `UNAVAILABLE`\nthe status is always `UNAVAILABLE`.\nFor cloud-connected assets, the connection status will always be `AVAILABLE`: they have no gateway heartbeat\nand are reached through a cloud integration, so they are assumed to be reachable.\n" x-extensible-enum: - AVAILABLE - UNAVAILABLE - UNKNOWN x-readme-ref-name: AssetConnectionStatus type: type: string description: 'Describes the ''physical'' type of the asset. See `kind` for further distinction of the type in terms of the asset''s purpose/role, e.g. asset with type=INVERTER and kind=BATTERY represents a battery inverter. ' example: INVERTER gatewayType: type: string x-extensible-enum: - GRIDBOX - CLOUD description: 'Type of the gateway used to communicate with this asset: GRIDBOX → The asset is physically connected to a gridbox, through which it sends measurements and can be controlled. CLOUD → The asset is connected via a cloud-to-cloud integration, through which we receive measurements and can send commands. ' parent: type: string format: uuid description: 'Specifies the ID of the parent asset, for an asset which is the child of another. ' manufacturer: type: string description: 'Manufacturer of the asset. ' example: TQ Systems name: type: string description: 'Name of the asset. ' serialnumber: type: string description: 'Serial number of the asset. ' example: GD3Y3VMATKBY79142 model: type: string description: 'Model of the asset. ' example: Sunny Boy Storage 2.5 gateway: type: object deprecated: true description: 'Gateway used to communicate with the asset. Excluded by default, can be optionally included in the repsonse using the `include` query parameter. Deprecated: Use `gatewayType` field instead. For the gateway UUID of gridbox-connected assets, retrieve the system''s gateway via the system API (`GET /systems/{systemID}?include=gateways` or `GET /systems/list?include=gateways`). ' required: - uuid - type properties: uuid: type: string format: uuid description: Uniquely identifies the gateway. type: type: string x-extensible-enum: - GRIDBOX - CLOUD description: 'Type of the gateway: GRIDBOX → The asset is physically connected to a gridbox, through which it send measurements and be controlled. CLOUD → The asset is connected via a cloud-to-cloud integration, through which we receive measurements and can send commands. ' x-readme-ref-name: BaseAsset - required: - controllable properties: type: type: string enum: - HEAT_PUMP firmware: type: string description: 'Firmware version of the heat pump. ' example: mac_02:80:ad:24:d5:ab controllable: type: boolean description: Specifies whether this appliance is controllable by the EMS. energyManagementSettings: type: object description: Energy management specific settings for the heat pump. required: - behindGCP properties: behindGCP: description: Specifies whether this heat pump exists behind a GCP meter. type: boolean x-readme-ref-name: HeatPumpAsset - title: EV Charging Station description: 'EV Charging Station represents a monitor-/controllable electric vehicle charging station. ' allOf: - title: Base Asset description: 'BaseAsset contains fields that all assets have in common. Specific asset types extend this schema and add new fields. ' type: object required: - id - createdAt - updatedAt - connectionStatus - type - gatewayType properties: id: type: string format: uuid description: 'Uniquely identifies the asset. ' example: ec4d0c89-a604-49ac-82f0-427f9cb42204 createdAt: type: string format: date-time description: 'Specifies when the asset was created. ' updatedAt: type: string format: date-time description: 'Specifies when the asset was updated the last time. ' connectionStatus: title: Asset connection status type: object readOnly: true required: - status properties: status: type: string description: "Indicates the connection status of an asset.\n \nThe connection status of an asset is determined by the gateway. The gateway regularly\nsends the connection status of all connected assets.\n\nIt is one of:\n- `AVAILABLE`: Asset was reported as available by the gateway.\n- `UNAVAILABLE`: Asset was reported as unavailable by the gateway.\n- `UNKNOWN`: The gateway didn't report a status for the asset.\n\nIn case the connection status of the gateway this asset belongs to is `TEMPORARILY_UNAVAILABLE` or `UNAVAILABLE`\nthe status is always `UNAVAILABLE`.\nFor cloud-connected assets, the connection status will always be `AVAILABLE`: they have no gateway heartbeat\nand are reached through a cloud integration, so they are assumed to be reachable.\n" x-extensible-enum: - AVAILABLE - UNAVAILABLE - UNKNOWN x-readme-ref-name: AssetConnectionStatus type: type: string description: 'Describes the ''physical'' type of the asset. See `kind` for further distinction of the type in terms of the asset''s purpose/role, e.g. asset with type=INVERTER and kind=BATTERY represents a battery inverter. ' example: INVERTER gatewayType: type: string x-extensible-enum: - GRIDBOX - CLOUD description: 'Type of the gateway used to communicate with this asset: GRIDBOX → The asset is physically connected to a gridbox, through which it sends measurements and can be controlled. CLOUD → The asset is connected via a cloud-to-cloud integration, through which we receive measurements and can send commands. ' parent: type: string format: uuid description: 'Specifies the ID of the parent asset, for an asset which is the child of another. ' manufacturer: type: string description: 'Manufacturer of the asset. ' example: TQ Systems name: type: string description: 'Name of the asset. ' serialnumber: type: string description: 'Serial number of the asset. ' example: GD3Y3VMATKBY79142 model: type: string description: 'Model of the asset. ' example: Sunny Boy Storage 2.5 gateway: type: object deprecated: true description: 'Gateway used to communicate with the asset. Excluded by default, can be optionally included in the repsonse using the `include` query parameter. Deprecated: Use `gatewayType` field instead. For the gateway UUID of gridbox-connected assets, retrieve the system''s gateway via the system API (`GET /systems/{systemID}?include=gateways` or `GET /systems/list?include=gateways`). ' required: - uuid - type properties: uuid: type: string format: uuid description: Uniquely identifies the gateway. type: type: string x-extensible-enum: - GRIDBOX - CLOUD description: 'Type of the gateway: GRIDBOX → The asset is physically connected to a gridbox, through which it send measurements and be controlled. CLOUD → The asset is connected via a cloud-to-cloud integration, through which we receive measurements and can send commands. ' x-readme-ref-name: BaseAsset - type: object properties: type: type: string enum: - EVSTATION kind: description: The kind of the ev charging station. type: string x-extensible-enum: - UNKNOWN - BATTERY_INTEGRATED firmware: type: string description: 'Firmware version of the ev charging station. ' example: 0.38-78000001 evseID: type: string description: The EVSE-ID related to the charge point. x-readme-ref-name: BaseEVStationAsset - required: - kind x-readme-ref-name: EVStationAsset - title: IO Device description: IO devices represent configuration options that can be applied for appliances of the fieldbus coupler type allOf: - title: Base Asset description: 'BaseAsset contains fields that all assets have in common. Specific asset types extend this schema and add new fields. ' type: object required: - id - createdAt - updatedAt - connectionStatus - type - gatewayType properties: id: type: string format: uuid description: 'Uniquely identifies the asset. ' example: ec4d0c89-a604-49ac-82f0-427f9cb42204 createdAt: type: string format: date-time description: 'Specifies when the asset was created. ' updatedAt: type: string format: date-time description: 'Specifies when the asset was updated the last time. ' connectionStatus: title: Asset connection status type: object readOnly: true required: - status properties: status: type: string description: "Indicates the connection status of an asset.\n \nThe connection status of an asset is determined by the gateway. The gateway regularly\nsends the connection status of all connected assets.\n\nIt is one of:\n- `AVAILABLE`: Asset was reported as available by the gateway.\n- `UNAVAILABLE`: Asset was reported as unavailable by the gateway.\n- `UNKNOWN`: The gateway didn't report a status for the asset.\n\nIn case the connection status of the gateway this asset belongs to is `TEMPORARILY_UNAVAILABLE` or `UNAVAILABLE`\nthe status is always `UNAVAILABLE`.\nFor cloud-connected assets, the connection status will always be `AVAILABLE`: they have no gateway heartbeat\nand are reached through a cloud integration, so they are assumed to be reachable.\n" x-extensible-enum: - AVAILABLE - UNAVAILABLE - UNKNOWN x-readme-ref-name: AssetConnectionStatus type: type: string description: 'Describes the ''physical'' type of the asset. See `kind` for further distinction of the type in terms of the asset''s purpose/role, e.g. asset with type=INVERTER and kind=BATTERY represents a battery inverter. ' example: INVERTER gatewayType: type: string x-extensible-enum: - GRIDBOX - CLOUD description: 'Type of the gateway used to communicate with this asset: GRIDBOX → The asset is physically connected to a gridbox, through which it sends measurements and can be controlled. CLOUD → The asset is connected via a cloud-to-cloud integration, through which we receive measurements and can send commands. ' parent: type: string format: uuid description: 'Specifies the ID of the parent asset, for an asset which is the child of another. ' manufacturer: type: string description: 'Manufacturer of the asset. ' example: TQ Systems name: type: string description: 'Name of the asset. ' serialnumber: type: string description: 'Serial number of the asset. ' example: GD3Y3VMATKBY79142 model: type: string description: 'Model of the asset. ' example: Sunny Boy Storage 2.5 gateway: type: object deprecated: true description: 'Gateway used to communicate with the asset. Excluded by default, can be optionally included in the repsonse using the `include` query parameter. Deprecated: Use `gatewayType` field instead. For the gateway UUID of gridbox-connected assets, retrieve the system''s gateway via the system API (`GET /systems/{systemID}?include=gateways` or `GET /systems/list?include=gateways`). ' required: - uuid - type properties: uuid: type: string format: uuid description: Uniquely identifies the gateway. type: type: string x-extensible-enum: - GRIDBOX - CLOUD description: 'Type of the gateway: GRIDBOX → The asset is physically connected to a gridbox, through which it send measurements and be controlled. CLOUD → The asset is connected via a cloud-to-cloud integration, through which we receive measurements and can send commands. ' x-readme-ref-name: BaseAsset - required: - inChannelsCount - outChannelsCount properties: type: type: string enum: - IO_DEVICE firmware: type: string description: 'Firmware version of the io device. ' example: HW 3 SW V3.2.2 inChannelsCount: type: integer description: The number of input ports on the device, real physical ports you can connect a cable to. outChannelsCount: type: integer description: The number of output ports on the device, real physical ports you can connect a cable to. inputChannels: type: array description: Input channels of the fieldbus coupler, containing actions. items: title: IO Device Input Channel type: object properties: bitMask: type: string format: base64 description: BitMask used to identify the channel. bitValue: type: string format: base64 description: BitValue used to trigger the action. actions: type: array items: title: IO Device Input Action description: One individual input action, that can be registered to a channel of a fieldbus coppler appliance. type: object required: - name - value properties: name: type: string description: Name of the action. value: type: number description: Value of the action. Unit must be derived from Name. x-readme-ref-name: IODeviceAssetInputAction x-readme-ref-name: IODeviceAssetInputChannel outputChannels: type: array description: 'Output channels of the IODevice, containing actions. An output channel must not always use exactly one port, but can use multiple physical connections. SGReady heat pumps for example are connected using two output ports (which are grouped in one OutputChannel). ' items: title: IO Device Output Channel description: Represents one output channel of the IODevice. type: object properties: bitMask: type: string format: base64 description: Bit mask identifying the output channel. actions: type: array description: Actions (name/value pairs) that are applied to the channel when enabled. items: title: IO Device Output Action description: An individual output action, that can be registered to an output channel of an IODevice. type: object properties: bitValue: type: string format: base64 description: The value to write to the IODevice's output channel. Each action has its own bit value, to allow arbitrary combinations to be written to the output channel. sgReady: title: IO Device Output Action SGReady description: Used to specify a connection to a heat pump supporting the SGReady standard. type: object required: - pMin - pMax - state - applianceID properties: pMin: type: number pMax: type: number state: description: Represents one state of the sg ready standard. type: string x-extensible-enum: - UNKNOWN - 'OFF' - AUTO - RECOMMEND_ON - 'ON' applianceID: type: string format: uuid x-readme-ref-name: IODeviceAssetOutputActionSGReady x-readme-ref-name: IODeviceAssetOutputAction x-readme-ref-name: IODeviceAssetOutputChannel x-readme-ref-name: IODeviceAsset - title: Heater type: object description: Heater represents a monitor-/controllable heater. allOf: - title: Base Asset description: 'BaseAsset contains fields that all assets have in common. Specific asset types extend this schema and add new fields. ' type: object required: - id - createdAt - updatedAt - connectionStatus - type - gatewayType properties: id: type: string format: uuid description: 'Uniquely identifies the asset. ' example: ec4d0c89-a604-49ac-82f0-427f9cb42204 createdAt: type: string format: date-time description: 'Specifies when the asset was created. ' updatedAt: type: string format: date-time description: 'Specifies when the asset was updated the last time. ' connectionStatus: title: Asset connection status type: object readOnly: true required: - status properties: status: type: string description: "Indicates the connection status of an asset.\n \nThe connection status of an asset is determined by the gateway. The gateway regularly\nsends the connection status of all connected assets.\n\nIt is one of:\n- `AVAILABLE`: Asset was reported as available by the gateway.\n- `UNAVAILABLE`: Asset was reported as unavailable by the gateway.\n- `UNKNOWN`: The gateway didn't report a status for the asset.\n\nIn case the connection status of the gateway this asset belongs to is `TEMPORARILY_UNAVAILABLE` or `UNAVAILABLE`\nthe status is always `UNAVAILABLE`.\nFor cloud-connected assets, the connection status will always be `AVAILABLE`: they have no gateway heartbeat\nand are reached through a cloud integration, so they are assumed to be reachable.\n" x-extensible-enum: - AVAILABLE - UNAVAILABLE - UNKNOWN x-readme-ref-name: AssetConnectionStatus type: type: string description: 'Describes the ''physical'' type of the asset. See `kind` for further distinction of the type in terms of the asset''s purpose/role, e.g. asset with type=INVERTER and kind=BATTERY represents a battery inverter. ' example: INVERTER gatewayType: type: string x-extensible-enum: - GRIDBOX - CLOUD description: 'Type of the gateway used to communicate with this asset: GRIDBOX → The asset is physically connected to a gridbox, through which it sends measurements and can be controlled. CLOUD → The asset is connected via a cloud-to-cloud integration, through which we receive measurements and can send commands. ' parent: type: string format: uuid description: 'Specifies the ID of the parent asset, for an asset which is the child of another. ' manufacturer: type: string description: 'Manufacturer of the asset. ' example: TQ Systems name: type: string description: 'Name of the asset. ' serialnumber: type: string description: 'Serial number of the asset. ' example: GD3Y3VMATKBY79142 model: type: string description: 'Model of the asset. ' example: Sunny Boy Storage 2.5 gateway: type: object deprecated: true description: 'Gateway used to communicate with the asset. Excluded by default, can be optionally included in the repsonse using the `include` query parameter. Deprecated: Use `gatewayType` field instead. For the gateway UUID of gridbox-connected assets, retrieve the system''s gateway via the system API (`GET /systems/{systemID}?include=gateways` or `GET /systems/list?include=gateways`). ' required: - uuid - type properties: uuid: type: string format: uuid description: Uniquely identifies the gateway. type: type: string x-extensible-enum: - GRIDBOX - CLOUD description: 'Type of the gateway: GRIDBOX → The asset is physically connected to a gridbox, through which it send measurements and be controlled. CLOUD → The asset is connected via a cloud-to-cloud integration, through which we receive measurements and can send commands. ' x-readme-ref-name: BaseAsset - required: - medium properties: type: type: string enum: - HEATER firmware: type: string description: 'Firmware version of the heater. ' example: '101.3' medium: description: The medium the heater is working with. type: integer x-extensible-enum: - 0 - 1 - 2 - 3 - 4 nominalPower: description: The nominal power in mW of the heater. type: integer x-readme-ref-name: HeaterAsset - title: External controller description: Represent an external controller, used for DSO signaling and generally supervisory control. allOf: - title: Base Asset description: 'BaseAsset contains fields that all assets have in common. Specific asset types extend this schema and add new fields. ' type: object required: - id - createdAt - updatedAt - connectionStatus - type - gatewayType properties: id: type: string format: uuid description: 'Uniquely identifies the asset. ' example: ec4d0c89-a604-49ac-82f0-427f9cb42204 createdAt: type: string format: date-time description: 'Specifies when the asset was created. ' updatedAt: type: string format: date-time description: 'Specifies when the asset was updated the last time. ' connectionStatus: title: Asset connection status type: object readOnly: true required: - status properties: status: type: string description: "Indicates the connection status of an asset.\n \nThe connection status of an asset is determined by the gateway. The gateway regularly\nsends the connection status of all connected assets.\n\nIt is one of:\n- `AVAILABLE`: Asset was reported as available by the gateway.\n- `UNAVAILABLE`: Asset was reported as unavailable by the gateway.\n- `UNKNOWN`: The gateway didn't report a status for the asset.\n\nIn case the connection status of the gateway this asset belongs to is `TEMPORARILY_UNAVAILABLE` or `UNAVAILABLE`\nthe status is always `UNAVAILABLE`.\nFor cloud-connected assets, the connection status will always be `AVAILABLE`: they have no gateway heartbeat\nand are reached through a cloud integration, so they are assumed to be reachable.\n" x-extensible-enum: - AVAILABLE - UNAVAILABLE - UNKNOWN x-readme-ref-name: AssetConnectionStatus type: type: string description: 'Describes the ''physical'' type of the asset. See `kind` for further distinction of the type in terms of the asset''s purpose/role, e.g. asset with type=INVERTER and kind=BATTERY represents a battery inverter. ' example: INVERTER gatewayType: type: string x-extensible-enum: - GRIDBOX - CLOUD description: 'Type of the gateway used to communicate with this asset: GRIDBOX → The asset is physically connected to a gridbox, through which it sends measurements and can be controlled. CLOUD → The asset is connected via a cloud-to-cloud integration, through which we receive measurements and can send commands. ' parent: type: string format: uuid description: 'Specifies the ID of the parent asset, for an asset which is the child of another. ' manufacturer: type: string description: 'Manufacturer of the asset. ' example: TQ Systems name: type: string description: 'Name of the asset. ' serialnumber: type: string description: 'Serial number of the asset. ' example: GD3Y3VMATKBY79142 model: type: string description: 'Model of the asset. ' example: Sunny Boy Storage 2.5 gateway: type: object deprecated: true description: 'Gateway used to communicate with the asset. Excluded by default, can be optionally included in the repsonse using the `include` query parameter. Deprecated: Use `gatewayType` field instead. For the gateway UUID of gridbox-connected assets, retrieve the system''s gateway via the system API (`GET /systems/{systemID}?include=gateways` or `GET /systems/list?include=gateways`). ' required: - uuid - type properties: uuid: type: string format: uuid description: Uniquely identifies the gateway. type: type: string x-extensible-enum: - GRIDBOX - CLOUD description: 'Type of the gateway: GRIDBOX → The asset is physically connected to a gridbox, through which it send measurements and be controlled. CLOUD → The asset is connected via a cloud-to-cloud integration, through which we receive measurements and can send commands. ' x-readme-ref-name: BaseAsset - required: - kind properties: type: type: string enum: - EXTERNAL_CONTROLLER kind: description: Describes the specific kind of the external controller. type: string x-extensible-enum: - UNKNOWN - VDE4110_GATEWAY x-readme-ref-name: ExternalControllerAsset - title: Electric Vehicle description: Electric Vehicle represents a monitor-/controllable electric vehicle. allOf: - title: Base Asset description: 'BaseAsset contains fields that all assets have in common. Specific asset types extend this schema and add new fields. ' type: object required: - id - createdAt - updatedAt - connectionStatus - type - gatewayType properties: id: type: string format: uuid description: 'Uniquely identifies the asset. ' example: ec4d0c89-a604-49ac-82f0-427f9cb42204 createdAt: type: string format: date-time description: 'Specifies when the asset was created. ' updatedAt: type: string format: date-time description: 'Specifies when the asset was updated the last time. ' connectionStatus: title: Asset connection status type: object readOnly: true required: - status properties: status: type: string description: "Indicates the connection status of an asset.\n \nThe connection status of an asset is determined by the gateway. The gateway regularly\nsends the connection status of all connected assets.\n\nIt is one of:\n- `AVAILABLE`: Asset was reported as available by the gateway.\n- `UNAVAILABLE`: Asset was reported as unavailable by the gateway.\n- `UNKNOWN`: The gateway didn't report a status for the asset.\n\nIn case the connection status of the gateway this asset belongs to is `TEMPORARILY_UNAVAILABLE` or `UNAVAILABLE`\nthe status is always `UNAVAILABLE`.\nFor cloud-connected assets, the connection status will always be `AVAILABLE`: they have no gateway heartbeat\nand are reached through a cloud integration, so they are assumed to be reachable.\n" x-extensible-enum: - AVAILABLE - UNAVAILABLE - UNKNOWN x-readme-ref-name: AssetConnectionStatus type: type: string description: 'Describes the ''physical'' type of the asset. See `kind` for further distinction of the type in terms of the asset''s purpose/role, e.g. asset with type=INVERTER and kind=BATTERY represents a battery inverter. ' example: INVERTER gatewayType: type: string x-extensible-enum: - GRIDBOX - CLOUD description: 'Type of the gateway used to communicate with this asset: GRIDBOX → The asset is physically connected to a gridbox, through which it sends measurements and can be controlled. CLOUD → The asset is connected via a cloud-to-cloud integration, through which we receive measurements and can send commands. ' parent: type: string format: uuid description: 'Specifies the ID of the parent asset, for an asset which is the child of another. ' manufacturer: type: string description: 'Manufacturer of the asset. ' example: TQ Systems name: type: string description: 'Name of the asset. ' serialnumber: type: string description: 'Serial number of the asset. ' example: GD3Y3VMATKBY79142 model: type: string description: 'Model of the asset. ' example: Sunny Boy Storage 2.5 gateway: type: object deprecated: true description: 'Gateway used to communicate with the asset. Excluded by default, can be optionally included in the repsonse using the `include` query parameter. Deprecated: Use `gatewayType` field instead. For the gateway UUID of gridbox-connected assets, retrieve the system''s gateway via the system API (`GET /systems/{systemID}?include=gateways` or `GET /systems/list?include=gateways`). ' required: - uuid - type properties: uuid: type: string format: uuid description: Uniquely identifies the gateway. type: type: string x-extensible-enum: - GRIDBOX - CLOUD description: 'Type of the gateway: GRIDBOX → The asset is physically connected to a gridbox, through which it send measurements and be controlled. CLOUD → The asset is connected via a cloud-to-cloud integration, through which we receive measurements and can send commands. ' x-readme-ref-name: BaseAsset - properties: type: type: string enum: - EV kind: type: string description: Describes the specific kind of the electric vehicle. x-extensible-enum: - EV year: type: integer description: Describes the year the electric vehicle was produced. example: 2022 x-readme-ref-name: BaseEVAsset - required: - name - kind - manufacturer - model x-readme-ref-name: EVAsset discriminator: propertyName: type mapping: INVERTER: '#/components/schemas/InverterAsset' METER: '#/components/schemas/MeterAsset' HEAT_PUMP: '#/components/schemas/HeatPumpAsset' EVSTATION: '#/components/schemas/EVStationAsset' IO_DEVICE: '#/components/schemas/IODeviceAsset' HEATER: '#/components/schemas/HeaterAsset' EXTERNAL_CONTROLLER: '#/components/schemas/ExternalControllerAsset' EV: '#/components/schemas/EVAsset' x-readme-ref-name: Asset required: - assets x-readme-ref-name: AssetsList '403': description: Forbidden. content: application/vnd.gridx.v2+json: schema: readOnly: true allOf: - title: General Exception description: Represents a general error structure returned by our REST API. type: object properties: message: type: string description: Message represents the message reported to the user. details: type: array description: 'Details represents detail information for the user to fix this problem ' items: type: string required: - message x-readme-ref-name: GeneralException - title: UnauthorizedError - Forbidden Error description: Forbidden Error example: message: Bad credentials x-readme-ref-name: ForbiddenException '404': description: Requested entity not found. content: application/vnd.gridx.v2+json: schema: readOnly: true allOf: - title: General Exception description: Represents a general error structure returned by our REST API. type: object properties: message: type: string description: Message represents the message reported to the user. details: type: array description: 'Details represents detail information for the user to fix this problem ' items: type: string required: - message x-readme-ref-name: GeneralException - title: ClientError - Not Found description: Not Found indicates that the entity was not found. example: message: Not Found x-readme-ref-name: NotFoundException '500': description: There has been an internal error on our side. We're looking into it. content: application/vnd.gridx.v2+json: schema: readOnly: true allOf: - title: General Exception description: Represents a general error structure returned by our REST API. type: object properties: message: type: string description: Message represents the message reported to the user. details: type: array description: 'Details represents detail information for the user to fix this problem ' items: type: string required: - message x-readme-ref-name: GeneralException - title: ServerSideError - Internal Server Error description: Internal Server Error example: message: Internal Server Error x-readme-ref-name: InternalException security: - HeaderAuth: - AssetRead x-code-samples: - lang: python label: Python source: 'import requests url = "https://api.gridx.de/systems/systemID/assets" headers = {"accept": "application/vnd.gridx.v2+json"} response = requests.get(url, headers=headers) print(response.text)' - lang: shell label: Shell source: "curl --request GET \\\n --url https://api.gridx.de/systems/systemID/assets \\\n --header 'accept: application/vnd.gridx.v2+json'" - lang: go label: Go source: "package main\n\nimport (\n\t\"fmt\"\n\t\"net/http\"\n\t\"io\"\n)\n\nfunc main() {\n\n\turl := \"https://api.gridx.de/systems/systemID/assets\"\n\n\treq, _ := http.NewRequest(\"GET\", url, nil)\n\n\treq.Header.Add(\"accept\", \"application/vnd.gridx.v2+json\")\n\n\tres, _ := http.DefaultClient.Do(req)\n\n\tdefer res.Body.Close()\n\tbody, _ := io.ReadAll(res.Body)\n\n\tfmt.Println(string(body))\n\n}" - lang: javascript label: Javascript source: "const options = {method: 'GET', headers: {accept: 'application/vnd.gridx.v2+json'}};\n\nfetch('https://api.gridx.de/systems/systemID/assets', options)\n .then(res => res.json())\n .then(res => console.log(res))\n .catch(err => console.error(err));" - lang: java label: Java source: "OkHttpClient client = new OkHttpClient();\n\nRequest request = new Request.Builder()\n .url(\"https://api.gridx.de/systems/systemID/assets\")\n .get()\n .addHeader(\"accept\", \"application/vnd.gridx.v2+json\")\n .build();\n\nResponse response = client.newCall(request).execute();" - lang: java label: Kotlin source: "val client = OkHttpClient()\n\nval request = Request.Builder()\n .url(\"https://api.gridx.de/systems/systemID/assets\")\n .get()\n .addHeader(\"accept\", \"application/vnd.gridx.v2+json\")\n .build()\n\nval response = client.newCall(request).execute()" - lang: javascript label: Swift source: 'import Foundation let url = URL(string: "https://api.gridx.de/systems/systemID/assets")! var request = URLRequest(url: url) request.httpMethod = "GET" request.timeoutInterval = 10 request.allHTTPHeaderFields = ["accept": "application/vnd.gridx.v2+json"] let (data, _) = try await URLSession.shared.data(for: request) print(String(decoding: data, as: UTF8.self))' - lang: csharp label: C# source: 'using RestSharp; var options = new RestClientOptions("https://api.gridx.de/systems/systemID/assets"); var client = new RestClient(options); var request = new RestRequest(""); request.AddHeader("accept", "application/vnd.gridx.v2+json"); var response = await client.GetAsync(request); Console.WriteLine("{0}", response.Content); ' servers: - url: https://api.gridx.de description: Production /systems/{systemID}/assets/{assetID}: get: operationId: getSystemAsset summary: Retrieve an Asset description: Retrieves the details of an existing asset. tags: - Asset x-badges: - label: draft color: red parameters: - name: systemID description: 'Unique identifier used to access a system. ' in: path required: true schema: type: string format: uuid example: aa3e5a93-bb38-4b15-b7f2-af40daf3a1dc - name: assetID description: 'Unique identifier used to access an asset. ' in: path required: true schema: type: string format: uuid example: bb2681ab-9526-49ca-bc52-a5f4ec366958 - name: include deprecated: true description: 'This query param allows to set certain fields only when needed. This makes the request faster as it requires to load only necessary data. If this param is unset, only the core asset fields are included. Deprecated: The `gateway` field is now always included in the response. Use `gatewayType` from the appliance response for the gateway type. ' in: query explode: false schema: type: array items: type: string enum: - gateway responses: '200': description: Returned Asset. content: application/vnd.gridx.v2+json: schema: title: Asset description: 'Asset represents a monitor-/controllable device such as Inverters, Meters and Heat Pumps. ' readOnly: true oneOf: - title: Inverter description: 'Inverter represents a monitor-/controllable inverter. It can be of kind: - `PV`/`PV_EXTERNAL`: used as photovoltaic only. - `BATTERY`: used as battery only. - `HYBRID`: used as both photovoltaic and battery. - `UNKNOWN`: default, when the inverter kind is not determined. ' allOf: - title: Base Asset description: 'BaseAsset contains fields that all assets have in common. Specific asset types extend this schema and add new fields. ' type: object required: - id - createdAt - updatedAt - connectionStatus - type - gatewayType properties: id: type: string format: uuid description: 'Uniquely identifies the asset. ' example: ec4d0c89-a604-49ac-82f0-427f9cb42204 createdAt: type: string format: date-time description: 'Specifies when the asset was created. ' updatedAt: type: string format: date-time description: 'Specifies when the asset was updated the last time. ' connectionStatus: title: Asset connection status type: object readOnly: true required: - status properties: status: type: string description: "Indicates the connection status of an asset.\n \nThe connection status of an asset is determined by the gateway. The gateway regularly\nsends the connection status of all connected assets.\n\nIt is one of:\n- `AVAILABLE`: Asset was reported as available by the gateway.\n- `UNAVAILABLE`: Asset was reported as unavailable by the gateway.\n- `UNKNOWN`: The gateway didn't report a status for the asset.\n\nIn case the connection status of the gateway this asset belongs to is `TEMPORARILY_UNAVAILABLE` or `UNAVAILABLE`\nthe status is always `UNAVAILABLE`.\nFor cloud-connected assets, the connection status will always be `AVAILABLE`: they have no gateway heartbeat\nand are reached through a cloud integration, so they are assumed to be reachable.\n" x-extensible-enum: - AVAILABLE - UNAVAILABLE - UNKNOWN x-readme-ref-name: AssetConnectionStatus type: type: string description: 'Describes the ''physical'' type of the asset. See `kind` for further distinction of the type in terms of the asset''s purpose/role, e.g. asset with type=INVERTER and kind=BATTERY represents a battery inverter. ' example: INVERTER gatewayType: type: string x-extensible-enum: - GRIDBOX - CLOUD description: 'Type of the gateway used to communicate with this asset: GRIDBOX → The asset is physically connected to a gridbox, through which it sends measurements and can be controlled. CLOUD → The asset is connected via a cloud-to-cloud integration, through which we receive measurements and can send commands. ' parent: type: string format: uuid description: 'Specifies the ID of the parent asset, for an asset which is the child of another. ' manufacturer: type: string description: 'Manufacturer of the asset. ' example: TQ Systems name: type: string description: 'Name of the asset. ' serialnumber: type: string description: 'Serial number of the asset. ' example: GD3Y3VMATKBY79142 model: type: string description: 'Model of the asset. ' example: Sunny Boy Storage 2.5 gateway: type: object deprecated: true description: 'Gateway used to communicate with the asset. Excluded by default, can be optionally included in the repsonse using the `include` query parameter. Deprecated: Use `gatewayType` field instead. For the gateway UUID of gridbox-connected assets, retrieve the system''s gateway via the system API (`GET /systems/{systemID}?include=gateways` or `GET /systems/list?include=gateways`). ' required: - uuid - type properties: uuid: type: string format: uuid description: Uniquely identifies the gateway. type: type: string x-extensible-enum: - GRIDBOX - CLOUD description: 'Type of the gateway: GRIDBOX → The asset is physically connected to a gridbox, through which it send measurements and be controlled. CLOUD → The asset is connected via a cloud-to-cloud integration, through which we receive measurements and can send commands. ' x-readme-ref-name: BaseAsset - required: - kind properties: type: type: string enum: - INVERTER kind: type: string description: 'Indicates the role of the inverter. Setting the kind impacts the system measurements. So it''s best to set it up correctly as early as possible in accordance to the actual installation in order for the measurement calculation to be correct (best during commissioning). ' x-extensible-enum: - UNKNOWN - PV - PV_EXTERNAL - BATTERY - HYBRID firmware: type: string description: 'Firmware version of the inverter. ' example: 2.4.23.R maxActivePowerOutput: type: integer description: 'Maximum active power output of the inverter in mW; set manually. Zero if not set. ' nominalPowerLimit: type: integer description: 'Designed maximal power output of the inverter in mW. ' hybridCalcMode: type: integer description: 'The calculation mode for inverters of `HYBRID` kind. ' x-extensible-enum: - 0 - 1 - 2 hardwareStatus: title: Hardware Status type: object description: "HardwareStatus provides information about the condition of the inverter and in case of issues, \npossible follow-up actions the user/installer can perform to resolve them.\n" properties: state: type: string description: State of the inverter. x-extensible-enum: - UNKNOWN - OK - WARNING - ERROR action: type: string description: Recommended action to resolve ERROR/WARNING state. x-extensible-enum: - CONSULT_DEVICE_READOUT - CONTACT_INSTALLER - CONTACT_MANUFACTURER - CONTACT_GRID_OPERATOR errorCode: type: string description: Inverter manufacturer/model dependent error code formatted as it would be shown on display. description: type: string description: Contains details about the inverter ERROR and WARNING states. x-extensible-enum: - OTHER - GRID_FAULT - INSULATION_FAILURE - INTERFERENCE_DEVICE - FAN_FAULT - WAIT_FOR_UPDATE - SOFTWARE_FAULT - HARDWARE_FAULT - PARAMETER_FAULT - HIGH_TEMPERATURE - HIGH_DC_VOLTAGE - LOW_DC_POWER - DC_OVERCURRENT - INSTALLATION_FAULT - COMMUNICATION_FAULT - BATTERY_FAULT measuredAt: type: string format: date-time example: '2018-04-15T00:00:00Z' x-readme-ref-name: AssetHardwareStatus battery: title: Battery type: object description: The battery-specific information for inverters of BATTERY and HYBRID kind. required: - controllable properties: maxCharge: type: integer format: int64 description: Battery's maximum charge in mW minimum: 0 maxDischarge: type: integer format: int64 description: Battery's maximum discharge in mW minimum: 0 controllable: type: boolean description: Controllable is true if the battery charging/discharging can be controlled. dischargeLimit: type: integer description: DischargeLimit is the minimum state of charge in % from 0-100 to discharge to. rechargeLimit: type: integer description: "RechargeLimit is the state of charge in % from 0-100 to which the battery needs to \nrecharge before allowing discharging again.\n" controlSettings: type: object description: Indicates the currently desired control settings for the battery. required: - value - command properties: value: type: integer description: Represents the charge/discharge power in mW. command: type: string description: Represents the current control command. x-extensible-enum: - none - charge - discharge x-readme-ref-name: BatteryAsset x-readme-ref-name: InverterAsset - title: Meter description: 'Meter represents a monitor-/controllable meter. ' allOf: - title: Base Asset description: 'BaseAsset contains fields that all assets have in common. Specific asset types extend this schema and add new fields. ' type: object required: - id - createdAt - updatedAt - connectionStatus - type - gatewayType properties: id: type: string format: uuid description: 'Uniquely identifies the asset. ' example: ec4d0c89-a604-49ac-82f0-427f9cb42204 createdAt: type: string format: date-time description: 'Specifies when the asset was created. ' updatedAt: type: string format: date-time description: 'Specifies when the asset was updated the last time. ' connectionStatus: title: Asset connection status type: object readOnly: true required: - status properties: status: type: string description: "Indicates the connection status of an asset.\n \nThe connection status of an asset is determined by the gateway. The gateway regularly\nsends the connection status of all connected assets.\n\nIt is one of:\n- `AVAILABLE`: Asset was reported as available by the gateway.\n- `UNAVAILABLE`: Asset was reported as unavailable by the gateway.\n- `UNKNOWN`: The gateway didn't report a status for the asset.\n\nIn case the connection status of the gateway this asset belongs to is `TEMPORARILY_UNAVAILABLE` or `UNAVAILABLE`\nthe status is always `UNAVAILABLE`.\nFor cloud-connected assets, the connection status will always be `AVAILABLE`: they have no gateway heartbeat\nand are reached through a cloud integration, so they are assumed to be reachable.\n" x-extensible-enum: - AVAILABLE - UNAVAILABLE - UNKNOWN x-readme-ref-name: AssetConnectionStatus type: type: string description: 'Describes the ''physical'' type of the asset. See `kind` for further distinction of the type in terms of the asset''s purpose/role, e.g. asset with type=INVERTER and kind=BATTERY represents a battery inverter. ' example: INVERTER gatewayType: type: string x-extensible-enum: - GRIDBOX - CLOUD description: 'Type of the gateway used to communicate with this asset: GRIDBOX → The asset is physically connected to a gridbox, through which it sends measurements and can be controlled. CLOUD → The asset is connected via a cloud-to-cloud integration, through which we receive measurements and can send commands. ' parent: type: string format: uuid description: 'Specifies the ID of the parent asset, for an asset which is the child of another. ' manufacturer: type: string description: 'Manufacturer of the asset. ' example: TQ Systems name: type: string description: 'Name of the asset. ' serialnumber: type: string description: 'Serial number of the asset. ' example: GD3Y3VMATKBY79142 model: type: string description: 'Model of the asset. ' example: Sunny Boy Storage 2.5 gateway: type: object deprecated: true description: 'Gateway used to communicate with the asset. Excluded by default, can be optionally included in the repsonse using the `include` query parameter. Deprecated: Use `gatewayType` field instead. For the gateway UUID of gridbox-connected assets, retrieve the system''s gateway via the system API (`GET /systems/{systemID}?include=gateways` or `GET /systems/list?include=gateways`). ' required: - uuid - type properties: uuid: type: string format: uuid description: Uniquely identifies the gateway. type: type: string x-extensible-enum: - GRIDBOX - CLOUD description: 'Type of the gateway: GRIDBOX → The asset is physically connected to a gridbox, through which it send measurements and be controlled. CLOUD → The asset is connected via a cloud-to-cloud integration, through which we receive measurements and can send commands. ' x-readme-ref-name: BaseAsset - required: - kind - location properties: type: type: string enum: - METER kind: type: string description: 'Indicates what the meter measures. Setting the kind impacts the system measurements. So it''s best to set it up correctly as early as possible in accordance to the actual installation in order for the measurement calculation to be correct (best during commissioning). ' x-extensible-enum: - UNKNOWN - PV - GRID - BATTERY - HEAT_PUMP - FUEL_CELL - HEAT_PUMP_EXTERNAL - EVSTATION - PV_EXTERNAL - BTTP - HEATING - MISC - CLUSTER - WIND_TURBINE - AIR_CONDITIONER firmware: type: string description: 'Firmware version of the meter. ' example: '2.03' location: type: string description: 'Indicates that the meter is in front of given location for measuring the consumption and production. ' x-extensible-enum: - UNKNOWN - PV - GRID - BATTERY - HEAT_PUMP - FUEL_CELL - HEAT_PUMP_EXTERNAL - EVSTATION - PV_EXTERNAL - BTTP - HEATING - MISC - CLUSTER - WIND_TURBINE - AIR_CONDITIONER modbusAddress: type: integer x-readme-ref-name: MeterAsset - title: Heat Pump type: object description: Heat Pump represents a monitor-/controllable heat pump. allOf: - title: Base Asset description: 'BaseAsset contains fields that all assets have in common. Specific asset types extend this schema and add new fields. ' type: object required: - id - createdAt - updatedAt - connectionStatus - type - gatewayType properties: id: type: string format: uuid description: 'Uniquely identifies the asset. ' example: ec4d0c89-a604-49ac-82f0-427f9cb42204 createdAt: type: string format: date-time description: 'Specifies when the asset was created. ' updatedAt: type: string format: date-time description: 'Specifies when the asset was updated the last time. ' connectionStatus: title: Asset connection status type: object readOnly: true required: - status properties: status: type: string description: "Indicates the connection status of an asset.\n \nThe connection status of an asset is determined by the gateway. The gateway regularly\nsends the connection status of all connected assets.\n\nIt is one of:\n- `AVAILABLE`: Asset was reported as available by the gateway.\n- `UNAVAILABLE`: Asset was reported as unavailable by the gateway.\n- `UNKNOWN`: The gateway didn't report a status for the asset.\n\nIn case the connection status of the gateway this asset belongs to is `TEMPORARILY_UNAVAILABLE` or `UNAVAILABLE`\nthe status is always `UNAVAILABLE`.\nFor cloud-connected assets, the connection status will always be `AVAILABLE`: they have no gateway heartbeat\nand are reached through a cloud integration, so they are assumed to be reachable.\n" x-extensible-enum: - AVAILABLE - UNAVAILABLE - UNKNOWN x-readme-ref-name: AssetConnectionStatus type: type: string description: 'Describes the ''physical'' type of the asset. See `kind` for further distinction of the type in terms of the asset''s purpose/role, e.g. asset with type=INVERTER and kind=BATTERY represents a battery inverter. ' example: INVERTER gatewayType: type: string x-extensible-enum: - GRIDBOX - CLOUD description: 'Type of the gateway used to communicate with this asset: GRIDBOX → The asset is physically connected to a gridbox, through which it sends measurements and can be controlled. CLOUD → The asset is connected via a cloud-to-cloud integration, through which we receive measurements and can send commands. ' parent: type: string format: uuid description: 'Specifies the ID of the parent asset, for an asset which is the child of another. ' manufacturer: type: string description: 'Manufacturer of the asset. ' example: TQ Systems name: type: string description: 'Name of the asset. ' serialnumber: type: string description: 'Serial number of the asset. ' example: GD3Y3VMATKBY79142 model: type: string description: 'Model of the asset. ' example: Sunny Boy Storage 2.5 gateway: type: object deprecated: true description: 'Gateway used to communicate with the asset. Excluded by default, can be optionally included in the repsonse using the `include` query parameter. Deprecated: Use `gatewayType` field instead. For the gateway UUID of gridbox-connected assets, retrieve the system''s gateway via the system API (`GET /systems/{systemID}?include=gateways` or `GET /systems/list?include=gateways`). ' required: - uuid - type properties: uuid: type: string format: uuid description: Uniquely identifies the gateway. type: type: string x-extensible-enum: - GRIDBOX - CLOUD description: 'Type of the gateway: GRIDBOX → The asset is physically connected to a gridbox, through which it send measurements and be controlled. CLOUD → The asset is connected via a cloud-to-cloud integration, through which we receive measurements and can send commands. ' x-readme-ref-name: BaseAsset - required: - controllable properties: type: type: string enum: - HEAT_PUMP firmware: type: string description: 'Firmware version of the heat pump. ' example: mac_02:80:ad:24:d5:ab controllable: type: boolean description: Specifies whether this appliance is controllable by the EMS. energyManagementSettings: type: object description: Energy management specific settings for the heat pump. required: - behindGCP properties: behindGCP: description: Specifies whether this heat pump exists behind a GCP meter. type: boolean x-readme-ref-name: HeatPumpAsset - title: EV Charging Station description: 'EV Charging Station represents a monitor-/controllable electric vehicle charging station. ' allOf: - title: Base Asset description: 'BaseAsset contains fields that all assets have in common. Specific asset types extend this schema and add new fields. ' type: object required: - id - createdAt - updatedAt - connectionStatus - type - gatewayType properties: id: type: string format: uuid description: 'Uniquely identifies the asset. ' example: ec4d0c89-a604-49ac-82f0-427f9cb42204 createdAt: type: string format: date-time description: 'Specifies when the asset was created. ' updatedAt: type: string format: date-time description: 'Specifies when the asset was updated the last time. ' connectionStatus: title: Asset connection status type: object readOnly: true required: - status properties: status: type: string description: "Indicates the connection status of an asset.\n \nThe connection status of an asset is determined by the gateway. The gateway regularly\nsends the connection status of all connected assets.\n\nIt is one of:\n- `AVAILABLE`: Asset was reported as available by the gateway.\n- `UNAVAILABLE`: Asset was reported as unavailable by the gateway.\n- `UNKNOWN`: The gateway didn't report a status for the asset.\n\nIn case the connection status of the gateway this asset belongs to is `TEMPORARILY_UNAVAILABLE` or `UNAVAILABLE`\nthe status is always `UNAVAILABLE`.\nFor cloud-connected assets, the connection status will always be `AVAILABLE`: they have no gateway heartbeat\nand are reached through a cloud integration, so they are assumed to be reachable.\n" x-extensible-enum: - AVAILABLE - UNAVAILABLE - UNKNOWN x-readme-ref-name: AssetConnectionStatus type: type: string description: 'Describes the ''physical'' type of the asset. See `kind` for further distinction of the type in terms of the asset''s purpose/role, e.g. asset with type=INVERTER and kind=BATTERY represents a battery inverter. ' example: INVERTER gatewayType: type: string x-extensible-enum: - GRIDBOX - CLOUD description: 'Type of the gateway used to communicate with this asset: GRIDBOX → The asset is physically connected to a gridbox, through which it sends measurements and can be controlled. CLOUD → The asset is connected via a cloud-to-cloud integration, through which we receive measurements and can send commands. ' parent: type: string format: uuid description: 'Specifies the ID of the parent asset, for an asset which is the child of another. ' manufacturer: type: string description: 'Manufacturer of the asset. ' example: TQ Systems name: type: string description: 'Name of the asset. ' serialnumber: type: string description: 'Serial number of the asset. ' example: GD3Y3VMATKBY79142 model: type: string description: 'Model of the asset. ' example: Sunny Boy Storage 2.5 gateway: type: object deprecated: true description: 'Gateway used to communicate with the asset. Excluded by default, can be optionally included in the repsonse using the `include` query parameter. Deprecated: Use `gatewayType` field instead. For the gateway UUID of gridbox-connected assets, retrieve the system''s gateway via the system API (`GET /systems/{systemID}?include=gateways` or `GET /systems/list?include=gateways`). ' required: - uuid - type properties: uuid: type: string format: uuid description: Uniquely identifies the gateway. type: type: string x-extensible-enum: - GRIDBOX - CLOUD description: 'Type of the gateway: GRIDBOX → The asset is physically connected to a gridbox, through which it send measurements and be controlled. CLOUD → The asset is connected via a cloud-to-cloud integration, through which we receive measurements and can send commands. ' x-readme-ref-name: BaseAsset - type: object properties: type: type: string enum: - EVSTATION kind: description: The kind of the ev charging station. type: string x-extensible-enum: - UNKNOWN - BATTERY_INTEGRATED firmware: type: string description: 'Firmware version of the ev charging station. ' example: 0.38-78000001 evseID: type: string description: The EVSE-ID related to the charge point. x-readme-ref-name: BaseEVStationAsset - required: - kind x-readme-ref-name: EVStationAsset - title: IO Device description: IO devices represent configuration options that can be applied for appliances of the fieldbus coupler type allOf: - title: Base Asset description: 'BaseAsset contains fields that all assets have in common. Specific asset types extend this schema and add new fields. ' type: object required: - id - createdAt - updatedAt - connectionStatus - type - gatewayType properties: id: type: string format: uuid description: 'Uniquely identifies the asset. ' example: ec4d0c89-a604-49ac-82f0-427f9cb42204 createdAt: type: string format: date-time description: 'Specifies when the asset was created. ' updatedAt: type: string format: date-time description: 'Specifies when the asset was updated the last time. ' connectionStatus: title: Asset connection status type: object readOnly: true required: - status properties: status: type: string description: "Indicates the connection status of an asset.\n \nThe connection status of an asset is determined by the gateway. The gateway regularly\nsends the connection status of all connected assets.\n\nIt is one of:\n- `AVAILABLE`: Asset was reported as available by the gateway.\n- `UNAVAILABLE`: Asset was reported as unavailable by the gateway.\n- `UNKNOWN`: The gateway didn't report a status for the asset.\n\nIn case the connection status of the gateway this asset belongs to is `TEMPORARILY_UNAVAILABLE` or `UNAVAILABLE`\nthe status is always `UNAVAILABLE`.\nFor cloud-connected assets, the connection status will always be `AVAILABLE`: they have no gateway heartbeat\nand are reached through a cloud integration, so they are assumed to be reachable.\n" x-extensible-enum: - AVAILABLE - UNAVAILABLE - UNKNOWN x-readme-ref-name: AssetConnectionStatus type: type: string description: 'Describes the ''physical'' type of the asset. See `kind` for further distinction of the type in terms of the asset''s purpose/role, e.g. asset with type=INVERTER and kind=BATTERY represents a battery inverter. ' example: INVERTER gatewayType: type: string x-extensible-enum: - GRIDBOX - CLOUD description: 'Type of the gateway used to communicate with this asset: GRIDBOX → The asset is physically connected to a gridbox, through which it sends measurements and can be controlled. CLOUD → The asset is connected via a cloud-to-cloud integration, through which we receive measurements and can send commands. ' parent: type: string format: uuid description: 'Specifies the ID of the parent asset, for an asset which is the child of another. ' manufacturer: type: string description: 'Manufacturer of the asset. ' example: TQ Systems name: type: string description: 'Name of the asset. ' serialnumber: type: string description: 'Serial number of the asset. ' example: GD3Y3VMATKBY79142 model: type: string description: 'Model of the asset. ' example: Sunny Boy Storage 2.5 gateway: type: object deprecated: true description: 'Gateway used to communicate with the asset. Excluded by default, can be optionally included in the repsonse using the `include` query parameter. Deprecated: Use `gatewayType` field instead. For the gateway UUID of gridbox-connected assets, retrieve the system''s gateway via the system API (`GET /systems/{systemID}?include=gateways` or `GET /systems/list?include=gateways`). ' required: - uuid - type properties: uuid: type: string format: uuid description: Uniquely identifies the gateway. type: type: string x-extensible-enum: - GRIDBOX - CLOUD description: 'Type of the gateway: GRIDBOX → The asset is physically connected to a gridbox, through which it send measurements and be controlled. CLOUD → The asset is connected via a cloud-to-cloud integration, through which we receive measurements and can send commands. ' x-readme-ref-name: BaseAsset - required: - inChannelsCount - outChannelsCount properties: type: type: string enum: - IO_DEVICE firmware: type: string description: 'Firmware version of the io device. ' example: HW 3 SW V3.2.2 inChannelsCount: type: integer description: The number of input ports on the device, real physical ports you can connect a cable to. outChannelsCount: type: integer description: The number of output ports on the device, real physical ports you can connect a cable to. inputChannels: type: array description: Input channels of the fieldbus coupler, containing actions. items: title: IO Device Input Channel type: object properties: bitMask: type: string format: base64 description: BitMask used to identify the channel. bitValue: type: string format: base64 description: BitValue used to trigger the action. actions: type: array items: title: IO Device Input Action description: One individual input action, that can be registered to a channel of a fieldbus coppler appliance. type: object required: - name - value properties: name: type: string description: Name of the action. value: type: number description: Value of the action. Unit must be derived from Name. x-readme-ref-name: IODeviceAssetInputAction x-readme-ref-name: IODeviceAssetInputChannel outputChannels: type: array description: 'Output channels of the IODevice, containing actions. An output channel must not always use exactly one port, but can use multiple physical connections. SGReady heat pumps for example are connected using two output ports (which are grouped in one OutputChannel). ' items: title: IO Device Output Channel description: Represents one output channel of the IODevice. type: object properties: bitMask: type: string format: base64 description: Bit mask identifying the output channel. actions: type: array description: Actions (name/value pairs) that are applied to the channel when enabled. items: title: IO Device Output Action description: An individual output action, that can be registered to an output channel of an IODevice. type: object properties: bitValue: type: string format: base64 description: The value to write to the IODevice's output channel. Each action has its own bit value, to allow arbitrary combinations to be written to the output channel. sgReady: title: IO Device Output Action SGReady description: Used to specify a connection to a heat pump supporting the SGReady standard. type: object required: - pMin - pMax - state - applianceID properties: pMin: type: number pMax: type: number state: description: Represents one state of the sg ready standard. type: string x-extensible-enum: - UNKNOWN - 'OFF' - AUTO - RECOMMEND_ON - 'ON' applianceID: type: string format: uuid x-readme-ref-name: IODeviceAssetOutputActionSGReady x-readme-ref-name: IODeviceAssetOutputAction x-readme-ref-name: IODeviceAssetOutputChannel x-readme-ref-name: IODeviceAsset - title: Heater type: object description: Heater represents a monitor-/controllable heater. allOf: - title: Base Asset description: 'BaseAsset contains fields that all assets have in common. Specific asset types extend this schema and add new fields. ' type: object required: - id - createdAt - updatedAt - connectionStatus - type - gatewayType properties: id: type: string format: uuid description: 'Uniquely identifies the asset. ' example: ec4d0c89-a604-49ac-82f0-427f9cb42204 createdAt: type: string format: date-time description: 'Specifies when the asset was created. ' updatedAt: type: string format: date-time description: 'Specifies when the asset was updated the last time. ' connectionStatus: title: Asset connection status type: object readOnly: true required: - status properties: status: type: string description: "Indicates the connection status of an asset.\n \nThe connection status of an asset is determined by the gateway. The gateway regularly\nsends the connection status of all connected assets.\n\nIt is one of:\n- `AVAILABLE`: Asset was reported as available by the gateway.\n- `UNAVAILABLE`: Asset was reported as unavailable by the gateway.\n- `UNKNOWN`: The gateway didn't report a status for the asset.\n\nIn case the connection status of the gateway this asset belongs to is `TEMPORARILY_UNAVAILABLE` or `UNAVAILABLE`\nthe status is always `UNAVAILABLE`.\nFor cloud-connected assets, the connection status will always be `AVAILABLE`: they have no gateway heartbeat\nand are reached through a cloud integration, so they are assumed to be reachable.\n" x-extensible-enum: - AVAILABLE - UNAVAILABLE - UNKNOWN x-readme-ref-name: AssetConnectionStatus type: type: string description: 'Describes the ''physical'' type of the asset. See `kind` for further distinction of the type in terms of the asset''s purpose/role, e.g. asset with type=INVERTER and kind=BATTERY represents a battery inverter. ' example: INVERTER gatewayType: type: string x-extensible-enum: - GRIDBOX - CLOUD description: 'Type of the gateway used to communicate with this asset: GRIDBOX → The asset is physically connected to a gridbox, through which it sends measurements and can be controlled. CLOUD → The asset is connected via a cloud-to-cloud integration, through which we receive measurements and can send commands. ' parent: type: string format: uuid description: 'Specifies the ID of the parent asset, for an asset which is the child of another. ' manufacturer: type: string description: 'Manufacturer of the asset. ' example: TQ Systems name: type: string description: 'Name of the asset. ' serialnumber: type: string description: 'Serial number of the asset. ' example: GD3Y3VMATKBY79142 model: type: string description: 'Model of the asset. ' example: Sunny Boy Storage 2.5 gateway: type: object deprecated: true description: 'Gateway used to communicate with the asset. Excluded by default, can be optionally included in the repsonse using the `include` query parameter. Deprecated: Use `gatewayType` field instead. For the gateway UUID of gridbox-connected assets, retrieve the system''s gateway via the system API (`GET /systems/{systemID}?include=gateways` or `GET /systems/list?include=gateways`). ' required: - uuid - type properties: uuid: type: string format: uuid description: Uniquely identifies the gateway. type: type: string x-extensible-enum: - GRIDBOX - CLOUD description: 'Type of the gateway: GRIDBOX → The asset is physically connected to a gridbox, through which it send measurements and be controlled. CLOUD → The asset is connected via a cloud-to-cloud integration, through which we receive measurements and can send commands. ' x-readme-ref-name: BaseAsset - required: - medium properties: type: type: string enum: - HEATER firmware: type: string description: 'Firmware version of the heater. ' example: '101.3' medium: description: The medium the heater is working with. type: integer x-extensible-enum: - 0 - 1 - 2 - 3 - 4 nominalPower: description: The nominal power in mW of the heater. type: integer x-readme-ref-name: HeaterAsset - title: External controller description: Represent an external controller, used for DSO signaling and generally supervisory control. allOf: - title: Base Asset description: 'BaseAsset contains fields that all assets have in common. Specific asset types extend this schema and add new fields. ' type: object required: - id - createdAt - updatedAt - connectionStatus - type - gatewayType properties: id: type: string format: uuid description: 'Uniquely identifies the asset. ' example: ec4d0c89-a604-49ac-82f0-427f9cb42204 createdAt: type: string format: date-time description: 'Specifies when the asset was created. ' updatedAt: type: string format: date-time description: 'Specifies when the asset was updated the last time. ' connectionStatus: title: Asset connection status type: object readOnly: true required: - status properties: status: type: string description: "Indicates the connection status of an asset.\n \nThe connection status of an asset is determined by the gateway. The gateway regularly\nsends the connection status of all connected assets.\n\nIt is one of:\n- `AVAILABLE`: Asset was reported as available by the gateway.\n- `UNAVAILABLE`: Asset was reported as unavailable by the gateway.\n- `UNKNOWN`: The gateway didn't report a status for the asset.\n\nIn case the connection status of the gateway this asset belongs to is `TEMPORARILY_UNAVAILABLE` or `UNAVAILABLE`\nthe status is always `UNAVAILABLE`.\nFor cloud-connected assets, the connection status will always be `AVAILABLE`: they have no gateway heartbeat\nand are reached through a cloud integration, so they are assumed to be reachable.\n" x-extensible-enum: - AVAILABLE - UNAVAILABLE - UNKNOWN x-readme-ref-name: AssetConnectionStatus type: type: string description: 'Describes the ''physical'' type of the asset. See `kind` for further distinction of the type in terms of the asset''s purpose/role, e.g. asset with type=INVERTER and kind=BATTERY represents a battery inverter. ' example: INVERTER gatewayType: type: string x-extensible-enum: - GRIDBOX - CLOUD description: 'Type of the gateway used to communicate with this asset: GRIDBOX → The asset is physically connected to a gridbox, through which it sends measurements and can be controlled. CLOUD → The asset is connected via a cloud-to-cloud integration, through which we receive measurements and can send commands. ' parent: type: string format: uuid description: 'Specifies the ID of the parent asset, for an asset which is the child of another. ' manufacturer: type: string description: 'Manufacturer of the asset. ' example: TQ Systems name: type: string description: 'Name of the asset. ' serialnumber: type: string description: 'Serial number of the asset. ' example: GD3Y3VMATKBY79142 model: type: string description: 'Model of the asset. ' example: Sunny Boy Storage 2.5 gateway: type: object deprecated: true description: 'Gateway used to communicate with the asset. Excluded by default, can be optionally included in the repsonse using the `include` query parameter. Deprecated: Use `gatewayType` field instead. For the gateway UUID of gridbox-connected assets, retrieve the system''s gateway via the system API (`GET /systems/{systemID}?include=gateways` or `GET /systems/list?include=gateways`). ' required: - uuid - type properties: uuid: type: string format: uuid description: Uniquely identifies the gateway. type: type: string x-extensible-enum: - GRIDBOX - CLOUD description: 'Type of the gateway: GRIDBOX → The asset is physically connected to a gridbox, through which it send measurements and be controlled. CLOUD → The asset is connected via a cloud-to-cloud integration, through which we receive measurements and can send commands. ' x-readme-ref-name: BaseAsset - required: - kind properties: type: type: string enum: - EXTERNAL_CONTROLLER kind: description: Describes the specific kind of the external controller. type: string x-extensible-enum: - UNKNOWN - VDE4110_GATEWAY x-readme-ref-name: ExternalControllerAsset - title: Electric Vehicle description: Electric Vehicle represents a monitor-/controllable electric vehicle. allOf: - title: Base Asset description: 'BaseAsset contains fields that all assets have in common. Specific asset types extend this schema and add new fields. ' type: object required: - id - createdAt - updatedAt - connectionStatus - type - gatewayType properties: id: type: string format: uuid description: 'Uniquely identifies the asset. ' example: ec4d0c89-a604-49ac-82f0-427f9cb42204 createdAt: type: string format: date-time description: 'Specifies when the asset was created. ' updatedAt: type: string format: date-time description: 'Specifies when the asset was updated the last time. ' connectionStatus: title: Asset connection status type: object readOnly: true required: - status properties: status: type: string description: "Indicates the connection status of an asset.\n \nThe connection status of an asset is determined by the gateway. The gateway regularly\nsends the connection status of all connected assets.\n\nIt is one of:\n- `AVAILABLE`: Asset was reported as available by the gateway.\n- `UNAVAILABLE`: Asset was reported as unavailable by the gateway.\n- `UNKNOWN`: The gateway didn't report a status for the asset.\n\nIn case the connection status of the gateway this asset belongs to is `TEMPORARILY_UNAVAILABLE` or `UNAVAILABLE`\nthe status is always `UNAVAILABLE`.\nFor cloud-connected assets, the connection status will always be `AVAILABLE`: they have no gateway heartbeat\nand are reached through a cloud integration, so they are assumed to be reachable.\n" x-extensible-enum: - AVAILABLE - UNAVAILABLE - UNKNOWN x-readme-ref-name: AssetConnectionStatus type: type: string description: 'Describes the ''physical'' type of the asset. See `kind` for further distinction of the type in terms of the asset''s purpose/role, e.g. asset with type=INVERTER and kind=BATTERY represents a battery inverter. ' example: INVERTER gatewayType: type: string x-extensible-enum: - GRIDBOX - CLOUD description: 'Type of the gateway used to communicate with this asset: GRIDBOX → The asset is physically connected to a gridbox, through which it sends measurements and can be controlled. CLOUD → The asset is connected via a cloud-to-cloud integration, through which we receive measurements and can send commands. ' parent: type: string format: uuid description: 'Specifies the ID of the parent asset, for an asset which is the child of another. ' manufacturer: type: string description: 'Manufacturer of the asset. ' example: TQ Systems name: type: string description: 'Name of the asset. ' serialnumber: type: string description: 'Serial number of the asset. ' example: GD3Y3VMATKBY79142 model: type: string description: 'Model of the asset. ' example: Sunny Boy Storage 2.5 gateway: type: object deprecated: true description: 'Gateway used to communicate with the asset. Excluded by default, can be optionally included in the repsonse using the `include` query parameter. Deprecated: Use `gatewayType` field instead. For the gateway UUID of gridbox-connected assets, retrieve the system''s gateway via the system API (`GET /systems/{systemID}?include=gateways` or `GET /systems/list?include=gateways`). ' required: - uuid - type properties: uuid: type: string format: uuid description: Uniquely identifies the gateway. type: type: string x-extensible-enum: - GRIDBOX - CLOUD description: 'Type of the gateway: GRIDBOX → The asset is physically connected to a gridbox, through which it send measurements and be controlled. CLOUD → The asset is connected via a cloud-to-cloud integration, through which we receive measurements and can send commands. ' x-readme-ref-name: BaseAsset - properties: type: type: string enum: - EV kind: type: string description: Describes the specific kind of the electric vehicle. x-extensible-enum: - EV year: type: integer description: Describes the year the electric vehicle was produced. example: 2022 x-readme-ref-name: BaseEVAsset - required: - name - kind - manufacturer - model x-readme-ref-name: EVAsset discriminator: propertyName: type mapping: INVERTER: '#/components/schemas/InverterAsset' METER: '#/components/schemas/MeterAsset' HEAT_PUMP: '#/components/schemas/HeatPumpAsset' EVSTATION: '#/components/schemas/EVStationAsset' IO_DEVICE: '#/components/schemas/IODeviceAsset' HEATER: '#/components/schemas/HeaterAsset' EXTERNAL_CONTROLLER: '#/components/schemas/ExternalControllerAsset' EV: '#/components/schemas/EVAsset' x-readme-ref-name: Asset '400': description: Malformed request. content: application/vnd.gridx.v2+json: schema: readOnly: true allOf: - title: General Exception description: Represents a general error structure returned by our REST API. type: object properties: message: type: string description: Message represents the message reported to the user. details: type: array description: 'Details represents detail information for the user to fix this problem ' items: type: string required: - message x-readme-ref-name: GeneralException - title: ClientError - Bad Request description: 'Bad Request indicates that the request body is not a valid JSON or it contains a invalid json type. ' example: message: Problems parsing JSON x-readme-ref-name: BadRequestException '403': description: Forbidden. content: application/vnd.gridx.v2+json: schema: readOnly: true allOf: - title: General Exception description: Represents a general error structure returned by our REST API. type: object properties: message: type: string description: Message represents the message reported to the user. details: type: array description: 'Details represents detail information for the user to fix this problem ' items: type: string required: - message x-readme-ref-name: GeneralException - title: UnauthorizedError - Forbidden Error description: Forbidden Error example: message: Bad credentials x-readme-ref-name: ForbiddenException '404': description: Requested entity not found. content: application/vnd.gridx.v2+json: schema: readOnly: true allOf: - title: General Exception description: Represents a general error structure returned by our REST API. type: object properties: message: type: string description: Message represents the message reported to the user. details: type: array description: 'Details represents detail information for the user to fix this problem ' items: type: string required: - message x-readme-ref-name: GeneralException - title: ClientError - Not Found description: Not Found indicates that the entity was not found. example: message: Not Found x-readme-ref-name: NotFoundException '500': description: There has been an internal error on our side. We're looking into it. content: application/vnd.gridx.v2+json: schema: readOnly: true allOf: - title: General Exception description: Represents a general error structure returned by our REST API. type: object properties: message: type: string description: Message represents the message reported to the user. details: type: array description: 'Details represents detail information for the user to fix this problem ' items: type: string required: - message x-readme-ref-name: GeneralException - title: ServerSideError - Internal Server Error description: Internal Server Error example: message: Internal Server Error x-readme-ref-name: InternalException security: - HeaderAuth: - AssetRead x-code-samples: - lang: python label: Python source: 'import requests url = "https://api.gridx.de/systems/systemID/assets/assetID" headers = {"accept": "application/vnd.gridx.v2+json"} response = requests.get(url, headers=headers) print(response.text)' - lang: shell label: Shell source: "curl --request GET \\\n --url https://api.gridx.de/systems/systemID/assets/assetID \\\n --header 'accept: application/vnd.gridx.v2+json'" - lang: go label: Go source: "package main\n\nimport (\n\t\"fmt\"\n\t\"net/http\"\n\t\"io\"\n)\n\nfunc main() {\n\n\turl := \"https://api.gridx.de/systems/systemID/assets/assetID\"\n\n\treq, _ := http.NewRequest(\"GET\", url, nil)\n\n\treq.Header.Add(\"accept\", \"application/vnd.gridx.v2+json\")\n\n\tres, _ := http.DefaultClient.Do(req)\n\n\tdefer res.Body.Close()\n\tbody, _ := io.ReadAll(res.Body)\n\n\tfmt.Println(string(body))\n\n}" - lang: javascript label: Javascript source: "const options = {method: 'GET', headers: {accept: 'application/vnd.gridx.v2+json'}};\n\nfetch('https://api.gridx.de/systems/systemID/assets/assetID', options)\n .then(res => res.json())\n .then(res => console.log(res))\n .catch(err => console.error(err));" - lang: java label: Java source: "OkHttpClient client = new OkHttpClient();\n\nRequest request = new Request.Builder()\n .url(\"https://api.gridx.de/systems/systemID/assets/assetID\")\n .get()\n .addHeader(\"accept\", \"application/vnd.gridx.v2+json\")\n .build();\n\nResponse response = client.newCall(request).execute();" - lang: java label: Kotlin source: "val client = OkHttpClient()\n\nval request = Request.Builder()\n .url(\"https://api.gridx.de/systems/systemID/assets/assetID\")\n .get()\n .addHeader(\"accept\", \"application/vnd.gridx.v2+json\")\n .build()\n\nval response = client.newCall(request).execute()" - lang: javascript label: Swift source: 'import Foundation let url = URL(string: "https://api.gridx.de/systems/systemID/assets/assetID")! var request = URLRequest(url: url) request.httpMethod = "GET" request.timeoutInterval = 10 request.allHTTPHeaderFields = ["accept": "application/vnd.gridx.v2+json"] let (data, _) = try await URLSession.shared.data(for: request) print(String(decoding: data, as: UTF8.self))' - lang: csharp label: C# source: 'using RestSharp; var options = new RestClientOptions("https://api.gridx.de/systems/systemID/assets/assetID"); var client = new RestClient(options); var request = new RestRequest(""); request.AddHeader("accept", "application/vnd.gridx.v2+json"); var response = await client.GetAsync(request); Console.WriteLine("{0}", response.Content); ' patch: operationId: updateSystemAsset summary: Update an Asset description: 'Updates an existing asset belonging to a given system. Supported asset types: - `EV` - `EVSTATION` - `INVERTER`' tags: - Asset x-badges: - label: draft color: red parameters: - name: systemID description: 'Unique identifier used to access a system. ' in: path required: true schema: type: string format: uuid example: aa3e5a93-bb38-4b15-b7f2-af40daf3a1dc - name: assetID description: 'Unique identifier used to access an asset. ' in: path required: true schema: type: string format: uuid example: bb2681ab-9526-49ca-bc52-a5f4ec366958 requestBody: description: Updates an asset. required: true content: application/vnd.gridx.v2+json: schema: allOf: - description: 'Contains fields of an asset that can be updated. The `type` field is required and determines which fields are applicable. ' oneOf: - title: EV Update type: object description: 'Contains the fields of an EV asset that can be updated. ' required: - type properties: type: type: string enum: - EV name: type: string description: Name of the asset. manufacturer: type: string description: Manufacturer of the electric vehicle. example: Hyundai model: type: string description: Model of the electric vehicle. example: Ioniq 5 year: type: integer description: Year the electric vehicle was produced. example: 2022 x-readme-ref-name: EVAssetUpdate - title: EV Station Update type: object description: 'Contains the fields of an EV charging station asset that can be updated. ' required: - type properties: type: type: string enum: - EVSTATION name: type: string description: Name of the asset. manufacturer: type: string description: Manufacturer of the EV charging station. example: Echarge Hardy Barth model: type: string description: Model of the EV charging station. example: eCHARGE/PV x-readme-ref-name: EVStationAssetUpdate - title: Inverter Update type: object description: 'Contains the fields of an inverter asset that can be updated. ' required: - type properties: type: type: string enum: - INVERTER name: type: string description: Name of the asset. manufacturer: type: string description: Manufacturer of the inverter. example: SMA model: type: string description: Model of the inverter. nominalPowerLimit: type: integer description: 'Designed maximal power output of the inverter in mW. ' pv: title: PV Information Update type: object description: 'PV-specific configuration for inverters of kind ''PV'', ''PV_EXTERNAL'' and ''HYBRID''; for all other kinds, these fields are ignored. ' properties: arrays: type: array description: 'List of PV array configurations connected to the inverter. Each entry describes a distinct PV array with its own tilt, azimuth, and nominal power values. PATCHing the arrays field replaces the entire list of PV arrays. To update individual arrays, retrieve the current list, modify it as needed, and then PATCH the updated list back. Setting the arrays field to an empty list indicates that there are no PV arrays connected to the inverter. ' items: title: PV Array type: object description: 'Specification of a single PV array connected to the inverter. ' properties: nominalPower: type: integer format: int32 minimum: 0 description: Nominal power of the connected PV array in mW. tilt: type: integer format: int32 minimum: 0 maximum: 90 description: The inclination angle of the photovoltaic panels relative to the horizontal plane, measured in degrees (0° = flat horizontal, 90° = straight vertical). azimuth: type: integer format: int32 minimum: 0 maximum: 359 description: The compass orientation of the photovoltaic panels relative to true north, measured clockwise in degrees from 0 to 359 (0° = North, 90° = East, 180° = South, 270° = West). x-readme-ref-name: PVArray x-readme-ref-name: PVInformationUpdate x-readme-ref-name: InverterAssetUpdate discriminator: propertyName: type mapping: EV: '#/components/schemas/EVAssetUpdate' EVSTATION: '#/components/schemas/EVStationAssetUpdate' INVERTER: '#/components/schemas/InverterAssetUpdate' x-readme-ref-name: AssetUpdate - additionalProperties: false x-readme-ref-name: AssetUpdateStrict responses: '200': description: Updated Asset. content: application/vnd.gridx.v2+json: schema: title: Asset description: 'Asset represents a monitor-/controllable device such as Inverters, Meters and Heat Pumps. ' readOnly: true oneOf: - title: Inverter description: 'Inverter represents a monitor-/controllable inverter. It can be of kind: - `PV`/`PV_EXTERNAL`: used as photovoltaic only. - `BATTERY`: used as battery only. - `HYBRID`: used as both photovoltaic and battery. - `UNKNOWN`: default, when the inverter kind is not determined. ' allOf: - title: Base Asset description: 'BaseAsset contains fields that all assets have in common. Specific asset types extend this schema and add new fields. ' type: object required: - id - createdAt - updatedAt - connectionStatus - type - gatewayType properties: id: type: string format: uuid description: 'Uniquely identifies the asset. ' example: ec4d0c89-a604-49ac-82f0-427f9cb42204 createdAt: type: string format: date-time description: 'Specifies when the asset was created. ' updatedAt: type: string format: date-time description: 'Specifies when the asset was updated the last time. ' connectionStatus: title: Asset connection status type: object readOnly: true required: - status properties: status: type: string description: "Indicates the connection status of an asset.\n \nThe connection status of an asset is determined by the gateway. The gateway regularly\nsends the connection status of all connected assets.\n\nIt is one of:\n- `AVAILABLE`: Asset was reported as available by the gateway.\n- `UNAVAILABLE`: Asset was reported as unavailable by the gateway.\n- `UNKNOWN`: The gateway didn't report a status for the asset.\n\nIn case the connection status of the gateway this asset belongs to is `TEMPORARILY_UNAVAILABLE` or `UNAVAILABLE`\nthe status is always `UNAVAILABLE`.\nFor cloud-connected assets, the connection status will always be `AVAILABLE`: they have no gateway heartbeat\nand are reached through a cloud integration, so they are assumed to be reachable.\n" x-extensible-enum: - AVAILABLE - UNAVAILABLE - UNKNOWN x-readme-ref-name: AssetConnectionStatus type: type: string description: 'Describes the ''physical'' type of the asset. See `kind` for further distinction of the type in terms of the asset''s purpose/role, e.g. asset with type=INVERTER and kind=BATTERY represents a battery inverter. ' example: INVERTER gatewayType: type: string x-extensible-enum: - GRIDBOX - CLOUD description: 'Type of the gateway used to communicate with this asset: GRIDBOX → The asset is physically connected to a gridbox, through which it sends measurements and can be controlled. CLOUD → The asset is connected via a cloud-to-cloud integration, through which we receive measurements and can send commands. ' parent: type: string format: uuid description: 'Specifies the ID of the parent asset, for an asset which is the child of another. ' manufacturer: type: string description: 'Manufacturer of the asset. ' example: TQ Systems name: type: string description: 'Name of the asset. ' serialnumber: type: string description: 'Serial number of the asset. ' example: GD3Y3VMATKBY79142 model: type: string description: 'Model of the asset. ' example: Sunny Boy Storage 2.5 gateway: type: object deprecated: true description: 'Gateway used to communicate with the asset. Excluded by default, can be optionally included in the repsonse using the `include` query parameter. Deprecated: Use `gatewayType` field instead. For the gateway UUID of gridbox-connected assets, retrieve the system''s gateway via the system API (`GET /systems/{systemID}?include=gateways` or `GET /systems/list?include=gateways`). ' required: - uuid - type properties: uuid: type: string format: uuid description: Uniquely identifies the gateway. type: type: string x-extensible-enum: - GRIDBOX - CLOUD description: 'Type of the gateway: GRIDBOX → The asset is physically connected to a gridbox, through which it send measurements and be controlled. CLOUD → The asset is connected via a cloud-to-cloud integration, through which we receive measurements and can send commands. ' x-readme-ref-name: BaseAsset - required: - kind properties: type: type: string enum: - INVERTER kind: type: string description: 'Indicates the role of the inverter. Setting the kind impacts the system measurements. So it''s best to set it up correctly as early as possible in accordance to the actual installation in order for the measurement calculation to be correct (best during commissioning). ' x-extensible-enum: - UNKNOWN - PV - PV_EXTERNAL - BATTERY - HYBRID firmware: type: string description: 'Firmware version of the inverter. ' example: 2.4.23.R maxActivePowerOutput: type: integer description: 'Maximum active power output of the inverter in mW; set manually. Zero if not set. ' nominalPowerLimit: type: integer description: 'Designed maximal power output of the inverter in mW. ' hybridCalcMode: type: integer description: 'The calculation mode for inverters of `HYBRID` kind. ' x-extensible-enum: - 0 - 1 - 2 hardwareStatus: title: Hardware Status type: object description: "HardwareStatus provides information about the condition of the inverter and in case of issues, \npossible follow-up actions the user/installer can perform to resolve them.\n" properties: state: type: string description: State of the inverter. x-extensible-enum: - UNKNOWN - OK - WARNING - ERROR action: type: string description: Recommended action to resolve ERROR/WARNING state. x-extensible-enum: - CONSULT_DEVICE_READOUT - CONTACT_INSTALLER - CONTACT_MANUFACTURER - CONTACT_GRID_OPERATOR errorCode: type: string description: Inverter manufacturer/model dependent error code formatted as it would be shown on display. description: type: string description: Contains details about the inverter ERROR and WARNING states. x-extensible-enum: - OTHER - GRID_FAULT - INSULATION_FAILURE - INTERFERENCE_DEVICE - FAN_FAULT - WAIT_FOR_UPDATE - SOFTWARE_FAULT - HARDWARE_FAULT - PARAMETER_FAULT - HIGH_TEMPERATURE - HIGH_DC_VOLTAGE - LOW_DC_POWER - DC_OVERCURRENT - INSTALLATION_FAULT - COMMUNICATION_FAULT - BATTERY_FAULT measuredAt: type: string format: date-time example: '2018-04-15T00:00:00Z' x-readme-ref-name: AssetHardwareStatus battery: title: Battery type: object description: The battery-specific information for inverters of BATTERY and HYBRID kind. required: - controllable properties: maxCharge: type: integer format: int64 description: Battery's maximum charge in mW minimum: 0 maxDischarge: type: integer format: int64 description: Battery's maximum discharge in mW minimum: 0 controllable: type: boolean description: Controllable is true if the battery charging/discharging can be controlled. dischargeLimit: type: integer description: DischargeLimit is the minimum state of charge in % from 0-100 to discharge to. rechargeLimit: type: integer description: "RechargeLimit is the state of charge in % from 0-100 to which the battery needs to \nrecharge before allowing discharging again.\n" controlSettings: type: object description: Indicates the currently desired control settings for the battery. required: - value - command properties: value: type: integer description: Represents the charge/discharge power in mW. command: type: string description: Represents the current control command. x-extensible-enum: - none - charge - discharge x-readme-ref-name: BatteryAsset x-readme-ref-name: InverterAsset - title: Meter description: 'Meter represents a monitor-/controllable meter. ' allOf: - title: Base Asset description: 'BaseAsset contains fields that all assets have in common. Specific asset types extend this schema and add new fields. ' type: object required: - id - createdAt - updatedAt - connectionStatus - type - gatewayType properties: id: type: string format: uuid description: 'Uniquely identifies the asset. ' example: ec4d0c89-a604-49ac-82f0-427f9cb42204 createdAt: type: string format: date-time description: 'Specifies when the asset was created. ' updatedAt: type: string format: date-time description: 'Specifies when the asset was updated the last time. ' connectionStatus: title: Asset connection status type: object readOnly: true required: - status properties: status: type: string description: "Indicates the connection status of an asset.\n \nThe connection status of an asset is determined by the gateway. The gateway regularly\nsends the connection status of all connected assets.\n\nIt is one of:\n- `AVAILABLE`: Asset was reported as available by the gateway.\n- `UNAVAILABLE`: Asset was reported as unavailable by the gateway.\n- `UNKNOWN`: The gateway didn't report a status for the asset.\n\nIn case the connection status of the gateway this asset belongs to is `TEMPORARILY_UNAVAILABLE` or `UNAVAILABLE`\nthe status is always `UNAVAILABLE`.\nFor cloud-connected assets, the connection status will always be `AVAILABLE`: they have no gateway heartbeat\nand are reached through a cloud integration, so they are assumed to be reachable.\n" x-extensible-enum: - AVAILABLE - UNAVAILABLE - UNKNOWN x-readme-ref-name: AssetConnectionStatus type: type: string description: 'Describes the ''physical'' type of the asset. See `kind` for further distinction of the type in terms of the asset''s purpose/role, e.g. asset with type=INVERTER and kind=BATTERY represents a battery inverter. ' example: INVERTER gatewayType: type: string x-extensible-enum: - GRIDBOX - CLOUD description: 'Type of the gateway used to communicate with this asset: GRIDBOX → The asset is physically connected to a gridbox, through which it sends measurements and can be controlled. CLOUD → The asset is connected via a cloud-to-cloud integration, through which we receive measurements and can send commands. ' parent: type: string format: uuid description: 'Specifies the ID of the parent asset, for an asset which is the child of another. ' manufacturer: type: string description: 'Manufacturer of the asset. ' example: TQ Systems name: type: string description: 'Name of the asset. ' serialnumber: type: string description: 'Serial number of the asset. ' example: GD3Y3VMATKBY79142 model: type: string description: 'Model of the asset. ' example: Sunny Boy Storage 2.5 gateway: type: object deprecated: true description: 'Gateway used to communicate with the asset. Excluded by default, can be optionally included in the repsonse using the `include` query parameter. Deprecated: Use `gatewayType` field instead. For the gateway UUID of gridbox-connected assets, retrieve the system''s gateway via the system API (`GET /systems/{systemID}?include=gateways` or `GET /systems/list?include=gateways`). ' required: - uuid - type properties: uuid: type: string format: uuid description: Uniquely identifies the gateway. type: type: string x-extensible-enum: - GRIDBOX - CLOUD description: 'Type of the gateway: GRIDBOX → The asset is physically connected to a gridbox, through which it send measurements and be controlled. CLOUD → The asset is connected via a cloud-to-cloud integration, through which we receive measurements and can send commands. ' x-readme-ref-name: BaseAsset - required: - kind - location properties: type: type: string enum: - METER kind: type: string description: 'Indicates what the meter measures. Setting the kind impacts the system measurements. So it''s best to set it up correctly as early as possible in accordance to the actual installation in order for the measurement calculation to be correct (best during commissioning). ' x-extensible-enum: - UNKNOWN - PV - GRID - BATTERY - HEAT_PUMP - FUEL_CELL - HEAT_PUMP_EXTERNAL - EVSTATION - PV_EXTERNAL - BTTP - HEATING - MISC - CLUSTER - WIND_TURBINE - AIR_CONDITIONER firmware: type: string description: 'Firmware version of the meter. ' example: '2.03' location: type: string description: 'Indicates that the meter is in front of given location for measuring the consumption and production. ' x-extensible-enum: - UNKNOWN - PV - GRID - BATTERY - HEAT_PUMP - FUEL_CELL - HEAT_PUMP_EXTERNAL - EVSTATION - PV_EXTERNAL - BTTP - HEATING - MISC - CLUSTER - WIND_TURBINE - AIR_CONDITIONER modbusAddress: type: integer x-readme-ref-name: MeterAsset - title: Heat Pump type: object description: Heat Pump represents a monitor-/controllable heat pump. allOf: - title: Base Asset description: 'BaseAsset contains fields that all assets have in common. Specific asset types extend this schema and add new fields. ' type: object required: - id - createdAt - updatedAt - connectionStatus - type - gatewayType properties: id: type: string format: uuid description: 'Uniquely identifies the asset. ' example: ec4d0c89-a604-49ac-82f0-427f9cb42204 createdAt: type: string format: date-time description: 'Specifies when the asset was created. ' updatedAt: type: string format: date-time description: 'Specifies when the asset was updated the last time. ' connectionStatus: title: Asset connection status type: object readOnly: true required: - status properties: status: type: string description: "Indicates the connection status of an asset.\n \nThe connection status of an asset is determined by the gateway. The gateway regularly\nsends the connection status of all connected assets.\n\nIt is one of:\n- `AVAILABLE`: Asset was reported as available by the gateway.\n- `UNAVAILABLE`: Asset was reported as unavailable by the gateway.\n- `UNKNOWN`: The gateway didn't report a status for the asset.\n\nIn case the connection status of the gateway this asset belongs to is `TEMPORARILY_UNAVAILABLE` or `UNAVAILABLE`\nthe status is always `UNAVAILABLE`.\nFor cloud-connected assets, the connection status will always be `AVAILABLE`: they have no gateway heartbeat\nand are reached through a cloud integration, so they are assumed to be reachable.\n" x-extensible-enum: - AVAILABLE - UNAVAILABLE - UNKNOWN x-readme-ref-name: AssetConnectionStatus type: type: string description: 'Describes the ''physical'' type of the asset. See `kind` for further distinction of the type in terms of the asset''s purpose/role, e.g. asset with type=INVERTER and kind=BATTERY represents a battery inverter. ' example: INVERTER gatewayType: type: string x-extensible-enum: - GRIDBOX - CLOUD description: 'Type of the gateway used to communicate with this asset: GRIDBOX → The asset is physically connected to a gridbox, through which it sends measurements and can be controlled. CLOUD → The asset is connected via a cloud-to-cloud integration, through which we receive measurements and can send commands. ' parent: type: string format: uuid description: 'Specifies the ID of the parent asset, for an asset which is the child of another. ' manufacturer: type: string description: 'Manufacturer of the asset. ' example: TQ Systems name: type: string description: 'Name of the asset. ' serialnumber: type: string description: 'Serial number of the asset. ' example: GD3Y3VMATKBY79142 model: type: string description: 'Model of the asset. ' example: Sunny Boy Storage 2.5 gateway: type: object deprecated: true description: 'Gateway used to communicate with the asset. Excluded by default, can be optionally included in the repsonse using the `include` query parameter. Deprecated: Use `gatewayType` field instead. For the gateway UUID of gridbox-connected assets, retrieve the system''s gateway via the system API (`GET /systems/{systemID}?include=gateways` or `GET /systems/list?include=gateways`). ' required: - uuid - type properties: uuid: type: string format: uuid description: Uniquely identifies the gateway. type: type: string x-extensible-enum: - GRIDBOX - CLOUD description: 'Type of the gateway: GRIDBOX → The asset is physically connected to a gridbox, through which it send measurements and be controlled. CLOUD → The asset is connected via a cloud-to-cloud integration, through which we receive measurements and can send commands. ' x-readme-ref-name: BaseAsset - required: - controllable properties: type: type: string enum: - HEAT_PUMP firmware: type: string description: 'Firmware version of the heat pump. ' example: mac_02:80:ad:24:d5:ab controllable: type: boolean description: Specifies whether this appliance is controllable by the EMS. energyManagementSettings: type: object description: Energy management specific settings for the heat pump. required: - behindGCP properties: behindGCP: description: Specifies whether this heat pump exists behind a GCP meter. type: boolean x-readme-ref-name: HeatPumpAsset - title: EV Charging Station description: 'EV Charging Station represents a monitor-/controllable electric vehicle charging station. ' allOf: - title: Base Asset description: 'BaseAsset contains fields that all assets have in common. Specific asset types extend this schema and add new fields. ' type: object required: - id - createdAt - updatedAt - connectionStatus - type - gatewayType properties: id: type: string format: uuid description: 'Uniquely identifies the asset. ' example: ec4d0c89-a604-49ac-82f0-427f9cb42204 createdAt: type: string format: date-time description: 'Specifies when the asset was created. ' updatedAt: type: string format: date-time description: 'Specifies when the asset was updated the last time. ' connectionStatus: title: Asset connection status type: object readOnly: true required: - status properties: status: type: string description: "Indicates the connection status of an asset.\n \nThe connection status of an asset is determined by the gateway. The gateway regularly\nsends the connection status of all connected assets.\n\nIt is one of:\n- `AVAILABLE`: Asset was reported as available by the gateway.\n- `UNAVAILABLE`: Asset was reported as unavailable by the gateway.\n- `UNKNOWN`: The gateway didn't report a status for the asset.\n\nIn case the connection status of the gateway this asset belongs to is `TEMPORARILY_UNAVAILABLE` or `UNAVAILABLE`\nthe status is always `UNAVAILABLE`.\nFor cloud-connected assets, the connection status will always be `AVAILABLE`: they have no gateway heartbeat\nand are reached through a cloud integration, so they are assumed to be reachable.\n" x-extensible-enum: - AVAILABLE - UNAVAILABLE - UNKNOWN x-readme-ref-name: AssetConnectionStatus type: type: string description: 'Describes the ''physical'' type of the asset. See `kind` for further distinction of the type in terms of the asset''s purpose/role, e.g. asset with type=INVERTER and kind=BATTERY represents a battery inverter. ' example: INVERTER gatewayType: type: string x-extensible-enum: - GRIDBOX - CLOUD description: 'Type of the gateway used to communicate with this asset: GRIDBOX → The asset is physically connected to a gridbox, through which it sends measurements and can be controlled. CLOUD → The asset is connected via a cloud-to-cloud integration, through which we receive measurements and can send commands. ' parent: type: string format: uuid description: 'Specifies the ID of the parent asset, for an asset which is the child of another. ' manufacturer: type: string description: 'Manufacturer of the asset. ' example: TQ Systems name: type: string description: 'Name of the asset. ' serialnumber: type: string description: 'Serial number of the asset. ' example: GD3Y3VMATKBY79142 model: type: string description: 'Model of the asset. ' example: Sunny Boy Storage 2.5 gateway: type: object deprecated: true description: 'Gateway used to communicate with the asset. Excluded by default, can be optionally included in the repsonse using the `include` query parameter. Deprecated: Use `gatewayType` field instead. For the gateway UUID of gridbox-connected assets, retrieve the system''s gateway via the system API (`GET /systems/{systemID}?include=gateways` or `GET /systems/list?include=gateways`). ' required: - uuid - type properties: uuid: type: string format: uuid description: Uniquely identifies the gateway. type: type: string x-extensible-enum: - GRIDBOX - CLOUD description: 'Type of the gateway: GRIDBOX → The asset is physically connected to a gridbox, through which it send measurements and be controlled. CLOUD → The asset is connected via a cloud-to-cloud integration, through which we receive measurements and can send commands. ' x-readme-ref-name: BaseAsset - type: object properties: type: type: string enum: - EVSTATION kind: description: The kind of the ev charging station. type: string x-extensible-enum: - UNKNOWN - BATTERY_INTEGRATED firmware: type: string description: 'Firmware version of the ev charging station. ' example: 0.38-78000001 evseID: type: string description: The EVSE-ID related to the charge point. x-readme-ref-name: BaseEVStationAsset - required: - kind x-readme-ref-name: EVStationAsset - title: IO Device description: IO devices represent configuration options that can be applied for appliances of the fieldbus coupler type allOf: - title: Base Asset description: 'BaseAsset contains fields that all assets have in common. Specific asset types extend this schema and add new fields. ' type: object required: - id - createdAt - updatedAt - connectionStatus - type - gatewayType properties: id: type: string format: uuid description: 'Uniquely identifies the asset. ' example: ec4d0c89-a604-49ac-82f0-427f9cb42204 createdAt: type: string format: date-time description: 'Specifies when the asset was created. ' updatedAt: type: string format: date-time description: 'Specifies when the asset was updated the last time. ' connectionStatus: title: Asset connection status type: object readOnly: true required: - status properties: status: type: string description: "Indicates the connection status of an asset.\n \nThe connection status of an asset is determined by the gateway. The gateway regularly\nsends the connection status of all connected assets.\n\nIt is one of:\n- `AVAILABLE`: Asset was reported as available by the gateway.\n- `UNAVAILABLE`: Asset was reported as unavailable by the gateway.\n- `UNKNOWN`: The gateway didn't report a status for the asset.\n\nIn case the connection status of the gateway this asset belongs to is `TEMPORARILY_UNAVAILABLE` or `UNAVAILABLE`\nthe status is always `UNAVAILABLE`.\nFor cloud-connected assets, the connection status will always be `AVAILABLE`: they have no gateway heartbeat\nand are reached through a cloud integration, so they are assumed to be reachable.\n" x-extensible-enum: - AVAILABLE - UNAVAILABLE - UNKNOWN x-readme-ref-name: AssetConnectionStatus type: type: string description: 'Describes the ''physical'' type of the asset. See `kind` for further distinction of the type in terms of the asset''s purpose/role, e.g. asset with type=INVERTER and kind=BATTERY represents a battery inverter. ' example: INVERTER gatewayType: type: string x-extensible-enum: - GRIDBOX - CLOUD description: 'Type of the gateway used to communicate with this asset: GRIDBOX → The asset is physically connected to a gridbox, through which it sends measurements and can be controlled. CLOUD → The asset is connected via a cloud-to-cloud integration, through which we receive measurements and can send commands. ' parent: type: string format: uuid description: 'Specifies the ID of the parent asset, for an asset which is the child of another. ' manufacturer: type: string description: 'Manufacturer of the asset. ' example: TQ Systems name: type: string description: 'Name of the asset. ' serialnumber: type: string description: 'Serial number of the asset. ' example: GD3Y3VMATKBY79142 model: type: string description: 'Model of the asset. ' example: Sunny Boy Storage 2.5 gateway: type: object deprecated: true description: 'Gateway used to communicate with the asset. Excluded by default, can be optionally included in the repsonse using the `include` query parameter. Deprecated: Use `gatewayType` field instead. For the gateway UUID of gridbox-connected assets, retrieve the system''s gateway via the system API (`GET /systems/{systemID}?include=gateways` or `GET /systems/list?include=gateways`). ' required: - uuid - type properties: uuid: type: string format: uuid description: Uniquely identifies the gateway. type: type: string x-extensible-enum: - GRIDBOX - CLOUD description: 'Type of the gateway: GRIDBOX → The asset is physically connected to a gridbox, through which it send measurements and be controlled. CLOUD → The asset is connected via a cloud-to-cloud integration, through which we receive measurements and can send commands. ' x-readme-ref-name: BaseAsset - required: - inChannelsCount - outChannelsCount properties: type: type: string enum: - IO_DEVICE firmware: type: string description: 'Firmware version of the io device. ' example: HW 3 SW V3.2.2 inChannelsCount: type: integer description: The number of input ports on the device, real physical ports you can connect a cable to. outChannelsCount: type: integer description: The number of output ports on the device, real physical ports you can connect a cable to. inputChannels: type: array description: Input channels of the fieldbus coupler, containing actions. items: title: IO Device Input Channel type: object properties: bitMask: type: string format: base64 description: BitMask used to identify the channel. bitValue: type: string format: base64 description: BitValue used to trigger the action. actions: type: array items: title: IO Device Input Action description: One individual input action, that can be registered to a channel of a fieldbus coppler appliance. type: object required: - name - value properties: name: type: string description: Name of the action. value: type: number description: Value of the action. Unit must be derived from Name. x-readme-ref-name: IODeviceAssetInputAction x-readme-ref-name: IODeviceAssetInputChannel outputChannels: type: array description: 'Output channels of the IODevice, containing actions. An output channel must not always use exactly one port, but can use multiple physical connections. SGReady heat pumps for example are connected using two output ports (which are grouped in one OutputChannel). ' items: title: IO Device Output Channel description: Represents one output channel of the IODevice. type: object properties: bitMask: type: string format: base64 description: Bit mask identifying the output channel. actions: type: array description: Actions (name/value pairs) that are applied to the channel when enabled. items: title: IO Device Output Action description: An individual output action, that can be registered to an output channel of an IODevice. type: object properties: bitValue: type: string format: base64 description: The value to write to the IODevice's output channel. Each action has its own bit value, to allow arbitrary combinations to be written to the output channel. sgReady: title: IO Device Output Action SGReady description: Used to specify a connection to a heat pump supporting the SGReady standard. type: object required: - pMin - pMax - state - applianceID properties: pMin: type: number pMax: type: number state: description: Represents one state of the sg ready standard. type: string x-extensible-enum: - UNKNOWN - 'OFF' - AUTO - RECOMMEND_ON - 'ON' applianceID: type: string format: uuid x-readme-ref-name: IODeviceAssetOutputActionSGReady x-readme-ref-name: IODeviceAssetOutputAction x-readme-ref-name: IODeviceAssetOutputChannel x-readme-ref-name: IODeviceAsset - title: Heater type: object description: Heater represents a monitor-/controllable heater. allOf: - title: Base Asset description: 'BaseAsset contains fields that all assets have in common. Specific asset types extend this schema and add new fields. ' type: object required: - id - createdAt - updatedAt - connectionStatus - type - gatewayType properties: id: type: string format: uuid description: 'Uniquely identifies the asset. ' example: ec4d0c89-a604-49ac-82f0-427f9cb42204 createdAt: type: string format: date-time description: 'Specifies when the asset was created. ' updatedAt: type: string format: date-time description: 'Specifies when the asset was updated the last time. ' connectionStatus: title: Asset connection status type: object readOnly: true required: - status properties: status: type: string description: "Indicates the connection status of an asset.\n \nThe connection status of an asset is determined by the gateway. The gateway regularly\nsends the connection status of all connected assets.\n\nIt is one of:\n- `AVAILABLE`: Asset was reported as available by the gateway.\n- `UNAVAILABLE`: Asset was reported as unavailable by the gateway.\n- `UNKNOWN`: The gateway didn't report a status for the asset.\n\nIn case the connection status of the gateway this asset belongs to is `TEMPORARILY_UNAVAILABLE` or `UNAVAILABLE`\nthe status is always `UNAVAILABLE`.\nFor cloud-connected assets, the connection status will always be `AVAILABLE`: they have no gateway heartbeat\nand are reached through a cloud integration, so they are assumed to be reachable.\n" x-extensible-enum: - AVAILABLE - UNAVAILABLE - UNKNOWN x-readme-ref-name: AssetConnectionStatus type: type: string description: 'Describes the ''physical'' type of the asset. See `kind` for further distinction of the type in terms of the asset''s purpose/role, e.g. asset with type=INVERTER and kind=BATTERY represents a battery inverter. ' example: INVERTER gatewayType: type: string x-extensible-enum: - GRIDBOX - CLOUD description: 'Type of the gateway used to communicate with this asset: GRIDBOX → The asset is physically connected to a gridbox, through which it sends measurements and can be controlled. CLOUD → The asset is connected via a cloud-to-cloud integration, through which we receive measurements and can send commands. ' parent: type: string format: uuid description: 'Specifies the ID of the parent asset, for an asset which is the child of another. ' manufacturer: type: string description: 'Manufacturer of the asset. ' example: TQ Systems name: type: string description: 'Name of the asset. ' serialnumber: type: string description: 'Serial number of the asset. ' example: GD3Y3VMATKBY79142 model: type: string description: 'Model of the asset. ' example: Sunny Boy Storage 2.5 gateway: type: object deprecated: true description: 'Gateway used to communicate with the asset. Excluded by default, can be optionally included in the repsonse using the `include` query parameter. Deprecated: Use `gatewayType` field instead. For the gateway UUID of gridbox-connected assets, retrieve the system''s gateway via the system API (`GET /systems/{systemID}?include=gateways` or `GET /systems/list?include=gateways`). ' required: - uuid - type properties: uuid: type: string format: uuid description: Uniquely identifies the gateway. type: type: string x-extensible-enum: - GRIDBOX - CLOUD description: 'Type of the gateway: GRIDBOX → The asset is physically connected to a gridbox, through which it send measurements and be controlled. CLOUD → The asset is connected via a cloud-to-cloud integration, through which we receive measurements and can send commands. ' x-readme-ref-name: BaseAsset - required: - medium properties: type: type: string enum: - HEATER firmware: type: string description: 'Firmware version of the heater. ' example: '101.3' medium: description: The medium the heater is working with. type: integer x-extensible-enum: - 0 - 1 - 2 - 3 - 4 nominalPower: description: The nominal power in mW of the heater. type: integer x-readme-ref-name: HeaterAsset - title: External controller description: Represent an external controller, used for DSO signaling and generally supervisory control. allOf: - title: Base Asset description: 'BaseAsset contains fields that all assets have in common. Specific asset types extend this schema and add new fields. ' type: object required: - id - createdAt - updatedAt - connectionStatus - type - gatewayType properties: id: type: string format: uuid description: 'Uniquely identifies the asset. ' example: ec4d0c89-a604-49ac-82f0-427f9cb42204 createdAt: type: string format: date-time description: 'Specifies when the asset was created. ' updatedAt: type: string format: date-time description: 'Specifies when the asset was updated the last time. ' connectionStatus: title: Asset connection status type: object readOnly: true required: - status properties: status: type: string description: "Indicates the connection status of an asset.\n \nThe connection status of an asset is determined by the gateway. The gateway regularly\nsends the connection status of all connected assets.\n\nIt is one of:\n- `AVAILABLE`: Asset was reported as available by the gateway.\n- `UNAVAILABLE`: Asset was reported as unavailable by the gateway.\n- `UNKNOWN`: The gateway didn't report a status for the asset.\n\nIn case the connection status of the gateway this asset belongs to is `TEMPORARILY_UNAVAILABLE` or `UNAVAILABLE`\nthe status is always `UNAVAILABLE`.\nFor cloud-connected assets, the connection status will always be `AVAILABLE`: they have no gateway heartbeat\nand are reached through a cloud integration, so they are assumed to be reachable.\n" x-extensible-enum: - AVAILABLE - UNAVAILABLE - UNKNOWN x-readme-ref-name: AssetConnectionStatus type: type: string description: 'Describes the ''physical'' type of the asset. See `kind` for further distinction of the type in terms of the asset''s purpose/role, e.g. asset with type=INVERTER and kind=BATTERY represents a battery inverter. ' example: INVERTER gatewayType: type: string x-extensible-enum: - GRIDBOX - CLOUD description: 'Type of the gateway used to communicate with this asset: GRIDBOX → The asset is physically connected to a gridbox, through which it sends measurements and can be controlled. CLOUD → The asset is connected via a cloud-to-cloud integration, through which we receive measurements and can send commands. ' parent: type: string format: uuid description: 'Specifies the ID of the parent asset, for an asset which is the child of another. ' manufacturer: type: string description: 'Manufacturer of the asset. ' example: TQ Systems name: type: string description: 'Name of the asset. ' serialnumber: type: string description: 'Serial number of the asset. ' example: GD3Y3VMATKBY79142 model: type: string description: 'Model of the asset. ' example: Sunny Boy Storage 2.5 gateway: type: object deprecated: true description: 'Gateway used to communicate with the asset. Excluded by default, can be optionally included in the repsonse using the `include` query parameter. Deprecated: Use `gatewayType` field instead. For the gateway UUID of gridbox-connected assets, retrieve the system''s gateway via the system API (`GET /systems/{systemID}?include=gateways` or `GET /systems/list?include=gateways`). ' required: - uuid - type properties: uuid: type: string format: uuid description: Uniquely identifies the gateway. type: type: string x-extensible-enum: - GRIDBOX - CLOUD description: 'Type of the gateway: GRIDBOX → The asset is physically connected to a gridbox, through which it send measurements and be controlled. CLOUD → The asset is connected via a cloud-to-cloud integration, through which we receive measurements and can send commands. ' x-readme-ref-name: BaseAsset - required: - kind properties: type: type: string enum: - EXTERNAL_CONTROLLER kind: description: Describes the specific kind of the external controller. type: string x-extensible-enum: - UNKNOWN - VDE4110_GATEWAY x-readme-ref-name: ExternalControllerAsset - title: Electric Vehicle description: Electric Vehicle represents a monitor-/controllable electric vehicle. allOf: - title: Base Asset description: 'BaseAsset contains fields that all assets have in common. Specific asset types extend this schema and add new fields. ' type: object required: - id - createdAt - updatedAt - connectionStatus - type - gatewayType properties: id: type: string format: uuid description: 'Uniquely identifies the asset. ' example: ec4d0c89-a604-49ac-82f0-427f9cb42204 createdAt: type: string format: date-time description: 'Specifies when the asset was created. ' updatedAt: type: string format: date-time description: 'Specifies when the asset was updated the last time. ' connectionStatus: title: Asset connection status type: object readOnly: true required: - status properties: status: type: string description: "Indicates the connection status of an asset.\n \nThe connection status of an asset is determined by the gateway. The gateway regularly\nsends the connection status of all connected assets.\n\nIt is one of:\n- `AVAILABLE`: Asset was reported as available by the gateway.\n- `UNAVAILABLE`: Asset was reported as unavailable by the gateway.\n- `UNKNOWN`: The gateway didn't report a status for the asset.\n\nIn case the connection status of the gateway this asset belongs to is `TEMPORARILY_UNAVAILABLE` or `UNAVAILABLE`\nthe status is always `UNAVAILABLE`.\nFor cloud-connected assets, the connection status will always be `AVAILABLE`: they have no gateway heartbeat\nand are reached through a cloud integration, so they are assumed to be reachable.\n" x-extensible-enum: - AVAILABLE - UNAVAILABLE - UNKNOWN x-readme-ref-name: AssetConnectionStatus type: type: string description: 'Describes the ''physical'' type of the asset. See `kind` for further distinction of the type in terms of the asset''s purpose/role, e.g. asset with type=INVERTER and kind=BATTERY represents a battery inverter. ' example: INVERTER gatewayType: type: string x-extensible-enum: - GRIDBOX - CLOUD description: 'Type of the gateway used to communicate with this asset: GRIDBOX → The asset is physically connected to a gridbox, through which it sends measurements and can be controlled. CLOUD → The asset is connected via a cloud-to-cloud integration, through which we receive measurements and can send commands. ' parent: type: string format: uuid description: 'Specifies the ID of the parent asset, for an asset which is the child of another. ' manufacturer: type: string description: 'Manufacturer of the asset. ' example: TQ Systems name: type: string description: 'Name of the asset. ' serialnumber: type: string description: 'Serial number of the asset. ' example: GD3Y3VMATKBY79142 model: type: string description: 'Model of the asset. ' example: Sunny Boy Storage 2.5 gateway: type: object deprecated: true description: 'Gateway used to communicate with the asset. Excluded by default, can be optionally included in the repsonse using the `include` query parameter. Deprecated: Use `gatewayType` field instead. For the gateway UUID of gridbox-connected assets, retrieve the system''s gateway via the system API (`GET /systems/{systemID}?include=gateways` or `GET /systems/list?include=gateways`). ' required: - uuid - type properties: uuid: type: string format: uuid description: Uniquely identifies the gateway. type: type: string x-extensible-enum: - GRIDBOX - CLOUD description: 'Type of the gateway: GRIDBOX → The asset is physically connected to a gridbox, through which it send measurements and be controlled. CLOUD → The asset is connected via a cloud-to-cloud integration, through which we receive measurements and can send commands. ' x-readme-ref-name: BaseAsset - properties: type: type: string enum: - EV kind: type: string description: Describes the specific kind of the electric vehicle. x-extensible-enum: - EV year: type: integer description: Describes the year the electric vehicle was produced. example: 2022 x-readme-ref-name: BaseEVAsset - required: - name - kind - manufacturer - model x-readme-ref-name: EVAsset discriminator: propertyName: type mapping: INVERTER: '#/components/schemas/InverterAsset' METER: '#/components/schemas/MeterAsset' HEAT_PUMP: '#/components/schemas/HeatPumpAsset' EVSTATION: '#/components/schemas/EVStationAsset' IO_DEVICE: '#/components/schemas/IODeviceAsset' HEATER: '#/components/schemas/HeaterAsset' EXTERNAL_CONTROLLER: '#/components/schemas/ExternalControllerAsset' EV: '#/components/schemas/EVAsset' x-readme-ref-name: Asset '400': description: Malformed request. content: application/vnd.gridx.v2+json: schema: readOnly: true allOf: - title: General Exception description: Represents a general error structure returned by our REST API. type: object properties: message: type: string description: Message represents the message reported to the user. details: type: array description: 'Details represents detail information for the user to fix this problem ' items: type: string required: - message x-readme-ref-name: GeneralException - title: ClientError - Bad Request description: 'Bad Request indicates that the request body is not a valid JSON or it contains a invalid json type. ' example: message: Problems parsing JSON x-readme-ref-name: BadRequestException '403': description: Forbidden. content: application/vnd.gridx.v2+json: schema: readOnly: true allOf: - title: General Exception description: Represents a general error structure returned by our REST API. type: object properties: message: type: string description: Message represents the message reported to the user. details: type: array description: 'Details represents detail information for the user to fix this problem ' items: type: string required: - message x-readme-ref-name: GeneralException - title: UnauthorizedError - Forbidden Error description: Forbidden Error example: message: Bad credentials x-readme-ref-name: ForbiddenException '404': description: Requested entity not found. content: application/vnd.gridx.v2+json: schema: readOnly: true allOf: - title: General Exception description: Represents a general error structure returned by our REST API. type: object properties: message: type: string description: Message represents the message reported to the user. details: type: array description: 'Details represents detail information for the user to fix this problem ' items: type: string required: - message x-readme-ref-name: GeneralException - title: ClientError - Not Found description: Not Found indicates that the entity was not found. example: message: Not Found x-readme-ref-name: NotFoundException '409': description: Resource already exists content: application/vnd.gridx.v2+json: schema: readOnly: true allOf: - title: General Exception description: Represents a general error structure returned by our REST API. type: object properties: message: type: string description: Message represents the message reported to the user. details: type: array description: 'Details represents detail information for the user to fix this problem ' items: type: string required: - message x-readme-ref-name: GeneralException - title: ClientError - Conflict description: 'Conflict indicates that the client is attempting to create a resource that already exists. ' type: object example: message: Resource already exists x-readme-ref-name: ConflictException '500': description: There has been an internal error on our side. We're looking into it. content: application/vnd.gridx.v2+json: schema: readOnly: true allOf: - title: General Exception description: Represents a general error structure returned by our REST API. type: object properties: message: type: string description: Message represents the message reported to the user. details: type: array description: 'Details represents detail information for the user to fix this problem ' items: type: string required: - message x-readme-ref-name: GeneralException - title: ServerSideError - Internal Server Error description: Internal Server Error example: message: Internal Server Error x-readme-ref-name: InternalException security: - HeaderAuth: - AssetWrite x-code-samples: - lang: python label: Python source: "import requests\n\nurl = \"https://api.gridx.de/systems/systemID/assets/assetID\"\n\npayload = \"{\\\"type\\\":\\\"EV\\\",\\\"name\\\":\\\"string\\\",\\\"manufacturer\\\":\\\"Hyundai\\\",\\\"model\\\":\\\"Ioniq 5\\\",\\\"year\\\":2022}\"\nheaders = {\n \"accept\": \"application/vnd.gridx.v2+json\",\n \"content-type\": \"application/vnd.gridx.v2+json\"\n}\n\nresponse = requests.patch(url, data=payload, headers=headers)\n\nprint(response.text)" - lang: shell label: Shell source: "curl --request PATCH \\\n --url https://api.gridx.de/systems/systemID/assets/assetID \\\n --header 'accept: application/vnd.gridx.v2+json' \\\n --header 'content-type: application/vnd.gridx.v2+json' \\\n --data '\n{\n \"type\": \"EV\",\n \"name\": \"string\",\n \"manufacturer\": \"Hyundai\",\n \"model\": \"Ioniq 5\",\n \"year\": 2022\n}\n'" - lang: go label: Go source: "package main\n\nimport (\n\t\"fmt\"\n\t\"strings\"\n\t\"net/http\"\n\t\"io\"\n)\n\nfunc main() {\n\n\turl := \"https://api.gridx.de/systems/systemID/assets/assetID\"\n\n\tpayload := strings.NewReader(\"{\\\"type\\\":\\\"EV\\\",\\\"name\\\":\\\"string\\\",\\\"manufacturer\\\":\\\"Hyundai\\\",\\\"model\\\":\\\"Ioniq 5\\\",\\\"year\\\":2022}\")\n\n\treq, _ := http.NewRequest(\"PATCH\", url, payload)\n\n\treq.Header.Add(\"accept\", \"application/vnd.gridx.v2+json\")\n\treq.Header.Add(\"content-type\", \"application/vnd.gridx.v2+json\")\n\n\tres, _ := http.DefaultClient.Do(req)\n\n\tdefer res.Body.Close()\n\tbody, _ := io.ReadAll(res.Body)\n\n\tfmt.Println(string(body))\n\n}" - lang: javascript label: Javascript source: "const options = {\n method: 'PATCH',\n headers: {\n accept: 'application/vnd.gridx.v2+json',\n 'content-type': 'application/vnd.gridx.v2+json'\n },\n body: '{\"type\":\"EV\",\"name\":\"string\",\"manufacturer\":\"Hyundai\",\"model\":\"Ioniq 5\",\"year\":2022}'\n};\n\nfetch('https://api.gridx.de/systems/systemID/assets/assetID', options)\n .then(res => res.json())\n .then(res => console.log(res))\n .catch(err => console.error(err));" - lang: java label: Java source: "OkHttpClient client = new OkHttpClient();\n\nMediaType mediaType = MediaType.parse(\"application/vnd.gridx.v2+json\");\nRequestBody body = RequestBody.create(mediaType, \"{\\\"type\\\":\\\"EV\\\",\\\"name\\\":\\\"string\\\",\\\"manufacturer\\\":\\\"Hyundai\\\",\\\"model\\\":\\\"Ioniq 5\\\",\\\"year\\\":2022}\");\nRequest request = new Request.Builder()\n .url(\"https://api.gridx.de/systems/systemID/assets/assetID\")\n .patch(body)\n .addHeader(\"accept\", \"application/vnd.gridx.v2+json\")\n .addHeader(\"content-type\", \"application/vnd.gridx.v2+json\")\n .build();\n\nResponse response = client.newCall(request).execute();" - lang: java label: Kotlin source: "val client = OkHttpClient()\n\nval mediaType = MediaType.parse(\"application/vnd.gridx.v2+json\")\nval body = RequestBody.create(mediaType, \"{\\\"type\\\":\\\"EV\\\",\\\"name\\\":\\\"string\\\",\\\"manufacturer\\\":\\\"Hyundai\\\",\\\"model\\\":\\\"Ioniq 5\\\",\\\"year\\\":2022}\")\nval request = Request.Builder()\n .url(\"https://api.gridx.de/systems/systemID/assets/assetID\")\n .patch(body)\n .addHeader(\"accept\", \"application/vnd.gridx.v2+json\")\n .addHeader(\"content-type\", \"application/vnd.gridx.v2+json\")\n .build()\n\nval response = client.newCall(request).execute()" - lang: javascript label: Swift source: "import Foundation\n\nlet postData = Data(\"{\"type\":\"EV\",\"name\":\"string\",\"manufacturer\":\"Hyundai\",\"model\":\"Ioniq 5\",\"year\":2022}\".utf8)\n\nlet url = URL(string: \"https://api.gridx.de/systems/systemID/assets/assetID\")!\nvar request = URLRequest(url: url)\nrequest.httpMethod = \"PATCH\"\nrequest.timeoutInterval = 10\nrequest.allHTTPHeaderFields = [\n \"accept\": \"application/vnd.gridx.v2+json\",\n \"content-type\": \"application/vnd.gridx.v2+json\"\n]\nrequest.httpBody = postData\n\nlet (data, _) = try await URLSession.shared.data(for: request)\nprint(String(decoding: data, as: UTF8.self))" - lang: csharp label: C# source: 'using RestSharp; var options = new RestClientOptions("https://api.gridx.de/systems/systemID/assets/assetID"); var client = new RestClient(options); var request = new RestRequest(""); request.AddHeader("accept", "application/vnd.gridx.v2+json"); request.AddStringBody("{"type":"EV","name":"string","manufacturer":"Hyundai","model":"Ioniq 5","year":2022}", "application/vnd.gridx.v2+json"); var response = await client.PatchAsync(request); Console.WriteLine("{0}", response.Content); ' delete: operationId: deleteSystemAsset summary: Delete an Asset description: Deletes an exisiting asset. tags: - Asset x-badges: - label: draft color: red parameters: - name: systemID description: 'Unique identifier used to access a system. ' in: path required: true schema: type: string format: uuid example: aa3e5a93-bb38-4b15-b7f2-af40daf3a1dc - name: assetID description: 'Unique identifier used to access an asset. ' in: path required: true schema: type: string format: uuid example: bb2681ab-9526-49ca-bc52-a5f4ec366958 responses: '204': description: Asset has been deleted successfully. '400': description: Malformed request. content: application/vnd.gridx.v2+json: schema: readOnly: true allOf: - title: General Exception description: Represents a general error structure returned by our REST API. type: object properties: message: type: string description: Message represents the message reported to the user. details: type: array description: 'Details represents detail information for the user to fix this problem ' items: type: string required: - message x-readme-ref-name: GeneralException - title: ClientError - Bad Request description: 'Bad Request indicates that the request body is not a valid JSON or it contains a invalid json type. ' example: message: Problems parsing JSON x-readme-ref-name: BadRequestException '403': description: Forbidden. content: application/vnd.gridx.v2+json: schema: readOnly: true allOf: - title: General Exception description: Represents a general error structure returned by our REST API. type: object properties: message: type: string description: Message represents the message reported to the user. details: type: array description: 'Details represents detail information for the user to fix this problem ' items: type: string required: - message x-readme-ref-name: GeneralException - title: UnauthorizedError - Forbidden Error description: Forbidden Error example: message: Bad credentials x-readme-ref-name: ForbiddenException '404': description: Requested entity not found. content: application/vnd.gridx.v2+json: schema: readOnly: true allOf: - title: General Exception description: Represents a general error structure returned by our REST API. type: object properties: message: type: string description: Message represents the message reported to the user. details: type: array description: 'Details represents detail information for the user to fix this problem ' items: type: string required: - message x-readme-ref-name: GeneralException - title: ClientError - Not Found description: Not Found indicates that the entity was not found. example: message: Not Found x-readme-ref-name: NotFoundException '500': description: There has been an internal error on our side. We're looking into it. content: application/vnd.gridx.v2+json: schema: readOnly: true allOf: - title: General Exception description: Represents a general error structure returned by our REST API. type: object properties: message: type: string description: Message represents the message reported to the user. details: type: array description: 'Details represents detail information for the user to fix this problem ' items: type: string required: - message x-readme-ref-name: GeneralException - title: ServerSideError - Internal Server Error description: Internal Server Error example: message: Internal Server Error x-readme-ref-name: InternalException security: - HeaderAuth: - AssetWrite x-code-samples: - lang: python label: Python source: 'import requests url = "https://api.gridx.de/systems/systemID/assets/assetID" headers = {"accept": "application/vnd.gridx.v2+json"} response = requests.delete(url, headers=headers) print(response.text)' - lang: shell label: Shell source: "curl --request DELETE \\\n --url https://api.gridx.de/systems/systemID/assets/assetID \\\n --header 'accept: application/vnd.gridx.v2+json'" - lang: go label: Go source: "package main\n\nimport (\n\t\"fmt\"\n\t\"net/http\"\n\t\"io\"\n)\n\nfunc main() {\n\n\turl := \"https://api.gridx.de/systems/systemID/assets/assetID\"\n\n\treq, _ := http.NewRequest(\"DELETE\", url, nil)\n\n\treq.Header.Add(\"accept\", \"application/vnd.gridx.v2+json\")\n\n\tres, _ := http.DefaultClient.Do(req)\n\n\tdefer res.Body.Close()\n\tbody, _ := io.ReadAll(res.Body)\n\n\tfmt.Println(string(body))\n\n}" - lang: javascript label: Javascript source: "const options = {method: 'DELETE', headers: {accept: 'application/vnd.gridx.v2+json'}};\n\nfetch('https://api.gridx.de/systems/systemID/assets/assetID', options)\n .then(res => res.json())\n .then(res => console.log(res))\n .catch(err => console.error(err));" - lang: java label: Java source: "OkHttpClient client = new OkHttpClient();\n\nRequest request = new Request.Builder()\n .url(\"https://api.gridx.de/systems/systemID/assets/assetID\")\n .delete(null)\n .addHeader(\"accept\", \"application/vnd.gridx.v2+json\")\n .build();\n\nResponse response = client.newCall(request).execute();" - lang: java label: Kotlin source: "val client = OkHttpClient()\n\nval request = Request.Builder()\n .url(\"https://api.gridx.de/systems/systemID/assets/assetID\")\n .delete(null)\n .addHeader(\"accept\", \"application/vnd.gridx.v2+json\")\n .build()\n\nval response = client.newCall(request).execute()" - lang: javascript label: Swift source: 'import Foundation let url = URL(string: "https://api.gridx.de/systems/systemID/assets/assetID")! var request = URLRequest(url: url) request.httpMethod = "DELETE" request.timeoutInterval = 10 request.allHTTPHeaderFields = ["accept": "application/vnd.gridx.v2+json"] let (data, _) = try await URLSession.shared.data(for: request) print(String(decoding: data, as: UTF8.self))' - lang: csharp label: C# source: 'using RestSharp; var options = new RestClientOptions("https://api.gridx.de/systems/systemID/assets/assetID"); var client = new RestClient(options); var request = new RestRequest(""); request.AddHeader("accept", "application/vnd.gridx.v2+json"); var response = await client.DeleteAsync(request); Console.WriteLine("{0}", response.Content); ' servers: - url: https://api.gridx.de description: Production components: securitySchemes: HeaderAuth: type: apiKey name: Authorization in: header description: Enter either the JWT token with the prefix `Bearer ` or an API token with the prefix `Token ` x-refined-from: - gridx-api.json - gridx-ai-openapi.yml