---
title: "Ausdrücke / Skriptsprache"
description: "Referenz der TapHome-Skriptsprache: Kontexte in smart rules, Benachrichtigungen, Modbus und Packet Parser, das Skriptergebnis, Datentypen, Operatoren und alle 104 Funktionen."
url: "https://taphome.com/de/docs/script/"
language: de
lastmod: 2026-11-06
generator: hugo
ai:
  topics: ["scripting-language","expressions","functions","data-types","smart-rules","parsing"]
  questions: ["Wie schreibe ich mehrzeilige Skripte in TapHome?","Wo kann ich die TapHome-Skriptsprache verwenden?","Wie verwende ich IF/ELSE-Anweisungen in TapHome-Ausdrücken?","Wie parse ich JSON-Daten in einem TapHome-Skript?","Was ist der Unterschied zwischen den Funktionen MIN und MINSTRICT?","Wie arbeite ich in TapHome-Skripten mit Datum und Uhrzeit?","Wie verwende ich die Funktion LINEAR zur Interpolation von Werten?","Welchen Wert gibt ein TapHome-Skript zurück?","Was darf ein Leseskript eines Geräts zurückgeben?"]
---

# Ausdrücke / Skriptsprache

Zuletzt aktualisiert: 2026-11-06

![TapHome Icon](https://taphome.com/documentation/script/script-icon.png)

TapHome hat eine einzige Skriptsprache für smart rules, Benachrichtigungen und Geräteintegrationen. Syntax und Funktionen sind überall gleich; nur die verfügbaren Variablen, Konstanten und Funktionen hängen davon ab, wo das Skript läuft. Die App für Android, Windows und macOS hebt die Syntax im Skripteditor farbig hervor; die App für iOS zeigt das Skript ohne Hervorhebung.

## Wo Skripte verwendet werden

Dieselbe Skriptsprache läuft in smart rules, Benachrichtigungen und in den Integrationen Modbus und Packet Parser:

| Kontext | Was das Skript tut | Kontextspezifisch |
|---|---|---|
| smart rule **Gleichung** | Ein Ausdruck über Gerätewerte. `TRUE` führt die Aktionen für „wahr“ aus, `FALSE` die Aktionen für „falsch“. | `LastState`, `TriggerName` |
| smart rule **Formel** | Berechnet einen Wert, der in jedes Ausgangsgerät geschrieben wird. | `LastState`, `TriggerName` |
| smart rule **Skript** | Liest Gerätewerte und weist neue zu; jede Zuweisung wird zu einer Geräteaktion. | Lese-/Schreibvariablen, `TriggerName` |
| Begrenzungsbedingung **Formel** | Entscheidet, ob eine smart rule ausgeführt werden darf. | `TRUE` lässt die smart rule laufen |
| **Benachrichtigung** — Titel und Nachricht | Erzeugt den Text einer Benachrichtigung. | Muss Text zurückgeben; Benachrichtigungskonstanten |
| Modbus — **Leseskript des Moduls** | Fragt das Modul ab, typischerweise um Gerätefehler zu melden. | Funktionen `MODBUS*` |
| Modbus — **Lese- und Schreibskripte des Geräts** | Wandelt Register in einen Gerätewert und einen angeforderten Wert zurück in Register um. | Das Leseergebnis wird zum Gerätewert |
| Modbus — **Initialisierungsskript** | Läuft einmal, nachdem sich das Modul verbunden hat. | Typischerweise `MODBUSWNE` |
| Packet Parser — **Lese- und Schreibskripte** | Sendet eine Anfrage oder einen Befehl über HTTP, FTP, TCP, UDP oder MQTT; bei HTTP und FTP verarbeitet es auch die Antwort. | `SENDHTTPREQUEST`, `SENDDATA`, `MQTTPUBLISH` |
| Packet Parser — **Listener-Skript** | Verarbeitet jedes eingehende TCP- oder UDP-Paket und jede MQTT-Nachricht. | `RECEIVEDMSG` |
| **Service-Attribute und Service-Aktionen** (Modbus, Packet Parser) | Diagnosezeilen und Schaltflächen mit Parametern in der App. | Aktionsparameter über ihre Abkürzung |

`SLEEP` wird in smart rules und Benachrichtigungen abgelehnt (die Ausnahme ist die Begrenzungsbedingung Formel). `ADDERROR`, `ADDWARNING` und `ADDINFO` funktionieren nur in Geräteskripten. Was jede smart rule an ihr Skript übergibt, steht auf [Skripte in smart rules und Benachrichtigungen](https://taphome.com/de/docs/script/smart-rules/); die Integrationen haben eigene Seiten, [Modbus-Funktionen](https://taphome.com/de/docs/script/modbus/) und [Packet-Parser-Funktionen](https://taphome.com/de/docs/script/packet-parser/).

## Skriptergebnis

Ein Skript ist eine Liste von Anweisungen. Der Wert der zuletzt ausgewerteten Anweisung ist das Ergebnis des Skripts. [`RETURN`](https://taphome.com/de/docs/script/basics/#return) beendet das Skript vorzeitig mit dem angegebenen Wert.

```taphome
VAR a := 1;
VAR b := 2;
a + b;
# Result: 3
```

Das Ergebnis eines Leseskripts eines Geräts muss zum Gerätewert passen, sonst schlägt das Skript mit `Return value 'X' does not match required return type constraint` fehl:

| Gerätewert | Zulässiges Ergebnis |
|---|---|
| Schaltzustand, Reedkontakt | `TRUE` oder `FALSE` (Zahlen werden akzeptiert), `NaN`, `Null` |
| Zustand des Mehrfachschalters | Zahl (eine ganze Zahl wählt den Zustand; ein Dezimalwert wird nicht abgelehnt), `NaN`, `Null` |
| Jeder andere Wert | Zahl, `NaN`, `Null` |

`NaN` bedeutet „der Wert ist unbekannt“, `Null` bedeutet „es gibt keinen Wert“. Wie sich beide in Ausdrücken verhalten, beschreibt [Null und NaN](https://taphome.com/de/docs/script/data-types/#null-and-nan).

## Referenzseiten

### Sprachgrundlagen

- [Syntax und Ablaufsteuerung](https://taphome.com/de/docs/script/basics/) — Anweisungen, Kommentare, Literale, `IF`, `SWITCH`, Schleifen `WHILE` und `DO`, `RETURN`
- [Datentypen](https://taphome.com/de/docs/script/data-types/) — Zahlen, Text, strukturierte und Aufzählungstypen, Sammlungen, `.Type`, Typerweiterung, `Null` und `NaN`
- [Variablen und Konstanten](https://taphome.com/de/docs/script/variables/) — Gerätevariablen, Gruppenwerte, Modulvariablen, `VAR` und typisierte Deklarationen, Eigenschaften, Kontextkonstanten
- [Operatoren](https://taphome.com/de/docs/script/operators/) — Liste der Operatoren, Rangfolge, Kurzschlussauswertung, Entsprechungen in Excel

### Smart rules und Diagnose

- [Smart rules und Benachrichtigungen](https://taphome.com/de/docs/script/smart-rules/) — Gleichung, Formel, Skript, die Begrenzungsbedingung Formel und Benachrichtigungen
- [Logik und Diagnose](https://taphome.com/de/docs/script/logic-and-diagnostics/) — `ISNULL`, `ISNAN`, `EQUALS`, `SLEEP`, `ADDERROR`, `ADDWARNING`, `ADDINFO`, `DEBOUNCE`
- [Fehler](https://taphome.com/de/docs/script/errors/) — Fehlermeldungen beim Parsen und zur Laufzeit und wie man sie behebt

### Zahlen und Zeit

- [Statistiken und Wertinfo](https://taphome.com/de/docs/script/value-info/) — Statistiken eines Geräts, Wertinfo mit dem Zeitpunkt der letzten Änderung, dem vorherigen Wert und den Werten abgeschlossener Zeiträume
- [Mathematische Funktionen](https://taphome.com/de/docs/script/mathematical-functions/) — `MIN`, `MAX`, `AVG` (sie überspringen unbekannte Werte, die Varianten `…STRICT` nicht), `ABS`, `SIGN`, `SQRT`, `POWER`, `MOD`, `LOG`, `LN`, `DEWPOINT`
- [Runden und Zufallszahlen](https://taphome.com/de/docs/script/rounding-and-random/) — `ROUND`, `CEIL`, `FLOOR`, `RAND`, `RANDINT`
- [Interpolation und Schwellenwerte](https://taphome.com/de/docs/script/interpolation-and-thresholds/) — `LINEAR` bildet einen Wert von einem Bereich auf einen anderen ab (zum Beispiel eine Dimmkurve), `HYSTERESIS`
- [Datum und Uhrzeit](https://taphome.com/de/docs/script/date-and-time/) — `NOW`, `DATETIME`, `DATETIMEADD`, `TIMESPAN`, `LOCALTIMEZONE`

### Text, Sammlungen und Farben

- [Text und Sammlungen](https://taphome.com/de/docs/script/text-string-and-byte-array/) — `LENGTH`, `GETAT`, `SETAT`, `APPEND`, `INSERT`, `REMOVEAT`, `COPY`, `INDEXOF`, `REPLACE`, `SPLIT`, `COMPARE`, `BYTECOLLECTION`, `UINT16COLLECTION`, `BOOLCOLLECTION`
- [Sortieren](https://taphome.com/de/docs/script/sorting/) — `ORDER`, `ORDERINDEX` und ihre absteigenden und strikten Varianten
- [Konvertierung von Datentypen](https://taphome.com/de/docs/script/data-type-conversions/) — `TOSTRING`, `TODOUBLE`, `TOBYTES`, `ENCODE`, `DECODE`
- [Farben](https://taphome.com/de/docs/script/colours/) — `HSVTORGB`, `RGBTOHSV`
- [Parsing-Funktionen](https://taphome.com/de/docs/script/parsing-functions/) — `PARSETEXT`, `PARSEJSON` (liest einen Wert aus JSON über seinen Pfad), `PARSEXML`

### Binärdaten und Sicherheit

- [Bitoperationen](https://taphome.com/de/docs/script/bit-operations/) — `GETBIT`, `GETBITS`, `SETBIT`, `SETBITS`, `GETBYTE`, `SETBYTE`, `TOBCD`, `FROMBCD`
- [Binärdaten](https://taphome.com/de/docs/script/binary-data/) — `PACKVALUE`, `UNPACKVALUE`
- [Verschlüsselung und Hashes](https://taphome.com/de/docs/script/encryption-and-hashes/) — `AESENCRYPT`, `AESDECRYPT`, `HASH`, `HMAC`, `RANDBYTES`
- [Byte-Kodierungen und Prüfsummen](https://taphome.com/de/docs/script/byte-encodings/) — `TOBASE64`, `FROMBASE64`, `TOHEX`, `FROMHEX`, `CRC16`, `CRC32`

### Geräteintegrationen

- [Modbus-Funktionen](https://taphome.com/de/docs/script/modbus/) — Registertypen, `MODBUSR`, `MODBUSW`, `MODBUSWNE`, `MODBUSRBLOCK`, `MODBUSWBLOCK`, `MODBUSWBLOCKNE`
- [Modbus-Skripte](https://taphome.com/de/docs/script/modbus-scripts/) — Welche Skripte ein Modbus-Modul und ein Modbus-Gerät haben, wann sie laufen, Prefetch und Caching
- [Modbus-Datentypen](https://taphome.com/de/docs/script/modbus-data-types/) — Datentypen der Modbus-Funktionen, Varianten der Bytereihenfolge, 64-Bit-Typen, Text
- [Packet-Parser-Funktionen](https://taphome.com/de/docs/script/packet-parser/) — `HTTPREQUEST`, `SENDHTTPREQUEST`, `SENDDATA`, `MQTTPUBLISH`, `FTPDOWNLOAD`, `FTPUPLOAD`, `COMPLETESERVICEATTRIBUTE`, `COMPLETESERVICEACTION`
- [Listener-Skripte](https://taphome.com/de/docs/script/listener-scripts/) — Das Listener-Skript eines Packet-Parser-Moduls, `RECEIVEDMSG` und `RECEIVEDBYTES`

### Beispiele und Referenz

- [Beispiele](https://taphome.com/de/docs/script/examples/) — Vollständige Skripte aus echten Gerätevorlagen
- [Versionsanforderungen](https://taphome.com/de/docs/script/version-requirements/) — Welchen Build der Steuereinheit Core jede Funktion benötigt
- [Funktionen A–Z](https://taphome.com/de/docs/script/functions-a-z/) — Jede Funktion mit einem Satz und einem Link

