@City IoT Cloud Platform




iSys - Intelligente systemen IoT Oplossingen









IoE.Systems

Ynhâldsopjefte

1. Ynlieding. 5

1.1 Stipe apparaattypen. 5

1.2. Stipe produkten soarten. 5

1.3. Stipe kommunikaasjeprotokollen 5

1.4. Stipe kommunikaasje technology fan 'e apparaten 6

1.5. @City Cloud Server 6

1.5.1. Server- en kommunikaasjeportaazjes 7

1.5.2 HTTP LoRaWAN yntegraasje 7

1.5.3. Front-end ynterface 8

1.5.3. Tsjinner tagongsrjochten 8

1.6. Smart Devices 9

1.6.1. CIoT - GSM-apparaten 9

1.6.3. BAS, BMS, IoT - Ethernet- en WiFi-apparaten 9

1.6.2. IoT -LoRaWAN-apparaten 9

1.7. Saken nei bedriuw (B2B) opsjes 9

2. @City IoT Platformfunksjonaliteit 10

3. Haadside 11

4. Haadformulier 11

4.1. Koptekst 12

4.1.1. Thúsferbining - (iepent tabel mei werklike resultaten) 12

4.1.2. Fakje "X" - iepenet / slút Queryformulier 12

4.1.3. "V" karfakje - iepenet / slút fjildfoarm 12

4.1.4. Grafyske ikoanen - keppelings nei resultaten fan fisualisaasje (bewurkber) 12

4.2. Foarm: 12

4.2.1. "X" karfakje - iepenet / slút heul Queryformulier 12

4.2.2. CSS - Selektearje Visualisaasjetema 12

4.2.3 Fekânsje sichtber fjilden - lit fjildfilterlist 12 sjen / ferbergje

4.2.4. Ljepper: Ljeppernamme om 12 ta te foegjen of te ferwiderjen

4.2.5. Knoppen tafoegje / fuortsmite - Ljeppers tafoegje of fuortsmite mei de namme yn ljepper fjild 12

4.2.6. Selektearje kearnknop 12

4.2.7. Deselektearje Alle knop 12

4.2.7. Selektearje Alle knop 12

4.2.8. Filter ferbergje - Hiel formulier 12 ferbergje

4.2.9. Knop útfiere - Parameterynstellings feroarje 13

4.2.10. "V" karfakje - fjilden sjen litte / heech filterje. 13

4.3. Ljeppers 13

4.4. Ynhâld Tabel 13

4.4.1. Run - werjaan resultattype 13

4.4.2. Kopiearje (+/- keppelings) 13

4.4.3. Tafelsellkeppelings 13

4.5. Gegevensbestelling 13

4.6. Foarbyld 13

5. Kaarten 15

5.1. Inisjalisaasje fan kaarten 15

5.2. Opsjonele ynstellings foar fraach 15

5.2.1. MAP-skaal feroarje (zoomnivo) 16

5.2.2. IMEI (Selektearje apparaatfjild) 16

5.2.3. Lon, Lat (fjilden foar lingtegraad, breedtegraad)

5.2.4. MAP-styl (tema) wizigje 16.

5.2.5. WAAR Klausule 16

5.2.6. Útfiere (Query-knop útfiere) 16

5.2.7. Deselektearje Alles (fuortsmite alle fjilden út 'e fraach) 17

5.2.8. Fakje "V" (Fjildfoarm iepenje / slute) 17

5.2.9. Fakje "X" (Queryformulier sjen litte / ferbergje) 17

5.3. Foarbyld 17

6. Resultaten sjen litte yn 'e tabel 18

6.1. Inisjalisaasje fan tabel 18

6.2. Opsjonele ynstellings foar fraach 19

6.2.1. Sortearje - fjild sortearje en op- / delgeande folchoarder 19

6.2.2. DB / IMEI - Selektearje apparaat 19

6.2.3. CSS - selektearje styl (Visualisaasjetema) 20

6.2.4. Sichtbere fjilden - Fjilden 20 sjen litte / ferbergje

6.2.5. Leech fuortsmite - Lit gjin lege kolommen 20 werjaan

6.2.6. Fakje "X" (Queryformulier sjen litte / ferbergje) 20

6.2.7. Wêr't klausule (foar gegevensbeheining) 20

6.2.8. Selektearje kearnknop (Meest foarkommende fjilden ynskeakelje) 20

6.2.9. Deselektearje Alle knop (alle fjilden fuortsmite fan 'e fraach) 20

6.2.10. Útfiere (Query-knop útfiere) 20

6.2.11. Finkje "V" (Fjildfoarm iepenje / slute) 20

7. Bargrafiken. 21

8. Histoaryske kaarten. 22

8.1. Inisjalisaasje fan histoaryske charts 22

8.2. Opsjonele ynstellingen fan histoaryske kaarten 23

8.2.1. IMEI - (Selektearje apparaat om histoaryske gegevens te werjaan) 23

8.2.2. Min - beheine minimale wearde fan earste fjild 23

8.2.3. Maks - limyt maksimale wearde fan earste fjild 23

8.2.4. "V" - Fjilden 23 sjen litte / ferbergje

8.2.5. Fan: minimale datum / tiid ynstelle (*) 23

8.2.6. Oan: maksimum datum datum / tiid ynstelle (*) 23

8.2.7. Fakje "X" (Queryformulier sjen / ferbergje) 23

8.2.8. "Wêr" Klausule 23

8.2.9. Deselektearje Alle knop (alle fjilden fuortsmite fan 'e fraach) 23

8.2.10. Útfiere (Query-knop útfiere) 23

8.2.11. Fakje "V" (Fjildformulier iepenje / slute) 24

8.3. Barsfariant: (toant allinich beskikbere gegevens) 24

8.4. Trochrinnende fariant (mei deselde gegevens): 24

9. Kompatibiliteit fan webbrowser 25

10. Tema's oanpasse 26

11. Algoritmen fernije 27

12. Databankstruktuer 28

12.1. "ithings_" en "*" tabellen struktuer 29

12.2. Apparaatkommando's (Eveneminten) wachtrige "* _c" tabel - struktuer 30

12.3. Tagong ta resultaten fan databases - Midnivo (lêsgegevens) 30

12.3.1. Krij hjoeddeistige status fan alle apparaten 30

12.3.2. Krij histoaryske gegevens foar it apparaat 31

12.3.3. Krij list mei apparaten - ien fjild fan hjoeddeistige status mei beheining 32


1. Ynlieding.

@City IoT Cloud Platform is wijd "mikro-wolk" systeem foar yndividuele klanten. Platfoarm is net te dielen en mar ien klant hat tagong ta fysike as firtuele server (VPS as spesjale servers). Klant kin ien fan tsientallen datasintra selektearje yn Jeropa as yn 'e wrâld.

1.1 Stipe apparaattypen.

@City IoT platfoarm is wijd oan it folgjen fan iSys.PL produkten



1.2. Stipe produkten soarten.

@City (eCity) Cloud IoT Platfoarm is ferskate grutte systeem foar IP IoT produkten (tegearre neamd as @City Hardware of CioT-apparaten ):


1.3. Stipe kommunikaasjeprotokollen

@City IoT platfoarm stipet folgjende protokollen foar kommunikaasje:

Gegevens ferstjoerd fan controller nei wolkserver en oarsom wurde fersifere yn unyk binêr formaat foar leechste gegevensgrutte en ferhege feiligens. Elke partner krijt syn eigen unike fersiferingskaai foar autorisaasje fan apparaat, validiteit fan gegevens, ensfh.


Foar net-eHouse / eCity-apparaten kinne wy ​​yndividuele fersiferingsalgoritmen leverje ( "C" boarne koade) foar elke partner foar mikroprozessor om gegevens te beskermjen foar kommunikaasje.

Yn dit gefal binne gegevens folslein feilich by bidireksjoneel kommunikaasje oer de publike kommunikaasjemedia (ynternet, Air, ensfh.) ).


1.4. Stipe kommunikaasje technology fan 'e apparaten

@City IoT platfoarm stipet:


@City IoT Platfoarm is wijd oan apparaten / knooppunten:


1.5. @City Cloud Server

@City software wurket op Linux basearre VPS (Virtual Private Server) of Dedicated Server oan ynternetside, ôfhinklik fan frege prestaasjes fan 'e Tsjinner (letter Server neamd):


Ferskate farianten fan VPS besteane ôfhinklik fan:


Tsientallen Dedicated server bestiet ôfhinklik fan:


It platfoarm @City IoT is wijd oan ien klant:


Om't it Server net kin wurde dield tusken klanten, ferienfâldiget it problemen mei tagong ta feiligens en prestaasjes. Fanwegen dizze reden is allinich klant ferantwurdlik foar effektive feiligens, stabiliteit, effisjinsje, dataferfier, ensfh. Yn gefal fan net genôch prestaasjes kin klant heger plan keapje (VPS of Dedicated Server), mear optimaal foar ferwachte funksjonaliteit en prestaasjes.

Yn spesjale gefallen "Cloud to cloud" kommunikaasje kin wurde ymplementeare foar globalisearring en sintralisaasje fan gegevens nei gruttere gebieten ynstee fan multikundewolk.

1.5.1. Server- en kommunikaasjeportaazjes

Kommunikaasje fan @City Server wurdt realisearre op basis fan applikaasje op leech nivo foar maksimalisaasje fan prestaasjes.

Hovedfunksjes fan @City Server-tapassing binne:

@City Server software is itselde foar elke brûker en kin net oanpast wurde foar ferskate klanten.

1.5.2 HTTP LoRaWAN yntegraasje

LoRaWAN-controllers binne yntegreare mei de @City-wolk fia de HTTP-ynterface (webhooks) beskikber op 'e LoRaWAN netwurk / tapassingsserver.

Ferskate soarten netwurk- / applikaasjeserver wurde stipe:

TTN (beheinde tiid "Yn 'e loft" en it maksimum oantal kommando's dy't nei de bestjoerder stjoerd binne en stipe gjin firmware-upgrade)

LoraWAN-Stack (fereasket hosting op in fysyk apparaat mei ynternet tagong).

LoraServer.Io (fereasket hosting op in fysyk apparaat mei ynternet tagong - stjoere allinich gegevens nei de server en stipet gjin firmware-upgrade)



De @City Cloud foar LoRaWAN-controllers is ferdield op deselde manier as foar oare ynterfaces. It wurdt besprutsen yn it foarige haadstik.

1.5.3. Front-end ynterface

Front-end-interface wurdt realisearre mei PHP-skripts foar oanpasse gegevens út @City Cloud Database. It brûkt heul elastysk sykmeganisme, basearre op orizjinele SQL-fragen om winske gegevens te beheinen. Interface leveret query-resultaten yn JSON-formaat foar fierdere dekodearjen en ferwurkjen troch JavaScript Front-end Web "applikaasje".

Orizjinele front-end-interface is itselde foar elke brûker en kin net oanpast wurde foar ferskate klanten.

Overlay-interface kin makke wurde troch ús personiel of yn 'e gearwurking om oanpassing foar de klant te garandearjen.

1.5.3. Tsjinner tagongsrjochten

Klant tagongsrjochten (ta fysike Server) binne beheind.

Triemtoegang allinich foar map "sjabloanen" (native tekstbestannen - .txt, .js, .css, .html):

Oare tagongsrjochten:


iSys - meiwurkers fan Intelligent Systems - hawwe unbeheinde tagong ta heule server ynklusyf root-akkount en folsleine DB-tagong foar ûnderhâld.

Under bepaalde omstannichheden kin iSys ekstra beheinde rjochten jaan oan klant (PHP-skripts, bestannen) nei kontrolearjen fan boarnekoade, testen útfiere, as it gjin ynfloed hat op de totale systeemfeiligens, stabiliteit en prestaasjes.


1.6. Smart Devices

1.6.1. CIoT - GSM-apparaten

Us apparaten befetsje mikrokontroller en GSM / GPS / GNSS-module (2G..4G, NBIoT, CATM1) foar kommunikaasje. Microcontroller befettet fersifere bootloader foar feilige OTA-firmware-upgrade. Hjirmei kinne jo in soad systeemfarianten oanmeitsje op basis fan deselde "CIoT Smart apparaat".


1.6.3. BAS, BMS, IoT - Ethernet- en WiFi-apparaten


Ethernet- en WiFi-controllers meitsje IP-basearre kommunikaasje mei it systeem mooglik (sûnder opladen foar gegevensferfier nei de GSM-operator). Dizze apparaten hawwe ek bootloader fersifere en apparaten kinne wurde bywurke fia de eigen interface. Foar WiFi hat it OTA-firmware-upgrade fan haadserver


1.6.2. IoT - LoRaWAN-apparaten

LoRaWAN makket datatransmissie mooglik oer heule lange ôfstannen (oant sawat 15km). Dit berik hinget ôf fan 'e snelheid fan gegevensferstjoering, de hoemannichte gegevens, ferstêdliking fan it gebiet en de effisjinsje fan' e radiopaden fan 'e apparaten.

Us apparaten befetsje in mikrokontroller en LoRaWAN-module foar kommunikaasje. De mikrokontroller befettet in fersifere bootloader foar feilige OTA-software-fernijing. Hjirmei kinne jo meardere systeemfarianten oanmeitsje op basis fan deselde "IoT smart device". De apparaten wurkje yn 'e ISM iepen band sûnder ekstra abonnemintskosten. It is needsaaklik LoRaWAN Gateways te brûken om it heule gebiet te dekken mei tagong ta it ynternet. Yn 't gefal fan besteande LoRaWAN-poarten binnen it berik fan apparaten (konfigureare foar TTN-tsjinner) is it mooglik om ynformaasje fia har te stjoeren. Firmware-upgrade fereasket in eigen netwurk / applikaasje LoRaWAN-tsjinner en in goed berik foar kommunikaasje.

1.7. Business to Business (B2B) opsjes


D'r binne ferskate opsjes foar bedriuw en gearwurking:

2. @City IoT Platformfunksjonaliteit

@City-platfoarm stipet oanpasbere Front-End-sjabloan foar fisualisaasje, query, beheining en ferwurking fan gegevens (aktuele / histoaryske gegevens):


De foarkant fan 'e brûker is tagonklik fia statysk IP- as DNS-trochferwizingsdomein / subdomein / bestân as beskikber.


Foarbyld- en demo-ynstallaasje (It is allinich ynskeakele foar potensjele klanten).

Ynformearje ús asjebleaft as jo it wolle testen - om publike tagong ta it platfoarm mooglik te meitsjen.

It kin statysk IP nedich wêze fan komputer op ôfstân om kommunikaasje mooglik te meitsjen mei @City-platfoarm.


3. Haadside

Haadside wurdt mei opsetsin leech litten om feiligensredenen: http: //% YourIP% / IoT /

It kin yndividueel ynskeakele en bewurke wurde en befetsje keppelings nei alle beskikbere tsjinsten fan @City IoT Platfoarm as it ferplicht is


4. Haadformulier

Haadformulier is bedoeld om nije presets en ljeppers te meitsjen: http: //%IP%/IoT/que.php

Dit is inisjele foarm foar it meitsjen fan resultaten, werjeften en ljeppers foar elke konfiguraasje




Beskriuwingen (Fan boppe en lofts nei rjochter rjochting)

4.1. Koptekst

4.1.1. Home Link - (iepenet de werklike resultattabel)

4.1.2. "X" karfakje - iepenet / slút Query Form

4.1.3. "V" karfakje - iepenet / slút fjildfoarm

4.1.4. Grafyske ikoanen - keppelings nei resultaten fan visualisaasje (bewurkber)


4.2. Foarm:

4.2.1. "X" karfakje - iepenet / slút hiele Queryformulier

4.2.2. CSS - Selektearje Visualisaasjetema

Wizigje Visualisaasje Tema CSS-bestân moat bestean yn "sjabloanen / css /" map - automatysk neamd.

4.2.3 Sichtbere fjilden karfakje - toant / ferstoppet Fjildfilterlist

4.2.4. Ljepper: Ljeppernamme om te foegjen of te ferwiderjen

4.2.5. Tafoegje / ferwiderje Knoppen - Ljeppers tafoegje of fuortsmite mei de namme yn Tab fjild

4.2.6. Selektearje Core Knop

Selektearje haadfjilden sichtber op 'e tafel. It wurdt bywurke automatysk.

4.2.7. Deselektearje Alles Knop

Deselektearje alle fjilden (moatte wurde folge troch guon derfan mei de hân te selektearjen)

4.2.7. Selektearje Alles Knop

Selektearje alle fjilden (moatte wurde folge mei guon fan 'e hân selektearje)

4.2.8. Filter ferbergje - Ferbergje hiele foarm

Dit is lykweardich oan alle (X) karfakje

4.2.9. Eksekutearje Knop - Parameterynstellingen feroarje

4.2.10. "V" karfakje - fjilden sjen / heech filterje.


4.3. Ljeppers

Yndividueel makke ljeppers mei nammen en presets (opslein yn cfg / tabs.cfg map).

It bestân befettet eins namme en URL (skieden troch ljepper).


4.4. Ynhâld fan 'e tafel

Toant alle fjilden beheind troch fjildfilter.


Fjilden yn 'e tabel:

4.4.1. Run - werjeften resultattype

map- resultaten fan kaarten op 'e kaart (ien as mear fjild kin wurde selekteare)

skiednis - histoaryske charts (ien as mear fjild kin wurde selekteare)

tab - toant tabel (elke kombinaasje fan fjilden kin wurde selekteare)

bar - mar ien fjild wurdt werjûn op it staafdiagram

As jo ​​op ien fan 'e wearde drukke, sil it nije resultaten iepenje mei selekteare fjilden (foar hjoeddeistige rige).


4.4.2. Kopiearje (+/- links)

In ljepper tafoegje / ferwiderje mei de namme ynsteld Tab fjild. It brûkt allinich fjilden dy't binne selekteare yn deselde rigel fan 'e tabel.


4.4.3. Tafelsellkeppelings

Troch op in oare fjildnamme te drukken sil Gegevensfisualisaasje fan it selekteare fjild foar de selekteare rige begjinne.


4.5. Data Order


Oarder fan werjûn fjilden binne as syn oarder yn fjildfoarm (lykwols tm fjild wurdt altyd ferstjoerd nei it ein fan tekst). Dizze folchoarder kin allinich feroare wurde mei direkte bewurking fan URL-parameters (fjilden folchoarder diel).


4.6. Foarbyld

Bygelyks: Tab ynstelle mei Asset Tracking namme en befettet kaart mei tiid en snelheid op 'e kaart

Alle beskriuwing ferwiist nei rige wêr "Map" tekst is yn "Rinne" pylder.

  1. Fier namme yn "Asset Tracking" yn Tab fjild (sûnder oanhellingstekens)

  2. Soargje derfoar dat alle kolommen net selekteare binne yn 'e rige

  3. útkieze tm, gps_speed_km allinnich yn 'e rige

  4. parse + knop wêr yn 'e rige






5. Kaarten

Kaarten kinne wurde lansearre fanút MainForm mei foarkonfiguraasje


5.1. Inisjalisaasje fan kaarten

Inisjalisaasje fan kaarten wurdt manuell útfierd as direkt útfierd mei keppeling: > http: //%IP%/IoT/maps.php


  1. Brûker moat alle fjilden deselektearje (Druk op Deselektearje Knop)

  2. Druk op in karfakje foar werjûn fjilden (bgl. Ain5 (foar Smog-nivo) en tm (foar mjitdatum / tiid)

  3. parse "V" karfakje om fjildfoarm te ferbergjen

  4. parse Eksekutearje knop om DB-fraach út te fieren en aktuele ynformaasje fan alle sensoren / apparaten werjaan

  5. Kaart mei gegevens wurdt nei 30 sekonden of mear bywurke.


5.2. Opsjonele ynstellings foar fraach

Ynstellingen beskreaun fan links nei rjochts (op boppesteande skermôfbylding).

5.2.1. MAP-skaal oanpasse (zoomnivo)

  1. Zoomnivo kin feroare wurde mei (+/-) knoppen foar skaal (respektivelik_skale * 2 of hjoeddeiske_skale / 2). As jo ​​op ien fan dizze knoppen drukke, feroaret de skaal automatysk.

  2. In oare manier is Selektearje nivo yn Zoom yn Kombyfjild fjild en drukke Eksekutearje knop. Yn dit gefal wurdt hiele werjefte / kaart opnij laden en ferfarskje (duorret in skoftke tidens inisjalisaasje).

5.2.2. IMEI (Selektearje apparaatfjild)

IMEIfjild befettet unike apparaat-ID as Unike alias foar in apparaat. Standert ynstelling is * (asterisk) dy't de lêste resinte wearden en geolokaasje foar elk apparaat toant.

IMEI ynstelle op elke oare wearde sil histoaryske gegevens fan selekteare apparaat sjen litte. It hat allinich sin foar mobile en bewegende sensoren, oars oerlappe de resultaten op 'e kaart op deselde posysje.


5.2.3. Lon, Lat (Lingtegraad, Breedtegraad koördinaat fjilden)

Stel de sintrumposysje fan de kaart yn. Dit fjild is ynsteld op rinnerposysje as mûsknop op de kaart wurdt yndrukt.


5.2.4. MAP-styl oanpasse (tema)

Mapstyl / -tema kin wurde selekteare út Map ComboBox fjild (bgl. Dûnker, griis, topografysk).

Ferskate kaarttema's kinne ferskillende maksimale zoomnivo's hawwe, sadat it juste Tema kin twinge om kaartskaal te ferheegjen.


5.2.5. WHERE Clause

Wêr't Clause wurdt brûkt foar ekstra fraachstring {WHERE part} foar MySQL / MariaDB.

Dizze klausel wurdt rekken holden foar it oanmeitsjen fan folsleine QUERY-tekenrige foar databaseresultaat. It kin gegevens, tiid en alle oare wearden beheine troch it tellen fan resultaten te beheinen. Oarspronklike nammen fan tafelfjilden (net alias) moatte yn dit fjild brûkt wurde. Bv.

  1. gps_speed_km> 10 // snelheid is mear dan 10 km / o

  2. ain5> 3 // ain5 is grutter dan 3 (hâlden fan 2.5um dieltsjes telt - smognivo)

  3. gps_speed_km> 10 en ain6> 5 // snelheid is mear dan 10 km / oere en ain6 is grutter dan 5 (hold 10um dieltsjes telle - smog nivo)


5.2.6. Eksekutearje (Query-knop útfiere)

Druk op dizze knop is ferplicht om alle ynstellings, parameters te feroarjen (útsein drukke op +/- knoppen).

Kaart wurdt fanôf it begjin laden mei nije presets.

Kaart is hielendal net laden, as gjin gegevens beskikber binne foar hjoeddeistige fraach.

5.2.7. Deselektearje Alles (Alle fjilden fuortsmite fan 'e fraach)

Nei it drukken op dizze knop moat teminsten ien fjild mei de hân wurde selekteare om resultaten op 'e kaart wer te jaan.


5.2.8. "V" Fakje (Fjildformulier iepenje / slute)

Dit karfakje wurdt brûkt om selektor fan te werjaan fjilden te sjen / ferbergjen.


5.2.9. "X" Fakje (Queryformulier sjen / ferbergje)

Mei dit karfakje kinne jo hiele formulier ferbergje, útsein ( +/- knoppen)


De resultaten op 'e kaart wurde kontinu fernijd en fernijd mei nije wearden

5.3. Foarbyld

Bgl Smog-resultaten (Sensor ynstalleare op 'e auto): Smog-nivo 2.5um-dieltsjes (Ain5), Snelheid (gps_speed_km), Datum / tiid (tm), kaart (2 - topografysk), zoomnivo 16,

Wêr klausule:

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

// GPS = jildige 3D-resultaten & datum = 2019-02-18 & snelheid> 0 km / o



6. Resultaten sjen litte yn 'e tabel

Resultaten sjen litte yn 'e tabel.

Op "Haadformulier" parse "tafel" item, nei it selektearjen fan guon fjilden om foarôf ynstelde tabel wer te jaan




6.1. Inisjalisaasje fan tafel

As tafel iepen is fanôf link http: //%IP%/IoT/que.php? func = ljeppers it freget foarôf inisjalisaasje fan ynstellings.

Jo kinne sichtbere fjilden selektearje (troch op te drukken "Sichtbere fjilden" ) karfakje.



  1. Druk op alle fereaske karfakje foar werjûn fjilden

  2. Druk op karfakje "Sichtbere fjilden" om fjildenfoarm te ferbergjen

  3. Druk op Utfiere knop om DB-fraach en tafel werjaan út te fieren


6.2. Opsjonele ynstellings foar fraach

Ynstellings wurde beskreaun fan links nei rjochts (op 'e skermôfbylding).

6.2.1. Sortearje - sortearje fjild en folchoarder opkommende / delgeande

Sortearje fjild is ekwivalint fan drukken op kolomkop.

6.2.2. DB / IMEI - Selektearje apparaat

IMEIfjild befettet unike apparaat-ID as Unike alias foar in apparaat. Mei lege wearde lit it tabel sjen fan meast resinte wearden.

IMEI ynstelle op elke oare wearde sil histoaryske gegevens fan selekteare apparaat sjen litte.


6.2.3. CSS - styl selektearje (Fisualisaasjetema)

6.2.4. Sichtbere fjilden - Foarmfoarm sjen / ferbergje

6.2.5. Leech fuortsmite - Lit gjin lege kolommen werjaan

6.2.6. "X" Fakje (Queryformulier sjen / ferbergje)

6.2.7. Wêr Klausule (foar gegevensbeheining)

Dit is sufix foar MySQL / MariaDB ekstra oanfraachstring {WHERE diel}

Dizze klausel wurdt rekken hâlden mei it konstruearjen fan folsleine QUERY-tekenrige foar databaseresultaat. It kin gegevens, tiid en alle oare wearden beheine troch it tellen fan resultaten te beheinen. Oarspronklike nammen fan tafelfjilden (net alias) moatte yn dit fjild brûkt wurde. Bv.

  1. gps_speed_km> 10 // snelheid is mear dan 10 km / o

  2. ain5> 3 // ain5 is grutter dan 3 (hâlden fan 2.5um dieltsjes telt - smognivo)

  3. gps_speed_km> 10 en ain6> 5 // snelheid is mear dan 10 km / oere en ain6 is grutter dan 5 (hold 10um dieltsjes telle - smog nivo)


6.2.8. Selektearje Core Knop (Skeakelje de meast foarkommende fjilden yn)


6.2.9. Deselektearje Alles Knop (ferwiderje alle fjilden út 'e fraach)

Nei it drukken op dizze knop moat teminsten ien fjild mei de hân wurde selekteare om resultaten op 'e kaart wer te jaan.


6.2.10. Eksekutearje (Query-knop útfiere)

Druk op dizze knop is ferplicht om alle ynstellings, parameters te feroarjen (útsein drukke op +/- knoppen).

Tabel wurdt fanôf it begjin opnij laden mei nije presets.



6.2.11. "V" Fakje (Fjildformulier iepenje / slute)

Dit karfakje wurdt brûkt om selektor fan te werjaan fjilden te sjen / ferbergjen.



Resultaten yn 'e tabel wurde neffens sorteare Sortearje fjild ynstelling. Sortearfolchoarder kin feroare wurde troch te drukken op rige koptekst (ien kear foar ien rjochting twa kear foar in oare rjochting).

Guon resultaten yn kolommen ferwize nei fierdere visualisearringsskermen (hurdkodearre).


By it werjaan fan histoaryske gegevens foar apparaat moatte it wurde beheind om gjin heule histoarje-ynformaasje wer te jaan, om't it kin liede ta prestaasjes of problemen mei ûnthâld.


7. Bargrafiken.

Streepkaarten moatte wurde útfierd fanút Haadformulier troch te drukken op ien fjild yn 'e rige "Bar".

It toant sorteare balken normalisearre oant maksimale wearde, werjûn fan heechste nei leechste folchoarder.

It is nuttich foar snelle kontrôle fan ekstreme resultaten en wat aksjes nimme.





Mûs oer barren sil ekstra ynformaasje werjaan foar it apparaat.


8. Histoaryske kaarten.

Histoaryske charts kinne wurde inisjearre fanút de MainForm as jo op selekteare kolom drukke yn 'e rige "Histoarje" (foar ien fjild).

Foar meardere fjilden yn 'e "Histoarje" moatte winske fjilden wurde kontroleare en de link "Histoarje" moat wurde yndrukt yn' e kolom "Run".

Histoaryske resultaten binne beheind ta lêste 24 oeren + folgjende 24 oeren (foar úteinlike ferfrissende charts), doe't gjin limiten waarden ynsteld.

8.1. Inisjalisaasje fan histoaryske charts


Histoaryske kaartsjes as iepene fanút haadlink fereaskje inisjalisaasje as oare resultaten, as se iepen binne fan kepling sûnder foarkarparameters.

Meardere fjilden kinne wurde selekteare om ferskate items werjaan. It kin ek ynsteld wurde yn Field Filter Form.




  1. Druk op alle fereaske karfakje foar werjûn fjilden

  2. Druk op karfakje "Sichtbere fjilden" om fjildenfoarm te ferbergjen

  3. Druk op Utfiere knop om DB-fraach út te fieren en de tabel werjaan


8.2. Opsjonele ynstellings fan histoaryske kaarten

Items beskreaun fan boppe en fan links nei rjochts (op 'e skermôfbylding).

8.2.1. IMEI - (Selektearje apparaat om histoaryske gegevens wer te jaan)

IMEIfjild befettet unike apparaat-ID as Unike alias foar in apparaat. Mei * (asterix) wearde lit it tabel sjen fan meast resinte wearden dy't gjin sin hat.

IMEI ynstelle op elke oare wearde sil histoaryske gegevens fan selekteare apparaat sjen litte.

8.2.2. Min - minimale wearde fan earste fjild beheine

8.2.3. Max - limyt maksimale wearde fan earste fjild

8.2.4. "V" - Foarmfoarm sjen / ferbergje

8.2.5. Fan: minimale datum / tiid ynstelle (*)

8.2.6. Nei: set maksimale datum datum / tiid yn (*)

8.2.7. "X" Fakje (Queryformulier sjen / ferbergje)

8.2.8. "Wêr" Klausule

Klausule foar it beheinen fan gegevensresultaten MySQL / MariaDB ekstra oanfraachstring {WHERE diel}.

Dizze klausel wurdt rekken holden foar it oanmeitsjen fan folsleine QUERY-tekenrige foar databaseresultaat. It kin gegevens, tiid en alle oare wearden beheine troch it tellen fan resultaten te beheinen. Oarspronklike nammen fan tafelfjilden (net alias) moatte wurde brûkt yn dit fjild en jildige SQL-syntaksis. Bv.

  1. gps_speed_km> 10 // snelheid is mear dan 10 km / o

  2. ain5> 3 // ain5 is grutter dan 3 (hâlden fan 2.5um dieltsjes telt - smognivo)

  3. gps_speed_km> 10 en ain6> 5 // snelheid is mear dan 10 km / oere en ain6 is grutter dan 5 (hold 10um dieltsjes telle - smog nivo)


8.2.9. Deselektearje Alles Knop (ferwiderje alle fjilden út 'e fraach)

Nei it drukken op dizze knop moat teminsten ien fjild mei de hân wurde selekteare om histoaryske resultaten te werjaan.


8.2.10. Eksekutearje (Query-knop útfiere)

Druk op dizze knop is ferplicht om alle ynstellings, parameters te feroarjen (útsein it werjaan fan fjilden as querypaniel). Tabel wurdt fanôf it begjin opnij laden mei nije presets.

8.2.11. "V" Fakje (Fjildformulier iepenje / slute)

Dit karfakje wurdt brûkt om selektor fan te werjaan fjilden te sjen / ferbergjen.


8.3. Bars Fariant: (toant allinich beskikbere gegevens)



8.4. Kontinu fariant (mei deselde gegevens):



Mûsoanwizer werjaan wearden fan mjittingen en datum / tiid.

9. Kompatibiliteit fan webbrowser


Funksje / WWW-blêder

Chrome 72

FireFox 65

Râne

Opera 58

Kaarten

+

+

+

+

Histoarysk

+

+ (*)

+

+

Bars

+

+

+

+

Ljeppers

+

+

+

+


* - Firefox stipet gjin datum / tiidkiezer (tekstfjild moat mei de hân bewurke wurde mei de juste opmaak fan datumtiid).

Internet Explorer wurdt net stipe (gebrûk Râne ynstee)

Oare webbrowsers waarden net hifke.



10. Tema's oanpasse

Websiden binne basearre op algemien sjabloanbestân op "sjabloanen" map "* .template".

Dêrneist befettet elk paginatype:

  1. "* .head" bestân dat koptekst fan 'e pagina opslaat (keppelings, ymporteare CSS, JavaScript Bestannen, ensfh. )

  2. "* .foot" bestannen dy't de foettekst fan 'e pagina bewarret (keppelings, ensfh. )


Tema foar fisualisaasje kin feroare wurde neffens foarkarren fan brûkers troch CSS-bestannen te kopiearjen en te feroarjen. CSS-bestannen lizze yn "sjabloanen / css" triemtafel. Ferskillende websidesema's kinne wurde brûkt om optimalisearre te meitsjen foar bg. printsje, SmartPhones, PAD's sjabloanen.


Table werjeften - hawwe selekteare fjild foar it kiezen fan CSS-bestân foar folsleine modifikaasje fan tema (opslein yn "sjabloanen / css / ljeppers" map).




Map views - algemien tema wurdt selekteare troch "map" typ kombinaasjefak. Derneist is d'r in standert CSS-bestân "sjabloanen / css / map.css" dy't wat ekstra funksjonaliteit befettet lykas resultaten ferbergje / kleurje basearre op har wearden. De rest fan dit CSS-bestân is praktysk beheind ta fraach- en fjildfoarmen.


Measte @City Platform PHP-bestannen foar fisualisaasje akseptearje cssparameter mei wearde fan bestânsnamme foar it Tema (sûnder tafoeging). Bestân moat yn 'e map "sjabloanen / css" sitte en de namme is haadlettergefoelich.


Guon eleminten fan Theme-werjefte binne direkt yn it JavaScript bestân yn "sjabloan / js" triemtafel.

Foarnaamste @Stêd skrift"@ City.js" leit yn boppeste map. D'r is gjin feroaringsmooglikheid yn lokaasje, lykwols kin skript wurde kopieare nei "sjabloanen / js" map en dêr oanpast. Gebrûk fan yndividueel skript fereasket alle koptekstbestannen bywurkje.

11. Algoritmen bywurkje


Guon unike sensoren kinne spesjale berekkeningsfunksjes nedich wêze.

D'r is gjin mooglikheid om meardere farianten fan te aktualisearjen en te ûnderhâlden @City Server Software, Front-end PHP ynterface, wat in soad problemen, ferzjes, flaters soene feroarsaakje.

De bêste en maklikste manier om it te berikken is it bywurkjen fan JavaScript "overlay" bestannen foar in goede werjefte fan de wearde / beskriuwing.

Oarspronklike JS-skripts binne iepen tekstbestân en kinne wurde oannaam nei klantferlet. Lykas sein yn it foarige haadstik moatte se wurde kopieare "sjabloanen / js" map wêr't klant tagongsrjochten hawwe foar wiziging.


Technysk aspekt oer programmearring fan @Stêd systeem is gjin ûnderwerp fan dit dokumint, lykwols kin webûntwikkelder mei basiskennis fan HTML en JS Front-endapplikaasje oanpasse oan yndividuele behoeften fan klanten.


12. Databankstruktuer


@City Database mei in namme "IoT" of "* IoT" is ferdield yn tabellen (wêr't asterix foarheaksel is, ôfhinklik fan hosting-server - as nedich). DataBase kin wurde waarnommen yn PHPAdmin (webapplikaasje) by link http: //% IP% / phpmyadmin




Tabellen ynsteld foar elk apparaat (wêr * {asterix} is IMEI-adres - unike ID):

Oare tabellen:



12.1. "ithings_" en "*" tabellen struktuer

12.2. Apparaatkommando's (Eveneminten) wachtrige "* _c" tabel - struktuer


Dizze tabel is evenemint / kommando-wachtrige foar elk apparaat en hawwe de folgjende struktuer:



12.3. Tagong ta resultaten fan databases - Mid-nivo (lêsgegevens)


Gegevens kinne tagonklik wêze sûnder Front-end webapplikaasje. @City-systeem befettet skript mei funksjes op middelnivo. Resultaten wurde weromjûn yn JSON-formaat.


12.3.1. Krij hjoeddeistige status fan alle apparaten

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


Query jout hiel werom "_ithings" tabel (hjoeddeistige status fan alle apparaten) yn JSON-formaat:

[{ "lân":"", "stêd":"", "kontinint":"", "lân":"", "regio":"", "subregio":"", "subsubregio":"", "stêd":"", "distrikt":"", "strjitte":"", "street_nr":"", "item_nr":"", "gps_lat":"0000.0000N", "gps_long":"00000.0000E", "tm":"2019-02-10 12:56:23", "kreaasje":"2019-02-09 18:12:38", "lêst":"0000-00-00 00:00:00", "barrens":"", "brûker":"", "pas":"", "imei":"351580051067110", "sn":"", "status":"73000200000f360033026800240000002c002c002dffffffffffffff5b63000001c1000001c2000000000000000009250a4f0a760a7a0a750a780a7e0000031d032205fc34029b025c025600460eb305320000", "hash_code":"", "addr":"", "fwnr":"", "ynvalide":"", "gsm_nr":"", "ferkeaper":"", "Tiidsône":"", "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":"", "barrens":"", "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", "in1":"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. Krij histoaryske gegevens foar it apparaat

Freegje histoaryske gegevens fan ien apparaat troch IMEI nr:

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


Om't heule tabel miljoenen rigen kin befetsje, moat it wurde beheind mei WHERE-klausule om server net op te hingjen.

Oanfoljende parameters url-parameters:

func - imeijson

imei - IMEI fan apparaat

fjild - fjilden dy't moatte wurde werjûn yn 'e resultaten (list mei komma's skieden)

min - minimale wearde foar it earste fjild út 'e list

max - maksimale wearde foar it earste fjild út 'e list

soft - fjild foar soarte

tm - fjild wurdt automatysk tafoege oan 'e resultaten.

where - wêr klausel om gegevens te beheinen


Foarbyld:

Wy wolle it folgjende resultaat krije

foar apparaat mei imei=356345080018095

fjilden sjen litte: ain5, ain6, gps_lat, gps_long

en beheine ain5 binnen berik ( 1, 10000 ) - moat it earste fjild yn 'e list wêze

en gps jildige gegevens hawwe (gps_fix = 3)

en datum / tiid (tm) from2019-02-14 23:00:19 to 2019-02-15 00:00:00


Konstruearre URL-tekenrige:

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


Query-resultaten:

[{ "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. Krij list mei apparaten - ien fjild fan hjoeddeistige status mei beheining

Dizze funksje jout beheinde gegevens werom út 'e tabel "_ithings"


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



Parameters:

func - fieldjson

fjild - fjild te werjaan yn 'e resultaten - imei en tm wurde automatysk tafoege

min - minimale wearde foar it fjild

max - maksimale wearde foar it fjild


Foar boppesteande fraachstring komt it werom resultaten fan ain5, imei, tm fjilden:

as ain5 is yn berik (13.5000)


Query-resultaten:

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