# Werte berechnen: der Rechner

Der Calculator ist ein Dienst, der es Ihnen ermöglicht, **eingehende Daten mithilfe mathematischer Ausdrücke zu transformieren, neu zu berechnen und zusammenzufassen** eingehende Daten mithilfe mathematischer Ausdrücke zu transformieren, neu zu berechnen und zusammenzufassen. Zum Beispiel können Werte in Watt beim Empfang 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 umrechnen

* Watt in kW:

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

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

### Neue Werte berechnen

* Komfort mit Formeln berechnen

  Code-Snippet

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

  Code-Snippet

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

  Code-Snippet

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

  Code-Snippet

  ```
  not(inrange(1, {Wert}, 80))
  ```
* Heizung je nach Temperatur ein- oder ausschalten (0 auf „aus“ und 1 auf „ein“ abbilden)

  Code-Snippet

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

### Syntax

Um Berechnungen mit Attributen durchzuführen, setzen Sie die Namen der Attribute 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}`: Greift auf das Attribut „temperature“ des Typs input zu
* `{status.temperature}`: Greift auf das Attribut „temperature“ des Typs status zu
* `{output.temperature}`: Greift auf das Attribut „temperature“ des Typs output zu

#### 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“ von 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:

* In der Asset-Vorlage
* Im einzelnen Asset

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

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

### Eine Berechnung in einer Asset-Vorlage 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 eine vorhandene Asset-Vorlage oder erstellen Sie eine neue
2. Öffnen Sie ein vorhandenes Attribut oder erstellen Sie ein neues Attribut
3. Sie können Berechnungen im Feld \[A] 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 [-> Anlagendetails](https://docs.buildings.ability.abb/collection/german/pflichtbasis/assets/asset-details)
2. Klicken Sie auf das Attribut, dessen Werte Sie berechnen möchten.

   ▷ Die Seitenleiste \[A] öffnet sich
3. Geben Sie in Feld \[B] Ihre Berechnung ein.
4. Klicken Sie auf Speichern \[X]

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

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

1. Öffnen Sie die [-> Anlagendetails](https://docs.buildings.ability.abb/collection/german/pflichtbasis/assets/asset-details)
2. Klicken Sie auf das Attribut, dessen Werte Sie berechnen möchten.

   ▷ Die Seitenleiste \[A] öffnet sich
3. Geben Sie in 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.

   ▷ Die Informationen erscheinen nun in eckigen Klammern in 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 wären keine Daten im Heap gespeichert.

<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 erstellen, sowohl innerhalb eines einzelnen Assets als auch über mehrere Assets hinweg. Eine Berechnungskette liegt beispielsweise 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 in Asset A ein Wert ä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)nicht passiert. Dadurch wird die Anzahl der Ereignisse im System reduziert.

### Operatoren und Funktionen

Hier sind die verfügbaren Operatoren und Funktionen aufgeführt.

Operatoren

| Gruppe     | Operatoren                                                              |
| ---------- | ----------------------------------------------------------------------- |
| Arithmetik | +, -, \*, /, % (Modulo-Operator), ^ (Exponent)                          |
| Vergleich  | ==, !=, <, >, <=, >=                                                    |
| Logisch    | not oder !, and oder &&, or oder                                        |
| Bedingt    | ? (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 Ganzzahl (einzelner float)</td></tr><tr><td>pow</td><td>Potenzierung (2 Argumente, das 2. ist der Exponent)</td></tr><tr><td>sin</td><td>Sinus eines Werts im Bogenmaß</td></tr><tr><td>cos</td><td>Kosinus eines Werts im Bogenmaß</td></tr><tr><td>cosh</td><td>Hyperbolischer Kosinus eines Werts im Bogenmaß</td></tr><tr><td>cot</td><td>Kotangens eines Werts im Bogenmaß</td></tr><tr><td>csc</td><td>Kosekans eines Werts im Bogenmaß</td></tr><tr><td>sec</td><td>Sekans eines Werts im Bogenmaß</td></tr><tr><td>equal</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 Bogenmaß in Grad</td></tr><tr><td>deg2rad</td><td>Konvertiert Grad in Bogenmaß</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 dem Verlauf Sie abrufen möchten. Beispiel: <code>-1</code> gibt den vorherigen Wert zurück, <code>-2</code> den davorliegenden.</td></tr></tbody></table>

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


---

# 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://docs.buildings.ability.abb/collection/german/pflichtbasis/assets/attribute-functions/calculate-values-the-calculator.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.
