Hľadaj
MENU
  • Výrazy / Skriptovací jazyk
  • Používatelia a povolenia
  • Záloha, obnova zálohy, reset na továrenské nastavenia
  • Software release notes
  • Manuálna konfigurácia

    Implementácia v TapHome

    V systéme TapHome je Packet Parser hardvérové rozhranie (Nastavenia → Hardvér → Pridať nové rozhranie → Packet parser), ktoré sa používa na pripojenie zariadení tretích strán k riadiacej jednotke. Tieto zariadenia môžu komunikovať s riadiacou jednotkou buď pomocou WiFi alebo LAN cez protokol TCP/IP.

    Packet Parser používa proprietárny skriptovací jazyk, ktorý je špeciálne navrhnutý pre systém TapHome. Tento jazyk slúži na ovládanie a správu pripojených zariadení a ich komunikáciu s riadiacou jednotkou. Kliknutím sem získate ďalšie informácie o TapHome skriptovacom jazyku

    Hierarchia

    Systém TapHome používa hierarchickú štruktúru na usporiadanie pripojených zariadení. V tejto štruktúre modul funguje ako nadradené zariadenie a môže komunikovať so svojimi podradenými zariadeniami a ovládať ich.

    Modul

    Rozhranie môže obsahovať jeden alebo viac modulov, ktoré vo väčšine prípadov pokrývajú komunikáciu s celým fyzickým zariadením. Z hľadiska konfigurácie Modul definuje:

    • IP adresu alebo názov mDNS zariadenia
    • komunikačný port
    • Zabezpečené pripojenie: Pozri oddiel Autentifikácia v Servisné nastavenia Modulu
    • Ignorovať chyby certifikátu SSL

    Zariadenie

    Predstavuje konkrétny ovládací prvok alebo snímač v systéme TapHome. Musí byť vždy súčasťou jedného nadradeného Modulu.

    Podporované zariadenia:

    • Digitálny výstup
    • Analógový výstup
    • Termostat
    • Viac-hodnotový prepínač
    • Teplotný senzor
    • Premenná
    • Tlačidlo
    • Elektromer
    • Stavový kontakt
    • Rolety, markízy, zmiešavacie ventily
    • RGB svetlo
    • Tunable white light

    Príklad: Shelly Plug S
    Modul obsahuje informáciu o IP adrese, má v sebe skripty na čítanie stavu, nastavení, a vykonávanie servisných akcií. Zastrešuje 2 zariadenia: digitálny výstup (relé) a elektromer merajúci spotrebu pripojených zariadení.

    Skripty na čítanie a zápis

    Riadiaca jednotka TapHome a pripojené zariadenia môžu komunikovať pomocou požiadaviek HTTP alebo HTTPS GET / POST. Odpovede na tieto požiadavky možno analyzovať pomocou súboru špecializovaných funkcií. Napríklad môže existovať funkcia, ktorá je špeciálne určená na rozbor odpovedí XML, ďalšia funkcia na rozbor odpovedí JSON a ešte ďalšia funkcia na rozbor odpovedí poľa bajtov. Tieto funkcie uľahčujú interpretáciu a používanie informácií prijatých v odpovediach, čo umožňuje efektívnejšiu a účinnejšiu komunikáciu s riadiacou jednotkou a pripojenými zariadeniami.

    TapHome definuje viacero atribútov, ktoré môžu obsahovať jazyk skriptu:

    • Initialize script: sa spustí pri spustení zariadenia (napr. po reštarte riadiacej jednotky)
    • Read skriptu: nastavenie hodnôt globálnych premenných alebo čítanie chybových stavov
    • Read value script: skript na čítanie konkrétnej hodnoty (veličiny) z pripojeného zariadenia (napr. nastavená teplota na termostate alebo nameraná teplota na termostate)
    • Write value script: zápis hodnoty do pripojeného zariadenia

    Definícia chybových stavov zo skriptov

    Vlastnosti a akcie Servisného atribútu

    Skripty a pomocné premenné na module

    Skripty a pomocné premenné na zariadení

    Ďalšie informácie nájdete na stránke dokumentácie Modbus

    Podporované protokoly

    • HTTP

    • TCP

    • UDP

    • FTP

    • MQTT

    HTTP

    SENDHTTPREQUEST

    Odošle HTTP požiadavku so zadanými parametrami, počká na odpoveď a vráti odpoveď ako reťazec JSON s hodnotami ako Obsah, Hlavičky, Výsledný kód HTTP. Funkcia je podporovaná len v Packet parser skriptoch s protokolom 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

    Odošle zadané údaje (reťazec alebo Collection UInt8) pomocou protokolu TCP alebo UDP. Ak sú dáta objektom reťazca, sú implicitne konvertované na bajty pomocou kódovania iso-8859-1. Funkcia je podporovaná len v skriptoch Packet parseru s protokolom TCP alebo UDP. Prijaté bajty možno spracovať v Listener skripte.

    SENDDATA( string/Collection<UInt8> )

    Examples:

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

    COMPLETESERVICEATTRIBUTE

    Funkcia sa používa v Listener skriptoch TCP/UDP Packet parseri na oznámenie ukončenia požiadavky na hodnotu Servisného atribútu.
    Napr. vytvoríte požiadavku v skripte Servisného atribútu pomocou funkcie SENDDATA a po prijatí údajov v Listener skripte dokončíte čítanie Servisného atribútu.

    COMPLETESERVICEATTRIBUTE( attributeName, value, error )

    Examples:

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

    COMPLETESERVICEACTION

    Funkcia sa používa v Listener skriptoch v Packet parseri s protokolom TCP/UDP na oznámenie dokončenia požiadavky na Servisnú akciu.
    Napr. vytvoríte požiadavku v skripte Servisnej akcie pomocou funkcie SENDDATA a po prijatí údajov v Listener skripte dokončíte Servisnú akciu.

    COMPLETESERVICEACTION( actionName, result )

    Examples:

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

    FTP

    FTPDOWNLOAD

    Vráti údaje o súbore (ako Collection UInt8) z FTP servera. Funkcia je podporovaná len v Packet parser skriptoch s protokolom FTP.

    FTPDOWNLOAD( pathToFile )

    Examples:

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

    FTPUPLOAD

    Nahrá údaje (Collection UInt8 alebo string) do súboru na FTP server.

    FTPUPLOAD( pathToFile, data, mode )

    Examples:

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

    MQTT

    Okrem vyššie uvedených možností komunikácie umožňuje systém TapHome aj komunikáciu so zariadeniami tretích strán pomocou protokolu MQTT. MQTT, alebo Message Queuing Telemetry Transport, je ľahký protokol publikovania/odberu správ, ktorý je navrhnutý na efektívnu a spoľahlivú komunikáciu medzi zariadeniami v kontexte Machine-to-machine (M2M) a internetu vecí (IoT).

    Na umožnenie komunikácie so zariadeniami tretích strán pomocou MQTT je potrebné vytvoriť samostatný modul v Nastavenia → Hardvér → Pridať nové rozhranie → MQTT Broker. Tento modul funguje ako sprostredkovateľ medzi zariadeniami tretích strán a riadiacou jednotkou a umožňuje im komunikovať pomocou protokolu MQTT. Modul MQTT Broker môže byť spustený autonómne na riadiacej jednotke, čo umožňuje nezávislú a efektívnu komunikáciu medzi zariadeniami tretích strán a systémom TapHome.

    MQTTPUBLISH

    Funkcia sa používa v zariadeniach PacketParser s protokolom MQTT na publikovanie správy sprostredkovateľovi MQTT.

    MQTTPUBLISH( topic, message )

    Examples:

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