@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
@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.
La piattaforma @City IoT è dedicata ai seguenti prodotti iSys.PL
IoT - RF / LoRaWAN (Internet of Things)
CIoT - GSM / 2G / 3G / 4G / CATM1 / NBIoT (Cell Internet of Things)
Wifi
Ethernet
La piattaforma @City (eCity) Cloud IoT è un sistema di varie dimensioni per i prodotti IP IoT (chiamati insieme come @ City Hardware o Dispositivi CioT ):
@Città
@Leggero
@Metering
@Traccia
@AirQ
@Bidone
La piattaforma @City IoT supporta i seguenti protocolli di comunicazione:
UDP - suggerito per sensori / dispositivi CIoT (in particolare NBIoT) - utilizzo dei dati minimo
TCPIP - suggerito per dispositivi con comunicazione bidirezionale - handshaking / conferma
HTTP - suggerito solo per accesso / visualizzazione / esportazione / dati "nuvola in nuvola"
Webhook HTTP: per la comunicazione LoRaWAN tra LoRaWAN Network / Application Server e @City Cloud.
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. ).
La piattaforma @City IoT supporta:
GSM: 2G, 3G, 4G (LTE), CATM1 (LTEM1), NBIoT - dispositivi (comunicazione UDP / TCPIP)
Dispositivi LoRaWAN (Webhook HTTP) - tramite gateway LoRaWAN e server di rete / applicazioni LoRaWAN
Controller Ethernet (comunicazione UDP / TCP)
Controller WiFi (comunicazione UDP / TCP)
Futuri prodotti IP
Prodotti non IP tramite locale aggiuntivo @ City / eHouse. Gateway hardware
La piattaforma @City IoT è dedicata ai dispositivi / nodi:
Prodotti iSys nativi:
CIoT (GSM / 2G / 3G / 4G / CATM1 / NBIoT)
IoT (LoRaWAN)
WiFi - prodotti dedicati per @City Platform
Ethernet - prodotti dedicati per @City Platform
Prodotti di co-produzione (fabbricati da terze parti su licenza iSys e marchio esterno)
Prodotti in franchising (fabbricati da terze parti su licenza iSys con loghi iSys)
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):
accesso privato / pubblico
contano i dispositivi complessivi
aggiornamento della frequenza dello stato dei dispositivi
frequenza di aggiornamento dei dati
Esistono diverse varianti di VPS a seconda di:
Prezzo
geolocalizzazione del data center
Core del processore virtuale (1-8)
RAM virtuale (1-32 GB)
Disco SSD (20 GB-1 TB)
Esistono dozzine di server dedicati a seconda di:
Prezzo
geolocalizzazione del data center
Numero di core del processore (4 .. 32)
RAM (16 .. 512 GB)
SSD / HDD (256 GB .. 8 TB)
La piattaforma @City IoT è dedicata al singolo cliente:
governi e autorità locali (città, comunità, nazione)
B2B (per proprietario di terze parti)
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.
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:
ricevere in modo asincrono i dati dai dispositivi (tramite protocolli: UDP, TCP IP, HTTP)
ridurre al minimo l'utilizzo dei dati e i relativi costi tra dispositivi e Cloud (utilizzando protocolli di comunicazione di basso livello UDP, TCP IP)
ricevere lo stato criptato dei dispositivi (tramite qualsiasi mezzo di comunicazione)
autorizzazione e convalida dei dati dai dispositivi decrittografandone gli stati
decodificare lo stato dei dispositivi e aggiornarlo direttamente nelle tabelle MariaDB / MySQL (in formato dati grezzi)
tabella dati corrente (contiene solo lo stato più recente di ogni dispositivo)
tabella dati storici (contiene tutti gli stati per singolo dispositivo)
inviare comandi in sospeso (eventi) ai dispositivi
assicurando handshaking, verifica e conferme
Il software @City Server è lo stesso per ogni utente e non può essere personalizzato per clienti diversi.
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.
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.
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):
aggiunta, rimozione, modifica di file HTML puri (GUI front-end / sviluppo dell'interfaccia)
aggiunta, rimozione, modifica di file JavaScript puri (GUI front-end / sviluppo dell'interfaccia e algoritmi)
aggiunta, rimozione, modifica di file CSS puri (Front-End - Visualizzazioni personalizzate / Temi)
aggiunta, rimozione, modifica di file di testo di modelli (GUI front-end)
aggiunta, rimozione, modifica di schede, collegamenti, collegamenti ai risultati dei dati
Altri diritti di accesso:
Accesso completo a @City Cloud Database MySQL / MariaDB in cui sono archiviati tutti i dati dei dispositivi
Gli accessi ai servizi Web sono definiti (credenziali) per il cliente.
Al cliente non è consentito trasferire le credenziali a terze parti (l'accesso multiplo ai risultati potrebbe influire sulle prestazioni, la stabilità e la sicurezza dell'intero sistema)
In circostanze speciali e utilizzo di server dedicato ad alte prestazioni, l'account pubblico potrebbe essere impostato per osservare i dati più recenti (non cronologici).
L'utente può duplicare i dati sul proprio server MySQL ed eseguire l'analisi e l'elaborazione dei dati, in modo da non influire sulle prestazioni di @City Server
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.
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".
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
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.
Esistono diverse opzioni per gli affari e la cooperazione:
import / export prodotti pronti (centralini, dispositivi) - prodotti finali
importazione / esportazione di prodotti OEM (PCB, controller, ecc.) - prodotti intermedi, pezzi di ricambio
franchising - produzione basata sulla nostra licenza per i mercati locali (forniamo solo microcontrollori programmati) sotto iSys - Intelligent Systems Brands
Co-produzione - (come sopra) ma con marchi esterni
La piattaforma @City supporta il modello front-end personalizzabile per la visualizzazione, l'interrogazione, la limitazione e l'elaborazione dei dati (dati correnti / cronologici):
visualizzare i dati selezionati sulla mappa (geolocalizzazione)
mostra i dati e i risultati selezionati nelle tabelle
mostra i dati selezionati nei grafici a barre
mostra i dati selezionati nei grafici storici
esportare dati in applicazioni di terze parti e ulteriori elaborazioni
altre funzionalità verranno aggiornate su singole richieste.
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.
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
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)
Modificare il tema di visualizzazione Il file CSS deve esistere in formato "modelli / css /" directory - elencata automaticamente.
Seleziona i campi principali visibili nella tabella. It è aggiornato automaticamente.
Deseleziona tutti i campi (deve essere seguito selezionandone alcuni manualmente)
Seleziona tutti i campi (deve essere seguito deselezionarne alcuni manualmente)
Questo è equivalente a tutte le caselle di controllo (X)
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).
Visualizza tutti i campi limitati dal filtro campo.
Campi nella tabella:
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).
Aggiunta / rimozione di una scheda con il nome impostato in Tab campo. Utilizza solo i campi selezionati nella stessa riga della tabella.
Premendo qualsiasi altro nome di campo avvierà la visualizzazione dei dati del campo selezionato per la riga selezionata.
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).
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.
Inserisci il nome "Monitoraggio delle risorse" nel Tab campo (senza virgolette)
Assicurati che tutte le colonne non siano selezionate nella riga
Selezionare tm, gps_speed_km solo in fila
stampa + pulsante dove nella riga
Le mappe possono essere avviate da MainForm con la preconfigurazione
L'inizializzazione della mappa viene eseguita manualmente se eseguita direttamente con il collegamento: > http: //%IP%/IoT/maps.php
L'utente deve deselezionare tutti i campi (premere Deseleziona Pulsante)
Premere alcune caselle di controllo per i campi visualizzati (es. Ain5 (per il livello di smog) e tm (per data / ora di misurazione)
stampa "V" casella di controllo per nascondere il modulo dei campi
stampa Eseguire pulsante per eseguire query DB e visualizzare le informazioni correnti da tutti i sensori / dispositivi
La mappa con i dati viene aggiornata dopo 30 secondi o più.
Impostazioni descritte da sinistra a destra (nell'immagine sopra).
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.
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).
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.
Imposta la posizione centrale della mappa. Questo campo è impostato sulla posizione del cursore quando si preme il pulsante del mouse sulla mappa.
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.
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.
gps_speed_km> 10 // la velocità è superiore a 10 km / h
ain5> 3 // ain5 è maggiore di 3 (con conteggio particelle 2.5um - livello di smog)
gps_speed_km> 10 e ain6> 5 // la velocità è superiore a 10 km / he ain6 è maggiore di 5 (conteggio particelle 10um - livello di smog)
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.
Dopo aver premuto questo pulsante, almeno un campo deve essere selezionato manualmente per visualizzare i risultati sulla mappa.
Questa casella di controllo viene utilizzata per mostrare / nascondere il selettore dei campi da visualizzare.
Questa casella di controllo consente di nascondere l'intero modulo tranne ( +/- pulsanti)
I risultati sulla mappa vengono continuamente aggiornati e aggiornati con nuovi valori
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
Mostra i risultati nella tabella.
Sopra "Modulo principale" stampa "tavolo" voce, dopo aver selezionato alcuni campi per visualizzare la tabella preconfigurata
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.
Premere tutte le caselle di controllo richieste per i campi visualizzati
Premere la casella di controllo "Campi visibili" per nascondere il modulo dei campi
Premere il pulsante Esegui per eseguire la query DB e visualizzare la tabella
Le impostazioni sono descritte da sinistra a destra (sullo screenshot).
Il campo di ordinamento equivale a premere l'intestazione della colonna.
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.
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.
gps_speed_km> 10 // la velocità è superiore a 10 km / h
ain5> 3 // ain5 è maggiore di 3 (con conteggio particelle 2.5um - livello di smog)
gps_speed_km> 10 e ain6> 5 // la velocità è superiore a 10 km / he ain6 è maggiore di 5 (conteggio particelle 10um - livello di smog)
Dopo aver premuto questo pulsante, almeno un campo deve essere selezionato manualmente per visualizzare i risultati sulla mappa.
Premendo questo pulsante è necessario modificare qualsiasi impostazione, parametro (eccetto la pressione di +/- pulsanti).
La tabella viene ricaricata dall'inizio con nuove preimpostazioni.
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.
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.
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.
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.
Premere tutte le caselle di controllo richieste per i campi visualizzati
Premere la casella di controllo "Campi visibili" per nascondere il modulo dei campi
Premere il pulsante Esegui per eseguire la query DB e visualizzare la tabella
Voci descritte dall'alto e da sinistra a destra (sullo screenshot).
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.
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.
gps_speed_km> 10 // la velocità è superiore a 10 km / h
ain5> 3 // ain5 è maggiore di 3 (con conteggio particelle 2.5um - livello di smog)
gps_speed_km> 10 e ain6> 5 // la velocità è superiore a 10 km / he ain6 è maggiore di 5 (conteggio particelle 10um - livello di smog)
Dopo aver premuto questo pulsante, almeno un campo deve essere selezionato manualmente per visualizzare i risultati storici.
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.
Questa casella di controllo viene utilizzata per mostrare / nascondere il selettore dei campi da visualizzare.
Il puntatore del mouse visualizza i valori delle misurazioni e la data / ora.
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.
Le pagine Web si basano sul file modello generale situato in "modelli" directory "* .template".
Inoltre ogni tipo di pagina contiene:
File "* .head" che memorizza l'intestazione della pagina (link, CSS importati, JavaScript File, ecc. )
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.
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.
@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):
"* _t" - token per l'autorizzazione degli utenti correnti (non utilizzati per i cloud Single-Customer)
"* _c" - coda comandi (eventi) - da inviare al dispositivo
"*" - tutti i risultati di stato decodificati.
Altre tabelle:
"ithings_" tabella - contiene lo stato corrente decodificato di tutti i dispositivi (viene copiato durante l'aggiornamento di qualsiasi file "*" tabelle). Struttura di ithings_ table è quasi la stessa del "*" tavoli. "ithings_" hanno campi aggiuntivi per l'indirizzo postale e le descrizioni.
La tabella "utenti" è limitata e deve essere modificata.
"idx" - indice
"tm" - timestamp automatico
"dt" - timestamp unix
"imei" - indirizzo univoco del dispositivo
"rssi" - Livello del segnale RSSI
"rsrp" - Segnale RSRP
"eventi" - eventi in attesa da inviare al controllore
"out1" .. "out16" - stato delle uscite decodificate
"in 1" .. "in16" - stato degli ingressi decodificati
"ain1" .. "ain8" - valori ADC decodificati (RAW)
"sens1" .. "sens8" - valori del sensore convertiti (dipende dal tipo di dispositivo)
"dimm1" .. "dimm8" - valori dimmer decodificati (dipende dal tipo di dispositivo)
"int1" .. "int6" - valori dei contatori decodificati (dipende dal tipo di dispositivo)
"text1" .. "text6" - valori di testo decodificati (dipende dal tipo di dispositivo)
"creazione" - data / ora di creazione del dispositivo
"scorso" - ultima data / ora
"utente" - uso futuro
"pass" - uso futuro
"sn" - gsm seriale nr
"stato" - stato del controller corrente non decodificato in formato esadecimale
"hash_code" - uso futuro
"addr" - indirizzo breve del dispositivo
"fwnr" - firmware nr
"disabled" - dispositivo disabilitato (non eseguito)
"gsm_nr" - numero gsm CIoT
"venditore" - codice venditore (per franchising / coproduzione)
"timezone": offset del fuso orario
"dst" - Utilizza le impostazioni di risparmio giornaliero
"gps_lat" - Latitudine GPS
"gps_long" - Longitudine GPS
"gps_hdop" - GPS HDOP
"gps_alt" - Altitudine GPS
"gps_fix" - Fissazione GPS (deve essere 3 - per risultati validi)
"gps_cog" - GPS Cog
"gps_speed_km" - Velocità GPS in [km / h]
"gps_sat" - Satelliti GPS trovati
"continent", "country", "region", "subregion", "subsubregion", "city", "district", "street", "street_nr", "item_nr" - Indirizzo del cliente e campi della descrizione (!!!! Non disponibile per "*" tabelle storiche)
"log" - dati di registro
I nomi dei campi sono importanti per la creazione di query SQL per aumentare la funzionalità di ricerca poiché il nome originale deve essere utilizzato nell'istruzione SQL.
Questa tabella è la coda di eventi / comandi per ogni dispositivo e ha la seguente struttura:
"comando" - comando da inviare o già inviato al controller
"confermato" - flag di conferma se era già stato inviato e confermato
"date" - timestamp unix dell'evento
"aggiornato" - flag di aggiornamento automatico (data / ora del timestamp)
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.
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":"" }]
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" }]
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" }]