Suche
MENU
  • Ausdrücke / Skriptsprache
  • Benutzer und Berechtigungen
  • Backup, Backup wiederherstellen, auf Werkseinstellungen zurücksetzen
  • Konfiguration von Packet parser

    EinstellungenHardware Neues Interface hinzufügen und dann Packet parser.

    Es gibt zwei Möglichkeiten, Geräte hinzuzufügen. Zuerst müssen Sie das Modul und dann die Geräte manuell hinzufügen. Zweitens müssen Sie den gesamten Satz aus der Vorlage hinzufügen. Um Geräte aus der Vorlage hinzuzufügen, folgen Sie bitte Kapitel Konfiguration von Packet parser Verwendung vordefinierter Vorlagen .

    Modul hinzufügen

    Das Modul repräsentiert das physische Gerät mit IP-Adresse oder Hostname, Zugriffsdefinition und anderen allgemeinen Parametern. Nach dem Hinzufügen und Konfigurieren des Moduls können Geräte hinzugefügt werden, die auf einem physischen Gerät implementiert sind. Klicken Sie auf MODUL HINZUFÜGEN und legen Sie zuerst den Hostnamen oder die IP-Adresse fest:

    Klicken Sie auf OK und geben Sie den Stammpfad ein. Der Root-Pfad ist ein gemeinsamer Pfad, der von allen Geräten im Modul verwendet wird. Der einfachste Stammpfad ist ein Schrägstrich: '/'

    Klicken Sie auf OK, um zu den Moduldiensteinstellungen zu gelangen.

    Moduldiensteinstellungen

    Die Einstellungen für den Modulservice sind in eine Gruppe von Eigenschaften unterteilt.

    Gerätevariablen

    Die Liste der unterstützten Variablen für jedes Gerät wird in der Gruppe Gerätevariablen angezeigt. Der auf der rechten Seite angezeigte Kurzname für Variablen wird zum Parsen der Gerätewertdefinition, der Ausgabeformatierungsdefinitionen oder zur Berechnung verwendet.

    Authentifizierung

    Falls eine Authentifizierung erforderlich ist, geben Sie den Benutzer und das Kennwort ein und wählen Sie den Authentifizierungstyp aus. Unterstützt werden jetzt Basis- und Digest-Authentifizierungstypen.

    Netzwerkeinstellungen

    Wenn Sie beim Hinzufügen des Moduls die richtige IP-Adresse oder den richtigen Hostnamen und den richtigen Stammpfad eingeben, sind diese Parameter jetzt korrekt eingestellt. Einige Packet parsers erfordern einen anderen als den Standard-80-Port. In diesem Fall ändern Sie den Port in diesen Einstellungen. Falls nach jedem Befehl die Verbindung geschlossen werden soll, lassen Sie die Parameter 'Verbunden bleiben' ausgeschaltet. Wenn es möglich ist, die Verbindung zwischen Befehlen aufrechtzuerhalten, setzen Sie diesen Parameter auf on. Wählen Sie den Verbindungstyp zwischen http und https (gesichert).

    Definitionen zum Lesen

    Das Modul kann Leseparameter direkt definieren, um Gerätewerte zu füllen.

    Mit 'Internes Abfrageintervall' wird festgelegt, wie oft die Gerätewerte abgefragt werden sollen. Wenn Sie ein Gerät in einem lokalen Netzwerk verwenden, wird empfohlen, 2500 ms zu verwenden. Das kürzeste Intervall beträgt 500 ms. Falls ein Gerät aus dem Internet verwendet wird - zum Beispiel meteorologische Informationen wie die Lufttemperatur für eine Stadt -, wird empfohlen, ein langes Abfrageintervall (mindestens Minuten oder Stunde) zu verwenden, um vom Seitenadministrator aufgrund von Spam-Richtlinien nicht deaktiviert zu werden.

    Die HTTP-Anforderung besteht aus einer URL-Adresse, speziellen Headern und, falls es sich um eine POST-Anforderung handelt, auch aus dem Anforderungstext. Die URL-Adresse setzt sich aus dem Hostnamen oder der IP-Adresse des Verbindungstyps (http / https), dem Port, dem Stammpfad und dem relativen Pfad zusammen. Dies ist in diesem Fall in der Eigenschaft "Pfad lesen" definiert. Beispiel für eine http-Anforderung, wenn der Stammpfad nur / ist, der Port 1400 ist und der relative Pfad read_switch lautet:

    http://192.168.0.1:1400/read_switch

    Wenn 'http-Methode lesen' nicht definiert ist, wird die GET-Methode verwendet.

    Es ist möglich, direkt im Modul Parsing-Werte aus der empfangenen Antwort auf Gerätevariablen oder vordefinierte virtuelle Variablen zu definieren.

    Für die Verwendung von Variablen in den Antwortanalyse-Definitionen muss der Variablenname mit den Zeichen $ eingeschlossen werden. Zum Beispiel sollte der Variablenname Vl1 als $ Vl1 $ verwendet werden.

    Zum Beispiel, wenn wir eine Antwort im JSON-Format wie folgt haben:

    {

    "name":null,

    "ison":false,

    }

    und wir wollen die Antwort analysieren, um zu wechseln. Der Antwortwert ist boolescher Wert true / false nach dem Namen "ison". Wir müssen die virtuelle Variable vom booleschen Typ definieren (in diesem Fall ist es Vl2 - die virtuellen Variablen werden später erklärt) und die Antwort auf diese Variable zuerst erhalten, indem wir den Parameter 'Answer parse' wie folgt definieren:

    Text "ison": $ Vl2 $ bedeutet, dass wir genau die Zeichenfolge "ison" finden möchten: Wenn wir sie gefunden haben, werden die nächsten Zeichen als boolesche Variable interpretiert (wahre / falsche Werte sind möglich). Wir werden den Wert jetzt in der virtuellen Variablen haben - aber wir möchten ihn in der Gerätevariablen haben -, daher ist es im Gerät erforderlich, eine Leseberechnung zu definieren, die nur aus der Variablen Vl2 besteht. Der Variablentyp wird dann automatisch auf den Gerätevariablentyp übertragen - in diesem Fall 0/1. Weitere Informationen finden Sie im Kapitel Analysedefinitionen.

    In den Eigenschaften 'ReadPath' und 'Body for Reading' kann der Verweis auf eine Variable verwendet werden - entweder eine Gerätevariable oder eine virtuelle Variable. Die referenzierte Variable befindet sich im Definitionstext und wird am Anfang und am Ende wieder mit $ eingeschlossen. Abgesehen davon ist es auch möglich, spezielle Formatdefinitionen nach dem Variablennamen zu verwenden. Weitere Informationen finden Sie im Kapitel Formatdefinitionen.

    Nach der Definition von mindestens 'Lesepfad' ist es möglich, die Anforderungszusammensetzung zu testen, an das Gerät zu senden, eine Antwort zu erhalten und gegebenenfalls Parsing-Werte zu definieren und die Berechnungen durchzuführen. Klicken Sie auf 'Testanfrage' und erhalten Sie beispielsweise folgende Antwort:

    Es gibt Informationen zu zusammengesetzten ANFRAGEN als die Antwort nach ANTWORT. Wenn einige Variablen analysiert wurden, werden sie nach VARIABLEN angezeigt. Wenn FORMELN definiert sind, wird ihre Berechnung nach FORMELN angezeigt.

    Natürlich ist es möglich, dass bei der URL-Zusammensetzung ein Fehler vorliegt. In diesem Fall wird die Antwort des Webservers mit dem Fehler (404) normalerweise nicht gefunden:

    Wenn die IP-Adresse oder der Hostname falsch eingestellt ist, sodass das Gerät überhaupt nicht erreichbar ist, wird die Anforderung nach dem Timeout beendet und die Testantwort lautet wie folgt:

    Definitionen zum Schreiben

    Wie beim Lesen von Definitionen besteht auch die URL zum Schreiben aus zuvor definierten Teilen, und der relative Pfad wird aus der Eigenschaft 'Schreibpfad' übernommen. Auch hier ist es möglich, benutzerdefinierte Header und Anforderungshauptteile zu definieren. Auch die http-Schreibmethode kann hier eingestellt werden. Mithilfe einer Testanforderung können die tatsächlichen Gerätewerte an das Gerät gesendet und die Antwort überprüft werden.

    Variablen können in den Eigenschaften 'Schreibpfad' und 'Text zum Schreiben' referenziert werden.

    Die Eigenschaft 'Body for Writing' wird bei der POST-http-Methode verwendet.

    Modul-Basisseite

    Zurück von den Moduldiensteinstellungen - Speichern Sie die Eigenschaften, wenn sie geändert werden. Klicken Sie auf das definierte Modul, um die Modulseite zu öffnen:

    Grundlegende Eigenschaften werden am Anfang der Seite angezeigt, sodass Sie sie hier direkt ändern können. Auf der Modulseite können Sie zu den Moduldiensteinstellungen navigieren. Auf dieser Seite können virtuelle Variablen hinzugefügt werden. Auf dieser Seite können Geräte zum Modul hinzugefügt werden.

    Virtuelle Variablen

    Virtuelle Variablen werden verwendet, um spezielle Werte, die in Zeichenfolgen, Booleschen Werten oder Zeichen definiert sind, in TapHome-Gerätewerte umzuwandeln oder Berechnungen durchzuführen. Um eine virtuelle Variable hinzuzufügen, klicken Sie auf "Virtuelle Variable hinzufügen".

    Wählen Sie den Variablentyp aus, den Sie hinzufügen möchten.

    Variablentyp Nummer

    Variablentyp Nummer wird verwendet, um Variablen zu definieren, in denen numerische Werte gespeichert werden - entweder ganze Zahlen oder Zahlen mit Dezimalstellen.

    Variablentyp String

    Der Variablentyp String wird zum Speichern von Text ohne Leerzeichen verwendet. Wenn beispielsweise die erwarteten Gerätewerte auf Anfrage ein- / ausgeschaltet sind, TapHome jedoch als 0/1 definiert ist, muss die virtuelle Variable vom Typ String berechnet und dann der Wert von dieser Variablen gesendet werden. Für die Berechnung der zu stringierenden Zahl kann die Formel SWITCH verwendet werden:

    SWITCH(St2, 0, "off", 1, "on","off")

    Zeichenfolgen in der Berechnungsdefinition müssen in Apostrophe eingeschlossen werden.

    Dadurch wird die Zeichenfolge gemäß dem Wert der Gerätevariablen St2 ausgegeben. Die Ausgabe ist für Wert 0 'aus' und für Wert 1 'ein'. Der Standardwert ist 'aus'. Weitere Informationen finden Sie unter Ausdrücke

    Variablentyp Zeichen

    Variablentyp Zeichen können zur Ausgabe von Binärwerten verwendet werden. Wenn eine solche Variable in der Ausgabeformatreferenz verwendet wird, werden ihre Werte direkt in die Zeichenfolge eingefügt. Nehmen wir zum Beispiel an, wir möchten den binär codierten Wert des Dimmers auf zwei Bytes als 0..1000 ausgeben, was 0..100% entspricht. In TapHome ist der Dimmerwert als 0,000 bis 1.000 codiert, was 0..100% darstellt. Wir werden zwei virtuelle Variablen vom Zeichentyp Vl1 und Vl2 definieren. Die Ausgabe-Binärzeichenfolge sollte beispielsweise mit sting ST beginnen und mit CR LF-Zeichen enden (hexadezimal 0x0D 0x0A). Nach dem Start sollte das Zeichen die Referenznummer 0x05 und die Geräteidentifikation 0xFE 0x1C sein, gefolgt von den beiden Bytes, die den Dimmerwert darstellen. Die Ausgabezeichenfolge sollte wie folgt definiert werden:

    ST \ x05 \ xFE \ x1C $ Vl1 $$ Vl2 $ \ x0D \ x0A

    Nach der Definition der Ausgabezeichenfolge werden zwei Berechnungen aktiviert - für Vl1 und Vl2. Diese Berechnungen sollten wie folgt definiert werden (Gerätewert wird in der Gerätevariablen Dm3 gespeichert):

    Berechnung für Vl1: ((Dm3 1000,0) > > 8) Berechnung für Vl2: ((Dm3 1000.0) & 0xFF)

    Bei der ersten Berechnung wird die Bitverschiebung für 8 Bits nach rechts verwendet. Daher werden nur die Bits 8..15 von zwei Byte in der Variablen Vl1 gespeichert. Die zweite Berechnung verwendet Binär und Operation, um nur 0..7 Bits zur Variablen Vl2 zu bringen. Weitere Informationen finden Sie unter Ausdrücke

    Ordnungsbytes werden in diesem Fall als Big Endian bezeichnet. Falls für die Codierung ein kleiner Endian verwendet wird, ändern Sie bitte die Reihenfolge der Variablen in der Ausgabezeichenfolge.

    Bei einer Big-Endian-Reihenfolge wird das höchstwertige Byte zuerst und das niedrigstwertige Byte zuletzt platziert, während bei einer Little-Endian-Reihenfolge das Gegenteil der Fall ist. Betrachten Sie beispielsweise die vorzeichenlose Hexadezimalzahl 0x1234, für deren Darstellung mindestens zwei Bytes erforderlich sind. In einer Big-Endian-Reihenfolge wären sie 12 34, während in einer Little-Endian-Reihenfolge die Bytes 34 12 angeordnet wären.

    Nach dem Hinzufügen virtueller Variablen wird die Liste angezeigt:

    Wenn Sie auf eine virtuelle Variable klicken, wird das Dialogfeld Löschen angezeigt:

    Gerätediensteinstellungen.

    Geräte haben ähnliche Parameter wie Module, die zum Lesen und Schreiben von Definitionen verwendet werden können. Wenn keine Gerätedefinition zum Lesen und Schreiben definiert ist, werden Moduldefinitionen verwendet. Dies ist sehr nützlich, wenn die Anforderung aus Werten vieler Geräte bestehen soll und im Modul ausgefüllt werden muss.

    Lese- und Schreibberechnungen werden immer im Gerät definiert. Einzelheiten zu Berechnungen finden Sie unter Ausdrücke.

    Berechnung lesen

    Diese Berechnungsausgabe ist immer die Gerätevariable. Wenn das Gerät nur eine verwendbare Gerätevariable hat - wie Switch nur den Switch-Status hat, gibt es den Namen der Variablen, die in der Definition nicht erneut verwendet wird, und nur den Eigenschaftsnamen 'Berechnung berechnen'. Bei Geräten mit mehr Ausgangsvariablen - wie Termostat mit gewünschter Temperatur und auch realer Temperatur - wird der Variablenname nach dem Lesen der Berechnung verwendet:

    Berechnungen schreiben

    Schreibberechnungen werden immer für die Variablen definiert, die entweder in den Eigenschaften 'Schreibpfad' oder 'Text zum Schreiben' verwendet werden. Beim Bearbeiten eines neuen Werts einer dieser Eigenschaften wird die Variablenberechnung automatisch hinzugefügt:

    Definitionen analysieren.

    In den Eigenschaften von Analysedefinitionen möchten wir Text aus der Antwort lesen und in variable Werte konvertieren. Es muss definiert werden, wo die Variablenanalyse beginnen soll. Normalerweise reicht es aus, vor dem Variablendefinitionstext zu schreiben, der dem Variablentext vorausgeht. Wir erklären dies bereits anhand eines einfachen Beispiels - JSON-Antwort:

    {

    "name":null,

    "ison":false,

    }

    Wenn wir den Wert false nach dem Text "ison" analysieren möchten, sollte die Analyse-Definition folgendermaßen definiert werden:

    "ison": $ Vl2 $

    In diesem Fall sollte die Variable Vl2 eine virtuelle Variable vom Typ Boolean sein, um die Werte true / false korrekt zu akzeptieren.

    Was tun, wenn wir eine kompliziertere Antwort haben - wo der Text „ison“: an vielen Stellen definiert ist, aber vor ihm Namensdefinitionen stehen, die genau definieren können, wo die Definition beginnt.

    Im folgenden Beispiel werden in der JSON-Antwort weitere Parameter definiert, um zu zeigen, wie der richtige Wert extrahiert wird.

    {

    "name":relay_0,

    "timer":null,

    "ison":false,

    }

    {

    "name":relay_1,

    "timer":null,

    "ison":false,

    }

    Wir möchten zum Beispiel den Relay_1-Wert analysieren - also möchten wir an der Stelle mit dem Lesen beginnen, an der der Name als Relay_1 definiert ist. Nach dieser Definition werden jedoch weitere Parameter definiert, deren Wert wir nicht genau kennen. Daher möchten wir diesen Text nur bis zur Definition „ison“ überspringen. Die Analysedefinition sollte folgendermaßen definiert werden:

    "Name": Relais_1 ... "ison": $ Vl2 $

    Es gibt zuerst den Text, der den Namen des Relais_1 genau definiert, und danach drei Punkte, gefolgt von demselben Text wie zuvor, der dem Beginn des variablen Textes und dann der Variablenreferenz vorausging.

    Die drei Punkte '...' in Analysedefinitionen können zwischen zwei Textdefinitionen verwendet werden, um den Text zwischen zu überspringen.

    Der analysierte Wert wird in den Typ der referenzierten Variablen konvertiert.

    TapHome-Gerätevariablen sind immer numerische Variablen.

    Der Schaltwert kann 0/1 sein.

    Mehrwert-Schaltwerte beginnen bei 0 und werden um jeden nächsten definierten Wert um 1 erhöht.

    Analoge Werte werden als Prozent von 0 bis 1 mit so vielen Dezimalstellen wie nötig definiert. Zum Beispiel bedeutet 29% 0,29. Die Sensorwerte sind in metrischen Einheiten angegeben. Temperaturen in Grad C. Windgeschwindigkeit in km / h. Niederschlag in mm / m2.

    Formatdefinitionen

    Der Variablenname in den Ausgabedefinitionen muss in $ -Zeichen eingeschlossen werden. Nach dem Variablennamen und vor dem Ende kann $ Zeichen als Formatdefinition geschrieben werden.

    $ Vl1, xxx: Fppp $

    xxx ... Wird immer nach einem Komma definiert. Definiert die Breite der Zeichenfolge, die in die Ergebniszeichenfolge eingefügt wird. Wenn xxx positiv ist, ist die Zeichenfolgendarstellung der Variablen rechtsbündig. Wenn die Zeichenfolgendarstellung der Variablen jedoch länger als xxx Zeichen ist, wird die bevorzugte Feldbreite ignoriert und die gesamte Zeichenfolge in die Ergebniszeichenfolge eingefügt. Um Zeichenfolgen in einem Feld nach links auszurichten, müssen Sie der Feldbreite ein Vorzeichen geben ein negatives Vorzeichen.

    F ... Formatbezeichnerzeichen - wird immer nach einem Doppelpunkt definiert.

    ppp ... optionale Nummer - Präzisionsspezifizierer - für Sonderformatzeichen. Die Bedeutung richtet sich nach dem verwendeten Sonderzeichen.

    Der Festformat-Formatbezeichner ("F")

    Der Festkomma-Formatbezeichner ("F") konvertiert eine Zahl in eine Zeichenfolge der Form "-ddd.ddd ...", wobei jedes "d" eine Ziffer (0-9) angibt. Die Zeichenfolge beginnt mit einem Minuszeichen, wenn die Zahl negativ ist.

    Der Präzisionsspezifizierer gibt die gewünschte Anzahl von Dezimalstellen an. Wenn der Präzisionsspezifizierer weggelassen wird, werden alle verwendeten Dezimalstellen in die Zeichenfolge geschrieben.

    Formatierungsbeispiele:

    1234.567 (":F") -> 1234.57

    1234 (":F1") -> 1234.0

    -1234.56 (":F4") -> -1234.5600

    Der Exponential ("E") Formatbezeichner

    Der Exponentialformatbezeichner ("E") konvertiert eine Zahl in eine Zeichenfolge der Form "-d.ddd ... E + ddd" oder "-d.ddd ... e + ddd", wobei jedes "d" angibt eine Ziffer (0-9). Die Zeichenfolge beginnt mit einem Minuszeichen, wenn die Zahl negativ ist. Vor dem Dezimalpunkt steht immer genau eine Ziffer.

    Der Präzisionsspezifizierer gibt die gewünschte Anzahl von Stellen nach dem Dezimalpunkt an. Wenn der Präzisionsspezifizierer weggelassen wird, wird ein Standardwert von sechs Stellen nach dem Dezimalpunkt verwendet.

    Der Fall des Formatbezeichners gibt an, ob dem Exponenten ein "E" oder ein "e" vorangestellt werden soll. Der Exponent besteht immer aus einem Plus- oder Minuszeichen und mindestens drei Ziffern. Der Exponent wird bei Bedarf mit Nullen aufgefüllt, um dieses Minimum zu erreichen.

    Formatierungsbeispiele:

    1052.0329112756 (":E") -> 1.052033E+003

    1052.0329112756 (":e2") -> -1.05e+003

    Formatierungsbeispiel einschließlich Breitendefinition:

    Vl1 = 1794.68235

    $Vl1,12:E3$ $Vl1,12:F4$ => ' 1.795E+003 1794.6824'

    $Vl1,-12:E3$ $Vl1,-12:F4$ => '1.795E+003 1794.6824 '

    Der hexadezimale ("X") Formatbezeichner

    Der hexadezimale Formatbezeichner ("X") konvertiert eine Zahl in eine Folge von hexadezimalen Ziffern. Der Fall des Formatbezeichners gibt an, ob Groß- oder Kleinbuchstaben für hexadezimale Ziffern verwendet werden sollen, die größer als 9 sind. Verwenden Sie beispielsweise "X", um "ABCDEF" zu erzeugen, und "x", um "abcdef" zu erzeugen. Dieses Format wird nur für numerische Typen unterstützt und die Zahl wird als ganze Zahl ohne Rundung verwendet.

    Der Präzisionsspezifizierer gibt die minimale Anzahl von Stellen an, die in der resultierenden Zeichenfolge gewünscht werden. Bei Bedarf wird die Zahl links mit Nullen aufgefüllt, um die vom Präzisionsspezifizierer angegebene Anzahl von Ziffern zu erhalten.

    Formatierungsbeispiele:

    3567.7 (“:X4:) → 0DEF