Chercher
MENU
  • Expressions / Langage de script
  • Utilisateurs et autorisations
  • Sauvegarde, restauration de sauvegarde, réinitialisation aux paramètres d'usine
  • Notes de version du logiciel
  • Configuration manuelle

    Implémentation dans TapHome

    Dans TapHome, le Packet Parser est une interface matérielle (Paramètres → Matériel → Ajouter une nouvelle interface → Packet parser) qui est utilisée pour connecter des appareils tiers au contrôleur. Ces dispositifs peuvent communiquer avec l'unité de contrôle en utilisant le WiFi ou le LAN via le protocole TCP/IP.

    L'analyseur de paquets utilise un langage de script propriétaire spécialement conçu pour le système TapHome. Ce langage est utilisé pour contrôler et gérer les appareils connectés et leur communication avec le contrôleur. Cliquez ici pour plus d'informations sur le langage de script TapHome

    Hiérarchie

    Le système TapHome utilise une structure hiérarchique pour organiser les appareils connectés. Dans cette structure, un module agit comme un dispositif parent et peut communiquer avec ses dispositifs enfants et les contrôler.

    Module

    Une interface peut contenir un ou plusieurs modules qui, dans la plupart des cas, couvrent la communication avec l'ensemble du dispositif physique. En termes de configuration, un module définit :

    • L'adresse IP ou le nom du dispositif mDNS
    • port de communication
    • Connexion sécurisée : Voir la section Authentification dans Paramètres de service du Module
    • Ignorer les erreurs de certificat SSL

    Dispositif

    Représente un contrôle ou un capteur spécifique dans le système TapHome. Il doit toujours faire partie d'un module monoparental.

    Appareils pris en charge :

    • Sortie numérique
    • Sortie analogique
    • Thermostat
    • Commutateur De Multi-Valeur
    • Capteur de température
    • Variable
    • Appuyer sur le bouton
    • Compteur d'électricité
    • Reed Contact
    • Volets, stores bannes, mitigeurs
    • Lumière RVB
    • Lumière blanche accordable

    Exemple : Shelly Plug S
    Le module contient des informations sur l'adresse IP, il contient des scripts permettant de lire l'état, les paramètres et d'effectuer des actions de service. Il couvre 2 dispositifs : une sortie numérique (relais) et un compteur mesurant la consommation électrique des appareils connectés.

    Scripts pour la lecture et l'écriture

    Le contrôleur TapHome et les appareils connectés peuvent communiquer en utilisant des requêtes HTTP ou HTTPS GET/POST. Les réponses à ces demandes peuvent être analysées à l'aide d'un ensemble de fonctions spécialisées. Par exemple, il peut y avoir une fonction spécialement conçue pour analyser les réponses XML, une autre fonction pour analyser les réponses JSON, et une autre encore pour analyser les réponses des tableaux d'octets. Ces fonctions facilitent l'interprétation et l'utilisation des informations reçues dans les réponses, permettant une communication plus efficace avec le contrôleur et les dispositifs connectés.

    TapHome définit un certain nombre d'attributs qui peuvent être inclus dans le langage de script :

    • Scriptum d'initialisation: est exécuté lorsque le dispositif est démarré (par exemple, après un redémarrage du contrôleur).
    • Lire le script: définir les valeurs des variables globales ou lire les conditions d'erreur
    • Scriptum de lecture de valeur: script permettant de lire une valeur spécifique (variable) à partir d'un dispositif connecté (par exemple, température de consigne sur un thermostat ou température mesurée sur un thermostat).
    • Script Écrire une valeur: écrire une valeur à un dispositif connecté

    Définition de conditions d'erreur à partir de scripts

    Propriétés et actions des attributs de service

    Scripts et variables auxiliaires sur le module

    Scripts et variables auxiliaires sur le dispositif

    Pour plus d'informations, voir la [documentation Modbus] (https://taphome.com/support/15597569).

    Protocoles pris en charge

    • HTTP

    • TCP

    • UDP

    • FTP

    • MQTT

    HTTP

    SENDHTTPREQUEST

    Envoie une requête HTTP avec les paramètres spécifiés, attend une réponse et renvoie la réponse sous forme de chaîne JSON avec des valeurs telles que le contenu, les en-têtes, le code de résultat HTTP. Cette fonction est uniquement prise en charge dans les scripts de l'analyseur de paquets avec le protocole HTTP.

    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

    Envoie les données spécifiées (chaîne ou collection UInt8) en utilisant le protocole TCP ou UDP. Si les données sont un objet de type chaîne, elles sont implicitement converties en octets en utilisant l'encodage iso-8859-1. Cette fonction n'est supportée que dans les scripts Packet Parser avec le protocole TCP ou UDP. Les octets reçus peuvent être traités dans un script Listener.

    SENDDATA( string/Collection<UInt8> )

    Examples:

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

    COMPLETESERVICEATTRIBUTE

    Cette fonction est utilisée dans les scripts Listener de l'analyseur de paquets TCP/UDP pour notifier la valeur de l'attribut de service de la fin de la demande.
    Par exemple, vous créez une requête dans un script d'attribut de service à l'aide de la fonction SENDDATA et vous terminez la lecture de l'attribut de service lorsque le script Listener reçoit les données.

    COMPLETESERVICEATTRIBUTE( attributeName, value, error )

    Examples:

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

    COMPLETESERVICEACTION

    Cette fonction est utilisée dans les scripts Listener de l'analyseur de paquets avec le protocole TCP/UDP pour notifier l'achèvement d'une demande d'action de service.
    Par exemple, vous créez une requête dans un script d'action de service à l'aide de la fonction SENDDATA et terminez l'action de service après que le script Listener ait reçu les données.

    COMPLETESERVICEACTION( actionName, result )

    Examples:

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

    FTP

    FTPDOWNLOAD

    Renvoie les données du fichier (sous forme de Collection UInt8) du serveur FTP. Cette fonction n'est supportée que dans les scripts de l'analyseur de paquets avec le protocole FTP.

    FTPDOWNLOAD( pathToFile )

    Examples:

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

    FTPUPLOAD

    Télécharge les données (Collection UInt8 ou chaîne) dans un fichier sur le serveur FTP.

    FTPUPLOAD( pathToFile, data, mode )

    Examples:

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

    MQTT

    En plus des options de communication ci-dessus, le système TapHome permet également de communiquer avec des appareils tiers en utilisant le protocole MQTT. MQTT, ou Message Queuing Telemetry Transport, est un protocole léger de publication/abonnement de messages conçu pour une communication efficace et fiable entre les dispositifs dans les contextes Machine-to-Machine (M2M) et Internet des objets (IoT).

    Pour permettre la communication avec des périphériques tiers à l'aide de MQTT, un module distinct doit être créé dans Paramètres → Matériel → Ajouter une nouvelle interface → MQTT Broker. Ce module agit comme un courtier entre les dispositifs tiers et le contrôleur, leur permettant de communiquer à l'aide du protocole MQTT. Le module MQTT Broker peut être exécuté de manière autonome sur l'unité de contrôle, permettant une communication indépendante et efficace entre des appareils tiers et le système TapHome.

    MQTTPUBLISH

    Cette fonction est utilisée sur les dispositifs PacketParser avec le protocole MQTT pour publier un message au courtier MQTT.

    MQTTPUBLISH( topic, message )

    Examples:

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