Zoeken
MENU
  • Uitdrukkingen / Scripttaal
  • Gebruikers en machtigingen
  • Back-up, back-up herstellen, terugzetten naar fabrieksinstellingen
  • Software release notes
  • Handmatige configuratie

    Implementatie in TapHome

    In TapHome is de Packet Parser een hardware-interface (Instellingen → Hardware → Voeg een nieuwe interface toe → Packet parser) die wordt gebruikt om apparaten van derden met de controller te verbinden. Deze apparaten kunnen met de besturingseenheid communiceren via WiFi of LAN via het TCP/IP-protocol.

    De Packet Parser gebruikt een eigen scripttaal die speciaal is ontworpen voor het TapHome systeem. Deze taal wordt gebruikt om de aangesloten apparaten en hun communicatie met de controller te besturen en te beheren. Klik hier voor meer informatie over de TapHome scripttaal

    Hierarchy

    Het TapHome systeem gebruikt een hiërarchische structuur om aangesloten apparaten te organiseren. In deze structuur fungeert een module als een ouderapparaat en kan deze communiceren met en controle uitoefenen over zijn kindapparaten.

    Module

    Een interface kan een of meer modules bevatten, die in de meeste gevallen de communicatie met het gehele fysieke apparaat bestrijken. In termen van configuratie definieert een module:

    • Het IP-adres of de naam van het mDNS-apparaat
    • communicatiepoort
    • Beveiligde verbinding: Zie sectie Authenticatie in Service-instellingen van de Module
    • SSL-certificaatfouten negeren

    Apparaat

    Vertegenwoordigt een specifieke bediening of sensor in het TapHome systeem. Het moet altijd deel uitmaken van een eenoudermodule.

    Ondersteunde apparaten:

    • Digitale uitgang
    • Analoge uitgang
    • Thermostaat
    • Multi-waarde schakelaar
    • Temperatuursensor
    • Variabele
    • Drukknop
    • Elektriciteitsmeter
    • Reed Contact
    • Luiken, luifels, mengventielen
    • RGB-verlichting
    • Afstembaar wit licht

    Voorbeeld: Shelly Plug S
    De module bevat IP adres informatie, heeft scripts in zich om status en instellingen uit te lezen en service acties uit te voeren. Het omvat 2 apparaten: een digitale uitgang (relais) en een meter die het stroomverbruik van de aangesloten apparaten meet.

    Scripts voor lezen en schrijven

    De TapHome controller en de aangesloten apparaten kunnen communiceren via HTTP of HTTPS GET/POST verzoeken. Antwoorden op deze verzoeken kunnen worden geparseerd met behulp van een reeks gespecialiseerde functies. Er kan bijvoorbeeld een functie zijn die specifiek is ontworpen om XML-reacties te parsen, een andere functie om JSON-reacties te parsen, en nog een andere functie om byte-array-reacties te parsen. Deze functies vergemakkelijken de interpretatie en het gebruik van de in de antwoorden ontvangen informatie, waardoor een efficiëntere en effectievere communicatie met de controller en de aangesloten apparaten mogelijk wordt.

    TapHome definieert een aantal attributen die in de scripttaal kunnen worden opgenomen:

    • Initialize script: wordt uitgevoerd wanneer het apparaat wordt gestart (bv. na een herstart van de besturingseenheid)
    • Script lezen: waarden van globale variabelen instellen of foutcondities lezen
    • Read value script: script om een specifieke waarde (variabele) te lezen van een aangesloten apparaat (bijv. ingestelde temperatuur op een thermostaat of gemeten temperatuur op een thermostaat)
    • Write value script: schrijf een waarde naar een aangesloten apparaat

    Foutcondities definiëren vanuit scripts

    Eigenschappen en acties van dienstenattributen

    Scripts en hulpvariabelen op de module

    Scripts en hulpvariabelen op het apparaat

    Voor meer informatie, zie [Modbus documentatie] (https://taphome.com/support/15597569).

    Ondersteunde protocollen

    • HTTP

    • TCP

    • UDP

    • FTP

    • MQTT

    HTTP

    SENDHTTPREQUEST

    Stuurt een HTTP-verzoek met de opgegeven parameters, wacht op een antwoord, en stuurt het antwoord terug als een JSON-string met waarden zoals Inhoud, Headers, HTTP-resultaatcode. De functie wordt alleen ondersteund in Packet parser scripts met HTTP protocol.

    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

    Verstuurt de opgegeven gegevens (string of Collection UInt8) via het TCP- of UDP-protocol. Als de gegevens een tekenreeksobject zijn, worden ze impliciet geconverteerd naar bytes met iso-8859-1 codering. De functie wordt alleen ondersteund in Packet Parser-scripts met TCP- of UDP-protocol. De ontvangen bytes kunnen worden verwerkt in een Listener-script.

    SENDDATA( string/Collection<UInt8> )

    Examples:

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

    COMPLETESERVICEATTRIBUTE

    Deze functie wordt gebruikt in de Listener-scripts van de TCP/UDP-pakket-parser om de waarde van het dienstkenmerk op de hoogte te stellen van de beëindiging van het verzoek.
    U maakt bijvoorbeeld een verzoek aan in een script voor een serviceattribuut met behulp van de functie SENDDATA en beëindigt het lezen van het serviceattribuut wanneer het Listener-script de gegevens ontvangt.

    COMPLETESERVICEATTRIBUTE( attributeName, value, error )

    Examples:

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

    COMPLETESERVICEACTION

    Deze functie wordt gebruikt in Listener-scripts in Packet Parser met TCP/UDP-protocol om de voltooiing van een Service Action-verzoek te melden.
    U maakt bijvoorbeeld een verzoek in een Service Action-script met behulp van de functie SENDDATA en voltooit de Service Action nadat het Listener-script de gegevens heeft ontvangen.

    COMPLETESERVICEACTION( actionName, result )

    Examples:

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

    FTP

    FTPDOWNLOAD

    Geeft de bestandsgegevens terug (als Collection UInt8) van de FTP-server. De functie wordt alleen ondersteund in Packet parser scripts met FTP protocol.

    FTPDOWNLOAD( pathToFile )

    Examples:

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

    FTPUPLOAD

    Uploadt de gegevens (Collection UInt8 of string) naar een bestand op de FTP-server.

    FTPUPLOAD( pathToFile, data, mode )

    Examples:

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

    MQTT

    Naast de bovengenoemde communicatiemogelijkheden maakt TapHome ook communicatie mogelijk met apparaten van derden via het MQTT-protocol. MQTT, of Message Queuing Telemetry Transport, is een lichtgewicht message publish/subscribe protocol ontworpen voor efficiënte en betrouwbare communicatie tussen apparaten in Machine-to-Machine (M2M) en Internet of Things (IoT) contexten.

    Om communicatie met apparaten van derden via MQTT mogelijk te maken, moet een aparte module worden aangemaakt in Instellingen → Hardware → Voeg een nieuwe interface toe → MQTT Broker. Deze module fungeert als makelaar tussen apparaten van derden en de controller, zodat ze kunnen communiceren via het MQTT-protocol. De MQTT Broker module kan autonoom worden uitgevoerd op de besturingseenheid, waardoor onafhankelijke en efficiënte communicatie tussen apparaten van derden en het TapHome systeem mogelijk is.

    MQTTPUBLISH

    De functie wordt gebruikt op PacketParser apparaten met het MQTT protocol om een bericht te publiceren naar de MQTT broker.

    MQTTPUBLISH( topic, message )

    Examples:

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