# Profiles

ESDL support many different types of profiles. Next to this ESDL uses profiles for different applications.

Currently ESDL uses profiles for:

* describing energy consumption and production at ports of an `EnergyAsset`
* describing solar irradiance or wind speeds over time
* describing historic, current and expexted costs for an `EnergyCarrier` or `Commodity` (e.g. expected electricity price developments)
* describing costs for an `EnergyAsset` (cost developments of a HeatPump for the coming 30 years). These costs are divided into investment costs, installation costs and operation and maintenance costs)

ESDL supports the following types of profiles:

* `DateTimeProfile`: Allows to specify a range of values with timestamps.
* `SingleValue`: Allows to specify a single value for a parameter
* `Range`: Allows to specify a range of possible values between minValue and maxValue.
* `URIProfile`: Allows to refer to a URI for a profile&#x20;
* `InfluxDBProfile`: Allows to refer to a profile in an InfluxDB database
* `ReferenceProfile`: Allows to refer to a profile in the `Profile` collection class.

## DateTimeProfile

The `DateTimeProfile` is a collection of values each annotated with a start time (`from`) and optionally an end time (`to`). When only a starting time is specified, the value is valid until the start time of the next value in the profile. So, the value of the last item in the profile, is valid for the rest of the time (basically forever). If you want to specify a value for a certain bounded time period, you must specify the end time.

## InfluxDBProfile

The `InfluxDBProfile` allows to refer to a profile in an InfluxDB database.

It requires the following parameters:

* `host`: the hostname of the database server
* `port`: the port on which the InfluxDB server is running
* `database`: the name of the database that contains the profiles
* `measurement`: the name of the measurement that contains the profile data
* `field`: the name of the field that contains the profile values


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://energytransition.gitbook.io/esdl/esdl-concepts/data-types/profiles.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
