Ricerca
MENU
  • Tap Home App
  • Espressioni
  • Architettura di sistema per tipo di progetto
  • Utenti e autorizzazioni
  • Configurazione di Packet parser

    In ImpostazioniHardware seleziona Aggiungi una nuova interfaccia e scegli Packet parser.

    Ci sono due possibilità su come aggiungere dispositivi. Il primo è aggiungere manualmente il modulo e quindi i dispositivi. Il secondo è aggiungere l'intero set dal modello. Per aggiungere dispositivi dal modello, segui il capitolo Configurazione di Packet parser utilizzando modelli predefiniti .

    Aggiungi modulo

    Il modulo rappresenta il dispositivo fisico con indirizzo IP o nome host, definizione di accesso e altri parametri comuni. Dopo aver aggiunto e configurato il modulo è possibile aggiungere dispositivi, che vengono implementati sul dispositivo fisico. Fare clic su AGGIUNGI MODULO e impostare prima il nome host o l'indirizzo IP:

    Fai clic su OK e inserisci il percorso principale. Il percorso di root è il percorso comune utilizzato da tutti i dispositivi nel modulo. Il percorso radice più semplice è un carattere barra: '/'

    Fare clic su OK per accedere alle impostazioni del servizio del modulo.

    Impostazioni del servizio del modulo

    Le impostazioni del servizio del modulo sono divise in un gruppo di proprietà.

    Variabili del dispositivo

    L'elenco delle variabili supportate per ciascun dispositivo viene visualizzato nel gruppo Variabili dispositivo. Il nome breve delle variabili visualizzato sul lato destro viene utilizzato per l'analisi della definizione del valore del dispositivo, delle definizioni di formattazione dell'output o nel calcolo.

    Autenticazione

    Nel caso in cui sia richiesta l'autenticazione, inserire Utente e password e selezionare il tipo di autenticazione. Ora sono supportati i tipi di autenticazione di base e digest.

    Impostazioni di rete

    Nel caso in cui si riempia l'indirizzo IP o il nome host e il percorso root corretti durante l'aggiunta del modulo, questi parametri sono ora impostati correttamente. Alcune Packet parser richiedono una porta 80 diversa da quella predefinita. In questo caso, modificare la porta in queste impostazioni. Nel caso in cui dopo ogni comando la connessione debba essere chiusa, lasciare i parametri 'Resta connesso' in stato spento. Quando è possibile mantenere attiva la connessione tra i comandi, impostare questo parametro su on. Scegli il tipo di connessione tra http e https (protetto).

    Definizioni per la lettura

    Il modulo può definire direttamente i parametri di lettura per riempire i valori dei dispositivi.

    L '"Intervallo di polling interno" viene utilizzato per definire la frequenza con cui eseguire il polling dei valori del dispositivo. Nel caso in cui si stia utilizzando un dispositivo nella rete locale, si consiglia di utilizzare 2500 ms. L'intervallo più breve è di 500 ms. Nel caso in cui venga utilizzato un dispositivo da Internet - ad esempio informazioni meteorologiche come la temperatura dell'aria in alcune città - si consiglia di utilizzare un intervallo di polling lungo (almeno minuti o ora) per non essere disabilitato dall'amministratore della pagina a causa della politica antispam.

    La richiesta HTTP è composta da indirizzo URL, intestazioni speciali e nel caso sia richiesta POST anche dal corpo della richiesta. L'indirizzo URL è composto dal tipo di connessione (http / https) nome host o indirizzo IP, porta, percorso radice e percorso relativo - in questo caso definito nella proprietà Percorso di lettura. Esempio di richiesta http se il percorso root è solo /, la porta è 1400 e il percorso relativo è read_switch:

    http://192.168.0.1:1400/read_switch

    Se 'Leggi metodo http' non è definito, viene utilizzato il metodo GET.

    È possibile direttamente nel modulo definire i valori di analisi dalla risposta ricevuta alle variabili del dispositivo o variabili virtuali predefinite.

    L'uso della variabile all'interno delle definizioni di analisi delle risposte richiede di racchiudere il nome della variabile con caratteri $. Ad esempio, il nome della variabile Vl1 deve essere usato come $ Vl1 $.

    Ad esempio se abbiamo una risposta in formato JSON come questa:

    {

    "name":null,

    "ison":false,

    }

    e vogliamo analizzare la risposta per passare. Il valore della risposta è booleano vero / falso dopo il nome "ison". Dobbiamo definire una variabile virtuale di tipo booleano (in questo caso è Vl2 - le variabili virtuali verranno spiegate in seguito) e ricevere prima la risposta a questa variabile definendo il parametro 'Risposta analisi' come questo:

    Il testo "ison": $ Vl2 $ significa che vogliamo trovare esattamente la stringa "ison": e quando lo avremo trovato interpreteremo i caratteri successivi come variabili booleane (sono possibili valori vero / falso). Avremo il valore ora nella variabile virtuale - ma vogliamo averlo nella variabile dispositivo - quindi nel dispositivo è necessario definire il calcolo della lettura che consisterà solo dalla variabile Vl2. Il tipo di variabile viene automaticamente trasferito al tipo di variabile del dispositivo, in questo caso 0/1. Per ulteriori informazioni, consultare il capitolo Analisi dettagliate.

    Nelle proprietà 'ReadPath' e 'Body for reading' è possibile utilizzare il riferimento alla variabile - variabile dispositivo o variabile virtuale. La variabile di riferimento è di nuovo nel testo di definizione racchiuso tra $ all'inizio e alla fine. Tranne questo, è anche possibile utilizzare definizioni di formato speciali dopo il nome della variabile. Fare riferimento al capitolo Definizioni di formato.

    Dopo aver definito almeno 'Percorso di lettura' è possibile testare la composizione della richiesta, inviarla al dispositivo, ricevere la risposta e se anche definito valori di analisi ed eseguire i calcoli. Fare clic su "Richiesta test" e ottenere ad esempio la seguente risposta:

    Ci sono informazioni su RICHIESTA composta, oltre alla risposta dopo RISPOSTA, se vengono analizzate alcune variabili, queste vengono visualizzate dopo VARIABILI e se ci sono FORMULE definite, il suo calcolo viene visualizzato dopo le FORMULE.

    Naturalmente è possibile che ci sia un errore nella composizione dell'URL - in tal caso di solito la risposta del server Web con errore (404) non è stata trovata:

    Se l'indirizzo IP o il nome host è impostato erroneamente in modo che il dispositivo non sia raggiungibile affatto, la richiesta termina dopo il timeout e la risposta del test è così:

    Definizioni per la scrittura

    Come nella lettura delle definizioni, anche l'URL per la scrittura è composto da parti definite in precedenza e il percorso relativo è preso dalla proprietà 'Scrivi percorso'. Ancora una volta è possibile definire intestazioni personalizzate e corpo della richiesta. Anche il metodo di scrittura http può essere impostato qui. È possibile utilizzare la richiesta di test per inviare i valori effettivi del dispositivo al dispositivo e verificare la risposta.

    È possibile fare riferimento alle variabili nelle proprietà "Percorso di scrittura" e "Corpo per scrittura".

    La proprietà 'Body for writing' viene utilizzata nel caso del metodo POST http.

    Pagina base del modulo

    Torna indietro dalle impostazioni di servizio del modulo: salva le proprietà se modificate. Fare clic sul modulo definito per aprire la pagina del modulo:

    Le proprietà di base vengono visualizzate all'inizio della pagina, quindi è possibile modificarle direttamente qui. Dalla pagina del modulo è possibile accedere alle impostazioni del servizio del modulo. In questa pagina è possibile aggiungere variabili virtuali. Da questa pagina è possibile aggiungere dispositivi al modulo.

    Variabili virtuali

    Le variabili virtuali vengono utilizzate per trasformare valori speciali definiti in stringa, booleana o carattere in valori del dispositivo TapHome o per eseguire calcoli. Per aggiungere una variabile virtuale, fare clic su "Aggiungi variabile virtuale"

    Seleziona il tipo di variabile che desideri aggiungere.

    Tipo di variabile Numero

    Tipo di variabile Numero viene utilizzato per definire la variabile che memorizza i valori numerici - numeri interi o numeri con punti decimali.

    Tipo di variabile String

    Il tipo di variabile String viene utilizzato per memorizzare il testo senza spazi bianchi. Ad esempio, se nella richiesta i valori attesi del dispositivo sono on / off, ma in TapHome sono definiti come 0/1 è necessario calcolare la variabile virtuale di tipo stringa e quindi inviare il valore da questa variabile. Per il calcolo del numero da mettere in stringa è possibile utilizzare la formula SWITCH:

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

    Le stringhe nella definizione di calcolo devono essere racchiuse tra apostrofi.

    Ciò genererà la stringa in base al valore della variabile dispositivo St2. L'output sarà "off" per il valore 0 e "on" per il valore 1. Il valore predefinito è "off". Per ulteriori informazioni, consultare Espressioni

    Tipo di variabile Carattere

    Tipo di carattere Il carattere può essere utilizzato per generare valori binari. Quando tale variabile viene utilizzata nel riferimento del formato di output, i suoi valori vengono inseriti direttamente nella stringa. Ad esempio, supponiamo di voler produrre un valore in codice binario del dimmer su due byte come 0..1000 corrispondente a 0..100%. In TapHome il valore del dimmer è codificato da 0.000 a 1.000 che rappresenta lo 0..100%. Definiremo due variabili virtuali di tipo di carattere Vl1 e Vl2. La stringa binaria di output dovrebbe ad esempio iniziare con pungiglione ST e terminare con caratteri CR LF (esadecimali 0x0D 0x0A). Dopo l'avvio il carattere deve essere il riferimento di comando 0x05 e l'identificazione del dispositivo 0xFE 0x1C seguita dai due byte che rappresentano il valore del dimmer. La stringa di output deve essere definita come segue:

    ST \ x05 \ XFE \ X1c $ Vl1 $$ VL2 $ \ x0D \ x0A

    Dopo la definizione della stringa di output saranno abilitati due calcoli - per Vl1 e Vl2. Questi calcoli devono essere definiti come segue (il valore del dispositivo è memorizzato nella variabile del dispositivo Dm3):

    Calcolo per Vl1: ((Dm3 1000.0) > > 8) Calcolo per Vl2: ((Dm3 1000.0) e 0xFF)

    Il primo calcolo usa il bit shift per 8 bit a destra, quindi solo i bit 8..15 da un numero di due byte vengono memorizzati nella variabile Vl1. Il secondo calcolo usa binario e operazione per portare solo 0..7 bit alla variabile Vl2. Per ulteriori informazioni, consultare Espressioni

    I byte di ordine in questo caso sono chiamati big endian. Nel caso in cui vi sia un piccolo endian utilizzato per la codifica, modificare l'ordine delle variabili nella stringa di output.

    Un ordinamento big-endian posiziona prima il byte più significativo e l'ultimo byte meno significativo, mentre un ordinamento little-endian fa il contrario. Ad esempio, considerare il numero esadecimale senza segno 0x1234, che richiede almeno due byte per rappresentare. In un ordinamento big-endian sarebbero 12 34, mentre in un ordinamento little-endian, i byte sarebbero disposti 34 12.

    Dopo aver aggiunto le variabili virtuali viene visualizzato il suo elenco:

    Quando si fa clic su una variabile virtuale, viene visualizzata la finestra di dialogo Elimina:

    Impostazioni del servizio dispositivi.

    I dispositivi hanno parametri simili al modulo che può essere utilizzato per leggere e scrivere definizioni. Se la definizione del dispositivo per la lettura e la scrittura non è definita, vengono utilizzate le definizioni del modulo. Ciò è molto utile se la richiesta deve consistere in valori di molti dispositivi e deve essere completata nel modulo.

    La lettura dei calcoli e la scrittura dei calcoli sono sempre definiti nel dispositivo. Per dettagli sui calcoli, consultare Espressioni.

    Calcolo della lettura

    Questo output di calcolo è sempre la variabile del dispositivo. Se il dispositivo ha una sola variabile di dispositivo utilizzabile - come Switch ha solo Switch State, allora c'è il nome della variabile non usato di nuovo nella definizione ed è presente solo il nome della proprietà "Calcolo della lettura". Nel caso di dispositivi che hanno più variabili di uscita, come termostato che ha la temperatura desiderata e anche la temperatura reale, il nome della variabile viene utilizzato dopo aver letto il calcolo:

    Scrivere calcoli

    I calcoli di scrittura sono sempre definiti per le variabili utilizzate nelle proprietà "Percorso di scrittura" o "Corpo per scrittura". Quando viene modificato il nuovo valore di una di queste proprietà, il calcolo variabile viene aggiunto automaticamente:

    Definizioni di analisi.

    Nelle proprietà delle definizioni di analisi vogliamo leggere il testo dalla risposta e convertirlo in valori variabili. È necessario definire dove deve iniziare l'analisi della variabile. Di solito è sufficiente scrivere prima del testo a definizione variabile che ha preceduto il testo della variabile. Lo spieghiamo già su un semplice esempio: risposta JSON:

    {

    "name":null,

    "ison":false,

    }

    Quando vogliamo analizzare il valore false dopo il testo "ison": la definizione di analisi dovrebbe essere definita in questo modo:

    "Ison": $ VL2 $

    In questo caso la variabile Vl2 dovrebbe essere una variabile virtuale di tipo booleano, per accettare correttamente i valori vero / falso.

    Cosa fare nel caso in cui si abbia una risposta più complicata - in cui il testo "ison": è definito in molti punti ma è preceduto da definizioni di nomi che possono definire esattamente dove inizia la definizione.

    Nel seguente esempio sono definiti più parametri nella risposta JSON - per mostrare come estrarre il valore giusto.

    {

    "name":relay_0,

    "timer":null,

    "ison":false,

    }

    {

    "name":relay_1,

    "timer":null,

    "ison":false,

    }

    Ad esempio, vogliamo analizzare il valore di relay_1, quindi vogliamo iniziare a leggere nella posizione in cui il nome è definito come relay_1. Ma dopo questa definizione vengono definiti più parametri, che valore non conosciamo esattamente - quindi vogliamo solo saltare questo testo fino a "ison": definizione. La definizione di analisi deve essere definita in questo modo:

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

    C'è prima il testo che definisce esattamente il nome relay_1 e dopo che sono tre punti seguiti dallo stesso testo di prima, che ha preceduto l'inizio del testo variabile e quindi il riferimento della variabile.

    I tre punti '...' nelle definizioni di analisi possono essere utilizzati tra due definizioni di testo per saltare il testo tra.

    Il valore analizzato viene convertito nel tipo di variabile referenziata.

    Le variabili del dispositivo TapHome sono sempre di tipo numerico.

    Il valore dell'interruttore può essere 0/1.

    I valori dell'interruttore multi valore iniziano da 0 e aumentano di 1 di ogni successivo valore definito.

    I valori analogici sono definiti come percentuali da 0 a 1 con tutti i punti decimali necessari. Ad esempio, il 29% significa 0,29. I valori dei sensori sono in unità metriche. Temperature in gradi C. Velocità del vento in km / h. Precipitazioni in mm / m2.

    Definizioni di formato

    Il nome della variabile nelle definizioni di output deve essere racchiuso tra $ caratteri. Dopo il nome della variabile e prima della fine $ è possibile scrivere la definizione del formato.

    $ Vl1, xxx: Fppp $

    xxx ... Viene sempre definito dopo il carattere virgola. Definisce la larghezza della stringa inserita nella stringa del risultato. Se xxx è positivo, la rappresentazione di stringa della variabile è allineata a destra. Se la rappresentazione della stringa della variabile è più lunga di xxx caratteri, la larghezza del campo preferita viene ignorata e l'intera stringa viene inserita nella stringa del risultato. Per allineare a sinistra le stringhe in un campo, si prefigge la larghezza del campo con un segno negativo.

    F ... Carattere identificatore di formato - è sempre definito dopo il doppio punto.

    ppp ... numero opzionale - identificatore di precisione - per caratteri di formato speciale. Il significato è in base al carattere speciale usato.

    Identificatore di formato a punto fisso ("F")

    L'identificatore di formato a punto fisso ("F") converte un numero in una stringa del formato "-ddd.ddd ..." dove ogni "d" indica una cifra (0-9). La stringa inizia con un segno meno se il numero è negativo.

    L'identificatore di precisione indica il numero desiderato di posizioni decimali. Se l'identificatore di precisione viene omesso, tutti i punti decimali utilizzati vengono scritti nella stringa.

    Esempi di formattazione:

    1234.567 (":F") -> 1234.57

    1234 (":F1") -> 1234.0

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

    Identificatore di formato esponenziale ("E")

    L'identificatore di formato esponenziale ("E") converte un numero in una stringa del formato "-d.ddd ... E + ddd" o "-d.ddd ... e + ddd", dove ogni "d" indica una cifra (0-9). La stringa inizia con un segno meno se il numero è negativo. Esattamente una cifra precede sempre il punto decimale.

    L'identificatore di precisione indica il numero desiderato di cifre dopo il punto decimale. Se l'identificatore di precisione viene omesso, viene utilizzato un valore predefinito di sei cifre dopo il punto decimale.

    Il caso dell'identificatore di formato indica se anteporre l'esponente con una "E" o una "e". L'esponente è sempre composto da un segno più o meno e da un minimo di tre cifre. L'esponente è riempito di zeri per soddisfare questo minimo, se necessario.

    Esempi di formattazione:

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

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

    Esempio di formattazione inclusa la definizione della larghezza:

    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 '

    L'identificatore di formato esadecimale ("X")

    L'identificatore di formato esadecimale ("X") converte un numero in una stringa di cifre esadecimali. Il caso dell'identificatore di formato indica se utilizzare caratteri maiuscoli o minuscoli per cifre esadecimali maggiori di 9. Ad esempio, utilizzare "X" per produrre "ABCDEF" e "x" per produrre "abcdef". Questo formato è supportato solo per tipi numerici e il numero viene utilizzato come numero intero senza alcun arrotondamento.

    L'identificatore di precisione indica il numero minimo di cifre desiderato nella stringa risultante. Se necessario, il numero viene riempito con zeri alla sua sinistra per produrre il numero di cifre fornito dallo specificatore di precisione.

    Esempi di formattazione:

    3567.7 (“:X4:) → 0DEF