Manuální konfigurace
Implementace v TapHome
V systému TapHome je Packet Parser hardwarové rozhraní ( Nastavení → Hardware → Přidat nové rozhraní → Packet parser ), které se používá pro připojení zařízení třetích stran k řídící jednotce. Tato zařízení mohou komunikovat s řídicí jednotkou buď pomocí WiFi nebo LAN přes protokol TCP/IP.
Packet Parser používá proprietární skriptovací jazyk, který je speciálně navržen pro systém TapHome. Tento jazyk slouží k ovládání a správě připojených zařízení a jejich komunikaci s řídící jednotkou. Kliknutím sem získáte další informace o TapHome skriptovacím jazyce
Hierarchie
Systém TapHome používá hierarchickou strukturu k uspořádání připojených zařízení. V této struktuře modul funguje jako nadřazené zařízení a může komunikovat se svými podřazenými zařízeními a ovládat je.
Modul
Rozhraní může obsahovat jeden nebo více modulů, které ve většině případů pokrývají komunikaci s celým fyzickým zařízením. Z hlediska konfigurace Modul definuje:
- IP adresu nebo název mDNS zařízení
- komunikační port
- Zabezpečené připojení : Viz oddíl Autentizace v Servisní nastavení Modulu
- Ignorovat chyby certifikátu SSL
Zařízení
Představuje konkrétní ovládací prvek nebo snímač v systému TapHome. Musí být vždy součástí jednoho nadřazeného Modulu.
Podporovaná zařízení:
- Digitální výstup
- Analogový výstup
- Termostat
- Více hodnotový spínač
- Tepelný senzor
- Proměnná
- Tlačítko
- Elektroměr
- Stavový kontakt
- Rolety, markýzy, směšovací ventily
- RGB Světlo
- Tunable white light
Příklad: Shelly Plug S
Modul obsahuje informaci o IP adrese, má v sobě skripty pro čtení stavu, nastavení a provádění servisních akcí. Zastřešuje 2 zařízení: digitální výstup (relé) a elektroměr měřící spotřebu připojených zařízení.
Skripty pro čtení a zápis
Řídící jednotka TapHome a připojená zařízení mohou komunikovat pomocí požadavků HTTP nebo HTTPS GET / POST. Odpovědi na tyto požadavky lze analyzovat pomocí souboru specializovaných funkcí. Například může existovat funkce, která je speciálně určena pro rozbor odpovědí XML, další funkce pro rozbor odpovědí JSON a ještě další funkce pro rozbor odpovědí pole bajtů. Tyto funkce usnadňují interpretaci a používání informací přijatých v odpovědích, což umožňuje efektivnější a účinnější komunikaci s řídící jednotkou a připojenými zařízeními.
TapHome definuje více atributů, které mohou obsahovat jazyk skriptu:
- Initialize script: se spustí při spuštění zařízení (např. po restartu řídící jednotky)
- Read skriptu: nastavení hodnot globálních proměnných nebo čtení chybových stavů
- Read value script: skript pro čtení konkrétní hodnoty (veličiny) z připojeného zařízení (např. nastavená teplota na termostatu nebo naměřená teplota na termostatu)
- Write value script: zápis hodnoty do připojeného zařízení
Definice chybových stavů ze skriptů
Vlastnosti a akce Servisního atributu
Skripty a pomocné proměnné na modulu
Skripty a pomocné proměnné na zařízení
Další informace naleznete na stránce dokumentace Modbus
Podporované protokoly
HTTP
TCP
UDP
FTP
MQTT
HTTP
SENDHTTPREQUEST
Odešle HTTP požadavek se zadanými parametry, počká na odpověď a vrátí odpověď jako řetězec JSON s hodnotami jako Obsah, Hlavičky, Výsledný kód HTTP. Funkce je podporována pouze v Packet parser skriptech s protokolem 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
Odešle zadaná data (řetězec nebo Collection UInt8) pomocí protokolu TCP nebo UDP. Jsou-li data objektem řetězce, jsou implicitně konvertována na bajty pomocí kódování iso-8859-1. Funkce je podporována pouze ve skriptech Packet parseru s protokolem TCP nebo UDP. Přijaté bajty lze zpracovat v Listener skriptu.
SENDDATA( string/Collection<UInt8> )
Examples:
SENDATA(BYTECOLLECTION(“0a dd ef a2”) SENDATA(“{\”value\”:212}”)
COMPLETESERVICEATTRIBUTE
Funkce se používá v Listener skriptech TCP/UDP Packet parseru pro oznámení ukončení požadavku na hodnotu Servisního atributu.
Např. vytvoříte požadavek ve skriptu Servisního atributu pomocí funkce SENDDATA a po přijetí údajů v Listener skriptu dokončíte čtení Servisního atributu.
COMPLETESERVICEATTRIBUTE( attributeName, value, error )
Examples:
COMPLETESERVICEATTRIBUTE(“Uptime”, “2d:21h:43m”) COMPLETESERVICEATTRIBUTE(“Status”, “”, “Device is offline”)
COMPLETESERVICEACTION
Funkce se používá v Listener skriptech v Packet parseru s protokolem TCP/UDP pro oznámení dokončení požadavku na Servisní akci. Např. vytvoříte požadavek ve skriptu Servisní akce pomocí funkce SENDDATA a po přijetí údajů v Listener skriptu dokončíte Servisní akci.
COMPLETESERVICEACTION( actionName, result )
Examples:
COMPLETESERVICEACTION(“Reboot”, “Rebooted successfully”) COMPLETESERVICEACTION(“Enable cloud”, “Device is offline”)
FTP
FTPDOWNLOAD
Vrátí údaje o souboru (jako Collection UInt8) z FTP serveru. Funkce je podporována pouze v Packet parser skriptech s protokolem FTP.
FTPDOWNLOAD( pathToFile )
Examples:
FTPDOWNLOAD(“/path/to/file”) (Result is Collection<UInt8>)
FTPUPLOAD
Nahraje data (Collection UInt8 nebo string) do souboru 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
Kromě výše uvedených možností komunikace umožňuje systém TapHome také komunikaci se zařízeními třetích stran pomocí protokolu MQTT. MQTT, neboli Message Queuing Telemetry Transport, je snadný protokol publikování/odběru zpráv, který je navržen pro efektivní a spolehlivou komunikaci mezi zařízeními v kontextu Machine-to-machine (M2M) a internetu věcí (IoT).
Pro umožnění komunikace se zařízeními třetích stran pomocí MQTT je třeba vytvořit samostatný modul v Nastavení → Hardware → Přidat nové rozhraní → MQTT Broker. com/support/2331377665). Tento modul funguje jako zprostředkovatel mezi zařízeními třetích stran a řídící jednotkou a umožňuje jim komunikovat pomocí protokolu MQTT. Modul MQTT Broker může být spuštěn autonomně na řídící jednotce, což umožňuje nezávislou a efektivní komunikaci mezi zařízeními třetích stran a systémem TapHome.
MQTTPUBLISH
Funkce se používá v zařízeních PacketParser s protokolem MQTT pro publikování zprávy zprostředkovateli MQTT.
MQTTPUBLISH( topic, message )
Examples:
MQTTPUBLISH(“shellies/deviceid/relay/0/command”, “off”)