Suche
MENU
  • Ausdrücke / Skriptsprache
  • Benutzer und Berechtigungen
  • Backup, Backup wiederherstellen, auf Werkseinstellungen zurücksetzen
  • Software release notes
  • Manuelle Konfiguration

    Implementierung in TapHome

    In TapHome ist der Packet Parser eine Hardwareschnittstelle (Einstellungen → Hardware → Neues Interface hinzufügen → Packet parser), die dazu dient, Geräte von Drittanbietern mit dem Controller zu verbinden. Diese Geräte können entweder über WiFi oder LAN über das TCP/IP-Protokoll mit der Steuereinheit kommunizieren.

    Der Packet Parser verwendet eine proprietäre Skriptsprache, die speziell für das TapHome-System entwickelt wurde. Diese Sprache wird zur Steuerung und Verwaltung der angeschlossenen Geräte und ihrer Kommunikation mit dem Controller verwendet. Klicken Sie hier für weitere Informationen über die TapHome-Skriptsprache

    Hierarchie

    Das TapHome-System verwendet eine hierarchische Struktur, um angeschlossene Geräte zu organisieren. In dieser Struktur fungiert ein Modul als übergeordnetes Gerät und kann mit seinen untergeordneten Geräten kommunizieren und diese steuern.

    Modul

    Eine Schnittstelle kann ein oder mehrere Module enthalten, die in den meisten Fällen die Kommunikation mit dem gesamten physikalischen Gerät abdecken. Was die Konfiguration betrifft, so definiert ein Modul:

    • Die IP-Adresse oder der Name des mDNS-Geräts
    • Kommunikationsanschluss
    • Sichere Verbindung: Siehe Abschnitt Authentifizierung in Service-Einstellungen des Moduls
    • SSL-Zertifikatsfehler ignorieren

    Gerät

    Stellt eine bestimmte Steuerung oder einen Sensor im TapHome-System dar. Es muss immer Teil eines Moduls für Alleinerziehende sein.

    Unterstützte Geräte:

    • Digitaler Ausgang
    • Analogausgang
    • Thermostat
    • Mehrfachschalter
    • Temperatursensor
    • Variable
    • Taster
    • Stromzähler
    • Status Eingang
    • Rollläden, Markisen, Mischventile
    • RGB Licht
    • Abstimmbares weißes Licht

    Beispiel: Shelly Plug S
    Das Modul enthält IP-Adressinformationen und verfügt über Skripte zum Auslesen von Status und Einstellungen sowie zur Durchführung von Serviceaktionen. Es umfasst 2 Geräte: einen digitalen Ausgang (Relais) und einen Zähler, der den Stromverbrauch der angeschlossenen Geräte misst.

    Skripte zum Lesen und Schreiben

    Der TapHome-Controller und die angeschlossenen Geräte können über HTTP- oder HTTPS-GET/POST-Anfragen kommunizieren. Die Antworten auf diese Anfragen können mit einer Reihe von speziellen Funktionen analysiert werden. So kann es beispielsweise eine Funktion geben, die speziell für das Parsen von XML-Antworten konzipiert ist, eine andere Funktion für das Parsen von JSON-Antworten und eine weitere Funktion für das Parsen von Byte-Array-Antworten. Diese Funktionen erleichtern die Interpretation und Nutzung der in den Antworten erhaltenen Informationen und ermöglichen eine effizientere und effektivere Kommunikation mit dem Controller und den angeschlossenen Geräten.

    TapHome definiert eine Reihe von Attributen, die in die Skriptsprache aufgenommen werden können:

    • Initialisierungsskript: wird ausgeführt, wenn das Gerät gestartet wird (z. B. nach einem Neustart des Controllers)
    • Skript lesen: Werte von globalen Variablen setzen oder Fehlerzustände lesen
    • Skript zum Lesen von Werten:** Skript zum Lesen eines bestimmten Wertes (Variable) von einem angeschlossenen Gerät (z. B. eingestellte Temperatur an einem Thermostat oder gemessene Temperatur an einem Thermostat)
    • Skript Wert schreiben: einen Wert in ein angeschlossenes Gerät schreiben

    Definieren von Fehlerbedingungen aus Skripten

    Eigenschaften und Aktionen von Dienstattributen

    Skripte und Hilfsvariablen auf dem Modul

    Skripte und Hilfsvariablen auf dem Gerät

    Weitere Informationen finden Sie unter Modbus-Dokumentation

    Unterstützte Protokolle

    • HTTP

    • TCP

    • UDP

    • FTP

    • MQTT

    HTTP

    SENDHTTPREQUEST

    Sendet eine HTTP-Anfrage mit den angegebenen Parametern, wartet auf eine Antwort und gibt die Antwort als JSON-String mit Werten wie Inhalt, Kopfzeilen und HTTP-Ergebniscode zurück. Die Funktion wird nur in Packet-Parser-Skripten mit HTTP-Protokoll unterstützt.

    SENDHTTPREQUEST( path, method, body, header1, header2… )
    SENDHTTPREQUEST( HttpRequest )

    Examples:

    SENDHTTPREQUEST("/getValue")		Result is:
    {
      "Headers": [
        {
          "Key": "Content-Type", “Value": [“application/json"]
        },
        {
          "Key": "Content-Length", “Value": ["1007"]
        },
      ],
      "Content": "{\"value\":31}”,
      "ReasonPhrase": "OK",
      "StatusCode": 200,
      "IsSuccess": true
    }
    SENDHTTPREQUEST("/doSomething", “POST”, “someData”, “header1:value1”, “header2:value2”, “header3:value3”)
    VAR request := HTTPREQUEST(“/path”, “PUT”, “someData”);
    request.Headers := { “name1: value1”, “name2: value2” … };
    request.Method := “POST”;
    VAR response := SENDHTTPREQUEST(request);
     
    IF response.IsSuccess
    	VAR content := response.Content;
    	…
    END

    TCP, UDP

    SENDDATA

    Sendet die angegebenen Daten (String oder Collection UInt8) über das TCP- oder UDP-Protokoll. Handelt es sich bei den Daten um ein String-Objekt, werden sie implizit unter Verwendung der Kodierung iso-8859-1 in Bytes umgewandelt. Die Funktion wird nur in Packet Parser-Skripten mit TCP- oder UDP-Protokoll unterstützt. Die empfangenen Bytes können in einem Listener-Skript verarbeitet werden.

    SENDDATA( string/Collection<UInt8> )

    Examples:

    SENDATA(BYTECOLLECTION(“0a dd ef a2”)
    SENDATA(“{\”value\”:212}”)

    COMPLETESERVICEATTRIBUTE

    Diese Funktion wird in den Listener-Skripten des TCP/UDP-Paketparsers verwendet, um den Dienstattributwert über die Beendigung der Anfrage zu informieren.
    Sie erstellen beispielsweise eine Abfrage in einem Skript für Serviceattribute mit der Funktion SENDDATA und beenden das Lesen des Serviceattributs, wenn das Listener-Skript die Daten erhält.

    COMPLETESERVICEATTRIBUTE( attributeName, value, error )

    Examples:

    COMPLETESERVICEATTRIBUTE(“Uptime”, “2d:21h:43m”)
    COMPLETESERVICEATTRIBUTE(“Status”, “”, “Device is offline”)

    COMPLETESERVICEACTION

    Diese Funktion wird in Listener-Skripten im Packet Parser mit TCP/UDP-Protokoll verwendet, um den Abschluss einer Service-Action-Anforderung zu melden.
    Sie erstellen z. B. eine Anforderung in einem Service Action Script mit der Funktion SENDDATA und schließen die Service Action ab, nachdem das Listener Script die Daten erhalten hat.

    COMPLETESERVICEACTION( actionName, result )

    Examples:

    COMPLETESERVICEACTION(“Reboot”, “Rebooted successfully”)
    COMPLETESERVICEACTION(“Enable cloud”, “Device is offline”)

    FTP

    FTPDOWNLOAD

    Gibt die Dateidaten (als Collection UInt8) vom FTP-Server zurück. Die Funktion wird nur in Packet-Parser-Skripten mit FTP-Protokoll unterstützt.

    FTPDOWNLOAD( pathToFile )

    Examples:

    FTPDOWNLOAD(“/path/to/file”) 		(Result is Collection<UInt8>)

    FTPUPLOAD

    Lädt die Daten (Collection UInt8 oder String) in eine Datei auf den FTP-Server hoch.

    FTPUPLOAD( pathToFile, data, mode )

    Examples:

    FTPUPLOAD(“/path/to/file”, “some data”, “write”)
    FTPUPLOAD(“/path/to/file”, BYTECOLLECTION(“a7 ff e2”), “append”)

    MQTT

    Zusätzlich zu den oben genannten Kommunikationsoptionen ermöglicht TapHome auch die Kommunikation mit Geräten von Drittanbietern über das MQTT-Protokoll. MQTT (Message Queuing Telemetry Transport) ist ein leichtgewichtiges Protokoll zum Veröffentlichen und Abonnieren von Nachrichten, das für die effiziente und zuverlässige Kommunikation zwischen Geräten im Machine-to-Machine- (M2M) und Internet of Things- (IoT) Kontext entwickelt wurde.

    Um die Kommunikation mit Geräten von Drittanbietern über MQTT zu ermöglichen, muss ein separates Modul in Einstellungen → Hardware → Neues Interface hinzufügen → MQTT Broker erstellt werden. Dieses Modul fungiert als Vermittler zwischen Geräten von Drittanbietern und dem Controller und ermöglicht ihnen die Kommunikation über das MQTT-Protokoll. Das MQTT-Broker-Modul kann autonom auf der Steuereinheit betrieben werden und ermöglicht eine unabhängige und effiziente Kommunikation zwischen Drittgeräten und dem TapHome-System.

    MQTTPUBLISH

    Die Funktion wird auf PacketParser-Geräten mit dem MQTT-Protokoll verwendet, um eine Nachricht an den MQTT-Broker zu veröffentlichen.

    MQTTPUBLISH( topic, message )

    Examples:

    MQTTPUBLISH(“shellies/deviceid/relay/0/command”, “off”)