# Geräte

## Geräte

Ein Gerät stellt Element dar, welches durch einen Namen, Gewerk und seine Zustände (`States`) beschrieben ist, z. B. ist das Vitrinenlicht (Name) ein Licht (Gewerk) mit den Zuständen `power` (an/aus), `level` (bzw. `dimmer`) und ggf. einer Farbauswahl (`colorTemperature`, `rgb` / `hue`). Mehr über die Gewerke kann [hier nachgelesen](/jarvis-v2/geraete/functions.md) werden.

## Geräteliste

![Geräteliste](/files/-MRfjNdjpXK8vCVD-stR)

Die Liste der Geräte kann nach Gewerk oder Hersteller (`manufacturer`) gruppiert werden.

Außerdem kann die Liste mittels Filter durchsucht und eingegrenzt werden. Bei der Suche werden folgenden Bestandteile berücksichtigt:

* Name des Geräts (`name`)
* ID des Geräts (`id`)
* Gewerk des Geräts (`function`)
* ID der Datenpunkte des Geräts (`stateId`)
* Label der Datenpunkte des Geräts (`stateLabel`)
* State sowie Action Trigger der Datenpunkte des Geräts (`state` / `action`)
* Hersteller (`manufacturer`)

Es werden immer alle genannten Bestandteile bei der Eingabe durchsucht.

Um nur bestimmte Bestandteile zu durchsuchen, kann die Suche mittels Angabe des Attributs eingeschränkt werden, z. B. `-Attribut:Suchbegriff`

```
-name:Gerätename
```

oder

```
-function:Licht
```

oder

```
-manufacturer:Shelly
```

## Gerätekonfiguration

Die Gerätekonfiguration kann in den jarvis Einstellungen je Gerät vorgenommen werden.

![Gerätekonfiguration](/files/-MRfjNdm6RAhkVNiejHt)

### Konfiguration der Datenpunkte / States

| Label                                   | Information                                                                       | Format |
| --------------------------------------- | --------------------------------------------------------------------------------- | ------ |
| Datenpunkt (Anzeige) (`state`)          | Datenpunkt dessen State als Wert angezeigt wird                                   | text   |
| Datenpunkt Stil (`stateStyle`)          | Stil des angezeigten Wertes (im JSON Format)                                      | json   |
| Datenpunkt Eigenschaften (`properties`) | Eigenschaften des Datenpunkts: on, off, min, max sowie level (im JSON Format)     | json   |
| Anzeigevariante (`display`)             | Texte die den angezeigten Wert ersetzen (im JSON Format)                          | json   |
| Label (`label`)                         | -                                                                                 | text   |
| Einheit (`unit`)                        | Einheit des Datenpunkts, z. B. % oder °                                           | json   |
| Icon (`icon`)                           | [Material Icon (klick zur Ansicht aller Icons)](https://materialdesignicons.com/) | json   |
| Icon Stil (`iconStyle`)                 | Stil des Icons (im JSON Format)                                                   | json   |
| Datenpunkt (Trigger) (`action`)         | Datenpunkt der zum Schalten getriggert wird                                       | text   |
| Body Element (`bodyElement`)            | -                                                                                 | text   |
| Action Element (`actionElement`)        | -                                                                                 | text   |
| im Popup verstecken (`hide`)            | Datenpunkt nicht in den Geräte-Details (Popup) zeigen                             | text   |

### Datenpunkt Eigenschaften

Mit den Datenpunkt Eigenschaften können die Standardwerte für die visuellen Komponenten (Body Element `bodyElement` sowie Action Element `actionElement`) überschrieben werden.

Die folgenden Eigenschaften stehen zur Verfügung:

* `on` (Standard `true`): Definiert den Wert, der beim Einschalten gesetzt werden soll. Dieser Wert wird für `SwitchAction`, `IconButtonAction` und `ButtonAction` genutzt.
* `off` (Standard `false`): Definiert den Wert, der beim Ausschalten gesetzt werden soll. Dieser Wert wird für `SwitchAction` genutzt.
* `min` (Standard `0`) / `max` (Standard `100`): Definiert den unteren und oberen möglichen Wert eines Geräts. Dieser Wertebereich wird für `LevelBody` und `BlindLevelAction` genutzt.
* `level` (Standard `100`): Definiert das initiale Dimmlevel beim Einschalten eines Dimmers.

Die Angaben sind im JSON Format zu machen, analog der [JSON Eingabefelder](/jarvis-v2/geraete/devices.md#datenpunkt-eigenschaften).

**Beispiel** ![Datenpunkt Eigenschaften](/files/-MRfjNdttNzy7uS7_nSB)

### JSON Eingabefelder

Für alle Datenpunkte, die das Format `json` haben, können die Inhalte abhängig des Wertes des Datenpunkts definiert werden.

Die durch jarvis definierten Voreinstellungen sind durch das jeweilige Gewerk des Geräts vorgegeben und können durch die Angabe direkt im Gerät (vgl. Screenshot oben) überschrieben werden. Die [definierten Voreinstellungen können unter Gewerke](/jarvis-v2/geraete/functions.md) eingesehen werden.

Erlaubte Operatoren sind `<`, `<=`, `>`, `>=` und `!=`.

#### Display

Mit Display können die Werte des Datenpunkts durch einen Bezeichner bzw. ein Label ersetzt werden. Das einfachste Beispiel für ein Licht mit an (Wert `true`) und aus (Wert `false`):

```
{
   "true": "an",
   "false": "aus"
}
```

oder für einen Staubsauger-Roboter (links der Wert aus ioBroker, rechts die Darstellung in jarvis):

```
{
   "101":"QUIET",
   "102":"BALANCED",
   "103":"TURBO",
   "104":"MAXIMUM",
   "105":"MOP",
   "106":"CUSTOM"
}
```

#### Icon

Beispielsweise kann für das Vitrinenlicht für den Zustand `power` jeweils ein Icon für an und aus angezeigt werden:

Hier ist im Feld `Icon` folgendes einzutragen:

```
{
   "true": "lightbulb-on",
   "false": "lightbulb-off-outline"
}
```

Der Wert `default` kann als Fallback genutzt werden, sofern kein Operator zutrifft. Beispielsweise für `level` / `dimmer` beim Licht:

```
{
   "default": "lightbulb-on",
   "0": "lightbulb-off-outline"
}
```

Es können ebenfalls die Operatoren `<`, `<=`, `>`, `>=` und `!=` genutzt werden. Beispielsweise für `level` beim Jalousie / Rollo:

```
{
   "default":"window-shutter-open",
   ">90":"window-shutter-open",
   "<=90":"window-shutter"
}
```

oder für eine Batterie:

```
{
   ">80":"battery-high",
   "<=80":"battery-medium",
   "<=30":"battery-low",
   "<=10":"battery-outline",
   "<=5":"battery-alert-variant-outline"
}
```

#### Datenpunkt / Icon Stil

Die Konfiguration des Datenpunkt und Icon Stils erfolgt mittels [CSS](https://wiki.selfhtml.org/wiki/CSS/Tutorials/Einstieg/Syntax).

Die Definition erfolgt ebenfalls in Abhängigkeit zum Wert des Datenpunkts. Beispielsweise für `power`:

```
{
   "true":{
      "color":"#090",
      "fontWeight":"bold"
   },
   "false":{
      "color":"#999"
   }
}
```

*(an wird grün und dick, aus grau dargestellt)*


---

# 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://zefau.gitbook.io/jarvis-v2/geraete/devices.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.
