Chercher
MENU
  • Applications TapHome
  • Expressions
  • Architecture du système par type de projet
  • Utilisateurs et autorisations
  • Configuration de Packet parser

    Dans ParamètresMatériel sélectionnez Ajouter une nouvelle interface et choisissez Packet parser.

    Il existe deux possibilités pour ajouter des appareils. La première consiste à ajouter manuellement le module, puis les périphériques. La deuxième consiste à ajouter un ensemble complet à partir du modèle. Pour ajouter des périphériques à partir d'un modèle, veuillez suivre le chapitre [ Configuration de Packet parser aide de modèles prédéfinis ] (https://taphome.com/support/454000658).

    Ajouter un module

    Le module représente le périphérique physique avec l'adresse IP ou le nom d'hôte, la définition d'accès et d'autres paramètres communs. Après avoir ajouté et configuré le module, il est possible d'ajouter des périphériques, qui sont implémentés sur un périphérique physique. Cliquez sur AJOUTER MODULE et définissez d'abord le nom d'hôte ou l'adresse IP:

    Cliquez sur OK et entrez le chemin racine. Le chemin racine est le chemin commun utilisé par tous les périphériques du module. Le chemin racine le plus simple est un caractère barre oblique: '/'

    Cliquez sur OK pour accéder aux paramètres de service du module.

    Paramètres de service du module

    Les paramètres de service du module sont divisés en groupe de propriétés.

    Variables de périphérique

    La liste des variables prises en charge pour chaque périphérique s'affiche dans le groupe Variables de périphérique. Le nom abrégé des variables affiché dans le côté droit est utilisé dans l'analyse de la définition de la valeur du périphérique, des définitions de formatage de sortie ou dans le calcul.

    Authentification

    Dans le cas où une authentification est requise, remplissez l'utilisateur et le mot de passe et sélectionnez le type d'authentification. Les types d'authentification de base et de résumé sont désormais pris en charge.

    Paramètres réseau

    Si vous remplissez l'adresse IP ou le nom d'hôte et le chemin racine corrects lors de l'ajout de module, ces paramètres sont désormais correctement définis. Certaines API http nécessitent un port 80 différent du port par défaut. Dans ce cas, modifiez Port dans ces paramètres. Au cas où après chaque commande, la connexion devrait être fermée, laissez les paramètres «Rester connecté» à l'état désactivé. Lorsqu'il est possible de maintenir la connexion active entre les commandes, activez ce paramètre. Choisissez le type de connexion entre http et https (sécurisé).

    Définitions pour la lecture

    Le module peut définir directement les paramètres de lecture pour remplir les valeurs des appareils.

    «Intervalle d'interrogation interne» est utilisé pour définir la fréquence d'interrogation des valeurs de périphérique. Dans le cas où vous utilisez un appareil dans un réseau local, il est suggéré d'utiliser 2500 ms. L'intervalle le plus court est de 500 ms. Dans le cas où un appareil d'Internet est utilisé - par exemple des informations météorologiques comme la température de l'air pour une ville - il est suggéré d'utiliser un long intervalle d'interrogation (au moins minutes ou heure) pour ne pas être désactivé par l'administrateur de la page en raison de la politique de spam.

    La demande HTTP consiste en une adresse URL, des en-têtes spéciaux et dans le cas où il s'agit d'une demande POST également du corps de la demande. L'adresse URL est composée du nom d'hôte ou de l'adresse IP du type de connexion (http / https), du port, du chemin racine et du chemin relatif - ce cas défini dans la propriété Read path. Exemple de requête http si le chemin racine est juste /, le port est 1400 et le chemin relatif est read_switch:

    http://192.168.0.1:1400/read_switch

    Si la «méthode de lecture http» n'est pas définie, elle est utilisée comme méthode GET.

    Il est possible de définir directement dans le module des valeurs d'analyse à partir de la réponse reçue à des variables d'appareil ou à des variables virtuelles prédéfinies.

    L'utilisation de variable à l'intérieur des définitions d'analyse de réponse nécessite de placer le nom de variable avec des caractères $. Par exemple, le nom de variable Vl1 doit être utilisé comme $ Vl1 $.

    Par exemple, si nous avons une réponse au format JSON comme ceci:

    {

    "name":null,

    "ison":false,

    }

    et nous voulons analyser la réponse pour changer. La valeur de la réponse est booléenne true / false après le nom «ison». Nous devons définir une variable virtuelle de type booléen (dans ce cas, c'est Vl2 - les variables virtuelles seront expliquées plus tard) et recevoir d'abord la réponse à cette variable en définissant le paramètre 'Answer parse' comme ceci:

    Texte "ison": $ Vl2 $ signifie que nous voulons trouver exactement la chaîne "ison": et quand nous l'avons trouvé, nous interpréterons les caractères suivants comme une variable booléenne (des valeurs vraies / fausses sont possibles). Nous aurons maintenant la valeur en variable virtuelle - mais nous voulons l'avoir en variable d'appareil - donc dans l'appareil il est nécessaire de définir le calcul de lecture qui consistera uniquement à partir de la variable Vl2. Le type de variable est ensuite automatiquement transféré au type de variable d'appareil - dans ce cas, 0/1. Pour plus d'informations, reportez-vous au chapitre Définitions d'analyse.

    Dans les propriétés 'ReadPath' et 'Body for reading', il est possible d'utiliser une référence à une variable - variable d'appareil ou variable virtuelle. La variable référencée est à nouveau dans le texte de définition, entourée de $ au début et à la fin. Sauf cela, il est également possible d'utiliser des définitions de format spéciales après le nom de la variable. Veuillez vous référer au chapitre Définitions de format.

    Après avoir défini au moins le «chemin de lecture», il est possible de tester la composition de la demande, d'envoyer au périphérique, de recevoir la réponse et, si elle est également définie, d'analyser les valeurs et de faire les calculs. Cliquez sur 'Test request' et obtenez par exemple la réponse suivante:

    Il y a des informations sur la DEMANDE composée, que la réponse après RÉPONSE, s'il y a des variables analysées, elles sont affichées après VARIABLES, et s'il y a des FORMULES définies, son calcul est affiché après FORMULAS.

    Bien sûr, il est possible qu'il y ait une erreur dans la composition de l'URL - dans ce cas, généralement, la réponse du serveur Web avec l'erreur (404) est introuvable:

    Si l'adresse IP ou le nom d'hôte est incorrectement défini de sorte que le périphérique n'est pas accessible du tout, la demande se termine après le délai d'expiration et la réponse de test est la suivante:

    Définitions pour l'écriture

    Comme dans la lecture des définitions, l'URL pour l'écriture est composée de parties définies précédemment et le chemin relatif est emprunté à la propriété 'Write path'. Là encore, il est possible de définir des en-têtes personnalisés et un corps de demande. La méthode d'écriture http peut également être définie ici. Il est possible d'utiliser la demande de test pour envoyer les valeurs réelles du périphérique au périphérique et vérifier la réponse.

    Les variables peuvent être référencées dans les propriétés «Chemin d'écriture» et «Corps pour l'écriture».

    La propriété 'Body for writing' est utilisée dans le cas de la méthode POST http.

    Page de base du module

    Revenez des paramètres de service du module - enregistrez les propriétés si elles sont modifiées. Cliquez sur le module défini pour ouvrir la page du module:

    Les propriétés de base sont affichées au début de la page - il est donc possible de la modifier directement ici. Depuis la page du module, vous pouvez accéder aux paramètres de service du module. Dans cette page, il est possible d'ajouter des variables virtuelles. À partir de cette page, il est possible d'ajouter des appareils au module.

    Variables virtuelles

    Les variables virtuelles sont utilisées pour transformer des valeurs spéciales définies en chaîne, booléenne ou caractère en valeurs d'appareil TapHome ou pour effectuer des calculs. Pour ajouter une variable virtuelle, cliquez sur «Ajouter une variable virtuelle»

    Sélectionnez le type de variable que vous souhaitez ajouter.

    Type de variable Nombre

    Le type de variable Number est utilisé pour définir une variable qui stocke des valeurs numériques - des nombres entiers ou des nombres avec des décimales.

    Type de variable Chaîne

    La chaîne de type variable est utilisée pour stocker du texte sans espaces blancs. Par exemple, si dans la demande les valeurs de périphérique attendues sont activées / désactivées, mais dans TapHome sont définies comme 0/1, il est nécessaire de calculer la variable virtuelle de type chaîne, puis d'envoyer la valeur à partir de cette variable. Pour le calcul du nombre à enchaîner, la formule SWITCH peut être utilisée:

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

    Les chaînes de la définition de calcul doivent être placées entre apostrophes.

    Cela produira la chaîne en fonction de la valeur de la variable d'appareil St2. La sortie sera désactivée pour la valeur 0 et activée pour la valeur 1. La valeur par défaut est désactivée. Pour plus d'informations, reportez-vous à Expressions

    Type de variable Caractère

    Type de variable Le caractère peut être utilisé pour sortir des valeurs binaires. Lorsqu'une telle variable est utilisée dans la référence du format de sortie, ses valeurs sont directement placées dans la chaîne. Par exemple, supposons que nous voulons sortir la valeur codée binaire du gradateur sur deux octets comme 0..1000 correspondant à 0..100%. Dans TapHome, la valeur du gradateur est codée de 0,000 à 1.000 représentant le 0..100%. Nous définirons deux variables virtuelles de type Caractère Vl1 et Vl2. La chaîne binaire de sortie doit par exemple commencer par sting ST et se terminer par CR LF (hexadécimal 0x0D 0x0A). Après le début, le caractère doit être la référence de commande 0x05 et l'identification du périphérique 0xFE 0x1C suivis des deux octets représentant la valeur du gradateur. La chaîne de sortie doit être définie comme suit:

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

    Après la définition de la chaîne de sortie, deux calculs seront activés - pour Vl1 et Vl2. Ces calculs doivent être définis comme suit (la valeur de l'appareil est stockée dans la variable de l'appareil Dm3):

    Calcul pour Vl1: ((Dm3 1000,0) > > 8) Calcul pour Vl2: ((Dm3 1000.0) & 0xFF)

    Le premier calcul utilise le décalage de bits pour 8 bits vers la droite - donc seuls les bits 8..15 de deux octets sont stockés dans la variable Vl1. Le deuxième calcul utilise binaire et opération pour ne prendre que 0..7 bits à la variable Vl2. Pour plus d'informations, reportez-vous à Expressions

    Les octets de commande dans ce cas sont appelés big endian. Dans le cas où un petit endian est utilisé pour le codage, veuillez changer l'ordre des variables dans la chaîne de sortie.

    Un ordre big-endian place l'octet le plus significatif en premier et l'octet le moins significatif en dernier, tandis qu'un ordre little-endian fait le contraire. Par exemple, considérez le nombre hexadécimal non signé 0x1234, qui nécessite au moins deux octets pour représenter. Dans un ordre big-endian, ils seraient 12 34, tandis que dans un ordre petit-endian, les octets seraient disposés 34 12.

    Après avoir ajouté des variables virtuelles, sa liste s'affiche:

    Lorsque vous cliquez sur une variable virtuelle, la boîte de dialogue Supprimer s'affiche:

    Paramètres de service des appareils.

    Les appareils ont des paramètres similaires à ceux du module qui peuvent être utilisés pour lire et écrire des définitions. Si la définition de périphérique pour la lecture et l'écriture n'est pas définie, les définitions de module sont utilisées. Ceci est très utile si la demande doit être constituée de valeurs provenant de nombreux appareils et doit être complétée dans le module.

    Les calculs de lecture et d'écriture sont toujours définis dans l'appareil. Pour plus de détails sur les calculs, reportez-vous à Expressions.

    Lecture du calcul

    Cette sortie de calcul est toujours la variable d'appareil. Si le périphérique n'a qu'une seule variable de périphérique utilisable - comme Switch n'a que l'état du commutateur, alors il y a le nom de la variable non utilisée à nouveau dans la définition et il n'y a que le nom de la propriété 'Lecture du calcul'. Dans le cas d'appareils qui ont plus de variables de sortie - comme un termostat qui a la température souhaitée et la température réelle, le nom de la variable est utilisé après le calcul de la lecture:

    Écriture de calculs

    Les calculs d'écriture sont toujours définis pour les variables utilisées dans les propriétés 'Chemin d'écriture' ou 'Corps d'écriture'. Lorsque vous modifiez la nouvelle valeur d'une de ces propriétés, le calcul de la variable est automatiquement ajouté:

    Analyser les définitions.

    Dans les propriétés des définitions d'analyse, nous voulons lire le texte de la réponse et le convertir en valeurs variables. Il est nécessaire de définir où l'analyse des variables doit commencer. Habituellement, il suffit d'écrire avant le texte de définition de variable qui a précédé le texte de variable. Nous l'expliquons déjà sur un exemple simple - réponse JSON:

    {

    "name":null,

    "ison":false,

    }

    Lorsque nous voulons analyser la valeur false après le texte «ison»: la définition d'analyse doit être définie comme ceci:

    "ison": $ Vl2 $

    Dans ce cas, la variable Vl2 doit être une variable virtuelle de type booléen, pour accepter correctement les valeurs true / false.

    Que faire au cas où nous aurions une réponse plus compliquée - où le texte «ison»: est défini à de nombreux endroits mais il est précédé de définitions de nom qui peuvent définir exactement où commence la définition.

    Dans l'exemple suivant, plus de paramètres sont définis dans la réponse JSON - pour montrer comment extraire la bonne valeur.

    {

    "name":relay_0,

    "timer":null,

    "ison":false,

    }

    {

    "name":relay_1,

    "timer":null,

    "ison":false,

    }

    Par exemple, nous voulons analyser la valeur relay_1 - nous voulons donc commencer à lire à la position où le nom est défini comme relay_1. Mais après cette définition, plus de paramètres sont définis, dont nous ne savons pas exactement la valeur - nous voulons donc simplement ignorer ce texte jusqu'à la définition «ison»:. La définition d'analyse doit être définie comme suit:

    "Nom": relais_1 ... "ison": $ Vl2 $

    Il y a d'abord le texte qui définit exactement le nom de relay_1 et après ce sont trois points suivis du même texte que précédemment, qui a précédé le début du texte variable puis la référence de la variable.

    Les trois points '...' dans les définitions d'analyse peuvent être utilisés entre deux définitions de texte pour ignorer le texte entre.

    La valeur analysée est convertie en type de variable référencée.

    Les variables de l'appareil TapHome sont toujours de type numérique.

    La valeur de commutation peut être 0/1.

    Les valeurs de commutation à valeurs multiples commencent à 0 et augmentent de 1 par chaque valeur définie suivante.

    Les valeurs analogiques sont définies en pourcentage de 0 à 1 avec autant de décimales que nécessaire. Par exemple, 29% signifie 0,29. Les valeurs des capteurs sont en unités métriques. Températures en degrés C. Vitesse du vent en km / h. Précipitations en mm / m2.

    Définitions de format

    Le nom de variable dans les définitions de sortie doit être entouré de caractères $. Après le nom de variable et avant la fin, le caractère $ peut être écrit en définition de format.

    $ Vl1, xxx: Fppp $

    xxx ... est toujours défini après une virgule. Définit la largeur de la chaîne insérée dans la chaîne de résultat. Si le xxx est positif, la représentation sous forme de chaîne de la variable est alignée à droite. Cependant, si la représentation sous forme de chaîne de la variable comporte plus de xxx caractères, la largeur de champ préférée est ignorée et la chaîne entière est insérée dans la chaîne de résultat. Pour aligner les chaînes à gauche dans un champ, vous faites précéder la largeur du champ de un signe négatif.

    F ... Caractère spécificateur de format - est toujours défini après le double point.

    ppp ... nombre facultatif - spécificateur de précision - pour les caractères de format spécial. La signification est fonction du caractère spécial utilisé.

    Le spécificateur de format à virgule fixe ("F")

    Le spécificateur de format à virgule fixe ("F") convertit un nombre en une chaîne de la forme "-ddd.ddd ..." où chaque "d" indique un chiffre (0-9). La chaîne commence par un signe moins si le nombre est négatif.

    Le spécificateur de précision indique le nombre de décimales souhaité. Si le spécificateur de précision est omis, tous les points décimaux utilisés sont écrits dans la chaîne.

    Exemples de formatage:

    1234.567 (":F") -> 1234.57

    1234 (":F1") -> 1234.0

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

    Le spécificateur de format exponentiel ("E")

    Le spécificateur de format exponentiel ("E") convertit un nombre en une chaîne de la forme "-d.ddd ... E + ddd" ou "-d.ddd ... e + ddd", où chaque "d" indique un chiffre (0-9). La chaîne commence par un signe moins si le nombre est négatif. Un chiffre exactement précède toujours le séparateur décimal.

    Le spécificateur de précision indique le nombre de chiffres souhaité après le point décimal. Si le spécificateur de précision est omis, une valeur par défaut de six chiffres après la virgule décimale est utilisée.

    Le cas du spécificateur de format indique s'il faut préfixer l'exposant avec un "E" ou un "e". L'exposant est toujours composé d'un signe plus ou moins et d'un minimum de trois chiffres. L'exposant est rembourré avec des zéros pour répondre à ce minimum, si nécessaire.

    Exemples de formatage:

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

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

    Exemple de formatage incluant la définition de la largeur:

    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 '

    Le spécificateur de format hexadécimal ("X")

    Le spécificateur de format hexadécimal ("X") convertit un nombre en une chaîne de chiffres hexadécimaux. Le cas du spécificateur de format indique s'il faut utiliser des caractères majuscules ou minuscules pour les chiffres hexadécimaux supérieurs à 9. Par exemple, utilisez "X" pour produire "ABCDEF" et "x" pour produire "abcdef". Ce format n'est pris en charge que pour les types numériques et le nombre est utilisé comme nombre entier sans arrondi.

    Le spécificateur de précision indique le nombre minimum de chiffres souhaité dans la chaîne résultante. Si nécessaire, le nombre est complété par des zéros à sa gauche pour produire le nombre de chiffres donné par le spécificateur de précision.

    Exemples de formatage:

    3567.7 (“:X4:) → 0DEF