TapHome Icon

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 hebt die Syntax im Skripteditor farbig hervor.

Wo Skripte verwendet werden

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

KontextWas das Skript tutKontextspezifisch
smart rule GleichungEin Ausdruck über Gerätewerte. TRUE führt die Aktionen für „wahr“ aus, FALSE die Aktionen für „falsch“.LastState, TriggerName
smart rule FormelBerechnet einen Wert, der in jedes Ausgangsgerät geschrieben wird.LastState, TriggerName
smart rule SkriptLiest Gerätewerte und weist neue zu; jede Zuweisung wird zu einer Geräteaktion.Lese-/Schreibvariablen, TriggerName
Begrenzungsbedingung FormelEntscheidet, ob eine smart rule ausgeführt werden darf.TRUE lässt die smart rule laufen
Benachrichtigung — Titel und NachrichtErzeugt den Text einer Benachrichtigung.Muss Text zurückgeben; Benachrichtigungskonstanten
Modbus — Leseskript des ModulsFragt das Modul ab, typischerweise um Gerätefehler zu melden.Funktionen MODBUS*
Modbus — Lese- und Schreibskripte des GerätsWandelt Register in einen Gerätewert und einen angeforderten Wert zurück in Register um.Das Leseergebnis wird zum Gerätewert
Modbus — InitialisierungsskriptLäuft einmal, nachdem sich das Modul verbunden hat.Typischerweise MODBUSWNE
Packet Parser — Lese- und SchreibskripteSendet 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-SkriptVerarbeitet 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; die Integrationen haben eigene Seiten, Modbus-Funktionen und Packet-Parser-Funktionen.

Skriptergebnis

Ein Skript ist eine Liste von Anweisungen. Der Wert der zuletzt ausgewerteten Anweisung ist das Ergebnis des Skripts. RETURN beendet das Skript vorzeitig mit dem angegebenen Wert.

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ätewertZulässiges Ergebnis
Schaltzustand, ReedkontaktTRUE oder FALSE (Zahlen werden akzeptiert), NaN, Null
Zustand des MehrfachschaltersZahl (eine ganze Zahl wählt den Zustand; ein Dezimalwert wird nicht abgelehnt), NaN, Null
Jeder andere WertZahl, 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.

Seiten in diesem Abschnitt

Die Referenz der Skriptsprache hat vier Seitengruppen: einen Leitfaden zur Sprache, die Funktionen nach Bereichen, die Integrationsfunktionen und Referenzlisten.

Leitfaden

  • Syntax und Ablaufsteuerung — Anweisungen, Kommentare, Literale, IF, SWITCH, Schleifen WHILE und DO, RETURN.
  • Datentypen — Zahlen, Text, strukturierte und Aufzählungstypen, Sammlungen, .Type, Typerweiterung, Null und NaN.
  • Variablen und Konstanten — Gerätevariablen, Wertinfo, Modulvariablen, VAR und typisierte Deklarationen, Eigenschaften, Kontextkonstanten.
  • Operatoren — Liste der Operatoren, Rangfolge, Kurzschlussauswertung, Entsprechungen in Excel.
  • Skripte in smart rules und Benachrichtigungen — Gleichung, Formel, Skript, die Begrenzungsbedingung Formel und Benachrichtigungen.

Funktionen

  • Logik und Diagnose — ISNULL, ISNAN, EQUALS, SLEEP, ADDERROR, ADDWARNING, ADDINFO, DEBOUNCE.
  • Mathematische Funktionen — MIN, MAX, AVG (sie überspringen unbekannte Werte, die Varianten …STRICT nicht), ABS, SIGN, SQRT, POWER, MOD, LOG, LN, DEWPOINT.
  • Runden und Zufallszahlen — ROUND, CEIL, FLOOR, RAND, RANDINT.
  • Interpolation und Schwellenwerte — LINEAR bildet einen Wert von einem Bereich auf einen anderen ab (zum Beispiel eine Dimmkurve), HYSTERESIS.
  • Bitoperationen — GETBIT, GETBITS, SETBIT, SETBITS, GETBYTE, SETBYTE, TOBCD, FROMBCD.
  • Text und Sammlungen — LENGTH, GETAT, SETAT, APPEND, INSERT, REMOVEAT, COPY, INDEXOF, REPLACE, SPLIT, COMPARE, BYTECOLLECTION, UINT16COLLECTION, BOOLCOLLECTION.
  • Sortieren — ORDER, ORDERINDEX und ihre absteigenden und strikten Varianten.
  • Datum und Uhrzeit — NOW, DATETIME, DATETIMEADD, TIMESPAN, LOCALTIMEZONE.
  • Datentypkonvertierungen — TOSTRING, TODOUBLE, TOBYTES, ENCODE, DECODE.
  • Farben — HSVTORGB, RGBTOHSV.
  • Parsing-Funktionen — PARSETEXT, PARSEJSON (liest einen Wert aus JSON über seinen Pfad), PARSEXML.
  • Binärdaten — PACKVALUE, UNPACKVALUE.

Integrationen

  • Modbus-Funktionen — Registertypen, MODBUSR, MODBUSW, MODBUSWNE, MODBUSRBLOCK, MODBUSWBLOCK, MODBUSWBLOCKNE.
  • Modbus-Datentypen — Datentypen der Modbus-Funktionen, Varianten der Bytereihenfolge, 64-Bit-Typen, Text.
  • Modbus-Skripte und Prefetch — welche Skripte ein Modbus-Modul und ein Modbus-Gerät haben, wann sie laufen, Prefetch und Caching.
  • Packet-Parser-Funktionen — HTTPREQUEST, SENDHTTPREQUEST, SENDDATA, MQTTPUBLISH, FTPDOWNLOAD, FTPUPLOAD, COMPLETESERVICEATTRIBUTE, COMPLETESERVICEACTION.
  • Listener-Skripte — das Listener-Skript eines Packet-Parser-Moduls, RECEIVEDMSG und RECEIVEDBYTES.

Referenz