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”)