@City IoT Molnplattform
iSys - Intelligenta system IoT Lösningar
IoE.Systems
Innehållsförteckning
1. Introduktion. 5
1.1 Stödda enhetstyper. 5
1.2. Produkter som stöds. 5
1.3. Kommunikationsprotokoll som stöds 5
1.4. Enheter som stöds kommunikationsteknik 6
1.5. @City Cloud Server 6
1.5.1. Server- och kommunikationsportar 7
1.5.2 HTTP LoRaWAN-integration 7
1.5.3 Frontgränssnitt 8
1.5.3 Serveråtkomsträttigheter 8
1.6. Smart Devices 9
1.6.1. CIoT - GSM-enheter 9
1.6.3. BAS, BMS, IoT - Ethernet- och WiFi-enheter 9
1.6.2. IoT -LoRaWAN-enheter 9
1.7. Business to Business (B2B) -alternativ 9
2. @City IoT Plattformsfunktionalitet 10
3. Huvudsida 11
4. Huvudformulär 11
4.1. Rubrik 12
4.1.1. Hemlänk - (öppnar den faktiska resultattabellen) 12
4.1.2. Kryssruta "X" - öppnar / stänger frågeformulär 12
4.1.3. Kryssruta "V" - öppnar / stänger fältformulär 12
4.1.4. Grafiska ikoner - länkar till visualiseringsresultat (redigerbara) 12
4.2. Form: 12
4.2.1. Kryssruta "X" - öppnar / stänger hela frågeformulär 12
4.2.2. CSS - Välj Visualiseringstema 12
4.2.3 Kryssrutan Synliga fält - visar / döljer fältfilterlista 12
4.2.4. Flik: Flikens namn för att lägga till eller ta bort 12
4.2.5. Lägg till / ta bort knappar - Lägg till eller ta bort flikar med namnet i flikfält 12
4.2.6. Välj Core Button 12
4.2.7. Avmarkera alla knapp 12
4.2.7. Välj alla knapp 12
4.2.8. Dölj filter - Dölj hela formulär 12
4.2.9. Kör-knapp - Ändra parametrarinställningar 13
4.2.10. "V" kryssruta - visa / höga filterfält. 13
4.3. Flikar 13
4.4. Tabellinnehåll 13
4.4.1. Resultattyp 13 för körvyer
4.4.2. Kopiera (+/- länkar) 13
4.4.3. Tabellcellänkar 13
4.5. Databeställning 13
4.6. Exempel 13
5. Kartor 15
5.1. Initiering av kartan 15
5.2. Valfria inställningar för fråga 15
5.2.1. Ändra MAP-skala (zoomnivå) 16
5.2.2. IMEI (Välj enhetsfält) 16
5.2.3. Lon, Lat (koordinatfält för longitud, latitud) 16
5.2.4. Ändra MAP-stil (tema) 16
5.2.5. VARA Klausul 16
5.2.6. Kör (Kör fråga-knapp) 16
5.2.7. Avmarkera alla (ta bort alla fält från frågan) 17
5.2.8. Kryssruta "V" (Öppna / stäng fältformulär) 17
5.2.9. Kryssruta "X" (Visa / dölj frågeformulär) 17
5.3. Exempel 17
6. Visa resultat i tabell 18
6.1. Initialisering av tabell 18
6.2. Valfria inställningar för fråga 19
6.2.1. Sortera - sortera fält och ordna stigande / fallande 19
6.2.2. DB / IMEI - Välj enhet 19
6.2.3. CSS - välj stil (Visualiseringstema) 20
6.2.4. Synliga fält - Visa / dölj fält formulär 20
6.2.5. Ta bort Tom - Visa inte tomma kolumner 20
6.2.6. Kryssruta "X" (Visa / dölj frågeformulär) 20
6.2.7. Där klausul (för databegränsning) 20
6.2.8. Välj Core Button (Aktivera de vanligaste fälten) 20
6.2.9. Avmarkera alla-knappen (ta bort alla fält från frågan) 20
6.2.10. Kör (Kör fråga-knapp) 20
6.2.11. Kryssruta "V" (Öppna / stäng fältformulär) 20
7. Stapeldiagram. 21
8. Historiska diagram. 22
8.1. Initialisering av historiska diagram 22
8.2. Valfria inställningar för historiska diagram 23
8.2.1. IMEI - (Välj enhet för att visa historiska data) 23
8.2.2. Min - minimivärde för första fält 23
8.2.3. Max - begränsa maximivärdet för första fältet 23
8.2.4. "V" - Visa / dölj fält formulär 23
8.2.5. Från: ställa in minimalt datum / tid (*) 23
8.2.6. Till: ställa in maximalt datum / tid (*) 23
8.2.7. Kryssruta "X" (Visa / dölj frågeformulär) 23
8.2.8. "Var" Klausul 23
8.2.9. Avmarkera alla-knappen (ta bort alla fält från frågan) 23
8.2.10. Kör (Kör fråga-knapp) 23
8.2.11. Kryssruta "V" (Öppna / stäng fältformulär) 24
8.3. Barvariant: (visar endast tillgänglig data) 24
8.4. Kontinuerlig variant (med samma data): 24
9. Webbläsarkompatibilitet 25
10. Temananpassning 26
11. Uppdatering av algoritmer 27
12. Databasstruktur 28
12.1. "ithings_" och "*" tabellstruktur 29
12.2. Enhetskommandon (Händelser) kö "* _c" tabell - struktur 30
12.3. Få tillgång till resultat från databaser - mellannivå (läsdata) 30
12.3.1. Få aktuella statuser för alla enheter 30
12.3.2. Få historisk data för enheten 31
12.3.3. Hämta lista över enheter - enstaka fält från nuvarande status med begränsning 32
@City IoT Cloud Platform är dedikerad "mikro-moln" system för enskilda kunder. Plattformen kan inte delas och endast en kund har tillgång till fysisk eller virtuell server (VPS eller dedikerade servrar). Kunden kan välja ett av dussintals datacenter i Europa eller i världen.
@City IoT-plattformen är dedikerad till att följa iSys.PL-produkter
IoT - RF / LoRaWAN (sakernas internet)
CIoT - GSM / 2G / 3G / 4G / CATM1 / NBIoT (Cell Internet of Things)
WiFi
Ethernet
@City (eCity) Cloud IoT Platform är olika storlekssystem för IP IoT-produkter (kallas tillsammans som @City hårdvara eller CioT-enheter ):
@Stad
@Ljus
@Metering
@Spår
@AirQ
@Bin
@City IoT plattform stöder följande protokoll för kommunikation:
UDP - föreslås för CIoT-sensorer / enheter (särskilt NBIoT) - lägsta dataanvändning
TCPIP - rekommenderas för enheter med dubbelriktad kommunikation - handskakning / bekräftelse
HTTP - rekommenderas endast för dataåtkomst / visualisering / export / "moln till moln"
HTTP Webhooks - för LoRaWAN-kommunikation mellan LoRaWAN Network / Application Server och @City Cloud.
Data som skickas från controller till molnserver och vice versa krypteras i unikt binärt format för lägsta datastorlek och ökad säkerhet. Varje partner får sin egen unika krypteringsnyckel för enhetsbehörighet, datagiltighetskontroll etc.
För enheter som inte är eHouse / eCity kan vi leverera individuella krypteringsalgoritmer ( "C" källkod) för varje partner för mikroprocessor för att skydda data före kommunikation.
I det här fallet är data helt säkra under dubbelriktad kommunikation över det offentliga kommunikationsmediet (internet, Air, etc.) ).
@City IoT plattform stöder:
GSM: 2G, 3G, 4G (LTE), CATM1 (LTEM1), NBIoT - enheter (UDP / TCPIP-kommunikation)
LoRaWAN-enheter (HTTP Webhooks) - via LoRaWAN-gateway och LoRaWAN-nätverks- / applikationsservrar
Ethernet-styrenheter (UDP / TCP-kommunikation)
WiFi-styrenheter (UDP / TCP-kommunikation)
Framtida IP-produkter
Icke-IP-produkter via ytterligare lokala @ City / eHouse.PRO Hardware Gateway
@City IoT Platform är tillägnad enheter / noder:
Native iSys-produkter:
CIoT (GSM / 2G / 3G / 4G / CATM1 / NBIoT)
IoT (LoRaWAN)
WiFi - dedikerade produkter för @City Platform
Ethernet - dedikerade produkter för @City Platform
Samproduktionsprodukter (tillverkade av tredje part under iSys-licens och externt varumärke)
Franchiseprodukter (tillverkade av tredje part under iSys-licens med iSys-logotyper)
@City-programvaran fungerar på Linux-baserad VPS (Virtual Private Server) eller Dedikerad server på internetsidan, beroende på önskad prestanda för Server (kallas senare Server):
privat / allmän tillgång
totala enheter räknas
uppdatering av enhetens statusfrekvens
datauppdateringshastighet
Flera varianter av VPS finns beroende på:
Pris
datacentrets geolokalisering
Virtuella processorkärnor (1-8)
Virtuellt RAM-minne (1-32 GB)
SSD-disk (20 GB-1 TB)
Dussintals dedikerad server finns beroende på:
Pris
datacentrets geolokalisering
Processorkärnor (4 .. 32)
RAM (16 .. 512GB)
SSD / HDD (256 GB .. 8TB)
Plattformen @City is är avsedd för enskild kund:
lokala myndigheter och myndigheter (stad, gemenskap, land)
B2B (för tredje parts ägare)
Eftersom den inte kan delas mellan kunderna, förenklar det säkerhetsåtkomst och prestandafrågor. Av denna anledning är endast kund ansvarig för effektiv säkerhet, stabilitet, effektivitet, dataflöde etc. I händelse av otillräcklig prestanda kan kunden köpa högre plan (VPS eller dedikerad server), mer optimalt till förväntad funktionalitet och prestanda.
I speciella fall "Cloud to cloud" kommunikation kan implementeras för globalisering och centralisering av data till större områden istället för moln med flera kunder.
Kommunikation av @City Server realiseras baserat på applikation på låg nivå för maximal prestanda.
Huvudfunktionerna i applikationen @City Server är:
motta data asynkront från enheter (via protokoll: UDP, TCP IP, HTTP)
minimera dataanvändningen och dess kostnader mellan enheter och moln (genom att använda UDP, TCP IP med låga kommunikationsprotokoll)
ta emot krypterad status för enheter (via alla kommunikationsmedier)
auktorisering och validering av data från enheter genom att dekryptera deras status
avkoda enhetsstatus och uppdatera den direkt till MariaDB / MySQL-tabeller (i rådataformat)
aktuell datatabell (innehåller endast den senaste statusen för varje enhet)
historisk datatabell (innehåller alla statuser för en enhet)
skicka väntande kommandon (händelser) till enheter
säkerställa handskakning, verifiering och bekräftelser
Programvaran @City Server är densamma för varje användare och kan inte anpassas för olika kunder.
LoRaWAN-styrenheter är integrerade med @City-molnet via HTTP-gränssnittet (webhooks) tillgängligt på LoRaWAN-nätverks- / applikationsservern.
Flera typer av nätverks- / applikationsserver stöds:
TTN (begränsad tid "I luften" och det maximala antalet kommandon som skickas till drivrutinen och inte stöder uppgradering av firmware)
LoraWAN-Stack (Kräver värd på en fysisk enhet med internetåtkomst).
LoraServer.Io (Kräver värd på en fysisk enhet med internetåtkomst - bara skicka data till servern och stöder inte uppgradering av firmware)
@City Cloud för LoRaWAN-styrenheter är uppdelade på samma sätt som för andra gränssnitt. Det diskuteras i föregående kapitel.
Front-end-gränssnittet realiseras med PHP-skript för att extrahera anpassad data från @City Cloud Database. Den använder en mycket elastisk sökmekanism, baserad på ursprungliga SQL-frågor för att begränsa önskad data. Interface levererar sökresultat i JSON-format för ytterligare avkodning och bearbetning med JavaScript Front-end Web "-applikation".
Originalgränssnittet är detsamma för varje användare och kan inte anpassas för olika kunder.
Överlagringsgränssnitt kan skapas av vår personal eller i samarbete för att säkerställa kundanpassning.
Kundrättigheter (till fysisk server) är begränsade.
Filåtkomst endast för "mallar" -katalogen (ursprungliga textfiler - .txt, .js, .css, .html):
lägga till, ta bort, modifiera rena HTML-filer (Front-End GUI / Interface Development)
lägga till, ta bort, modifiera rena JavaScript-filer (Front-End GUI / Interface Development and Algorithms)
lägga till, ta bort, modifiera rena CSS-filer (Front-End - anpassade vyer / teman)
lägga till, ta bort, modifiera textfiler i mallar (Front-End GUI)
lägga till, ta bort, ändra flikar, genvägar, länkar till dataresultat
Övriga åtkomsträttigheter:
Full åtkomst till @City Cloud Database MySQL / MariaDB där all enhetsdata lagras
Tillgång till webbtjänster definieras (referenser) för kunden.
Kunden får inte skicka referenser till tredje part (multipel åtkomst till resultat kan påverka prestanda, stabilitet och säkerhet för det totala systemet)
Under speciella omständigheter och användning av högpresterande dedikerad server kan ett offentligt konto ställas in för att observera de flesta aktuella data (inte historiska).
Användaren kan duplicera data till sin egen MySQL-server och utföra egen dataanalys och bearbetning, för att inte påverka prestandan hos @City Server
iSys - Intelligent Systems personal - har obegränsad tillgång till hela servern inklusive root-konto och full DB-åtkomst för underhåll.
Under vissa omständigheter kan iSys ge ytterligare begränsade rättigheter till kunder (PHP-skript, filer) efter kontroll av källkod, körning av tester, om det inte påverkar systemets totala säkerhet, stabilitet och prestanda.
Våra enheter innehåller mikrokontroller och GSM / GPS / GNSS-modul (2G..4G, NBIoT, CATM1) för kommunikation. Microcontroller innehåller krypterad bootloader för säker OTA-firmwareuppgradering. Detta gör det möjligt att skapa många systemvarianter baserade på samma "CIoT Smart-enhet".
Ethernet- och WiFi-styrenheter tillåter IP-baserad kommunikation till systemet (utan att debitera för dataöverföring till GSM-operatören). Enheterna har också krypterad bootloader och enheter kan uppdateras via dess ursprungliga gränssnitt. För WiFi har den OTA-firmwareuppgradering från huvudservern
LoRaWAN möjliggör dataöverföring över mycket långa avstånd (upp till ca. 15 km). Detta intervall beror på dataöverföringshastigheten, datamängden, urbaniseringen av området och effektiviteten hos enheternas radiovägar.
Våra enheter inkluderar en mikrokontroller och LoRaWAN-modul för kommunikation. Mikrokontrollern innehåller en krypterad bootloader för säker OTA-programuppdatering. Detta gör att du kan skapa flera systemvarianter baserat på samma "IoT smart device". Enheterna fungerar i det öppna ISM-bandet utan extra abonnemangsavgifter. Det är nödvändigt att använda LoRaWAN Gateways för att täcka hela området med tillgång till Internet. När det gäller befintliga LoRaWAN-grindar inom enhetsområdet (konfigurerad för TTN-server) är det möjligt att skicka information genom dem. Firmware-uppgradering kräver eget LoRaWAN-server / nätverk och ett bra utbud för kommunikation.
Det finns flera alternativ för affärer och samarbete:
importera / exportera färdiga produkter (växlar, enheter) - slutprodukter
importera / exportera OEM-produkter (PCB, styrenheter, etc) - mellanprodukter, reservdelar
franchise - produktion baserad på vår licens för lokala marknader (vi levererar endast programmerade mikrokontroller) under iSys - Intelligent Systems Brands
Samproduktion - (som ovan) men under externa varumärken
@City-plattform stöder anpassningsbar Front-End-mall för datavisualisering, fråga, begränsning och bearbetning (aktuell / historikdata):
visualisera utvalda data på kartan (geografisk lokalisering)
visar utvalda data och resultat i tabellerna
visar valda data i stapeldiagram
visar utvalda data i historiska diagram
exportera data till tredjepartsapplikationer och vidare bearbetning
annan funktionalitet kommer att uppdateras på individuella förfrågningar.
Användarens front-end är tillgänglig via statisk IP- eller DNS-omdirigeringsdomän / underdomän / fil om tillgänglig.
Exemplarisk och demo-installation (Den är endast aktiverad för potentiella kunder).
Meddela oss när du vill testa det - för att möjliggöra allmänhetens tillgång till plattformen.
Det kan kräva statisk IP för fjärrdator för att möjliggöra kommunikation till @City-plattformen.
Huvudsidan lämnas tom avsiktligt av säkerhetsskäl: http: //% YourIP% / IoT /
Det kan aktiveras och redigeras individuellt och innehålla länkar till alla tillgängliga tjänster från @City IoT Plattform om det krävs
Huvudformuläret är avsett att skapa nya förinställningar och flikar: http: //%IP%/IoT/que.php
Detta är den första formen för att skapa resultat, vyer och flikar för varje konfiguration
Beskrivningar (från topp och vänster till höger riktning)
Ändra Visualization Theme CSS-fil måste finnas i "mallar / css /" katalog - listas automatiskt.
Välj huvudfält som är synliga på bordet. Det uppdateras automatiskt.
Avmarkera alla fält (måste följas genom att välja några av dem manuellt)
Markera alla fält (måste följas om du avmarkerar några av dem manuellt)
Detta motsvarar alla kryssrutor (X)
Individuellt skapade flikar med namn och förinställningar (lagras i cfg / tabs.cfg fil).
Filen innehåller faktiskt namn och URL (åtskilda av tab-tecken).
Visar alla fält som är begränsade av fältfilter.
Fält i tabellen:
Karta- mappningsresultat på kartan (ett eller flera fält kan väljas)
historia - historiska diagram (ett eller flera fält kan väljas)
tab - visar tabell (valfri kombination av fält kan väljas)
bar - endast ett fält visas i stapeldiagrammet
När du trycker på ett av dess värde öppnas nya resultat med valda fält (för aktuell rad).
Lägga till / ta bort en flik med namnet i Flik fält. Den använder endast fält som är markerade i samma rad i tabellen.
Genom att trycka på något annat fältnamn initieras datavisualisering av valt fält för vald rad.
Ordningen på visade fält är som sin ordning i fältform (dock tm fältet skickas alltid till slutet av texten). Denna ordning kan endast ändras med direkt redigering av URL-parametrar (fältbeställningsdel).
Till exempel: Inställningsflik med Spårning av tillgångar namn och innehåller karta med tid och hastighet på kartan
All beskrivning med hänvisning till rad var "Map" texten är i "Springa" kolumn.
Skriv namn "Spårning av tillgångar" i Flik fält (utan citattecken)
Se till att alla kolumner inte är markerade i raden
Välj tm, gps_hastighet_km bara i raden
Tryck + knappen var i raden
Kartor kan startas från MainForm med förkonfiguration
Kartinitiering utförs manuellt när den körs direkt med länk: > http: //%IP%/IoT/maps.php
Användaren bör avmarkera alla fält (tryck på Välja bort Knapp)
Tryck på någon kryssruta för visade fält (t.ex. Ain5 (för Smog-nivå) och tm (för mätdatum / tid)
Tryck "V" kryssruta för att dölja fältformulär
Tryck Kör för att köra DB-fråga och visa aktuell information från alla sensorer / enheter
Karta med data uppdateras efter 30 sekunder eller mer.
Inställningar som beskrivs från vänster till höger (på skärmdumpen ovan).
Zoomnivån kan ändras med hjälp av (+/-) knappar för skalning (aktuell_skala * 2 respektive aktuell_skala / 2). Om du trycker på en av dessa knappar ändras skala automatiskt.
Ett annat sätt är att välja Zoomnivå in Zoom Kombinationsfält och tryck Kör knapp. I det här fallet laddas hela vyn / kartan om och uppdateras (tar ett tag under initialiseringen).
IMEIfältet innehåller enhetens unika ID eller unikt alias för en enhet. Standardinställningen är * (asterisk) som visar de senaste värdena och geolokaliseringen för varje enhet.
Att ställa IMEI till något annat värde visar historisk data för vald enhet. Det har endast mening för mobila och rörliga sensorer, annars överlappar resultaten på kartan i samma position.
Ställ in mittposition på kartan. Detta fält är inställt på markörposition när du trycker på musknappen på kartan.
Kartstil / tema kan väljas från Map ComboBox-fält (t.ex. Mörk, grå, topografisk).
Olika kartteman kan ha olika maximala zoomnivåer så det kan tvinga rätt tema för att öka kartan.
Där klausul används för ytterligare frågesträng {WHERE part} för MySQL / MariaDB.
Denna klausul tas med i beräkningen för att konstruera fullständig QUERY-sträng för databasresultat. Det kan begränsa data, tid och andra värden genom att begränsa antalet resultat. Ursprungliga tabellfältnamn (inte alias) måste användas i detta fält. T.ex.
gps_speed_km> 10 // hastigheten är mer än 10 km / h
ain5> 3 // ain5 är större än 3 (håller 2,5um partiklar räknat - smognivå)
gps_speed_km> 10 och ain6> 5 // hastigheten är mer än 10 km / h och ain6 är större än 5 (håller 10um partiklar räknat - smognivå)
Att trycka på denna knapp krävs för att ändra inställningar, parametrar (förutom att trycka på +/- knappar).
Kartan laddas från början med nya förinställningar.
Kartan laddas inte alls när ingen data finns tillgänglig för aktuell fråga.
Efter att ha tryckt på denna knapp måste minst ett fält väljas manuellt för att visa resultat på kartan.
Den här kryssrutan används för att visa / dölja väljaren för de fält som ska visas.
Den här kryssrutan gör det möjligt att dölja hela formuläret förutom ( +/- knappar)
Resultaten på kartan uppdateras kontinuerligt och uppdateras med nya värden
Exempelvis Smog-resultat (sensor installerad på bilen): Smognivå 2,5um partiklar (Ain5), Hastighet (gps_hastighet_km), Datum / tid (tm), karta (2 - topografisk), zoomnivå 16,
Var klausul:
"gps_fix = 3 och tm> "2019-02-18 00:00:00" och tm <"2019-02-19 00:00:00" och gps_speed_km> 0".
// GPS = giltiga 3D-resultat & datum = 2019-02-18 & hastighet> 0 km / h
Visa resultat i tabellen.
På "Huvudformulär" Tryck "tabell" efter att ha valt några fält för att visa förkonfigurerad tabell
När tabellen är öppen från länken http: //%IP%/IoT/que.php? func = flikar det kräver förhandsinitiering av inställningarna.
Du kan välja synliga fält (genom att trycka på "Synliga fält" ) kryssruta.
Tryck på alla önskade kryssrutor för visade fält
Tryck på kryssrutan "Synliga fält" för att dölja fältform
Tryck på Execute-knappen för att köra DB-fråga och visa tabell
Inställningarna beskrivs från vänster till höger (på skärmdumpen).
Sorteringsfältet motsvarar att trycka på kolumnrubriken.
IMEIfältet innehåller enhetens unika ID eller unikt alias för en enhet. Med tomt värde visar det en tabell över de senaste värdena.
Att ställa IMEI till något annat värde visar historisk data för vald enhet.
Detta är sufix för MySQL / MariaDB ytterligare frågesträng {WHERE part}
Denna klausul beaktas för att konstruera en fullständig QUERY-sträng för databasresultat. Det kan begränsa data, tid och andra värden genom att begränsa antalet resultat. Ursprungliga tabellfältnamn (inte alias) måste användas i detta fält. T.ex.
gps_speed_km> 10 // hastigheten är mer än 10 km / h
ain5> 3 // ain5 är större än 3 (håller 2,5um partiklar räknat - smognivå)
gps_speed_km> 10 och ain6> 5 // hastigheten är mer än 10 km / h och ain6 är större än 5 (håller 10um partiklar räknat - smognivå)
Efter att ha tryckt på denna knapp måste minst ett fält väljas manuellt för att visa resultat på kartan.
Att trycka på denna knapp krävs för att ändra inställningar, parametrar (förutom att trycka på +/- knappar).
Tabellen laddas om från början med nya förinställningar.
Den här kryssrutan används för att visa / dölja väljaren för de fält som ska visas.
Resultaten i tabellen sorteras efter Sortera fältinställning. Sorteringsordningen kan ändras genom att trycka på radhuvudet (en gång i en riktning två gånger i en annan riktning).
Vissa resultat i kolumner länkar till ytterligare visualiseringsskärmar (hårdkodade).
När du visar historisk data för enheten bör den begränsas för att inte visa hela historikinformation eftersom det kan leda till prestanda eller minnesproblem.
Stapeldiagram ska köras från huvudformuläret genom att trycka på ett enda fält i raden "Bar".
Den visar sorterade staplar normaliserade till maximalt värde, som visas från högsta till lägsta ordning.
Det är användbart för att snabbt kontrollera extrema resultat och vidta några åtgärder.
Mouse Over-händelsen visar ytterligare information för enheten.
Historiska diagram kan initieras från MainForm när du trycker på vald kolumn i raden "Historik" (för ett fält).
För flera fält i raden "Historik" måste önskade fält kontrolleras och "Historik" -länken måste tryckas i "Kör" -kolumnen.
Historiska resultat är begränsade till senaste 24 timmar + nästa 24 timmar (för eventuella uppdateringsdiagram), när inga gränser sattes upp.
Historiska diagram när de öppnas från huvudlänken kräver initialisering som andra resultat, när de är öppna från länk utan preferensparametrar.
Flera fält kan väljas för att visa olika objekt. Det kan också ställas in i fältfilterformulär.
Tryck på alla önskade kryssrutor för visade fält
Tryck på kryssrutan "Synliga fält" för att dölja fältform
Tryck på Execute-knappen för att köra DB-fråga och visa tabellen
Objekt som beskrivs uppifrån och från vänster till höger (på skärmdumpen).
IMEIfältet innehåller enhetens unika ID eller unikt alias för en enhet. Med * (asterix) visar det en tabell över de senaste värdena som inte har någon mening.
Att ställa IMEI till något annat värde visar historisk data för vald enhet.
Klausul för att begränsa dataresultat MySQL / MariaDB ytterligare frågesträng {WHERE part}.
Denna klausul tas med i beräkningen för att konstruera fullständig QUERY-sträng för databasresultat. Det kan begränsa data, tid och andra värden genom att begränsa antalet resultat. Ursprungliga tabellfältnamn (inte alias) måste användas i detta fält och giltig SQL-syntax. T.ex.
gps_speed_km> 10 // hastigheten är mer än 10 km / h
ain5> 3 // ain5 är större än 3 (håller 2,5um partiklar räknat - smognivå)
gps_speed_km> 10 och ain6> 5 // hastigheten är mer än 10 km / h och ain6 är större än 5 (håller 10um partiklar räknat - smognivå)
Efter att ha tryckt på denna knapp måste minst ett fält väljas manuellt för att visa historiska resultat.
Att trycka på denna knapp krävs för att ändra inställningar, parametrar (förutom att visa fält eller förfrågan). Tabellen laddas om från början med nya förinställningar.
Den här kryssrutan används för att visa / dölja väljaren för de fält som ska visas.
Muspekaren visar värden på mätningar och datum / tid.
Funktion / WWW-webbläsare | Chrome 72 | FireFox 65 | Kant | Opera 58 |
Kartor | + | + | + | + |
Historisk | + | + (*) | + | + |
Barer | + | + | + | + |
Flikar | + | + | + | + |
* - Firefox stöder inte datum- / tidsväljare (textfältet måste redigeras manuellt med rätt datumformat).
Internet Explorer stöds inte (använd Kant istället)
Andra webbläsare testades inte.
Webbsidor är baserade på en allmän mallfil på "mallar" katalog "* .template".
Dessutom innehåller varje sidtyp:
"* .head" -fil som lagrar sidhuvudet (länkar, importerad CSS, JavaScript-filer etc. )
"* .foot" -filer som lagrar sidfot på sidan (länkar etc.) )
Visualiseringstema kan ändras enligt användarinställningar genom att hantera och modifiera CSS-filer. CSS-filer finns i "mallar / css" katalog. Olika webbsides teman kan användas för att skapa optimerade för t.ex. utskrift, SmartPhones, PAD-mallar.
Flikle vyer - har valbart fält för att välja CSS-fil för fullständig modifiering av temat (lagrad i "mallar / css / flikar" katalog).
Map utsikt - allmänt tema väljs av "Karta" skriv kombinationsruta. Dessutom finns det en standard CSS-fil "mallar / css / map.css" som innehåller ytterligare funktioner som att dölja / färga resultat baserat på dess värden. Resten av denna CSS-fil är praktiskt taget begränsad till frågeformer och fältformulär.
Mest av @City-plattformen PHP-filer för visualisering accepterar cssparameter med värdet på filnamnet för temat (utan tillägg). Filen måste finnas i katalogen "mallar / css" och namnet är skiftlägeskänsligt.
Vissa element i temavisning visas direkt i JavaScript-filen i "mall / js" katalog.
Main @Stad manus"@ City.js" finns i övre katalogen. Det finns ingen modifieringsmöjlighet i detta plats, men skriptet kan kopieras till "mallar / js" katalogen och modifieras där. Användning av enskilda skript kräver uppdatering av alla rubrikfiler.
Vissa unika sensorer kan kräva särskilda beräkningsfunktioner.
Det finns ingen möjlighet att uppdatera och underhålla flera varianter av Programvara för @City Server, Front-end PHP-gränssnitt, vilket skulle orsaka många problem, versioner, fel.
Det bästa och enklaste sättet att uppnå det är att uppdatera over "overlay" -filer för korrekt visning av värdet / beskrivningen.
Original JS-skript är öppna textfiler och kan antas efter kundens behov. Som anges i föregående kapitel måste de kopieras till "mallar / js" katalog där kunden har åtkomsträttigheter för modifiering.
Teknisk aspekt vid programmering av @Stad systemet är inte ett ämne i detta dokument, men webbutvecklare med grundläggande kunskaper om HTML och JS kan anpassa Front-end-webbapplikationen efter individuella kundbehov.
@City Database med ett namn "IoT" eller "* IoT" är indelad i tabeller (där asterix är prefix beroende på värdserver - om det behövs). DataBase kan observeras i PHPAdmin (webbapplikation) på länken http: //% IP% / phpmyadmin
Tabeller för varje enhet (var * {asterix} är IMEI-adress - unikt ID):
"* _t" - tokens för nuvarande användares auktorisering (används inte för moln för en kund)
"* _c" - kommandon (Händelser) kö - som ska skickas till enheten
"*" - alla avkodade statusresultat.
Övriga tabeller:
"ithings_" tabell - innehåller avkodad aktuell status för alla enheter (den kopieras under uppdateringen av någon av "*" tabeller). Strukturen av ithings_ bordet är nästan detsamma som för "*" tabeller. "ithings_" har ytterligare fält för postadress och beskrivningar.
tabellen "användare" är begränsad och bör ändras.
"idx" - index
"tm" - automatisk tidsstämpel
"dt" - unix tidsstämpel
"imei" - unik enhetsadress
"rssi" - RSSI-signalnivå
"rsrp" - RSRP-signal
"evenemang" - väntande händelser som ska skickas till styrenheten
"out1" .. "ut16" - avkodad utgångsstatus
"i 1" .. "in16" - avkodad ingångsstatus
"ain1" .. "ain8" - avkodade ADC-värden (RAW)
"sens1" .. "sens8" - konverterade sensorvärden (beror på enhetstyp)
"dimm1" .. "dimm8" - avkodade dimmervärden (beror på enhetstyp)
"int1" .. "int6" - avkodade räknarvärden (beror på enhetstyp)
"text1" .. "text6" - avkodade textvärden (beror på enhetstyp)
"skapande" - Datum / tid för skapande av enhet
"sista" - sista datum / tid
"användare" - framtida användning
"pass" - framtida användning
"sn" - gsm-serienr
"status" - aktuell kontrollstatus avkodas inte i hex-format
"hash_code" - framtida användning
"addr" - kort enhetsadress
"fwnr" - firmware nr
"inaktiverad" - inaktiverad enhet (ej utförd)
"gsm_nr" - CIoT gsm-nummer
"leverantör" - leverantörskod (för franchise / samproduktion)
"tidszon" - tidszonsförskjutning
"dst" - Använd inställningar för dagliga besparingar
"gps_lat" - GPS Latitude
"gps_long" - GPS-longitud
"gps_hdop" - GPS HDOP
"gps_alt" - GPS-höjd
"gps_fix" - GPS-fixering (måste vara 3 - för giltiga resultat)
"gps_cog" - GPS-kugge
"gps_speed_km" - GPS-hastighet i [km / h]
"gps_sat" - GPS-satelliter hittades
"kontinent", "land", "region", "underregion", "underregion", "stad", "distrikt", "gata", "gata_nr", "artikel_nr" - Kundadress och beskrivningsfält (!!!! Ej tillgängligt för "*" historiska tabeller)
"logg" - loggdata
Fältnamnen är viktiga för att skapa SQL-frågor för att öka sökfunktionen eftersom originalnamnet måste användas i SQL Statement.
Denna tabell är händelse / kommandokö för varje enhet och har följande struktur:
"kommando" - kommando som ska skickas eller redan skickas till styrenheten
"bekräftad" - bekräftelseflagga om den redan har skickats och bekräftats
"datum" - unix-tidsstämpel för händelse
"uppdaterad" - flagga för automatisk uppdatering (datum / tid för tidsstämpel)
Data kan nås utan Front-end webbapplikation. @City-systemet innehåller skript med mellannivåfunktioner. Resultaten returneras i JSON-format.
http: //%IP%/IoT/que.php? func = devsjson
Frågan returnerar hel "_ithings" tabell (nuvarande status för alla enheter) i JSON-format:
[{ "Land":"", "stad":"", "kontinent":"", "Land":"", "område":"", "underregion":"", "underregion":"", "stad":"", "distrikt":"", "gata":"", "street_nr":"", "artikel_nr":"", "gps_lat":"0000.0000N", "gps_long":"00000.0000E", "tm":"2019-02-10 12:56:23", "skapande":"2019-02-09 18:12:38", "sista":"0000-00-00 00:00:00", "evenemang":"", "användare":"", "passera":"", "imei":"351580051067110", "sn":"", "status":"73000200000f360033026800240000002c002c002dffffffffffffff5b63000001c1000001c2000000000000000009250a4f0a760a7a0a750a780a7e0000031d032205fc34029b025c025600460eb305320000", "hash-kod":"", "addr":"", "fwnr":"", "Inaktiverad":"", "gsm_nr":"", "Säljare":"", "tidszon":"", "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":"", "evenemang":"", "out1":"0", "ut2":"0", "ut3":"0", "ut4":"0", "ut5":"0", "ut6":"0", "ut7":"0", "ut8":"0", "ut 9":"0", "ut10":"1", "ut11":"0", "ut12":"0", "ut13":"0", "ut14":"0", "ut15":"0", "ut16":"0", "i 1":"0", "in2":"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":"", "text5":"", "text6":"" }]
Fråga historisk data för en enhet av IMEI nr:
http: //%IP%/IoT/que.php? func = imeijson & imei = 356345080018095
Eftersom hela tabellen kan innehålla miljontals rader bör den begränsas med WHERE-satsen för att inte lägga på servern.
Ytterligare parametrar url-parametrar:
funk - imeijson
imei - Enhetens IMEI
fält - fält som ska visas i resultaten (komaseparerad lista)
min - minimivärde för det första fältet i listan
max - maximalt värde för det första fältet i listan
sellert - fält för sortering
tm - fält läggs automatiskt till resultaten.
where - där klausul om begränsad data
Exempel:
Vi vill få följande resultat
för enhet med imei=356345080018095
visa fält: ain5, ain6, gps_lat, gps_long
och begränsa ain5 inom räckhåll ( 1, 10000 ) - måste vara det första fältet i listan
och GPS har giltiga uppgifter (gps_fix = 3)
och datum / tid (tm) from2019-02-14 23:00:19 to 2019-02-15 00:00:00
Konstruerad URL-sträng:
http: //%IP%/IoT/que.php? func =imeijson& imei =356345080018095& fält =ain5, ain6, gps_lat, gps_long& min =1& max =1000& var =gps_fix = 3 och tm> "2019-02-14 23:00:19" och tm <"2019-02-15 00:00:00"
Frågeresultat:
[{ "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" }]
Den här funktionen returnerar begränsad data från "_ithings" -tabellen
http: //%IP%/IoT/que.php? func = fieldjson & field = ain5 & min = 13 & max = 5000
Parametrar:
funk - fieldjson
fält - fält som ska visas i resultaten - imei och tm läggs automatiskt till
min - minimivärde för fältet
max - maximalt värde för fältet
För ovanstående frågesträng returnerar den resultaten av ain5, imei, tm fält:
om ain5 är inom räckhåll (13,5000)
Frågeresultat:
[{"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" }]