@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


1. Introduktion.

@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.

1.1 Stödda enhetstyper.

@City IoT-plattformen är dedikerad till att följa iSys.PL-produkter



1.2. Produkter som stöds.

@City (eCity) Cloud IoT Platform är olika storlekssystem för IP IoT-produkter (kallas tillsammans som @City hårdvara eller CioT-enheter ):


1.3. Kommunikationsprotokoll som stöds

@City IoT plattform stöder följande protokoll för kommunikation:

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.) ).


1.4. Enheter som stöds kommunikationsteknik

@City IoT plattform stöder:


@City IoT Platform är tillägnad enheter / noder:


1.5. @City Cloud Server

@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):


Flera varianter av VPS finns beroende på:


Dussintals dedikerad server finns beroende på:


Plattformen @City is är avsedd för enskild kund:


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.

1.5.1. Server- och kommunikationsportar

Kommunikation av @City Server realiseras baserat på applikation på låg nivå för maximal prestanda.

Huvudfunktionerna i applikationen @City Server är:

Programvaran @City Server är densamma för varje användare och kan inte anpassas för olika kunder.

1.5.2 HTTP LoRaWAN-integration

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.

1.5.3 Front-end gränssnitt

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.

1.5.3 Serveråtkomsträttigheter

Kundrättigheter (till fysisk server) är begränsade.

Filåtkomst endast för "mallar" -katalogen (ursprungliga textfiler - .txt, .js, .css, .html):

Övriga åtkomsträttigheter:


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.


1.6. Smarta enheter

1.6.1. CIoT - GSM-enheter

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".


1.6.3. BAS, BMS, IoT - Ethernet- och WiFi-enheter


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


1.6.2. IoT - LoRaWAN-enheter

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.

1.7. Business to Business (B2B) alternativ


Det finns flera alternativ för affärer och samarbete:

2. @City IoT Plattformsfunktionalitet

@City-plattform stöder anpassningsbar Front-End-mall för datavisualisering, fråga, begränsning och bearbetning (aktuell / historikdata):


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.


3. Huvudsida

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


4. Huvudformulär

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)

4.1. Rubrik

4.1.1. Hemlänk - (öppnar den faktiska resultattabellen)

4.1.2. "X" kryssruta - öppnar / stänger frågeformulär

4.1.3. "V" kryssruta - öppnar / stänger fältformulär

4.1.4. Grafiska ikoner - länkar till visualiseringsresultat (redigerbara)


4.2. Form:

4.2.1. "X" kryssruta - öppnar / stänger hela frågeformuläret

4.2.2. CSS - Välj Visualiseringstema

Ändra Visualization Theme CSS-fil måste finnas i "mallar / css /" katalog - listas automatiskt.

4.2.3 Synliga fält kryssruta - visar / döljer fältfilterlista

4.2.4. Flik: Fliknamn för att lägga till eller ta bort

4.2.5. Lägg till ta bort Knappar - Lägg till eller ta bort flikar med namnet i Flik fält

4.2.6. Välj Core Knapp

Välj huvudfält som är synliga på bordet. Det uppdateras automatiskt.

4.2.7. Avmarkera alla Knapp

Avmarkera alla fält (måste följas genom att välja några av dem manuellt)

4.2.7. Välj alla Knapp

Markera alla fält (måste följas om du avmarkerar några av dem manuellt)

4.2.8. Dölj filter - Dölj hela formuläret

Detta motsvarar alla kryssrutor (X)

4.2.9. Kör Knapp - Ändra parametrar

4.2.10. "V" kryssruta - visa / höga filterfält.


4.3. Flikar

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).


4.4. Tabellinnehåll

Visar alla fält som är begränsade av fältfilter.


Fält i tabellen:

4.4.1. Springa - visar resultattyp

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).


4.4.2. Kopiera (+/- länkar)

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.


4.4.3. Tabellcellänkar

Genom att trycka på något annat fältnamn initieras datavisualisering av valt fält för vald rad.


4.5. Databeställning


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).


4.6. Exempel

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.

  1. Skriv namn "Spårning av tillgångar" i Flik fält (utan citattecken)

  2. Se till att alla kolumner inte är markerade i raden

  3. Välj tm, gps_hastighet_km bara i raden

  4. Tryck + knappen var i raden






5. Kartor

Kartor kan startas från MainForm med förkonfiguration


5.1. Initiering av kartan

Kartinitiering utförs manuellt när den körs direkt med länk: > http: //%IP%/IoT/maps.php


  1. Användaren bör avmarkera alla fält (tryck på Välja bort Knapp)

  2. Tryck på någon kryssruta för visade fält (t.ex. Ain5 (för Smog-nivå) och tm (för mätdatum / tid)

  3. Tryck "V" kryssruta för att dölja fältformulär

  4. Tryck Kör för att köra DB-fråga och visa aktuell information från alla sensorer / enheter

  5. Karta med data uppdateras efter 30 sekunder eller mer.


5.2. Valfria inställningar för frågan

Inställningar som beskrivs från vänster till höger (på skärmdumpen ovan).

5.2.1. Ändra MAP-skala (zoomnivå)

  1. 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.

  2. 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).

5.2.2. IMEI (Välj enhetsfält)

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.


5.2.3. Lon, Lat (Koordinatfält för longitud, latitud)

Ställ in mittposition på kartan. Detta fält är inställt på markörposition när du trycker på musknappen på kartan.


5.2.4. Ändra MAP-stil (tema)

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.


5.2.5. VAR Klausul

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.

  1. gps_speed_km> 10 // hastigheten är mer än 10 km / h

  2. ain5> 3 // ain5 är större än 3 (håller 2,5um partiklar räknat - smognivå)

  3. 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å)


5.2.6. Kör (Kör fråga-knappen)

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.

5.2.7. Avmarkera alla (Ta bort alla fält från frågan)

Efter att ha tryckt på denna knapp måste minst ett fält väljas manuellt för att visa resultat på kartan.


5.2.8. "V" Kryssruta (Öppna / stäng fältformulär)

Den här kryssrutan används för att visa / dölja väljaren för de fält som ska visas.


5.2.9. "X" Kryssruta (Visa / dölj frågeformulär)

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

5.3. Exempel

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



6. Visa resultat i tabellen

Visa resultat i tabellen.

På "Huvudformulär" Tryck "tabell" efter att ha valt några fält för att visa förkonfigurerad tabell




6.1. Initialisering av tabellen

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.



  1. Tryck på alla önskade kryssrutor för visade fält

  2. Tryck på kryssrutan "Synliga fält" för att dölja fältform

  3. Tryck på Execute-knappen för att köra DB-fråga och visa tabell


6.2. Valfria inställningar för frågan

Inställningarna beskrivs från vänster till höger (på skärmdumpen).

6.2.1. Sortera - sortera fält och ordna stigande / fallande

Sorteringsfältet motsvarar att trycka på kolumnrubriken.

6.2.2. DB / IMEI - Välj enhet

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.


6.2.3. CSS - välj stil (Visualiseringstema)

6.2.4. Synliga fält - Visa / dölj fältformulär

6.2.5. Ta bort Tom - Visa inte tomma kolumner

6.2.6. "X" Kryssruta (Visa / dölj frågeformulär)

6.2.7. Var Klausul (för databegränsning)

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.

  1. gps_speed_km> 10 // hastigheten är mer än 10 km / h

  2. ain5> 3 // ain5 är större än 3 (håller 2,5um partiklar räknat - smognivå)

  3. 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å)


6.2.8. Välj Core Knapp (Aktivera vanligaste fält)


6.2.9. Avmarkera alla Knapp (ta bort alla fält från frågan)

Efter att ha tryckt på denna knapp måste minst ett fält väljas manuellt för att visa resultat på kartan.


6.2.10. Kör (Kör fråga-knappen)

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.



6.2.11. "V" Kryssruta (Öppna / stäng fältformulär)

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.


7. Stapeldiagram.

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.


8. Historiska diagram.

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.

8.1. Initialisering av historiska diagram


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.




  1. Tryck på alla önskade kryssrutor för visade fält

  2. Tryck på kryssrutan "Synliga fält" för att dölja fältform

  3. Tryck på Execute-knappen för att köra DB-fråga och visa tabellen


8.2. Valfria inställningar för historiska diagram

Objekt som beskrivs uppifrån och från vänster till höger (på skärmdumpen).

8.2.1. IMEI - (Välj enhet för att visa historisk data)

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.

8.2.2. Min - begränsa minimivärdet för det första fältet

8.2.3. Max - begränsa maximalt värde för det första fältet

8.2.4. "V" - Visa / dölj fältformulär

8.2.5. Från: ställa in minimalt datum / tid (*)

8.2.6. Till: ställa in maximalt datum / tid (*)

8.2.7. "X" Kryssruta (Visa / dölj frågeformulär)

8.2.8. "Var" Klausul

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.

  1. gps_speed_km> 10 // hastigheten är mer än 10 km / h

  2. ain5> 3 // ain5 är större än 3 (håller 2,5um partiklar räknat - smognivå)

  3. 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å)


8.2.9. Avmarkera alla Knapp (ta bort alla fält från frågan)

Efter att ha tryckt på denna knapp måste minst ett fält väljas manuellt för att visa historiska resultat.


8.2.10. Kör (Kör fråga-knappen)

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.

8.2.11. "V" Kryssruta (Öppna / stäng fältformulär)

Den här kryssrutan används för att visa / dölja väljaren för de fält som ska visas.


8.3. Barer Variant: (visar endast tillgänglig data)



8.4. Kontinuerlig variant (med samma data):



Muspekaren visar värden på mätningar och datum / tid.

9. Webbläsarens kompatibilitet


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.



10. Teman Anpassning

Webbsidor är baserade på en allmän mallfil på "mallar" katalog "* .template".

Dessutom innehåller varje sidtyp:

  1. "* .head" -fil som lagrar sidhuvudet (länkar, importerad CSS, JavaScript-filer etc. )

  2. "* .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.

11. Algoritmuppdatering


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.


12. Databasstruktur


@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):

Övriga tabeller:



12.1. "ithings_" och "*" tabellstruktur

12.2. Enhetskommandon (Händelser) kö "* _c" tabell - struktur


Denna tabell är händelse / kommandokö för varje enhet och har följande struktur:



12.3. Få tillgång till resultat från databaser - mellannivå (läsdata)


Data kan nås utan Front-end webbapplikation. @City-systemet innehåller skript med mellannivåfunktioner. Resultaten returneras i JSON-format.


12.3.1. Få aktuella statuser för alla enheter

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":"" }]

12.3.2. Få historisk data för enheten

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" }]

12.3.3. Få en lista över enheter - enstaka fält från nuvarande status med begränsning

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" }]