Vyhledávání
MENU
  • TapHome Apps
  • Výrazy
  • Architektura systému podle typu projektu
  • Uživatelé a oprávnění
  • Konfigurace Packet parsera

    V NastaveníHardware vyberte Přidat nové rozhraní a zvolte Packet parser.

    Existují dvě možnosti, jak přidat zařízení. Nejprve je třeba ručně přidat modul a poté zařízení. Druhým je přidání celé sady ze šablony. Chcete-li přidat zařízení ze šablony, postupujte podle kapitoly Konfigurace Packet parser pomocí předdefinovaných šablon .

    Přidat modul

    Modul představuje fyzické zařízení s IP adresou nebo názvem hostitele, definicí přístupu a dalšími běžnými parametry. Po přidání a konfiguraci modulu je možné přidat zařízení, která jsou implementována na fyzickém zařízení. Klikněte na PŘIDAT MODUL a nejprve nastavte název hostitele nebo IP adresu:

    Klikněte na OK a zadejte root cestu. Root cesta je běžná cesta používaná všemi zařízeními v modulu. Nejjednodušší root cesta je jedna lomítka: '/'

    Klepnutím na tlačítko OK přejděte na nastavení služby modulu.

    Nastavení služby modulu

    Nastavení služby modulu jsou rozdělena do skupiny vlastností.

    Proměnné zařízení

    Seznam podporovaných proměnných pro každé zařízení je zobrazen ve skupině Proměnné zařízení. Krátký název proměnných zobrazený na pravé straně se používá při analýze hodnoty zařízení, definice formátování výstupu nebo při výpočtu.

    Ověřování

    V případě, že je požadováno ověření, vyplňte Uživatel a heslo a vyberte typ ověření. Podporovány jsou nyní základní typy a typy autentizace.

    Nastavení sítě

    V případě, že během přidávání modulu vyplníte správnou IP adresu nebo název hostitele a kořenovou cestu, jsou nyní tyto parametry správně nastaveny. Některé Packet parser vyžadují jiný než výchozí port 80. V tomto případě upravte Port v tomto nastavení. V případě, že by se po každém příkazu mělo spojení ukončit, nechte parametry „Zůstaňte připojeni“ ve stavu vypnuto. Pokud je možné udržovat spojení mezi příkazy naživu, zapněte tento parametr. Vyberte typ připojení mezi http a https (zabezpečeno).

    Definice pro čtení

    Modul může přímo definovat parametry čtení, aby vyplnil hodnoty zařízení.

    Interval interního dotazování se používá k definování toho, jak často mají být hodnoty zařízení dotazovány. V případě, že zařízení používáte v místní síti, doporučuje se používat 2500 ms. Nejkratší interval je 500 ms. V případě, že je používáno zařízení z internetu - například meteorologické informace, jako je teplota vzduchu pro některé město - doporučujeme použít dlouhý interval dotazování (alespoň minuty nebo hodiny), aby jej administrátor stránky kvůli spamové politice nezakázal.

    Http požadavek se skládá z URL adresy, speciálních hlaviček a v případě POST požadavku také od těla požadavku. URL adresa je složena z typu připojení (http / https) název hostitele nebo IP adresa, port, kořenová cesta a relativní cesta - tento případ je definován ve vlastnosti Číst cestu. Příklad požadavku http, pokud je cesta root pouze /, port je 1400 a relativní cesta je read_switch:

    http://192.168.0.1:1400/read_switch

    Pokud není definována metoda čtení http, použije se metoda GET.

    Přímo v modulu lze definovat parsování hodnot z přijaté odpovědi na proměnné zařízení nebo předdefinované virtuální proměnné.

    Použití proměnné uvnitř definice analýzy odpovědí vyžaduje uzavření názvu proměnné znaky $. Například název proměnné Vl1 by měl být použit jako $ Vl1 $.

    Například pokud máme odpověď ve formátu JSON takto:

    {

    "name":null,

    "ison":false,

    }

    a chceme analyzovat odpověď na přepnutí. Hodnota odpovědi je boolean true / false za jménem „ison“. Musíme definovat virtuální proměnnou typu boolean (v tomto případě je to Vl2 - virtuální proměnné budou vysvětleny později) a nejprve přijmout odpověď na tuto proměnnou definováním parametru 'Answer parse' takto:

    Text "ison": $ Vl2 $ znamená, že chceme najít přesně řetězec "ison": a když jsme ho našli, budeme další znaky interpretovat jako booleovskou proměnnou (jsou možné pravdivé / nepravdivé hodnoty). Nyní budeme mít hodnotu ve virtuální proměnné - ale chceme ji mít v proměnné zařízení - takže v zařízení je nutné definovat výpočet čtení, který bude sestávat pouze z proměnné Vl2. Typ proměnné se pak automaticky převede na typ proměnné zařízení - v tomto případě 0/1. Více informací naleznete v kapitole Definice pars.

    Ve vlastnostech „ReadPath“ a „Body for reading“ je možné použít odkaz na proměnnou - buď proměnnou zařízení, nebo virtuální proměnnou. Odkazovaná proměnná je v definičním textu opět uzavřena s $ na začátku a na konci. Kromě toho je také možné použít definice speciálního formátu za názvem proměnné. Viz kapitola Definice formátu.

    Po definování alespoň „čtecí cesty“ je možné vyzkoušet složení požadavku, odeslání do zařízení, přijetí odpovědi a pokud jsou také definovány hodnoty analýzy, a provést výpočty. Klikněte na 'Testovat žádost' a získejte například následující odpověď:

    Existují informace o složeném REQUEST, než odpověď po RESPONSE, pokud jsou analyzovány některé proměnné, jsou zobrazeny po VARIABLES a pokud jsou definovány FORMULAS, jeho výpočet se zobrazí po FORMULAS.

    Samozřejmě je možné, že se ve složení URL vyskytne chyba - v takovém případě obvykle odpověď webového serveru s chybou (404) nenalezena:

    Pokud je IP adresa nebo název hostitele nesprávně nastaven, takže zařízení není vůbec možné dosáhnout, po uplynutí časového limitu je test dokončen a testovací odpověď je následující:

    Definice pro psaní

    Stejně jako ve čtení definic je i URL pro psaní složena z částí definovaných dříve a relativní cesta je převzata z vlastnosti 'Write path'. Opět je možné definovat vlastní záhlaví a tělo požadavku. Zde lze nastavit také metodu http http. Je možné použít testovací požadavek k odeslání skutečných hodnot zařízení do zařízení a zkontrolovat odpověď.

    Na proměnné lze odkazovat ve vlastnostech „Cesta zápisu“ a „Tělo pro zápis“.

    Vlastnost 'tělo pro psaní' se používá v případě metody POST http.

    Základní stránka modulu

    Návrat zpět z nastavení služby modulu - uložte vlastnosti, pokud byly změněny. Kliknutím na definovaný modul otevřete stránku modulu:

    Základní vlastnosti se zobrazují na začátku stránky - je tedy možné je upravit přímo zde. Ze stránky modulu můžete přejít k nastavení služby modulu. Na této stránce je možné přidat virtuální proměnné. Z této stránky je možné do modulu přidat zařízení.

    Virtuální proměnné

    Virtuální proměnné se používají k transformaci speciálních hodnot definovaných v řetězci, booleovské nebo znakové hodnotě na hodnoty zařízení TapHome nebo k výpočtu. Chcete-li přidat virtuální proměnnou, klikněte na 'Přidat virtuální proměnnou'

    Vyberte typ proměnné, kterou chcete přidat.

    Typ proměnné Number

    Typ proměnné Number se používá k definování proměnné, která ukládá číselné hodnoty - celá čísla nebo čísla s desetinnými místy.

    Typ proměnné String

    Typ proměnné String se používá k ukládání textu bez mezer. Například pokud jsou v požadavku očekávané hodnoty zařízení zapnuty / vypnuty, ale v systému TapHome jsou definovány jako 0/1, je třeba vypočítat virtuální proměnnou typu řetězce a poté odeslat hodnotu z této proměnné. Pro výpočet počtu řetězců lze použít vzorec SWITCH:

    SWITCH(St2, 0, "off", 1, "on","off")

    Řetězce v definici výpočtu musí být uzavřeny v apostrofech.

    Výsledkem bude řetězec podle hodnoty proměnné zařízení St2. Výstup bude „vypnuto“ pro hodnotu 0 a „zapnuto“ pro hodnotu 1. Výchozí hodnota je „vypnuto“. Další informace naleznete v části Výrazy

    Typ proměnné Character

    Typ proměnné Character lze použít k výstupu binárních hodnot. Když je taková proměnná použita v referenčním formátu výstupu, jsou její hodnoty umístěny přímo do řetězce. Předpokládejme například, že chceme vydat binární kódovanou hodnotu stmívače na dva bajty jako 0..1000, což odpovídá 0..100%. V programu TapHome je hodnota stmívače kódována jako 0,000 až 1 000, což představuje 0,100%. Definujeme dvě virtuální proměnné typu Vll a Vl2. Výstupní binární řetězec by měl například začínat bodáním ST a končit znaky CR LF (hexadecimální 0x0D 0x0A). Po počátečním znaku by měl být proveden referenční povel 0x05 a identifikace zařízení 0xFE 0x1C následována dvěma bajty představujícími hodnotu stmívače. Výstupní řetězec by měl být definován takto:

    ST \ x05 \ xFE \ x1C $ Vl1 $$ Vl2 $ \ x0D \ x0A

    Po definici výstupního řetězce budou povoleny dva výpočty - pro Vl1 a Vl2. Tyto výpočty by měly být definovány následovně (hodnota zařízení je uložena v proměnné zařízení Dm3):

    Výpočet pro VL1: ((dm3 1000,0) > > 8) Výpočet pro Vl2: ((Dm3 1000.0) & 0xFF)

    První výpočet používá bitový posun pro 8 bitů doprava - do proměnné Vl1 jsou tedy uloženy pouze bity 8..15 ze dvou bajtů. Druhý výpočet používá binární a operaci k tomu, aby proměnná Vl2 brala pouze 0,7 bitu. Další informace naleznete v části Výrazy

    Řádkové byty jsou v tomto případě tzv. Big endian. V případě, že se pro kódování používá malý endian, změňte pořadí proměnných ve výstupním řetězci.

    Big-endian objednávka umístí nejvýznamnější bajt nejprve a nejméně významný bajt poslední, zatímco little-endian objednávka dělá opak. Zvažte například nezadané hexadecimální číslo 0x1234, které vyžaduje reprezentaci alespoň dvou bajtů. V případě velkého endiantu by to bylo 12 34, zatímco v případě malého endianu byty byly uspořádány 34 12.

    Po přidání virtuálních proměnných se zobrazí jeho seznam:

    Po kliknutí na libovolnou virtuální proměnnou se zobrazí dialogové okno Odstranit:

    Nastavení služeb zařízení.

    Zařízení mají podobné parametry jako modul, který lze použít pro čtení a zápis definic. Pokud definice zařízení pro čtení a zápis není definována, použije se definice modulu. To je velmi užitečné, pokud by požadavek měl obsahovat hodnoty z mnoha zařízení a musí být vyplněn v modulu.

    Kalkulace čtení a psaní jsou vždy definovány v zařízení. Podrobnosti o výpočtech viz výrazy.

    Výpočet hodnoty

    Tento výpočetní výstup je vždy proměnnou zařízení. Pokud má zařízení pouze jednu použitelnou proměnnou zařízení - jako má přepínač pouze stav přepínače, pak je zde název proměnné, který se v definici znovu nepoužívá, a je to pouze název vlastnosti „Výpočet čtení“. V případě zařízení, která mají více výstupních proměnných - jako termostat, který má požadovanou teplotu a také skutečnou teplotu, se název proměnné použije po výpočtu čtení:

    Zápis výpočtů

    Výpočty zápisu jsou vždy definovány pro proměnné, které se používají buď ve vlastnostech 'Cesta zápisu', nebo ve vlastnostech 'Tělo pro zápis'. Při úpravě nové hodnoty jedné z těchto vlastností se automaticky přidá výpočet proměnné:

    Analyzovat definice.

    Ve vlastnostech definice pars chceme číst text z odpovědi a převést jej na proměnné hodnoty. Je nutné definovat, kde by měla začít proměnná parsování. Obvykle stačí napsat text před definicí proměnné, který předcházel textu proměnné. Už to vysvětlujeme na jednoduchém příkladu - odpověď JSON:

    {

    "name":null,

    "ison":false,

    }

    Když chceme analyzovat hodnotu false po textu „ison“: definice analýzy by měla být definována takto:

    "ison": $ Vl2 $

    V tomto případě by měla být proměnná Vl2 virtuální proměnnou typu boolean, aby správně akceptovala hodnoty true / false.

    Co dělat v případě, že máme složitější odpověď - kde je text „ison“: definován na mnoha místech, ale předchází mu definice názvů, které mohou přesně definovat, kde definice začíná.

    V následujícím příkladu je v odpovědi JSON definováno více parametrů - ukázat, jak extrahovat správnou hodnotu.

    {

    "name":relay_0,

    "timer":null,

    "ison":false,

    }

    {

    "name":relay_1,

    "timer":null,

    "ison":false,

    }

    Například chceme analyzovat hodnotu relay_1 - chceme tedy začít číst na pozici, kde je jméno definováno jako relay_1. Ale po této definici je definováno více parametrů, kterou hodnotu přesně neznáme - proto chceme tento text přeskočit, dokud nebude definována definice „ison“:. Definice analýzy by měla být definována takto:

    “Name”: relay_1 ... ”ison”: $ Vl2 $

    Nejprve je uveden text, který přesně definuje jméno relay_1 a poté jsou tři tečky následované stejným textem jako dříve, který předcházel začátku proměnného textu a poté proměnné odkazu.

    Tři tečky „...“ v definicích pars lze použít mezi dvěma textovými definicemi pro přeskočení textu mezi nimi.

    Analyzovaná hodnota se převede na typ odkazované proměnné.

    Proměnné zařízení TapHome jsou vždy číselné.

    Hodnota přepínače může být 0/1.

    Hodnoty více hodnot přepínače začínají od 0 a zvyšují se o 1 o každou další definovanou hodnotu.

    Analogové hodnoty jsou definovány jako procenta od 0 do 1 s tolika desetinnými místy, kolik je třeba. Například 29% znamená 0,29. Hodnoty senzorů jsou v metrických jednotkách. Teplota ve stupních C. Rychlost větru v km / h. Srážky v mm / m2.

    Definice formátu

    Název proměnné ve výstupních definicích musí být uzavřen do $ znaků. Za název proměnné a před koncem $ lze napsat formát formátu.

    $ Vl1, xxx: Fppp $

    xxx ... Je vždy definován po znaku čárky. Definuje šířku řetězce, který je vložen do výsledného řetězce. Pokud je xxx kladné, je řetězcová reprezentace proměnné zarovnaná doprava. Pokud je ale řetězcová reprezentace proměnné delší než xxx znaků, je preferovaná šířka pole ignorována a celý řetězec je vložen do výsledného řetězce. Chcete-li zarovnat řetězce v poli doleva, předponou šířku pole před negativní znamení.

    F ... Znak specifikátoru formátu - je vždy definován po dvojité tečce.

    ppp ... volitelné číslo - přesný specifikátor - pro znaky zvláštního formátu. Význam je podle použitého zvláštního charakteru.

    Specifikátor formátu s pevným bodem („F“)

    Specifikátor formátu s pevným bodem ("F") převádí číslo na řetězec ve tvaru "-ddd.ddd ...", kde každý "d" označuje číslici (0-9). Řetězec začíná znaménkem mínus, pokud je číslo záporné.

    Specifikátor přesnosti označuje požadovaný počet desetinných míst. Pokud je přesný specifikátor vynechán, budou do řetězce zapsány všechny použité desetinné tečky.

    Příklady formátování:

    1234.567 (":F") -> 1234.57

    1234 (":F1") -> 1234.0

    -1234.56 (":F4") -> -1234.5600

    Specifikátor formátu Exponenciální ("E")

    Specifikátor formátu exponenciálního ("E") převádí číslo na řetězec ve tvaru "-d.ddd ... E + ddd" nebo "-d.ddd ... e + ddd", kde každý "d" označuje číslice (0-9). Řetězec začíná znaménkem mínus, pokud je číslo záporné. Jedno desetinné místo vždy předchází vždy jedna číslice.

    Přesný specifikátor označuje požadovaný počet číslic za desetinnou čárkou. Pokud je přesný specifikátor vynechán, použije se výchozí šestimístné číslo za desetinnou čárkou.

    Případ specifikátoru formátu označuje, zda má být exponent předponou „E“ nebo „e“. Exponent vždy obsahuje znaménko plus nebo mínus a minimálně tři číslice. Exponent je vyplněn nulami, aby v případě potřeby splnil toto minimum.

    Příklady formátování:

    1052.0329112756 (":E") -> 1.052033E+003

    1052.0329112756 (":e2") -> -1.05e+003

    Příklad formátování včetně definice šířky:

    Vl1 = 1794.68235

    $Vl1,12:E3$ $Vl1,12:F4$ => ' 1.795E+003 1794.6824'

    $Vl1,-12:E3$ $Vl1,-12:F4$ => '1.795E+003 1794.6824 '

    Specifikátor formátu hexadecimální ("X")

    Specifikátor formátu hexadecimálního ("X") převede číslo na řetězec hexadecimálních číslic. Případ specifikátoru formátu označuje, zda se pro hexadecimální číslice, které jsou větší než 9, použijí velká nebo malá písmena. Například pomocí "X" vytvoříte "ABCDEF" a "x" vytvoříte "abcdef". Tento formát je podporován pouze pro číselné typy a číslo se používá jako celé číslo bez zaokrouhlování.

    Specifikátor přesnosti označuje minimální počet číslic požadovaný ve výsledném řetězci. V případě potřeby je číslo vyplněno nulami vlevo pro vytvoření počtu číslic zadaných přesným specifikátorem.

    Příklady formátování:

    3567.7 (“:X4:) → 0DEF