> For the complete documentation index, see [llms.txt](https://docs.buildings.ability.abb/collection/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.buildings.ability.abb/collection/german/verpflichtende-basis/assets/attribute-functions/calculate-values-the-calculator.md).

# Werte berechnen: Der Rechner

Der Calculator ist ein Dienst, mit dem Sie **transformieren, neu berechnen und zusammenfassen** eingehende Daten mithilfe mathematischer Ausdrücke verarbeiten. Beispielsweise können Werte in Watt beim Eingang durch Division durch 1000 in Kilowatt umgerechnet werden. Der umgerechnete Wert wird dann im entsprechenden Attribut angezeigt, in dem die Berechnung durchgeführt wurde.

## Beispiele

### Werte umwandeln

* Watt in kW:

  ```calculatorlang
  {Wert}/1000
  ```
* Grad Celsius in Grad Fahrenheit \[F=(1.8×C)+32]

  ```
  (1.8*{Wert})+32
  ```

### Neue Werte berechnen

* Komfort mithilfe von Formeln berechnen

  Codeausschnitt

  ```
  (0.8 * {temperature}) + (0.2 * {humidity})
  ```
* Personenzähler hinzufügen

  Codeausschnitt

  ```
  [10.input.count] + [11.input.count] + [12.input.count]
  ```
* Verbrauch mehrerer Zähler hinzufügen

  Codeausschnitt

  ```
  [10.input.power] + [11.input.power] + [12.input.power]
  ```
* Wert ist zwischen 1 und 80, dann Status "0 = Ok", andernfalls "1 = Alarm"

  Codeausschnitt

  ```
  not(inrange(1, {Wert}, 80))
  ```
* Heizung abhängig von der Temperatur ein- oder ausschalten (0 auf "aus" und 1 auf "ein" abbilden)

  Codeausschnitt

  ```
  {temperature} < 20 ? 1 : 0
  ```

### Syntax

Um Berechnungen mit Attributen durchzuführen, setzen Sie die Attributnamen in geschweifte Klammern. Dadurch können Sie auf die Werte dieser Attribute zugreifen.

Auf Attribute innerhalb eines Assets zugreifen

Sie können direkt auf die Werte von Attributen desselben Typs zugreifen. Zum Beispiel:

```
{temperature} + {humidity}
```

#### Auf Attribute unterschiedlicher Typen innerhalb eines Assets zugreifen

Wenn Sie innerhalb desselben Assets auf Attribute unterschiedlicher Typen zugreifen möchten, verwenden Sie die folgende Syntax:

* `{input.temperature}`: Zugriff auf das Attribut "temperature" des Typs input
* `{status.temperature}`: Zugriff auf das Attribut "temperature" des Typs status
* `{output.temperature}`: Zugriff auf das Attribut "temperature" des Typs output

#### Auf Attribute anderer Assets zugreifen

Um auf die Werte von Attributen anderer Assets zuzugreifen, verwenden Sie die folgende Syntax:

```
[asset_id.attribut_type.attribut_name]
```

#### Beispiel

```
[10.input.power] + [11.input.power] + [12.input.power]
```

In diesem Beispiel werden die Werte des Attributs "power" der Assets mit den IDs 10, 11 und 12 addiert.

## Berechnungen ausführen

Sie können Berechnungen mit Attributen an 2 Stellen in BuildingPro Suites ausführen:

* Im Asset-Template
* Im einzelnen Asset

Im Asset-Template werden Standardberechnungen festgelegt, die auf alle mit dieser Vorlage erstellten Assets angewendet werden. Diese Berechnungen können bei Bedarf jedoch in den einzelnen Assets individuell überschrieben werden.

{% hint style="info" %}
Vermeiden Sie im Asset-Template den Zugriff auf Attribute anderer Assets, da dies bei Änderungen zu Problemen führt und alle Berechnungen neu erstellt werden müssen.
{% endhint %}

### Eine Berechnung in einem Asset-Template ausführen

<figure><img src="https://3489494878-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F9GvUpaatBiReR43XFSMg%2Fuploads%2Fq12omkIRPY6Vo3ylXjeF%2FDocs_Calculator%202.png?alt=media&#x26;token=1c0d02bf-3f73-43f3-9d53-ccc5276175c6" alt=""><figcaption></figcaption></figure>

1. Öffnen Sie ein vorhandenes Asset-Template oder erstellen Sie ein neues
2. Öffnen Sie ein vorhandenes Attribut oder erstellen Sie ein neues Attribut
3. Sie können im Feld \[A] Berechnungen ausführen. Diese Berechnungen gelten dann für alle Assets dieses Typs, können aber auch im einzelnen Asset überschrieben werden.

### Eine Berechnung in einem Asset ausführen

<figure><img src="https://3489494878-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F9GvUpaatBiReR43XFSMg%2Fuploads%2F0tSv36XSXCprmr01joZb%2FDocs_Calculator%201.png?alt=media&#x26;token=ed1df66f-48df-4833-80bc-b333ade7b5c7" alt=""><figcaption></figcaption></figure>

1. Öffnen Sie die [-> Asset-Details](/collection/german/verpflichtende-basis/assets/asset-details.md)
2. Klicken Sie auf das Attribut, dessen Werte Sie berechnen möchten.\n▷ Die Seitenleiste \[A] öffnet sich
3. Geben Sie im Feld \[B] Ihre Berechnung ein.
4. Klicken Sie auf Speichern \[X]

#### Verwenden Sie in einer Berechnung Attribute eines anderen Assets (externe Werte)

Diese Funktion ist nur möglich, wenn Sie Berechnungen in einem Asset ausführen.

1. Öffnen Sie die [-> Asset-Details](/collection/german/verpflichtende-basis/assets/asset-details.md)
2. Klicken Sie auf das Attribut, dessen Werte Sie berechnen möchten.\n▷ Die Seitenleiste \[A] öffnet sich
3. Geben Sie im Feld \[B] Ihre Berechnung ein.
4. Klicken Sie auf \[C1], um das Asset auszuwählen, dessen Werte Sie in der Berechnung verwenden möchten.
5. Klicken Sie auf \[C3], um den Subtyp des Assets anzugeben.
6. Klicken Sie auf \[C4], um das Attribut anzugeben, das Sie verwenden möchten.
7. Klicken Sie auf \[C5], um Ihre Auswahl zu bestätigen.\n▷ Die Informationen erscheinen nun in eckigen Klammern im Feld \[B]
8. Wenn Sie weitere externe Werte in die Berechnung einbeziehen möchten: 8.1. Klicken Sie auf \[C2] 8.2. Wiederholen Sie die Schritte 4 bis 8
9. Klicken Sie auf Speichern \[X]

### Ausgabeattribut zurücksetzen

Wenn ein Ausgabeattribut ausgewählt ist, gibt es die Möglichkeit, den Wert zurückzusetzen.

* Durch Klicken auf "Attribut zurücksetzen" wird dem Attribut ein Nullwert zugewiesen.
* Dies entspricht dem Zustand, als ob keine Daten im Heap gespeichert wären.

<div align="left"><figure><img src="https://3489494878-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F9GvUpaatBiReR43XFSMg%2Fuploads%2F53DVlUloLTrPAICNHxO0%2FReset%20Attribute.png?alt=media&#x26;token=30a56d9e-0b78-4057-af01-d37a44b27a50" alt="" width="375"><figcaption></figcaption></figure></div>

### Berechnungsketten

Berechnungsketten werden automatisch erstellt, wenn Sie Berechnungen anlegen, sowohl innerhalb eines einzelnen Assets als auch über mehrere Assets hinweg. Eine Berechnungskette liegt zum Beispiel vor, wenn "Asset A von einem Wert aus Asset B abhängt, Asset B von einem Wert aus Asset C abhängt und Asset C von einem Wert aus Asset D abhängt".

Jedes Mal, wenn sich ein Wert in Asset A ändert, der in Asset B verwendet wird, wird für Asset B eine Berechnung ausgelöst. Jede Änderung eines Werts in Asset B, auf den in Asset C verwiesen wird, führt zu einer Berechnung in Asset C.

Die Kette wird unterbrochen, wenn ein Schritt der Berechnung fehlschlägt oder den [Filter](https://www.google.com/search?q=filter). Dadurch wird die Anzahl der Ereignisse im System reduziert.

### Operatoren und Funktionen

Hier sind die verfügbaren Operatoren und Funktionen aufgelistet.

Operatoren

| Gruppe     | Operatoren                                                            |
| ---------- | --------------------------------------------------------------------- |
| Arithmetik | +, -, \*, /, % (Modulus-Operator), ^ (Exponent)                       |
| Vergleich  | ==, !=, <, >, <=, >=                                                  |
| Logik      | not oder !, and oder &&, or oder                                      |
| Bedingung  | ? (Ternärer Operator - Bedingung ? Wert wenn wahr : Wert wenn falsch) |

**Funktionen**

Funktionen können in der Syntax avg({Value1},{Value2},{Value3}) verwendet werden<br>

<table><thead><tr><th width="108.4000244140625">Funktion</th><th>Beschreibung</th></tr></thead><tbody><tr><td>avg</td><td>Gibt den Durchschnitt einer Liste von Werten zurück (beliebige Anzahl von Float-Werten)</td></tr><tr><td>max</td><td>Gibt den Maximalwert einer Liste von Werten zurück (beliebige Anzahl von Float-Werten)</td></tr><tr><td>min</td><td>Gibt den Minimalwert einer Liste von Werten zurück (beliebige Anzahl von Float-Werten)</td></tr><tr><td>abs</td><td>Gibt den Absolutwert eines Werts zurück (einzelner Float)</td></tr><tr><td>round</td><td>Rundet einen Wert auf die nächste ganze Zahl (einzelner Float)</td></tr><tr><td>pow</td><td>Potenzierung (2 Argumente, das 2. ist die Potenz)</td></tr><tr><td>sin</td><td>Sinus eines Werts in Radiant</td></tr><tr><td>cos</td><td>Kosinus eines Werts in Radiant</td></tr><tr><td>cosh</td><td>Hyperbolischer Kosinus eines Werts in Radiant</td></tr><tr><td>cot</td><td>Kotangens eines Werts in Radiant</td></tr><tr><td>csc</td><td>Kosekans eines Werts in Radiant</td></tr><tr><td>sec</td><td>Sekans eines Werts in Radiant</td></tr><tr><td>gleich</td><td>Vergleicht zwei Zahlen mit einer Toleranz von 0,001</td></tr><tr><td>nicht</td><td>Invertiert einen booleschen Wert</td></tr><tr><td>rad2deg</td><td>Konvertiert Radiant in Grad</td></tr><tr><td>deg2rad</td><td>Konvertiert Grad in Radiant</td></tr><tr><td>inrange</td><td>Prüft, ob ein Wert innerhalb eines Bereichs liegt (linke Grenze, Wert, rechte Grenze)</td></tr><tr><td>history(reference, back_step)</td><td>Gibt einen historischen Wert eines Attributs zurück. <code>reference</code> ist die normale Referenz des Attributs (z. B. <code>[asset_id.subtype.attribute]</code>), und <code>back_step</code> ist eine negative Zahl, die angibt, welchen Wert aus der Historie Sie abrufen möchten. Beispiel: <code>-1</code> liefert den vorherigen Wert, <code>-2</code> den davor.</td></tr></tbody></table>

Diese Funktionen und Operatoren ermöglichen in Ihren Berechnungen eine Vielzahl von Berechnungen und logischen Operationen.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

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

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://docs.buildings.ability.abb/collection/german/verpflichtende-basis/assets/attribute-functions/calculate-values-the-calculator.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

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.
