@City IoT Cloud Platform




iSys - Sistemi intelligenti IoT Soluzioni









IoE.Systems

Sommario

1. Introduzione. 5

1.1 Tipi di dispositivi supportati. 5

1.2. Tipi di prodotti supportati. 5

1.3. Protocolli di comunicazione supportati 5

1.4. Tecnologia di comunicazione supportata dei dispositivi 6

1.5. @City Cloud Server 6

1.5.1. Server e gateway di comunicazione 7

1.5.2 Integrazione HTTP LoRaWAN 7

1.5.3. Interfaccia front-end 8

1.5.3. Diritti di accesso al server 8

1.6. Dispositivi intelligenti 9

1.6.1. CIoT - Dispositivi GSM 9

1.6.3. BAS, BMS, IoT - Dispositivi Ethernet e WiFi 9

1.6.2. IoT Dispositivi -LoRaWAN 9

1.7. Opzioni Business to Business (B2B) 9

2. @City IoT Funzionalità della piattaforma 10

3. Pagina principale 11

4. Modulo principale 11

4.1. Intestazione 12

4.1.1. Home Link - (apre la tabella dei risultati effettivi) 12

4.1.2. Casella di controllo "X": apre / chiude il modulo di query 12

4.1.3. Casella di controllo "V": apre / chiude il modulo campi 12

4.1.4. Icone grafiche: collegamenti ai risultati della visualizzazione (modificabili) 12

4.2. Modulo: 12

4.2.1. Casella di controllo "X": apre / chiude l'intero modulo di query 12

4.2.2. CSS: seleziona il tema di visualizzazione 12

4.2.3 Casella di controllo Campi visibili: mostra / nasconde l'elenco dei filtri dei campi 12

4.2.4. Tab: nome della scheda da aggiungere o rimuovere 12

4.2.5. Pulsanti Aggiungi / Rimuovi - Aggiungi o rimuovi schede con il nome nel campo Scheda 12

4.2.6. Seleziona il pulsante principale 12

4.2.7. Deseleziona tutto il pulsante 12

4.2.7. Pulsante Seleziona tutto 12

4.2.8. Nascondi filtro - Nascondi l'intero modulo 12

4.2.9. Pulsante Esegui - Modifica le impostazioni dei parametri 13

4.2.10. Casella di controllo "V" - mostra / campi filtro alto. 13

4.3. Linguette 13

4.4. Sommario della tabella 13

4.4.1. Esegui: visualizza il tipo di risultato 13

4.4.2. Copia (+/- link) 13

4.4.3. Collegamenti alle celle della tabella 13

4.5. Ordine dati 13

4.6. Esempio 13

5. Mappe 15

5.1. Inizializzazione della mappa 15

5.2. Impostazioni opzionali per query 15

5.2.1. Modifica scala MAP (livello di zoom) 16

5.2.2. IMEI (Seleziona campo dispositivo) 16

5.2.3. Lon, Lat (campi di coordinate di longitudine, latitudine) 16

5.2.4. Modifica stile MAP (tema) 16

5.2.5. WHERE clausola 16

5.2.6. Esegui (pulsante Esegui query) 16

5.2.7. Deseleziona tutto (Rimuovi tutti i campi dalla query) 17

5.2.8. Casella di controllo "V" (Apri / Chiudi modulo campo) 17

5.2.9. Casella di controllo "X" (Mostra / Nascondi modulo query) 17

5.3. Esempio 17

6. Mostra risultati nella tabella 18

6.1. Inizializzazione della tabella 18

6.2. Impostazioni opzionali per la query 19

6.2.1. Ordina: ordina il campo e l'ordine crescente / decrescente 19

6.2.2. DB / IMEI - Seleziona dispositivo 19

6.2.3. CSS: seleziona lo stile (tema di visualizzazione) 20

6.2.4. Campi visibili - Mostra / Nascondi modulo campi 20

6.2.5. Rimuovi vuoto: non visualizzare le colonne vuote 20

6.2.6. Casella di controllo "X" (Mostra / Nascondi modulo query) 20

6.2.7. Clausola Where (per la limitazione dei dati) 20

6.2.8. Seleziona il pulsante principale (Abilita i campi più comuni) 20

6.2.9. Deseleziona tutto il pulsante (Rimuovi tutti i campi dalla query) 20

6.2.10. Esegui (pulsante Esegui query) 20

6.2.11. Casella di controllo "V" (Apri / Chiudi modulo campo) 20

7. Grafici a barre. 21

8. Grafici storici. 22

8.1. Inizializzazione dei grafici storici 22

8.2. Impostazioni opzionali dei grafici storici 23

8.2.1. IMEI - (Seleziona dispositivo per visualizzare i dati storici) 23

8.2.2. Min - limite minimo del valore del primo campo 23

8.2.3. Max - limita il valore massimo del primo campo 23

8.2.4. "V" - Mostra / Nascondi modulo campi 23

8.2.5. Da: imposta data / ora minima (*) 23

8.2.6. A: impostare la data / ora massima della data (*) 23

8.2.7. Casella di controllo "X" (Mostra / Nascondi modulo query) 23

8.2.8. "Dove" Clausola 23

8.2.9. Deseleziona tutto il pulsante (Rimuovi tutti i campi dalla query) 23

8.2.10. Esegui (pulsante Esegui query) 23

8.2.11. Casella di controllo "V" (Apri / Chiudi modulo campo) 24

8.3. Variante barre: (visualizza solo i dati disponibili) 24

8.4. Variante continua (con gli stessi dati): 24

9. Compatibilità browser web 25

10. Personalizzazione dei temi 26

11. Aggiornamento algoritmi 27

12. Struttura del database 28

12.1. Struttura delle tabelle "ithings_" e "*" 29

12.2. Tabella "* _c" della coda dei comandi del dispositivo (eventi) - struttura 30

12.3. Accesso ai risultati dai database - Livello medio (lettura dei dati) 30

12.3.1. Ottieni gli stati correnti di tutti i dispositivi 30

12.3.2. Ottieni dati storici per il dispositivo 31

12.3.3. Ottieni l'elenco dei dispositivi - campo singolo dagli stati correnti con limitazione 32


1. Introduzione.

@City IoT Cloud Platform è dedicato "micro-cloud" sistema per i singoli clienti. La piattaforma non è condivisibile e solo un cliente ha accesso a server fisici o virtuali (VPS o server dedicati). Il cliente può selezionare uno tra dozzine di data center in Europa o nel mondo.

1.1 Tipi di dispositivi supportati.

La piattaforma @City IoT è dedicata ai seguenti prodotti iSys.PL



1.2. Tipi di prodotti supportati.

La piattaforma @City (eCity) Cloud IoT è un sistema di varie dimensioni per i prodotti IP IoT (chiamati insieme come @ City Hardware o Dispositivi CioT ):


1.3. Protocolli di comunicazione supportati

La piattaforma @City IoT supporta i seguenti protocolli di comunicazione:

I dati inviati dal controller al server cloud e viceversa vengono crittografati in un formato binario unico per una dimensione dei dati minima e una maggiore sicurezza. Ogni partner riceve la propria chiave di crittografia univoca per l'autorizzazione del dispositivo, il controllo della validità dei dati, ecc.


Per i dispositivi non eHouse / eCity possiamo fornire algoritmi di crittografia individuali ( "C" codice sorgente) per ogni partner per microprocessore per proteggere i dati prima della comunicazione.

In questo caso i dati sono completamente protetti durante la comunicazione bidirezionale sui mezzi di comunicazione pubblici (Internet, Aereo, ecc. ).


1.4. Tecnologia di comunicazione supportata dei dispositivi

La piattaforma @City IoT supporta:


La piattaforma @City IoT è dedicata ai dispositivi / nodi:


1.5. @City Cloud Server

Il software @City funziona su VPS (Virtual Private Server) basato su Linux o Server Dedicato lato Internet, a seconda delle prestazioni richieste del Server (chiamato successivamente Server):


Esistono diverse varianti di VPS a seconda di:


Esistono dozzine di server dedicati a seconda di:


La piattaforma @City IoT è dedicata al singolo cliente:


Poiché non è un server condivisibile tra i clienti, semplifica l'accesso alla sicurezza e i problemi di prestazioni. Per questo motivo, solo il cliente è responsabile della sicurezza, della stabilità, dell'efficienza, della trasmissione dei dati, ecc. In caso di prestazioni insufficienti, il cliente può acquistare un piano più alto (VPS o server dedicato), più ottimale rispetto alle funzionalità e alle prestazioni previste.

In casi speciali "Cloud to cloud" la comunicazione potrebbe essere implementata per la globalizzazione e la centralizzazione dei dati in aree più grandi invece del cloud multi-cliente.

1.5.1. Server e gateway di comunicazione

La comunicazione di @City Server è realizzata sulla base di un'applicazione di basso livello per la massimizzazione delle prestazioni.

Le caratteristiche principali dell'applicazione @City Server sono:

Il software @City Server è lo stesso per ogni utente e non può essere personalizzato per clienti diversi.

1.5.2 Integrazione HTTP LoRaWAN

I controller LoRaWAN sono integrati con il cloud @City tramite l'interfaccia HTTP (webhook) disponibile sulla rete / application server LoRaWAN.

Sono supportati diversi tipi di server di rete / applicazioni:

TTN (tempo limitato "In onda" e il numero massimo di comandi inviati al driver e non supportano l'aggiornamento del firmware)

LoraWAN-Stack (richiede l'hosting su un dispositivo fisico con accesso a Internet).

LoraServer.Io (richiede l'hosting su un dispositivo fisico con accesso a Internet - solo l'invio di dati al server e non supporta l'aggiornamento del firmware)



Il @City Cloud per i controller LoRaWAN è suddiviso come per le altre interfacce. È discusso nel capitolo precedente.

1.5.3. Interfaccia front-end

L'interfaccia front-end è realizzata con script PHP per l'estrazione di dati personalizzati da @City Cloud Database. Utilizza un meccanismo di ricerca molto elastico, basato su query SQL originali per limitare i dati desiderati. L'interfaccia fornisce i risultati delle query in formato JSON per l'ulteriore decodifica ed elaborazione da parte di "applicazione" Web front-end.

L'interfaccia front-end originale è la stessa per ogni utente e non può essere personalizzata per clienti diversi.

L'interfaccia overlay può essere creata dal nostro personale o in collaborazione per garantire la personalizzazione per il cliente.

1.5.3. Diritti di accesso al server

I diritti di accesso del cliente (al server fisico) sono limitati.

Accesso ai file solo per la directory "modelli" (file di testo nativo - .txt, .js, .css, .html):

Altri diritti di accesso:


iSys, il personale di Intelligent Systems, ha accesso illimitato all'intero server, incluso l'account root e l'accesso completo al database per la manutenzione.

In determinate circostanze iSys potrebbe concedere ulteriori diritti limitati al cliente (script PHP, file) dopo aver verificato il codice sorgente, eseguito test, se non influisce sulla sicurezza, stabilità e prestazioni complessive del sistema.


1.6. Dispositivi intelligenti

1.6.1. CIoT - Dispositivi GSM

I nostri dispositivi contengono microcontrollore e modulo GSM / GPS / GNSS (2G..4G, NBIoT, CATM1) per la comunicazione. Il microcontrollore contiene un bootloader crittografato per l'aggiornamento sicuro del firmware OTA. Ciò consente di creare molte varianti di sistema basate sullo stesso "Dispositivo CIoT Smart".


1.6.3. BAS, BMS, IoT - Dispositivi Ethernet e WiFi


I controller Ethernet e WiFi consentono la comunicazione basata su IP con il sistema (senza addebito per il trasferimento dei dati all'operatore GSM). Questi dispositivi hanno anche un bootloader crittografato e i dispositivi potrebbero essere aggiornati tramite la sua interfaccia nativa. Per WiFi ha l'aggiornamento del firmware OTA dal server principale


1.6.2. IoT - Dispositivi LoRaWAN

LoRaWAN consente la trasmissione di dati su distanze molto lunghe (fino a ca. 15 km). Questa portata dipende dalla velocità di trasmissione dei dati, dalla quantità di dati, dall'urbanizzazione dell'area e dall'efficienza dei percorsi radio dei dispositivi.

I nostri dispositivi includono un microcontrollore e un modulo LoRaWAN per la comunicazione. Il microcontrollore contiene un bootloader crittografato per l'aggiornamento sicuro del software OTA. Ciò consente di creare più varianti di sistema basate sullo stesso "IoT smart device". I dispositivi funzionano nella banda aperta ISM senza costi di abbonamento aggiuntivi. È necessario utilizzare LoRaWAN Gateway per coprire l'intera area con accesso a Internet. Nel caso di porte LoRaWAN esistenti all'interno del raggio di dispositivi (configurati per server TTN), è possibile inviare informazioni attraverso di essi. L'aggiornamento del firmware richiede il proprio server LoRaWAN di rete / applicazione e un buon raggio di comunicazione.

1.7. Opzioni Business to Business (B2B)


Esistono diverse opzioni per gli affari e la cooperazione:

2. @City IoT Funzionalità della piattaforma

La piattaforma @City supporta il modello front-end personalizzabile per la visualizzazione, l'interrogazione, la limitazione e l'elaborazione dei dati (dati correnti / cronologici):


Il front-end dell'utente è accessibile tramite IP statico o dominio / sottodominio / file di reindirizzamento DNS, se disponibile.


Installazione esemplare e demo (è abilitata solo per potenziali clienti).

Informaci quando desideri testarlo - per consentire l'accesso pubblico alla piattaforma.

Potrebbe richiedere l'IP statico del computer remoto per abilitare la comunicazione con la piattaforma @City.


3. Pagina principale

La pagina principale è stata lasciata vuota intenzionalmente per motivi di sicurezza: http: //% YourIP% / IoT /

Potrebbe essere abilitato e modificato individualmente e contenere collegamenti a tutti i servizi disponibili di @City IoT Platform se è necessario


4. Modulo principale

Main Form ha lo scopo di creare nuovi preset e schede: http: //%IP%/IoT/que.php

Questa è la forma iniziale per la creazione di risultati, visualizzazioni e schede per ogni configurazione




Descrizioni (dall'alto e da sinistra a destra)

4.1. Intestazione

4.1.1. Home Link - (apre la tabella dei risultati effettivi)

4.1.2. "X" casella di controllo: apre / chiude il modulo di query

4.1.3. "V" casella di controllo - apre / chiude il modulo dei campi

4.1.4. Icone grafiche - collegamenti ai risultati di visualizzazione (modificabili)


4.2. Modulo:

4.2.1. "X" casella di controllo: apre / chiude l'intero modulo di query

4.2.2. CSS - Seleziona Tema di visualizzazione

Modificare il tema di visualizzazione Il file CSS deve esistere in formato "modelli / css /" directory - elencata automaticamente.

4.2.3 Campi visibili casella di controllo: mostra / nasconde l'elenco dei filtri dei campi

4.2.4. Scheda: Nome scheda da aggiungere o rimuovere

4.2.5. Aggiungi Rimuovi Pulsanti: aggiungi o rimuovi schede con il nome in Tab campo

4.2.6. Seleziona Core Pulsante

Seleziona i campi principali visibili nella tabella. It è aggiornato automaticamente.

4.2.7. Deselezionare tutto Pulsante

Deseleziona tutti i campi (deve essere seguito selezionandone alcuni manualmente)

4.2.7. Seleziona tutto Pulsante

Seleziona tutti i campi (deve essere seguito deselezionarne alcuni manualmente)

4.2.8. Nascondi filtro - Nascondi l'intero modulo

Questo è equivalente a tutte le caselle di controllo (X)

4.2.9. Eseguire Pulsante - Modifica le impostazioni dei parametri

4.2.10. "V" casella di controllo - mostra / campi filtro alto.


4.3. Tab

Schede create individualmente con nomi e preimpostazioni (memorizzate in cfg / tabs.cfg file).

Il file contiene effettivamente nome e URL (separati da caratteri di tabulazione).


4.4. Sommario della tabella

Visualizza tutti i campi limitati dal filtro campo.


Campi nella tabella:

4.4.1. Correre - visualizza il tipo di risultato

carta geografica- risultati della mappatura sulla mappa (è possibile selezionare uno o più campi)

storia - grafici storici (è possibile selezionare uno o più campi)

tab - visualizza la tabella (è possibile selezionare qualsiasi combinazione di campi)

bar - solo un campo viene visualizzato nel grafico a barre

Premendo uno dei suoi valori si apriranno nuovi risultati con i campi selezionati (per la riga corrente).


4.4.2. Copia (+/- link)

Aggiunta / rimozione di una scheda con il nome impostato in Tab campo. Utilizza solo i campi selezionati nella stessa riga della tabella.


4.4.3. Collegamenti alle celle della tabella

Premendo qualsiasi altro nome di campo avvierà la visualizzazione dei dati del campo selezionato per la riga selezionata.


4.5. Ordine dei dati


L'ordine dei campi visualizzati è come il suo ordine nel modulo dei campi (tuttavia tm viene sempre inviato alla fine del testo). Questo ordine può essere modificato solo con la modifica diretta dei parametri URL (parte dell'ordine dei campi).


4.6. Esempio

Ad esempio: Setting Tab con Monitoraggio delle risorse nome e contiene la mappa con il tempo e la velocità sulla mappa

Tutta la descrizione si riferisce alla riga dove "Map" il testo è in "Correre" colonna.

  1. Inserisci il nome "Monitoraggio delle risorse" nel Tab campo (senza virgolette)

  2. Assicurati che tutte le colonne non siano selezionate nella riga

  3. Selezionare tm, gps_speed_km solo in fila

  4. stampa + pulsante dove nella riga






5. Mappe

Le mappe possono essere avviate da MainForm con la preconfigurazione


5.1. Inizializzazione della mappa

L'inizializzazione della mappa viene eseguita manualmente se eseguita direttamente con il collegamento: > http: //%IP%/IoT/maps.php


  1. L'utente deve deselezionare tutti i campi (premere Deseleziona Pulsante)

  2. Premere alcune caselle di controllo per i campi visualizzati (es. Ain5 (per il livello di smog) e tm (per data / ora di misurazione)

  3. stampa "V" casella di controllo per nascondere il modulo dei campi

  4. stampa Eseguire pulsante per eseguire query DB e visualizzare le informazioni correnti da tutti i sensori / dispositivi

  5. La mappa con i dati viene aggiornata dopo 30 secondi o più.


5.2. Impostazioni opzionali per la query

Impostazioni descritte da sinistra a destra (nell'immagine sopra).

5.2.1. Modifica scala MAP (livello di zoom)

  1. Il livello di zoom può essere modificato utilizzando i pulsanti (+/-) per la scala (current_scale * 2 o current_scale / 2 rispettivamente). Premendo uno di questi pulsanti si modificherà automaticamente la scala.

  2. Un altro modo è selezionare Zoom avanti Ingrandisci Campo Casella combinata e premere Eseguire pulsante. In questo caso l'intera vista / mappa viene ricaricata e aggiornata (richiede un po 'di tempo durante l'inizializzazione).

5.2.2. IMEI (Seleziona campo dispositivo)

IMEIil campo contiene l'ID univoco del dispositivo o l'alias univoco per un dispositivo. L'impostazione predefinita è * (asterisco) che mostra i valori più recenti e la geolocalizzazione per ogni dispositivo.

Impostando IMEI su qualsiasi altro valore, verranno visualizzati i dati storici del dispositivo selezionato. Ha senso solo per sensori mobili e in movimento, altrimenti i risultati si sovrapporranno sulla mappa nella stessa posizione.


5.2.3. Lon, Lat (Campi delle coordinate di longitudine e latitudine)

Imposta la posizione centrale della mappa. Questo campo è impostato sulla posizione del cursore quando si preme il pulsante del mouse sulla mappa.


5.2.4. Modifica stile MAP (tema)

Lo stile / tema della mappa può essere selezionato da Map Campo ComboBox (es. Scuro, Grigio, Topografico).

Vari temi mappa potrebbero avere diversi livelli di zoom massimi, quindi potrebbe applicare un tema appropriato per aumentare la scala della mappa.


5.2.5. Dove la clausola

La clausola Where viene utilizzata per la stringa di query aggiuntiva {WHERE part} per MySQL / MariaDB.

Questa clausola viene presa in considerazione per costruire la stringa QUERY completa per il risultato del database. Può limitare i dati, il tempo e qualsiasi altro valore limitando il conteggio dei risultati. I nomi dei campi della tabella originale (non alias) devono essere utilizzati in questo campo. Per esempio.

  1. gps_speed_km> 10 // la velocità è superiore a 10 km / h

  2. ain5> 3 // ain5 è maggiore di 3 (con conteggio particelle 2.5um - livello di smog)

  3. gps_speed_km> 10 e ain6> 5 // la velocità è superiore a 10 km / he ain6 è maggiore di 5 (conteggio particelle 10um - livello di smog)


5.2.6. Eseguire (Pulsante Esegui query)

Premendo questo pulsante è necessario modificare qualsiasi impostazione, parametro (eccetto la pressione di +/- pulsanti).

La mappa viene caricata dall'inizio con nuove preimpostazioni.

La mappa non viene caricata affatto, quando non sono disponibili dati per la query corrente.

5.2.7. Deselezionare tutto (Rimuovi tutti i campi dalla query)

Dopo aver premuto questo pulsante, almeno un campo deve essere selezionato manualmente per visualizzare i risultati sulla mappa.


5.2.8. "V" Casella di controllo (Apri / Chiudi modulo campo)

Questa casella di controllo viene utilizzata per mostrare / nascondere il selettore dei campi da visualizzare.


5.2.9. "X" Casella di controllo (Mostra / Nascondi modulo di query)

Questa casella di controllo consente di nascondere l'intero modulo tranne ( +/- pulsanti)


I risultati sulla mappa vengono continuamente aggiornati e aggiornati con nuovi valori

5.3. Esempio

Es. Risultati smog (sensore installato sull'auto): livello di smog particelle 2.5um (Ain5), velocità (gps_speed_km), data / ora (tm), mappa (2 - topografica), livello di zoom 16,

Dove la clausola:

"gps_fix = 3 e tm> "2019-02-18 00:00:00" e tm <"2019-02-19 00:00:00" e gps_speed_km> 0".

// GPS = risultati 3D validi e data = 18/02/2019 e velocità> 0 km / h



6. Mostra risultati nella tabella

Mostra i risultati nella tabella.

Sopra "Modulo principale" stampa "tavolo" voce, dopo aver selezionato alcuni campi per visualizzare la tabella preconfigurata




6.1. Inizializzazione della tabella

Quando la tabella è aperta dal collegamento http: //%IP%/IoT/que.php? func = tabs richiede la preventiva inizializzazione delle impostazioni.

È possibile selezionare i campi visibili (premendo "Campi visibili" ) casella di controllo.



  1. Premere tutte le caselle di controllo richieste per i campi visualizzati

  2. Premere la casella di controllo "Campi visibili" per nascondere il modulo dei campi

  3. Premere il pulsante Esegui per eseguire la query DB e visualizzare la tabella


6.2. Impostazioni opzionali per la query

Le impostazioni sono descritte da sinistra a destra (sullo screenshot).

6.2.1. Ordina - campo di ordinamento e ordine crescente / decrescente

Il campo di ordinamento equivale a premere l'intestazione della colonna.

6.2.2. DB / IMEI - Seleziona dispositivo

IMEIil campo contiene l'ID univoco del dispositivo o l'alias univoco per un dispositivo. Con valore vuoto mostra la tabella dei valori più recenti.

Impostando IMEI su qualsiasi altro valore, verranno visualizzati i dati storici del dispositivo selezionato.


6.2.3. CSS - seleziona lo stile (tema di visualizzazione)

6.2.4. Campi visibili - Mostra / Nascondi modulo campi

6.2.5. Rimuovi vuoto - Non visualizzare colonne vuote

6.2.6. "X" Casella di controllo (Mostra / Nascondi modulo di query)

6.2.7. Dove Clausola (per la limitazione dei dati)

Questo è il suffisso per la stringa di query aggiuntiva MySQL / MariaDB {WHERE part}

Questa clausola viene presa in considerazione per costruire la stringa QUERY completa per il risultato del database. Può limitare i dati, il tempo e qualsiasi altro valore limitando il conteggio dei risultati. I nomi dei campi della tabella originale (non alias) devono essere utilizzati in questo campo. Per esempio.

  1. gps_speed_km> 10 // la velocità è superiore a 10 km / h

  2. ain5> 3 // ain5 è maggiore di 3 (con conteggio particelle 2.5um - livello di smog)

  3. gps_speed_km> 10 e ain6> 5 // la velocità è superiore a 10 km / he ain6 è maggiore di 5 (conteggio particelle 10um - livello di smog)


6.2.8. Seleziona Core Pulsante (Abilita i campi più comuni)


6.2.9. Deselezionare tutto Pulsante (Rimuovi tutti i campi dalla query)

Dopo aver premuto questo pulsante, almeno un campo deve essere selezionato manualmente per visualizzare i risultati sulla mappa.


6.2.10. Eseguire (Pulsante Esegui query)

Premendo questo pulsante è necessario modificare qualsiasi impostazione, parametro (eccetto la pressione di +/- pulsanti).

La tabella viene ricaricata dall'inizio con nuove preimpostazioni.



6.2.11. "V" Casella di controllo (Apri / Chiudi modulo campo)

Questa casella di controllo viene utilizzata per mostrare / nascondere il selettore dei campi da visualizzare.



I risultati nella tabella vengono ordinati in base a Ordinare impostazione in loco. L'ordinamento può essere modificato premendo l'intestazione della riga (una volta per una direzione due volte per un'altra direzione).

Alcuni risultati in colonne si collegano a ulteriori schermate di visualizzazione (hardcoded).


Quando si visualizzano i dati storici per il dispositivo, dovrebbero essere limitati in modo da non visualizzare l'intera cronologia delle informazioni perché potrebbe portare a problemi di prestazioni o di memoria insufficiente.


7. Grafici a barre.

I grafici a barre devono essere eseguiti dal modulo principale premendo il singolo campo nella riga "Bar".

Visualizza le barre ordinate normalizzate al valore massimo, mostrando dall'ordine più alto a quello più basso.

È utile per controllare rapidamente i risultati estremi e intraprendere alcune azioni.





L'evento al passaggio del mouse mostrerà informazioni aggiuntive per il dispositivo.


8. Grafici storici.

I grafici storici possono essere avviati dal MainForm premendo la colonna selezionata nella riga "Cronologia" (per singolo campo).

Per più campi nella riga "Cronologia", i campi desiderati devono essere selezionati e il collegamento "Cronologia" deve essere premuto nella colonna "Esegui".

I risultati storici sono limitati alle ultime 24 ore + le successive 24 ore (per un eventuale aggiornamento dei grafici), quando non sono stati impostati limiti.

8.1. Inizializzazione dei grafici storici


I grafici storici quando vengono aperti dal collegamento principale richiedono l'inizializzazione come altri risultati, quando vengono aperti dal collegamento senza parametri di preferenze.

È possibile selezionare più campi per visualizzare vari elementi. Può anche essere impostato nel modulo filtro campo.




  1. Premere tutte le caselle di controllo richieste per i campi visualizzati

  2. Premere la casella di controllo "Campi visibili" per nascondere il modulo dei campi

  3. Premere il pulsante Esegui per eseguire la query DB e visualizzare la tabella


8.2. Impostazioni opzionali dei grafici storici

Voci descritte dall'alto e da sinistra a destra (sullo screenshot).

8.2.1. IMEI - (Seleziona Dispositivo per visualizzare i dati storici)

IMEIil campo contiene l'ID univoco del dispositivo o l'alias univoco per un dispositivo. Con il valore * (asterisco) mostra la tabella dei valori più recenti che non ha senso.

Impostando IMEI su qualsiasi altro valore, verranno visualizzati i dati storici del dispositivo selezionato.

8.2.2. Min - limitare il valore minimo del primo campo

8.2.3. Max - limitare il valore massimo del primo campo

8.2.4. "V" - Mostra / Nascondi modulo campi

8.2.5. A partire dal: imposta data / ora minima (*)

8.2.6. Per: imposta la data / ora massima (*)

8.2.7. "X" Casella di controllo (Mostra / Nascondi modulo di query)

8.2.8. "Dove" Clausola

Clausola per limitare i risultati dei dati Stringa di query aggiuntiva MySQL / MariaDB {parte WHERE}.

Questa clausola viene presa in considerazione per costruire la stringa QUERY completa per il risultato del database. Può limitare i dati, il tempo e qualsiasi altro valore limitando il conteggio dei risultati. I nomi dei campi della tabella originale (non alias) devono essere utilizzati in questo campo e una sintassi SQL valida. Per esempio.

  1. gps_speed_km> 10 // la velocità è superiore a 10 km / h

  2. ain5> 3 // ain5 è maggiore di 3 (con conteggio particelle 2.5um - livello di smog)

  3. gps_speed_km> 10 e ain6> 5 // la velocità è superiore a 10 km / he ain6 è maggiore di 5 (conteggio particelle 10um - livello di smog)


8.2.9. Deselezionare tutto Pulsante (Rimuovi tutti i campi dalla query)

Dopo aver premuto questo pulsante, almeno un campo deve essere selezionato manualmente per visualizzare i risultati storici.


8.2.10. Eseguire (Pulsante Esegui query)

Premendo questo pulsante è necessario modificare le impostazioni, i parametri (tranne la visualizzazione dei campi o del pannello delle query). La tabella viene ricaricata dall'inizio con nuove preimpostazioni.

8.2.11. "V" Casella di controllo (Apri / Chiudi modulo campo)

Questa casella di controllo viene utilizzata per mostrare / nascondere il selettore dei campi da visualizzare.


8.3. Barre Variante: (visualizza solo i dati disponibili)



8.4. Continuo variante (con gli stessi dati):



Il puntatore del mouse visualizza i valori delle misurazioni e la data / ora.

9. Compatibilità browser web


Funzione / Browser WWW

Chrome 72

FireFox 65

Bordo

Opera 58

Mappe

+

+

+

+

Storico

+

+ (*)

+

+

Barre

+

+

+

+

Tab

+

+

+

+


* - Firefox non supporta il selettore di data / ora (il campo di testo deve essere modificato manualmente utilizzando il formato di data e ora appropriato).

Internet Explorer non è supportato (usa Bordo anziché)

Altri browser web non sono stati testati.



10. Personalizzazione dei temi

Le pagine Web si basano sul file modello generale situato in "modelli" directory "* .template".

Inoltre ogni tipo di pagina contiene:

  1. File "* .head" che memorizza l'intestazione della pagina (link, CSS importati, JavaScript File, ecc. )

  2. File "* .foot" che memorizzano il piè di pagina della pagina (collegamenti, ecc. )


Il tema di visualizzazione può essere modificato in base alle preferenze dell'utente copiando e modificando i file CSS. I file CSS si trovano in "modelli / css" directory. Diversi temi di pagine web potrebbero essere utilizzati per creare ottimizzati per es. stampa, smartphone, modelli di PAD.


Table viste - hanno un campo selezionabile per la scelta del file CSS per la modifica completa del tema (memorizzato in "templates / css / tabs" directory).




Map visualizzazioni - il tema generale è selezionato da "carta geografica" digitare la casella combinata. Inoltre c'è un file CSS predefinito "templates / css / map.css" che contiene alcune funzionalità aggiuntive come nascondere / colorare i risultati in base ai suoi valori. Il resto di questo file CSS è praticamente limitato ai moduli di query e di campo.


La maggior parte @City Platform I file PHP per la visualizzazione accettano cssparametro con il valore del nome del file per il tema (senza estensione). Il file deve trovarsi nella directory "templates / css" e il nome fa distinzione tra maiuscole e minuscole.


Alcuni elementi della visualizzazione del tema si trovano direttamente nel file JavaScript situato in "template / js" directory.

Principale @Città script"@ City.js" si trova nella directory superiore. Non vi è alcuna possibilità di modifica in questo posizione, tuttavia lo script può essere copiato "templates / js" directory e lì modificato. L'utilizzo di singoli script richiede l'aggiornamento di tutti i file di intestazione.

11. Aggiornamento algoritmi


Alcuni sensori unici potrebbero richiedere funzioni di calcolo dedicate.

Non è possibile aggiornare e mantenere più varianti di @City Server Software, Interfaccia PHP front-end, che causerebbe molti problemi, versioni, errori.

Il modo migliore e più semplice per ottenerlo è aggiornare i file "overlay" per una corretta visualizzazione del valore / descrizione.

Gli script JS originali sono file di testo aperti e possono essere adottati in base alle esigenze del cliente. Come affermato nel capitolo precedente, devono essere copiati "templates / js" directory in cui il cliente dispone dei diritti di accesso per la modifica.


Aspetto tecnico sulla programmazione di @Città Il sistema non è un argomento di questo documento, tuttavia gli sviluppatori Web con una conoscenza di base di HTML e JS possono personalizzare l'applicazione Web front-end in base alle esigenze dei singoli clienti.


12. Struttura del database


@City Database con un nome "IoT" o "* IoT" è diviso in tabelle (dove asterix è il prefisso a seconda del server di hosting, se richiesto). DataBase potrebbe essere osservato in PHPAdmin (applicazione web) al link http: //% IP% / phpmyadmin




Tabelle impostate per ogni dispositivo (dove * {asterix} è l'indirizzo IMEI - ID univoco):

Altre tabelle:



12.1. Struttura delle tabelle "ithings_" e "*"

12.2. Tabella "* _c" della coda dei comandi del dispositivo (eventi) - struttura


Questa tabella è la coda di eventi / comandi per ogni dispositivo e ha la seguente struttura:



12.3. Accesso ai risultati dai database - Livello medio (lettura dei dati)


I dati possono essere accessibili senza l'applicazione Web front-end. Il sistema @City contiene script con funzioni di medio livello. I risultati vengono restituiti in formato JSON.


12.3.1. Ottieni gli stati correnti di tutti i dispositivi

http: //%IP%/IoT/que.php? func = devsjson


La query restituisce intero "_ithings" tabella (stati correnti di tutti i dispositivi) in formato JSON:

[{ "nazione":"", "città":"", "continente":"", "nazione":"", "regione":"", "sottoregione":"", "sottoregione":"", "città":"", "quartiere":"", "strada":"", "street_nr":"", "item_nr":"", "gps_lat":"0000.0000N", "gps_long":"00000.0000E", "tm":"10/02/2019 12:56:23", "creazione":"2019-02-09 18:12:38", "scorso":"0000-00-00 00:00:00", "eventi":"", "utente":"", "passaggio":"", "imei":"351580051067110", "sn":"", "stato":"73000200000f360033026800240000002c002c002dffffffffffffffff5b63000001c1000001c2000000000000000009250a4f0a760a7a0a750a780a7e0000031d032205fc34029b025c02560000460", "codice hash":"", "addr":"", "fwnr":"", "Disabilitato":"", "gsm_nr":"", "venditore":"", "fuso orario":"", "dst":"", "rssi":"91", "rsrp":"99", "gps_lat":"0000.0000N", "gps_long":"00000.0000E", "gps_hdop":"", "gps_alt":"", "gps_fix":"4", "gps_cog":"", "gps_speed_km":"", "gps_sat":"", "eventi":"", "out1":"0", "out2":"0", "out3":"0", "out4":"0", "out5":"0", "out6":"0", "out7":"0", "out8":"0", "out9":"0", "out10":"1", "out11":"0", "out12":"0", "out13":"0", "out14":"0", "out15":"0", "out16":"0", "in 1":"0", "in 2":"0", "in3":"0", "in4":"0", "in5":"0", "in6":"0", "in7":"0", "in8":"0", "in9":"0", "in10":"0", "in11":"0", "in12":"0", "in13":"0", "in14":"0", "in15":"0", "in16":"0", "ain1":"3894", "ain2":"51", "ain3":"616", "ain4":"36", "ain5":"0", "ain6":"44", "ain7":"44", "ain8":"45", "sens1":"0", "sens2":"0", "sens3":"0", "sens4":"0", "sens5":"0", "sens6":"0", "sens7":"0", "sens8":"0", "dimm1":"255", "dimm2":"255", "dimm3":"255", "dimm4":"255", "dimm5":"255", "dimm6":"255", "dimm7":"255", "dimm8":"255", "int1":"-16776767", "int2":"450", "int3":"", "int4":"", "int5":"", "int6":"0", "text1":"", "text2":"", "text3":"", "text4":"", "testo5":"", "text6":"" }]

12.3.2. Ottieni dati storici per il dispositivo

Interroga i dati storici del singolo dispositivo tramite IMEI nr:

http: //%IP%/IoT/que.php? func = imeijson & imei = 356345080018095


Poiché l'intera tabella potrebbe contenere milioni di righe, dovrebbe essere limitata con la clausola WHERE per non riagganciare il server.

Parametri aggiuntivi parametri URL:

funz - imeijson

imei - IMEI del dispositivo

campo - campi da visualizzare nei risultati (elenco separato da virgole)

min - valore minimo per il primo campo della lista

max - valore massimo per il primo campo della lista

sot - campo per l'ordinamento

tm - il campo viene aggiunto automaticamente ai risultati.

where - clausola dove per limitare i dati


Esempio:

Vogliamo ottenere il seguente risultato

per dispositivo con imei=356345080018095

mostra i campi: ain5, ain6, gps_lat, gps_long

e limite ain5 nella gamma ( 1, 10000 ): deve essere il primo campo nell'elenco

e GPS disporre di dati validi (gps_fix = 3)

e data / ora (tm) from2019-02-14 23:00:19 to 2019-02-15 00:00:00


Stringa URL costruita:

http: //%IP%/IoT/que.php? func =imeijson& imei =356345080018095& campo =ain5, ain6, gps_lat, gps_long& min =1& max =1000& dove =gps_fix = 3 e tm> "2019-02-14 23:00:19" e tm <"2019-02-15 00:00:00"


Risultati della query:

[{ "ain5":"66","ain6":"68","gps_lat":"5202.7326N","gps_long":"02115.8073E","tm":"2019-02-14 23:04:31" }, { "ain5":"67","ain6":"76","gps_lat":"5202.7328N","gps_long":"02115.8075E","tm":"2019-02-14 23:05:42" }, { "ain5":"63","ain6":"77","gps_lat":"5202.7328N","gps_long":"02115.8074E","tm":"2019-02-14 23:06:05" }, { "ain5":"58","ain6":"77","gps_lat":"5202.7328N","gps_long":"02115.8075E","tm":"2019-02-14 23:06:32" }, { "ain5":"58","ain6":"68","gps_lat":"5202.7328N","gps_long":"02115.8076E","tm":"2019-02-14 23:06:55" }]

12.3.3. Ottieni l'elenco dei dispositivi - singolo campo dagli stati correnti con limitazione

Questa funzione restituisce dati limitati dalla tabella "_ithings"


http: //%IP%/IoT/que.php? func = fieldjson & field = ain5 & min = 13 & max = 5000



Parametri:

funz - fieldjson

campo - campo da visualizzare nei risultati - imei e tm vengono aggiunti automaticamente

min - valore minimo per il campo

max - valore massimo per il campo


Per la stringa di query sopra, restituisce risultati di ain5, imei, tm campi:

Se ain5 è nel raggio d'azione (13.5000)


Risultati della query:

[{"imei":"353080090069142", "tm":"2019-03-14 11:51:01", "ain5":"14" },

{"imei":"356345080018095", "tm":"2019-02-20 09:13:04", "ain5":"115" },

{"imei":"karczew", "tm":"2019-03-07 13:08:22", "ain5":"103" }]